diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..43e9fb7 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "mdp-toolkit"] + path = mdp-toolkit + url = https://github.com/mdp-toolkit/mdp-toolkit diff --git a/.readthedocs.yml b/.readthedocs.yml new file mode 100644 index 0000000..f0a92f3 --- /dev/null +++ b/.readthedocs.yml @@ -0,0 +1,21 @@ +# Required +version: 2 + +# Build documentation in the docs/ directory with Sphinx +sphinx: + configuration: source/conf.py + fail_on_warning: false + +# Optionally build your docs in additional formats such as PDF and ePub +formats: + - pdf + +# Optionally set the version of Python and requirements required to build your docs +python: + version: 3.7 + install: + - requirements: source/requirements.txt + +# make sure submodules are available +submodules: + include: all diff --git a/ext/linkcheck2.py b/ext/linkcheck2.py index 7b107f9..5c30984 100644 --- a/ext/linkcheck2.py +++ b/ext/linkcheck2.py @@ -151,4 +151,4 @@ def finish(self): def setup(app): app.add_builder(CheckExternalLinksBuilder2) - app.add_config_value('linkcheck2_ignore', '', 'env') + app.add_config_value('linkcheck2_ignore', [], 'env') diff --git a/ext/neatdoc.py b/ext/neatdoc.py new file mode 100644 index 0000000..14f3e25 --- /dev/null +++ b/ext/neatdoc.py @@ -0,0 +1,148 @@ +from sphinx.ext.autosummary import Autosummary +from sphinx.ext.autosummary import get_documenter +from sphinx import addnodes +from docutils.parsers.rst import directives, Directive +from docutils.nodes import Text +from sphinx.util.inspect import safe_getattr,safe_getmembers +import re +import sphinx.ext.autodoc +import sys +import inspect + +class Docsummary(Autosummary): + has_content = True + required_arguments = 1 + final_argument_whitespace = False + option_spec = { + 'methods': directives.unchanged, + 'attributes': directives.unchanged, + 'modulecontent': directives.unchanged, + 'inherited': directives.unchanged + } + + + @staticmethod + def get_members(obj, typ): + items = [] + for name in dir(obj): + try: + member = safe_getattr(obj, name) + if type(member) is str or type(member) is list: + documenter = None + else: + documenter = get_documenter(member, obj) + except AttributeError: + continue + if documenter is not None: + if documenter.objtype == typ: + items.append((name,member)) + + return items + @staticmethod + def get_mod_member(obj): + members = safe_getmembers(obj) + ret =[] + for mname in members: + try: + ret.append((mname, safe_getattr(obj, mname[0]))) + except: + pass + return ret + + + def run(self): + app = self.state.document.settings.env.app + self.content = [] + + if ('methods' in self.options) or ('attributes' in self.options): + clazz = self.arguments[0] + (module_name,class_name) = re.findall(re.compile("^(.*)\.([^.]*)$"),clazz)[0] + class_name = class_name#.encode("utf-8") + module_name = module_name#.encode("utf-8") + try: + m = __import__(module_name, globals(), locals(), [class_name]) + c = getattr(m, class_name) + except ImportError: + print("Warning: Could not import %s's class %s" % (module_name,class_name)) + return [] + + if 'methods' in self.options: + self.content_inherited = [] + methods = self.get_members(c, 'method') + + for method in methods: + if method[0] not in c.__dict__: + self.content_inherited.append("~%s.%s" % (clazz, method[0])) + else: + self.content.append("~%s.%s" % (clazz, method[0])) + + if 'inherited' in self.options: + self.content = self.content_inherited + return super(Docsummary, self).run() + else: + return super(Docsummary, self).run() + + + + elif 'attributes' in self.options: + + attribs = self.get_members(c, 'attribute') + self.content = ["~%s.%s" % (clazz, attrib[0]) for attrib in attribs ] + + + elif ('modulecontent' in self.options): + self.content = [] + module = self.arguments[0] + m = __import__(module, globals,locals(),[],0) + impmodulenames = set(sys.modules)&set(dir(m)) + dmodulenames = [mod for mod in dir(m) if mod not in impmodulenames] + for name in dmodulenames: + obj = getattr(m,name) + if hasattr(obj,'__module__'): +# if (module == obj.__module__): + self.content.append("~%s.%s" % (module, name)) + + return super(Docsummary, self).run() + +def run_apidoc(app): + from sphinx.ext.apidoc import main + import os + import sys + + module_path_list = app.config.neatdoc_module_path_list + module_path_rst_target = app.config.neatdoc_module_path_rst_target + apidoc_options = app.config.neatdoc_apidoc_options + + for module_path in module_path_list: + foldername = (re.search(r'.+/([^/]+)',module_path)).group(1) + main(apidoc_options+[ '-o', module_path_rst_target+'/'+foldername, module_path, '--force']) + + + +def createClassToc(app, what, name, obj, options, lines): + # adds autoautosummary directive to end of docstring to create a class-toc + + create_class_toc = app.config.neatdoc_create_class_toc + create_module_toc = app.config.neatdoc_create_module_toc + if (what =="class")and create_class_toc: + classtoc0 = ['**Standart attributes:**','','.. docsummary:: %s'% (name),' :attributes:',''] + classtoc1 = ['**Methods:**','','*Non-inherited*','','.. docsummary:: %s'% (name),' :methods:','', + '*Inherited*','','.. docsummary:: %s'% (name),' :inherited:',' :methods:', ''] + classtoc0.extend(classtoc1) + lines.extend( classtoc0) + + if (what =="module")and create_module_toc: + moduletoc0 = ['**Module content:**','','.. docsummary:: %s'% (name),' :modulecontent:'] + lines.extend(moduletoc0) + +def setup(app): + app.connect('autodoc-process-docstring', createClassToc) + app.connect('builder-inited', run_apidoc) + + app.add_directive('docsummary', Docsummary) + + app.add_config_value('neatdoc_module_path_list', None, 'env') + app.add_config_value('neatdoc_module_path_rst_target', app.srcdir, 'env') + app.add_config_value('neatdoc_apidoc_options', ['-e', '-P', '-d 5'], 'env') + app.add_config_value('neatdoc_create_class_toc', True, 'env') + app.add_config_value('neatdoc_create_module_toc', True, 'env') diff --git a/Makefile b/legacy/Makefile similarity index 97% rename from Makefile rename to legacy/Makefile index 9e3bfe6..b0ddd09 100644 --- a/Makefile +++ b/legacy/Makefile @@ -181,3 +181,11 @@ codesnippet: "results in $(BUILDDIR)/codesnippet/." website: epydoc codesnippet html$(LINKS) latexpdf + +legacyapi: + mkdir -p $(BUILDDIR)/html + cp -a api $(BUILDDIR)/html/ + +legacywebsite: legacyapi codesnippet html + +legacywebsitelocal: legacyapi codesnippet htmllocal diff --git a/legacy/README.md b/legacy/README.md new file mode 100644 index 0000000..22f2ff7 --- /dev/null +++ b/legacy/README.md @@ -0,0 +1,12 @@ +How to built the legacy documentation +===================================== + +```bash +python2.7 -m virtualenv /PATH/TO/VIRTUALENV/ +source /PATH/TO/VIRTUALENV/bin/activate +pip install sphinx==1.6.4 epydoc==3.0.1 numpy==1.16.6 future==0.18.2 scikit-learn==0.20.4 pp==1.6.5 joblib==0.14.1 +# run the following in ./legacy to build a local version of the docs +make legacywebsitelocal +# run the following in ./legacy instead to build a version with weblinks +make legacywebsite +``` diff --git a/legacy/api/api-objects.txt b/legacy/api/api-objects.txt new file mode 100755 index 0000000..bb13a37 --- /dev/null +++ b/legacy/api/api-objects.txt @@ -0,0 +1,8246 @@ +mdp mdp-module.html +mdp.deactivate_extension mdp-module.html#deactivate_extension +mdp.numx_description mdp-module.html#numx_description +mdp._pp_needs_monkeypatching mdp-module.html#_pp_needs_monkeypatching +mdp.activate_extension mdp-module.html#activate_extension +mdp.pca mdp-module.html#pca +mdp.__revision__ mdp-module.html#__revision__ +mdp.extension_method mdp-module.html#extension_method +mdp.get_extensions mdp-module.html#get_extensions +mdp.__homepage__ mdp-module.html#__homepage__ +mdp.__package__ mdp-module.html#__package__ +mdp.VariadicCumulator mdp-module.html#VariadicCumulator +mdp.__medium_description__ mdp-module.html#__medium_description__ +mdp.extension_teardown mdp-module.html#extension_teardown +mdp.activate_extensions mdp-module.html#activate_extensions +mdp.deactivate_extensions mdp-module.html#deactivate_extensions +mdp.with_extension mdp-module.html#with_extension +mdp.__short_description__ mdp-module.html#__short_description__ +mdp.fastica mdp-module.html#fastica +mdp.extension_setup mdp-module.html#extension_setup +mdp.caching mdp.caching-module.html +mdp.caching.set_cachedir mdp.caching-module.html#set_cachedir +mdp.caching.activate_caching mdp.caching-module.html#activate_caching +mdp.caching.deactivate_caching mdp.caching-module.html#deactivate_caching +mdp.caching.__package__ mdp.caching-module.html#__package__ +mdp.graph mdp.graph-module.html +mdp.graph.recursive_reduce mdp.graph-module.html#recursive_reduce +mdp.graph.recursive_map mdp.graph-module.html#recursive_map +mdp.graph.__package__ mdp.graph-module.html#__package__ +mdp.graph.is_sequence mdp.graph-module.html#is_sequence +mdp.hinet mdp.hinet-module.html +mdp.hinet.__package__ mdp.hinet-module.html#__package__ +mdp.hinet.show_flow mdp.hinet-module.html#show_flow +mdp.hinet.get_2d_image_switchboard mdp.hinet-module.html#get_2d_image_switchboard +mdp.nodes mdp.nodes-module.html +mdp.nodes._expanded_dim mdp.nodes-module.html#_expanded_dim +mdp.nodes.__package__ mdp.nodes-module.html#__package__ +mdp.parallel mdp.parallel-module.html +mdp.parallel.__package__ mdp.parallel-module.html#__package__ +mdp.utils mdp.utils-module.html +mdp.utils.mult_diag mdp.utils-module.html#mult_diag +mdp.utils.image_slideshow mdp.utils-module.html#image_slideshow +mdp.utils.rrep mdp.utils-module.html#rrep +mdp.utils.slideshow_css mdp.utils-module.html#slideshow_css +mdp.utils.inv mdp.utils-module.html#inv +mdp.utils.get_node_size mdp.utils-module.html#get_node_size +mdp.utils.timediff mdp.utils-module.html#timediff +mdp.utils.progressinfo mdp.utils-module.html#progressinfo +mdp.utils.sqrtm mdp.utils-module.html#sqrtm +mdp.utils.norm2 mdp.utils-module.html#norm2 +mdp.utils.cov2 mdp.utils-module.html#cov2 +mdp.utils.matmult mdp.utils-module.html#matmult +mdp.utils.symeig_semidefinite_svd mdp.utils-module.html#symeig_semidefinite_svd +mdp.utils.fixup_namespace mdp.utils-module.html#fixup_namespace +mdp.utils.izip_stretched mdp.utils-module.html#izip_stretched +mdp.utils.symeig_semidefinite_pca mdp.utils-module.html#symeig_semidefinite_pca +mdp.utils.scast mdp.utils-module.html#scast +mdp.utils.__package__ mdp.utils-module.html#__package__ +mdp.utils.permute mdp.utils-module.html#permute +mdp.utils.dig_node mdp.utils-module.html#dig_node +mdp.utils.pinv mdp.utils-module.html#pinv +mdp.utils.FIXUP_DEBUG mdp.utils-module.html#FIXUP_DEBUG +mdp.utils.bool_to_sign mdp.utils-module.html#bool_to_sign +mdp.utils.orthogonal_permutations mdp.utils-module.html#orthogonal_permutations +mdp.utils.random_rot mdp.utils-module.html#random_rot +mdp.utils._fixup_namespace_item mdp.utils-module.html#_fixup_namespace_item +mdp.utils.sign_to_bool mdp.utils-module.html#sign_to_bool +mdp.utils.irep mdp.utils-module.html#irep +mdp.utils.weighted_choice mdp.utils-module.html#weighted_choice +mdp.utils.get_dtypes mdp.utils-module.html#get_dtypes +mdp.utils.image_slideshow_css mdp.utils-module.html#image_slideshow_css +mdp.utils.comb mdp.utils-module.html#comb +mdp.utils.mult mdp.utils-module.html#mult +mdp.utils.lrep mdp.utils-module.html#lrep +mdp.utils.rotate mdp.utils-module.html#rotate +mdp.utils.symeig_semidefinite_reg mdp.utils-module.html#symeig_semidefinite_reg +mdp.utils._without_prefix mdp.utils-module.html#_without_prefix +mdp.utils.gabor mdp.utils-module.html#gabor +mdp.utils.svd mdp.utils-module.html#svd +mdp.utils.basic_css mdp.utils-module.html#basic_css +mdp.utils.hermitian mdp.utils-module.html#hermitian +mdp.utils.symeig_semidefinite_ldl mdp.utils-module.html#symeig_semidefinite_ldl +mdp.utils.solve mdp.utils-module.html#solve +mdp.utils.refcast mdp.utils-module.html#refcast +mdp.utils.symrand mdp.utils-module.html#symrand +mdp.utils.nongeneral_svd mdp.utils-module.html#nongeneral_svd +collections.OrderedDict collections.OrderedDict-class.html +collections.OrderedDict.iteritems collections.OrderedDict-class.html#iteritems +collections.OrderedDict.__reduce__ collections.OrderedDict-class.html#__reduce__ +collections.OrderedDict.pop collections.OrderedDict-class.html#pop +collections.OrderedDict.__update collections.OrderedDict-class.html#__update +collections.OrderedDict.viewkeys collections.OrderedDict-class.html#viewkeys +collections.OrderedDict.__init__ collections.OrderedDict-class.html#__init__ +collections.OrderedDict.viewitems collections.OrderedDict-class.html#viewitems +collections.OrderedDict.__marker collections.OrderedDict-class.html#__marker +collections.OrderedDict.itervalues collections.OrderedDict-class.html#itervalues +collections.OrderedDict.__ne__ collections.OrderedDict-class.html#__ne__ +collections.OrderedDict.keys collections.OrderedDict-class.html#keys +collections.OrderedDict.update collections.OrderedDict-class.html#update +collections.OrderedDict.__iter__ collections.OrderedDict-class.html#__iter__ +collections.OrderedDict.popitem collections.OrderedDict-class.html#popitem +collections.OrderedDict.copy collections.OrderedDict-class.html#copy +collections.OrderedDict.__eq__ collections.OrderedDict-class.html#__eq__ +collections.OrderedDict.iterkeys collections.OrderedDict-class.html#iterkeys +collections.OrderedDict.__delitem__ collections.OrderedDict-class.html#__delitem__ +collections.OrderedDict.__reversed__ collections.OrderedDict-class.html#__reversed__ +collections.OrderedDict.fromkeys collections.OrderedDict-class.html#fromkeys +collections.OrderedDict.setdefault collections.OrderedDict-class.html#setdefault +collections.OrderedDict.viewvalues collections.OrderedDict-class.html#viewvalues +collections.OrderedDict.items collections.OrderedDict-class.html#items +collections.OrderedDict.clear collections.OrderedDict-class.html#clear +collections.OrderedDict.__setitem__ collections.OrderedDict-class.html#__setitem__ +collections.OrderedDict.values collections.OrderedDict-class.html#values +collections.OrderedDict.__repr__ collections.OrderedDict-class.html#__repr__ +exceptions.OSError exceptions.OSError-class.html +exceptions.OSError.__init__ exceptions.OSError-class.html#__init__ +exceptions.OSError.__new__ exceptions.OSError-class.html#__new__ +mdp.CheckpointFlow mdp.CheckpointFlow-class.html +mdp.Flow.__str__ mdp.Flow-class.html#__str__ +mdp.Flow.pop mdp.Flow-class.html#pop +mdp.Flow._train_check_iterables mdp.Flow-class.html#_train_check_iterables +mdp.Flow._inverse_seq mdp.Flow-class.html#_inverse_seq +mdp.Flow._check_value_type_isnode mdp.Flow-class.html#_check_value_type_isnode +mdp.Flow.__init__ mdp.Flow-class.html#__init__ +mdp.CheckpointFlow._train_check_checkpoints mdp.CheckpointFlow-class.html#_train_check_checkpoints +mdp.Flow.inverse mdp.Flow-class.html#inverse +mdp.Flow.__getitem__ mdp.Flow-class.html#__getitem__ +mdp.Flow.__contains__ mdp.Flow-class.html#__contains__ +mdp.Flow._close_last_node mdp.Flow-class.html#_close_last_node +mdp.Flow._propagate_exception mdp.Flow-class.html#_propagate_exception +mdp.Flow.append mdp.Flow-class.html#append +mdp.Flow.__call__ mdp.Flow-class.html#__call__ +mdp.Flow._stop_training_hook mdp.Flow-class.html#_stop_training_hook +mdp.Flow.save mdp.Flow-class.html#save +mdp.Flow.__len__ mdp.Flow-class.html#__len__ +mdp.Flow._check_dimension_consistency mdp.Flow-class.html#_check_dimension_consistency +mdp.Flow.extend mdp.Flow-class.html#extend +mdp.Flow.__delitem__ mdp.Flow-class.html#__delitem__ +mdp.Flow._execute_seq mdp.Flow-class.html#_execute_seq +mdp.Flow.__setitem__ mdp.Flow-class.html#__setitem__ +mdp.CheckpointFlow.train mdp.CheckpointFlow-class.html#train +mdp.Flow._get_required_train_args mdp.Flow-class.html#_get_required_train_args +mdp.Flow.__add__ mdp.Flow-class.html#__add__ +mdp.Flow.set_crash_recovery mdp.Flow-class.html#set_crash_recovery +mdp.Flow.copy mdp.Flow-class.html#copy +mdp.Flow._check_nodes_consistency mdp.Flow-class.html#_check_nodes_consistency +mdp.Flow.insert mdp.Flow-class.html#insert +mdp.Flow.execute mdp.Flow-class.html#execute +mdp.Flow._train_node mdp.Flow-class.html#_train_node +mdp.Flow.__iter__ mdp.Flow-class.html#__iter__ +mdp.Flow.__iadd__ mdp.Flow-class.html#__iadd__ +mdp.Flow.__repr__ mdp.Flow-class.html#__repr__ +mdp.CheckpointFunction mdp.CheckpointFunction-class.html +mdp.CheckpointFunction.__call__ mdp.CheckpointFunction-class.html#__call__ +mdp.CheckpointSaveFunction mdp.CheckpointSaveFunction-class.html +mdp.CheckpointSaveFunction.__init__ mdp.CheckpointSaveFunction-class.html#__init__ +mdp.CheckpointSaveFunction.__call__ mdp.CheckpointSaveFunction-class.html#__call__ +mdp.CircularOnlineFlow mdp.CircularOnlineFlow-class.html +mdp.Flow._close_last_node mdp.Flow-class.html#_close_last_node +mdp.Flow.__str__ mdp.Flow-class.html#__str__ +mdp.Flow.pop mdp.Flow-class.html#pop +mdp.OnlineFlow._train_check_iterables mdp.OnlineFlow-class.html#_train_check_iterables +mdp.CircularOnlineFlow._inverse_seq mdp.CircularOnlineFlow-class.html#_inverse_seq +mdp.Flow._check_value_type_isnode mdp.Flow-class.html#_check_value_type_isnode +mdp.CircularOnlineFlow.__init__ mdp.CircularOnlineFlow-class.html#__init__ +mdp.Flow.inverse mdp.Flow-class.html#inverse +mdp.CircularOnlineFlow.__getitem__ mdp.CircularOnlineFlow-class.html#__getitem__ +mdp.Flow.__contains__ mdp.Flow-class.html#__contains__ +mdp.CircularOnlineFlow.ignore_input mdp.CircularOnlineFlow-class.html#ignore_input +mdp.Flow._propagate_exception mdp.Flow-class.html#_propagate_exception +mdp.CircularOnlineFlow._check_compatibility mdp.CircularOnlineFlow-class.html#_check_compatibility +mdp.CircularOnlineFlow.append mdp.CircularOnlineFlow-class.html#append +mdp.Flow.__call__ mdp.Flow-class.html#__call__ +mdp.Flow._stop_training_hook mdp.Flow-class.html#_stop_training_hook +mdp.Flow.save mdp.Flow-class.html#save +mdp.Flow.__len__ mdp.Flow-class.html#__len__ +mdp.CircularOnlineFlow.set_flow_iterations mdp.CircularOnlineFlow-class.html#set_flow_iterations +mdp.Flow._check_dimension_consistency mdp.Flow-class.html#_check_dimension_consistency +mdp.CircularOnlineFlow.extend mdp.CircularOnlineFlow-class.html#extend +mdp.CircularOnlineFlow.insert mdp.CircularOnlineFlow-class.html#insert +mdp.Flow._execute_seq mdp.Flow-class.html#_execute_seq +mdp.CircularOnlineFlow.__setitem__ mdp.CircularOnlineFlow-class.html#__setitem__ +mdp.CircularOnlineFlow.train mdp.CircularOnlineFlow-class.html#train +mdp.CircularOnlineFlow.set_output_node mdp.CircularOnlineFlow-class.html#set_output_node +mdp.CircularOnlineFlow.__add__ mdp.CircularOnlineFlow-class.html#__add__ +mdp.CircularOnlineFlow.get_stored_input mdp.CircularOnlineFlow-class.html#get_stored_input +mdp.Flow.set_crash_recovery mdp.Flow-class.html#set_crash_recovery +mdp.CircularOnlineFlow._train_nodes mdp.CircularOnlineFlow-class.html#_train_nodes +mdp.Flow.copy mdp.Flow-class.html#copy +mdp.Flow._check_nodes_consistency mdp.Flow-class.html#_check_nodes_consistency +mdp.CircularOnlineFlow.__delitem__ mdp.CircularOnlineFlow-class.html#__delitem__ +mdp.CircularOnlineFlow.execute mdp.CircularOnlineFlow-class.html#execute +mdp.CircularOnlineFlow.set_stored_input mdp.CircularOnlineFlow-class.html#set_stored_input +mdp.OnlineFlow._check_value_type_is_online_or_nontrainable_node mdp.OnlineFlow-class.html#_check_value_type_is_online_or_nontrainable_node +mdp.CircularOnlineFlow.reset_output_node mdp.CircularOnlineFlow-class.html#reset_output_node +mdp.OnlineFlow._get_required_train_args_from_flow mdp.OnlineFlow-class.html#_get_required_train_args_from_flow +mdp.OnlineFlow._train_node mdp.OnlineFlow-class.html#_train_node +mdp.Flow.__iter__ mdp.Flow-class.html#__iter__ +mdp.CircularOnlineFlow.__iadd__ mdp.CircularOnlineFlow-class.html#__iadd__ +mdp.Flow.__repr__ mdp.Flow-class.html#__repr__ +mdp.Flow._get_required_train_args mdp.Flow-class.html#_get_required_train_args +mdp.CircularOnlineFlow.set_input_node mdp.CircularOnlineFlow-class.html#set_input_node +mdp.CircularOnlineFlowException mdp.CircularOnlineFlowException-class.html +mdp.ClassifierCumulator mdp.ClassifierCumulator-class.html +mdp.ClassifierNode._label mdp.ClassifierNode-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.ClassifierCumulator._check_train_args mdp.ClassifierCumulator-class.html#_check_train_args +mdp.ClassifierCumulator.__init__ mdp.ClassifierCumulator-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.ClassifierNode.label mdp.ClassifierNode-class.html#label +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.ClassifierNode.prob mdp.ClassifierNode-class.html#prob +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.ClassifierCumulator.stop_training mdp.ClassifierCumulator-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.ClassifierCumulator.train mdp.ClassifierCumulator-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.ClassifierCumulator._stop_training mdp.ClassifierCumulator-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.ClassifierCumulator._train mdp.ClassifierCumulator-class.html#_train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.ClassifierNode._prob mdp.ClassifierNode-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.ClassifierNode mdp.ClassifierNode-class.html +mdp.ClassifierNode._label mdp.ClassifierNode-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.ClassifierNode.__init__ mdp.ClassifierNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.ClassifierNode.label mdp.ClassifierNode-class.html#label +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.ClassifierNode.prob mdp.ClassifierNode-class.html#prob +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.ClassifierNode._prob mdp.ClassifierNode-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.CrashRecoveryException mdp.CrashRecoveryException-class.html +mdp.CrashRecoveryException.__init__ mdp.CrashRecoveryException-class.html#__init__ +mdp.CrashRecoveryException.dump mdp.CrashRecoveryException-class.html#dump +mdp.Cumulator mdp.Cumulator-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.Cumulator.__init__ mdp.Cumulator-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.Node._execute mdp.Node-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Cumulator.stop_training mdp.Cumulator-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Cumulator._stop_training mdp.Cumulator-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node.execute mdp.Node-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.ExtensionNode mdp.ExtensionNode-class.html +mdp.ExtensionNode.extension_name mdp.ExtensionNode-class.html#extension_name +mdp.ExtensionNodeMetaclass mdp.ExtensionNodeMetaclass-class.html +mdp.NodeMetaclass.DOC_METHODS mdp.NodeMetaclass-class.html#DOC_METHODS +mdp.NodeMetaclass._select_private_methods_to_wrap mdp.NodeMetaclass-class.html#_select_private_methods_to_wrap +mdp.ExtensionNodeMetaclass.__new__ mdp.ExtensionNodeMetaclass-class.html#__new__ +mdp.NodeMetaclass._get_infos mdp.NodeMetaclass-class.html#_get_infos +mdp.NodeMetaclass._wrap_function mdp.NodeMetaclass-class.html#_wrap_function +mdp.NodeMetaclass._wrap_method mdp.NodeMetaclass-class.html#_wrap_method +mdp.NodeMetaclass._function_infodict mdp.NodeMetaclass-class.html#_function_infodict +mdp.Flow mdp.Flow-class.html +mdp.Flow.__str__ mdp.Flow-class.html#__str__ +mdp.Flow.pop mdp.Flow-class.html#pop +mdp.Flow._train_check_iterables mdp.Flow-class.html#_train_check_iterables +mdp.Flow._inverse_seq mdp.Flow-class.html#_inverse_seq +mdp.Flow._check_value_type_isnode mdp.Flow-class.html#_check_value_type_isnode +mdp.Flow.append mdp.Flow-class.html#append +mdp.Flow.inverse mdp.Flow-class.html#inverse +mdp.Flow.__getitem__ mdp.Flow-class.html#__getitem__ +mdp.Flow.__contains__ mdp.Flow-class.html#__contains__ +mdp.Flow._close_last_node mdp.Flow-class.html#_close_last_node +mdp.Flow._propagate_exception mdp.Flow-class.html#_propagate_exception +mdp.Flow.__init__ mdp.Flow-class.html#__init__ +mdp.Flow.__call__ mdp.Flow-class.html#__call__ +mdp.Flow._stop_training_hook mdp.Flow-class.html#_stop_training_hook +mdp.Flow.save mdp.Flow-class.html#save +mdp.Flow.__len__ mdp.Flow-class.html#__len__ +mdp.Flow._check_dimension_consistency mdp.Flow-class.html#_check_dimension_consistency +mdp.Flow.extend mdp.Flow-class.html#extend +mdp.Flow.insert mdp.Flow-class.html#insert +mdp.Flow._execute_seq mdp.Flow-class.html#_execute_seq +mdp.Flow.__setitem__ mdp.Flow-class.html#__setitem__ +mdp.Flow.train mdp.Flow-class.html#train +mdp.Flow._get_required_train_args mdp.Flow-class.html#_get_required_train_args +mdp.Flow.__add__ mdp.Flow-class.html#__add__ +mdp.Flow.set_crash_recovery mdp.Flow-class.html#set_crash_recovery +mdp.Flow.copy mdp.Flow-class.html#copy +mdp.Flow._check_nodes_consistency mdp.Flow-class.html#_check_nodes_consistency +mdp.Flow.__delitem__ mdp.Flow-class.html#__delitem__ +mdp.Flow.execute mdp.Flow-class.html#execute +mdp.Flow._train_node mdp.Flow-class.html#_train_node +mdp.Flow.__iter__ mdp.Flow-class.html#__iter__ +mdp.Flow.__iadd__ mdp.Flow-class.html#__iadd__ +mdp.Flow.__repr__ mdp.Flow-class.html#__repr__ +mdp.FlowException mdp.FlowException-class.html +mdp.FlowExceptionCR mdp.FlowExceptionCR-class.html +mdp.FlowExceptionCR.__init__ mdp.FlowExceptionCR-class.html#__init__ +mdp.CrashRecoveryException.dump mdp.CrashRecoveryException-class.html#dump +mdp.IsNotInvertibleException mdp.IsNotInvertibleException-class.html +mdp.IsNotTrainableException mdp.IsNotTrainableException-class.html +mdp.MDPDeprecationWarning mdp.MDPDeprecationWarning-class.html +mdp.MDPException mdp.MDPException-class.html +mdp.MDPWarning mdp.MDPWarning-class.html +mdp.Node mdp.Node-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.Node.__init__ mdp.Node-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.Node._execute mdp.Node-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.execute mdp.Node-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.NodeException mdp.NodeException-class.html +mdp.NodeMetaclass mdp.NodeMetaclass-class.html +mdp.NodeMetaclass.DOC_METHODS mdp.NodeMetaclass-class.html#DOC_METHODS +mdp.NodeMetaclass._select_private_methods_to_wrap mdp.NodeMetaclass-class.html#_select_private_methods_to_wrap +mdp.NodeMetaclass.__new__ mdp.NodeMetaclass-class.html#__new__ +mdp.NodeMetaclass._get_infos mdp.NodeMetaclass-class.html#_get_infos +mdp.NodeMetaclass._wrap_function mdp.NodeMetaclass-class.html#_wrap_function +mdp.NodeMetaclass._wrap_method mdp.NodeMetaclass-class.html#_wrap_method +mdp.NodeMetaclass._function_infodict mdp.NodeMetaclass-class.html#_function_infodict +mdp.OnlineFlow mdp.OnlineFlow-class.html +mdp.Flow.__str__ mdp.Flow-class.html#__str__ +mdp.Flow.pop mdp.Flow-class.html#pop +mdp.OnlineFlow._train_check_iterables mdp.OnlineFlow-class.html#_train_check_iterables +mdp.Flow._inverse_seq mdp.Flow-class.html#_inverse_seq +mdp.Flow._check_value_type_isnode mdp.Flow-class.html#_check_value_type_isnode +mdp.OnlineFlow.__init__ mdp.OnlineFlow-class.html#__init__ +mdp.Flow.inverse mdp.Flow-class.html#inverse +mdp.Flow.__getitem__ mdp.Flow-class.html#__getitem__ +mdp.Flow.__contains__ mdp.Flow-class.html#__contains__ +mdp.Flow._close_last_node mdp.Flow-class.html#_close_last_node +mdp.Flow._propagate_exception mdp.Flow-class.html#_propagate_exception +mdp.OnlineFlow._check_compatibility mdp.OnlineFlow-class.html#_check_compatibility +mdp.OnlineFlow.append mdp.OnlineFlow-class.html#append +mdp.Flow.__call__ mdp.Flow-class.html#__call__ +mdp.Flow._stop_training_hook mdp.Flow-class.html#_stop_training_hook +mdp.Flow.save mdp.Flow-class.html#save +mdp.Flow.__len__ mdp.Flow-class.html#__len__ +mdp.Flow._check_dimension_consistency mdp.Flow-class.html#_check_dimension_consistency +mdp.OnlineFlow.extend mdp.OnlineFlow-class.html#extend +mdp.OnlineFlow.__delitem__ mdp.OnlineFlow-class.html#__delitem__ +mdp.Flow._execute_seq mdp.Flow-class.html#_execute_seq +mdp.OnlineFlow.__setitem__ mdp.OnlineFlow-class.html#__setitem__ +mdp.OnlineFlow.train mdp.OnlineFlow-class.html#train +mdp.Flow._get_required_train_args mdp.Flow-class.html#_get_required_train_args +mdp.OnlineFlow.__add__ mdp.OnlineFlow-class.html#__add__ +mdp.Flow.set_crash_recovery mdp.Flow-class.html#set_crash_recovery +mdp.OnlineFlow._train_nodes mdp.OnlineFlow-class.html#_train_nodes +mdp.Flow.copy mdp.Flow-class.html#copy +mdp.Flow._check_nodes_consistency mdp.Flow-class.html#_check_nodes_consistency +mdp.OnlineFlow.insert mdp.OnlineFlow-class.html#insert +mdp.Flow.execute mdp.Flow-class.html#execute +mdp.OnlineFlow._check_value_type_is_online_or_nontrainable_node mdp.OnlineFlow-class.html#_check_value_type_is_online_or_nontrainable_node +mdp.OnlineFlow._get_required_train_args_from_flow mdp.OnlineFlow-class.html#_get_required_train_args_from_flow +mdp.OnlineFlow._train_node mdp.OnlineFlow-class.html#_train_node +mdp.Flow.__iter__ mdp.Flow-class.html#__iter__ +mdp.OnlineFlow.__iadd__ mdp.OnlineFlow-class.html#__iadd__ +mdp.Flow.__repr__ mdp.Flow-class.html#__repr__ +mdp.OnlineFlowException mdp.OnlineFlowException-class.html +mdp.OnlineNode mdp.OnlineNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.OnlineNode._pre_execution_checks mdp.OnlineNode-class.html#_pre_execution_checks +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.OnlineNode.set_numx_rng mdp.OnlineNode-class.html#set_numx_rng +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.OnlineNode.__init__ mdp.OnlineNode-class.html#__init__ +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.OnlineNode._get_supported_training_types mdp.OnlineNode-class.html#_get_supported_training_types +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.OnlineNode.get_numx_rng mdp.OnlineNode-class.html#get_numx_rng +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.OnlineNode.numx_rng mdp.OnlineNode-class.html#numx_rng +mdp.OnlineNode._get_train_seq mdp.OnlineNode-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.OnlineNode.set_training_type mdp.OnlineNode-class.html#set_training_type +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.OnlineNode._check_params mdp.OnlineNode-class.html#_check_params +mdp.OnlineNode.stop_training mdp.OnlineNode-class.html#stop_training +mdp.OnlineNode.get_current_train_iteration mdp.OnlineNode-class.html#get_current_train_iteration +mdp.OnlineNode.train mdp.OnlineNode-class.html#train +mdp.OnlineNode.__add__ mdp.OnlineNode-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.OnlineNode._pre_inversion_checks mdp.OnlineNode-class.html#_pre_inversion_checks +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.OnlineNode._check_input mdp.OnlineNode-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node.execute mdp.Node-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.OnlineNode.training_type mdp.OnlineNode-class.html#training_type +mdp.OnlineNode._train_seq mdp.OnlineNode-class.html#_train_seq +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node._train mdp.Node-class.html#_train +mdp.Node._execute mdp.Node-class.html#_execute +mdp.OnlineNode.__repr__ mdp.OnlineNode-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.OnlineNode._set_numx_rng mdp.OnlineNode-class.html#_set_numx_rng +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.OnlineNodeException mdp.OnlineNodeException-class.html +mdp.PreserveDimNode mdp.PreserveDimNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.Node.__init__ mdp.Node-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.Node._execute mdp.Node-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node.execute mdp.Node-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.PreserveDimOnlineNode mdp.PreserveDimOnlineNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimOnlineNode._set_input_dim mdp.PreserveDimOnlineNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.OnlineNode._pre_execution_checks mdp.OnlineNode-class.html#_pre_execution_checks +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.OnlineNode._train_seq mdp.OnlineNode-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.OnlineNode.__init__ mdp.OnlineNode-class.html#__init__ +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.OnlineNode._get_supported_training_types mdp.OnlineNode-class.html#_get_supported_training_types +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.OnlineNode.get_numx_rng mdp.OnlineNode-class.html#get_numx_rng +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.OnlineNode.numx_rng mdp.OnlineNode-class.html#numx_rng +mdp.OnlineNode._get_train_seq mdp.OnlineNode-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.OnlineNode.set_training_type mdp.OnlineNode-class.html#set_training_type +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.OnlineNode._check_params mdp.OnlineNode-class.html#_check_params +mdp.OnlineNode.stop_training mdp.OnlineNode-class.html#stop_training +mdp.OnlineNode.get_current_train_iteration mdp.OnlineNode-class.html#get_current_train_iteration +mdp.OnlineNode.train mdp.OnlineNode-class.html#train +mdp.OnlineNode.__add__ mdp.OnlineNode-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.OnlineNode._pre_inversion_checks mdp.OnlineNode-class.html#_pre_inversion_checks +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.OnlineNode._check_input mdp.OnlineNode-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node.execute mdp.Node-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.OnlineNode.training_type mdp.OnlineNode-class.html#training_type +mdp.OnlineNode.set_numx_rng mdp.OnlineNode-class.html#set_numx_rng +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node._train mdp.Node-class.html#_train +mdp.Node._execute mdp.Node-class.html#_execute +mdp.OnlineNode.__repr__ mdp.OnlineNode-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.OnlineNode._set_numx_rng mdp.OnlineNode-class.html#_set_numx_rng +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimOnlineNode._set_output_dim mdp.PreserveDimOnlineNode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.TrainingException mdp.TrainingException-class.html +mdp.TrainingFinishedException mdp.TrainingFinishedException-class.html +mdp.caching.cache mdp.caching.cache-class.html +mdp.caching.cache.__enter__ mdp.caching.cache-class.html#__enter__ +mdp.caching.cache.__exit__ mdp.caching.cache-class.html#__exit__ +mdp.caching.cache.__init__ mdp.caching.cache-class.html#__init__ +mdp.config mdp.config-class.html +mdp.config.has_symeig mdp.config-class.html#has_symeig +mdp.config.has_joblib mdp.config-class.html#has_joblib +mdp.config.has_parallel_python mdp.config-class.html#has_parallel_python +mdp.config._HAS_NUMBER mdp.config-class.html#_HAS_NUMBER +mdp.config._ExternalDep mdp.config._ExternalDep-class.html +mdp.config.has_numx mdp.config-class.html#has_numx +mdp.config.has_shogun mdp.config-class.html#has_shogun +mdp.config.ExternalDepFound mdp.config-class.html#ExternalDepFound +mdp.config.has_mdp mdp.config-class.html#has_mdp +mdp.config.has_python mdp.config-class.html#has_python +mdp.config.ExternalDepFailed mdp.config-class.html#ExternalDepFailed +mdp.config.has_libsvm mdp.config-class.html#has_libsvm +mdp.config.info mdp.config-class.html#info +mdp.config.has_sklearn mdp.config-class.html#has_sklearn +mdp.config._ExternalDep mdp.config._ExternalDep-class.html +mdp.config._ExternalDep.__repr__ mdp.config._ExternalDep-class.html#__repr__ +mdp.config._ExternalDep.__bool__ mdp.config._ExternalDep-class.html#__bool__ +mdp.config._ExternalDep.__init__ mdp.config._ExternalDep-class.html#__init__ +mdp.extension mdp.extension-class.html +mdp.extension.__enter__ mdp.extension-class.html#__enter__ +mdp.extension.__exit__ mdp.extension-class.html#__exit__ +mdp.extension.__init__ mdp.extension-class.html#__init__ +mdp.graph.Graph mdp.graph.Graph-class.html +mdp.graph.Graph.connected_components mdp.graph.Graph-class.html#connected_components +mdp.graph.Graph.add_tree mdp.graph.Graph-class.html#add_tree +mdp.graph.Graph.add_node mdp.graph.Graph-class.html#add_node +mdp.graph.Graph.undirected_dfs mdp.graph.Graph-class.html#undirected_dfs +mdp.graph.Graph._dfs mdp.graph.Graph-class.html#_dfs +mdp.graph.Graph.topological_sort mdp.graph.Graph-class.html#topological_sort +mdp.graph.Graph.__init__ mdp.graph.Graph-class.html#__init__ +mdp.graph.Graph.dfs mdp.graph.Graph-class.html#dfs +mdp.graph.Graph.bfs mdp.graph.Graph-class.html#bfs +mdp.graph.Graph.remove_node mdp.graph.Graph-class.html#remove_node +mdp.graph.Graph.add_full_connectivity mdp.graph.Graph-class.html#add_full_connectivity +mdp.graph.Graph.add_edge mdp.graph.Graph-class.html#add_edge +mdp.graph.Graph.undirected_bfs mdp.graph.Graph-class.html#undirected_bfs +mdp.graph.Graph._bfs mdp.graph.Graph-class.html#_bfs +mdp.graph.Graph.is_weakly_connected mdp.graph.Graph-class.html#is_weakly_connected +mdp.graph.Graph.add_nodes mdp.graph.Graph-class.html#add_nodes +mdp.graph.Graph.remove_edge mdp.graph.Graph-class.html#remove_edge +mdp.graph.GraphEdge mdp.graph.GraphEdge-class.html +mdp.graph.GraphEdge.__init__ mdp.graph.GraphEdge-class.html#__init__ +mdp.graph.GraphEdge.get_ends mdp.graph.GraphEdge-class.html#get_ends +mdp.graph.GraphEdge.get_head mdp.graph.GraphEdge-class.html#get_head +mdp.graph.GraphEdge.get_tail mdp.graph.GraphEdge-class.html#get_tail +mdp.graph.GraphException mdp.graph.GraphException-class.html +mdp.graph.GraphNode mdp.graph.GraphNode-class.html +mdp.graph.GraphNode.remove_edge_in mdp.graph.GraphNode-class.html#remove_edge_in +mdp.graph.GraphNode.neighbors mdp.graph.GraphNode-class.html#neighbors +mdp.graph.GraphNode.out_degree mdp.graph.GraphNode-class.html#out_degree +mdp.graph.GraphNode.out_neighbors mdp.graph.GraphNode-class.html#out_neighbors +mdp.graph.GraphNode.add_edge_out mdp.graph.GraphNode-class.html#add_edge_out +mdp.graph.GraphNode.remove_edge_out mdp.graph.GraphNode-class.html#remove_edge_out +mdp.graph.GraphNode.add_edge_in mdp.graph.GraphNode-class.html#add_edge_in +mdp.graph.GraphNode.__init__ mdp.graph.GraphNode-class.html#__init__ +mdp.graph.GraphNode.get_edges mdp.graph.GraphNode-class.html#get_edges +mdp.graph.GraphNode.get_edges_out mdp.graph.GraphNode-class.html#get_edges_out +mdp.graph.GraphNode.degree mdp.graph.GraphNode-class.html#degree +mdp.graph.GraphNode.in_neighbors mdp.graph.GraphNode-class.html#in_neighbors +mdp.graph.GraphNode.get_edges_in mdp.graph.GraphNode-class.html#get_edges_in +mdp.graph.GraphNode.in_degree mdp.graph.GraphNode-class.html#in_degree +mdp.graph.GraphTopologicalException mdp.graph.GraphTopologicalException-class.html +mdp.hinet.ChannelSwitchboard mdp.hinet.ChannelSwitchboard-class.html +mdp.hinet.ChannelSwitchboard.get_out_channel_input mdp.hinet.ChannelSwitchboard-class.html#get_out_channel_input +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.hinet.ChannelSwitchboard.get_out_channels_input_channels mdp.hinet.ChannelSwitchboard-class.html#get_out_channels_input_channels +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.hinet.ChannelSwitchboard.__init__ mdp.hinet.ChannelSwitchboard-class.html#__init__ +mdp.hinet.Switchboard._get_supported_dtypes mdp.hinet.Switchboard-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.hinet.Switchboard._execute mdp.hinet.Switchboard-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.hinet.Switchboard.is_invertible mdp.hinet.Switchboard-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.hinet.Switchboard.inverse mdp.hinet.Switchboard-class.html#inverse +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.hinet.Switchboard._inverse mdp.hinet.Switchboard-class.html#_inverse +mdp.hinet.Switchboard.execute mdp.hinet.Switchboard-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.hinet.ChannelSwitchboard.get_out_channel_node mdp.hinet.ChannelSwitchboard-class.html#get_out_channel_node +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.hinet.Switchboard.is_trainable mdp.hinet.Switchboard-class.html#is_trainable +mdp.hinet.CircularOnlineFlowNode mdp.hinet.CircularOnlineFlowNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.hinet.FlowNode._set_input_dim mdp.hinet.FlowNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.hinet.FlowNode.copy mdp.hinet.FlowNode-class.html#copy +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.OnlineNode.set_numx_rng mdp.OnlineNode-class.html#set_numx_rng +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.hinet.CircularOnlineFlowNode.__init__ mdp.hinet.CircularOnlineFlowNode-class.html#__init__ +mdp.hinet.FlowNode.inverse mdp.hinet.FlowNode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.hinet.FlowNode.__contains__ mdp.hinet.FlowNode-class.html#__contains__ +mdp.hinet.FlowNode._execute mdp.hinet.FlowNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.OnlineNode.get_numx_rng mdp.OnlineNode-class.html#get_numx_rng +mdp.hinet.FlowNode.is_invertible mdp.hinet.FlowNode-class.html#is_invertible +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.hinet.CircularOnlineFlowNode._check_compatibility mdp.hinet.CircularOnlineFlowNode-class.html#_check_compatibility +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.OnlineNode._pre_execution_checks mdp.OnlineNode-class.html#_pre_execution_checks +mdp.hinet.FlowNode.__len__ mdp.hinet.FlowNode-class.html#__len__ +mdp.OnlineNode.__repr__ mdp.OnlineNode-class.html#__repr__ +mdp.hinet.CircularOnlineFlowNode._get_train_seq mdp.hinet.CircularOnlineFlowNode-class.html#_get_train_seq +mdp.hinet.FlowNode.__getitem__ mdp.hinet.FlowNode-class.html#__getitem__ +mdp.hinet.FlowNode._fix_nodes_dimensions mdp.hinet.FlowNode-class.html#_fix_nodes_dimensions +mdp.hinet.CircularOnlineFlowNode.set_training_type mdp.hinet.CircularOnlineFlowNode-class.html#set_training_type +mdp.hinet.FlowNode._set_dtype mdp.hinet.FlowNode-class.html#_set_dtype +mdp.OnlineNode._check_params mdp.OnlineNode-class.html#_check_params +mdp.OnlineNode.stop_training mdp.OnlineNode-class.html#stop_training +mdp.hinet.FlowNode.__iter__ mdp.hinet.FlowNode-class.html#__iter__ +mdp.hinet.FlowNode._get_supported_dtypes mdp.hinet.FlowNode-class.html#_get_supported_dtypes +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.OnlineNode.__add__ mdp.OnlineNode-class.html#__add__ +mdp.hinet.CircularOnlineFlowNode.get_stored_input mdp.hinet.CircularOnlineFlowNode-class.html#get_stored_input +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.hinet.CircularOnlineFlowNode._set_training_type_from_flow mdp.hinet.CircularOnlineFlowNode-class.html#_set_training_type_from_flow +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.OnlineNode._pre_inversion_checks mdp.OnlineNode-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.OnlineNode._check_input mdp.OnlineNode-class.html#_check_input +mdp.hinet.FlowNode._inverse mdp.hinet.FlowNode-class.html#_inverse +mdp.hinet.FlowNode.execute mdp.hinet.FlowNode-class.html#execute +mdp.hinet.CircularOnlineFlowNode.set_stored_input mdp.hinet.CircularOnlineFlowNode-class.html#set_stored_input +mdp.OnlineNode.training_type mdp.OnlineNode-class.html#training_type +mdp.OnlineNode._train_seq mdp.OnlineNode-class.html#_train_seq +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.hinet.FlowNode.flow mdp.hinet.FlowNode-class.html#flow +mdp.OnlineNode.get_current_train_iteration mdp.OnlineNode-class.html#get_current_train_iteration +mdp.Node._train mdp.Node-class.html#_train +mdp.OnlineNode._get_supported_training_types mdp.OnlineNode-class.html#_get_supported_training_types +mdp.OnlineNode.train mdp.OnlineNode-class.html#train +mdp.OnlineNode.numx_rng mdp.OnlineNode-class.html#numx_rng +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.hinet.CircularOnlineFlowNode._set_numx_rng mdp.hinet.CircularOnlineFlowNode-class.html#_set_numx_rng +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.hinet.FlowNode._set_output_dim mdp.hinet.FlowNode-class.html#_set_output_dim +mdp.hinet.FlowNode.is_trainable mdp.hinet.FlowNode-class.html#is_trainable +mdp.hinet.CloneLayer mdp.hinet.CloneLayer-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.hinet.Layer._pre_execution_checks mdp.hinet.Layer-class.html#_pre_execution_checks +mdp.hinet.Layer._check_props mdp.hinet.Layer-class.html#_check_props +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.hinet.CloneLayer.__init__ mdp.hinet.CloneLayer-class.html#__init__ +mdp.hinet.CloneLayer.inverse mdp.hinet.CloneLayer-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.hinet.Layer.__contains__ mdp.hinet.Layer-class.html#__contains__ +mdp.hinet.CloneLayer._execute mdp.hinet.CloneLayer-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.hinet.Layer.is_invertible mdp.hinet.Layer-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.hinet.Layer._get_output_dim_from_nodes mdp.hinet.Layer-class.html#_get_output_dim_from_nodes +mdp.hinet.Layer._train mdp.hinet.Layer-class.html#_train +mdp.hinet.Layer.__len__ mdp.hinet.Layer-class.html#__len__ +mdp.hinet.Layer._get_train_seq mdp.hinet.Layer-class.html#_get_train_seq +mdp.hinet.Layer.__getitem__ mdp.hinet.Layer-class.html#__getitem__ +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.hinet.Layer._set_dtype mdp.hinet.Layer-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.hinet.CloneLayer.stop_training mdp.hinet.CloneLayer-class.html#stop_training +mdp.hinet.Layer.__iter__ mdp.hinet.Layer-class.html#__iter__ +mdp.hinet.Layer._get_supported_dtypes mdp.hinet.Layer-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.hinet.CloneLayer._stop_training mdp.hinet.CloneLayer-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.hinet.CloneLayer._inverse mdp.hinet.CloneLayer-class.html#_inverse +mdp.hinet.CloneLayer.execute mdp.hinet.CloneLayer-class.html#execute +mdp.Node.save mdp.Node-class.html#save +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.hinet.Layer.train mdp.hinet.Layer-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.hinet.Layer.is_trainable mdp.hinet.Layer-class.html#is_trainable +mdp.hinet.CloneOnlineLayer mdp.hinet.CloneOnlineLayer-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.hinet.Layer._pre_execution_checks mdp.hinet.Layer-class.html#_pre_execution_checks +mdp.Node.copy mdp.Node-class.html#copy +mdp.hinet.Layer._check_props mdp.hinet.Layer-class.html#_check_props +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.hinet.OnlineLayer._check_value_type_is_compatible mdp.hinet.OnlineLayer-class.html#_check_value_type_is_compatible +mdp.hinet.OnlineLayer._set_training_type_from_nodes mdp.hinet.OnlineLayer-class.html#_set_training_type_from_nodes +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.hinet.CloneOnlineLayer.__init__ mdp.hinet.CloneOnlineLayer-class.html#__init__ +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.OnlineNode._train_seq mdp.OnlineNode-class.html#_train_seq +mdp.hinet.CloneLayer.inverse mdp.hinet.CloneLayer-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.hinet.Layer.__contains__ mdp.hinet.Layer-class.html#__contains__ +mdp.hinet.CloneLayer._execute mdp.hinet.CloneLayer-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.OnlineNode.get_numx_rng mdp.OnlineNode-class.html#get_numx_rng +mdp.hinet.Layer.is_invertible mdp.hinet.Layer-class.html#is_invertible +mdp.hinet.OnlineLayer._check_compatibility mdp.hinet.OnlineLayer-class.html#_check_compatibility +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.hinet.Layer._get_output_dim_from_nodes mdp.hinet.Layer-class.html#_get_output_dim_from_nodes +mdp.hinet.Layer._train mdp.hinet.Layer-class.html#_train +mdp.hinet.Layer.__len__ mdp.hinet.Layer-class.html#__len__ +mdp.OnlineNode.__repr__ mdp.OnlineNode-class.html#__repr__ +mdp.hinet.OnlineLayer._get_train_seq mdp.hinet.OnlineLayer-class.html#_get_train_seq +mdp.hinet.Layer.__getitem__ mdp.hinet.Layer-class.html#__getitem__ +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.hinet.OnlineLayer.set_training_type mdp.hinet.OnlineLayer-class.html#set_training_type +mdp.hinet.Layer._set_dtype mdp.hinet.Layer-class.html#_set_dtype +mdp.OnlineNode._check_params mdp.OnlineNode-class.html#_check_params +mdp.hinet.CloneLayer.stop_training mdp.hinet.CloneLayer-class.html#stop_training +mdp.hinet.Layer.__iter__ mdp.hinet.Layer-class.html#__iter__ +mdp.hinet.Layer.train mdp.hinet.Layer-class.html#train +mdp.OnlineNode.__add__ mdp.OnlineNode-class.html#__add__ +mdp.hinet.CloneLayer._stop_training mdp.hinet.CloneLayer-class.html#_stop_training +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.OnlineNode._pre_inversion_checks mdp.OnlineNode-class.html#_pre_inversion_checks +mdp.hinet.Layer._get_supported_dtypes mdp.hinet.Layer-class.html#_get_supported_dtypes +mdp.OnlineNode._check_input mdp.OnlineNode-class.html#_check_input +mdp.hinet.CloneLayer._inverse mdp.hinet.CloneLayer-class.html#_inverse +mdp.hinet.CloneLayer.execute mdp.hinet.CloneLayer-class.html#execute +mdp.Node.save mdp.Node-class.html#save +mdp.OnlineNode.training_type mdp.OnlineNode-class.html#training_type +mdp.OnlineNode.set_numx_rng mdp.OnlineNode-class.html#set_numx_rng +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.OnlineNode.get_current_train_iteration mdp.OnlineNode-class.html#get_current_train_iteration +mdp.OnlineNode._get_supported_training_types mdp.OnlineNode-class.html#_get_supported_training_types +mdp.OnlineNode.numx_rng mdp.OnlineNode-class.html#numx_rng +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.hinet.OnlineLayer._set_numx_rng mdp.hinet.OnlineLayer-class.html#_set_numx_rng +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.hinet.Layer.is_trainable mdp.hinet.Layer-class.html#is_trainable +mdp.hinet.DoubleRect2dSwitchboard mdp.hinet.DoubleRect2dSwitchboard-class.html +mdp.hinet.ChannelSwitchboard.get_out_channel_input mdp.hinet.ChannelSwitchboard-class.html#get_out_channel_input +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.hinet.ChannelSwitchboard.get_out_channels_input_channels mdp.hinet.ChannelSwitchboard-class.html#get_out_channels_input_channels +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.hinet.DoubleRect2dSwitchboard.__init__ mdp.hinet.DoubleRect2dSwitchboard-class.html#__init__ +mdp.hinet.Switchboard._get_supported_dtypes mdp.hinet.Switchboard-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.hinet.Switchboard._execute mdp.hinet.Switchboard-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.hinet.Switchboard.is_invertible mdp.hinet.Switchboard-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.hinet.Switchboard.inverse mdp.hinet.Switchboard-class.html#inverse +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.hinet.Switchboard._inverse mdp.hinet.Switchboard-class.html#_inverse +mdp.hinet.Switchboard.execute mdp.hinet.Switchboard-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.hinet.ChannelSwitchboard.get_out_channel_node mdp.hinet.ChannelSwitchboard-class.html#get_out_channel_node +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.hinet.Switchboard.is_trainable mdp.hinet.Switchboard-class.html#is_trainable +mdp.hinet.DoubleRect2dSwitchboardException mdp.hinet.DoubleRect2dSwitchboardException-class.html +mdp.hinet.DoubleRhomb2dSwitchboard mdp.hinet.DoubleRhomb2dSwitchboard-class.html +mdp.hinet.ChannelSwitchboard.get_out_channel_input mdp.hinet.ChannelSwitchboard-class.html#get_out_channel_input +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.hinet.ChannelSwitchboard.get_out_channels_input_channels mdp.hinet.ChannelSwitchboard-class.html#get_out_channels_input_channels +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.hinet.DoubleRhomb2dSwitchboard.__init__ mdp.hinet.DoubleRhomb2dSwitchboard-class.html#__init__ +mdp.hinet.Switchboard._get_supported_dtypes mdp.hinet.Switchboard-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.hinet.Switchboard._execute mdp.hinet.Switchboard-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.hinet.Switchboard.is_invertible mdp.hinet.Switchboard-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.hinet.Switchboard.inverse mdp.hinet.Switchboard-class.html#inverse +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.hinet.Switchboard._inverse mdp.hinet.Switchboard-class.html#_inverse +mdp.hinet.Switchboard.execute mdp.hinet.Switchboard-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.hinet.ChannelSwitchboard.get_out_channel_node mdp.hinet.ChannelSwitchboard-class.html#get_out_channel_node +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.hinet.Switchboard.is_trainable mdp.hinet.Switchboard-class.html#is_trainable +mdp.hinet.DoubleRhomb2dSwitchboardException mdp.hinet.DoubleRhomb2dSwitchboardException-class.html +mdp.hinet.FlowNode mdp.hinet.FlowNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.hinet.FlowNode._set_input_dim mdp.hinet.FlowNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.hinet.FlowNode.__init__ mdp.hinet.FlowNode-class.html#__init__ +mdp.hinet.FlowNode.inverse mdp.hinet.FlowNode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.hinet.FlowNode.__contains__ mdp.hinet.FlowNode-class.html#__contains__ +mdp.hinet.FlowNode._execute mdp.hinet.FlowNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.hinet.FlowNode.is_invertible mdp.hinet.FlowNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.hinet.FlowNode.__len__ mdp.hinet.FlowNode-class.html#__len__ +mdp.hinet.FlowNode._get_train_seq mdp.hinet.FlowNode-class.html#_get_train_seq +mdp.hinet.FlowNode.__getitem__ mdp.hinet.FlowNode-class.html#__getitem__ +mdp.hinet.FlowNode._fix_nodes_dimensions mdp.hinet.FlowNode-class.html#_fix_nodes_dimensions +mdp.hinet.FlowNode._set_dtype mdp.hinet.FlowNode-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.hinet.FlowNode.__iter__ mdp.hinet.FlowNode-class.html#__iter__ +mdp.hinet.FlowNode._get_supported_dtypes mdp.hinet.FlowNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.hinet.FlowNode.copy mdp.hinet.FlowNode-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.hinet.FlowNode._inverse mdp.hinet.FlowNode-class.html#_inverse +mdp.hinet.FlowNode.execute mdp.hinet.FlowNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.hinet.FlowNode.flow mdp.hinet.FlowNode-class.html#flow +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.hinet.FlowNode._set_output_dim mdp.hinet.FlowNode-class.html#_set_output_dim +mdp.hinet.FlowNode.is_trainable mdp.hinet.FlowNode-class.html#is_trainable +mdp.hinet.Layer mdp.hinet.Layer-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.hinet.Layer._pre_execution_checks mdp.hinet.Layer-class.html#_pre_execution_checks +mdp.hinet.Layer._check_props mdp.hinet.Layer-class.html#_check_props +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.hinet.Layer.__init__ mdp.hinet.Layer-class.html#__init__ +mdp.hinet.Layer.inverse mdp.hinet.Layer-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.hinet.Layer.__contains__ mdp.hinet.Layer-class.html#__contains__ +mdp.hinet.Layer._execute mdp.hinet.Layer-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.hinet.Layer.is_invertible mdp.hinet.Layer-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.hinet.Layer._get_output_dim_from_nodes mdp.hinet.Layer-class.html#_get_output_dim_from_nodes +mdp.hinet.Layer._train mdp.hinet.Layer-class.html#_train +mdp.hinet.Layer.__len__ mdp.hinet.Layer-class.html#__len__ +mdp.hinet.Layer._get_train_seq mdp.hinet.Layer-class.html#_get_train_seq +mdp.hinet.Layer.__getitem__ mdp.hinet.Layer-class.html#__getitem__ +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.hinet.Layer._get_supported_dtypes mdp.hinet.Layer-class.html#_get_supported_dtypes +mdp.hinet.Layer._set_dtype mdp.hinet.Layer-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.hinet.Layer.stop_training mdp.hinet.Layer-class.html#stop_training +mdp.hinet.Layer.__iter__ mdp.hinet.Layer-class.html#__iter__ +mdp.hinet.Layer.train mdp.hinet.Layer-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.hinet.Layer._stop_training mdp.hinet.Layer-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.hinet.Layer._inverse mdp.hinet.Layer-class.html#_inverse +mdp.hinet.Layer.execute mdp.hinet.Layer-class.html#execute +mdp.Node.save mdp.Node-class.html#save +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.hinet.Layer.is_trainable mdp.hinet.Layer-class.html#is_trainable +mdp.hinet.OnlineFlowNode mdp.hinet.OnlineFlowNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.hinet.FlowNode._set_input_dim mdp.hinet.FlowNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.OnlineNode._pre_execution_checks mdp.OnlineNode-class.html#_pre_execution_checks +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.OnlineNode.set_numx_rng mdp.OnlineNode-class.html#set_numx_rng +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.hinet.OnlineFlowNode.__init__ mdp.hinet.OnlineFlowNode-class.html#__init__ +mdp.hinet.FlowNode.inverse mdp.hinet.FlowNode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.hinet.FlowNode.__contains__ mdp.hinet.FlowNode-class.html#__contains__ +mdp.hinet.FlowNode._execute mdp.hinet.FlowNode-class.html#_execute +mdp.hinet.OnlineFlowNode._set_training_type_from_flow mdp.hinet.OnlineFlowNode-class.html#_set_training_type_from_flow +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.OnlineNode.get_numx_rng mdp.OnlineNode-class.html#get_numx_rng +mdp.hinet.FlowNode.is_invertible mdp.hinet.FlowNode-class.html#is_invertible +mdp.hinet.OnlineFlowNode._check_compatibility mdp.hinet.OnlineFlowNode-class.html#_check_compatibility +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.hinet.FlowNode.__len__ mdp.hinet.FlowNode-class.html#__len__ +mdp.OnlineNode.__repr__ mdp.OnlineNode-class.html#__repr__ +mdp.hinet.OnlineFlowNode._get_train_seq mdp.hinet.OnlineFlowNode-class.html#_get_train_seq +mdp.hinet.FlowNode.__getitem__ mdp.hinet.FlowNode-class.html#__getitem__ +mdp.hinet.FlowNode._fix_nodes_dimensions mdp.hinet.FlowNode-class.html#_fix_nodes_dimensions +mdp.hinet.OnlineFlowNode.set_training_type mdp.hinet.OnlineFlowNode-class.html#set_training_type +mdp.hinet.FlowNode._set_dtype mdp.hinet.FlowNode-class.html#_set_dtype +mdp.OnlineNode._check_params mdp.OnlineNode-class.html#_check_params +mdp.OnlineNode.stop_training mdp.OnlineNode-class.html#stop_training +mdp.hinet.FlowNode.__iter__ mdp.hinet.FlowNode-class.html#__iter__ +mdp.hinet.FlowNode._get_supported_dtypes mdp.hinet.FlowNode-class.html#_get_supported_dtypes +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.OnlineNode.__add__ mdp.OnlineNode-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.hinet.FlowNode.copy mdp.hinet.FlowNode-class.html#copy +mdp.OnlineNode._pre_inversion_checks mdp.OnlineNode-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.OnlineNode._check_input mdp.OnlineNode-class.html#_check_input +mdp.hinet.FlowNode._inverse mdp.hinet.FlowNode-class.html#_inverse +mdp.hinet.FlowNode.execute mdp.hinet.FlowNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.OnlineNode.training_type mdp.OnlineNode-class.html#training_type +mdp.OnlineNode._train_seq mdp.OnlineNode-class.html#_train_seq +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.hinet.FlowNode.flow mdp.hinet.FlowNode-class.html#flow +mdp.OnlineNode.get_current_train_iteration mdp.OnlineNode-class.html#get_current_train_iteration +mdp.Node._train mdp.Node-class.html#_train +mdp.OnlineNode._get_supported_training_types mdp.OnlineNode-class.html#_get_supported_training_types +mdp.OnlineNode.train mdp.OnlineNode-class.html#train +mdp.OnlineNode.numx_rng mdp.OnlineNode-class.html#numx_rng +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.hinet.OnlineFlowNode._set_numx_rng mdp.hinet.OnlineFlowNode-class.html#_set_numx_rng +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.hinet.FlowNode._set_output_dim mdp.hinet.FlowNode-class.html#_set_output_dim +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.hinet.FlowNode.is_trainable mdp.hinet.FlowNode-class.html#is_trainable +mdp.hinet.OnlineLayer mdp.hinet.OnlineLayer-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.hinet.Layer._pre_execution_checks mdp.hinet.Layer-class.html#_pre_execution_checks +mdp.Node.copy mdp.Node-class.html#copy +mdp.hinet.Layer._check_props mdp.hinet.Layer-class.html#_check_props +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.hinet.OnlineLayer._check_value_type_is_compatible mdp.hinet.OnlineLayer-class.html#_check_value_type_is_compatible +mdp.hinet.OnlineLayer._set_training_type_from_nodes mdp.hinet.OnlineLayer-class.html#_set_training_type_from_nodes +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.hinet.OnlineLayer.__init__ mdp.hinet.OnlineLayer-class.html#__init__ +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.OnlineNode._train_seq mdp.OnlineNode-class.html#_train_seq +mdp.hinet.Layer.inverse mdp.hinet.Layer-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.hinet.Layer.__contains__ mdp.hinet.Layer-class.html#__contains__ +mdp.hinet.Layer._execute mdp.hinet.Layer-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.OnlineNode.get_numx_rng mdp.OnlineNode-class.html#get_numx_rng +mdp.hinet.Layer.is_invertible mdp.hinet.Layer-class.html#is_invertible +mdp.hinet.OnlineLayer._check_compatibility mdp.hinet.OnlineLayer-class.html#_check_compatibility +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.hinet.Layer._get_output_dim_from_nodes mdp.hinet.Layer-class.html#_get_output_dim_from_nodes +mdp.hinet.Layer._train mdp.hinet.Layer-class.html#_train +mdp.hinet.Layer.__len__ mdp.hinet.Layer-class.html#__len__ +mdp.OnlineNode.__repr__ mdp.OnlineNode-class.html#__repr__ +mdp.hinet.OnlineLayer._get_train_seq mdp.hinet.OnlineLayer-class.html#_get_train_seq +mdp.hinet.Layer.__getitem__ mdp.hinet.Layer-class.html#__getitem__ +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.hinet.OnlineLayer.set_training_type mdp.hinet.OnlineLayer-class.html#set_training_type +mdp.hinet.Layer._set_dtype mdp.hinet.Layer-class.html#_set_dtype +mdp.OnlineNode._check_params mdp.OnlineNode-class.html#_check_params +mdp.hinet.Layer.stop_training mdp.hinet.Layer-class.html#stop_training +mdp.hinet.Layer.__iter__ mdp.hinet.Layer-class.html#__iter__ +mdp.hinet.Layer.train mdp.hinet.Layer-class.html#train +mdp.OnlineNode.__add__ mdp.OnlineNode-class.html#__add__ +mdp.hinet.Layer._stop_training mdp.hinet.Layer-class.html#_stop_training +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.OnlineNode._pre_inversion_checks mdp.OnlineNode-class.html#_pre_inversion_checks +mdp.hinet.Layer._get_supported_dtypes mdp.hinet.Layer-class.html#_get_supported_dtypes +mdp.OnlineNode._check_input mdp.OnlineNode-class.html#_check_input +mdp.hinet.Layer._inverse mdp.hinet.Layer-class.html#_inverse +mdp.hinet.Layer.execute mdp.hinet.Layer-class.html#execute +mdp.Node.save mdp.Node-class.html#save +mdp.OnlineNode.training_type mdp.OnlineNode-class.html#training_type +mdp.OnlineNode.set_numx_rng mdp.OnlineNode-class.html#set_numx_rng +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.OnlineNode.get_current_train_iteration mdp.OnlineNode-class.html#get_current_train_iteration +mdp.OnlineNode._get_supported_training_types mdp.OnlineNode-class.html#_get_supported_training_types +mdp.OnlineNode.numx_rng mdp.OnlineNode-class.html#numx_rng +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.hinet.OnlineLayer._set_numx_rng mdp.hinet.OnlineLayer-class.html#_set_numx_rng +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.hinet.Layer.is_trainable mdp.hinet.Layer-class.html#is_trainable +mdp.hinet.Rectangular2dSwitchboard mdp.hinet.Rectangular2dSwitchboard-class.html +mdp.hinet.ChannelSwitchboard.get_out_channel_input mdp.hinet.ChannelSwitchboard-class.html#get_out_channel_input +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.hinet.ChannelSwitchboard.get_out_channels_input_channels mdp.hinet.ChannelSwitchboard-class.html#get_out_channels_input_channels +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.hinet.Rectangular2dSwitchboard.__init__ mdp.hinet.Rectangular2dSwitchboard-class.html#__init__ +mdp.hinet.Switchboard._get_supported_dtypes mdp.hinet.Switchboard-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.hinet.Switchboard._execute mdp.hinet.Switchboard-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.hinet.Switchboard.is_invertible mdp.hinet.Switchboard-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.hinet.Switchboard.inverse mdp.hinet.Switchboard-class.html#inverse +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.hinet.Switchboard._inverse mdp.hinet.Switchboard-class.html#_inverse +mdp.hinet.Switchboard.execute mdp.hinet.Switchboard-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.hinet.ChannelSwitchboard.get_out_channel_node mdp.hinet.ChannelSwitchboard-class.html#get_out_channel_node +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.hinet.Switchboard.is_trainable mdp.hinet.Switchboard-class.html#is_trainable +mdp.hinet.Rectangular2dSwitchboardException mdp.hinet.Rectangular2dSwitchboardException-class.html +mdp.hinet.SameInputLayer mdp.hinet.SameInputLayer-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.hinet.SameInputLayer._pre_execution_checks mdp.hinet.SameInputLayer-class.html#_pre_execution_checks +mdp.hinet.Layer._check_props mdp.hinet.Layer-class.html#_check_props +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.hinet.SameInputLayer.__init__ mdp.hinet.SameInputLayer-class.html#__init__ +mdp.hinet.Layer.inverse mdp.hinet.Layer-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.hinet.Layer.__contains__ mdp.hinet.Layer-class.html#__contains__ +mdp.hinet.SameInputLayer._execute mdp.hinet.SameInputLayer-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.hinet.SameInputLayer.is_invertible mdp.hinet.SameInputLayer-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.hinet.Layer._get_output_dim_from_nodes mdp.hinet.Layer-class.html#_get_output_dim_from_nodes +mdp.hinet.SameInputLayer._train mdp.hinet.SameInputLayer-class.html#_train +mdp.hinet.Layer.__len__ mdp.hinet.Layer-class.html#__len__ +mdp.hinet.Layer._get_train_seq mdp.hinet.Layer-class.html#_get_train_seq +mdp.hinet.Layer.__getitem__ mdp.hinet.Layer-class.html#__getitem__ +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.hinet.Layer._get_supported_dtypes mdp.hinet.Layer-class.html#_get_supported_dtypes +mdp.hinet.Layer._set_dtype mdp.hinet.Layer-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.hinet.Layer.stop_training mdp.hinet.Layer-class.html#stop_training +mdp.hinet.Layer.__iter__ mdp.hinet.Layer-class.html#__iter__ +mdp.hinet.SameInputLayer.train mdp.hinet.SameInputLayer-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.hinet.Layer._stop_training mdp.hinet.Layer-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.hinet.Layer._inverse mdp.hinet.Layer-class.html#_inverse +mdp.hinet.SameInputLayer.execute mdp.hinet.SameInputLayer-class.html#execute +mdp.Node.save mdp.Node-class.html#save +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.hinet.Layer.is_trainable mdp.hinet.Layer-class.html#is_trainable +mdp.hinet.SameInputOnlineLayer mdp.hinet.SameInputOnlineLayer-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.hinet.SameInputLayer._pre_execution_checks mdp.hinet.SameInputLayer-class.html#_pre_execution_checks +mdp.Node.copy mdp.Node-class.html#copy +mdp.hinet.Layer._check_props mdp.hinet.Layer-class.html#_check_props +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.hinet.OnlineLayer._check_value_type_is_compatible mdp.hinet.OnlineLayer-class.html#_check_value_type_is_compatible +mdp.hinet.OnlineLayer._set_training_type_from_nodes mdp.hinet.OnlineLayer-class.html#_set_training_type_from_nodes +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.hinet.SameInputOnlineLayer.__init__ mdp.hinet.SameInputOnlineLayer-class.html#__init__ +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.OnlineNode._train_seq mdp.OnlineNode-class.html#_train_seq +mdp.hinet.Layer.inverse mdp.hinet.Layer-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.hinet.Layer.__contains__ mdp.hinet.Layer-class.html#__contains__ +mdp.hinet.SameInputLayer._execute mdp.hinet.SameInputLayer-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.OnlineNode.get_numx_rng mdp.OnlineNode-class.html#get_numx_rng +mdp.hinet.SameInputLayer.is_invertible mdp.hinet.SameInputLayer-class.html#is_invertible +mdp.hinet.OnlineLayer._check_compatibility mdp.hinet.OnlineLayer-class.html#_check_compatibility +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.hinet.Layer._get_output_dim_from_nodes mdp.hinet.Layer-class.html#_get_output_dim_from_nodes +mdp.hinet.SameInputLayer._train mdp.hinet.SameInputLayer-class.html#_train +mdp.hinet.Layer.__len__ mdp.hinet.Layer-class.html#__len__ +mdp.OnlineNode.__repr__ mdp.OnlineNode-class.html#__repr__ +mdp.hinet.OnlineLayer._get_train_seq mdp.hinet.OnlineLayer-class.html#_get_train_seq +mdp.hinet.Layer.__getitem__ mdp.hinet.Layer-class.html#__getitem__ +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.hinet.OnlineLayer.set_training_type mdp.hinet.OnlineLayer-class.html#set_training_type +mdp.hinet.Layer._set_dtype mdp.hinet.Layer-class.html#_set_dtype +mdp.OnlineNode._check_params mdp.OnlineNode-class.html#_check_params +mdp.hinet.Layer.stop_training mdp.hinet.Layer-class.html#stop_training +mdp.hinet.Layer.__iter__ mdp.hinet.Layer-class.html#__iter__ +mdp.hinet.SameInputLayer.train mdp.hinet.SameInputLayer-class.html#train +mdp.OnlineNode.__add__ mdp.OnlineNode-class.html#__add__ +mdp.hinet.Layer._stop_training mdp.hinet.Layer-class.html#_stop_training +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.OnlineNode._pre_inversion_checks mdp.OnlineNode-class.html#_pre_inversion_checks +mdp.hinet.Layer._get_supported_dtypes mdp.hinet.Layer-class.html#_get_supported_dtypes +mdp.OnlineNode._check_input mdp.OnlineNode-class.html#_check_input +mdp.hinet.Layer._inverse mdp.hinet.Layer-class.html#_inverse +mdp.hinet.SameInputLayer.execute mdp.hinet.SameInputLayer-class.html#execute +mdp.Node.save mdp.Node-class.html#save +mdp.OnlineNode.training_type mdp.OnlineNode-class.html#training_type +mdp.OnlineNode.set_numx_rng mdp.OnlineNode-class.html#set_numx_rng +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.OnlineNode.get_current_train_iteration mdp.OnlineNode-class.html#get_current_train_iteration +mdp.OnlineNode._get_supported_training_types mdp.OnlineNode-class.html#_get_supported_training_types +mdp.OnlineNode.numx_rng mdp.OnlineNode-class.html#numx_rng +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.hinet.OnlineLayer._set_numx_rng mdp.hinet.OnlineLayer-class.html#_set_numx_rng +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.hinet.Layer.is_trainable mdp.hinet.Layer-class.html#is_trainable +mdp.hinet.Switchboard mdp.hinet.Switchboard-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.hinet.Switchboard.__init__ mdp.hinet.Switchboard-class.html#__init__ +mdp.hinet.Switchboard._get_supported_dtypes mdp.hinet.Switchboard-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.hinet.Switchboard._execute mdp.hinet.Switchboard-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.hinet.Switchboard.is_invertible mdp.hinet.Switchboard-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.hinet.Switchboard.inverse mdp.hinet.Switchboard-class.html#inverse +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.hinet.Switchboard._inverse mdp.hinet.Switchboard-class.html#_inverse +mdp.hinet.Switchboard.execute mdp.hinet.Switchboard-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.hinet.Switchboard.is_trainable mdp.hinet.Switchboard-class.html#is_trainable +mdp.hinet.SwitchboardException mdp.hinet.SwitchboardException-class.html +mdp.hinet.htmlvisitor.HiNetHTMLVisitor mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._visit_layer mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_visit_layer +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._visit_clonelayer mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_visit_clonelayer +mdp.hinet.htmlvisitor.HiNetHTMLVisitor.__init__ mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#__init__ +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._open_node_env mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_open_node_env +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._visit_sameinputlayer mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_visit_sameinputlayer +mdp.hinet.htmlvisitor.HiNetHTMLVisitor.hinet_css mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#hinet_css +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._close_node_env mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_close_node_env +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._CSS_FILENAME mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_CSS_FILENAME +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._visit_standard_node mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_visit_standard_node +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._write_node_header mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_write_node_header +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._visit_node mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_visit_node +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._visit_flownode mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_visit_flownode +mdp.hinet.htmlvisitor.HiNetHTMLVisitor.convert_flow mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#convert_flow +mdp.hinet.htmlvisitor.HiNetXHTMLVisitor mdp.hinet.htmlvisitor.HiNetXHTMLVisitor-class.html +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._visit_layer mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_visit_layer +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._visit_clonelayer mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_visit_clonelayer +mdp.hinet.htmlvisitor.HiNetHTMLVisitor.__init__ mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#__init__ +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._open_node_env mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_open_node_env +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._visit_standard_node mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_visit_standard_node +mdp.hinet.htmlvisitor.HiNetHTMLVisitor.hinet_css mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#hinet_css +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._close_node_env mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_close_node_env +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._CSS_FILENAME mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_CSS_FILENAME +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._visit_sameinputlayer mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_visit_sameinputlayer +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._write_node_header mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_write_node_header +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._visit_node mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_visit_node +mdp.hinet.htmlvisitor.HiNetHTMLVisitor._visit_flownode mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html#_visit_flownode +mdp.hinet.htmlvisitor.HiNetXHTMLVisitor.convert_flow mdp.hinet.htmlvisitor.HiNetXHTMLVisitor-class.html#convert_flow +mdp.hinet.htmlvisitor.NewlineWriteFile mdp.hinet.htmlvisitor.NewlineWriteFile-class.html +mdp.hinet.htmlvisitor.NewlineWriteFile.__getattr__ mdp.hinet.htmlvisitor.NewlineWriteFile-class.html#__getattr__ +mdp.hinet.htmlvisitor.NewlineWriteFile.write mdp.hinet.htmlvisitor.NewlineWriteFile-class.html#write +mdp.hinet.htmlvisitor.NewlineWriteFile.__init__ mdp.hinet.htmlvisitor.NewlineWriteFile-class.html#__init__ +mdp.nodes.ARDRegressionScikitsLearnNode mdp.nodes.ARDRegressionScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.ARDRegressionScikitsLearnNode.__init__ mdp.nodes.ARDRegressionScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.ARDRegressionScikitsLearnNode._execute mdp.nodes.ARDRegressionScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.ARDRegressionScikitsLearnNode.is_invertible mdp.nodes.ARDRegressionScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.ARDRegressionScikitsLearnNode.stop_training mdp.nodes.ARDRegressionScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.ARDRegressionScikitsLearnNode._get_supported_dtypes mdp.nodes.ARDRegressionScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.ARDRegressionScikitsLearnNode._stop_training mdp.nodes.ARDRegressionScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.ARDRegressionScikitsLearnNode.execute mdp.nodes.ARDRegressionScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.ARDRegressionScikitsLearnNode.is_trainable mdp.nodes.ARDRegressionScikitsLearnNode-class.html#is_trainable +mdp.nodes.AdaptiveCutoffNode mdp.nodes.AdaptiveCutoffNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.AdaptiveCutoffNode.__init__ mdp.nodes.AdaptiveCutoffNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.AdaptiveCutoffNode._execute mdp.nodes.AdaptiveCutoffNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.HistogramNode._train mdp.nodes.HistogramNode-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.AdaptiveCutoffNode.stop_training mdp.nodes.AdaptiveCutoffNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.AdaptiveCutoffNode._get_supported_dtypes mdp.nodes.AdaptiveCutoffNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.AdaptiveCutoffNode._stop_training mdp.nodes.AdaptiveCutoffNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.AdaptiveCutoffNode.execute mdp.nodes.AdaptiveCutoffNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.nodes.HistogramNode.train mdp.nodes.HistogramNode-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.BayesianRidgeScikitsLearnNode mdp.nodes.BayesianRidgeScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.BayesianRidgeScikitsLearnNode.__init__ mdp.nodes.BayesianRidgeScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.BayesianRidgeScikitsLearnNode._execute mdp.nodes.BayesianRidgeScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.BayesianRidgeScikitsLearnNode.is_invertible mdp.nodes.BayesianRidgeScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.BayesianRidgeScikitsLearnNode.stop_training mdp.nodes.BayesianRidgeScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.BayesianRidgeScikitsLearnNode._get_supported_dtypes mdp.nodes.BayesianRidgeScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.BayesianRidgeScikitsLearnNode._stop_training mdp.nodes.BayesianRidgeScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.BayesianRidgeScikitsLearnNode.execute mdp.nodes.BayesianRidgeScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.BayesianRidgeScikitsLearnNode.is_trainable mdp.nodes.BayesianRidgeScikitsLearnNode-class.html#is_trainable +mdp.nodes.BinarizerScikitsLearnNode mdp.nodes.BinarizerScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.BinarizerScikitsLearnNode.__init__ mdp.nodes.BinarizerScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.BinarizerScikitsLearnNode._execute mdp.nodes.BinarizerScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.BinarizerScikitsLearnNode.is_invertible mdp.nodes.BinarizerScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.BinarizerScikitsLearnNode.stop_training mdp.nodes.BinarizerScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.BinarizerScikitsLearnNode._get_supported_dtypes mdp.nodes.BinarizerScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.BinarizerScikitsLearnNode._stop_training mdp.nodes.BinarizerScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.BinarizerScikitsLearnNode.execute mdp.nodes.BinarizerScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.BinarizerScikitsLearnNode.is_trainable mdp.nodes.BinarizerScikitsLearnNode-class.html#is_trainable +mdp.nodes.CCAScikitsLearnNode mdp.nodes.CCAScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.CCAScikitsLearnNode.__init__ mdp.nodes.CCAScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.CCAScikitsLearnNode._execute mdp.nodes.CCAScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.CCAScikitsLearnNode.is_invertible mdp.nodes.CCAScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.CCAScikitsLearnNode.stop_training mdp.nodes.CCAScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.CCAScikitsLearnNode._get_supported_dtypes mdp.nodes.CCAScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.CCAScikitsLearnNode._stop_training mdp.nodes.CCAScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.CCAScikitsLearnNode.execute mdp.nodes.CCAScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.CCAScikitsLearnNode.is_trainable mdp.nodes.CCAScikitsLearnNode-class.html#is_trainable +mdp.nodes.CCIPCANode mdp.nodes.CCIPCANode-class.html +mdp.nodes.CCIPCANode.get_reduced_dimsensionality mdp.nodes.CCIPCANode-class.html#get_reduced_dimsensionality +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.OnlineNode._pre_execution_checks mdp.OnlineNode-class.html#_pre_execution_checks +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.CCIPCANode.get_var_tot mdp.nodes.CCIPCANode-class.html#get_var_tot +mdp.OnlineNode.set_numx_rng mdp.OnlineNode-class.html#set_numx_rng +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.CCIPCANode.get_projmatrix mdp.nodes.CCIPCANode-class.html#get_projmatrix +mdp.nodes.CCIPCANode.__init__ mdp.nodes.CCIPCANode-class.html#__init__ +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.nodes.CCIPCANode.inverse mdp.nodes.CCIPCANode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.CCIPCANode._execute mdp.nodes.CCIPCANode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.OnlineNode.get_numx_rng mdp.OnlineNode-class.html#get_numx_rng +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.CCIPCANode._train mdp.nodes.CCIPCANode-class.html#_train +mdp.OnlineNode.numx_rng mdp.OnlineNode-class.html#numx_rng +mdp.OnlineNode._get_train_seq mdp.OnlineNode-class.html#_get_train_seq +mdp.nodes.CCIPCANode._inverse mdp.nodes.CCIPCANode-class.html#_inverse +mdp.OnlineNode.set_training_type mdp.OnlineNode-class.html#set_training_type +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.OnlineNode._set_numx_rng mdp.OnlineNode-class.html#_set_numx_rng +mdp.nodes.CCIPCANode.init_eigen_vectors mdp.nodes.CCIPCANode-class.html#init_eigen_vectors +mdp.nodes.CCIPCANode._check_params mdp.nodes.CCIPCANode-class.html#_check_params +mdp.OnlineNode.stop_training mdp.OnlineNode-class.html#stop_training +mdp.OnlineNode.get_current_train_iteration mdp.OnlineNode-class.html#get_current_train_iteration +mdp.nodes.CCIPCANode.train mdp.nodes.CCIPCANode-class.html#train +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.OnlineNode.__add__ mdp.OnlineNode-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.OnlineNode._pre_inversion_checks mdp.OnlineNode-class.html#_pre_inversion_checks +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.OnlineNode._check_input mdp.OnlineNode-class.html#_check_input +mdp.nodes.CCIPCANode._amnesic mdp.nodes.CCIPCANode-class.html#_amnesic +mdp.nodes.CCIPCANode.execute mdp.nodes.CCIPCANode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.OnlineNode.training_type mdp.OnlineNode-class.html#training_type +mdp.nodes.CCIPCANode.d mdp.nodes.CCIPCANode-class.html#d +mdp.OnlineNode._train_seq mdp.OnlineNode-class.html#_train_seq +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.CCIPCANode.get_recmatrix mdp.nodes.CCIPCANode-class.html#get_recmatrix +mdp.nodes.CCIPCANode.__repr__ mdp.nodes.CCIPCANode-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.nodes.CCIPCANode.v mdp.nodes.CCIPCANode-class.html#v +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.OnlineNode._get_supported_training_types mdp.OnlineNode-class.html#_get_supported_training_types +mdp.nodes.CCIPCAWhiteningNode mdp.nodes.CCIPCAWhiteningNode-class.html +mdp.nodes.CCIPCANode.get_reduced_dimsensionality mdp.nodes.CCIPCANode-class.html#get_reduced_dimsensionality +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.nodes.CCIPCAWhiteningNode.get_eigenvectors mdp.nodes.CCIPCAWhiteningNode-class.html#get_eigenvectors +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.OnlineNode._pre_execution_checks mdp.OnlineNode-class.html#_pre_execution_checks +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.OnlineNode.get_numx_rng mdp.OnlineNode-class.html#get_numx_rng +mdp.OnlineNode.set_numx_rng mdp.OnlineNode-class.html#set_numx_rng +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.CCIPCANode.get_projmatrix mdp.nodes.CCIPCANode-class.html#get_projmatrix +mdp.nodes.CCIPCANode.__init__ mdp.nodes.CCIPCANode-class.html#__init__ +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.nodes.CCIPCANode.inverse mdp.nodes.CCIPCANode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.CCIPCANode._execute mdp.nodes.CCIPCANode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.CCIPCANode.get_var_tot mdp.nodes.CCIPCANode-class.html#get_var_tot +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.CCIPCAWhiteningNode._train mdp.nodes.CCIPCAWhiteningNode-class.html#_train +mdp.OnlineNode.numx_rng mdp.OnlineNode-class.html#numx_rng +mdp.OnlineNode._get_train_seq mdp.OnlineNode-class.html#_get_train_seq +mdp.nodes.CCIPCANode._amnesic mdp.nodes.CCIPCANode-class.html#_amnesic +mdp.OnlineNode.set_training_type mdp.OnlineNode-class.html#set_training_type +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.OnlineNode._set_numx_rng mdp.OnlineNode-class.html#_set_numx_rng +mdp.nodes.CCIPCANode.init_eigen_vectors mdp.nodes.CCIPCANode-class.html#init_eigen_vectors +mdp.nodes.CCIPCANode._check_params mdp.nodes.CCIPCANode-class.html#_check_params +mdp.OnlineNode.stop_training mdp.OnlineNode-class.html#stop_training +mdp.OnlineNode.get_current_train_iteration mdp.OnlineNode-class.html#get_current_train_iteration +mdp.nodes.CCIPCAWhiteningNode.train mdp.nodes.CCIPCAWhiteningNode-class.html#train +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.OnlineNode.__add__ mdp.OnlineNode-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.OnlineNode._pre_inversion_checks mdp.OnlineNode-class.html#_pre_inversion_checks +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.OnlineNode._check_input mdp.OnlineNode-class.html#_check_input +mdp.nodes.CCIPCANode._inverse mdp.nodes.CCIPCANode-class.html#_inverse +mdp.nodes.CCIPCANode.execute mdp.nodes.CCIPCANode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.OnlineNode.training_type mdp.OnlineNode-class.html#training_type +mdp.nodes.CCIPCANode.d mdp.nodes.CCIPCANode-class.html#d +mdp.OnlineNode._train_seq mdp.OnlineNode-class.html#_train_seq +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.CCIPCAWhiteningNode.get_recmatrix mdp.nodes.CCIPCAWhiteningNode-class.html#get_recmatrix +mdp.nodes.CCIPCANode.__repr__ mdp.nodes.CCIPCANode-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.nodes.CCIPCANode.v mdp.nodes.CCIPCANode-class.html#v +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.OnlineNode._get_supported_training_types mdp.OnlineNode-class.html#_get_supported_training_types +mdp.nodes.Convolution2DNode mdp.nodes.Convolution2DNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.nodes.Convolution2DNode.get_filters mdp.nodes.Convolution2DNode-class.html#get_filters +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.nodes.Convolution2DNode._pre_execution_checks mdp.nodes.Convolution2DNode-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.nodes.Convolution2DNode.filters mdp.nodes.Convolution2DNode-class.html#filters +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.Convolution2DNode.__init__ mdp.nodes.Convolution2DNode-class.html#__init__ +mdp.nodes.Convolution2DNode._get_supported_dtypes mdp.nodes.Convolution2DNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.Convolution2DNode.set_filters mdp.nodes.Convolution2DNode-class.html#set_filters +mdp.nodes.Convolution2DNode._execute mdp.nodes.Convolution2DNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.Convolution2DNode.is_invertible mdp.nodes.Convolution2DNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.nodes.Convolution2DNode.set_boundary mdp.nodes.Convolution2DNode-class.html#set_boundary +mdp.nodes.Convolution2DNode.boundary mdp.nodes.Convolution2DNode-class.html#boundary +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.Convolution2DNode.approach mdp.nodes.Convolution2DNode-class.html#approach +mdp.nodes.Convolution2DNode.output_shape mdp.nodes.Convolution2DNode-class.html#output_shape +mdp.nodes.Convolution2DNode.get_boundary mdp.nodes.Convolution2DNode-class.html#get_boundary +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.nodes.Convolution2DNode.input_shape mdp.nodes.Convolution2DNode-class.html#input_shape +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.Convolution2DNode.execute mdp.nodes.Convolution2DNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.nodes.Convolution2DNode.mode mdp.nodes.Convolution2DNode-class.html#mode +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.nodes.Convolution2DNode.is_trainable mdp.nodes.Convolution2DNode-class.html#is_trainable +mdp.nodes.CountVectorizerScikitsLearnNode mdp.nodes.CountVectorizerScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.CountVectorizerScikitsLearnNode.__init__ mdp.nodes.CountVectorizerScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.CountVectorizerScikitsLearnNode._execute mdp.nodes.CountVectorizerScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.CountVectorizerScikitsLearnNode.is_invertible mdp.nodes.CountVectorizerScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.CountVectorizerScikitsLearnNode.stop_training mdp.nodes.CountVectorizerScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.CountVectorizerScikitsLearnNode._get_supported_dtypes mdp.nodes.CountVectorizerScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.CountVectorizerScikitsLearnNode._stop_training mdp.nodes.CountVectorizerScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.CountVectorizerScikitsLearnNode.execute mdp.nodes.CountVectorizerScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.CountVectorizerScikitsLearnNode.is_trainable mdp.nodes.CountVectorizerScikitsLearnNode-class.html#is_trainable +mdp.nodes.CuBICANode mdp.nodes.CuBICANode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.nodes.ICANode._set_input_dim mdp.nodes.ICANode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.ICANode.__init__ mdp.nodes.ICANode-class.html#__init__ +mdp.nodes.ICANode.inverse mdp.nodes.ICANode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.ICANode._execute mdp.nodes.ICANode-class.html#_execute +mdp.nodes.CuBICANode.filters mdp.nodes.CuBICANode-class.html#filters +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.nodes.CuBICANode.white mdp.nodes.CuBICANode-class.html#white +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.nodes.CuBICANode.core mdp.nodes.CuBICANode-class.html#core +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.ICANode.stop_training mdp.nodes.ICANode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.CuBICANode.convergence mdp.nodes.CuBICANode-class.html#convergence +mdp.nodes.ICANode._stop_training mdp.nodes.ICANode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.ICANode._inverse mdp.nodes.ICANode-class.html#_inverse +mdp.nodes.ICANode.execute mdp.nodes.ICANode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.CutoffNode mdp.nodes.CutoffNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.CutoffNode.__init__ mdp.nodes.CutoffNode-class.html#__init__ +mdp.nodes.CutoffNode._get_supported_dtypes mdp.nodes.CutoffNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.CutoffNode._execute mdp.nodes.CutoffNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.CutoffNode.is_invertible mdp.nodes.CutoffNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.CutoffNode.execute mdp.nodes.CutoffNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.nodes.CutoffNode.is_trainable mdp.nodes.CutoffNode-class.html#is_trainable +mdp.nodes.DiscreteHopfieldClassifier mdp.nodes.DiscreteHopfieldClassifier-class.html +mdp.nodes.DiscreteHopfieldClassifier._label mdp.nodes.DiscreteHopfieldClassifier-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.nodes.DiscreteHopfieldClassifier.memory_size mdp.nodes.DiscreteHopfieldClassifier-class.html#memory_size +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.DiscreteHopfieldClassifier._stop_training mdp.nodes.DiscreteHopfieldClassifier-class.html#_stop_training +mdp.nodes.DiscreteHopfieldClassifier.__init__ mdp.nodes.DiscreteHopfieldClassifier-class.html#__init__ +mdp.nodes.DiscreteHopfieldClassifier._get_supported_dtypes mdp.nodes.DiscreteHopfieldClassifier-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.nodes.DiscreteHopfieldClassifier._train_one mdp.nodes.DiscreteHopfieldClassifier-class.html#_train_one +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.nodes.DiscreteHopfieldClassifier.label mdp.nodes.DiscreteHopfieldClassifier-class.html#label +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.DiscreteHopfieldClassifier._train mdp.nodes.DiscreteHopfieldClassifier-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.DiscreteHopfieldClassifier.stop_training mdp.nodes.DiscreteHopfieldClassifier-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.DiscreteHopfieldClassifier.train mdp.nodes.DiscreteHopfieldClassifier-class.html#train +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.DiscreteHopfieldClassifier._label_one mdp.nodes.DiscreteHopfieldClassifier-class.html#_label_one +mdp.nodes.DiscreteHopfieldClassifier.load_parameter mdp.nodes.DiscreteHopfieldClassifier-class.html#load_parameter +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.ClassifierNode.prob mdp.ClassifierNode-class.html#prob +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.ClassifierNode._prob mdp.ClassifierNode-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.ElasticNetCVScikitsLearnNode mdp.nodes.ElasticNetCVScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.ElasticNetCVScikitsLearnNode.__init__ mdp.nodes.ElasticNetCVScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.ElasticNetCVScikitsLearnNode._execute mdp.nodes.ElasticNetCVScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.ElasticNetCVScikitsLearnNode.is_invertible mdp.nodes.ElasticNetCVScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.ElasticNetCVScikitsLearnNode.stop_training mdp.nodes.ElasticNetCVScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.ElasticNetCVScikitsLearnNode._get_supported_dtypes mdp.nodes.ElasticNetCVScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.ElasticNetCVScikitsLearnNode._stop_training mdp.nodes.ElasticNetCVScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.ElasticNetCVScikitsLearnNode.execute mdp.nodes.ElasticNetCVScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.ElasticNetCVScikitsLearnNode.is_trainable mdp.nodes.ElasticNetCVScikitsLearnNode-class.html#is_trainable +mdp.nodes.ElasticNetScikitsLearnNode mdp.nodes.ElasticNetScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.ElasticNetScikitsLearnNode.__init__ mdp.nodes.ElasticNetScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.ElasticNetScikitsLearnNode._execute mdp.nodes.ElasticNetScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.ElasticNetScikitsLearnNode.is_invertible mdp.nodes.ElasticNetScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.ElasticNetScikitsLearnNode.stop_training mdp.nodes.ElasticNetScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.ElasticNetScikitsLearnNode._get_supported_dtypes mdp.nodes.ElasticNetScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.ElasticNetScikitsLearnNode._stop_training mdp.nodes.ElasticNetScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.ElasticNetScikitsLearnNode.execute mdp.nodes.ElasticNetScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.ElasticNetScikitsLearnNode.is_trainable mdp.nodes.ElasticNetScikitsLearnNode-class.html#is_trainable +mdp.nodes.EtaComputerNode mdp.nodes.EtaComputerNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.nodes.EtaComputerNode._set_input_dim mdp.nodes.EtaComputerNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.EtaComputerNode.__init__ mdp.nodes.EtaComputerNode-class.html#__init__ +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.nodes.EtaComputerNode.get_eta mdp.nodes.EtaComputerNode-class.html#get_eta +mdp.Node._execute mdp.Node-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.EtaComputerNode._train mdp.nodes.EtaComputerNode-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.EtaComputerNode.stop_training mdp.nodes.EtaComputerNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.EtaComputerNode.train mdp.nodes.EtaComputerNode-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.EtaComputerNode._init_internals mdp.nodes.EtaComputerNode-class.html#_init_internals +mdp.nodes.EtaComputerNode._stop_training mdp.nodes.EtaComputerNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node.execute mdp.Node-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.FANode mdp.nodes.FANode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.nodes.FANode.generate_input mdp.nodes.FANode-class.html#generate_input +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.FANode.__init__ mdp.nodes.FANode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.FANode._execute mdp.nodes.FANode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.FANode.is_invertible mdp.nodes.FANode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.FANode._train mdp.nodes.FANode-class.html#_train +mdp.nodes.FANode.A mdp.nodes.FANode-class.html#A +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.FANode.stop_training mdp.nodes.FANode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.FANode.train mdp.nodes.FANode-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.FANode._stop_training mdp.nodes.FANode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.FANode.execute mdp.nodes.FANode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.nodes.FANode.mu mdp.nodes.FANode-class.html#mu +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.nodes.FANode.E_y_mtx mdp.nodes.FANode-class.html#E_y_mtx +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.FANode.sigma mdp.nodes.FANode-class.html#sigma +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.FDANode mdp.nodes.FDANode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.nodes.FDANode._train_fda mdp.nodes.FDANode-class.html#_train_fda +mdp.nodes.FDANode._update_means mdp.nodes.FDANode-class.html#_update_means +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.nodes.FDANode._check_train_args mdp.nodes.FDANode-class.html#_check_train_args +mdp.nodes.FDANode.avg mdp.nodes.FDANode-class.html#avg +mdp.nodes.FDANode.__init__ mdp.nodes.FDANode-class.html#__init__ +mdp.nodes.FDANode.inverse mdp.nodes.FDANode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.FDANode._train_means mdp.nodes.FDANode-class.html#_train_means +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.FDANode._train mdp.nodes.FDANode-class.html#_train +mdp.nodes.FDANode._get_train_seq mdp.nodes.FDANode-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.FDANode._stop_means mdp.nodes.FDANode-class.html#_stop_means +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.FDANode._inverse mdp.nodes.FDANode-class.html#_inverse +mdp.nodes.FDANode.execute mdp.nodes.FDANode-class.html#execute +mdp.nodes.FDANode._update_SW mdp.nodes.FDANode-class.html#_update_SW +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.nodes.FDANode._execute mdp.nodes.FDANode-class.html#_execute +mdp.nodes.FDANode.train mdp.nodes.FDANode-class.html#train +mdp.nodes.FDANode._stop_fda mdp.nodes.FDANode-class.html#_stop_fda +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.nodes.FDANode.v mdp.nodes.FDANode-class.html#v +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.FastICANode mdp.nodes.FastICANode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.nodes.ICANode._set_input_dim mdp.nodes.ICANode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.FastICANode._get_rsamples mdp.nodes.FastICANode-class.html#_get_rsamples +mdp.nodes.FastICANode.__init__ mdp.nodes.FastICANode-class.html#__init__ +mdp.nodes.ICANode.inverse mdp.nodes.ICANode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.ICANode._execute mdp.nodes.ICANode-class.html#_execute +mdp.nodes.FastICANode.filters mdp.nodes.FastICANode-class.html#filters +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.nodes.FastICANode.white mdp.nodes.FastICANode-class.html#white +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.nodes.FastICANode.core mdp.nodes.FastICANode-class.html#core +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.ICANode.stop_training mdp.nodes.ICANode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.FastICANode.convergence mdp.nodes.FastICANode-class.html#convergence +mdp.nodes.ICANode._stop_training mdp.nodes.ICANode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.ICANode._inverse mdp.nodes.ICANode-class.html#_inverse +mdp.nodes.ICANode.execute mdp.nodes.ICANode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.FastICAScikitsLearnNode mdp.nodes.FastICAScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.FastICAScikitsLearnNode.__init__ mdp.nodes.FastICAScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.FastICAScikitsLearnNode._execute mdp.nodes.FastICAScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.FastICAScikitsLearnNode.is_invertible mdp.nodes.FastICAScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.FastICAScikitsLearnNode.stop_training mdp.nodes.FastICAScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.FastICAScikitsLearnNode._get_supported_dtypes mdp.nodes.FastICAScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.FastICAScikitsLearnNode._stop_training mdp.nodes.FastICAScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.FastICAScikitsLearnNode.execute mdp.nodes.FastICAScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.FastICAScikitsLearnNode.is_trainable mdp.nodes.FastICAScikitsLearnNode-class.html#is_trainable +mdp.nodes.GMMHMMScikitsLearnNode mdp.nodes.GMMHMMScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.GMMHMMScikitsLearnNode.__init__ mdp.nodes.GMMHMMScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.GMMHMMScikitsLearnNode._execute mdp.nodes.GMMHMMScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.GMMHMMScikitsLearnNode.is_invertible mdp.nodes.GMMHMMScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.GMMHMMScikitsLearnNode.stop_training mdp.nodes.GMMHMMScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.GMMHMMScikitsLearnNode._get_supported_dtypes mdp.nodes.GMMHMMScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.GMMHMMScikitsLearnNode._stop_training mdp.nodes.GMMHMMScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.GMMHMMScikitsLearnNode.execute mdp.nodes.GMMHMMScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.GMMHMMScikitsLearnNode.is_trainable mdp.nodes.GMMHMMScikitsLearnNode-class.html#is_trainable +mdp.nodes.GMMScikitsLearnNode mdp.nodes.GMMScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.GMMScikitsLearnNode.__init__ mdp.nodes.GMMScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.GMMScikitsLearnNode._execute mdp.nodes.GMMScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.GMMScikitsLearnNode.is_invertible mdp.nodes.GMMScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.GMMScikitsLearnNode.stop_training mdp.nodes.GMMScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.GMMScikitsLearnNode._get_supported_dtypes mdp.nodes.GMMScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.GMMScikitsLearnNode._stop_training mdp.nodes.GMMScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.GMMScikitsLearnNode.execute mdp.nodes.GMMScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.GMMScikitsLearnNode.is_trainable mdp.nodes.GMMScikitsLearnNode-class.html#is_trainable +mdp.nodes.GNBScikitsLearnNode mdp.nodes.GNBScikitsLearnNode-class.html +mdp.nodes.GNBScikitsLearnNode._label mdp.nodes.GNBScikitsLearnNode-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.ClassifierCumulator._check_train_args mdp.ClassifierCumulator-class.html#_check_train_args +mdp.nodes.GNBScikitsLearnNode.__init__ mdp.nodes.GNBScikitsLearnNode-class.html#__init__ +mdp.nodes.GNBScikitsLearnNode._get_supported_dtypes mdp.nodes.GNBScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.GNBScikitsLearnNode.is_invertible mdp.nodes.GNBScikitsLearnNode-class.html#is_invertible +mdp.nodes.GNBScikitsLearnNode.label mdp.nodes.GNBScikitsLearnNode-class.html#label +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.ClassifierNode.prob mdp.ClassifierNode-class.html#prob +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.GNBScikitsLearnNode.stop_training mdp.nodes.GNBScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.ClassifierCumulator.train mdp.ClassifierCumulator-class.html#train +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.GNBScikitsLearnNode._stop_training mdp.nodes.GNBScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.ClassifierCumulator._train mdp.ClassifierCumulator-class.html#_train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.ClassifierNode._prob mdp.ClassifierNode-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.nodes.GNBScikitsLearnNode.is_trainable mdp.nodes.GNBScikitsLearnNode-class.html#is_trainable +mdp.nodes.GSFANode mdp.nodes.GSFANode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.GSFANode.__init__ mdp.nodes.GSFANode-class.html#__init__ +mdp.nodes.GSFANode.inverse mdp.nodes.GSFANode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.GSFANode._execute mdp.nodes.GSFANode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.GSFANode._train mdp.nodes.GSFANode-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.GSFANode.stop_training mdp.nodes.GSFANode-class.html#stop_training +mdp.nodes.GSFANode._set_range mdp.nodes.GSFANode-class.html#_set_range +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.GSFANode.train mdp.nodes.GSFANode-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.GSFANode._stop_training mdp.nodes.GSFANode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.GSFANode._inverse mdp.nodes.GSFANode-class.html#_inverse +mdp.nodes.GSFANode.execute mdp.nodes.GSFANode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.GaussianClassifier mdp.nodes.GaussianClassifier-class.html +mdp.nodes.GaussianClassifier._update_covs mdp.nodes.GaussianClassifier-class.html#_update_covs +mdp.nodes.GaussianClassifier._label mdp.nodes.GaussianClassifier-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.nodes.GaussianClassifier._check_train_args mdp.nodes.GaussianClassifier-class.html#_check_train_args +mdp.nodes.GaussianClassifier.class_probabilities mdp.nodes.GaussianClassifier-class.html#class_probabilities +mdp.nodes.GaussianClassifier.__init__ mdp.nodes.GaussianClassifier-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.GaussianClassifier.is_invertible mdp.nodes.GaussianClassifier-class.html#is_invertible +mdp.nodes.GaussianClassifier.label mdp.nodes.GaussianClassifier-class.html#label +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.GaussianClassifier._train mdp.nodes.GaussianClassifier-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.nodes.GaussianClassifier._gaussian_prob mdp.nodes.GaussianClassifier-class.html#_gaussian_prob +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.GaussianClassifier.stop_training mdp.nodes.GaussianClassifier-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.GaussianClassifier.train mdp.nodes.GaussianClassifier-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.GaussianClassifier._stop_training mdp.nodes.GaussianClassifier-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.nodes.GaussianClassifier.prob mdp.nodes.GaussianClassifier-class.html#prob +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.nodes.GaussianClassifier._prob mdp.nodes.GaussianClassifier-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.GaussianHMMScikitsLearnNode mdp.nodes.GaussianHMMScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.GaussianHMMScikitsLearnNode.__init__ mdp.nodes.GaussianHMMScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.GaussianHMMScikitsLearnNode._execute mdp.nodes.GaussianHMMScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.GaussianHMMScikitsLearnNode.is_invertible mdp.nodes.GaussianHMMScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.GaussianHMMScikitsLearnNode.stop_training mdp.nodes.GaussianHMMScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.GaussianHMMScikitsLearnNode._get_supported_dtypes mdp.nodes.GaussianHMMScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.GaussianHMMScikitsLearnNode._stop_training mdp.nodes.GaussianHMMScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.GaussianHMMScikitsLearnNode.execute mdp.nodes.GaussianHMMScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.GaussianHMMScikitsLearnNode.is_trainable mdp.nodes.GaussianHMMScikitsLearnNode-class.html#is_trainable +mdp.nodes.GaussianProcessScikitsLearnNode mdp.nodes.GaussianProcessScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.GaussianProcessScikitsLearnNode.__init__ mdp.nodes.GaussianProcessScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.GaussianProcessScikitsLearnNode._execute mdp.nodes.GaussianProcessScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.GaussianProcessScikitsLearnNode.is_invertible mdp.nodes.GaussianProcessScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.GaussianProcessScikitsLearnNode.stop_training mdp.nodes.GaussianProcessScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.GaussianProcessScikitsLearnNode._get_supported_dtypes mdp.nodes.GaussianProcessScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.GaussianProcessScikitsLearnNode._stop_training mdp.nodes.GaussianProcessScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.GaussianProcessScikitsLearnNode.execute mdp.nodes.GaussianProcessScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.GaussianProcessScikitsLearnNode.is_trainable mdp.nodes.GaussianProcessScikitsLearnNode-class.html#is_trainable +mdp.nodes.GeneralExpansionNode mdp.nodes.GeneralExpansionNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.nodes.GeneralExpansionNode.expanded_dim mdp.nodes.GeneralExpansionNode-class.html#expanded_dim +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.GeneralExpansionNode.output_sizes mdp.nodes.GeneralExpansionNode-class.html#output_sizes +mdp.nodes.GeneralExpansionNode.__init__ mdp.nodes.GeneralExpansionNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.GeneralExpansionNode._execute mdp.nodes.GeneralExpansionNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.GeneralExpansionNode.is_invertible mdp.nodes.GeneralExpansionNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.GeneralExpansionNode.execute mdp.nodes.GeneralExpansionNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.nodes.GeneralExpansionNode.pseudo_inverse mdp.nodes.GeneralExpansionNode-class.html#pseudo_inverse +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.nodes.GeneralExpansionNode.is_trainable mdp.nodes.GeneralExpansionNode-class.html#is_trainable +mdp.nodes.GenericUnivariateSelectScikitsLearnNode mdp.nodes.GenericUnivariateSelectScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.GenericUnivariateSelectScikitsLearnNode.__init__ mdp.nodes.GenericUnivariateSelectScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.GenericUnivariateSelectScikitsLearnNode._execute mdp.nodes.GenericUnivariateSelectScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.GenericUnivariateSelectScikitsLearnNode.is_invertible mdp.nodes.GenericUnivariateSelectScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.GenericUnivariateSelectScikitsLearnNode.stop_training mdp.nodes.GenericUnivariateSelectScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.GenericUnivariateSelectScikitsLearnNode._get_supported_dtypes mdp.nodes.GenericUnivariateSelectScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.GenericUnivariateSelectScikitsLearnNode._stop_training mdp.nodes.GenericUnivariateSelectScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.GenericUnivariateSelectScikitsLearnNode.execute mdp.nodes.GenericUnivariateSelectScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.GenericUnivariateSelectScikitsLearnNode.is_trainable mdp.nodes.GenericUnivariateSelectScikitsLearnNode-class.html#is_trainable +mdp.nodes.GrowingNeuralGasExpansionNode mdp.nodes.GrowingNeuralGasExpansionNode-class.html +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.nodes.GrowingNeuralGasExpansionNode._set_input_dim mdp.nodes.GrowingNeuralGasExpansionNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.nodes.GrowingNeuralGasNode.get_nodes_position mdp.nodes.GrowingNeuralGasNode-class.html#get_nodes_position +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.GrowingNeuralGasExpansionNode.__init__ mdp.nodes.GrowingNeuralGasExpansionNode-class.html#__init__ +mdp.nodes.GrowingNeuralGasNode._remove_old_edges mdp.nodes.GrowingNeuralGasNode-class.html#_remove_old_edges +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.GrowingNeuralGasExpansionNode._execute mdp.nodes.GrowingNeuralGasExpansionNode-class.html#_execute +mdp.nodes.GrowingNeuralGasNode.graph mdp.nodes.GrowingNeuralGasNode-class.html#graph +mdp.nodes.GrowingNeuralGasNode._insert_new_node mdp.nodes.GrowingNeuralGasNode-class.html#_insert_new_node +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.GrowingNeuralGasExpansionNode.is_invertible mdp.nodes.GrowingNeuralGasExpansionNode-class.html#is_invertible +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.GrowingNeuralGasNode._add_node mdp.nodes.GrowingNeuralGasNode-class.html#_add_node +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.nodes.GrowingNeuralGasNode.nearest_neighbor mdp.nodes.GrowingNeuralGasNode-class.html#nearest_neighbor +mdp.nodes.GrowingNeuralGasNode._train mdp.nodes.GrowingNeuralGasNode-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.GrowingNeuralGasExpansionNode.stop_training mdp.nodes.GrowingNeuralGasExpansionNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.GrowingNeuralGasNode.train mdp.nodes.GrowingNeuralGasNode-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.GrowingNeuralGasNode._add_edge mdp.nodes.GrowingNeuralGasNode-class.html#_add_edge +mdp.nodes.GrowingNeuralGasExpansionNode._stop_training mdp.nodes.GrowingNeuralGasExpansionNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.GrowingNeuralGasNode._move_node mdp.nodes.GrowingNeuralGasNode-class.html#_move_node +mdp.nodes.GrowingNeuralGasExpansionNode.execute mdp.nodes.GrowingNeuralGasExpansionNode-class.html#execute +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.GrowingNeuralGasNode._get_nearest_nodes mdp.nodes.GrowingNeuralGasNode-class.html#_get_nearest_nodes +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.nodes.GrowingNeuralGasExpansionNode._set_output_dim mdp.nodes.GrowingNeuralGasExpansionNode-class.html#_set_output_dim +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.nodes.GrowingNeuralGasExpansionNode.is_trainable mdp.nodes.GrowingNeuralGasExpansionNode-class.html#is_trainable +mdp.nodes.GrowingNeuralGasNode mdp.nodes.GrowingNeuralGasNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.nodes.GrowingNeuralGasNode._set_input_dim mdp.nodes.GrowingNeuralGasNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.nodes.GrowingNeuralGasNode.get_nodes_position mdp.nodes.GrowingNeuralGasNode-class.html#get_nodes_position +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.GrowingNeuralGasNode.__init__ mdp.nodes.GrowingNeuralGasNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.Node._execute mdp.Node-class.html#_execute +mdp.nodes.GrowingNeuralGasNode.graph mdp.nodes.GrowingNeuralGasNode-class.html#graph +mdp.nodes.GrowingNeuralGasNode._insert_new_node mdp.nodes.GrowingNeuralGasNode-class.html#_insert_new_node +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.nodes.GrowingNeuralGasNode._add_node mdp.nodes.GrowingNeuralGasNode-class.html#_add_node +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.nodes.GrowingNeuralGasNode.nearest_neighbor mdp.nodes.GrowingNeuralGasNode-class.html#nearest_neighbor +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.GrowingNeuralGasNode._remove_old_edges mdp.nodes.GrowingNeuralGasNode-class.html#_remove_old_edges +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.GrowingNeuralGasNode._add_edge mdp.nodes.GrowingNeuralGasNode-class.html#_add_edge +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.GrowingNeuralGasNode._move_node mdp.nodes.GrowingNeuralGasNode-class.html#_move_node +mdp.Node.execute mdp.Node-class.html#execute +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.GrowingNeuralGasNode._get_nearest_nodes mdp.nodes.GrowingNeuralGasNode-class.html#_get_nearest_nodes +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.nodes.GrowingNeuralGasNode._train mdp.nodes.GrowingNeuralGasNode-class.html#_train +mdp.nodes.GrowingNeuralGasNode.train mdp.nodes.GrowingNeuralGasNode-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.HLLENode mdp.nodes.HLLENode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.nodes.HLLENode.training_projection mdp.nodes.HLLENode-class.html#training_projection +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.HLLENode.__init__ mdp.nodes.HLLENode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.LLENode._execute mdp.nodes.LLENode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.LLENode.is_invertible mdp.nodes.LLENode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.HLLENode.stop_training mdp.nodes.HLLENode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.HLLENode._stop_training mdp.nodes.HLLENode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.LLENode.execute mdp.nodes.LLENode-class.html#execute +mdp.nodes.LLENode._adjust_output_dim mdp.nodes.LLENode-class.html#_adjust_output_dim +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.nodes.HLLENode.desired_variance mdp.nodes.HLLENode-class.html#desired_variance +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.LLENode.is_trainable mdp.nodes.LLENode-class.html#is_trainable +mdp.nodes.HistogramNode mdp.nodes.HistogramNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.HistogramNode.__init__ mdp.nodes.HistogramNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.Node._execute mdp.Node-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.HistogramNode._train mdp.nodes.HistogramNode-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.HistogramNode.stop_training mdp.nodes.HistogramNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.HistogramNode._get_supported_dtypes mdp.nodes.HistogramNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.HistogramNode._stop_training mdp.nodes.HistogramNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node.execute mdp.Node-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.nodes.HistogramNode.train mdp.nodes.HistogramNode-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.HitParadeNode mdp.nodes.HitParadeNode-class.html +mdp.nodes.HitParadeNode.get_minima mdp.nodes.HitParadeNode-class.html#get_minima +mdp.nodes.HitParadeNode._set_input_dim mdp.nodes.HitParadeNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.HitParadeNode.__init__ mdp.nodes.HitParadeNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.Node._execute mdp.Node-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.HitParadeNode._train mdp.nodes.HitParadeNode-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.HitParadeNode._get_supported_dtypes mdp.nodes.HitParadeNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node.execute mdp.Node-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.nodes.HitParadeNode.get_maxima mdp.nodes.HitParadeNode-class.html#get_maxima +mdp.nodes.HitParadeNode.train mdp.nodes.HitParadeNode-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.ICANode mdp.nodes.ICANode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.nodes.ICANode._set_input_dim mdp.nodes.ICANode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.ICANode.__init__ mdp.nodes.ICANode-class.html#__init__ +mdp.nodes.ICANode.inverse mdp.nodes.ICANode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.ICANode._execute mdp.nodes.ICANode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.nodes.ICANode.core mdp.nodes.ICANode-class.html#core +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.ICANode.stop_training mdp.nodes.ICANode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.ICANode._stop_training mdp.nodes.ICANode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.ICANode._inverse mdp.nodes.ICANode-class.html#_inverse +mdp.nodes.ICANode.execute mdp.nodes.ICANode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.ISFANode mdp.nodes.ISFANode-class.html +mdp.nodes.ISFANode._adjust_ica_sfa_coeff mdp.nodes.ISFANode-class.html#_adjust_ica_sfa_coeff +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.nodes.ISFANode._fmt_prog_info mdp.nodes.ISFANode-class.html#_fmt_prog_info +mdp.nodes.ISFANode._set_input_dim mdp.nodes.ISFANode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.nodes.ISFANode._optimize mdp.nodes.ISFANode-class.html#_optimize +mdp.Node.copy mdp.Node-class.html#copy +mdp.nodes.ISFANode._get_eye mdp.nodes.ISFANode-class.html#_get_eye +mdp.nodes.ISFANode._fix_covs mdp.nodes.ISFANode-class.html#_fix_covs +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.ISFANode._do_sweep mdp.nodes.ISFANode-class.html#_do_sweep +mdp.nodes.ISFANode._get_contrast mdp.nodes.ISFANode-class.html#_get_contrast +mdp.nodes.ISFANode.__init__ mdp.nodes.ISFANode-class.html#__init__ +mdp.nodes.ISFANode.inverse mdp.nodes.ISFANode-class.html#inverse +mdp.nodes.ISFANode.RP mdp.nodes.ISFANode-class.html#RP +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.ISFANode._execute mdp.nodes.ISFANode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.nodes.ISFANode.RPC mdp.nodes.ISFANode-class.html#RPC +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.ISFANode._train mdp.nodes.ISFANode-class.html#_train +mdp.nodes.ISFANode._givens_angle mdp.nodes.ISFANode-class.html#_givens_angle +mdp.nodes.ISFANode.initial_contrast mdp.nodes.ISFANode-class.html#initial_contrast +mdp.nodes.ISFANode._givens_angle_case2 mdp.nodes.ISFANode-class.html#_givens_angle_case2 +mdp.nodes.ISFANode._get_rnd_permutation mdp.nodes.ISFANode-class.html#_get_rnd_permutation +mdp.nodes.ISFANode._set_dtype mdp.nodes.ISFANode-class.html#_set_dtype +mdp.nodes.ISFANode._givens_angle_case1 mdp.nodes.ISFANode-class.html#_givens_angle_case1 +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.ISFANode.stop_training mdp.nodes.ISFANode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.ISFANode._get_supported_dtypes mdp.nodes.ISFANode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.ISFANode._stop_training mdp.nodes.ISFANode-class.html#_stop_training +mdp.nodes.ISFANode.covs mdp.nodes.ISFANode-class.html#covs +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.ISFANode._inverse mdp.nodes.ISFANode-class.html#_inverse +mdp.nodes.ISFANode.execute mdp.nodes.ISFANode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.ISFANode._get_rnd_rotation mdp.nodes.ISFANode-class.html#_get_rnd_rotation +mdp.nodes.ISFANode.train mdp.nodes.ISFANode-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.ISFANode.final_contrast mdp.nodes.ISFANode-class.html#final_contrast +mdp.nodes.IdentityNode mdp.nodes.IdentityNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.Node.__init__ mdp.Node-class.html#__init__ +mdp.nodes.IdentityNode._get_supported_dtypes mdp.nodes.IdentityNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.Node._execute mdp.Node-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node.execute mdp.Node-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.nodes.IdentityNode.is_trainable mdp.nodes.IdentityNode-class.html#is_trainable +mdp.nodes.IncSFANode mdp.nodes.IncSFANode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node.copy mdp.Node-class.html#copy +mdp.nodes.IncSFANode._set_input_dim mdp.nodes.IncSFANode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.OnlineNode._pre_execution_checks mdp.OnlineNode-class.html#_pre_execution_checks +mdp.nodes.IncSFANode._pseudo_train_fn mdp.nodes.IncSFANode-class.html#_pseudo_train_fn +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.OnlineNode.set_numx_rng mdp.OnlineNode-class.html#set_numx_rng +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.nodes.IncSFANode._check_train_args mdp.nodes.IncSFANode-class.html#_check_train_args +mdp.nodes.IncSFANode.__init__ mdp.nodes.IncSFANode-class.html#__init__ +mdp.nodes.IncSFANode.sf_change mdp.nodes.IncSFANode-class.html#sf_change +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.nodes.IncSFANode.inverse mdp.nodes.IncSFANode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.IncSFANode.init_mca_vectors mdp.nodes.IncSFANode-class.html#init_mca_vectors +mdp.nodes.IncSFANode._execute mdp.nodes.IncSFANode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.OnlineNode.get_numx_rng mdp.OnlineNode-class.html#get_numx_rng +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.nodes.IncSFANode._step_train mdp.nodes.IncSFANode-class.html#_step_train +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.IncSFANode._train mdp.nodes.IncSFANode-class.html#_train +mdp.OnlineNode.numx_rng mdp.OnlineNode-class.html#numx_rng +mdp.OnlineNode._get_train_seq mdp.OnlineNode-class.html#_get_train_seq +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.OnlineNode.set_training_type mdp.OnlineNode-class.html#set_training_type +mdp.nodes.IncSFANode._set_dtype mdp.nodes.IncSFANode-class.html#_set_dtype +mdp.nodes.IncSFANode._set_numx_rng mdp.nodes.IncSFANode-class.html#_set_numx_rng +mdp.nodes.IncSFANode._check_params mdp.nodes.IncSFANode-class.html#_check_params +mdp.OnlineNode.stop_training mdp.OnlineNode-class.html#stop_training +mdp.nodes.IncSFANode.wv mdp.nodes.IncSFANode-class.html#wv +mdp.OnlineNode.get_current_train_iteration mdp.OnlineNode-class.html#get_current_train_iteration +mdp.nodes.IncSFANode.train mdp.nodes.IncSFANode-class.html#train +mdp.OnlineNode.__add__ mdp.OnlineNode-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.OnlineNode._pre_inversion_checks mdp.OnlineNode-class.html#_pre_inversion_checks +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.OnlineNode._check_input mdp.OnlineNode-class.html#_check_input +mdp.nodes.IncSFANode._inverse mdp.nodes.IncSFANode-class.html#_inverse +mdp.nodes.IncSFANode.execute mdp.nodes.IncSFANode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.OnlineNode.training_type mdp.OnlineNode-class.html#training_type +mdp.OnlineNode._train_seq mdp.OnlineNode-class.html#_train_seq +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.OnlineNode._get_supported_training_types mdp.OnlineNode-class.html#_get_supported_training_types +mdp.nodes.IncSFANode.__repr__ mdp.nodes.IncSFANode-class.html#__repr__ +mdp.nodes.IncSFANode.init_slow_features mdp.nodes.IncSFANode-class.html#init_slow_features +mdp.nodes.IncSFANode._pseudo_check_fn mdp.nodes.IncSFANode-class.html#_pseudo_check_fn +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.nodes.IncSFANode.init_pca_vectors mdp.nodes.IncSFANode-class.html#init_pca_vectors +mdp.nodes.IncSFANode._set_output_dim mdp.nodes.IncSFANode-class.html#_set_output_dim +mdp.nodes.IncSFANode.sf mdp.nodes.IncSFANode-class.html#sf +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.JADENode mdp.nodes.JADENode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.nodes.ICANode._set_input_dim mdp.nodes.ICANode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.JADENode.__init__ mdp.nodes.JADENode-class.html#__init__ +mdp.nodes.ICANode.inverse mdp.nodes.ICANode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.ICANode._execute mdp.nodes.ICANode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.nodes.JADENode.core mdp.nodes.JADENode-class.html#core +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.ICANode.stop_training mdp.nodes.ICANode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.ICANode._stop_training mdp.nodes.ICANode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.ICANode._inverse mdp.nodes.ICANode-class.html#_inverse +mdp.nodes.ICANode.execute mdp.nodes.ICANode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.KMeansClassifier mdp.nodes.KMeansClassifier-class.html +mdp.nodes.KMeansClassifier._label mdp.nodes.KMeansClassifier-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.KMeansClassifier.__init__ mdp.nodes.KMeansClassifier-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.nodes.KMeansClassifier.label mdp.nodes.KMeansClassifier-class.html#label +mdp.nodes.KMeansClassifier._nearest_centroid_idx mdp.nodes.KMeansClassifier-class.html#_nearest_centroid_idx +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.ClassifierNode.prob mdp.ClassifierNode-class.html#prob +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.KMeansClassifier.stop_training mdp.nodes.KMeansClassifier-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.KMeansClassifier.train mdp.nodes.KMeansClassifier-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.KMeansClassifier._stop_training mdp.nodes.KMeansClassifier-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.nodes.KMeansClassifier._train mdp.nodes.KMeansClassifier-class.html#_train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.ClassifierNode._prob mdp.ClassifierNode-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.KNNClassifier mdp.nodes.KNNClassifier-class.html +mdp.nodes.KNNClassifier._label mdp.nodes.KNNClassifier-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.nodes.KNNClassifier._check_train_args mdp.nodes.KNNClassifier-class.html#_check_train_args +mdp.nodes.KNNClassifier.__init__ mdp.nodes.KNNClassifier-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.nodes.KNNClassifier.label mdp.nodes.KNNClassifier-class.html#label +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.ClassifierNode.prob mdp.ClassifierNode-class.html#prob +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.KNNClassifier.stop_training mdp.nodes.KNNClassifier-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.KNNClassifier.train mdp.nodes.KNNClassifier-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.KNNClassifier._stop_training mdp.nodes.KNNClassifier-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.nodes.KNNClassifier._add_samples mdp.nodes.KNNClassifier-class.html#_add_samples +mdp.nodes.KNNClassifier._train mdp.nodes.KNNClassifier-class.html#_train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.ClassifierNode._prob mdp.ClassifierNode-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.KernelCentererScikitsLearnNode mdp.nodes.KernelCentererScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.KernelCentererScikitsLearnNode.__init__ mdp.nodes.KernelCentererScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.KernelCentererScikitsLearnNode._execute mdp.nodes.KernelCentererScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.KernelCentererScikitsLearnNode.is_invertible mdp.nodes.KernelCentererScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.KernelCentererScikitsLearnNode.stop_training mdp.nodes.KernelCentererScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.KernelCentererScikitsLearnNode._get_supported_dtypes mdp.nodes.KernelCentererScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.KernelCentererScikitsLearnNode._stop_training mdp.nodes.KernelCentererScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.KernelCentererScikitsLearnNode.execute mdp.nodes.KernelCentererScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.KernelCentererScikitsLearnNode.is_trainable mdp.nodes.KernelCentererScikitsLearnNode-class.html#is_trainable +mdp.nodes.KernelPCAScikitsLearnNode mdp.nodes.KernelPCAScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.KernelPCAScikitsLearnNode.__init__ mdp.nodes.KernelPCAScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.KernelPCAScikitsLearnNode._execute mdp.nodes.KernelPCAScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.KernelPCAScikitsLearnNode.is_invertible mdp.nodes.KernelPCAScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.KernelPCAScikitsLearnNode.stop_training mdp.nodes.KernelPCAScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.KernelPCAScikitsLearnNode._get_supported_dtypes mdp.nodes.KernelPCAScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.KernelPCAScikitsLearnNode._stop_training mdp.nodes.KernelPCAScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.KernelPCAScikitsLearnNode.execute mdp.nodes.KernelPCAScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.KernelPCAScikitsLearnNode.is_trainable mdp.nodes.KernelPCAScikitsLearnNode-class.html#is_trainable +mdp.nodes.LARSScikitsLearnNode mdp.nodes.LARSScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.LARSScikitsLearnNode.__init__ mdp.nodes.LARSScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.LARSScikitsLearnNode._execute mdp.nodes.LARSScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.LARSScikitsLearnNode.is_invertible mdp.nodes.LARSScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.LARSScikitsLearnNode.stop_training mdp.nodes.LARSScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.LARSScikitsLearnNode._get_supported_dtypes mdp.nodes.LARSScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.LARSScikitsLearnNode._stop_training mdp.nodes.LARSScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.LARSScikitsLearnNode.execute mdp.nodes.LARSScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.LARSScikitsLearnNode.is_trainable mdp.nodes.LARSScikitsLearnNode-class.html#is_trainable +mdp.nodes.LDAScikitsLearnNode mdp.nodes.LDAScikitsLearnNode-class.html +mdp.nodes.LDAScikitsLearnNode._label mdp.nodes.LDAScikitsLearnNode-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.ClassifierCumulator._check_train_args mdp.ClassifierCumulator-class.html#_check_train_args +mdp.nodes.LDAScikitsLearnNode.__init__ mdp.nodes.LDAScikitsLearnNode-class.html#__init__ +mdp.nodes.LDAScikitsLearnNode._get_supported_dtypes mdp.nodes.LDAScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.LDAScikitsLearnNode.is_invertible mdp.nodes.LDAScikitsLearnNode-class.html#is_invertible +mdp.nodes.LDAScikitsLearnNode.label mdp.nodes.LDAScikitsLearnNode-class.html#label +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.ClassifierNode.prob mdp.ClassifierNode-class.html#prob +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.LDAScikitsLearnNode.stop_training mdp.nodes.LDAScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.ClassifierCumulator.train mdp.ClassifierCumulator-class.html#train +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.LDAScikitsLearnNode._stop_training mdp.nodes.LDAScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.ClassifierCumulator._train mdp.ClassifierCumulator-class.html#_train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.ClassifierNode._prob mdp.ClassifierNode-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.nodes.LDAScikitsLearnNode.is_trainable mdp.nodes.LDAScikitsLearnNode-class.html#is_trainable +mdp.nodes.LLENode mdp.nodes.LLENode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.LLENode.__init__ mdp.nodes.LLENode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.LLENode._execute mdp.nodes.LLENode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.LLENode.is_invertible mdp.nodes.LLENode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.LLENode.stop_training mdp.nodes.LLENode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.LLENode._stop_training mdp.nodes.LLENode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.LLENode.execute mdp.nodes.LLENode-class.html#execute +mdp.nodes.LLENode._adjust_output_dim mdp.nodes.LLENode-class.html#_adjust_output_dim +mdp.nodes.LLENode.training_projection mdp.nodes.LLENode-class.html#training_projection +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.nodes.LLENode.desired_variance mdp.nodes.LLENode-class.html#desired_variance +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.LLENode.is_trainable mdp.nodes.LLENode-class.html#is_trainable +mdp.nodes.LabelBinarizerScikitsLearnNode mdp.nodes.LabelBinarizerScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.LabelBinarizerScikitsLearnNode.__init__ mdp.nodes.LabelBinarizerScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.LabelBinarizerScikitsLearnNode._execute mdp.nodes.LabelBinarizerScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.LabelBinarizerScikitsLearnNode.is_invertible mdp.nodes.LabelBinarizerScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.LabelBinarizerScikitsLearnNode.stop_training mdp.nodes.LabelBinarizerScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.LabelBinarizerScikitsLearnNode._get_supported_dtypes mdp.nodes.LabelBinarizerScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.LabelBinarizerScikitsLearnNode._stop_training mdp.nodes.LabelBinarizerScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.LabelBinarizerScikitsLearnNode.execute mdp.nodes.LabelBinarizerScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.LabelBinarizerScikitsLearnNode.is_trainable mdp.nodes.LabelBinarizerScikitsLearnNode-class.html#is_trainable +mdp.nodes.LassoCVScikitsLearnNode mdp.nodes.LassoCVScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.LassoCVScikitsLearnNode.__init__ mdp.nodes.LassoCVScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.LassoCVScikitsLearnNode._execute mdp.nodes.LassoCVScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.LassoCVScikitsLearnNode.is_invertible mdp.nodes.LassoCVScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.LassoCVScikitsLearnNode.stop_training mdp.nodes.LassoCVScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.LassoCVScikitsLearnNode._get_supported_dtypes mdp.nodes.LassoCVScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.LassoCVScikitsLearnNode._stop_training mdp.nodes.LassoCVScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.LassoCVScikitsLearnNode.execute mdp.nodes.LassoCVScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.LassoCVScikitsLearnNode.is_trainable mdp.nodes.LassoCVScikitsLearnNode-class.html#is_trainable +mdp.nodes.LassoLARSScikitsLearnNode mdp.nodes.LassoLARSScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.LassoLARSScikitsLearnNode.__init__ mdp.nodes.LassoLARSScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.LassoLARSScikitsLearnNode._execute mdp.nodes.LassoLARSScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.LassoLARSScikitsLearnNode.is_invertible mdp.nodes.LassoLARSScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.LassoLARSScikitsLearnNode.stop_training mdp.nodes.LassoLARSScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.LassoLARSScikitsLearnNode._get_supported_dtypes mdp.nodes.LassoLARSScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.LassoLARSScikitsLearnNode._stop_training mdp.nodes.LassoLARSScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.LassoLARSScikitsLearnNode.execute mdp.nodes.LassoLARSScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.LassoLARSScikitsLearnNode.is_trainable mdp.nodes.LassoLARSScikitsLearnNode-class.html#is_trainable +mdp.nodes.LassoScikitsLearnNode mdp.nodes.LassoScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.LassoScikitsLearnNode.__init__ mdp.nodes.LassoScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.LassoScikitsLearnNode._execute mdp.nodes.LassoScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.LassoScikitsLearnNode.is_invertible mdp.nodes.LassoScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.LassoScikitsLearnNode.stop_training mdp.nodes.LassoScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.LassoScikitsLearnNode._get_supported_dtypes mdp.nodes.LassoScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.LassoScikitsLearnNode._stop_training mdp.nodes.LassoScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.LassoScikitsLearnNode.execute mdp.nodes.LassoScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.LassoScikitsLearnNode.is_trainable mdp.nodes.LassoScikitsLearnNode-class.html#is_trainable +mdp.nodes.LengthNormalizerScikitsLearnNode mdp.nodes.LengthNormalizerScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.LengthNormalizerScikitsLearnNode.__init__ mdp.nodes.LengthNormalizerScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.LengthNormalizerScikitsLearnNode._execute mdp.nodes.LengthNormalizerScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.LengthNormalizerScikitsLearnNode.is_invertible mdp.nodes.LengthNormalizerScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.LengthNormalizerScikitsLearnNode.stop_training mdp.nodes.LengthNormalizerScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.LengthNormalizerScikitsLearnNode._get_supported_dtypes mdp.nodes.LengthNormalizerScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.LengthNormalizerScikitsLearnNode._stop_training mdp.nodes.LengthNormalizerScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.LengthNormalizerScikitsLearnNode.execute mdp.nodes.LengthNormalizerScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.LengthNormalizerScikitsLearnNode.is_trainable mdp.nodes.LengthNormalizerScikitsLearnNode-class.html#is_trainable +mdp.nodes.LinearModelCVScikitsLearnNode mdp.nodes.LinearModelCVScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.LinearModelCVScikitsLearnNode.__init__ mdp.nodes.LinearModelCVScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.LinearModelCVScikitsLearnNode._execute mdp.nodes.LinearModelCVScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.LinearModelCVScikitsLearnNode.is_invertible mdp.nodes.LinearModelCVScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.LinearModelCVScikitsLearnNode.stop_training mdp.nodes.LinearModelCVScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.LinearModelCVScikitsLearnNode._get_supported_dtypes mdp.nodes.LinearModelCVScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.LinearModelCVScikitsLearnNode._stop_training mdp.nodes.LinearModelCVScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.LinearModelCVScikitsLearnNode.execute mdp.nodes.LinearModelCVScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.LinearModelCVScikitsLearnNode.is_trainable mdp.nodes.LinearModelCVScikitsLearnNode-class.html#is_trainable +mdp.nodes.LinearRegressionNode mdp.nodes.LinearRegressionNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.nodes.LinearRegressionNode._check_train_args mdp.nodes.LinearRegressionNode-class.html#_check_train_args +mdp.nodes.LinearRegressionNode.__init__ mdp.nodes.LinearRegressionNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.LinearRegressionNode._execute mdp.nodes.LinearRegressionNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.LinearRegressionNode.is_invertible mdp.nodes.LinearRegressionNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.LinearRegressionNode._train mdp.nodes.LinearRegressionNode-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.LinearRegressionNode.stop_training mdp.nodes.LinearRegressionNode-class.html#stop_training +mdp.nodes.LinearRegressionNode.beta mdp.nodes.LinearRegressionNode-class.html#beta +mdp.nodes.LinearRegressionNode.train mdp.nodes.LinearRegressionNode-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.LinearRegressionNode._stop_training mdp.nodes.LinearRegressionNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.LinearRegressionNode.execute mdp.nodes.LinearRegressionNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.nodes.LinearRegressionNode._add_constant mdp.nodes.LinearRegressionNode-class.html#_add_constant +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.LinearRegressionScikitsLearnNode mdp.nodes.LinearRegressionScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.LinearRegressionScikitsLearnNode.__init__ mdp.nodes.LinearRegressionScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.LinearRegressionScikitsLearnNode._execute mdp.nodes.LinearRegressionScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.LinearRegressionScikitsLearnNode.is_invertible mdp.nodes.LinearRegressionScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.LinearRegressionScikitsLearnNode.stop_training mdp.nodes.LinearRegressionScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.LinearRegressionScikitsLearnNode._get_supported_dtypes mdp.nodes.LinearRegressionScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.LinearRegressionScikitsLearnNode._stop_training mdp.nodes.LinearRegressionScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.LinearRegressionScikitsLearnNode.execute mdp.nodes.LinearRegressionScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.LinearRegressionScikitsLearnNode.is_trainable mdp.nodes.LinearRegressionScikitsLearnNode-class.html#is_trainable +mdp.nodes.LinearSVCScikitsLearnNode mdp.nodes.LinearSVCScikitsLearnNode-class.html +mdp.nodes.LinearSVCScikitsLearnNode._label mdp.nodes.LinearSVCScikitsLearnNode-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.ClassifierCumulator._check_train_args mdp.ClassifierCumulator-class.html#_check_train_args +mdp.nodes.LinearSVCScikitsLearnNode.__init__ mdp.nodes.LinearSVCScikitsLearnNode-class.html#__init__ +mdp.nodes.LinearSVCScikitsLearnNode._get_supported_dtypes mdp.nodes.LinearSVCScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.LinearSVCScikitsLearnNode.is_invertible mdp.nodes.LinearSVCScikitsLearnNode-class.html#is_invertible +mdp.nodes.LinearSVCScikitsLearnNode.label mdp.nodes.LinearSVCScikitsLearnNode-class.html#label +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.ClassifierNode.prob mdp.ClassifierNode-class.html#prob +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.LinearSVCScikitsLearnNode.stop_training mdp.nodes.LinearSVCScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.ClassifierCumulator.train mdp.ClassifierCumulator-class.html#train +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.LinearSVCScikitsLearnNode._stop_training mdp.nodes.LinearSVCScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.ClassifierCumulator._train mdp.ClassifierCumulator-class.html#_train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.ClassifierNode._prob mdp.ClassifierNode-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.nodes.LinearSVCScikitsLearnNode.is_trainable mdp.nodes.LinearSVCScikitsLearnNode-class.html#is_trainable +mdp.nodes.LogisticRegressionScikitsLearnNode mdp.nodes.LogisticRegressionScikitsLearnNode-class.html +mdp.nodes.LogisticRegressionScikitsLearnNode._label mdp.nodes.LogisticRegressionScikitsLearnNode-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.ClassifierCumulator._check_train_args mdp.ClassifierCumulator-class.html#_check_train_args +mdp.nodes.LogisticRegressionScikitsLearnNode.__init__ mdp.nodes.LogisticRegressionScikitsLearnNode-class.html#__init__ +mdp.nodes.LogisticRegressionScikitsLearnNode._get_supported_dtypes mdp.nodes.LogisticRegressionScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.LogisticRegressionScikitsLearnNode.is_invertible mdp.nodes.LogisticRegressionScikitsLearnNode-class.html#is_invertible +mdp.nodes.LogisticRegressionScikitsLearnNode.label mdp.nodes.LogisticRegressionScikitsLearnNode-class.html#label +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.ClassifierNode.prob mdp.ClassifierNode-class.html#prob +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.LogisticRegressionScikitsLearnNode.stop_training mdp.nodes.LogisticRegressionScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.ClassifierCumulator.train mdp.ClassifierCumulator-class.html#train +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.LogisticRegressionScikitsLearnNode._stop_training mdp.nodes.LogisticRegressionScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.ClassifierCumulator._train mdp.ClassifierCumulator-class.html#_train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.ClassifierNode._prob mdp.ClassifierNode-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.nodes.LogisticRegressionScikitsLearnNode.is_trainable mdp.nodes.LogisticRegressionScikitsLearnNode-class.html#is_trainable +mdp.nodes.MCANode mdp.nodes.MCANode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.OnlineNode._pre_execution_checks mdp.OnlineNode-class.html#_pre_execution_checks +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.OnlineNode.set_numx_rng mdp.OnlineNode-class.html#set_numx_rng +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.MCANode.get_projmatrix mdp.nodes.MCANode-class.html#get_projmatrix +mdp.nodes.MCANode.__init__ mdp.nodes.MCANode-class.html#__init__ +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.nodes.MCANode.inverse mdp.nodes.MCANode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.MCANode._execute mdp.nodes.MCANode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.OnlineNode.get_numx_rng mdp.OnlineNode-class.html#get_numx_rng +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.MCANode._train mdp.nodes.MCANode-class.html#_train +mdp.OnlineNode.numx_rng mdp.OnlineNode-class.html#numx_rng +mdp.OnlineNode._get_train_seq mdp.OnlineNode-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.OnlineNode.set_training_type mdp.OnlineNode-class.html#set_training_type +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.OnlineNode._set_numx_rng mdp.OnlineNode-class.html#_set_numx_rng +mdp.nodes.MCANode.init_eigen_vectors mdp.nodes.MCANode-class.html#init_eigen_vectors +mdp.nodes.MCANode._check_params mdp.nodes.MCANode-class.html#_check_params +mdp.OnlineNode.stop_training mdp.OnlineNode-class.html#stop_training +mdp.OnlineNode.get_current_train_iteration mdp.OnlineNode-class.html#get_current_train_iteration +mdp.nodes.MCANode.train mdp.nodes.MCANode-class.html#train +mdp.OnlineNode.__add__ mdp.OnlineNode-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.OnlineNode._pre_inversion_checks mdp.OnlineNode-class.html#_pre_inversion_checks +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.OnlineNode._check_input mdp.OnlineNode-class.html#_check_input +mdp.nodes.MCANode._inverse mdp.nodes.MCANode-class.html#_inverse +mdp.nodes.MCANode.execute mdp.nodes.MCANode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.OnlineNode.training_type mdp.OnlineNode-class.html#training_type +mdp.nodes.MCANode.d mdp.nodes.MCANode-class.html#d +mdp.OnlineNode._train_seq mdp.OnlineNode-class.html#_train_seq +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.MCANode.get_recmatrix mdp.nodes.MCANode-class.html#get_recmatrix +mdp.nodes.MCANode.__repr__ mdp.nodes.MCANode-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.nodes.MCANode.v mdp.nodes.MCANode-class.html#v +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.OnlineNode._get_supported_training_types mdp.OnlineNode-class.html#_get_supported_training_types +mdp.nodes.MultinomialHMMScikitsLearnNode mdp.nodes.MultinomialHMMScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.MultinomialHMMScikitsLearnNode.__init__ mdp.nodes.MultinomialHMMScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.MultinomialHMMScikitsLearnNode._execute mdp.nodes.MultinomialHMMScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.MultinomialHMMScikitsLearnNode.is_invertible mdp.nodes.MultinomialHMMScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.MultinomialHMMScikitsLearnNode.stop_training mdp.nodes.MultinomialHMMScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.MultinomialHMMScikitsLearnNode._get_supported_dtypes mdp.nodes.MultinomialHMMScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.MultinomialHMMScikitsLearnNode._stop_training mdp.nodes.MultinomialHMMScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.MultinomialHMMScikitsLearnNode.execute mdp.nodes.MultinomialHMMScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.MultinomialHMMScikitsLearnNode.is_trainable mdp.nodes.MultinomialHMMScikitsLearnNode-class.html#is_trainable +mdp.nodes.NIPALSNode mdp.nodes.NIPALSNode-class.html +mdp.nodes.PCANode._check_output mdp.nodes.PCANode-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.nodes.PCANode.get_explained_variance mdp.nodes.PCANode-class.html#get_explained_variance +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.PCANode.get_projmatrix mdp.nodes.PCANode-class.html#get_projmatrix +mdp.nodes.NIPALSNode.avg mdp.nodes.NIPALSNode-class.html#avg +mdp.nodes.NIPALSNode.__init__ mdp.nodes.NIPALSNode-class.html#__init__ +mdp.nodes.PCANode.inverse mdp.nodes.PCANode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.PCANode._execute mdp.nodes.PCANode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.NIPALSNode._train mdp.nodes.NIPALSNode-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.NIPALSNode.stop_training mdp.nodes.NIPALSNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.NIPALSNode.train mdp.nodes.NIPALSNode-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.NIPALSNode._stop_training mdp.nodes.NIPALSNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.PCANode._inverse mdp.nodes.PCANode-class.html#_inverse +mdp.nodes.PCANode.execute mdp.nodes.PCANode-class.html#execute +mdp.nodes.PCANode._adjust_output_dim mdp.nodes.PCANode-class.html#_adjust_output_dim +mdp.nodes.NIPALSNode.d mdp.nodes.NIPALSNode-class.html#d +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.nodes.NIPALSNode.explained_variance mdp.nodes.NIPALSNode-class.html#explained_variance +mdp.nodes.PCANode.get_recmatrix mdp.nodes.PCANode-class.html#get_recmatrix +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.nodes.NIPALSNode.v mdp.nodes.NIPALSNode-class.html#v +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.nodes.PCANode._set_output_dim mdp.nodes.PCANode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.NMFScikitsLearnNode mdp.nodes.NMFScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.NMFScikitsLearnNode.__init__ mdp.nodes.NMFScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.NMFScikitsLearnNode._execute mdp.nodes.NMFScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.NMFScikitsLearnNode.is_invertible mdp.nodes.NMFScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.NMFScikitsLearnNode.stop_training mdp.nodes.NMFScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.NMFScikitsLearnNode._get_supported_dtypes mdp.nodes.NMFScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.NMFScikitsLearnNode._stop_training mdp.nodes.NMFScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.NMFScikitsLearnNode.execute mdp.nodes.NMFScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.NMFScikitsLearnNode.is_trainable mdp.nodes.NMFScikitsLearnNode-class.html#is_trainable +mdp.nodes.NearestMeanClassifier mdp.nodes.NearestMeanClassifier-class.html +mdp.nodes.NearestMeanClassifier._label mdp.nodes.NearestMeanClassifier-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.nodes.NearestMeanClassifier._check_train_args mdp.nodes.NearestMeanClassifier-class.html#_check_train_args +mdp.nodes.NearestMeanClassifier.__init__ mdp.nodes.NearestMeanClassifier-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.nodes.NearestMeanClassifier.label mdp.nodes.NearestMeanClassifier-class.html#label +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.ClassifierNode.prob mdp.ClassifierNode-class.html#prob +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.NearestMeanClassifier.stop_training mdp.nodes.NearestMeanClassifier-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.NearestMeanClassifier.train mdp.nodes.NearestMeanClassifier-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.NearestMeanClassifier._stop_training mdp.nodes.NearestMeanClassifier-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.nodes.NearestMeanClassifier._update_mean mdp.nodes.NearestMeanClassifier-class.html#_update_mean +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.nodes.NearestMeanClassifier._train mdp.nodes.NearestMeanClassifier-class.html#_train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.ClassifierNode._prob mdp.ClassifierNode-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.NeighborsClassifierScikitsLearnNode mdp.nodes.NeighborsClassifierScikitsLearnNode-class.html +mdp.nodes.NeighborsClassifierScikitsLearnNode._label mdp.nodes.NeighborsClassifierScikitsLearnNode-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.ClassifierCumulator._check_train_args mdp.ClassifierCumulator-class.html#_check_train_args +mdp.nodes.NeighborsClassifierScikitsLearnNode.__init__ mdp.nodes.NeighborsClassifierScikitsLearnNode-class.html#__init__ +mdp.nodes.NeighborsClassifierScikitsLearnNode._get_supported_dtypes mdp.nodes.NeighborsClassifierScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.NeighborsClassifierScikitsLearnNode.is_invertible mdp.nodes.NeighborsClassifierScikitsLearnNode-class.html#is_invertible +mdp.nodes.NeighborsClassifierScikitsLearnNode.label mdp.nodes.NeighborsClassifierScikitsLearnNode-class.html#label +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.ClassifierNode.prob mdp.ClassifierNode-class.html#prob +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.NeighborsClassifierScikitsLearnNode.stop_training mdp.nodes.NeighborsClassifierScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.ClassifierCumulator.train mdp.ClassifierCumulator-class.html#train +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.NeighborsClassifierScikitsLearnNode._stop_training mdp.nodes.NeighborsClassifierScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.ClassifierCumulator._train mdp.ClassifierCumulator-class.html#_train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.ClassifierNode._prob mdp.ClassifierNode-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.nodes.NeighborsClassifierScikitsLearnNode.is_trainable mdp.nodes.NeighborsClassifierScikitsLearnNode-class.html#is_trainable +mdp.nodes.NeighborsRegressorScikitsLearnNode mdp.nodes.NeighborsRegressorScikitsLearnNode-class.html +mdp.nodes.NeighborsRegressorScikitsLearnNode._label mdp.nodes.NeighborsRegressorScikitsLearnNode-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.ClassifierCumulator._check_train_args mdp.ClassifierCumulator-class.html#_check_train_args +mdp.nodes.NeighborsRegressorScikitsLearnNode.__init__ mdp.nodes.NeighborsRegressorScikitsLearnNode-class.html#__init__ +mdp.nodes.NeighborsRegressorScikitsLearnNode._get_supported_dtypes mdp.nodes.NeighborsRegressorScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.NeighborsRegressorScikitsLearnNode.is_invertible mdp.nodes.NeighborsRegressorScikitsLearnNode-class.html#is_invertible +mdp.nodes.NeighborsRegressorScikitsLearnNode.label mdp.nodes.NeighborsRegressorScikitsLearnNode-class.html#label +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.ClassifierNode.prob mdp.ClassifierNode-class.html#prob +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.NeighborsRegressorScikitsLearnNode.stop_training mdp.nodes.NeighborsRegressorScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.ClassifierCumulator.train mdp.ClassifierCumulator-class.html#train +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.NeighborsRegressorScikitsLearnNode._stop_training mdp.nodes.NeighborsRegressorScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.ClassifierCumulator._train mdp.ClassifierCumulator-class.html#_train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.ClassifierNode._prob mdp.ClassifierNode-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.nodes.NeighborsRegressorScikitsLearnNode.is_trainable mdp.nodes.NeighborsRegressorScikitsLearnNode-class.html#is_trainable +mdp.nodes.NeuralGasNode mdp.nodes.NeuralGasNode-class.html +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.nodes.GrowingNeuralGasNode._set_input_dim mdp.nodes.GrowingNeuralGasNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.nodes.GrowingNeuralGasNode.get_nodes_position mdp.nodes.GrowingNeuralGasNode-class.html#get_nodes_position +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.NeuralGasNode.max_epochs mdp.nodes.NeuralGasNode-class.html#max_epochs +mdp.nodes.NeuralGasNode._rank_nodes_by_distance mdp.nodes.NeuralGasNode-class.html#_rank_nodes_by_distance +mdp.nodes.NeuralGasNode._remove_old_edges mdp.nodes.NeuralGasNode-class.html#_remove_old_edges +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.Node._execute mdp.Node-class.html#_execute +mdp.nodes.NeuralGasNode.graph mdp.nodes.NeuralGasNode-class.html#graph +mdp.nodes.GrowingNeuralGasNode._insert_new_node mdp.nodes.GrowingNeuralGasNode-class.html#_insert_new_node +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.nodes.GrowingNeuralGasNode._add_node mdp.nodes.GrowingNeuralGasNode-class.html#_add_node +mdp.nodes.NeuralGasNode.__init__ mdp.nodes.NeuralGasNode-class.html#__init__ +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.nodes.GrowingNeuralGasNode.nearest_neighbor mdp.nodes.GrowingNeuralGasNode-class.html#nearest_neighbor +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.NeuralGasNode.train mdp.nodes.NeuralGasNode-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.GrowingNeuralGasNode._add_edge mdp.nodes.GrowingNeuralGasNode-class.html#_add_edge +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.GrowingNeuralGasNode._move_node mdp.nodes.GrowingNeuralGasNode-class.html#_move_node +mdp.Node.execute mdp.Node-class.html#execute +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.GrowingNeuralGasNode._get_nearest_nodes mdp.nodes.GrowingNeuralGasNode-class.html#_get_nearest_nodes +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.nodes.NeuralGasNode._train mdp.nodes.NeuralGasNode-class.html#_train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.NoiseNode mdp.nodes.NoiseNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.NoiseNode.__init__ mdp.nodes.NoiseNode-class.html#__init__ +mdp.nodes.NoiseNode._get_supported_dtypes mdp.nodes.NoiseNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.NoiseNode._execute mdp.nodes.NoiseNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.NoiseNode.is_invertible mdp.nodes.NoiseNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.nodes.NoiseNode.save mdp.nodes.NoiseNode-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.NoiseNode.execute mdp.nodes.NoiseNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.nodes.NoiseNode.is_trainable mdp.nodes.NoiseNode-class.html#is_trainable +mdp.nodes.NormalNoiseNode mdp.nodes.NormalNoiseNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.NormalNoiseNode.__init__ mdp.nodes.NormalNoiseNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.NormalNoiseNode._execute mdp.nodes.NormalNoiseNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.NormalNoiseNode.is_invertible mdp.nodes.NormalNoiseNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.NormalNoiseNode.execute mdp.nodes.NormalNoiseNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.nodes.NormalNoiseNode.is_trainable mdp.nodes.NormalNoiseNode-class.html#is_trainable +mdp.nodes.NormalizeNode mdp.nodes.NormalizeNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.NormalizeNode.__init__ mdp.nodes.NormalizeNode-class.html#__init__ +mdp.nodes.NormalizeNode.inverse mdp.nodes.NormalizeNode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.NormalizeNode._execute mdp.nodes.NormalizeNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.NormalizeNode._train mdp.nodes.NormalizeNode-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.NormalizeNode.stop_training mdp.nodes.NormalizeNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.NormalizeNode.train mdp.nodes.NormalizeNode-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.NormalizeNode._stop_training mdp.nodes.NormalizeNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.NormalizeNode._inverse mdp.nodes.NormalizeNode-class.html#_inverse +mdp.nodes.NormalizeNode.execute mdp.nodes.NormalizeNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.nodes.NormalizeNode.is_trainable mdp.nodes.NormalizeNode-class.html#is_trainable +mdp.nodes.NormalizerScikitsLearnNode mdp.nodes.NormalizerScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.NormalizerScikitsLearnNode.__init__ mdp.nodes.NormalizerScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.NormalizerScikitsLearnNode._execute mdp.nodes.NormalizerScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.NormalizerScikitsLearnNode.is_invertible mdp.nodes.NormalizerScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.NormalizerScikitsLearnNode.stop_training mdp.nodes.NormalizerScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.NormalizerScikitsLearnNode._get_supported_dtypes mdp.nodes.NormalizerScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.NormalizerScikitsLearnNode._stop_training mdp.nodes.NormalizerScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.NormalizerScikitsLearnNode.execute mdp.nodes.NormalizerScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.NormalizerScikitsLearnNode.is_trainable mdp.nodes.NormalizerScikitsLearnNode-class.html#is_trainable +mdp.nodes.NormalizingRecursiveExpansionNode mdp.nodes.NormalizingRecursiveExpansionNode-class.html +mdp.nodes.NormalizingRecursiveExpansionNode.upper mdp.nodes.NormalizingRecursiveExpansionNode-class.html#upper +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.nodes.RecursiveExpansionNode.expanded_dim mdp.nodes.RecursiveExpansionNode-class.html#expanded_dim +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.NormalizingRecursiveExpansionNode.__init__ mdp.nodes.NormalizingRecursiveExpansionNode-class.html#__init__ +mdp.nodes.RecursiveExpansionNode._get_supported_dtypes mdp.nodes.RecursiveExpansionNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.NormalizingRecursiveExpansionNode._execute mdp.nodes.NormalizingRecursiveExpansionNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.nodes.RecursiveExpansionNode.check_domain mdp.nodes.RecursiveExpansionNode-class.html#check_domain +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.NormalizingRecursiveExpansionNode._train mdp.nodes.NormalizingRecursiveExpansionNode-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.nodes.NormalizingRecursiveExpansionNode.lower mdp.nodes.NormalizingRecursiveExpansionNode-class.html#lower +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.NormalizingRecursiveExpansionNode.stop_training mdp.nodes.NormalizingRecursiveExpansionNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.NormalizingRecursiveExpansionNode.train mdp.nodes.NormalizingRecursiveExpansionNode-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.NormalizingRecursiveExpansionNode._stop_training mdp.nodes.NormalizingRecursiveExpansionNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.nodes.NormalizingRecursiveExpansionNode.execute mdp.nodes.NormalizingRecursiveExpansionNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.nodes.NormalizingRecursiveExpansionNode.is_trainable mdp.nodes.NormalizingRecursiveExpansionNode-class.html#is_trainable +mdp.nodes.NuSVCScikitsLearnNode mdp.nodes.NuSVCScikitsLearnNode-class.html +mdp.nodes.NuSVCScikitsLearnNode._label mdp.nodes.NuSVCScikitsLearnNode-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.ClassifierCumulator._check_train_args mdp.ClassifierCumulator-class.html#_check_train_args +mdp.nodes.NuSVCScikitsLearnNode.__init__ mdp.nodes.NuSVCScikitsLearnNode-class.html#__init__ +mdp.nodes.NuSVCScikitsLearnNode._get_supported_dtypes mdp.nodes.NuSVCScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.NuSVCScikitsLearnNode.is_invertible mdp.nodes.NuSVCScikitsLearnNode-class.html#is_invertible +mdp.nodes.NuSVCScikitsLearnNode.label mdp.nodes.NuSVCScikitsLearnNode-class.html#label +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.ClassifierNode.prob mdp.ClassifierNode-class.html#prob +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.NuSVCScikitsLearnNode.stop_training mdp.nodes.NuSVCScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.ClassifierCumulator.train mdp.ClassifierCumulator-class.html#train +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.NuSVCScikitsLearnNode._stop_training mdp.nodes.NuSVCScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.ClassifierCumulator._train mdp.ClassifierCumulator-class.html#_train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.ClassifierNode._prob mdp.ClassifierNode-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.nodes.NuSVCScikitsLearnNode.is_trainable mdp.nodes.NuSVCScikitsLearnNode-class.html#is_trainable +mdp.nodes.NuSVRScikitsLearnNode mdp.nodes.NuSVRScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.NuSVRScikitsLearnNode.__init__ mdp.nodes.NuSVRScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.NuSVRScikitsLearnNode._execute mdp.nodes.NuSVRScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.NuSVRScikitsLearnNode.is_invertible mdp.nodes.NuSVRScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.NuSVRScikitsLearnNode.stop_training mdp.nodes.NuSVRScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.NuSVRScikitsLearnNode._get_supported_dtypes mdp.nodes.NuSVRScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.NuSVRScikitsLearnNode._stop_training mdp.nodes.NuSVRScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.NuSVRScikitsLearnNode.execute mdp.nodes.NuSVRScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.NuSVRScikitsLearnNode.is_trainable mdp.nodes.NuSVRScikitsLearnNode-class.html#is_trainable +mdp.nodes.OneClassSVMScikitsLearnNode mdp.nodes.OneClassSVMScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.OneClassSVMScikitsLearnNode.__init__ mdp.nodes.OneClassSVMScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.OneClassSVMScikitsLearnNode._execute mdp.nodes.OneClassSVMScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.OneClassSVMScikitsLearnNode.is_invertible mdp.nodes.OneClassSVMScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.OneClassSVMScikitsLearnNode.stop_training mdp.nodes.OneClassSVMScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.OneClassSVMScikitsLearnNode._get_supported_dtypes mdp.nodes.OneClassSVMScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.OneClassSVMScikitsLearnNode._stop_training mdp.nodes.OneClassSVMScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.OneClassSVMScikitsLearnNode.execute mdp.nodes.OneClassSVMScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.OneClassSVMScikitsLearnNode.is_trainable mdp.nodes.OneClassSVMScikitsLearnNode-class.html#is_trainable +mdp.nodes.OnlineCenteringNode mdp.nodes.OnlineCenteringNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimOnlineNode._set_input_dim mdp.PreserveDimOnlineNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.nodes.OnlineCenteringNode.get_average mdp.nodes.OnlineCenteringNode-class.html#get_average +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.OnlineNode._pre_execution_checks mdp.OnlineNode-class.html#_pre_execution_checks +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.OnlineNode.set_numx_rng mdp.OnlineNode-class.html#set_numx_rng +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.OnlineCenteringNode.avg mdp.nodes.OnlineCenteringNode-class.html#avg +mdp.nodes.OnlineCenteringNode.__init__ mdp.nodes.OnlineCenteringNode-class.html#__init__ +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.nodes.OnlineCenteringNode.inverse mdp.nodes.OnlineCenteringNode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.OnlineCenteringNode._get_supported_training_types mdp.nodes.OnlineCenteringNode-class.html#_get_supported_training_types +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.OnlineNode.get_numx_rng mdp.OnlineNode-class.html#get_numx_rng +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.OnlineCenteringNode._train mdp.nodes.OnlineCenteringNode-class.html#_train +mdp.OnlineNode.numx_rng mdp.OnlineNode-class.html#numx_rng +mdp.OnlineNode._get_train_seq mdp.OnlineNode-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.OnlineNode.set_training_type mdp.OnlineNode-class.html#set_training_type +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.nodes.OnlineCenteringNode._check_params mdp.nodes.OnlineCenteringNode-class.html#_check_params +mdp.OnlineNode.stop_training mdp.OnlineNode-class.html#stop_training +mdp.OnlineNode.get_current_train_iteration mdp.OnlineNode-class.html#get_current_train_iteration +mdp.nodes.OnlineCenteringNode.train mdp.nodes.OnlineCenteringNode-class.html#train +mdp.OnlineNode.__add__ mdp.OnlineNode-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.OnlineNode._pre_inversion_checks mdp.OnlineNode-class.html#_pre_inversion_checks +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.OnlineNode._check_input mdp.OnlineNode-class.html#_check_input +mdp.nodes.OnlineCenteringNode._inverse mdp.nodes.OnlineCenteringNode-class.html#_inverse +mdp.nodes.OnlineCenteringNode.execute mdp.nodes.OnlineCenteringNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.OnlineNode.training_type mdp.OnlineNode-class.html#training_type +mdp.OnlineNode._train_seq mdp.OnlineNode-class.html#_train_seq +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.nodes.OnlineCenteringNode._execute mdp.nodes.OnlineCenteringNode-class.html#_execute +mdp.nodes.OnlineCenteringNode.__repr__ mdp.nodes.OnlineCenteringNode-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.OnlineNode._set_numx_rng mdp.OnlineNode-class.html#_set_numx_rng +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimOnlineNode._set_output_dim mdp.PreserveDimOnlineNode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.OnlineTimeDiffNode mdp.nodes.OnlineTimeDiffNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimOnlineNode._set_input_dim mdp.PreserveDimOnlineNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.OnlineNode._pre_execution_checks mdp.OnlineNode-class.html#_pre_execution_checks +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.OnlineNode.set_numx_rng mdp.OnlineNode-class.html#set_numx_rng +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.OnlineTimeDiffNode.__init__ mdp.nodes.OnlineTimeDiffNode-class.html#__init__ +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.OnlineTimeDiffNode._execute mdp.nodes.OnlineTimeDiffNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.OnlineNode.get_numx_rng mdp.OnlineNode-class.html#get_numx_rng +mdp.nodes.OnlineTimeDiffNode.is_invertible mdp.nodes.OnlineTimeDiffNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.OnlineTimeDiffNode._train mdp.nodes.OnlineTimeDiffNode-class.html#_train +mdp.OnlineNode.numx_rng mdp.OnlineNode-class.html#numx_rng +mdp.OnlineNode._get_train_seq mdp.OnlineNode-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.OnlineNode.set_training_type mdp.OnlineNode-class.html#set_training_type +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.nodes.OnlineTimeDiffNode._check_params mdp.nodes.OnlineTimeDiffNode-class.html#_check_params +mdp.OnlineNode.stop_training mdp.OnlineNode-class.html#stop_training +mdp.OnlineNode.get_current_train_iteration mdp.OnlineNode-class.html#get_current_train_iteration +mdp.nodes.OnlineTimeDiffNode.train mdp.nodes.OnlineTimeDiffNode-class.html#train +mdp.OnlineNode.__add__ mdp.OnlineNode-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.OnlineNode._pre_inversion_checks mdp.OnlineNode-class.html#_pre_inversion_checks +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.OnlineNode._check_input mdp.OnlineNode-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.OnlineTimeDiffNode.execute mdp.nodes.OnlineTimeDiffNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.OnlineNode.training_type mdp.OnlineNode-class.html#training_type +mdp.OnlineNode._train_seq mdp.OnlineNode-class.html#_train_seq +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.OnlineNode._get_supported_training_types mdp.OnlineNode-class.html#_get_supported_training_types +mdp.OnlineNode.__repr__ mdp.OnlineNode-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.OnlineNode._set_numx_rng mdp.OnlineNode-class.html#_set_numx_rng +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimOnlineNode._set_output_dim mdp.PreserveDimOnlineNode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.PCANode mdp.nodes.PCANode-class.html +mdp.nodes.PCANode._check_output mdp.nodes.PCANode-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.nodes.PCANode.get_explained_variance mdp.nodes.PCANode-class.html#get_explained_variance +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.PCANode.get_projmatrix mdp.nodes.PCANode-class.html#get_projmatrix +mdp.nodes.PCANode.avg mdp.nodes.PCANode-class.html#avg +mdp.nodes.PCANode.__init__ mdp.nodes.PCANode-class.html#__init__ +mdp.nodes.PCANode.inverse mdp.nodes.PCANode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.PCANode._execute mdp.nodes.PCANode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.PCANode._train mdp.nodes.PCANode-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.PCANode.stop_training mdp.nodes.PCANode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.PCANode.train mdp.nodes.PCANode-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.PCANode._stop_training mdp.nodes.PCANode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.PCANode._inverse mdp.nodes.PCANode-class.html#_inverse +mdp.nodes.PCANode.execute mdp.nodes.PCANode-class.html#execute +mdp.nodes.PCANode._adjust_output_dim mdp.nodes.PCANode-class.html#_adjust_output_dim +mdp.nodes.PCANode.d mdp.nodes.PCANode-class.html#d +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.nodes.PCANode.explained_variance mdp.nodes.PCANode-class.html#explained_variance +mdp.nodes.PCANode.get_recmatrix mdp.nodes.PCANode-class.html#get_recmatrix +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.nodes.PCANode.v mdp.nodes.PCANode-class.html#v +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.nodes.PCANode._set_output_dim mdp.nodes.PCANode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.PCAScikitsLearnNode mdp.nodes.PCAScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.PCAScikitsLearnNode.__init__ mdp.nodes.PCAScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.PCAScikitsLearnNode._execute mdp.nodes.PCAScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.PCAScikitsLearnNode.is_invertible mdp.nodes.PCAScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.PCAScikitsLearnNode.stop_training mdp.nodes.PCAScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.PCAScikitsLearnNode._get_supported_dtypes mdp.nodes.PCAScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.PCAScikitsLearnNode._stop_training mdp.nodes.PCAScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.PCAScikitsLearnNode.execute mdp.nodes.PCAScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.PCAScikitsLearnNode.is_trainable mdp.nodes.PCAScikitsLearnNode-class.html#is_trainable +mdp.nodes.PLSCanonicalScikitsLearnNode mdp.nodes.PLSCanonicalScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.PLSCanonicalScikitsLearnNode.__init__ mdp.nodes.PLSCanonicalScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.PLSCanonicalScikitsLearnNode._execute mdp.nodes.PLSCanonicalScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.PLSCanonicalScikitsLearnNode.is_invertible mdp.nodes.PLSCanonicalScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.PLSCanonicalScikitsLearnNode.stop_training mdp.nodes.PLSCanonicalScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.PLSCanonicalScikitsLearnNode._get_supported_dtypes mdp.nodes.PLSCanonicalScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.PLSCanonicalScikitsLearnNode._stop_training mdp.nodes.PLSCanonicalScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.PLSCanonicalScikitsLearnNode.execute mdp.nodes.PLSCanonicalScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.PLSCanonicalScikitsLearnNode.is_trainable mdp.nodes.PLSCanonicalScikitsLearnNode-class.html#is_trainable +mdp.nodes.PLSRegressionScikitsLearnNode mdp.nodes.PLSRegressionScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.PLSRegressionScikitsLearnNode.__init__ mdp.nodes.PLSRegressionScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.PLSRegressionScikitsLearnNode._execute mdp.nodes.PLSRegressionScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.PLSRegressionScikitsLearnNode.is_invertible mdp.nodes.PLSRegressionScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.PLSRegressionScikitsLearnNode.stop_training mdp.nodes.PLSRegressionScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.PLSRegressionScikitsLearnNode._get_supported_dtypes mdp.nodes.PLSRegressionScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.PLSRegressionScikitsLearnNode._stop_training mdp.nodes.PLSRegressionScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.PLSRegressionScikitsLearnNode.execute mdp.nodes.PLSRegressionScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.PLSRegressionScikitsLearnNode.is_trainable mdp.nodes.PLSRegressionScikitsLearnNode-class.html#is_trainable +mdp.nodes.PLSSVDScikitsLearnNode mdp.nodes.PLSSVDScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.PLSSVDScikitsLearnNode.__init__ mdp.nodes.PLSSVDScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.PLSSVDScikitsLearnNode._execute mdp.nodes.PLSSVDScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.PLSSVDScikitsLearnNode.is_invertible mdp.nodes.PLSSVDScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.PLSSVDScikitsLearnNode.stop_training mdp.nodes.PLSSVDScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.PLSSVDScikitsLearnNode._get_supported_dtypes mdp.nodes.PLSSVDScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.PLSSVDScikitsLearnNode._stop_training mdp.nodes.PLSSVDScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.PLSSVDScikitsLearnNode.execute mdp.nodes.PLSSVDScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.PLSSVDScikitsLearnNode.is_trainable mdp.nodes.PLSSVDScikitsLearnNode-class.html#is_trainable +mdp.nodes.PerceptronClassifier mdp.nodes.PerceptronClassifier-class.html +mdp.nodes.PerceptronClassifier._label mdp.nodes.PerceptronClassifier-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.nodes.PerceptronClassifier._check_train_args mdp.nodes.PerceptronClassifier-class.html#_check_train_args +mdp.nodes.PerceptronClassifier.__init__ mdp.nodes.PerceptronClassifier-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.nodes.PerceptronClassifier.label mdp.nodes.PerceptronClassifier-class.html#label +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.ClassifierNode.prob mdp.ClassifierNode-class.html#prob +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.PerceptronClassifier.train mdp.nodes.PerceptronClassifier-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.nodes.PerceptronClassifier._train mdp.nodes.PerceptronClassifier-class.html#_train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.ClassifierNode._prob mdp.ClassifierNode-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.PolynomialExpansionNode mdp.nodes.PolynomialExpansionNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.nodes.PolynomialExpansionNode.expanded_dim mdp.nodes.PolynomialExpansionNode-class.html#expanded_dim +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.PolynomialExpansionNode.__init__ mdp.nodes.PolynomialExpansionNode-class.html#__init__ +mdp.nodes.PolynomialExpansionNode._get_supported_dtypes mdp.nodes.PolynomialExpansionNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.PolynomialExpansionNode._execute mdp.nodes.PolynomialExpansionNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.PolynomialExpansionNode.execute mdp.nodes.PolynomialExpansionNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.nodes.ProbabilisticPCAScikitsLearnNode mdp.nodes.ProbabilisticPCAScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.ProbabilisticPCAScikitsLearnNode.__init__ mdp.nodes.ProbabilisticPCAScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.ProbabilisticPCAScikitsLearnNode._execute mdp.nodes.ProbabilisticPCAScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.ProbabilisticPCAScikitsLearnNode.is_invertible mdp.nodes.ProbabilisticPCAScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.ProbabilisticPCAScikitsLearnNode.stop_training mdp.nodes.ProbabilisticPCAScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.ProbabilisticPCAScikitsLearnNode._get_supported_dtypes mdp.nodes.ProbabilisticPCAScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.ProbabilisticPCAScikitsLearnNode._stop_training mdp.nodes.ProbabilisticPCAScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.ProbabilisticPCAScikitsLearnNode.execute mdp.nodes.ProbabilisticPCAScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.ProbabilisticPCAScikitsLearnNode.is_trainable mdp.nodes.ProbabilisticPCAScikitsLearnNode-class.html#is_trainable +mdp.nodes.ProjectedGradientNMFScikitsLearnNode mdp.nodes.ProjectedGradientNMFScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.ProjectedGradientNMFScikitsLearnNode.__init__ mdp.nodes.ProjectedGradientNMFScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.ProjectedGradientNMFScikitsLearnNode._execute mdp.nodes.ProjectedGradientNMFScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.ProjectedGradientNMFScikitsLearnNode.is_invertible mdp.nodes.ProjectedGradientNMFScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.ProjectedGradientNMFScikitsLearnNode.stop_training mdp.nodes.ProjectedGradientNMFScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.ProjectedGradientNMFScikitsLearnNode._get_supported_dtypes mdp.nodes.ProjectedGradientNMFScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.ProjectedGradientNMFScikitsLearnNode._stop_training mdp.nodes.ProjectedGradientNMFScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.ProjectedGradientNMFScikitsLearnNode.execute mdp.nodes.ProjectedGradientNMFScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.ProjectedGradientNMFScikitsLearnNode.is_trainable mdp.nodes.ProjectedGradientNMFScikitsLearnNode-class.html#is_trainable +mdp.nodes.QDAScikitsLearnNode mdp.nodes.QDAScikitsLearnNode-class.html +mdp.nodes.QDAScikitsLearnNode._label mdp.nodes.QDAScikitsLearnNode-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.ClassifierCumulator._check_train_args mdp.ClassifierCumulator-class.html#_check_train_args +mdp.nodes.QDAScikitsLearnNode.__init__ mdp.nodes.QDAScikitsLearnNode-class.html#__init__ +mdp.nodes.QDAScikitsLearnNode._get_supported_dtypes mdp.nodes.QDAScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.QDAScikitsLearnNode.is_invertible mdp.nodes.QDAScikitsLearnNode-class.html#is_invertible +mdp.nodes.QDAScikitsLearnNode.label mdp.nodes.QDAScikitsLearnNode-class.html#label +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.ClassifierNode.prob mdp.ClassifierNode-class.html#prob +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.QDAScikitsLearnNode.stop_training mdp.nodes.QDAScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.ClassifierCumulator.train mdp.ClassifierCumulator-class.html#train +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.QDAScikitsLearnNode._stop_training mdp.nodes.QDAScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.ClassifierCumulator._train mdp.ClassifierCumulator-class.html#_train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.ClassifierNode._prob mdp.ClassifierNode-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.nodes.QDAScikitsLearnNode.is_trainable mdp.nodes.QDAScikitsLearnNode-class.html#is_trainable +mdp.nodes.QuadraticExpansionNode mdp.nodes.QuadraticExpansionNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.nodes.PolynomialExpansionNode.expanded_dim mdp.nodes.PolynomialExpansionNode-class.html#expanded_dim +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.QuadraticExpansionNode.__init__ mdp.nodes.QuadraticExpansionNode-class.html#__init__ +mdp.nodes.PolynomialExpansionNode._get_supported_dtypes mdp.nodes.PolynomialExpansionNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.PolynomialExpansionNode._execute mdp.nodes.PolynomialExpansionNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.PolynomialExpansionNode.execute mdp.nodes.PolynomialExpansionNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.nodes.RBFExpansionNode mdp.nodes.RBFExpansionNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.RBFExpansionNode.__init__ mdp.nodes.RBFExpansionNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.RBFExpansionNode._execute mdp.nodes.RBFExpansionNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.RBFExpansionNode.is_invertible mdp.nodes.RBFExpansionNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.nodes.RBFExpansionNode._init_RBF mdp.nodes.RBFExpansionNode-class.html#_init_RBF +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.RBFExpansionNode.execute mdp.nodes.RBFExpansionNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.RBFExpansionNode.is_trainable mdp.nodes.RBFExpansionNode-class.html#is_trainable +mdp.nodes.RBMNode mdp.nodes.RBMNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.nodes.RBMNode.energy mdp.nodes.RBMNode-class.html#energy +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.RBMNode.__init__ mdp.nodes.RBMNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.RBMNode._execute mdp.nodes.RBMNode-class.html#_execute +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.RBMNode.is_invertible mdp.nodes.RBMNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.RBMNode._train mdp.nodes.RBMNode-class.html#_train +mdp.nodes.RBMNode._init_weights mdp.nodes.RBMNode-class.html#_init_weights +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.nodes.RBMNode.bh mdp.nodes.RBMNode-class.html#bh +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.RBMNode.stop_training mdp.nodes.RBMNode-class.html#stop_training +mdp.nodes.RBMNode.bv mdp.nodes.RBMNode-class.html#bv +mdp.nodes.RBMNode.train mdp.nodes.RBMNode-class.html#train +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.RBMNode._energy mdp.nodes.RBMNode-class.html#_energy +mdp.nodes.RBMNode._stop_training mdp.nodes.RBMNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.RBMNode._pre_inversion_checks mdp.nodes.RBMNode-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.RBMNode._sample_h mdp.nodes.RBMNode-class.html#_sample_h +mdp.nodes.RBMNode.execute mdp.nodes.RBMNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.nodes.RBMNode.sample_v mdp.nodes.RBMNode-class.html#sample_v +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.nodes.RBMNode.w mdp.nodes.RBMNode-class.html#w +mdp.nodes.RBMNode.sample_h mdp.nodes.RBMNode-class.html#sample_h +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.RBMNode._sample_v mdp.nodes.RBMNode-class.html#_sample_v +mdp.nodes.RBMWithLabelsNode mdp.nodes.RBMWithLabelsNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.nodes.RBMWithLabelsNode._set_input_dim mdp.nodes.RBMWithLabelsNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.nodes.RBMWithLabelsNode.energy mdp.nodes.RBMWithLabelsNode-class.html#energy +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.RBMWithLabelsNode.__init__ mdp.nodes.RBMWithLabelsNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.RBMNode._execute mdp.nodes.RBMNode-class.html#_execute +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.RBMWithLabelsNode.is_invertible mdp.nodes.RBMWithLabelsNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.RBMNode._train mdp.nodes.RBMNode-class.html#_train +mdp.nodes.RBMNode._init_weights mdp.nodes.RBMNode-class.html#_init_weights +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.nodes.RBMWithLabelsNode.bh mdp.nodes.RBMWithLabelsNode-class.html#bh +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.RBMNode.stop_training mdp.nodes.RBMNode-class.html#stop_training +mdp.nodes.RBMWithLabelsNode.bv mdp.nodes.RBMWithLabelsNode-class.html#bv +mdp.nodes.RBMWithLabelsNode.train mdp.nodes.RBMWithLabelsNode-class.html#train +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.RBMNode._energy mdp.nodes.RBMNode-class.html#_energy +mdp.nodes.RBMNode._stop_training mdp.nodes.RBMNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.RBMNode._pre_inversion_checks mdp.nodes.RBMNode-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.RBMNode._sample_h mdp.nodes.RBMNode-class.html#_sample_h +mdp.nodes.RBMWithLabelsNode.execute mdp.nodes.RBMWithLabelsNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.nodes.RBMWithLabelsNode.sample_v mdp.nodes.RBMWithLabelsNode-class.html#sample_v +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.nodes.RBMWithLabelsNode.w mdp.nodes.RBMWithLabelsNode-class.html#w +mdp.nodes.RBMWithLabelsNode.sample_h mdp.nodes.RBMWithLabelsNode-class.html#sample_h +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.RBMWithLabelsNode._sample_v mdp.nodes.RBMWithLabelsNode-class.html#_sample_v +mdp.nodes.RFECVScikitsLearnNode mdp.nodes.RFECVScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.RFECVScikitsLearnNode.__init__ mdp.nodes.RFECVScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.RFECVScikitsLearnNode._execute mdp.nodes.RFECVScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.RFECVScikitsLearnNode.is_invertible mdp.nodes.RFECVScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.RFECVScikitsLearnNode.stop_training mdp.nodes.RFECVScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.RFECVScikitsLearnNode._get_supported_dtypes mdp.nodes.RFECVScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.RFECVScikitsLearnNode._stop_training mdp.nodes.RFECVScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.RFECVScikitsLearnNode.execute mdp.nodes.RFECVScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.RFECVScikitsLearnNode.is_trainable mdp.nodes.RFECVScikitsLearnNode-class.html#is_trainable +mdp.nodes.RFEScikitsLearnNode mdp.nodes.RFEScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.RFEScikitsLearnNode.__init__ mdp.nodes.RFEScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.RFEScikitsLearnNode._execute mdp.nodes.RFEScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.RFEScikitsLearnNode.is_invertible mdp.nodes.RFEScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.RFEScikitsLearnNode.stop_training mdp.nodes.RFEScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.RFEScikitsLearnNode._get_supported_dtypes mdp.nodes.RFEScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.RFEScikitsLearnNode._stop_training mdp.nodes.RFEScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.RFEScikitsLearnNode.execute mdp.nodes.RFEScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.RFEScikitsLearnNode.is_trainable mdp.nodes.RFEScikitsLearnNode-class.html#is_trainable +mdp.nodes.RandomizedPCAScikitsLearnNode mdp.nodes.RandomizedPCAScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.RandomizedPCAScikitsLearnNode.__init__ mdp.nodes.RandomizedPCAScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.RandomizedPCAScikitsLearnNode._execute mdp.nodes.RandomizedPCAScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.RandomizedPCAScikitsLearnNode.is_invertible mdp.nodes.RandomizedPCAScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.RandomizedPCAScikitsLearnNode.stop_training mdp.nodes.RandomizedPCAScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.RandomizedPCAScikitsLearnNode._get_supported_dtypes mdp.nodes.RandomizedPCAScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.RandomizedPCAScikitsLearnNode._stop_training mdp.nodes.RandomizedPCAScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.RandomizedPCAScikitsLearnNode.execute mdp.nodes.RandomizedPCAScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.RandomizedPCAScikitsLearnNode.is_trainable mdp.nodes.RandomizedPCAScikitsLearnNode-class.html#is_trainable +mdp.nodes.RecursiveExpansionNode mdp.nodes.RecursiveExpansionNode-class.html +mdp.nodes.RecursiveExpansionNode.upper mdp.nodes.RecursiveExpansionNode-class.html#upper +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.nodes.RecursiveExpansionNode.expanded_dim mdp.nodes.RecursiveExpansionNode-class.html#expanded_dim +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.RecursiveExpansionNode.__init__ mdp.nodes.RecursiveExpansionNode-class.html#__init__ +mdp.nodes.RecursiveExpansionNode._get_supported_dtypes mdp.nodes.RecursiveExpansionNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.RecursiveExpansionNode._execute mdp.nodes.RecursiveExpansionNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.nodes.RecursiveExpansionNode.check_domain mdp.nodes.RecursiveExpansionNode-class.html#check_domain +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.nodes.RecursiveExpansionNode.lower mdp.nodes.RecursiveExpansionNode-class.html#lower +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.RecursiveExpansionNode.execute mdp.nodes.RecursiveExpansionNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.nodes.RidgeCVScikitsLearnNode mdp.nodes.RidgeCVScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.RidgeCVScikitsLearnNode.__init__ mdp.nodes.RidgeCVScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.RidgeCVScikitsLearnNode._execute mdp.nodes.RidgeCVScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.RidgeCVScikitsLearnNode.is_invertible mdp.nodes.RidgeCVScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.RidgeCVScikitsLearnNode.stop_training mdp.nodes.RidgeCVScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.RidgeCVScikitsLearnNode._get_supported_dtypes mdp.nodes.RidgeCVScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.RidgeCVScikitsLearnNode._stop_training mdp.nodes.RidgeCVScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.RidgeCVScikitsLearnNode.execute mdp.nodes.RidgeCVScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.RidgeCVScikitsLearnNode.is_trainable mdp.nodes.RidgeCVScikitsLearnNode-class.html#is_trainable +mdp.nodes.RidgeClassifierCVScikitsLearnNode mdp.nodes.RidgeClassifierCVScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.RidgeClassifierCVScikitsLearnNode.__init__ mdp.nodes.RidgeClassifierCVScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.RidgeClassifierCVScikitsLearnNode._execute mdp.nodes.RidgeClassifierCVScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.RidgeClassifierCVScikitsLearnNode.is_invertible mdp.nodes.RidgeClassifierCVScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.RidgeClassifierCVScikitsLearnNode.stop_training mdp.nodes.RidgeClassifierCVScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.RidgeClassifierCVScikitsLearnNode._get_supported_dtypes mdp.nodes.RidgeClassifierCVScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.RidgeClassifierCVScikitsLearnNode._stop_training mdp.nodes.RidgeClassifierCVScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.RidgeClassifierCVScikitsLearnNode.execute mdp.nodes.RidgeClassifierCVScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.RidgeClassifierCVScikitsLearnNode.is_trainable mdp.nodes.RidgeClassifierCVScikitsLearnNode-class.html#is_trainable +mdp.nodes.RidgeClassifierScikitsLearnNode mdp.nodes.RidgeClassifierScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.RidgeClassifierScikitsLearnNode.__init__ mdp.nodes.RidgeClassifierScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.RidgeClassifierScikitsLearnNode._execute mdp.nodes.RidgeClassifierScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.RidgeClassifierScikitsLearnNode.is_invertible mdp.nodes.RidgeClassifierScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.RidgeClassifierScikitsLearnNode.stop_training mdp.nodes.RidgeClassifierScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.RidgeClassifierScikitsLearnNode._get_supported_dtypes mdp.nodes.RidgeClassifierScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.RidgeClassifierScikitsLearnNode._stop_training mdp.nodes.RidgeClassifierScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.RidgeClassifierScikitsLearnNode.execute mdp.nodes.RidgeClassifierScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.RidgeClassifierScikitsLearnNode.is_trainable mdp.nodes.RidgeClassifierScikitsLearnNode-class.html#is_trainable +mdp.nodes.RidgeScikitsLearnNode mdp.nodes.RidgeScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.RidgeScikitsLearnNode.__init__ mdp.nodes.RidgeScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.RidgeScikitsLearnNode._execute mdp.nodes.RidgeScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.RidgeScikitsLearnNode.is_invertible mdp.nodes.RidgeScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.RidgeScikitsLearnNode.stop_training mdp.nodes.RidgeScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.RidgeScikitsLearnNode._get_supported_dtypes mdp.nodes.RidgeScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.RidgeScikitsLearnNode._stop_training mdp.nodes.RidgeScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.RidgeScikitsLearnNode.execute mdp.nodes.RidgeScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.RidgeScikitsLearnNode.is_trainable mdp.nodes.RidgeScikitsLearnNode-class.html#is_trainable +mdp.nodes.SFA2Node mdp.nodes.SFA2Node-class.html +mdp.nodes.SFANode.get_eta_values mdp.nodes.SFANode-class.html#get_eta_values +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.nodes.SFA2Node._set_input_dim mdp.nodes.SFA2Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.nodes.SFANode.time_derivative mdp.nodes.SFANode-class.html#time_derivative +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.nodes.SFANode._check_train_args mdp.nodes.SFANode-class.html#_check_train_args +mdp.nodes.SFANode.avg mdp.nodes.SFANode-class.html#avg +mdp.nodes.SFA2Node.__init__ mdp.nodes.SFA2Node-class.html#__init__ +mdp.nodes.SFANode.inverse mdp.nodes.SFANode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.SFA2Node._execute mdp.nodes.SFA2Node-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.SFA2Node.is_invertible mdp.nodes.SFA2Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.nodes.SFANode.set_rank_deficit_method mdp.nodes.SFANode-class.html#set_rank_deficit_method +mdp.nodes.SFA2Node.get_quadratic_form mdp.nodes.SFA2Node-class.html#get_quadratic_form +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.SFA2Node._train mdp.nodes.SFA2Node-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.SFA2Node.stop_training mdp.nodes.SFA2Node-class.html#stop_training +mdp.nodes.SFA2Node._set_range mdp.nodes.SFA2Node-class.html#_set_range +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.SFA2Node.train mdp.nodes.SFA2Node-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.SFANode._init_cov mdp.nodes.SFANode-class.html#_init_cov +mdp.nodes.SFA2Node._stop_training mdp.nodes.SFA2Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.SFANode._inverse mdp.nodes.SFANode-class.html#_inverse +mdp.nodes.SFA2Node.execute mdp.nodes.SFA2Node-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.nodes.SFANode.d mdp.nodes.SFANode-class.html#d +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.SFANode.sf mdp.nodes.SFANode-class.html#sf +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.SFANode mdp.nodes.SFANode-class.html +mdp.nodes.SFANode.get_eta_values mdp.nodes.SFANode-class.html#get_eta_values +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.nodes.SFANode.time_derivative mdp.nodes.SFANode-class.html#time_derivative +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.nodes.SFANode._check_train_args mdp.nodes.SFANode-class.html#_check_train_args +mdp.nodes.SFANode.avg mdp.nodes.SFANode-class.html#avg +mdp.nodes.SFANode.__init__ mdp.nodes.SFANode-class.html#__init__ +mdp.nodes.SFANode.inverse mdp.nodes.SFANode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.SFANode._execute mdp.nodes.SFANode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.nodes.SFANode.set_rank_deficit_method mdp.nodes.SFANode-class.html#set_rank_deficit_method +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.SFANode._train mdp.nodes.SFANode-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.SFANode.stop_training mdp.nodes.SFANode-class.html#stop_training +mdp.nodes.SFANode._set_range mdp.nodes.SFANode-class.html#_set_range +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.SFANode.train mdp.nodes.SFANode-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.SFANode._init_cov mdp.nodes.SFANode-class.html#_init_cov +mdp.nodes.SFANode._stop_training mdp.nodes.SFANode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.SFANode._inverse mdp.nodes.SFANode-class.html#_inverse +mdp.nodes.SFANode.execute mdp.nodes.SFANode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.nodes.SFANode.d mdp.nodes.SFANode-class.html#d +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.SFANode.sf mdp.nodes.SFANode-class.html#sf +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.SGDClassifierScikitsLearnNode mdp.nodes.SGDClassifierScikitsLearnNode-class.html +mdp.nodes.SGDClassifierScikitsLearnNode._label mdp.nodes.SGDClassifierScikitsLearnNode-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.ClassifierCumulator._check_train_args mdp.ClassifierCumulator-class.html#_check_train_args +mdp.nodes.SGDClassifierScikitsLearnNode.__init__ mdp.nodes.SGDClassifierScikitsLearnNode-class.html#__init__ +mdp.nodes.SGDClassifierScikitsLearnNode._get_supported_dtypes mdp.nodes.SGDClassifierScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.SGDClassifierScikitsLearnNode.is_invertible mdp.nodes.SGDClassifierScikitsLearnNode-class.html#is_invertible +mdp.nodes.SGDClassifierScikitsLearnNode.label mdp.nodes.SGDClassifierScikitsLearnNode-class.html#label +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.ClassifierNode.prob mdp.ClassifierNode-class.html#prob +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.SGDClassifierScikitsLearnNode.stop_training mdp.nodes.SGDClassifierScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.ClassifierCumulator.train mdp.ClassifierCumulator-class.html#train +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.SGDClassifierScikitsLearnNode._stop_training mdp.nodes.SGDClassifierScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.ClassifierCumulator._train mdp.ClassifierCumulator-class.html#_train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.ClassifierNode._prob mdp.ClassifierNode-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.nodes.SGDClassifierScikitsLearnNode.is_trainable mdp.nodes.SGDClassifierScikitsLearnNode-class.html#is_trainable +mdp.nodes.SGDRegressorScikitsLearnNode mdp.nodes.SGDRegressorScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.SGDRegressorScikitsLearnNode.__init__ mdp.nodes.SGDRegressorScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.SGDRegressorScikitsLearnNode._execute mdp.nodes.SGDRegressorScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.SGDRegressorScikitsLearnNode.is_invertible mdp.nodes.SGDRegressorScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.SGDRegressorScikitsLearnNode.stop_training mdp.nodes.SGDRegressorScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.SGDRegressorScikitsLearnNode._get_supported_dtypes mdp.nodes.SGDRegressorScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.SGDRegressorScikitsLearnNode._stop_training mdp.nodes.SGDRegressorScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.SGDRegressorScikitsLearnNode.execute mdp.nodes.SGDRegressorScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.SGDRegressorScikitsLearnNode.is_trainable mdp.nodes.SGDRegressorScikitsLearnNode-class.html#is_trainable +mdp.nodes.SVCScikitsLearnNode mdp.nodes.SVCScikitsLearnNode-class.html +mdp.nodes.SVCScikitsLearnNode._label mdp.nodes.SVCScikitsLearnNode-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.ClassifierCumulator._check_train_args mdp.ClassifierCumulator-class.html#_check_train_args +mdp.nodes.SVCScikitsLearnNode.__init__ mdp.nodes.SVCScikitsLearnNode-class.html#__init__ +mdp.nodes.SVCScikitsLearnNode._get_supported_dtypes mdp.nodes.SVCScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.SVCScikitsLearnNode.is_invertible mdp.nodes.SVCScikitsLearnNode-class.html#is_invertible +mdp.nodes.SVCScikitsLearnNode.label mdp.nodes.SVCScikitsLearnNode-class.html#label +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.ClassifierNode.prob mdp.ClassifierNode-class.html#prob +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.SVCScikitsLearnNode.stop_training mdp.nodes.SVCScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.ClassifierCumulator.train mdp.ClassifierCumulator-class.html#train +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.SVCScikitsLearnNode._stop_training mdp.nodes.SVCScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.ClassifierCumulator._train mdp.ClassifierCumulator-class.html#_train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.ClassifierNode._prob mdp.ClassifierNode-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.nodes.SVCScikitsLearnNode.is_trainable mdp.nodes.SVCScikitsLearnNode-class.html#is_trainable +mdp.nodes.SVRScikitsLearnNode mdp.nodes.SVRScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.SVRScikitsLearnNode.__init__ mdp.nodes.SVRScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.SVRScikitsLearnNode._execute mdp.nodes.SVRScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.SVRScikitsLearnNode.is_invertible mdp.nodes.SVRScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.SVRScikitsLearnNode.stop_training mdp.nodes.SVRScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.SVRScikitsLearnNode._get_supported_dtypes mdp.nodes.SVRScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.SVRScikitsLearnNode._stop_training mdp.nodes.SVRScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.SVRScikitsLearnNode.execute mdp.nodes.SVRScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.SVRScikitsLearnNode.is_trainable mdp.nodes.SVRScikitsLearnNode-class.html#is_trainable +mdp.nodes.ScalerScikitsLearnNode mdp.nodes.ScalerScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.ScalerScikitsLearnNode.__init__ mdp.nodes.ScalerScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.ScalerScikitsLearnNode._execute mdp.nodes.ScalerScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.ScalerScikitsLearnNode.is_invertible mdp.nodes.ScalerScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.ScalerScikitsLearnNode.stop_training mdp.nodes.ScalerScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.ScalerScikitsLearnNode._get_supported_dtypes mdp.nodes.ScalerScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.ScalerScikitsLearnNode._stop_training mdp.nodes.ScalerScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.ScalerScikitsLearnNode.execute mdp.nodes.ScalerScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.ScalerScikitsLearnNode.is_trainable mdp.nodes.ScalerScikitsLearnNode-class.html#is_trainable +mdp.nodes.SelectFdrScikitsLearnNode mdp.nodes.SelectFdrScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.SelectFdrScikitsLearnNode.__init__ mdp.nodes.SelectFdrScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.SelectFdrScikitsLearnNode._execute mdp.nodes.SelectFdrScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.SelectFdrScikitsLearnNode.is_invertible mdp.nodes.SelectFdrScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.SelectFdrScikitsLearnNode.stop_training mdp.nodes.SelectFdrScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.SelectFdrScikitsLearnNode._get_supported_dtypes mdp.nodes.SelectFdrScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.SelectFdrScikitsLearnNode._stop_training mdp.nodes.SelectFdrScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.SelectFdrScikitsLearnNode.execute mdp.nodes.SelectFdrScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.SelectFdrScikitsLearnNode.is_trainable mdp.nodes.SelectFdrScikitsLearnNode-class.html#is_trainable +mdp.nodes.SelectFprScikitsLearnNode mdp.nodes.SelectFprScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.SelectFprScikitsLearnNode.__init__ mdp.nodes.SelectFprScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.SelectFprScikitsLearnNode._execute mdp.nodes.SelectFprScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.SelectFprScikitsLearnNode.is_invertible mdp.nodes.SelectFprScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.SelectFprScikitsLearnNode.stop_training mdp.nodes.SelectFprScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.SelectFprScikitsLearnNode._get_supported_dtypes mdp.nodes.SelectFprScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.SelectFprScikitsLearnNode._stop_training mdp.nodes.SelectFprScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.SelectFprScikitsLearnNode.execute mdp.nodes.SelectFprScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.SelectFprScikitsLearnNode.is_trainable mdp.nodes.SelectFprScikitsLearnNode-class.html#is_trainable +mdp.nodes.SelectFweScikitsLearnNode mdp.nodes.SelectFweScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.SelectFweScikitsLearnNode.__init__ mdp.nodes.SelectFweScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.SelectFweScikitsLearnNode._execute mdp.nodes.SelectFweScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.SelectFweScikitsLearnNode.is_invertible mdp.nodes.SelectFweScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.SelectFweScikitsLearnNode.stop_training mdp.nodes.SelectFweScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.SelectFweScikitsLearnNode._get_supported_dtypes mdp.nodes.SelectFweScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.SelectFweScikitsLearnNode._stop_training mdp.nodes.SelectFweScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.SelectFweScikitsLearnNode.execute mdp.nodes.SelectFweScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.SelectFweScikitsLearnNode.is_trainable mdp.nodes.SelectFweScikitsLearnNode-class.html#is_trainable +mdp.nodes.SelectKBestScikitsLearnNode mdp.nodes.SelectKBestScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.SelectKBestScikitsLearnNode.__init__ mdp.nodes.SelectKBestScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.SelectKBestScikitsLearnNode._execute mdp.nodes.SelectKBestScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.SelectKBestScikitsLearnNode.is_invertible mdp.nodes.SelectKBestScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.SelectKBestScikitsLearnNode.stop_training mdp.nodes.SelectKBestScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.SelectKBestScikitsLearnNode._get_supported_dtypes mdp.nodes.SelectKBestScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.SelectKBestScikitsLearnNode._stop_training mdp.nodes.SelectKBestScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.SelectKBestScikitsLearnNode.execute mdp.nodes.SelectKBestScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.SelectKBestScikitsLearnNode.is_trainable mdp.nodes.SelectKBestScikitsLearnNode-class.html#is_trainable +mdp.nodes.SelectPercentileScikitsLearnNode mdp.nodes.SelectPercentileScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.SelectPercentileScikitsLearnNode.__init__ mdp.nodes.SelectPercentileScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.SelectPercentileScikitsLearnNode._execute mdp.nodes.SelectPercentileScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.SelectPercentileScikitsLearnNode.is_invertible mdp.nodes.SelectPercentileScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.SelectPercentileScikitsLearnNode.stop_training mdp.nodes.SelectPercentileScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.SelectPercentileScikitsLearnNode._get_supported_dtypes mdp.nodes.SelectPercentileScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.SelectPercentileScikitsLearnNode._stop_training mdp.nodes.SelectPercentileScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.SelectPercentileScikitsLearnNode.execute mdp.nodes.SelectPercentileScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.SelectPercentileScikitsLearnNode.is_trainable mdp.nodes.SelectPercentileScikitsLearnNode-class.html#is_trainable +mdp.nodes.SignumClassifier mdp.nodes.SignumClassifier-class.html +mdp.nodes.SignumClassifier._label mdp.nodes.SignumClassifier-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.ClassifierNode.__init__ mdp.ClassifierNode-class.html#__init__ +mdp.nodes.SignumClassifier._get_supported_dtypes mdp.nodes.SignumClassifier-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.nodes.SignumClassifier.label mdp.nodes.SignumClassifier-class.html#label +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.ClassifierNode.prob mdp.ClassifierNode-class.html#prob +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.ClassifierNode._prob mdp.ClassifierNode-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.nodes.SignumClassifier.is_trainable mdp.nodes.SignumClassifier-class.html#is_trainable +mdp.nodes.SimpleMarkovClassifier mdp.nodes.SimpleMarkovClassifier-class.html +mdp.ClassifierNode._label mdp.ClassifierNode-class.html#_label +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.ClassifierNode.rank mdp.ClassifierNode-class.html#rank +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.nodes.SimpleMarkovClassifier._check_train_args mdp.nodes.SimpleMarkovClassifier-class.html#_check_train_args +mdp.nodes.SimpleMarkovClassifier.__init__ mdp.nodes.SimpleMarkovClassifier-class.html#__init__ +mdp.nodes.SimpleMarkovClassifier._get_supported_dtypes mdp.nodes.SimpleMarkovClassifier-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.ClassifierNode._execute mdp.ClassifierNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.ClassifierNode.label mdp.ClassifierNode-class.html#label +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.nodes.SimpleMarkovClassifier._prob_one mdp.nodes.SimpleMarkovClassifier-class.html#_prob_one +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.SimpleMarkovClassifier.prob mdp.nodes.SimpleMarkovClassifier-class.html#prob +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.SimpleMarkovClassifier.train mdp.nodes.SimpleMarkovClassifier-class.html#train +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.SimpleMarkovClassifier._learn mdp.nodes.SimpleMarkovClassifier-class.html#_learn +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.ClassifierNode.execute mdp.ClassifierNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.nodes.SimpleMarkovClassifier._train mdp.nodes.SimpleMarkovClassifier-class.html#_train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.nodes.SimpleMarkovClassifier._prob mdp.nodes.SimpleMarkovClassifier-class.html#_prob +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.SparseBaseLibLinearScikitsLearnNode mdp.nodes.SparseBaseLibLinearScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.SparseBaseLibLinearScikitsLearnNode.__init__ mdp.nodes.SparseBaseLibLinearScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.SparseBaseLibLinearScikitsLearnNode._execute mdp.nodes.SparseBaseLibLinearScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.SparseBaseLibLinearScikitsLearnNode.is_invertible mdp.nodes.SparseBaseLibLinearScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.SparseBaseLibLinearScikitsLearnNode.stop_training mdp.nodes.SparseBaseLibLinearScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.SparseBaseLibLinearScikitsLearnNode._get_supported_dtypes mdp.nodes.SparseBaseLibLinearScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.SparseBaseLibLinearScikitsLearnNode._stop_training mdp.nodes.SparseBaseLibLinearScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.SparseBaseLibLinearScikitsLearnNode.execute mdp.nodes.SparseBaseLibLinearScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.SparseBaseLibLinearScikitsLearnNode.is_trainable mdp.nodes.SparseBaseLibLinearScikitsLearnNode-class.html#is_trainable +mdp.nodes.SparseBaseLibSVMScikitsLearnNode mdp.nodes.SparseBaseLibSVMScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.SparseBaseLibSVMScikitsLearnNode.__init__ mdp.nodes.SparseBaseLibSVMScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.SparseBaseLibSVMScikitsLearnNode._execute mdp.nodes.SparseBaseLibSVMScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.SparseBaseLibSVMScikitsLearnNode.is_invertible mdp.nodes.SparseBaseLibSVMScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.SparseBaseLibSVMScikitsLearnNode.stop_training mdp.nodes.SparseBaseLibSVMScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.SparseBaseLibSVMScikitsLearnNode._get_supported_dtypes mdp.nodes.SparseBaseLibSVMScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.SparseBaseLibSVMScikitsLearnNode._stop_training mdp.nodes.SparseBaseLibSVMScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.SparseBaseLibSVMScikitsLearnNode.execute mdp.nodes.SparseBaseLibSVMScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.SparseBaseLibSVMScikitsLearnNode.is_trainable mdp.nodes.SparseBaseLibSVMScikitsLearnNode-class.html#is_trainable +mdp.nodes.TDSEPNode mdp.nodes.TDSEPNode-class.html +mdp.nodes.ISFANode._adjust_ica_sfa_coeff mdp.nodes.ISFANode-class.html#_adjust_ica_sfa_coeff +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.nodes.ISFANode._fmt_prog_info mdp.nodes.ISFANode-class.html#_fmt_prog_info +mdp.nodes.ISFANode._set_input_dim mdp.nodes.ISFANode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.nodes.ISFANode._optimize mdp.nodes.ISFANode-class.html#_optimize +mdp.Node.copy mdp.Node-class.html#copy +mdp.nodes.ISFANode._get_eye mdp.nodes.ISFANode-class.html#_get_eye +mdp.nodes.ISFANode._fix_covs mdp.nodes.ISFANode-class.html#_fix_covs +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.nodes.TDSEPNode.filters mdp.nodes.TDSEPNode-class.html#filters +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.ISFANode._do_sweep mdp.nodes.ISFANode-class.html#_do_sweep +mdp.nodes.ISFANode._get_contrast mdp.nodes.ISFANode-class.html#_get_contrast +mdp.nodes.TDSEPNode.__init__ mdp.nodes.TDSEPNode-class.html#__init__ +mdp.nodes.ISFANode.inverse mdp.nodes.ISFANode-class.html#inverse +mdp.nodes.ISFANode.RP mdp.nodes.ISFANode-class.html#RP +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.ISFANode._execute mdp.nodes.ISFANode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.nodes.ISFANode.RPC mdp.nodes.ISFANode-class.html#RPC +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.nodes.TDSEPNode.white mdp.nodes.TDSEPNode-class.html#white +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.ISFANode._train mdp.nodes.ISFANode-class.html#_train +mdp.nodes.ISFANode._givens_angle mdp.nodes.ISFANode-class.html#_givens_angle +mdp.nodes.ISFANode.initial_contrast mdp.nodes.ISFANode-class.html#initial_contrast +mdp.nodes.ISFANode._inverse mdp.nodes.ISFANode-class.html#_inverse +mdp.nodes.ISFANode._get_rnd_permutation mdp.nodes.ISFANode-class.html#_get_rnd_permutation +mdp.nodes.ISFANode._set_dtype mdp.nodes.ISFANode-class.html#_set_dtype +mdp.nodes.ISFANode.execute mdp.nodes.ISFANode-class.html#execute +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.TDSEPNode.stop_training mdp.nodes.TDSEPNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.ISFANode._get_supported_dtypes mdp.nodes.ISFANode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.TDSEPNode.convergence mdp.nodes.TDSEPNode-class.html#convergence +mdp.nodes.TDSEPNode._stop_training mdp.nodes.TDSEPNode-class.html#_stop_training +mdp.nodes.ISFANode.covs mdp.nodes.ISFANode-class.html#covs +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.ISFANode._givens_angle_case2 mdp.nodes.ISFANode-class.html#_givens_angle_case2 +mdp.nodes.ISFANode._givens_angle_case1 mdp.nodes.ISFANode-class.html#_givens_angle_case1 +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.ISFANode._get_rnd_rotation mdp.nodes.ISFANode-class.html#_get_rnd_rotation +mdp.nodes.ISFANode.train mdp.nodes.ISFANode-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.ISFANode.final_contrast mdp.nodes.ISFANode-class.html#final_contrast +mdp.nodes.TfidfTransformerScikitsLearnNode mdp.nodes.TfidfTransformerScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.TfidfTransformerScikitsLearnNode.__init__ mdp.nodes.TfidfTransformerScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.TfidfTransformerScikitsLearnNode._execute mdp.nodes.TfidfTransformerScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.TfidfTransformerScikitsLearnNode.is_invertible mdp.nodes.TfidfTransformerScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.TfidfTransformerScikitsLearnNode.stop_training mdp.nodes.TfidfTransformerScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.TfidfTransformerScikitsLearnNode._get_supported_dtypes mdp.nodes.TfidfTransformerScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.TfidfTransformerScikitsLearnNode._stop_training mdp.nodes.TfidfTransformerScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.TfidfTransformerScikitsLearnNode.execute mdp.nodes.TfidfTransformerScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.TfidfTransformerScikitsLearnNode.is_trainable mdp.nodes.TfidfTransformerScikitsLearnNode-class.html#is_trainable +mdp.nodes.TimeDelayNode mdp.nodes.TimeDelayNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.nodes.TimeFramesNode._set_input_dim mdp.nodes.TimeFramesNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.TimeDelayNode.__init__ mdp.nodes.TimeDelayNode-class.html#__init__ +mdp.nodes.TimeFramesNode._get_supported_dtypes mdp.nodes.TimeFramesNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.TimeDelayNode._execute mdp.nodes.TimeDelayNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.TimeFramesNode.is_invertible mdp.nodes.TimeFramesNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.TimeDelayNode.execute mdp.nodes.TimeDelayNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.nodes.TimeDelayNode.pseudo_inverse mdp.nodes.TimeDelayNode-class.html#pseudo_inverse +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.nodes.TimeFramesNode._set_output_dim mdp.nodes.TimeFramesNode-class.html#_set_output_dim +mdp.nodes.TimeFramesNode.is_trainable mdp.nodes.TimeFramesNode-class.html#is_trainable +mdp.nodes.TimeDelaySlidingWindowNode mdp.nodes.TimeDelaySlidingWindowNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.nodes.TimeFramesNode._set_input_dim mdp.nodes.TimeFramesNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.TimeDelaySlidingWindowNode.__init__ mdp.nodes.TimeDelaySlidingWindowNode-class.html#__init__ +mdp.nodes.TimeFramesNode._get_supported_dtypes mdp.nodes.TimeFramesNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.TimeDelaySlidingWindowNode._execute mdp.nodes.TimeDelaySlidingWindowNode-class.html#_execute +mdp.nodes.TimeDelaySlidingWindowNode._init_sliding_window mdp.nodes.TimeDelaySlidingWindowNode-class.html#_init_sliding_window +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.TimeFramesNode.is_invertible mdp.nodes.TimeFramesNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.TimeDelaySlidingWindowNode.execute mdp.nodes.TimeDelaySlidingWindowNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.nodes.TimeDelayNode.pseudo_inverse mdp.nodes.TimeDelayNode-class.html#pseudo_inverse +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.nodes.TimeFramesNode._set_output_dim mdp.nodes.TimeFramesNode-class.html#_set_output_dim +mdp.nodes.TimeFramesNode.is_trainable mdp.nodes.TimeFramesNode-class.html#is_trainable +mdp.nodes.TimeFramesNode mdp.nodes.TimeFramesNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.nodes.TimeFramesNode._set_input_dim mdp.nodes.TimeFramesNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.TimeFramesNode.__init__ mdp.nodes.TimeFramesNode-class.html#__init__ +mdp.nodes.TimeFramesNode._get_supported_dtypes mdp.nodes.TimeFramesNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.TimeFramesNode._execute mdp.nodes.TimeFramesNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.TimeFramesNode.is_invertible mdp.nodes.TimeFramesNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.TimeFramesNode.execute mdp.nodes.TimeFramesNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.nodes.TimeFramesNode.pseudo_inverse mdp.nodes.TimeFramesNode-class.html#pseudo_inverse +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.nodes.TimeFramesNode._set_output_dim mdp.nodes.TimeFramesNode-class.html#_set_output_dim +mdp.nodes.TimeFramesNode.is_trainable mdp.nodes.TimeFramesNode-class.html#is_trainable +mdp.nodes.VartimeSFANode mdp.nodes.VartimeSFANode-class.html +mdp.nodes.SFANode.get_eta_values mdp.nodes.SFANode-class.html#get_eta_values +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.nodes.VartimeSFANode.time_derivative mdp.nodes.VartimeSFANode-class.html#time_derivative +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.nodes.SFANode._check_train_args mdp.nodes.SFANode-class.html#_check_train_args +mdp.nodes.VartimeSFANode.avg mdp.nodes.VartimeSFANode-class.html#avg +mdp.nodes.VartimeSFANode.__init__ mdp.nodes.VartimeSFANode-class.html#__init__ +mdp.nodes.SFANode.inverse mdp.nodes.SFANode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.SFANode._execute mdp.nodes.SFANode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.nodes.SFANode.set_rank_deficit_method mdp.nodes.SFANode-class.html#set_rank_deficit_method +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.VartimeSFANode._train mdp.nodes.VartimeSFANode-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.SFANode.stop_training mdp.nodes.SFANode-class.html#stop_training +mdp.nodes.SFANode._set_range mdp.nodes.SFANode-class.html#_set_range +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.VartimeSFANode.train mdp.nodes.VartimeSFANode-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.VartimeSFANode._init_cov mdp.nodes.VartimeSFANode-class.html#_init_cov +mdp.nodes.SFANode._stop_training mdp.nodes.SFANode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.SFANode._inverse mdp.nodes.SFANode-class.html#_inverse +mdp.nodes.SFANode.execute mdp.nodes.SFANode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.nodes.VartimeSFANode.d mdp.nodes.VartimeSFANode-class.html#d +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.VartimeSFANode.sf mdp.nodes.VartimeSFANode-class.html#sf +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.VectorizerScikitsLearnNode mdp.nodes.VectorizerScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.VectorizerScikitsLearnNode.__init__ mdp.nodes.VectorizerScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.VectorizerScikitsLearnNode._execute mdp.nodes.VectorizerScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.VectorizerScikitsLearnNode.is_invertible mdp.nodes.VectorizerScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.VectorizerScikitsLearnNode.stop_training mdp.nodes.VectorizerScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.VectorizerScikitsLearnNode._get_supported_dtypes mdp.nodes.VectorizerScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.VectorizerScikitsLearnNode._stop_training mdp.nodes.VectorizerScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.VectorizerScikitsLearnNode.execute mdp.nodes.VectorizerScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.VectorizerScikitsLearnNode.is_trainable mdp.nodes.VectorizerScikitsLearnNode-class.html#is_trainable +mdp.nodes.WardAgglomerationScikitsLearnNode mdp.nodes.WardAgglomerationScikitsLearnNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.WardAgglomerationScikitsLearnNode.__init__ mdp.nodes.WardAgglomerationScikitsLearnNode-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.WardAgglomerationScikitsLearnNode._execute mdp.nodes.WardAgglomerationScikitsLearnNode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.WardAgglomerationScikitsLearnNode.is_invertible mdp.nodes.WardAgglomerationScikitsLearnNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Cumulator._train mdp.Cumulator-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.WardAgglomerationScikitsLearnNode.stop_training mdp.nodes.WardAgglomerationScikitsLearnNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.WardAgglomerationScikitsLearnNode._get_supported_dtypes mdp.nodes.WardAgglomerationScikitsLearnNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.WardAgglomerationScikitsLearnNode._stop_training mdp.nodes.WardAgglomerationScikitsLearnNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.WardAgglomerationScikitsLearnNode.execute mdp.nodes.WardAgglomerationScikitsLearnNode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Cumulator.train mdp.Cumulator-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.WardAgglomerationScikitsLearnNode.is_trainable mdp.nodes.WardAgglomerationScikitsLearnNode-class.html#is_trainable +mdp.nodes.WhiteningNode mdp.nodes.WhiteningNode-class.html +mdp.nodes.PCANode._check_output mdp.nodes.PCANode-class.html#_check_output +mdp.nodes.WhiteningNode.get_eigenvectors mdp.nodes.WhiteningNode-class.html#get_eigenvectors +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.nodes.PCANode.get_explained_variance mdp.nodes.PCANode-class.html#get_explained_variance +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.PCANode.get_projmatrix mdp.nodes.PCANode-class.html#get_projmatrix +mdp.nodes.WhiteningNode.avg mdp.nodes.WhiteningNode-class.html#avg +mdp.nodes.PCANode.__init__ mdp.nodes.PCANode-class.html#__init__ +mdp.nodes.PCANode.inverse mdp.nodes.PCANode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.PCANode._execute mdp.nodes.PCANode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.PCANode._train mdp.nodes.PCANode-class.html#_train +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.WhiteningNode.stop_training mdp.nodes.WhiteningNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.PCANode.train mdp.nodes.PCANode-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.WhiteningNode._stop_training mdp.nodes.WhiteningNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.PCANode._inverse mdp.nodes.PCANode-class.html#_inverse +mdp.nodes.PCANode.execute mdp.nodes.PCANode-class.html#execute +mdp.nodes.PCANode._adjust_output_dim mdp.nodes.PCANode-class.html#_adjust_output_dim +mdp.nodes.WhiteningNode.d mdp.nodes.WhiteningNode-class.html#d +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.nodes.WhiteningNode.explained_variance mdp.nodes.WhiteningNode-class.html#explained_variance +mdp.nodes.WhiteningNode.get_recmatrix mdp.nodes.WhiteningNode-class.html#get_recmatrix +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.nodes.WhiteningNode.v mdp.nodes.WhiteningNode-class.html#v +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.nodes.PCANode._set_output_dim mdp.nodes.PCANode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes.XSFANode mdp.nodes.XSFANode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.nodes.XSFANode._set_input_dim mdp.nodes.XSFANode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.nodes.XSFANode._check_train_args mdp.nodes.XSFANode-class.html#_check_train_args +mdp.nodes.XSFANode.__init__ mdp.nodes.XSFANode-class.html#__init__ +mdp.nodes.XSFANode._initialize_internal_flow mdp.nodes.XSFANode-class.html#_initialize_internal_flow +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.XSFANode._execute mdp.nodes.XSFANode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.nodes.XSFANode.is_invertible mdp.nodes.XSFANode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.XSFANode._train mdp.nodes.XSFANode-class.html#_train +mdp.nodes.XSFANode._get_train_seq mdp.nodes.XSFANode-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.XSFANode.stop_training mdp.nodes.XSFANode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.XSFANode.train mdp.nodes.XSFANode-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.XSFANode._stop_training mdp.nodes.XSFANode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.nodes.XSFANode.execute mdp.nodes.XSFANode-class.html#execute +mdp.nodes.XSFANode._get_source_extractor mdp.nodes.XSFANode-class.html#_get_source_extractor +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.nodes.XSFANode.flow mdp.nodes.XSFANode-class.html#flow +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.nodes._OneDimensionalHitParade mdp.nodes._OneDimensionalHitParade-class.html +mdp.nodes._OneDimensionalHitParade.get_minima mdp.nodes._OneDimensionalHitParade-class.html#get_minima +mdp.nodes._OneDimensionalHitParade.__init__ mdp.nodes._OneDimensionalHitParade-class.html#__init__ +mdp.nodes._OneDimensionalHitParade.get_maxima mdp.nodes._OneDimensionalHitParade-class.html#get_maxima +mdp.nodes._OneDimensionalHitParade.update mdp.nodes._OneDimensionalHitParade-class.html#update +mdp.nodes.iGSFANode mdp.nodes.iGSFANode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.iGSFANode.__init__ mdp.nodes.iGSFANode-class.html#__init__ +mdp.nodes.iGSFANode.linear_inverse mdp.nodes.iGSFANode-class.html#linear_inverse +mdp.nodes.iGSFANode.multiple_train mdp.nodes.iGSFANode-class.html#multiple_train +mdp.nodes.iGSFANode.inverse mdp.nodes.iGSFANode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.iGSFANode._execute mdp.nodes.iGSFANode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.nodes.iGSFANode.nonlinear_inverse mdp.nodes.iGSFANode-class.html#nonlinear_inverse +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.iGSFANode._train mdp.nodes.iGSFANode-class.html#_train +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.iGSFANode.stop_training mdp.nodes.iGSFANode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.iGSFANode.train mdp.nodes.iGSFANode-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.iGSFANode._stop_training mdp.nodes.iGSFANode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.nodes.iGSFANode._is_invertible mdp.nodes.iGSFANode-class.html#_is_invertible +mdp.nodes.iGSFANode._inverse mdp.nodes.iGSFANode-class.html#_inverse +mdp.nodes.iGSFANode.execute mdp.nodes.iGSFANode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.iGSFANode.is_trainable mdp.nodes.iGSFANode-class.html#is_trainable +mdp.parallel.ExecuteResultContainer mdp.parallel.ExecuteResultContainer-class.html +mdp.parallel.ExecuteResultContainer.get_results mdp.parallel.ExecuteResultContainer-class.html#get_results +mdp.parallel.ExecuteResultContainer.add_result mdp.parallel.ExecuteResultContainer-class.html#add_result +mdp.parallel.ExecuteResultContainer.__init__ mdp.parallel.ExecuteResultContainer-class.html#__init__ +mdp.parallel.FlowExecuteCallable mdp.parallel.FlowExecuteCallable-class.html +mdp.parallel.FlowTaskCallable.setup_environment mdp.parallel.FlowTaskCallable-class.html#setup_environment +mdp.parallel.FlowExecuteCallable.__init__ mdp.parallel.FlowExecuteCallable-class.html#__init__ +mdp.parallel.FlowExecuteCallable.__call__ mdp.parallel.FlowExecuteCallable-class.html#__call__ +mdp.parallel.FlowExecuteCallable.fork mdp.parallel.FlowExecuteCallable-class.html#fork +mdp.parallel.FlowTaskCallable mdp.parallel.FlowTaskCallable-class.html +mdp.parallel.TaskCallable.fork mdp.parallel.TaskCallable-class.html#fork +mdp.parallel.FlowTaskCallable.__init__ mdp.parallel.FlowTaskCallable-class.html#__init__ +mdp.parallel.TaskCallable.__call__ mdp.parallel.TaskCallable-class.html#__call__ +mdp.parallel.FlowTaskCallable.setup_environment mdp.parallel.FlowTaskCallable-class.html#setup_environment +mdp.parallel.FlowTrainCallable mdp.parallel.FlowTrainCallable-class.html +mdp.parallel.FlowTaskCallable.setup_environment mdp.parallel.FlowTaskCallable-class.html#setup_environment +mdp.parallel.FlowTrainCallable.__init__ mdp.parallel.FlowTrainCallable-class.html#__init__ +mdp.parallel.FlowTrainCallable.__call__ mdp.parallel.FlowTrainCallable-class.html#__call__ +mdp.parallel.FlowTrainCallable.fork mdp.parallel.FlowTrainCallable-class.html#fork +mdp.parallel.JoinParallelException mdp.parallel.JoinParallelException-class.html +mdp.parallel.ListResultContainer mdp.parallel.ListResultContainer-class.html +mdp.parallel.ListResultContainer.get_results mdp.parallel.ListResultContainer-class.html#get_results +mdp.parallel.ListResultContainer.add_result mdp.parallel.ListResultContainer-class.html#add_result +mdp.parallel.ListResultContainer.__init__ mdp.parallel.ListResultContainer-class.html#__init__ +mdp.parallel.NoTaskException mdp.parallel.NoTaskException-class.html +mdp.parallel.NotForkableParallelException mdp.parallel.NotForkableParallelException-class.html +mdp.parallel.OrderedResultContainer mdp.parallel.OrderedResultContainer-class.html +mdp.parallel.OrderedResultContainer.get_results mdp.parallel.OrderedResultContainer-class.html#get_results +mdp.parallel.OrderedResultContainer.add_result mdp.parallel.OrderedResultContainer-class.html#add_result +mdp.parallel.OrderedResultContainer.__init__ mdp.parallel.OrderedResultContainer-class.html#__init__ +mdp.parallel.ParallelCheckpointFlow mdp.parallel.ParallelCheckpointFlow-class.html +mdp.parallel.ParallelFlow.get_task mdp.parallel.ParallelFlow-class.html#get_task +mdp.parallel.ParallelFlow._create_train_task mdp.parallel.ParallelFlow-class.html#_create_train_task +mdp.Flow.__repr__ mdp.Flow-class.html#__repr__ +mdp.parallel.ParallelFlow.is_parallel_training mdp.parallel.ParallelFlow-class.html#is_parallel_training +mdp.Flow.__str__ mdp.Flow-class.html#__str__ +mdp.Flow.pop mdp.Flow-class.html#pop +mdp.Flow._train_check_iterables mdp.Flow-class.html#_train_check_iterables +mdp.Flow._inverse_seq mdp.Flow-class.html#_inverse_seq +mdp.Flow._check_value_type_isnode mdp.Flow-class.html#_check_value_type_isnode +mdp.Flow.append mdp.Flow-class.html#append +mdp.Flow.inverse mdp.Flow-class.html#inverse +mdp.Flow.__getitem__ mdp.Flow-class.html#__getitem__ +mdp.Flow.__contains__ mdp.Flow-class.html#__contains__ +mdp.Flow._close_last_node mdp.Flow-class.html#_close_last_node +mdp.Flow._propagate_exception mdp.Flow-class.html#_propagate_exception +mdp.parallel.ParallelCheckpointFlow.__init__ mdp.parallel.ParallelCheckpointFlow-class.html#__init__ +mdp.Flow.__delitem__ mdp.Flow-class.html#__delitem__ +mdp.Flow.__call__ mdp.Flow-class.html#__call__ +mdp.Flow._stop_training_hook mdp.Flow-class.html#_stop_training_hook +mdp.parallel.ParallelFlow._next_train_phase mdp.parallel.ParallelFlow-class.html#_next_train_phase +mdp.Flow.save mdp.Flow-class.html#save +mdp.Flow.__len__ mdp.Flow-class.html#__len__ +mdp.Flow._check_dimension_consistency mdp.Flow-class.html#_check_dimension_consistency +mdp.CheckpointFlow._train_check_checkpoints mdp.CheckpointFlow-class.html#_train_check_checkpoints +mdp.parallel.ParallelCheckpointFlow.setup_parallel_training mdp.parallel.ParallelCheckpointFlow-class.html#setup_parallel_training +mdp.parallel.ParallelFlow._local_train_phase mdp.parallel.ParallelFlow-class.html#_local_train_phase +mdp.parallel.ParallelFlow._create_execute_task mdp.parallel.ParallelFlow-class.html#_create_execute_task +mdp.Flow._execute_seq mdp.Flow-class.html#_execute_seq +mdp.Flow.__setitem__ mdp.Flow-class.html#__setitem__ +mdp.parallel.ParallelCheckpointFlow.train mdp.parallel.ParallelCheckpointFlow-class.html#train +mdp.Flow._get_required_train_args mdp.Flow-class.html#_get_required_train_args +mdp.Flow.__add__ mdp.Flow-class.html#__add__ +mdp.Flow.set_crash_recovery mdp.Flow-class.html#set_crash_recovery +mdp.parallel.ParallelFlow.task_available mdp.parallel.ParallelFlow-class.html#task_available +mdp.Flow.copy mdp.Flow-class.html#copy +mdp.Flow._check_nodes_consistency mdp.Flow-class.html#_check_nodes_consistency +mdp.Flow.extend mdp.Flow-class.html#extend +mdp.Flow.insert mdp.Flow-class.html#insert +mdp.parallel.ParallelFlow.execute mdp.parallel.ParallelFlow-class.html#execute +mdp.parallel.ParallelCheckpointFlow._post_stop_training_hook mdp.parallel.ParallelCheckpointFlow-class.html#_post_stop_training_hook +mdp.Flow._train_node mdp.Flow-class.html#_train_node +mdp.Flow.__iter__ mdp.Flow-class.html#__iter__ +mdp.Flow.__iadd__ mdp.Flow-class.html#__iadd__ +mdp.parallel.ParallelFlow.setup_parallel_execution mdp.parallel.ParallelFlow-class.html#setup_parallel_execution +mdp.parallel.ParallelFlow.use_results mdp.parallel.ParallelFlow-class.html#use_results +mdp.parallel.ParallelFlow.is_parallel_executing mdp.parallel.ParallelFlow-class.html#is_parallel_executing +mdp.parallel.ParallelCloneLayer mdp.parallel.ParallelCloneLayer-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.parallel.ParallelExtensionNode._default_fork mdp.parallel.ParallelExtensionNode-class.html#_default_fork +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.hinet.Layer._pre_execution_checks mdp.hinet.Layer-class.html#_pre_execution_checks +mdp.hinet.Layer._check_props mdp.hinet.Layer-class.html#_check_props +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.parallel.ParallelCloneLayer._fork mdp.parallel.ParallelCloneLayer-class.html#_fork +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.hinet.CloneLayer.__init__ mdp.hinet.CloneLayer-class.html#__init__ +mdp.hinet.CloneLayer.inverse mdp.hinet.CloneLayer-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.hinet.Layer.__contains__ mdp.hinet.Layer-class.html#__contains__ +mdp.hinet.CloneLayer._execute mdp.hinet.CloneLayer-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.parallel.ParallelExtensionNode._join_covariance mdp.parallel.ParallelExtensionNode-class.html#_join_covariance +mdp.hinet.Layer.is_invertible mdp.hinet.Layer-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.hinet.Layer._get_output_dim_from_nodes mdp.hinet.Layer-class.html#_get_output_dim_from_nodes +mdp.hinet.Layer._train mdp.hinet.Layer-class.html#_train +mdp.hinet.Layer.__len__ mdp.hinet.Layer-class.html#__len__ +mdp.parallel.ParallelExtensionNode.fork mdp.parallel.ParallelExtensionNode-class.html#fork +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.hinet.Layer._get_train_seq mdp.hinet.Layer-class.html#_get_train_seq +mdp.hinet.Layer.__getitem__ mdp.hinet.Layer-class.html#__getitem__ +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.hinet.Layer._set_dtype mdp.hinet.Layer-class.html#_set_dtype +mdp.parallel.ParallelCloneLayer._join mdp.parallel.ParallelCloneLayer-class.html#_join +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.hinet.CloneLayer.stop_training mdp.hinet.CloneLayer-class.html#stop_training +mdp.hinet.Layer.__iter__ mdp.hinet.Layer-class.html#__iter__ +mdp.hinet.Layer._get_supported_dtypes mdp.hinet.Layer-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.hinet.CloneLayer._stop_training mdp.hinet.CloneLayer-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.parallel.ParallelCloneLayer.use_execute_fork mdp.parallel.ParallelCloneLayer-class.html#use_execute_fork +mdp.hinet.CloneLayer._inverse mdp.hinet.CloneLayer-class.html#_inverse +mdp.hinet.CloneLayer.execute mdp.hinet.CloneLayer-class.html#execute +mdp.Node.save mdp.Node-class.html#save +mdp.parallel.ParallelExtensionNode.join mdp.parallel.ParallelExtensionNode-class.html#join +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.parallel.ParallelExtensionNode.extension_name mdp.parallel.ParallelExtensionNode-class.html#extension_name +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.hinet.Layer.train mdp.hinet.Layer-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.hinet.Layer.is_trainable mdp.hinet.Layer-class.html#is_trainable +mdp.parallel.ParallelExtensionNode mdp.parallel.ParallelExtensionNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.parallel.ParallelExtensionNode._default_fork mdp.parallel.ParallelExtensionNode-class.html#_default_fork +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.parallel.ParallelExtensionNode._fork mdp.parallel.ParallelExtensionNode-class.html#_fork +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.Node.__init__ mdp.Node-class.html#__init__ +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.Node._execute mdp.Node-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.parallel.ParallelExtensionNode._join_covariance mdp.parallel.ParallelExtensionNode-class.html#_join_covariance +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.parallel.ParallelExtensionNode.fork mdp.parallel.ParallelExtensionNode-class.html#fork +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.parallel.ParallelExtensionNode._join mdp.parallel.ParallelExtensionNode-class.html#_join +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.parallel.ParallelExtensionNode.use_execute_fork mdp.parallel.ParallelExtensionNode-class.html#use_execute_fork +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node.execute mdp.Node-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.parallel.ParallelExtensionNode.join mdp.parallel.ParallelExtensionNode-class.html#join +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.parallel.ParallelExtensionNode.extension_name mdp.parallel.ParallelExtensionNode-class.html#extension_name +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.parallel.ParallelFDANode mdp.parallel.ParallelFDANode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.parallel.ParallelExtensionNode._default_fork mdp.parallel.ParallelExtensionNode-class.html#_default_fork +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.nodes.FDANode._train_fda mdp.nodes.FDANode-class.html#_train_fda +mdp.nodes.FDANode._update_means mdp.nodes.FDANode-class.html#_update_means +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.parallel.ParallelFDANode._fork mdp.parallel.ParallelFDANode-class.html#_fork +mdp.nodes.FDANode._check_train_args mdp.nodes.FDANode-class.html#_check_train_args +mdp.nodes.FDANode.avg mdp.nodes.FDANode-class.html#avg +mdp.nodes.FDANode.__init__ mdp.nodes.FDANode-class.html#__init__ +mdp.nodes.FDANode.inverse mdp.nodes.FDANode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.FDANode._train_means mdp.nodes.FDANode-class.html#_train_means +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.parallel.ParallelExtensionNode._join_covariance mdp.parallel.ParallelExtensionNode-class.html#_join_covariance +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.FDANode._train mdp.nodes.FDANode-class.html#_train +mdp.parallel.ParallelExtensionNode.fork mdp.parallel.ParallelExtensionNode-class.html#fork +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.nodes.FDANode._get_train_seq mdp.nodes.FDANode-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.parallel.ParallelFDANode._join mdp.parallel.ParallelFDANode-class.html#_join +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.FDANode._stop_means mdp.nodes.FDANode-class.html#_stop_means +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.parallel.ParallelExtensionNode.use_execute_fork mdp.parallel.ParallelExtensionNode-class.html#use_execute_fork +mdp.nodes.FDANode._inverse mdp.nodes.FDANode-class.html#_inverse +mdp.nodes.FDANode.execute mdp.nodes.FDANode-class.html#execute +mdp.nodes.FDANode._update_SW mdp.nodes.FDANode-class.html#_update_SW +mdp.parallel.ParallelExtensionNode.join mdp.parallel.ParallelExtensionNode-class.html#join +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.parallel.ParallelExtensionNode.extension_name mdp.parallel.ParallelExtensionNode-class.html#extension_name +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.nodes.FDANode._execute mdp.nodes.FDANode-class.html#_execute +mdp.nodes.FDANode.train mdp.nodes.FDANode-class.html#train +mdp.nodes.FDANode._stop_fda mdp.nodes.FDANode-class.html#_stop_fda +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.nodes.FDANode.v mdp.nodes.FDANode-class.html#v +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.parallel.ParallelFlow mdp.parallel.ParallelFlow-class.html +mdp.parallel.ParallelFlow.get_task mdp.parallel.ParallelFlow-class.html#get_task +mdp.parallel.ParallelFlow._create_train_task mdp.parallel.ParallelFlow-class.html#_create_train_task +mdp.Flow.__repr__ mdp.Flow-class.html#__repr__ +mdp.parallel.ParallelFlow.is_parallel_training mdp.parallel.ParallelFlow-class.html#is_parallel_training +mdp.Flow.__str__ mdp.Flow-class.html#__str__ +mdp.Flow.pop mdp.Flow-class.html#pop +mdp.Flow._train_check_iterables mdp.Flow-class.html#_train_check_iterables +mdp.Flow._inverse_seq mdp.Flow-class.html#_inverse_seq +mdp.Flow._check_value_type_isnode mdp.Flow-class.html#_check_value_type_isnode +mdp.Flow.append mdp.Flow-class.html#append +mdp.Flow.inverse mdp.Flow-class.html#inverse +mdp.Flow.extend mdp.Flow-class.html#extend +mdp.Flow.__contains__ mdp.Flow-class.html#__contains__ +mdp.Flow._close_last_node mdp.Flow-class.html#_close_last_node +mdp.Flow._propagate_exception mdp.Flow-class.html#_propagate_exception +mdp.parallel.ParallelFlow.__init__ mdp.parallel.ParallelFlow-class.html#__init__ +mdp.Flow.__delitem__ mdp.Flow-class.html#__delitem__ +mdp.Flow.__call__ mdp.Flow-class.html#__call__ +mdp.Flow._stop_training_hook mdp.Flow-class.html#_stop_training_hook +mdp.parallel.ParallelFlow._next_train_phase mdp.parallel.ParallelFlow-class.html#_next_train_phase +mdp.Flow.save mdp.Flow-class.html#save +mdp.Flow.__len__ mdp.Flow-class.html#__len__ +mdp.Flow._check_dimension_consistency mdp.Flow-class.html#_check_dimension_consistency +mdp.Flow.__getitem__ mdp.Flow-class.html#__getitem__ +mdp.parallel.ParallelFlow.setup_parallel_training mdp.parallel.ParallelFlow-class.html#setup_parallel_training +mdp.parallel.ParallelFlow._local_train_phase mdp.parallel.ParallelFlow-class.html#_local_train_phase +mdp.parallel.ParallelFlow._create_execute_task mdp.parallel.ParallelFlow-class.html#_create_execute_task +mdp.Flow._execute_seq mdp.Flow-class.html#_execute_seq +mdp.Flow.__setitem__ mdp.Flow-class.html#__setitem__ +mdp.parallel.ParallelFlow.train mdp.parallel.ParallelFlow-class.html#train +mdp.Flow._get_required_train_args mdp.Flow-class.html#_get_required_train_args +mdp.Flow.__add__ mdp.Flow-class.html#__add__ +mdp.Flow.set_crash_recovery mdp.Flow-class.html#set_crash_recovery +mdp.parallel.ParallelFlow.task_available mdp.parallel.ParallelFlow-class.html#task_available +mdp.Flow.copy mdp.Flow-class.html#copy +mdp.Flow._check_nodes_consistency mdp.Flow-class.html#_check_nodes_consistency +mdp.Flow.insert mdp.Flow-class.html#insert +mdp.parallel.ParallelFlow.execute mdp.parallel.ParallelFlow-class.html#execute +mdp.parallel.ParallelFlow._post_stop_training_hook mdp.parallel.ParallelFlow-class.html#_post_stop_training_hook +mdp.Flow._train_node mdp.Flow-class.html#_train_node +mdp.Flow.__iter__ mdp.Flow-class.html#__iter__ +mdp.Flow.__iadd__ mdp.Flow-class.html#__iadd__ +mdp.parallel.ParallelFlow.setup_parallel_execution mdp.parallel.ParallelFlow-class.html#setup_parallel_execution +mdp.parallel.ParallelFlow.use_results mdp.parallel.ParallelFlow-class.html#use_results +mdp.parallel.ParallelFlow.is_parallel_executing mdp.parallel.ParallelFlow-class.html#is_parallel_executing +mdp.parallel.ParallelFlowException mdp.parallel.ParallelFlowException-class.html +mdp.parallel.ParallelFlowNode mdp.parallel.ParallelFlowNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.hinet.FlowNode._set_input_dim mdp.hinet.FlowNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.parallel.ParallelExtensionNode._default_fork mdp.parallel.ParallelExtensionNode-class.html#_default_fork +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.parallel.ParallelFlowNode._fork mdp.parallel.ParallelFlowNode-class.html#_fork +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.hinet.FlowNode.__init__ mdp.hinet.FlowNode-class.html#__init__ +mdp.hinet.FlowNode.inverse mdp.hinet.FlowNode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.hinet.FlowNode.__contains__ mdp.hinet.FlowNode-class.html#__contains__ +mdp.hinet.FlowNode._execute mdp.hinet.FlowNode-class.html#_execute +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.parallel.ParallelExtensionNode._join_covariance mdp.parallel.ParallelExtensionNode-class.html#_join_covariance +mdp.hinet.FlowNode.is_invertible mdp.hinet.FlowNode-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.hinet.FlowNode.__len__ mdp.hinet.FlowNode-class.html#__len__ +mdp.parallel.ParallelExtensionNode.fork mdp.parallel.ParallelExtensionNode-class.html#fork +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.hinet.FlowNode._get_train_seq mdp.hinet.FlowNode-class.html#_get_train_seq +mdp.hinet.FlowNode.__getitem__ mdp.hinet.FlowNode-class.html#__getitem__ +mdp.hinet.FlowNode._fix_nodes_dimensions mdp.hinet.FlowNode-class.html#_fix_nodes_dimensions +mdp.hinet.FlowNode._set_dtype mdp.hinet.FlowNode-class.html#_set_dtype +mdp.parallel.ParallelFlowNode._join mdp.parallel.ParallelFlowNode-class.html#_join +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.Node.stop_training mdp.Node-class.html#stop_training +mdp.hinet.FlowNode.__iter__ mdp.hinet.FlowNode-class.html#__iter__ +mdp.hinet.FlowNode._get_supported_dtypes mdp.hinet.FlowNode-class.html#_get_supported_dtypes +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.Node._stop_training mdp.Node-class.html#_stop_training +mdp.hinet.FlowNode.copy mdp.hinet.FlowNode-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.parallel.ParallelFlowNode.use_execute_fork mdp.parallel.ParallelFlowNode-class.html#use_execute_fork +mdp.hinet.FlowNode._inverse mdp.hinet.FlowNode-class.html#_inverse +mdp.hinet.FlowNode.execute mdp.hinet.FlowNode-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.parallel.ParallelExtensionNode.join mdp.parallel.ParallelExtensionNode-class.html#join +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.parallel.ParallelExtensionNode.extension_name mdp.parallel.ParallelExtensionNode-class.html#extension_name +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.hinet.FlowNode.flow mdp.hinet.FlowNode-class.html#flow +mdp.Node._train mdp.Node-class.html#_train +mdp.Node.train mdp.Node-class.html#train +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.hinet.FlowNode._set_output_dim mdp.hinet.FlowNode-class.html#_set_output_dim +mdp.hinet.FlowNode.is_trainable mdp.hinet.FlowNode-class.html#is_trainable +mdp.parallel.ParallelHistogramNode mdp.parallel.ParallelHistogramNode-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.PreserveDimNode._set_input_dim mdp.PreserveDimNode-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.parallel.ParallelExtensionNode._default_fork mdp.parallel.ParallelExtensionNode-class.html#_default_fork +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.parallel.ParallelHistogramNode._fork mdp.parallel.ParallelHistogramNode-class.html#_fork +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.nodes.HistogramNode.__init__ mdp.nodes.HistogramNode-class.html#__init__ +mdp.nodes.HistogramNode._get_supported_dtypes mdp.nodes.HistogramNode-class.html#_get_supported_dtypes +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.Node._execute mdp.Node-class.html#_execute +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.parallel.ParallelExtensionNode._join_covariance mdp.parallel.ParallelExtensionNode-class.html#_join_covariance +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.HistogramNode._train mdp.nodes.HistogramNode-class.html#_train +mdp.parallel.ParallelExtensionNode.fork mdp.parallel.ParallelExtensionNode-class.html#fork +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node._inverse mdp.Node-class.html#_inverse +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.parallel.ParallelHistogramNode._join mdp.parallel.ParallelHistogramNode-class.html#_join +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.HistogramNode.stop_training mdp.nodes.HistogramNode-class.html#stop_training +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.HistogramNode.train mdp.nodes.HistogramNode-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.HistogramNode._stop_training mdp.nodes.HistogramNode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.parallel.ParallelExtensionNode.use_execute_fork mdp.parallel.ParallelExtensionNode-class.html#use_execute_fork +mdp.Node.inverse mdp.Node-class.html#inverse +mdp.Node.execute mdp.Node-class.html#execute +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.parallel.ParallelExtensionNode.join mdp.parallel.ParallelExtensionNode-class.html#join +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.parallel.ParallelExtensionNode.extension_name mdp.parallel.ParallelExtensionNode-class.html#extension_name +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.PreserveDimNode._set_output_dim mdp.PreserveDimNode-class.html#_set_output_dim +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.parallel.ParallelLayer mdp.parallel.ParallelLayer-class.html +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.parallel.ParallelExtensionNode._default_fork mdp.parallel.ParallelExtensionNode-class.html#_default_fork +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.hinet.Layer._pre_execution_checks mdp.hinet.Layer-class.html#_pre_execution_checks +mdp.hinet.Layer._check_props mdp.hinet.Layer-class.html#_check_props +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.parallel.ParallelLayer._fork mdp.parallel.ParallelLayer-class.html#_fork +mdp.Node._check_train_args mdp.Node-class.html#_check_train_args +mdp.hinet.Layer.__init__ mdp.hinet.Layer-class.html#__init__ +mdp.hinet.Layer.inverse mdp.hinet.Layer-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.hinet.Layer.__contains__ mdp.hinet.Layer-class.html#__contains__ +mdp.hinet.Layer._execute mdp.hinet.Layer-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.parallel.ParallelExtensionNode._join_covariance mdp.parallel.ParallelExtensionNode-class.html#_join_covariance +mdp.hinet.Layer.is_invertible mdp.hinet.Layer-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.hinet.Layer._get_output_dim_from_nodes mdp.hinet.Layer-class.html#_get_output_dim_from_nodes +mdp.hinet.Layer._train mdp.hinet.Layer-class.html#_train +mdp.hinet.Layer.__len__ mdp.hinet.Layer-class.html#__len__ +mdp.parallel.ParallelExtensionNode.fork mdp.parallel.ParallelExtensionNode-class.html#fork +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.hinet.Layer._get_train_seq mdp.hinet.Layer-class.html#_get_train_seq +mdp.hinet.Layer.__getitem__ mdp.hinet.Layer-class.html#__getitem__ +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.hinet.Layer._get_supported_dtypes mdp.hinet.Layer-class.html#_get_supported_dtypes +mdp.hinet.Layer._set_dtype mdp.hinet.Layer-class.html#_set_dtype +mdp.parallel.ParallelLayer._join mdp.parallel.ParallelLayer-class.html#_join +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.hinet.Layer.stop_training mdp.hinet.Layer-class.html#stop_training +mdp.hinet.Layer.__iter__ mdp.hinet.Layer-class.html#__iter__ +mdp.hinet.Layer.train mdp.hinet.Layer-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.hinet.Layer._stop_training mdp.hinet.Layer-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.parallel.ParallelLayer.use_execute_fork mdp.parallel.ParallelLayer-class.html#use_execute_fork +mdp.hinet.Layer._inverse mdp.hinet.Layer-class.html#_inverse +mdp.hinet.Layer.execute mdp.hinet.Layer-class.html#execute +mdp.Node.save mdp.Node-class.html#save +mdp.parallel.ParallelExtensionNode.join mdp.parallel.ParallelExtensionNode-class.html#join +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.parallel.ParallelExtensionNode.extension_name mdp.parallel.ParallelExtensionNode-class.html#extension_name +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.hinet.Layer.is_trainable mdp.hinet.Layer-class.html#is_trainable +mdp.parallel.ParallelSFANode mdp.parallel.ParallelSFANode-class.html +mdp.nodes.SFANode.get_eta_values mdp.nodes.SFANode-class.html#get_eta_values +mdp.Node._check_output mdp.Node-class.html#_check_output +mdp.Node._set_input_dim mdp.Node-class.html#_set_input_dim +mdp.Node.supported_dtypes mdp.Node-class.html#supported_dtypes +mdp.parallel.ParallelExtensionNode._default_fork mdp.parallel.ParallelExtensionNode-class.html#_default_fork +mdp.Node.dtype mdp.Node-class.html#dtype +mdp.Node._pre_execution_checks mdp.Node-class.html#_pre_execution_checks +mdp.Node.has_multiple_training_phases mdp.Node-class.html#has_multiple_training_phases +mdp.Node._train_seq mdp.Node-class.html#_train_seq +mdp.nodes.SFANode.time_derivative mdp.nodes.SFANode-class.html#time_derivative +mdp.parallel.ParallelSFANode._fork mdp.parallel.ParallelSFANode-class.html#_fork +mdp.nodes.SFANode._check_train_args mdp.nodes.SFANode-class.html#_check_train_args +mdp.nodes.SFANode.avg mdp.nodes.SFANode-class.html#avg +mdp.nodes.SFANode.__init__ mdp.nodes.SFANode-class.html#__init__ +mdp.nodes.SFANode.inverse mdp.nodes.SFANode-class.html#inverse +mdp.Node.get_output_dim mdp.Node-class.html#get_output_dim +mdp.nodes.SFANode._execute mdp.nodes.SFANode-class.html#_execute +mdp.Node.output_dim mdp.Node-class.html#output_dim +mdp.Node.set_input_dim mdp.Node-class.html#set_input_dim +mdp.Node.get_dtype mdp.Node-class.html#get_dtype +mdp.parallel.ParallelExtensionNode._join_covariance mdp.parallel.ParallelExtensionNode-class.html#_join_covariance +mdp.Node.is_invertible mdp.Node-class.html#is_invertible +mdp.Node.get_current_train_phase mdp.Node-class.html#get_current_train_phase +mdp.Node.__call__ mdp.Node-class.html#__call__ +mdp.nodes.SFANode.set_rank_deficit_method mdp.nodes.SFANode-class.html#set_rank_deficit_method +mdp.Node.save mdp.Node-class.html#save +mdp.nodes.SFANode._train mdp.nodes.SFANode-class.html#_train +mdp.parallel.ParallelExtensionNode.fork mdp.parallel.ParallelExtensionNode-class.html#fork +mdp.Node._check_input mdp.Node-class.html#_check_input +mdp.Node._get_train_seq mdp.Node-class.html#_get_train_seq +mdp.Node.get_supported_dtypes mdp.Node-class.html#get_supported_dtypes +mdp.Node._get_supported_dtypes mdp.Node-class.html#_get_supported_dtypes +mdp.Node._set_dtype mdp.Node-class.html#_set_dtype +mdp.parallel.ParallelSFANode._join mdp.parallel.ParallelSFANode-class.html#_join +mdp.Node.get_input_dim mdp.Node-class.html#get_input_dim +mdp.nodes.SFANode.stop_training mdp.nodes.SFANode-class.html#stop_training +mdp.nodes.SFANode._set_range mdp.nodes.SFANode-class.html#_set_range +mdp.Node.__str__ mdp.Node-class.html#__str__ +mdp.nodes.SFANode.train mdp.nodes.SFANode-class.html#train +mdp.Node.__add__ mdp.Node-class.html#__add__ +mdp.nodes.SFANode._init_cov mdp.nodes.SFANode-class.html#_init_cov +mdp.nodes.SFANode._stop_training mdp.nodes.SFANode-class.html#_stop_training +mdp.Node.copy mdp.Node-class.html#copy +mdp.Node._pre_inversion_checks mdp.Node-class.html#_pre_inversion_checks +mdp.Node._if_training_stop_training mdp.Node-class.html#_if_training_stop_training +mdp.parallel.ParallelExtensionNode.use_execute_fork mdp.parallel.ParallelExtensionNode-class.html#use_execute_fork +mdp.nodes.SFANode._inverse mdp.nodes.SFANode-class.html#_inverse +mdp.nodes.SFANode.execute mdp.nodes.SFANode-class.html#execute +mdp.Node._set_output_dim mdp.Node-class.html#_set_output_dim +mdp.parallel.ParallelExtensionNode.join mdp.parallel.ParallelExtensionNode-class.html#join +mdp.nodes.SFANode.d mdp.nodes.SFANode-class.html#d +mdp.Node.get_remaining_train_phase mdp.Node-class.html#get_remaining_train_phase +mdp.parallel.ParallelExtensionNode.extension_name mdp.parallel.ParallelExtensionNode-class.html#extension_name +mdp.Node.is_training mdp.Node-class.html#is_training +mdp.Node.__repr__ mdp.Node-class.html#__repr__ +mdp.Node.input_dim mdp.Node-class.html#input_dim +mdp.Node.set_output_dim mdp.Node-class.html#set_output_dim +mdp.Node.set_dtype mdp.Node-class.html#set_dtype +mdp.Node._refcast mdp.Node-class.html#_refcast +mdp.nodes.SFANode.sf mdp.nodes.SFANode-class.html#sf +mdp.Node.is_trainable mdp.Node-class.html#is_trainable +mdp.parallel.ProcessScheduler mdp.parallel.ProcessScheduler-class.html +mdp.parallel.Scheduler.set_task_callable mdp.parallel.Scheduler-class.html#set_task_callable +mdp.parallel.ProcessScheduler._task_thread mdp.parallel.ProcessScheduler-class.html#_task_thread +mdp.parallel.Scheduler.n_open_tasks mdp.parallel.Scheduler-class.html#n_open_tasks +mdp.parallel.Scheduler.shutdown mdp.parallel.Scheduler-class.html#shutdown +mdp.parallel.ProcessScheduler.__init__ mdp.parallel.ProcessScheduler-class.html#__init__ +mdp.parallel.Scheduler.__enter__ mdp.parallel.Scheduler-class.html#__enter__ +mdp.parallel.ProcessScheduler._process_task mdp.parallel.ProcessScheduler-class.html#_process_task +mdp.parallel.Scheduler.get_results mdp.parallel.Scheduler-class.html#get_results +mdp.parallel.Scheduler.__exit__ mdp.parallel.Scheduler-class.html#__exit__ +mdp.parallel.Scheduler.task_counter mdp.parallel.Scheduler-class.html#task_counter +mdp.parallel.Scheduler.add_task mdp.parallel.Scheduler-class.html#add_task +mdp.parallel.ProcessScheduler._shutdown mdp.parallel.ProcessScheduler-class.html#_shutdown +mdp.parallel.Scheduler._store_result mdp.parallel.Scheduler-class.html#_store_result +mdp.parallel.ResultContainer mdp.parallel.ResultContainer-class.html +mdp.parallel.ResultContainer.get_results mdp.parallel.ResultContainer-class.html#get_results +mdp.parallel.ResultContainer.add_result mdp.parallel.ResultContainer-class.html#add_result +mdp.parallel.Scheduler mdp.parallel.Scheduler-class.html +mdp.parallel.Scheduler.set_task_callable mdp.parallel.Scheduler-class.html#set_task_callable +mdp.parallel.Scheduler.n_open_tasks mdp.parallel.Scheduler-class.html#n_open_tasks +mdp.parallel.Scheduler.shutdown mdp.parallel.Scheduler-class.html#shutdown +mdp.parallel.Scheduler.__init__ mdp.parallel.Scheduler-class.html#__init__ +mdp.parallel.Scheduler.__enter__ mdp.parallel.Scheduler-class.html#__enter__ +mdp.parallel.Scheduler._process_task mdp.parallel.Scheduler-class.html#_process_task +mdp.parallel.Scheduler.get_results mdp.parallel.Scheduler-class.html#get_results +mdp.parallel.Scheduler.__exit__ mdp.parallel.Scheduler-class.html#__exit__ +mdp.parallel.Scheduler.task_counter mdp.parallel.Scheduler-class.html#task_counter +mdp.parallel.Scheduler.add_task mdp.parallel.Scheduler-class.html#add_task +mdp.parallel.Scheduler._shutdown mdp.parallel.Scheduler-class.html#_shutdown +mdp.parallel.Scheduler._store_result mdp.parallel.Scheduler-class.html#_store_result +mdp.parallel.SleepSqrTestCallable mdp.parallel.SleepSqrTestCallable-class.html +mdp.parallel.TaskCallable.fork mdp.parallel.TaskCallable-class.html#fork +mdp.parallel.SleepSqrTestCallable.__call__ mdp.parallel.SleepSqrTestCallable-class.html#__call__ +mdp.parallel.TaskCallable.setup_environment mdp.parallel.TaskCallable-class.html#setup_environment +mdp.parallel.SqrTestCallable mdp.parallel.SqrTestCallable-class.html +mdp.parallel.TaskCallable.fork mdp.parallel.TaskCallable-class.html#fork +mdp.parallel.SqrTestCallable.__call__ mdp.parallel.SqrTestCallable-class.html#__call__ +mdp.parallel.TaskCallable.setup_environment mdp.parallel.TaskCallable-class.html#setup_environment +mdp.parallel.TaskCallable mdp.parallel.TaskCallable-class.html +mdp.parallel.TaskCallable.fork mdp.parallel.TaskCallable-class.html#fork +mdp.parallel.TaskCallable.__call__ mdp.parallel.TaskCallable-class.html#__call__ +mdp.parallel.TaskCallable.setup_environment mdp.parallel.TaskCallable-class.html#setup_environment +mdp.parallel.TaskCallableWrapper mdp.parallel.TaskCallableWrapper-class.html +mdp.parallel.TaskCallable.setup_environment mdp.parallel.TaskCallable-class.html#setup_environment +mdp.parallel.TaskCallableWrapper.__init__ mdp.parallel.TaskCallableWrapper-class.html#__init__ +mdp.parallel.TaskCallableWrapper.__call__ mdp.parallel.TaskCallableWrapper-class.html#__call__ +mdp.parallel.TaskCallable.fork mdp.parallel.TaskCallable-class.html#fork +mdp.parallel.ThreadScheduler mdp.parallel.ThreadScheduler-class.html +mdp.parallel.Scheduler.task_counter mdp.parallel.Scheduler-class.html#task_counter +mdp.parallel.ThreadScheduler._task_thread mdp.parallel.ThreadScheduler-class.html#_task_thread +mdp.parallel.Scheduler.n_open_tasks mdp.parallel.Scheduler-class.html#n_open_tasks +mdp.parallel.Scheduler.shutdown mdp.parallel.Scheduler-class.html#shutdown +mdp.parallel.ThreadScheduler.__init__ mdp.parallel.ThreadScheduler-class.html#__init__ +mdp.parallel.Scheduler.__enter__ mdp.parallel.Scheduler-class.html#__enter__ +mdp.parallel.ThreadScheduler._process_task mdp.parallel.ThreadScheduler-class.html#_process_task +mdp.parallel.Scheduler.get_results mdp.parallel.Scheduler-class.html#get_results +mdp.parallel.Scheduler.__exit__ mdp.parallel.Scheduler-class.html#__exit__ +mdp.parallel.Scheduler.set_task_callable mdp.parallel.Scheduler-class.html#set_task_callable +mdp.parallel.Scheduler.add_task mdp.parallel.Scheduler-class.html#add_task +mdp.parallel.Scheduler._shutdown mdp.parallel.Scheduler-class.html#_shutdown +mdp.parallel.Scheduler._store_result mdp.parallel.Scheduler-class.html#_store_result +mdp.parallel.TrainResultContainer mdp.parallel.TrainResultContainer-class.html +mdp.parallel.TrainResultContainer.get_results mdp.parallel.TrainResultContainer-class.html#get_results +mdp.parallel.TrainResultContainer.add_result mdp.parallel.TrainResultContainer-class.html#add_result +mdp.parallel.TrainResultContainer.__init__ mdp.parallel.TrainResultContainer-class.html#__init__ +mdp.utils.CovarianceMatrix mdp.utils.CovarianceMatrix-class.html +mdp.utils.CovarianceMatrix.__init__ mdp.utils.CovarianceMatrix-class.html#__init__ +mdp.utils.CovarianceMatrix.fix mdp.utils.CovarianceMatrix-class.html#fix +mdp.utils.CovarianceMatrix.update mdp.utils.CovarianceMatrix-class.html#update +mdp.utils.CovarianceMatrix._init_internals mdp.utils.CovarianceMatrix-class.html#_init_internals +mdp.utils.CrossCovarianceMatrix mdp.utils.CrossCovarianceMatrix-class.html +mdp.utils.CovarianceMatrix.__init__ mdp.utils.CovarianceMatrix-class.html#__init__ +mdp.utils.CrossCovarianceMatrix.fix mdp.utils.CrossCovarianceMatrix-class.html#fix +mdp.utils.CrossCovarianceMatrix.update mdp.utils.CrossCovarianceMatrix-class.html#update +mdp.utils.CrossCovarianceMatrix._init_internals mdp.utils.CrossCovarianceMatrix-class.html#_init_internals +mdp.utils.DelayCovarianceMatrix mdp.utils.DelayCovarianceMatrix-class.html +mdp.utils.DelayCovarianceMatrix.__init__ mdp.utils.DelayCovarianceMatrix-class.html#__init__ +mdp.utils.DelayCovarianceMatrix.fix mdp.utils.DelayCovarianceMatrix-class.html#fix +mdp.utils.DelayCovarianceMatrix.update mdp.utils.DelayCovarianceMatrix-class.html#update +mdp.utils.DelayCovarianceMatrix._init_internals mdp.utils.DelayCovarianceMatrix-class.html#_init_internals +mdp.utils.HTMLSlideShow mdp.utils.HTMLSlideShow-class.html +mdp.utils.HTMLSlideShow.html_controls_template mdp.utils.HTMLSlideShow-class.html#html_controls_template +mdp.utils.HTMLSlideShow._get_random_id mdp.utils.HTMLSlideShow-class.html#_get_random_id +mdp.utils.HTMLSlideShow.__init__ mdp.utils.HTMLSlideShow-class.html#__init__ +mdp.utils.HTMLSlideShow.html_box_template mdp.utils.HTMLSlideShow-class.html#html_box_template +mdp.utils.HTMLSlideShow.template mdp.utils.HTMLSlideShow-class.html#template +mdp.utils.HTMLSlideShow.js_loadslide_template mdp.utils.HTMLSlideShow-class.html#js_loadslide_template +mdp.utils.HTMLSlideShow.js_keyboard_shortcuts_template mdp.utils.HTMLSlideShow-class.html#js_keyboard_shortcuts_template +mdp.utils.HTMLSlideShow.html_buttons_template mdp.utils.HTMLSlideShow-class.html#html_buttons_template +mdp.utils.HTMLSlideShow.html_bottom_template mdp.utils.HTMLSlideShow-class.html#html_bottom_template +mdp.utils.HTMLSlideShow.html_top_template mdp.utils.HTMLSlideShow-class.html#html_top_template +mdp.utils.HTMLSlideShow.html_delay_template mdp.utils.HTMLSlideShow-class.html#html_delay_template +mdp.utils.HTMLSlideShow.js_onload_template mdp.utils.HTMLSlideShow-class.html#js_onload_template +mdp.utils.HTMLSlideShow.js_controls_template mdp.utils.HTMLSlideShow-class.html#js_controls_template +mdp.utils.HTMLSlideShow.js_update_template mdp.utils.HTMLSlideShow-class.html#js_update_template +mdp.utils.ImageHTMLSlideShow mdp.utils.ImageHTMLSlideShow-class.html +mdp.utils.ImageHTMLSlideShow.html_controls_template mdp.utils.ImageHTMLSlideShow-class.html#html_controls_template +mdp.utils.HTMLSlideShow._get_random_id mdp.utils.HTMLSlideShow-class.html#_get_random_id +mdp.utils.ImageHTMLSlideShow.__init__ mdp.utils.ImageHTMLSlideShow-class.html#__init__ +mdp.utils.ImageHTMLSlideShow.html_box_template mdp.utils.ImageHTMLSlideShow-class.html#html_box_template +mdp.utils.HTMLSlideShow.template mdp.utils.HTMLSlideShow-class.html#template +mdp.utils.ImageHTMLSlideShow.js_loadslide_template mdp.utils.ImageHTMLSlideShow-class.html#js_loadslide_template +mdp.utils.ImageHTMLSlideShow.html_mag_template mdp.utils.ImageHTMLSlideShow-class.html#html_mag_template +mdp.utils.HTMLSlideShow.js_keyboard_shortcuts_template mdp.utils.HTMLSlideShow-class.html#js_keyboard_shortcuts_template +mdp.utils.HTMLSlideShow.html_buttons_template mdp.utils.HTMLSlideShow-class.html#html_buttons_template +mdp.utils.HTMLSlideShow.html_bottom_template mdp.utils.HTMLSlideShow-class.html#html_bottom_template +mdp.utils.HTMLSlideShow.html_top_template mdp.utils.HTMLSlideShow-class.html#html_top_template +mdp.utils.HTMLSlideShow.html_delay_template mdp.utils.HTMLSlideShow-class.html#html_delay_template +mdp.utils.ImageHTMLSlideShow.js_onload_template mdp.utils.ImageHTMLSlideShow-class.html#js_onload_template +mdp.utils.ImageHTMLSlideShow.js_controls_template mdp.utils.ImageHTMLSlideShow-class.html#js_controls_template +mdp.utils.HTMLSlideShow.js_update_template mdp.utils.HTMLSlideShow-class.html#js_update_template +mdp.utils.ImageHTMLSlideShow.js_controls_resize_template mdp.utils.ImageHTMLSlideShow-class.html#js_controls_resize_template +mdp.utils.MultipleCovarianceMatrices mdp.utils.MultipleCovarianceMatrices-class.html +mdp.utils.MultipleCovarianceMatrices.weight mdp.utils.MultipleCovarianceMatrices-class.html#weight +mdp.utils.MultipleCovarianceMatrices.symmetrize mdp.utils.MultipleCovarianceMatrices-class.html#symmetrize +mdp.utils.MultipleCovarianceMatrices.permute mdp.utils.MultipleCovarianceMatrices-class.html#permute +mdp.utils.MultipleCovarianceMatrices.__init__ mdp.utils.MultipleCovarianceMatrices-class.html#__init__ +mdp.utils.MultipleCovarianceMatrices.transform mdp.utils.MultipleCovarianceMatrices-class.html#transform +mdp.utils.MultipleCovarianceMatrices.__getitem__ mdp.utils.MultipleCovarianceMatrices-class.html#__getitem__ +mdp.utils.MultipleCovarianceMatrices.copy mdp.utils.MultipleCovarianceMatrices-class.html#copy +mdp.utils.MultipleCovarianceMatrices.rotate mdp.utils.MultipleCovarianceMatrices-class.html#rotate +mdp.utils.QuadraticForm mdp.utils.QuadraticForm-class.html +mdp.utils.QuadraticForm.get_invariances mdp.utils.QuadraticForm-class.html#get_invariances +mdp.utils.QuadraticForm._maximize mdp.utils.QuadraticForm-class.html#_maximize +mdp.utils.QuadraticForm.get_extrema mdp.utils.QuadraticForm-class.html#get_extrema +mdp.utils.QuadraticForm.apply mdp.utils.QuadraticForm-class.html#apply +mdp.utils.QuadraticForm.__init__ mdp.utils.QuadraticForm-class.html#__init__ +mdp.utils.QuadraticForm._eig_sort mdp.utils.QuadraticForm-class.html#_eig_sort +mdp.utils.QuadraticFormException mdp.utils.QuadraticFormException-class.html +mdp.utils.SectionHTMLSlideShow mdp.utils.SectionHTMLSlideShow-class.html +mdp.utils.SectionHTMLSlideShow.html_controls_template mdp.utils.SectionHTMLSlideShow-class.html#html_controls_template +mdp.utils.HTMLSlideShow._get_random_id mdp.utils.HTMLSlideShow-class.html#_get_random_id +mdp.utils.SectionHTMLSlideShow.__init__ mdp.utils.SectionHTMLSlideShow-class.html#__init__ +mdp.utils.SectionHTMLSlideShow.html_buttons_template mdp.utils.SectionHTMLSlideShow-class.html#html_buttons_template +mdp.utils.HTMLSlideShow.template mdp.utils.HTMLSlideShow-class.html#template +mdp.utils.HTMLSlideShow.js_loadslide_template mdp.utils.HTMLSlideShow-class.html#js_loadslide_template +mdp.utils.SectionHTMLSlideShow.js_keyboard_shortcuts_template mdp.utils.SectionHTMLSlideShow-class.html#js_keyboard_shortcuts_template +mdp.utils.HTMLSlideShow.html_box_template mdp.utils.HTMLSlideShow-class.html#html_box_template +mdp.utils.HTMLSlideShow.html_bottom_template mdp.utils.HTMLSlideShow-class.html#html_bottom_template +mdp.utils.HTMLSlideShow.html_top_template mdp.utils.HTMLSlideShow-class.html#html_top_template +mdp.utils.HTMLSlideShow.html_delay_template mdp.utils.HTMLSlideShow-class.html#html_delay_template +mdp.utils.HTMLSlideShow.js_onload_template mdp.utils.HTMLSlideShow-class.html#js_onload_template +mdp.utils.HTMLSlideShow.js_controls_template mdp.utils.HTMLSlideShow-class.html#js_controls_template +mdp.utils.SectionHTMLSlideShow.js_update_template mdp.utils.SectionHTMLSlideShow-class.html#js_update_template +mdp.utils.SectionImageHTMLSlideShow mdp.utils.SectionImageHTMLSlideShow-class.html +mdp.utils.SectionHTMLSlideShow.html_controls_template mdp.utils.SectionHTMLSlideShow-class.html#html_controls_template +mdp.utils.HTMLSlideShow._get_random_id mdp.utils.HTMLSlideShow-class.html#_get_random_id +mdp.utils.SectionImageHTMLSlideShow.__init__ mdp.utils.SectionImageHTMLSlideShow-class.html#__init__ +mdp.utils.SectionHTMLSlideShow.html_buttons_template mdp.utils.SectionHTMLSlideShow-class.html#html_buttons_template +mdp.utils.HTMLSlideShow.template mdp.utils.HTMLSlideShow-class.html#template +mdp.utils.ImageHTMLSlideShow.html_mag_template mdp.utils.ImageHTMLSlideShow-class.html#html_mag_template +mdp.utils.ImageHTMLSlideShow.js_loadslide_template mdp.utils.ImageHTMLSlideShow-class.html#js_loadslide_template +mdp.utils.SectionHTMLSlideShow.js_keyboard_shortcuts_template mdp.utils.SectionHTMLSlideShow-class.html#js_keyboard_shortcuts_template +mdp.utils.ImageHTMLSlideShow.html_box_template mdp.utils.ImageHTMLSlideShow-class.html#html_box_template +mdp.utils.HTMLSlideShow.html_bottom_template mdp.utils.HTMLSlideShow-class.html#html_bottom_template +mdp.utils.HTMLSlideShow.html_top_template mdp.utils.HTMLSlideShow-class.html#html_top_template +mdp.utils.HTMLSlideShow.html_delay_template mdp.utils.HTMLSlideShow-class.html#html_delay_template +mdp.utils.ImageHTMLSlideShow.js_onload_template mdp.utils.ImageHTMLSlideShow-class.html#js_onload_template +mdp.utils.ImageHTMLSlideShow.js_controls_template mdp.utils.ImageHTMLSlideShow-class.html#js_controls_template +mdp.utils.SectionHTMLSlideShow.js_update_template mdp.utils.SectionHTMLSlideShow-class.html#js_update_template +mdp.utils.SectionImageHTMLSlideShow.js_controls_resize_template mdp.utils.SectionImageHTMLSlideShow-class.html#js_controls_resize_template +mdp.utils.TemporaryDirectory mdp.utils.TemporaryDirectory-class.html +mdp.utils.TemporaryDirectory.__enter__ mdp.utils.TemporaryDirectory-class.html#__enter__ +mdp.utils.TemporaryDirectory._path_join mdp.utils.TemporaryDirectory-class.html#_path_join +mdp.utils.TemporaryDirectory._rmtree mdp.utils.TemporaryDirectory-class.html#_rmtree +mdp.utils.TemporaryDirectory._listdir mdp.utils.TemporaryDirectory-class.html#_listdir +mdp.utils.TemporaryDirectory._rmdir mdp.utils.TemporaryDirectory-class.html#_rmdir +mdp.utils.TemporaryDirectory.__init__ mdp.utils.TemporaryDirectory-class.html#__init__ +mdp.utils.TemporaryDirectory._os_error exceptions.OSError-class.html +mdp.utils.TemporaryDirectory._remove mdp.utils.TemporaryDirectory-class.html#_remove +mdp.utils.TemporaryDirectory.cleanup mdp.utils.TemporaryDirectory-class.html#cleanup +mdp.utils.TemporaryDirectory._isdir mdp.utils.TemporaryDirectory-class.html#_isdir +mdp.utils.TemporaryDirectory.__exit__ mdp.utils.TemporaryDirectory-class.html#__exit__ +mdp.utils.TemporaryDirectory.__del__ mdp.utils.TemporaryDirectory-class.html#__del__ +mdp.utils.TemporaryDirectory.__repr__ mdp.utils.TemporaryDirectory-class.html#__repr__ +mdp.utils.VartimeCovarianceMatrix mdp.utils.VartimeCovarianceMatrix-class.html +mdp.utils.VartimeCovarianceMatrix.__init__ mdp.utils.VartimeCovarianceMatrix-class.html#__init__ +mdp.utils.VartimeCovarianceMatrix.fix mdp.utils.VartimeCovarianceMatrix-class.html#fix +mdp.utils.VartimeCovarianceMatrix.update mdp.utils.VartimeCovarianceMatrix-class.html#update +mdp.utils.CovarianceMatrix._init_internals mdp.utils.CovarianceMatrix-class.html#_init_internals diff --git a/legacy/api/class-tree.html b/legacy/api/class-tree.html new file mode 100755 index 0000000..1c136a0 --- /dev/null +++ b/legacy/api/class-tree.html @@ -0,0 +1,1472 @@ + + + + + Class Hierarchy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + + + + +
[hide private]
[frames] | no frames]
+
+
+ [ Module Hierarchy + | Class Hierarchy ] +

+

Class Hierarchy

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/collections.OrderedDict-class.html b/legacy/api/collections.OrderedDict-class.html new file mode 100755 index 0000000..b24f2c8 --- /dev/null +++ b/legacy/api/collections.OrderedDict-class.html @@ -0,0 +1,1551 @@ + + + + + collections.OrderedDict + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + collections :: + OrderedDict :: + Class OrderedDict + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class OrderedDict

+
+ +
+
+
+Dictionary that remembers insertion order
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__delitem__(od, + y)
+ del od[y]
+ + +
+ +
+   + + + + + + +
__eq__(od, + y)
+ od==y.
+ + +
+ +
+
+new empty dictionary
+
+
+
+ + + + + +
__init__(*args, + **kwds)
+ Initialize an ordered dictionary.
+ + +
+ +
+   + + + + + + +
__iter__(od)
+ iter(od)
+ + +
+ +
+   + + + + + + +
__ne__(od, + y)
+ od!=y
+ + +
+ +
+   + + + + + + +
__reduce__(self)
+ Return state information for pickling
+ + +
+ +
+   + + + + + + +
__repr__(od)
+ repr(od)
+ + +
+ +
+   + + + + + + +
__reversed__(od)
+ reversed(od)
+ + +
+ +
+   + + + + + + +
__setitem__(od, + i, + y)
+ od[i]=y
+ + +
+ +
+
+None
+
+
+
+ + + + + +
__update(D, + E=..., + **F)
+ Update D from mapping/iterable E and F.
+ + +
+ +
+
+None
+
+
+
+ + + + + +
clear(od)
+ Remove all items from od.
+ + +
+ +
+
+a shallow copy of od
+
+
+
+ + + + + +
copy(od) + + +
+ +
+
+list of (key, value) pairs in od
+
+
+
+ + + + + +
items(od) + + +
+ +
+
+an iterator over the (key, value) items of D
+
+
+
+ + + + + +
iteritems(self)
+ od.iteritems -> an iterator over the (key, value) pairs in od
+ + +
+ +
+
+an iterator over the keys in od
+
+
+
+ + + + + +
iterkeys(od) + + +
+ +
+
+an iterator over the values of D
+
+
+
+ + + + + +
itervalues(self)
+ od.itervalues -> an iterator over the values in od
+ + +
+ +
+
+list of keys in od
+
+
+
+ + + + + +
keys(od) + + +
+ +
+
+v, remove specified key and return the corresponding
+
+
+
+ + + + + +
pop(od, + k, + d=...)
+ value.
+ + +
+ +
+
+(k, v), return and remove a (key, value) pair
+
+
+
+ + + + + +
popitem(od)
+ Pairs are returned in LIFO order if last is true or FIFO order if false.
+ + +
+ +
+
+od.get(k,d), also set od[k]=d if k not in od
+
+
+
+ + + + + +
setdefault(od, + k, + d=...) + + +
+ +
+
+None
+
+
+
+ + + + + +
update(D, + E=..., + **F)
+ Update D from mapping/iterable E and F.
+ + +
+ +
+
+list of values in od
+
+
+
+ + + + + +
values(od) + + +
+ +
+
+a set-like object providing a view on od's items
+
+
+
+ + + + + +
viewitems(od) + + +
+ +
+
+a set-like object providing a view on od's keys
+
+
+
+ + + + + +
viewkeys(od) + + +
+ +
+
+an object providing a view on od's values
+
+
+
+ + + + + +
viewvalues(od) + + +
+ +
+

Inherited from dict: + __cmp__, + __contains__, + __ge__, + __getattribute__, + __getitem__, + __gt__, + __le__, + __len__, + __lt__, + __new__, + __sizeof__, + get, + has_key +

+

Inherited from object: + __delattr__, + __format__, + __reduce_ex__, + __setattr__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Class Methods[hide private]
+
+
+New ordered dictionary with keys from S
+
+
+
+ + + + + +
fromkeys(OD, + S, + v=...)
+ If not specified, the value defaults to None.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Class Variables[hide private]
+
+   + + __marker = <object object at 0x7fb8ffc440b0> +
+

Inherited from dict: + __hash__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__delitem__(od, + y) +
(Index deletion operator) +

+
  +
+ +
+del od[y]
+
+
+
+
Overrides: + dict.__delitem__ +
+
+
+
+ +
+ +
+ + +
+

__eq__(od, + y) +
(Equality operator) +

+
  +
+ +
+od==y.  Comparison to another OD is order-sensitive
+while comparison to a regular mapping is order-insensitive.
+
+
+
+
Overrides: + dict.__eq__ +
+
+
+
+ +
+ +
+ + +
+

__init__(*args, + **kwds) +
(Constructor) +

+
  +
+ +
+Initialize an ordered dictionary.  The signature is the same as
+regular dictionaries, but keyword arguments are not recommended because
+their insertion order is arbitrary.
+
+
+
+
Returns:
+new empty dictionary
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

__iter__(od) +

+
  +
+ +
+iter(od)
+
+
+
+
Overrides: + dict.__iter__ +
+
+
+
+ +
+ +
+ + +
+

__ne__(od, + y) +

+
  +
+ +
+od!=y
+
+
+
+
Overrides: + dict.__ne__ +
+
+
+
+ +
+ +
+ + +
+

__reduce__(self) +

+
  +
+ +
+Return state information for pickling
+
+
+
+
Overrides: + object.__reduce__ +
+
+
+
+ +
+ +
+ + +
+

__repr__(od) +
(Representation operator) +

+
  +
+ +
+repr(od)
+
+
+
+
Overrides: + object.__repr__ +
+
+
+
+ +
+ +
+ + +
+

__reversed__(od) +

+
  +
+ +
+reversed(od)
+
+
+
+
+
+
+ +
+ +
+ + +
+

__setitem__(od, + i, + y) +
(Index assignment operator) +

+
  +
+ +
+od[i]=y
+
+
+
+
Overrides: + dict.__setitem__ +
+
+
+
+ +
+ +
+ + +
+

__update(D, + E=..., + **F) +

+
  +
+ +
+Update D from mapping/iterable E and F.
+If E present and has a .keys() method, does:     for k in E: D[k] = E[k]
+If E present and lacks .keys() method, does:     for (k, v) in E: D[k] = v
+In either case, this is followed by: for k, v in F.items(): D[k] = v
+
+
+
+
Returns:
+None
+
+
+
+
+
+ +
+ +
+ + +
+

clear(od) +

+
  +
+ +
+Remove all items from od.
+
+
+
+
Returns:
+None
+
+
+
Overrides: + dict.clear +
+
+
+
+ +
+ +
+ + +
+

copy(od) +

+
  +
+ +
+
+
+
+
+
Returns:
+a shallow copy of od
+
+
+
Overrides: + dict.copy +
+
+
+
+ +
+ +
+ + +
+

fromkeys(OD, + S, + v=...) +
Class Method +

+
  +
+ +
+If not specified, the value defaults to None.
+
+
+
+
Returns:
+New ordered dictionary with keys from S
+
+
+
Overrides: + dict.fromkeys +
+
+
+
+ +
+ +
+ + +
+

items(od) +

+
  +
+ +
+
+
+
+
+
Returns:
+list of (key, value) pairs in od
+
+
+
Overrides: + dict.items +
+
+
+
+ +
+ +
+ + +
+

iteritems(self) +

+
  +
+ +
+od.iteritems -> an iterator over the (key, value) pairs in od
+
+
+
+
Returns:
+an iterator over the (key, value) items of D
+
+
+
Overrides: + dict.iteritems +
+
+
+
+ +
+ +
+ + +
+

iterkeys(od) +

+
  +
+ +
+
+
+
+
+
Returns:
+an iterator over the keys in od
+
+
+
Overrides: + dict.iterkeys +
+
+
+
+ +
+ +
+ + +
+

itervalues(self) +

+
  +
+ +
+od.itervalues -> an iterator over the values in od
+
+
+
+
Returns:
+an iterator over the values of D
+
+
+
Overrides: + dict.itervalues +
+
+
+
+ +
+ +
+ + +
+

keys(od) +

+
  +
+ +
+
+
+
+
+
Returns:
+list of keys in od
+
+
+
Overrides: + dict.keys +
+
+
+
+ +
+ +
+ + +
+

pop(od, + k, + d=...) +

+
  +
+ +
+value.  If key is not found, d is returned if given, otherwise KeyError
+is raised.
+
+
+
+
Returns:
+v, remove specified key and return the corresponding
+
+
+
Overrides: + dict.pop +
+
+
+
+ +
+ +
+ + +
+

popitem(od) +

+
  +
+ +
+Pairs are returned in LIFO order if last is true or FIFO order if false.
+
+
+
+
Returns:
+(k, v), return and remove a (key, value) pair
+
+
+
Overrides: + dict.popitem +
+
+
+
+ +
+ +
+ + +
+

setdefault(od, + k, + d=...) +

+
  +
+ +
+
+
+
+
+
Returns:
+od.get(k,d), also set od[k]=d if k not in od
+
+
+
Overrides: + dict.setdefault +
+
+
+
+ +
+ +
+ + +
+

update(D, + E=..., + **F) +

+
  +
+ +
+Update D from mapping/iterable E and F.
+If E present and has a .keys() method, does:     for k in E: D[k] = E[k]
+If E present and lacks .keys() method, does:     for (k, v) in E: D[k] = v
+In either case, this is followed by: for k, v in F.items(): D[k] = v
+
+
+
+
Returns:
+None
+
+
+
Overrides: + dict.update +
+
+
+
+ +
+ +
+ + +
+

values(od) +

+
  +
+ +
+
+
+
+
+
Returns:
+list of values in od
+
+
+
Overrides: + dict.values +
+
+
+
+ +
+ +
+ + +
+

viewitems(od) +

+
  +
+ +
+
+
+
+
+
Returns:
+a set-like object providing a view on od's items
+
+
+
Overrides: + dict.viewitems +
+
+
+
+ +
+ +
+ + +
+

viewkeys(od) +

+
  +
+ +
+
+
+
+
+
Returns:
+a set-like object providing a view on od's keys
+
+
+
Overrides: + dict.viewkeys +
+
+
+
+ +
+ +
+ + +
+

viewvalues(od) +

+
  +
+ +
+
+
+
+
+
Returns:
+an object providing a view on od's values
+
+
+
Overrides: + dict.viewvalues +
+
+
+
+
+ + + + + + +
+ + + + + +
Class Variable Details[hide private]
+
+ +
+ +
+

__marker

+ +
+
+
+
Value:
+
+<object object at 0x7fb8ffc440b0>
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/crarr.png b/legacy/api/crarr.png new file mode 100755 index 0000000..26b43c5 Binary files /dev/null and b/legacy/api/crarr.png differ diff --git a/legacy/api/epydoc.css b/legacy/api/epydoc.css new file mode 100755 index 0000000..e342e95 --- /dev/null +++ b/legacy/api/epydoc.css @@ -0,0 +1,365 @@ + + +/* Epydoc CSS Stylesheet + * + * This stylesheet can be used to customize the appearance of epydoc's + * HTML output. + * + */ + +/* Default Colors & Styles + * - Set the default foreground & background color with 'body'; and + * link colors with 'a:link' and 'a:visited'. + * - Use bold for decision list terms. + * - The heading styles defined here are used for headings *within* + * docstring descriptions. All headings used by epydoc itself use + * either class='epydoc' or class='toc' (CSS styles for both + * defined below). + */ + +/** + * Sphinx deisgn for MDP Toolkit, based on: + * + * Alternate Sphinx design + * Originally created by Armin Ronacher for Werkzeug, adapted by Georg Brandl. + */ + + +p { margin-top: 0.5em; margin-bottom: 0.5em; } + +a:visited { color: #204080; } +dt { font-weight: bold; } +h1 { font-size: +140%; font-style: italic; + font-weight: bold; } +h2 { font-size: +125%; font-style: italic; + font-weight: bold; } +h3 { font-size: +110%; font-style: italic; + font-weight: normal; } + +/* N.B.: class, not pseudoclass */ +a.link { font-family: monospace; } + +/* Page Header & Footer + * - The standard page header consists of a navigation bar (with + * pointers to standard pages such as 'home' and 'trees'); a + * breadcrumbs list, which can be used to navigate to containing + * classes or modules; options links, to show/hide private + * variables and to show/hide frames; and a page title (using + *

). The page title may be followed by a link to the + * corresponding source code (using 'span.codelink'). + * - The footer consists of a navigation bar, a timestamp, and a + * pointer to epydoc's homepage. + */ +h1.epydoc { margin: 0; font-size: +140%; font-weight: bold; } +h2.epydoc { font-size: +130%; font-weight: bold; } +h3.epydoc { font-size: +115%; font-weight: bold; + margin-top: 0.2em; } +td h3.epydoc { font-size: +115%; font-weight: bold; + margin-bottom: 0; } +table.navbar { background: #a0c0ff; color: #000000; + border: 2px groove #c0d0d0; } +table.navbar table { color: #000000; } +th.navbar-select { background: #70b0ff; + color: #000000; } +table.navbar a { text-decoration: none; } +table.navbar a:link { color: #0000ff; } +table.navbar a:visited { color: #204080; } +span.breadcrumbs { font-size: 85%; font-weight: bold; } +span.options { font-size: 70%; } +span.codelink { font-size: 85%; } +td.footer { font-size: 85%; } + +/* Table Headers + * - Each summary table and details section begins with a 'header' + * row. This row contains a section title (marked by + * 'span.table-header') as well as a show/hide private link + * (marked by 'span.options', defined above). + * - Summary tables that contain user-defined groups mark those + * groups using 'group header' rows. + */ +td.table-header { background: #70b0ff; color: #000000; + border: 1px solid #608090; } +td.table-header table { color: #000000; } +td.table-header table a:link { color: #0000ff; } +td.table-header table a:visited { color: #204080; } +span.table-header { font-size: 120%; font-weight: bold; } +th.group-header { background: #c0e0f8; color: #000000; + text-align: left; font-style: italic; + font-size: 115%; + border: 1px solid #608090; } + +/* Summary Tables (functions, variables, etc) + * - Each object is described by a single row of the table with + * two cells. The left cell gives the object's type, and is + * marked with 'code.summary-type'. The right cell gives the + * object's name and a summary description. + * - CSS styles for the table's header and group headers are + * defined above, under 'Table Headers' + */ +table.summary { border-collapse: collapse; + background: #e8f0f8; color: #000000; + border: 1px solid #608090; + margin-bottom: 0.5em; } +td.summary { border: 1px solid #608090; } +code.summary-type { font-size: 85%; } +table.summary a:link { color: #0000ff; } +table.summary a:visited { color: #204080; } + + +/* Details Tables (functions, variables, etc) + * - Each object is described in its own div. + * - A single-row summary table w/ table-header is used as + * a header for each details section (CSS style for table-header + * is defined above, under 'Table Headers'). + */ +table.details { border-collapse: collapse; + background: #e8f0f8; color: #000000; + border: 1px solid #608090; + margin: .2em 0 0 0; } +table.details table { color: #000000; } +table.details a:link { color: #0000ff; } +table.details a:visited { color: #204080; } + +/* Fields */ +dl.fields { margin-left: 2em; margin-top: 1em; + margin-bottom: 1em; } +dl.fields dd ul { margin-left: 0em; padding-left: 0em; } +dl.fields dd ul li ul { margin-left: 2em; padding-left: 0em; } +div.fields { margin-left: 2em; } +div.fields p { margin-bottom: 0.5em; } + +/* Index tables (identifier index, term index, etc) + * - link-index is used for indices containing lists of links + * (namely, the identifier index & term index). + * - index-where is used in link indices for the text indicating + * the container/source for each link. + * - metadata-index is used for indices containing metadata + * extracted from fields (namely, the bug index & todo index). + */ +table.link-index { border-collapse: collapse; + background: #e8f0f8; color: #000000; + border: 1px solid #608090; } +td.link-index { border-width: 0px; } +table.link-index a:link { color: #0000ff; } +table.link-index a:visited { color: #204080; } +span.index-where { font-size: 70%; } +table.metadata-index { border-collapse: collapse; + background: #e8f0f8; color: #000000; + border: 1px solid #608090; + margin: .2em 0 0 0; } +td.metadata-index { border-width: 1px; border-style: solid; } +table.metadata-index a:link { color: #0000ff; } +table.metadata-index a:visited { color: #204080; } + +/* Function signatures + * - sig* is used for the signature in the details section. + * - .summary-sig* is used for the signature in the summary + * table, and when listing property accessor functions. + * */ +.sig-name { color: #006080; } +.sig-arg { color: #008060; } +.sig-default { color: #602000; } +.summary-sig { font-family: monospace; } +.summary-sig-name { color: #006080; font-weight: bold; } +table.summary a.summary-sig-name:link + { color: #006080; font-weight: bold; } +table.summary a.summary-sig-name:visited + { color: #006080; font-weight: bold; } +.summary-sig-arg { color: #006040; } +.summary-sig-default { color: #501800; } + +/* Subclass list + */ +ul.subclass-list { display: inline; margin: 0; padding: 0; } +ul.subclass-list li { display: inline; margin: 0; padding: 0; } + +/* To render variables, classes etc. like functions */ +table.summary .summary-name { color: #006080; font-weight: bold; + font-family: monospace; } +table.summary + a.summary-name:link { color: #006080; font-weight: bold; + font-family: monospace; } +table.summary + a.summary-name:visited { color: #006080; font-weight: bold; + font-family: monospace; } + +/* Variable values + * - In the 'variable details' sections, each varaible's value is + * listed in a 'pre.variable' box. The width of this box is + * restricted to 80 chars; if the value's repr is longer than + * this it will be wrapped, using a backslash marked with + * class 'variable-linewrap'. If the value's repr is longer + * than 3 lines, the rest will be ellided; and an ellipsis + * marker ('...' marked with 'variable-ellipsis') will be used. + * - If the value is a string, its quote marks will be marked + * with 'variable-quote'. + * - If the variable is a regexp, it is syntax-highlighted using + * the re* CSS classes. + */ +pre.variable { padding: .5em; margin: 0; + background: #dce4ec; color: #000000; + border: 1px solid #708890; } +.variable-linewrap { color: #604000; font-weight: bold; } +.variable-ellipsis { color: #604000; font-weight: bold; } +.variable-quote { color: #604000; font-weight: bold; } +.variable-group { color: #008000; font-weight: bold; } +.variable-op { color: #604000; font-weight: bold; } +.variable-string { color: #006030; } +.variable-unknown { color: #a00000; font-weight: bold; } +.re { color: #000000; } +.re-char { color: #006030; } +.re-op { color: #600000; } +.re-group { color: #003060; } +.re-ref { color: #404040; } + +/* Base tree + * - Used by class pages to display the base class hierarchy. + */ +pre.base-tree { font-size: 80%; margin: 0; } + +/* Frames-based table of contents headers + * - Consists of two frames: one for selecting modules; and + * the other listing the contents of the selected module. + * - h1.toc is used for each frame's heading + * - h2.toc is used for subheadings within each frame. + */ +h1.toc { text-align: center; font-size: 105%; + margin: 0; font-weight: bold; + padding: 0; } +h2.toc { font-size: 100%; font-weight: bold; + margin: 0.5em 0 0 -0.3em; } + +h1.toc ~ a, h2.toc ~ a, h2.toc ~ * a { font-size: 80%; } + +/* Syntax Highlighting for Source Code + * - doctest examples are displayed in a 'pre.py-doctest' block. + * If the example is in a details table entry, then it will use + * the colors specified by the 'table pre.py-doctest' line. + * - Source code listings are displayed in a 'pre.py-src' block. + * Each line is marked with 'span.py-line' (used to draw a line + * down the left margin, separating the code from the line + * numbers). Line numbers are displayed with 'span.py-lineno'. + * The expand/collapse block toggle button is displayed with + * 'a.py-toggle' (Note: the CSS style for 'a.py-toggle' should not + * modify the font size of the text.) + * - If a source code page is opened with an anchor, then the + * corresponding code block will be highlighted. The code + * block's header is highlighted with 'py-highlight-hdr'; and + * the code block's body is highlighted with 'py-highlight'. + * - The remaining py-* classes are used to perform syntax + * highlighting (py-string for string literals, py-name for names, + * etc.) + */ +pre.py-doctest { padding: .5em; margin: 1em; + background: #e8f0f8; color: #000000; + border: 1px solid #708890; } +table pre.py-doctest { background: #dce4ec; + color: #000000; } +pre.py-src { border: 2px solid #000000; + background: #f0f0f0; color: #000000; } +.py-line { border-left: 2px solid #000000; + margin-left: .2em; padding-left: .4em; } +.py-lineno { font-style: italic; font-size: 90%; + padding-left: .5em; } +a.py-toggle { text-decoration: none; } +div.py-highlight-hdr { border-top: 2px solid #000000; + border-bottom: 2px solid #000000; + background: #d8e8e8; } +div.py-highlight { border-bottom: 2px solid #000000; + background: #d0e0e0; } +.py-prompt { color: #005050; font-weight: bold;} +.py-more { color: #005050; font-weight: bold;} +.py-string { color: #006030; } +.py-comment { color: #003060; } +.py-keyword { color: #600000; } +.py-output { color: #404040; } +.py-name { color: #000050; } +.py-name:link { color: #000050 !important; } +.py-name:visited { color: #000050 !important; } +.py-number { color: #005000; } +.py-defname { color: #000060; font-weight: bold; } +.py-def-name { color: #000060; font-weight: bold; } +.py-base-class { color: #000060; } +.py-param { color: #000060; } +.py-docstring { color: #006030; } +.py-decorator { color: #804020; } +/* Use this if you don't want links to names underlined: */ +/*a.py-name { text-decoration: none; }*/ + +/* Graphs & Diagrams + * - These CSS styles are used for graphs & diagrams generated using + * Graphviz dot. 'img.graph-without-title' is used for bare + * diagrams (to remove the border created by making the image + * clickable). + */ +img.graph-without-title { border: none; } +img.graph-with-title { border: 1px solid #000000; } +span.graph-title { font-weight: bold; } +span.graph-caption { } + +/* General-purpose classes + * - 'p.indent-wrapped-lines' defines a paragraph whose first line + * is not indented, but whose subsequent lines are. + * - The 'nomargin-top' class is used to remove the top margin (e.g. + * from lists). The 'nomargin' class is used to remove both the + * top and bottom margin (but not the left or right margin -- + * for lists, that would cause the bullets to disappear.) + */ +p.indent-wrapped-lines { padding: 0 0 0 7em; text-indent: -7em; + margin: 0; } +.nomargin-top { margin-top: 0; } +.nomargin { margin-top: 0; margin-bottom: 0; } + +/* HTML Log */ +div.log-block { padding: 0; margin: .5em 0 .5em 0; + background: #e8f0f8; color: #000000; + border: 1px solid #000000; } +div.log-error { padding: .1em .3em .1em .3em; margin: 4px; + background: #ffb0b0; color: #000000; + border: 1px solid #000000; } +div.log-warning { padding: .1em .3em .1em .3em; margin: 4px; + background: #ffffb0; color: #000000; + border: 1px solid #000000; } +div.log-info { padding: .1em .3em .1em .3em; margin: 4px; + background: #b0ffb0; color: #000000; + border: 1px solid #000000; } +h2.log-hdr { background: #70b0ff; color: #000000; + margin: 0; padding: 0em 0.5em 0em 0.5em; + border-bottom: 1px solid #000000; font-size: 110%; } +p.log { font-weight: bold; margin: .5em 0 .5em 0; } +tr.opt-changed { color: #000000; font-weight: bold; } +tr.opt-default { color: #606060; } +pre.log { margin: 0; padding: 0; padding-left: 1em; } + + +body { + font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', 'Verdana', sans-serif; + font-size: 14px; + background-color: neptune; + color: black; +} + +a { + color: #CA7900; +} + +a:hover { + color: #2491CF; +} + +pre { + font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; + background-color: #f8f8f8; +} + + +cite, code, tt { + font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; + font-size: 0.95em; + letter-spacing: 0.01em; +} + +h1 { + color: #11557C; +} + diff --git a/legacy/api/epydoc.js b/legacy/api/epydoc.js new file mode 100755 index 0000000..e787dbc --- /dev/null +++ b/legacy/api/epydoc.js @@ -0,0 +1,293 @@ +function toggle_private() { + // Search for any private/public links on this page. Store + // their old text in "cmd," so we will know what action to + // take; and change their text to the opposite action. + var cmd = "?"; + var elts = document.getElementsByTagName("a"); + for(var i=0; i...
"; + elt.innerHTML = s; + } +} + +function toggle(id) { + elt = document.getElementById(id+"-toggle"); + if (elt.innerHTML == "-") + collapse(id); + else + expand(id); + return false; +} + +function highlight(id) { + var elt = document.getElementById(id+"-def"); + if (elt) elt.className = "py-highlight-hdr"; + var elt = document.getElementById(id+"-expanded"); + if (elt) elt.className = "py-highlight"; + var elt = document.getElementById(id+"-collapsed"); + if (elt) elt.className = "py-highlight"; +} + +function num_lines(s) { + var n = 1; + var pos = s.indexOf("\n"); + while ( pos > 0) { + n += 1; + pos = s.indexOf("\n", pos+1); + } + return n; +} + +// Collapse all blocks that mave more than `min_lines` lines. +function collapse_all(min_lines) { + var elts = document.getElementsByTagName("div"); + for (var i=0; i 0) + if (elt.id.substring(split, elt.id.length) == "-expanded") + if (num_lines(elt.innerHTML) > min_lines) + collapse(elt.id.substring(0, split)); + } +} + +function expandto(href) { + var start = href.indexOf("#")+1; + if (start != 0 && start != href.length) { + if (href.substring(start, href.length) != "-") { + collapse_all(4); + pos = href.indexOf(".", start); + while (pos != -1) { + var id = href.substring(start, pos); + expand(id); + pos = href.indexOf(".", pos+1); + } + var id = href.substring(start, href.length); + expand(id); + highlight(id); + } + } +} + +function kill_doclink(id) { + var parent = document.getElementById(id); + parent.removeChild(parent.childNodes.item(0)); +} +function auto_kill_doclink(ev) { + if (!ev) var ev = window.event; + if (!this.contains(ev.toElement)) { + var parent = document.getElementById(this.parentID); + parent.removeChild(parent.childNodes.item(0)); + } +} + +function doclink(id, name, targets_id) { + var elt = document.getElementById(id); + + // If we already opened the box, then destroy it. + // (This case should never occur, but leave it in just in case.) + if (elt.childNodes.length > 1) { + elt.removeChild(elt.childNodes.item(0)); + } + else { + // The outer box: relative + inline positioning. + var box1 = document.createElement("div"); + box1.style.position = "relative"; + box1.style.display = "inline"; + box1.style.top = 0; + box1.style.left = 0; + + // A shadow for fun + var shadow = document.createElement("div"); + shadow.style.position = "absolute"; + shadow.style.left = "-1.3em"; + shadow.style.top = "-1.3em"; + shadow.style.background = "#404040"; + + // The inner box: absolute positioning. + var box2 = document.createElement("div"); + box2.style.position = "relative"; + box2.style.border = "1px solid #a0a0a0"; + box2.style.left = "-.2em"; + box2.style.top = "-.2em"; + box2.style.background = "white"; + box2.style.padding = ".3em .4em .3em .4em"; + box2.style.fontStyle = "normal"; + box2.onmouseout=auto_kill_doclink; + box2.parentID = id; + + // Get the targets + var targets_elt = document.getElementById(targets_id); + var targets = targets_elt.getAttribute("targets"); + var links = ""; + target_list = targets.split(","); + for (var i=0; i" + + target[0] + ""; + } + + // Put it all together. + elt.insertBefore(box1, elt.childNodes.item(0)); + //box1.appendChild(box2); + box1.appendChild(shadow); + shadow.appendChild(box2); + box2.innerHTML = + "Which "+name+" do you want to see documentation for?" + + ""; + } + return false; +} + +function get_anchor() { + var href = location.href; + var start = href.indexOf("#")+1; + if ((start != 0) && (start != href.length)) + return href.substring(start, href.length); + } +function redirect_url(dottedName) { + // Scan through each element of the "pages" list, and check + // if "name" matches with any of them. + for (var i=0; i-m" or "-c"; + // extract the portion & compare it to dottedName. + var pagename = pages[i].substring(0, pages[i].length-2); + if (pagename == dottedName.substring(0,pagename.length)) { + + // We've found a page that matches `dottedName`; + // construct its URL, using leftover `dottedName` + // content to form an anchor. + var pagetype = pages[i].charAt(pages[i].length-1); + var url = pagename + ((pagetype=="m")?"-module.html": + "-class.html"); + if (dottedName.length > pagename.length) + url += "#" + dottedName.substring(pagename.length+1, + dottedName.length); + return url; + } + } + } diff --git a/legacy/api/exceptions.OSError-class.html b/legacy/api/exceptions.OSError-class.html new file mode 100755 index 0000000..f65812a --- /dev/null +++ b/legacy/api/exceptions.OSError-class.html @@ -0,0 +1,315 @@ + + + + + exceptions.OSError + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + exceptions :: + OSError :: + Class OSError + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class OSError

+
+ +
+
+
+OS system call failed.
+
+
+ + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(...)
+ x.__init__(...) initializes x; see help(type(x)) for signature
+ + +
+ +
+
+a new object with type S, a subtype of T
+
+
+
+ + + + + +
__new__(T, + S, + ...) + + +
+ +
+

Inherited from EnvironmentError: + __reduce__, + __str__ +

+

Inherited from BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __repr__, + __setattr__, + __setstate__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from EnvironmentError: + errno, + filename, + strerror +

+

Inherited from BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(...) +
(Constructor) +

+
  +
+ +
+x.__init__(...) initializes x; see help(type(x)) for signature
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

__new__(T, + S, + ...) +

+
  +
+ +
+
+
+
+
+
Returns:
+a new object with type S, a subtype of T
+
+
+
Overrides: + object.__new__ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/frames.html b/legacy/api/frames.html new file mode 100755 index 0000000..0d2cf8b --- /dev/null +++ b/legacy/api/frames.html @@ -0,0 +1,17 @@ + + + + + Modular toolkit for Data Processing MDP + + + + + + + + + diff --git a/legacy/api/help.html b/legacy/api/help.html new file mode 100755 index 0000000..aa89b3d --- /dev/null +++ b/legacy/api/help.html @@ -0,0 +1,278 @@ + + + + + Help + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + + + + +
[hide private]
[frames] | no frames]
+
+ +

API Documentation

+ +

This document contains the API (Application Programming Interface) +documentation for Modular toolkit for Data Processing MDP. Documentation for the Python +objects defined by the project is divided into separate pages for each +package, module, and class. The API documentation also includes two +pages containing information about the project as a whole: a trees +page, and an index page.

+ +

Object Documentation

+ +

Each Package Documentation page contains:

+
    +
  • A description of the package.
  • +
  • A list of the modules and sub-packages contained by the + package.
  • +
  • A summary of the classes defined by the package.
  • +
  • A summary of the functions defined by the package.
  • +
  • A summary of the variables defined by the package.
  • +
  • A detailed description of each function defined by the + package.
  • +
  • A detailed description of each variable defined by the + package.
  • +
+ +

Each Module Documentation page contains:

+
    +
  • A description of the module.
  • +
  • A summary of the classes defined by the module.
  • +
  • A summary of the functions defined by the module.
  • +
  • A summary of the variables defined by the module.
  • +
  • A detailed description of each function defined by the + module.
  • +
  • A detailed description of each variable defined by the + module.
  • +
+ +

Each Class Documentation page contains:

+
    +
  • A class inheritance diagram.
  • +
  • A list of known subclasses.
  • +
  • A description of the class.
  • +
  • A summary of the methods defined by the class.
  • +
  • A summary of the instance variables defined by the class.
  • +
  • A summary of the class (static) variables defined by the + class.
  • +
  • A detailed description of each method defined by the + class.
  • +
  • A detailed description of each instance variable defined by the + class.
  • +
  • A detailed description of each class (static) variable defined + by the class.
  • +
+ +

Project Documentation

+ +

The Trees page contains the module and class hierarchies:

+
    +
  • The module hierarchy lists every package and module, with + modules grouped into packages. At the top level, and within each + package, modules and sub-packages are listed alphabetically.
  • +
  • The class hierarchy lists every class, grouped by base + class. If a class has more than one base class, then it will be + listed under each base class. At the top level, and under each base + class, classes are listed alphabetically.
  • +
+ +

The Index page contains indices of terms and + identifiers:

+
    +
  • The term index lists every term indexed by any object's + documentation. For each term, the index provides links to each + place where the term is indexed.
  • +
  • The identifier index lists the (short) name of every package, + module, class, method, function, variable, and parameter. For each + identifier, the index provides a short description, and a link to + its documentation.
  • +
+ +

The Table of Contents

+ +

The table of contents occupies the two frames on the left side of +the window. The upper-left frame displays the project +contents, and the lower-left frame displays the module +contents:

+ + + + + + + + + +
+ Project
Contents
...
+ API
Documentation
Frame


+
+ Module
Contents
 
...
  +

+ +

The project contents frame contains a list of all packages +and modules that are defined by the project. Clicking on an entry +will display its contents in the module contents frame. Clicking on a +special entry, labeled "Everything," will display the contents of +the entire project.

+ +

The module contents frame contains a list of every +submodule, class, type, exception, function, and variable defined by a +module or package. Clicking on an entry will display its +documentation in the API documentation frame. Clicking on the name of +the module, at the top of the frame, will display the documentation +for the module itself.

+ +

The "frames" and "no frames" buttons below the top +navigation bar can be used to control whether the table of contents is +displayed or not.

+ +

The Navigation Bar

+ +

A navigation bar is located at the top and bottom of every page. +It indicates what type of page you are currently viewing, and allows +you to go to related pages. The following table describes the labels +on the navigation bar. Note that not some labels (such as +[Parent]) are not displayed on all pages.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LabelHighlighted when...Links to...
[Parent](never highlighted) the parent of the current package
[Package]viewing a packagethe package containing the current object +
[Module]viewing a modulethe module containing the current object +
[Class]viewing a class the class containing the current object
[Trees]viewing the trees page the trees page
[Index]viewing the index page the index page
[Help]viewing the help page the help page
+ +

The "show private" and "hide private" buttons below +the top navigation bar can be used to control whether documentation +for private objects is displayed. Private objects are usually defined +as objects whose (short) names begin with a single underscore, but do +not end with an underscore. For example, "_x", +"__pprint", and "epydoc.epytext._tokenize" +are private objects; but "re.sub", +"__init__", and "type_" are not. However, +if a module defines the "__all__" variable, then its +contents are used to decide which objects are private.

+ +

A timestamp below the bottom navigation bar indicates when each +page was last updated.

+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/identifier-index.html b/legacy/api/identifier-index.html new file mode 100755 index 0000000..47205b4 --- /dev/null +++ b/legacy/api/identifier-index.html @@ -0,0 +1,5112 @@ + + + + + Identifier Index + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + + + + +
[hide private]
[frames] | no frames]
+
+ +
+

Identifier Index

+
+[ + A + B + C + D + E + F + G + H + I + J + K + L + M + N + O + P + Q + R + S + T + U + V + W + X + Y + Z + _ +] +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

A

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

B

+ + + + + + + + + + + + +

C

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

D

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

E

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

F

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

G

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

H

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

I

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

J

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

K

+ + + + + + + + + + + + +

L

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

M

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

N

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

O

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

P

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Q

+ + + + + + + + + + + + +

R

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

S

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

T

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

U

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

V

+ + + + + + + + + + + + +

W

+ + + + + + + + + + + + +

X

+ + + + + + + + +

_

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/index.html b/legacy/api/index.html new file mode 100755 index 0000000..0d2cf8b --- /dev/null +++ b/legacy/api/index.html @@ -0,0 +1,17 @@ + + + + + Modular toolkit for Data Processing MDP + + + + + + + + + diff --git a/legacy/api/mdp-module.html b/legacy/api/mdp-module.html new file mode 100755 index 0000000..ff58917 --- /dev/null +++ b/legacy/api/mdp-module.html @@ -0,0 +1,1285 @@ + + + + + mdp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Package mdp

+

The Modular toolkit for Data Processing (MDP) package is a library +of widely used data processing algorithms, and the possibility to +combine them together to form pipelines for building more complex +data processing software.

+

MDP has been designed to be used as-is and as a framework for +scientific data processing development.

+

From the user's perspective, MDP consists of a collection of units, +which process data. For example, these include algorithms for +supervised and unsupervised learning, principal and independent +components analysis and classification.

+

These units can be chained into data processing flows, to create +pipelines as well as more complex feed-forward network +architectures. Given a set of input data, MDP takes care of training +and executing all nodes in the network in the correct order and +passing intermediate data between the nodes. This allows the user to +specify complex algorithms as a series of simpler data processing +steps.

+

The number of available algorithms is steadily increasing and includes +signal processing methods (Principal Component Analysis, Independent +Component Analysis, Slow Feature Analysis), manifold learning methods +([Hessian] Locally Linear Embedding), several classifiers, +probabilistic methods (Factor Analysis, RBM), data pre-processing +methods, and many others.

+

Particular care has been taken to make computations efficient in terms +of speed and memory. To reduce the memory footprint, it is possible to +perform learning using batches of data. For large data-sets, it is +also possible to specify that MDP should use single precision floating +point numbers rather than double precision ones. Finally, calculations +can be parallelised using the parallel subpackage, which offers a +parallel implementation of the basic nodes and flows.

+

From the developer's perspective, MDP is a framework that makes the +implementation of new supervised and unsupervised learning algorithms +easy and straightforward. The basic class, Node, takes care of tedious +tasks like numerical type and dimensionality checking, leaving the +developer free to concentrate on the implementation of the learning +and execution phases. Because of the common interface, the node then +automatically integrates with the rest of the library and can be used +in a network together with other nodes.

+

A node can have multiple training phases and even an undetermined +number of phases. Multiple training phases mean that the training data +is presented multiple times to the same node. This allows the +implementation of algorithms that need to collect some statistics on +the whole input before proceeding with the actual training, and others +that need to iterate over a training phase until a convergence +criterion is satisfied. It is possible to train each phase using +chunks of input data if the chunks are given as an iterable. Moreover, +crash recovery can be optionally enabled, which will save the state of +the flow in case of a failure for later inspection.

+

MDP is distributed under the open source BSD license. It has been +written in the context of theoretical research in neuroscience, but it +has been designed to be helpful in any context where trainable data +processing algorithms are used. Its simplicity on the user's side, the +variety of readily available algorithms, and the reusability of the +implemented nodes also make it a useful educational tool.

+

http://mdp-toolkit.sourceforge.net

+ +
+

Version: + 3.6 +

+

Author: + MDP Developers +

+

Contact: + mdp-toolkit@python.org +

+

Copyright: + (c) 2003-2020 mdp-toolkit@python.org +

+

License: + BSD License, see COPYRIGHT +

+
+ + + + + + +
+ + + + + +
Submodules[hide private]
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Classes[hide private]
+
+   + + CheckpointFlow
+ Subclass of Flow class that allows user-supplied checkpoint functions +to be executed at the end of each phase, for example to +save the internal structures of a node for later analysis. +
+   + + CheckpointFunction
+ Base class for checkpoint functions. +
+   + + CheckpointSaveFunction
+ This checkpoint function saves the node in pickle format. +The pickle dump can be done either before the training phase is finished or +right after that. +In this way, it is for example possible to reload it in successive sessions +and continue the training. +
+   + + CircularOnlineFlow
+ A 'CircularOnlineFlow' is a cyclic sequence of online/non-trainable nodes that are trained and executed +together to form a more complex algorithm. This type of flow is useful when one needs to train the nodes +internally for several iterations using stored inputs before training with the next external input. +
+   + + CircularOnlineFlowException
+ Base class for exceptions in Flow subclasses. +
+   + + ClassifierCumulator
+ A ClassifierCumulator is a Node whose training phase simply collects +all input data and labels. In this way it is possible to easily implement +batch-mode learning. +
+   + + ClassifierNode
+ A ClassifierNode can be used for classification tasks that should not +interfere with the normal execution flow. A reason for that is that the +labels used for classification do not form a vector space, and so they don't +make much sense in a flow. +
+   + + CrashRecoveryException
+ Class to handle crash recovery +
+   + + Cumulator
+ A specialized version of VariadicCumulator which only +fills the field self.data. +
+   + + ExtensionNode
+ Base class for extensions nodes. +
+   + + ExtensionNodeMetaclass
+ This is the metaclass for node extension superclasses. +
+   + + Flow
+ A 'Flow' is a sequence of nodes that are trained and executed +together to form a more complex algorithm. Input data is sent to the +first node and is successively processed by the subsequent nodes along +the sequence. +
+   + + FlowException
+ Base class for exceptions in Flow subclasses. +
+   + + FlowExceptionCR
+ Class to handle flow-crash recovery +
+   + + IsNotInvertibleException
+ Raised when the Node.inverse method is called although the +node is not invertible. +
+   + + IsNotTrainableException
+ Raised when the Node.train method is called although the +node is not trainable. +
+   + + MDPDeprecationWarning
+ Warn about deprecated MDP API. +
+   + + MDPException
+ Base class for exceptions in MDP. +
+   + + MDPWarning
+ Base class for warnings in MDP. +
+   + + Node
+ A Node is the basic building block of an MDP application. +
+   + + NodeException
+ Base class for exceptions in Node subclasses. +
+   + + NodeMetaclass
+ A metaclass which copies docstrings from private to public methods. +
+   + + OnlineFlow
+ An 'OnlineFlow' is a sequence of nodes that are trained online and executed +together to form a more complex algorithm. +
+   + + OnlineFlowException
+ Base class for exceptions in Flow subclasses. +
+   + + OnlineNode
+ An online Node (OnlineNode) is the basic building block of +an online MDP application. +
+   + + OnlineNodeException
+ Base class for exceptions in OnlineNode subclasses. +
+   + + PreserveDimNode
+ Abstract base class with output_dim == input_dim. +
+   + + PreserveDimOnlineNode
+ Abstract base class with output_dim == input_dim. +
+   + + TrainingException
+ Base class for exceptions in the training phase. +
+   + + TrainingFinishedException
+ Raised when the Node.train method is called although the +training phase is closed. +
+   + + config
+ Provide information about optional dependencies. +
+   + + extension
+ Context manager for MDP extension. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Functions[hide private]
+
+   + + + + + + +
VariadicCumulator(*fields)
+ A VariadicCumulator is a Node whose training phase simply collects +all input data. In this way it is possible to easily implement +batch-mode learning.
+ + +
+ +
+   + + + + + + +
activate_extension(extension_name, + verbose=False)
+ Activate the extension by injecting the extension methods.
+ + +
+ +
+   + + + + + + +
activate_extensions(extension_names, + verbose=False)
+ Activate all the extensions for the given names.
+ + +
+ +
+   + + + + + + +
deactivate_extension(extension_name, + verbose=False)
+ Deactivate the extension by removing the injected methods.
+ + +
+ +
+   + + + + + + +
deactivate_extensions(extension_names, + verbose=False)
+ Deactivate all the extensions for the given names.
+ + +
+ +
+   + + + + + + +
extension_method(extension_name, + node_cls, + method_name=None)
+ Returns a decorator to register a function as an extension method.
+ + +
+ +
+   + + + + + + +
extension_setup(extension_name)
+ Returns a decorator to register a setup function for an extension.
+ + +
+ +
+   + + + + + + +
extension_teardown(extension_name)
+ Returns a decorator to register a teardown function for an extension.
+ + +
+ +
+   + + + + + + +
fastica(x, + **kwargs)
+ Perform Independent Component Analysis on input data using the FastICA +algorithm by Aapo Hyvarinen.
+ + +
+ +
+   + + + + + + +
get_extensions()
+ Return a dictionary currently registered extensions.
+ + +
+ +
+   + + + + + + +
pca(x, + **kwargs)
+ Filters multidimensional input data through its principal components.
+ + +
+ +
+   + + + + + + +
with_extension(extension_name)
+ Return a wrapper function to activate and deactivate the extension.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Variables[hide private]
+
+   + + __homepage__ = 'http://mdp-toolkit.sourceforge.net' +
+   + + __medium_description__ = '**Modular toolkit for Data Processin... +
+   + + __package__ = 'mdp' +
+   + + __revision__ = '' +
+   + + __short_description__ = 'MDP is a Python library for building ... +
+   + + _pp_needs_monkeypatching = False +
+   + + numx_description = 'scipy' +
+ + + + + + +
+ + + + + +
Function Details[hide private]
+
+ +
+ +
+ + +
+

VariadicCumulator(*fields) +

+
  +
+ +

A VariadicCumulator is a Node whose training phase simply collects +all input data. In this way it is possible to easily implement +batch-mode learning.

+

The data is accessible in the attributes given with the VariadicCumulator's +constructor after the beginning of the Node._stop_training phase. +self.tlen contains the number of data points collected.

+
+
+
+
+ +
+ +
+ + +
+

activate_extension(extension_name, + verbose=False) +

+
  +
+ + Activate the extension by injecting the extension methods. +
+
+
+
+ +
+ +
+ + +
+

activate_extensions(extension_names, + verbose=False) +

+
  +
+ +

Activate all the extensions for the given names.

+

extension_names -- Sequence of extension names.

+
+
+
+
+ +
+ +
+ + +
+

deactivate_extension(extension_name, + verbose=False) +

+
  +
+ + Deactivate the extension by removing the injected methods. +
+
+
+
+ +
+ +
+ + +
+

deactivate_extensions(extension_names, + verbose=False) +

+
  +
+ +

Deactivate all the extensions for the given names.

+

extension_names -- Sequence of extension names.

+
+
+
+
+ +
+ +
+ + +
+

extension_method(extension_name, + node_cls, + method_name=None) +

+
  +
+ +

Returns a decorator to register a function as an extension method.

+

Note that it is possible to directly call other extension functions, call +extension methods in other node classes or to use super in the normal way +(the function will be called as a method of the node class).

+
+
Parameters:
+
    +
  • extension_name - String with the name of the extension.
  • +
  • node_cls - Node class for which the method should be registered.
  • +
  • method_name - Name of the extension method (default value is None).

    +

    If no value is provided then the name of the function is used.

  • +
+
+
+
+ +
+ +
+ + +
+

extension_setup(extension_name) +

+
  +
+ +

Returns a decorator to register a setup function for an extension.

+

The decorated function will be called when the extension is activated.

+

Note that there is also the extension_teardown decorator, which should +probably defined as well if there is a setup procedure.

+
+
Parameters:
+
    +
  • extension_name - String with the name of the extension.
  • +
+
+
+
+ +
+ +
+ + +
+

extension_teardown(extension_name) +

+
  +
+ +

Returns a decorator to register a teardown function for an extension.

+

The decorated function will be called when the extension is deactivated.

+
+
Parameters:
+
    +
  • extension_name - String with the name of the extension.
  • +
+
+
+
+ +
+ +
+ + +
+

fastica(x, + **kwargs) +

+
  +
+ +

Perform Independent Component Analysis on input data using the FastICA +algorithm by Aapo Hyvarinen.

+

Observations of the same variable are stored on rows, different variables +are stored on columns.

+

This is a shortcut function for the corresponding node nodes.FastICANode. +If any keyword arguments are specified, they are passed to its constructor.

+

This is equivalent to mdp.nodes.FastICANode(**kwargs)(x)

+
+
+
+
+ +
+ +
+ + +
+

get_extensions() +

+
  +
+ +

Return a dictionary currently registered extensions.

+

Note that this is not a copy, so if you change anything in this dict +the whole extension mechanism will be affected. If you just want the +names of the available extensions use get_extensions().keys().

+
+
+
+
+ +
+ +
+ + +
+

pca(x, + **kwargs) +

+
  +
+ +

Filters multidimensional input data through its principal components.

+

Observations of the same variable are stored on rows, different variables +are stored on columns.

+

This is a shortcut function for the corresponding node nodes.PCANode. If any +keyword arguments are specified, they are passed to its constructor.

+

This is equivalent to mdp.nodes.PCANode(**kwargs)(x)

+
+
+
+
+ +
+ +
+ + +
+

with_extension(extension_name) +

+
  +
+ +

Return a wrapper function to activate and deactivate the extension.

+

This function is intended to be used with the decorator syntax.

+

The deactivation happens only if the extension was activated by +the decorator (not if it was already active before). So this +decorator ensures that the extensions is active and prevents +unintended side effects.

+

If the generated function is a generator, the extension will be in +effect only when the generator object is created (that is when the +function is called, but its body is not actually immediately +executed). When the function body is executed (after next is +called on the generator object), the extension might not be in +effect anymore. Therefore, it is better to use the extension +context manager with a generator function.

+
+
+
+
+
+ + + + + + +
+ + + + + +
Variables Details[hide private]
+
+ +
+ +
+

__homepage__

+ +
+
+
+
Value:
+
+'http://mdp-toolkit.sourceforge.net'
+
+
+
+
+
+ +
+ +
+

__medium_description__

+ +
+
+
+
Value:
+
+'''**Modular toolkit for Data Processing (MDP)** is a Python data proc\
+essing framework.
+
+From the user\'s perspective, MDP is a collection of supervised and un\
+supervised
+learning algorithms and other data processing units that can be combin\
+ed into
+data processing sequences and more complex feed-forward network archit\
+...
+
+
+
+
+
+ +
+ +
+

__package__

+ +
+
+
+
Value:
+
+'mdp'
+
+
+
+
+
+ +
+ +
+

__revision__

+ +
+
+
+
Value:
+
+''
+
+
+
+
+
+ +
+ +
+

__short_description__

+ +
+
+
+
Value:
+
+'MDP is a Python library for building complex data processing software\
+ by combining widely used machine learning algorithms into pipelines a\
+nd networks.'
+
+
+
+
+
+ +
+ +
+

_pp_needs_monkeypatching

+ +
+
+
+
Value:
+
+False
+
+
+
+
+
+ +
+ +
+

numx_description

+ +
+
+
+
Value:
+
+'scipy'
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.CheckpointFlow-class.html b/legacy/api/mdp.CheckpointFlow-class.html new file mode 100755 index 0000000..da1a648 --- /dev/null +++ b/legacy/api/mdp.CheckpointFlow-class.html @@ -0,0 +1,892 @@ + + + + + mdp.CheckpointFlow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class CheckpointFlow + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class CheckpointFlow

+
+ +
+
+Subclass of Flow class that allows user-supplied checkpoint functions +to be executed at the end of each phase, for example to +save the internal structures of a node for later analysis. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
_train_check_checkpoints(self, + checkpoints) + + +
+ +
+   + + + + + + +
train(self, + data_iterables, + checkpoints)
+ Train all trainable nodes in the flow.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Flow
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + iterable, + nodenr=None)
+ Calling an instance is equivalent to call its 'execute' method.
+ + +
+ +
+   + + + + + + +
__contains__(self, + item) + + +
+ +
+   + + + + + + +
__delitem__(self, + key) + + +
+ +
+   + + + + + + +
__getitem__(self, + key) + + +
+ +
+   + + + + + + +
__iadd__(self, + other) + + +
+ +
+   + + + + + + +
__init__(self, + flow, + crash_recovery=False, + verbose=False)
+ Keyword arguments:
+ + +
+ +
+   + + + + + + +
__iter__(self) + + +
+ +
+   + + + + + + +
__len__(self) + + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__setitem__(self, + key, + value) + + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_dimension_consistency(self, + out, + inp)
+ Raise ValueError when both dimensions are set and different.
+ + +
+ +
+   + + + + + + +
_check_nodes_consistency(self, + flow=None)
+ Check the dimension consistency of a list of nodes.
+ + +
+ +
+   + + + + + + +
_check_value_type_isnode(self, + value) + + +
+ +
+   + + + + + + +
_close_last_node(self) + + +
+ +
+   + + + + + + +
_execute_seq(self, + x, + nodenr=None) + + +
+ +
+   + + + + + + +
_inverse_seq(self, + x) + + +
+ +
+   + + + + + + +
_propagate_exception(self, + except_, + nodenr) + + +
+ +
+   + + + + + + +
_stop_training_hook(self)
+ Hook method that is called before stop_training is called.
+ + +
+ +
+   + + + + + + +
_train_check_iterables(self, + data_iterables)
+ Return the data iterables after some checks and sanitizing.
+ + +
+ +
+   + + + + + + +
_train_node(self, + data_iterable, + nodenr)
+ Train a single node in the flow.
+ + +
+ +
+   + + + + + + +
append(flow, + node)
+ append node to flow end
+ + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the flow.
+ + +
+ +
+   + + + + + + +
execute(self, + iterable, + nodenr=None)
+ Process the data through all nodes in the flow.
+ + +
+ +
+   + + + + + + +
extend(flow, + iterable)
+ extend flow by appending +elements from the iterable
+ + +
+ +
+   + + + + + + +
insert(flow, + index, + node)
+ insert node before index
+ + +
+ +
+   + + + + + + +
inverse(self, + iterable)
+ Process the data through all nodes in the flow backwards +(starting from the last node up to the first node) by calling the +inverse function of each node. Of course, all nodes in the +flow must be invertible.
+ + +
+ +
+ node + + + + + + +
pop(flow, + index=...)
+ remove and return node at index +(default last)
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the flow to 'filename'. +If 'filename' is None, return a string.
+ + +
+ +
+   + + + + + + +
set_crash_recovery(self, + state=True)
+ Set crash recovery capabilities.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Flow
+   + + + + + + +
_get_required_train_args(node)
+ Return arguments in addition to self and x for node.train.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

_train_check_checkpoints(self, + checkpoints) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

train(self, + data_iterables, + checkpoints) +

+
  +
+ +

Train all trainable nodes in the flow.

+

In addition to the basic behavior (see 'Node.train'), calls the +checkpoint function 'checkpoint[i]' when the training phase of node #i +is over.

+

A checkpoint function takes as its only argument the trained node. +If the checkpoint function returns a dictionary, its content is +added to the instance dictionary.

+

The class CheckpointFunction can be used to define user-supplied +checkpoint functions.

+
+
Overrides: + Flow.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.CheckpointFunction-class.html b/legacy/api/mdp.CheckpointFunction-class.html new file mode 100755 index 0000000..419f6fe --- /dev/null +++ b/legacy/api/mdp.CheckpointFunction-class.html @@ -0,0 +1,252 @@ + + + + + mdp.CheckpointFunction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class CheckpointFunction + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class CheckpointFunction

+
+ +
+
+

Base class for checkpoint functions.

+

This class can be subclassed to build objects to be used as a checkpoint +function in a CheckpointFlow. Such objects would allow to define parameters +for the function and save informations for later use.

+ + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__call__(self, + node)
+ Execute the checkpoint function.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __init__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__call__(self, + node) +
(Call operator) +

+
  +
+ +

Execute the checkpoint function.

+

This is the method that is going to be called at the checkpoint. +Overwrite it to match your needs.

+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.CheckpointSaveFunction-class.html b/legacy/api/mdp.CheckpointSaveFunction-class.html new file mode 100755 index 0000000..51764f0 --- /dev/null +++ b/legacy/api/mdp.CheckpointSaveFunction-class.html @@ -0,0 +1,318 @@ + + + + + mdp.CheckpointSaveFunction + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class CheckpointSaveFunction + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class CheckpointSaveFunction

+
+ +
+
+This checkpoint function saves the node in pickle format. +The pickle dump can be done either before the training phase is finished or +right after that. +In this way, it is for example possible to reload it in successive sessions +and continue the training. + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__call__(self, + node)
+ Execute the checkpoint function.
+ + +
+ +
+   + + + + + + +
__init__(self, + filename, + stop_training=0, + binary=1, + protocol=2)
+ CheckpointSaveFunction constructor.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__call__(self, + node) +
(Call operator) +

+
  +
+ +

Execute the checkpoint function.

+

This is the method that is going to be called at the checkpoint. +Overwrite it to match your needs.

+
+
Overrides: + CheckpointFunction.__call__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

__init__(self, + filename, + stop_training=0, + binary=1, + protocol=2) +
(Constructor) +

+
  +
+ +
+CheckpointSaveFunction constructor.
+
+'filename'      -- the name of the pickle dump file.
+'stop_training' -- if set to 0 the pickle dump is done before
+                   closing the training phase
+                   if set to 1 the training phase is closed and then
+                   the node is dumped
+'binary'        -- sets binary mode for opening the file.
+                   When using a protocol higher than 0, make sure
+                   the file is opened in binary mode.
+'protocol'      -- is the 'protocol' argument for the pickle dump
+                   (see Pickle documentation for details)
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.CircularOnlineFlow-class.html b/legacy/api/mdp.CircularOnlineFlow-class.html new file mode 100755 index 0000000..b070995 --- /dev/null +++ b/legacy/api/mdp.CircularOnlineFlow-class.html @@ -0,0 +1,1576 @@ + + + + + mdp.CircularOnlineFlow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class CircularOnlineFlow + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class CircularOnlineFlow

+
+ +
+
+

A 'CircularOnlineFlow' is a cyclic sequence of online/non-trainable nodes that are trained and executed +together to form a more complex algorithm. This type of flow is useful when one needs to train the nodes +internally for several iterations using stored inputs before training with the next external input.

+

input=x(i) -> [node1, node2, node3] -> output=y' ----External input training---- (1 iteration)

+

input=y' -> [node1, node2, node3] -> output=y' ---- Internal +... input (n-1 iterations) +input=y' -> [node1, node2, node3] -> output=y(i) training----

+

This type of processing is especially useful for implementing control algorithms, reinforcement learning, etc.

+

The input and the output nodes of the flow can be changed at any time using the functions "set_input_node" +and "set_output_node".

+

Examples:

+

If input node and output node are set equal to node1 :

+
+
+
Input -> [node1] -> output
+
/ [node3] <- [node2]
+
+
+

If input node = node1 and output node is equal to node2

+
+
+
Input -> [node1] -> [node2] -> output
+
+ /
+

[node3]

+
+
+
+

CircularOnlineFlow also supports training nodes while ignoring external input data at all times. In this case, +the flow iterates everytime using the previously stored output as the input. Input data can be arbitrary (with same +input_dim and dtype) and is only used as a clock signal to trigger flow processing. +See the docstring of the train method for more information about different training types.

+

Crash recovery is optionally available: in case of failure the current +state of the flow is saved for later inspection.

+

CircularOnlineFlow objects are Python containers. Most of the builtin 'list' +methods are available. CircularOnlineFlow can be saved or copied using the +corresponding 'save' and 'copy' methods.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__delitem__(self, + key) + + +
+ +
+   + + + + + + +
__getitem__(self, + key) + + +
+ +
+   + + + + + + +
__iadd__(self, + other) + + +
+ +
+   + + + + + + +
__init__(self, + flow, + crash_recovery=False, + verbose=False)
+ flow - a list of nodes.
+ + +
+ +
+   + + + + + + +
__setitem__(self, + key, + value) + + +
+ +
+   + + + + + + +
_check_compatibility(self, + flow) + + +
+ +
+   + + + + + + +
_inverse_seq(self, + x) + + +
+ +
+   + + + + + + +
_train_nodes(self, + data_iterables) + + +
+ +
+   + + + + + + +
append(flow, + node)
+ append node to flow end
+ + +
+ +
+   + + + + + + +
execute(self, + iterable, + nodenr=None)
+ Process the data through all nodes between input and the output node. +This is functionally similar to the execute method of an OnlineFlow.
+ + +
+ +
+   + + + + + + +
extend(flow, + iterable)
+ extend flow by appending +elements from the iterable
+ + +
+ +
+   + + + + + + +
get_stored_input(self)
+ return the current stored input
+ + +
+ +
+   + + + + + + +
ignore_input(self, + flag)
+ CircularOnlineFlow also supports training nodes while ignoring external input data at all times. +This mode is enabled/disabled using this method. See train method docstring for information on +different training modes.
+ + +
+ +
+   + + + + + + +
insert(flow, + index, + node)
+ insert node before index
+ + +
+ +
+   + + + + + + +
reset_output_node(self)
+ Resets the output node to the last node of the provided node sequence
+ + +
+ +
+   + + + + + + +
set_flow_iterations(self, + n)
+ This method sets the number of total flow iterations: +If self._ignore_input is False, then the total flow iterations = 1 external + (n-1) internal iterations. +If self._ignore input is True, then the total flow iterations = n internal iterations. +See train method docstring for information on different training modes.
+ + +
+ +
+   + + + + + + +
set_input_node(self, + node_idx)
+ Set the input node of the flow
+ + +
+ +
+   + + + + + + +
set_output_node(self, + node_idx)
+ Set the output node of the flow
+ + +
+ +
+   + + + + + + +
set_stored_input(self, + x)
+ CircularOnlineFlow also supports training nodes while ignoring external input data at all times. +In this case, the flow iterates every time using an initially stored input that can be set using this method.
+ + +
+ +
+   + + + + + + +
train(self, + data_iterables)
+ Train all trainable-nodes in the flow.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from OnlineFlow
+   + + + + + + +
_check_value_type_is_online_or_nontrainable_node(self, + value) + + +
+ +
+   + + + + + + +
_get_required_train_args_from_flow(self, + flow) + + +
+ +
+   + + + + + + +
_train_check_iterables(self, + data_iterables)
+ Return the data iterable after some checks and sanitizing.
+ + +
+ +
+   + + + + + + +
_train_node(self, + data_iterable, + nodenr)
+ Train a single node in the flow.
+ + +
+ +
    Inherited from Flow
+   + + + + + + +
__call__(self, + iterable, + nodenr=None)
+ Calling an instance is equivalent to call its 'execute' method.
+ + +
+ +
+   + + + + + + +
__contains__(self, + item) + + +
+ +
+   + + + + + + +
__iter__(self) + + +
+ +
+   + + + + + + +
__len__(self) + + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_dimension_consistency(self, + out, + inp)
+ Raise ValueError when both dimensions are set and different.
+ + +
+ +
+   + + + + + + +
_check_nodes_consistency(self, + flow=None)
+ Check the dimension consistency of a list of nodes.
+ + +
+ +
+   + + + + + + +
_check_value_type_isnode(self, + value) + + +
+ +
+   + + + + + + +
_close_last_node(self) + + +
+ +
+   + + + + + + +
_execute_seq(self, + x, + nodenr=None) + + +
+ +
+   + + + + + + +
_propagate_exception(self, + except_, + nodenr) + + +
+ +
+   + + + + + + +
_stop_training_hook(self)
+ Hook method that is called before stop_training is called.
+ + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the flow.
+ + +
+ +
+   + + + + + + +
inverse(self, + iterable)
+ Process the data through all nodes in the flow backwards +(starting from the last node up to the first node) by calling the +inverse function of each node. Of course, all nodes in the +flow must be invertible.
+ + +
+ +
+ node + + + + + + +
pop(flow, + index=...)
+ remove and return node at index +(default last)
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the flow to 'filename'. +If 'filename' is None, return a string.
+ + +
+ +
+   + + + + + + +
set_crash_recovery(self, + state=True)
+ Set crash recovery capabilities.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Flow
+   + + + + + + +
_get_required_train_args(node)
+ Return arguments in addition to self and x for node.train.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__add__(self, + other) +
(Addition operator) +

+
  +
+ + +
+
Overrides: + Flow.__add__ +
+
+
+
+ +
+ +
+ + +
+

__delitem__(self, + key) +
(Index deletion operator) +

+
  +
+ + +
+
Overrides: + Flow.__delitem__ +
+
+
+
+ +
+ +
+ + +
+

__getitem__(self, + key) +
(Indexing operator) +

+
  +
+ + +
+
Overrides: + Flow.__getitem__ +
+
+
+
+ +
+ +
+ + +
+

__iadd__(self, + other) +

+
  +
+ + +
+
Overrides: + Flow.__iadd__ +
+
+
+
+ +
+ +
+ + +
+

__init__(self, + flow, + crash_recovery=False, + verbose=False) +
(Constructor) +

+
  +
+ + flow - a list of nodes. +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

__setitem__(self, + key, + value) +
(Index assignment operator) +

+
  +
+ + +
+
Overrides: + Flow.__setitem__ +
+
+
+
+ +
+ +
+ + +
+

_check_compatibility(self, + flow) +

+
  +
+ + +
+
Overrides: + OnlineFlow._check_compatibility +
+
+
+
+ +
+ +
+ + +
+

_inverse_seq(self, + x) +

+
  +
+ + +
+
Overrides: + Flow._inverse_seq +
+
+
+
+ +
+ +
+ + +
+

_train_nodes(self, + data_iterables) +

+
  +
+ + +
+
Overrides: + OnlineFlow._train_nodes +
+
+
+
+ +
+ +
+ + +
+

append(flow, + node) +

+
  +
+ + append node to flow end +
+
Overrides: + Flow.append +
+
+
+
+ +
+ +
+ + +
+

execute(self, + iterable, + nodenr=None) +

+
  +
+ +

Process the data through all nodes between input and the output node. +This is functionally similar to the execute method of an OnlineFlow.

+

'iterable' is an iterable or iterator (note that a list is also an +iterable), which returns data arrays that are used as input to the flow. +Alternatively, one can specify one data array as input.

+
+
Overrides: + Flow.execute +
+
+
+
+ +
+ +
+ + +
+

extend(flow, + iterable) +

+
  +
+ + extend flow by appending +elements from the iterable +
+
Overrides: + Flow.extend +
+
+
+
+ +
+ +
+ + +
+

get_stored_input(self) +

+
  +
+ + return the current stored input +
+
+
+
+ +
+ +
+ + +
+

ignore_input(self, + flag) +

+
  +
+ + CircularOnlineFlow also supports training nodes while ignoring external input data at all times. +This mode is enabled/disabled using this method. See train method docstring for information on +different training modes. +
+
+
+
+ +
+ +
+ + +
+

insert(flow, + index, + node) +

+
  +
+ + insert node before index +
+
Overrides: + Flow.insert +
+
+
+
+ +
+ +
+ + +
+

reset_output_node(self) +

+
  +
+ + Resets the output node to the last node of the provided node sequence +
+
+
+
+ +
+ +
+ + +
+

set_flow_iterations(self, + n) +

+
  +
+ + This method sets the number of total flow iterations: +If self._ignore_input is False, then the total flow iterations = 1 external + (n-1) internal iterations. +If self._ignore input is True, then the total flow iterations = n internal iterations. +See train method docstring for information on different training modes. +
+
+
+
+ +
+ +
+ + +
+

set_input_node(self, + node_idx) +

+
  +
+ + Set the input node of the flow +
+
+
+
+ +
+ +
+ + +
+

set_output_node(self, + node_idx) +

+
  +
+ + Set the output node of the flow +
+
+
+
+ +
+ +
+ + +
+

set_stored_input(self, + x) +

+
  +
+ + CircularOnlineFlow also supports training nodes while ignoring external input data at all times. +In this case, the flow iterates every time using an initially stored input that can be set using this method. +
+
+
+
+ +
+ +
+ + +
+

train(self, + data_iterables) +

+
  +
+ +

Train all trainable-nodes in the flow.

+

'data_iterables' is a single iterable (including generator-type iterators) +that must return data arrays to train nodes (so the data arrays are the 'x' +for the nodes). Note that the data arrays are processed by the nodes +which are in front of the node that gets trained, +so the data dimension must match the input dimension of the first node.

+

'data_iterables' can also be a 2D or a 3D numpy array. A 2D array trains +all the nodes incrementally, while a 3D array supports online training +in batches (=shape[1]).

+

Circular flow does not support passing training arguments.

+

There are three ways that the training can proceed based on the values +of self._ignore_input (default=False, can be set via 'ignore_input' method) and +self._flow_iterations argument (default=1, can be set via 'set_flow_iterations' method).

+
    +
  1. self._ignore_input = False, self._flow_iterations = 1 (default case)

    +
    +

    This is functionally similar to the standard OnlineFlow. +Each data array returned by the data_iterables is used to +train the nodes simultaneously.

    +
    +
  2. +
  3. +
    self._ignore_input = False, self._flow_iterations > 1
    +

    For each data_array returned by the data_iterables, the flow +trains 1 loop with the data_array and 'self._flow_iterations-1' +loops with the updating stored inputs.

    +
    +
    +
  4. +
  5. +
    self._ignore_input = True, self._flow_iterations > 1
    +

    The data_arrays returned by the data_iterables are ignored, however, +for each data_array, the flow trains 'self._flow_iterations' loops +with the updating stored inputs.

    +
    +
    +
  6. +
+
+
Overrides: + Flow.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.CircularOnlineFlowException-class.html b/legacy/api/mdp.CircularOnlineFlowException-class.html new file mode 100755 index 0000000..ea48a7f --- /dev/null +++ b/legacy/api/mdp.CircularOnlineFlowException-class.html @@ -0,0 +1,194 @@ + + + + + mdp.CircularOnlineFlowException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class CircularOnlineFlowException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class CircularOnlineFlowException

+
+ +
+
+Base class for exceptions in Flow subclasses. + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.ClassifierCumulator-class.html b/legacy/api/mdp.ClassifierCumulator-class.html new file mode 100755 index 0000000..f35821e --- /dev/null +++ b/legacy/api/mdp.ClassifierCumulator-class.html @@ -0,0 +1,1261 @@ + + + + + mdp.ClassifierCumulator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class ClassifierCumulator + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ClassifierCumulator

+
+ +
+
+

A ClassifierCumulator is a Node whose training phase simply collects +all input data and labels. In this way it is possible to easily implement +batch-mode learning.

+

The data is accessible in the attribute 'self.data' after +the beginning of the '_stop_training' phase. 'self.tlen' contains +the number of data points collected. +'self.labels' contains the assigned label to each data point.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None)
+ If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute.
+ + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + labels) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs)
+ Transform the data and labels lists to array objects and reshape them.
+ + +
+ +
+   + + + + + + +
_train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Transform the data and labels lists to array objects and reshape them.
+ + +
+ +
+   + + + + + + +
train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ClassifierNode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_label(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
_prob(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
label(self, + x, + *args, + **kwargs)
+ Returns an array with best class labels.
+ + +
+ +
+   + + + + + + +
prob(self, + x, + *args, + **kwargs)
+ This function does classification or regression on a test vector T +given a model with probability information. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ +

If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute.

+

Every subclass must take care of up- or down-casting the internal +structures to match this argument (use _refcast private +method when possible).

+
+
Overrides: + object.__init__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_check_train_args(self, + x, + labels) +

+
  +
+ + +
+
Overrides: + Node._check_train_args +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + *args, + **kwargs) +

+
  +
+ +
+Transform the data and labels lists to array objects and reshape them.
+
+
+
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x, + labels) +

+
  +
+ +
+Cumulate all input data in a one dimensional list.
+
+
+
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + *args, + **kwargs) +

+
  +
+ + Transform the data and labels lists to array objects and reshape them. +
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x, + labels) +

+
  +
+ + Cumulate all input data in a one dimensional list. +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.ClassifierNode-class.html b/legacy/api/mdp.ClassifierNode-class.html new file mode 100755 index 0000000..63ba0ea --- /dev/null +++ b/legacy/api/mdp.ClassifierNode-class.html @@ -0,0 +1,1313 @@ + + + + + mdp.ClassifierNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class ClassifierNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ClassifierNode

+
+ +
+
+A ClassifierNode can be used for classification tasks that should not +interfere with the normal execution flow. A reason for that is that the +labels used for classification do not form a vector space, and so they don't +make much sense in a flow. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + execute_method=None, + input_dim=None, + output_dim=None, + dtype=None)
+ Initialize classifier.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_label(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
_prob(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
label(self, + x, + *args, + **kwargs)
+ Returns an array with best class labels.
+ + +
+ +
+   + + + + + + +
prob(self, + x, + *args, + **kwargs)
+ This function does classification or regression on a test vector T +given a model with probability information. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + execute_method=None, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ +

Initialize classifier.

+
+
execute_method -- Set to string value 'label', 'rank', or 'prob' to
+
force the corresponding classification method being used instead +of the standard identity execution (which is used when +execute_method has the default value None). This can be used when +the node is last in a flow, the return value from Flow.execute +will then consist of the classification results.
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_label(self, + x, + *args, + **kargs) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_prob(self, + x, + *args, + **kargs) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

label(self, + x, + *args, + **kwargs) +

+
  +
+ +

Returns an array with best class labels.

+

By default, subclasses should overwrite _label to implement +their label. The docstring of the '_label' method +overwrites this docstring.

+
+
+
+
+ +
+ +
+ + +
+

prob(self, + x, + *args, + **kwargs) +

+
  +
+ +

This function does classification or regression on a test vector T +given a model with probability information. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X : array-like, shape = [n_samples, n_features]

+

Returns

+
+
X : array-like, shape = [n_samples, n_classes]
+
Returns the probability of the sample for each class in +the model, where classes are ordered by arithmetical +order.
+
+

Notes

+

The probability model is created using cross validation, so +the results can be slightly different than those obtained by +predict. Also, it will meaningless results on very small +datasets.

+
+
+
+
+ +
+ +
+ + +
+

rank(self, + x, + threshold=None) +

+
  +
+ +

Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).

+

The optional threshold parameter is used to exclude labels having equal +or less probability. E.g. threshold=0 excludes all labels with zero +probability.

+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.CrashRecoveryException-class.html b/legacy/api/mdp.CrashRecoveryException-class.html new file mode 100755 index 0000000..dcebe0b --- /dev/null +++ b/legacy/api/mdp.CrashRecoveryException-class.html @@ -0,0 +1,304 @@ + + + + + mdp.CrashRecoveryException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class CrashRecoveryException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class CrashRecoveryException

+
+ +
+
+Class to handle crash recovery + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + *args)
+ Allow crash recovery. +Arguments: (error_string, crashing_obj, parent_exception) +The crashing object is kept in self.crashing_obj +The triggering parent exception is kept in self.parent_exception.
+ + +
+ +
+   + + + + + + +
dump(self, + filename=None)
+ Save a pickle dump of the crashing object on filename. +If filename is None, the crash dump is saved on a file created by +the tempfile module. +Return the filename.
+ + +
+ +
+

Inherited from exceptions.Exception: + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + *args) +
(Constructor) +

+
  +
+ + Allow crash recovery. +Arguments: (error_string, crashing_obj, parent_exception) +The crashing object is kept in self.crashing_obj +The triggering parent exception is kept in self.parent_exception. +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

dump(self, + filename=None) +

+
  +
+ + Save a pickle dump of the crashing object on filename. +If filename is None, the crash dump is saved on a file created by +the tempfile module. +Return the filename. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.Cumulator-class.html b/legacy/api/mdp.Cumulator-class.html new file mode 100755 index 0000000..062a644 --- /dev/null +++ b/legacy/api/mdp.Cumulator-class.html @@ -0,0 +1,1115 @@ + + + + + mdp.Cumulator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class Cumulator + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class Cumulator

+
+
+ +
+
+A specialized version of VariadicCumulator which only +fills the field self.data. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + *args, + **kwargs)
+ If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + *args, + **kwargs) +
(Constructor) +

+
  +
+ +

If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute.

+

Every subclass must take care of up- or down-casting the internal +structures to match this argument (use _refcast private +method when possible).

+
+
Overrides: + object.__init__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_stop_training(self, + *args, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + *args) +

+
  +
+ + Collect all input data in a list. +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + *args, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + *args) +

+
  +
+ + Collect all input data in a list. +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.ExtensionNode-class.html b/legacy/api/mdp.ExtensionNode-class.html new file mode 100755 index 0000000..b54db9c --- /dev/null +++ b/legacy/api/mdp.ExtensionNode-class.html @@ -0,0 +1,280 @@ + + + + + mdp.ExtensionNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class ExtensionNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ExtensionNode

+
+ +
+
+

Base class for extensions nodes.

+

A new extension node class should override the _extension_name. +The concrete node implementations are then derived from this extension +node class.

+

To call an instance method from a parent class you have multiple options:

+
    +
  • use super, but with the normal node class, e.g.:

    +
    +>>>  super(mdp.nodes.SFA2Node, self).method()      # doctest: +SKIP
    +

    Here SFA2Node was given instead of the extension node class for the +SFA2Node.

    +

    If the extensions node class is used directly (without the extension +mechanism) this can cause problems. In that case you have to be +careful about the inheritance order and the effect on the MRO.

    +
  • +
  • call it explicitly using the __func__ attribute [python version < 3]:

    +
    +>>> parent_class.method.__func__(self)             # doctest: +SKIP
    +

    or [python version >=3]:

    +
    +>>> parent_class.method(self)                      # doctest: +SKIP
    +
  • +
+

To call the original (pre-extension) method in the same class use you +simply prefix the method name with '_non_extension_' (this is the value +of the ORIGINAL_ATTR_PREFIX constant in this module).

+ + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __init__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Class Variables[hide private]
+
+   + + extension_name = None
+ hash(x) +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Class Variable Details[hide private]
+
+ +
+ +
+

extension_name

+
+hash(x)
+
+
+
+
+
+
Value:
+
+None
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.ExtensionNodeMetaclass-class.html b/legacy/api/mdp.ExtensionNodeMetaclass-class.html new file mode 100755 index 0000000..9fa1bc0 --- /dev/null +++ b/legacy/api/mdp.ExtensionNodeMetaclass-class.html @@ -0,0 +1,423 @@ + + + + + mdp.ExtensionNodeMetaclass + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class ExtensionNodeMetaclass + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Type ExtensionNodeMetaclass

+
+ +
+
+

This is the metaclass for node extension superclasses.

+

It takes care of registering extensions and the attributes in the +extension.

+ + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from type: + __call__, + __delattr__, + __eq__, + __ge__, + __getattribute__, + __gt__, + __hash__, + __init__, + __instancecheck__, + __le__, + __lt__, + __ne__, + __repr__, + __setattr__, + __subclasscheck__, + __subclasses__, + mro +

+

Inherited from object: + __format__, + __reduce__, + __reduce_ex__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+
+a new object with type S, a subtype of T
+
+
+
+ + + + + +
__new__(cls, + classname, + bases, + members)
+ Create new node classes and register extensions.
+ + +
+ +
    Inherited from NodeMetaclass
+   + + + + + + +
_function_infodict(func)
+ Returns an info dictionary containing:
+ + +
+ +
+   + + + + + + +
_get_infos(pubmethod) + + +
+ +
+   + + + + + + +
_select_private_methods_to_wrap(cls, + members)
+ Select private methods that can overwrite the public docstring.
+ + +
+ +
+   + + + + + + +
_wrap_function(original_func, + wrapper_infodict)
+ Return a wrapped version of func.
+ + +
+ +
+   + + + + + + +
_wrap_method(wrapper_infodict, + cls)
+ Return a wrapped version of func.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Class Variables[hide private]
+
    Inherited from NodeMetaclass
+   + + DOC_METHODS = ['_train', '_stop_training', '_execute', '_inver... +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from type: + __abstractmethods__, + __base__, + __bases__, + __basicsize__, + __dictoffset__, + __flags__, + __itemsize__, + __mro__, + __name__, + __weakrefoffset__ +

+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__new__(cls, + classname, + bases, + members) +
Static Method +

+
  +
+ +

Create new node classes and register extensions.

+

If a concrete extension node is created then a corresponding mixin +class is automatically created and registered.

+
+
Returns:
+a new object with type S, a subtype of T
+
+
+
Overrides: + object.__new__ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.Flow-class.html b/legacy/api/mdp.Flow-class.html new file mode 100755 index 0000000..e1ed7a9 --- /dev/null +++ b/legacy/api/mdp.Flow-class.html @@ -0,0 +1,1602 @@ + + + + + mdp.Flow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class Flow + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class Flow

+
+ +
+
+

A 'Flow' is a sequence of nodes that are trained and executed +together to form a more complex algorithm. Input data is sent to the +first node and is successively processed by the subsequent nodes along +the sequence.

+

Using a flow as opposed to handling manually a set of nodes has a +clear advantage: The general flow implementation automatizes the +training (including supervised training and multiple training phases), +execution, and inverse execution (if defined) of the whole sequence.

+

Crash recovery is optionally available: in case of failure the current +state of the flow is saved for later inspection. A subclass of the +basic flow class ('CheckpointFlow') allows user-supplied checkpoint +functions to be executed at the end of each phase, for example to save +the internal structures of a node for later analysis. +Flow objects are Python containers. Most of the builtin 'list' +methods are available. A 'Flow' can be saved or copied using the +corresponding 'save' and 'copy' methods.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + iterable, + nodenr=None)
+ Calling an instance is equivalent to call its 'execute' method.
+ + +
+ +
+   + + + + + + +
__contains__(self, + item) + + +
+ +
+   + + + + + + +
__delitem__(self, + key) + + +
+ +
+   + + + + + + +
__getitem__(self, + key) + + +
+ +
+   + + + + + + +
__iadd__(self, + other) + + +
+ +
+   + + + + + + +
__init__(self, + flow, + crash_recovery=False, + verbose=False)
+ Keyword arguments:
+ + +
+ +
+   + + + + + + +
__iter__(self) + + +
+ +
+   + + + + + + +
__len__(self) + + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__setitem__(self, + key, + value) + + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_dimension_consistency(self, + out, + inp)
+ Raise ValueError when both dimensions are set and different.
+ + +
+ +
+   + + + + + + +
_check_nodes_consistency(self, + flow=None)
+ Check the dimension consistency of a list of nodes.
+ + +
+ +
+   + + + + + + +
_check_value_type_isnode(self, + value) + + +
+ +
+   + + + + + + +
_close_last_node(self) + + +
+ +
+   + + + + + + +
_execute_seq(self, + x, + nodenr=None) + + +
+ +
+   + + + + + + +
_inverse_seq(self, + x) + + +
+ +
+   + + + + + + +
_propagate_exception(self, + except_, + nodenr) + + +
+ +
+   + + + + + + +
_stop_training_hook(self)
+ Hook method that is called before stop_training is called.
+ + +
+ +
+   + + + + + + +
_train_check_iterables(self, + data_iterables)
+ Return the data iterables after some checks and sanitizing.
+ + +
+ +
+   + + + + + + +
_train_node(self, + data_iterable, + nodenr)
+ Train a single node in the flow.
+ + +
+ +
+   + + + + + + +
append(flow, + node)
+ append node to flow end
+ + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the flow.
+ + +
+ +
+   + + + + + + +
execute(self, + iterable, + nodenr=None)
+ Process the data through all nodes in the flow.
+ + +
+ +
+   + + + + + + +
extend(flow, + iterable)
+ extend flow by appending +elements from the iterable
+ + +
+ +
+   + + + + + + +
insert(flow, + index, + node)
+ insert node before index
+ + +
+ +
+   + + + + + + +
inverse(self, + iterable)
+ Process the data through all nodes in the flow backwards +(starting from the last node up to the first node) by calling the +inverse function of each node. Of course, all nodes in the +flow must be invertible.
+ + +
+ +
+ node + + + + + + +
pop(flow, + index=...)
+ remove and return node at index +(default last)
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the flow to 'filename'. +If 'filename' is None, return a string.
+ + +
+ +
+   + + + + + + +
set_crash_recovery(self, + state=True)
+ Set crash recovery capabilities.
+ + +
+ +
+   + + + + + + +
train(self, + data_iterables)
+ Train all trainable nodes in the flow.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
_get_required_train_args(node)
+ Return arguments in addition to self and x for node.train.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__add__(self, + other) +
(Addition operator) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__call__(self, + iterable, + nodenr=None) +
(Call operator) +

+
  +
+ + Calling an instance is equivalent to call its 'execute' method. +
+
+
+
+ +
+ +
+ + +
+

__contains__(self, + item) +
(In operator) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__delitem__(self, + key) +
(Index deletion operator) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__getitem__(self, + key) +
(Indexing operator) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__iadd__(self, + other) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__init__(self, + flow, + crash_recovery=False, + verbose=False) +
(Constructor) +

+
  +
+ +
+
+Keyword arguments:
+
+flow -- a list of Nodes
+crash_recovery -- set (or not) Crash Recovery Mode (save node
+                  in case a failure)
+verbose -- if True, print some basic progress information
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

__iter__(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__len__(self) +
(Length operator) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__repr__(self) +
(Representation operator) +

+
  +
+ +
+repr(x)
+
+
+
+
Overrides: + object.__repr__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

__setitem__(self, + key, + value) +
(Index assignment operator) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__str__(self) +
(Informal representation operator) +

+
  +
+ +
+str(x)
+
+
+
+
Overrides: + object.__str__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_check_dimension_consistency(self, + out, + inp) +

+
  +
+ +
+Raise ValueError when both dimensions are set and different.
+
+
+
+
+
+
+ +
+ +
+ + +
+

_check_nodes_consistency(self, + flow=None) +

+
  +
+ +
+Check the dimension consistency of a list of nodes.
+
+
+
+
+
+
+ +
+ +
+ + +
+

_check_value_type_isnode(self, + value) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_close_last_node(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_execute_seq(self, + x, + nodenr=None) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_get_required_train_args(node) +
Static Method +

+
  +
+ +

Return arguments in addition to self and x for node.train.

+

Argumentes that have a default value are ignored.

+
+
+
+
+ +
+ +
+ + +
+

_inverse_seq(self, + x) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_propagate_exception(self, + except_, + nodenr) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_stop_training_hook(self) +

+
  +
+ +
+Hook method that is called before stop_training is called.
+
+
+
+
+
+
+ +
+ +
+ + +
+

_train_check_iterables(self, + data_iterables) +

+
  +
+ +
+Return the data iterables after some checks and sanitizing.
+
+Note that this method does not distinguish between iterables and
+iterators, so this must be taken care of later.
+
+
+
+
+
+
+ +
+ +
+ + +
+

_train_node(self, + data_iterable, + nodenr) +

+
  +
+ +
+Train a single node in the flow.
+
+nodenr -- index of the node in the flow
+
+
+
+
+
+
+ +
+ +
+ + +
+

append(flow, + node) +

+
  +
+ + append node to flow end +
+
+
+
+ +
+ +
+ + +
+

copy(self, + protocol=None) +

+
  +
+ +

Return a deep copy of the flow.

+

The protocol parameter should not be used.

+
+
+
+
+ +
+ +
+ + +
+

execute(self, + iterable, + nodenr=None) +

+
  +
+ +

Process the data through all nodes in the flow.

+

'iterable' is an iterable or iterator (note that a list is also an +iterable), which returns data arrays that are used as input to the flow. +Alternatively, one can specify one data array as input.

+

If 'nodenr' is specified, the flow is executed only up to +node nr. 'nodenr'. This is equivalent to 'flow[:nodenr+1](iterable)'.

+
+
+
+
+ +
+ +
+ + +
+

extend(flow, + iterable) +

+
  +
+ + extend flow by appending +elements from the iterable +
+
+
+
+ +
+ +
+ + +
+

insert(flow, + index, + node) +

+
  +
+ + insert node before index +
+
+
+
+ +
+ +
+ + +
+

inverse(self, + iterable) +

+
  +
+ +

Process the data through all nodes in the flow backwards +(starting from the last node up to the first node) by calling the +inverse function of each node. Of course, all nodes in the +flow must be invertible.

+

'iterable' is an iterable or iterator (note that a list is also an +iterable), which returns data arrays that are used as input to the flow. +Alternatively, one can specify one data array as input.

+

Note that this is _not_ equivalent to 'flow[::-1](iterable)', +which also executes the flow backwards but calls the 'execute' +function of each node.

+
+
+
+
+ +
+ +
+ + +
+

pop(flow, + index=...) +

+
  +
+ + remove and return node at index +(default last) +
+
Returns: node
+
+
+
+ +
+ +
+ + +
+

save(self, + filename, + protocol=-1) +

+
  +
+ +

Save a pickled serialization of the flow to 'filename'. +If 'filename' is None, return a string.

+

Note: the pickled Flow is not guaranteed to be upward or +backward compatible.

+
+
+
+
+ +
+ +
+ + +
+

set_crash_recovery(self, + state=True) +

+
  +
+ +

Set crash recovery capabilities.

+

When a node raises an Exception during training, execution, or +inverse execution that the flow is unable to handle, a FlowExceptionCR +is raised. If crash recovery is set, a crash dump of the flow +instance is saved for later inspection. The original exception +can be found as the 'parent_exception' attribute of the +FlowExceptionCR instance.

+
    +
  • If 'state' = False, disable crash recovery.
  • +
  • If 'state' is a string, the crash dump is saved on a file +with that name.
  • +
  • If 'state' = True, the crash dump is saved on a file created by +the tempfile module.
  • +
+
+
+
+
+ +
+ +
+ + +
+

train(self, + data_iterables) +

+
  +
+ +

Train all trainable nodes in the flow.

+

'data_iterables' is a list of iterables, one for each node in the flow. +The iterators returned by the iterables must return data arrays that +are then used for the node training (so the data arrays are the 'x' for +the nodes). Note that the data arrays are processed by the nodes +which are in front of the node that gets trained, so the data dimension +must match the input dimension of the first node.

+

If a node has only a single training phase then instead of an iterable +you can alternatively provide an iterator (including generator-type +iterators). For nodes with multiple training phases this is not +possible, since the iterator cannot be restarted after the first +iteration. For more information on iterators and iterables see +http://docs.python.org/library/stdtypes.html#iterator-types .

+

In the special case that 'data_iterables' is one single array, +it is used as the data array 'x' for all nodes and training phases.

+

Instead of a data array 'x' the iterators can also return a list or +tuple, where the first entry is 'x' and the following are args for the +training of the node (e.g. for supervised training).

+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.FlowException-class.html b/legacy/api/mdp.FlowException-class.html new file mode 100755 index 0000000..eaad139 --- /dev/null +++ b/legacy/api/mdp.FlowException-class.html @@ -0,0 +1,194 @@ + + + + + mdp.FlowException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class FlowException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class FlowException

+
+ +
+
+Base class for exceptions in Flow subclasses. + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.FlowExceptionCR-class.html b/legacy/api/mdp.FlowExceptionCR-class.html new file mode 100755 index 0000000..edb08c3 --- /dev/null +++ b/legacy/api/mdp.FlowExceptionCR-class.html @@ -0,0 +1,282 @@ + + + + + mdp.FlowExceptionCR + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class FlowExceptionCR + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class FlowExceptionCR

+
+ +
+
+Class to handle flow-crash recovery + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + *args)
+ Allow crash recovery.
+ + +
+ +
+

Inherited from exceptions.Exception: + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
    Inherited from CrashRecoveryException
+   + + + + + + +
dump(self, + filename=None)
+ Save a pickle dump of the crashing object on filename. +If filename is None, the crash dump is saved on a file created by +the tempfile module. +Return the filename.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + *args) +
(Constructor) +

+
  +
+ +

Allow crash recovery.

+

Arguments: (error_string, flow_instance, parent_exception) +The triggering parent exception is kept in self.parent_exception. +If flow_instance._crash_recovery is set, save a crash dump of +flow_instance on the file self.filename

+
+
Overrides: + object.__init__ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.IsNotInvertibleException-class.html b/legacy/api/mdp.IsNotInvertibleException-class.html new file mode 100755 index 0000000..7fa199a --- /dev/null +++ b/legacy/api/mdp.IsNotInvertibleException-class.html @@ -0,0 +1,195 @@ + + + + + mdp.IsNotInvertibleException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class IsNotInvertibleException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class IsNotInvertibleException

+
+ +
+
+Raised when the Node.inverse method is called although the +node is not invertible. + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.IsNotTrainableException-class.html b/legacy/api/mdp.IsNotTrainableException-class.html new file mode 100755 index 0000000..ac97a1b --- /dev/null +++ b/legacy/api/mdp.IsNotTrainableException-class.html @@ -0,0 +1,195 @@ + + + + + mdp.IsNotTrainableException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class IsNotTrainableException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class IsNotTrainableException

+
+ +
+
+Raised when the Node.train method is called although the +node is not trainable. + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.MDPDeprecationWarning-class.html b/legacy/api/mdp.MDPDeprecationWarning-class.html new file mode 100755 index 0000000..fd24bb5 --- /dev/null +++ b/legacy/api/mdp.MDPDeprecationWarning-class.html @@ -0,0 +1,194 @@ + + + + + mdp.MDPDeprecationWarning + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class MDPDeprecationWarning + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class MDPDeprecationWarning

+
+ +
+
+Warn about deprecated MDP API. + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.DeprecationWarning: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.MDPException-class.html b/legacy/api/mdp.MDPException-class.html new file mode 100755 index 0000000..519e580 --- /dev/null +++ b/legacy/api/mdp.MDPException-class.html @@ -0,0 +1,194 @@ + + + + + mdp.MDPException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class MDPException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class MDPException

+
+ +
+
+Base class for exceptions in MDP. + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.MDPWarning-class.html b/legacy/api/mdp.MDPWarning-class.html new file mode 100755 index 0000000..09350f1 --- /dev/null +++ b/legacy/api/mdp.MDPWarning-class.html @@ -0,0 +1,195 @@ + + + + + mdp.MDPWarning + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class MDPWarning + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class MDPWarning

+
+
+ +
+
+Base class for warnings in MDP. + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.UserWarning: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.Node-class.html b/legacy/api/mdp.Node-class.html new file mode 100755 index 0000000..5f61528 --- /dev/null +++ b/legacy/api/mdp.Node-class.html @@ -0,0 +1,2006 @@ + + + + + mdp.Node + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class Node + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class Node

+
+
+ +
+
+

A Node is the basic building block of an MDP application.

+

It represents a data processing element, like for example a learning +algorithm, a data filter, or a visualization step. +Each node can have one or more training phases, during which the +internal structures are learned from training data (e.g. the weights +of a neural network are adapted or the covariance matrix is estimated) +and an execution phase, where new data can be processed forwards (by +processing the data through the node) or backwards (by applying the +inverse of the transformation computed by the node if defined).

+

Nodes have been designed to be applied to arbitrarily long sets of data: +if the underlying algorithms supports it, the internal structures can +be updated incrementally by sending multiple batches of data (this is +equivalent to online learning if the chunks consists of single +observations, or to batch learning if the whole data is sent in a +single chunk). It is thus possible to perform computations on amounts +of data that would not fit into memory or to generate data on-the-fly.

+

A Node also defines some utility methods, like for example +copy and save, that return an exact copy of a node and save it +in a file, respectively. Additional methods may be present, depending +on the algorithm.

+

Node subclasses should take care of overwriting (if necessary) +the functions is_trainable, _train, _stop_training, _execute, +is_invertible, _inverse, _get_train_seq, and _get_supported_dtypes. +If you need to overwrite the getters and setters of the +node's properties refer to the docstring of get_input_dim/set_input_dim, +get_output_dim/set_output_dim, and get_dtype/set_dtype.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None)
+ If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__add__(self, + other) +
(Addition operator) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__call__(self, + x, + *args, + **kwargs) +
(Call operator) +

+
  +
+ + Calling an instance of Node is equivalent to calling +its execute method. +
+
+
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ +

If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute.

+

Every subclass must take care of up- or down-casting the internal +structures to match this argument (use _refcast private +method when possible).

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

__repr__(self) +
(Representation operator) +

+
  +
+ +
+repr(x)
+
+
+
+
Overrides: + object.__repr__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

__str__(self) +
(Informal representation operator) +

+
  +
+ +
+str(x)
+
+
+
+
Overrides: + object.__str__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_check_input(self, + x) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_check_output(self, + y) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_check_train_args(self, + x, + *args, + **kwargs) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ +

Return the list of dtypes supported by this node.

+

The types can be specified in any format allowed by numpy.dtype.

+
+
+
+
+ +
+ +
+ + +
+

_get_train_seq(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_if_training_stop_training(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_inverse(self, + x) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_pre_execution_checks(self, + x) +

+
  +
+ +

This method contains all pre-execution checks.

+

It can be used when a subclass defines multiple execution methods.

+
+
+
+
+ +
+ +
+ + +
+

_pre_inversion_checks(self, + y) +

+
  +
+ +

This method contains all pre-inversion checks.

+

It can be used when a subclass defines multiple inversion methods.

+
+
+
+
+ +
+ +
+ + +
+

_refcast(self, + x) +

+
  +
+ + Helper function to cast arrays to the internal dtype. +
+
+
+
+ +
+ +
+ + +
+

_set_dtype(self, + t) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_set_input_dim(self, + n) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_set_output_dim(self, + n) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + *args, + **kwargs) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

copy(self, + protocol=None) +

+
  +
+ + Return a deep copy of the node. +
+
Parameters:
+
    +
  • protocol - the pickle protocol (deprecated).
  • +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x, + *args, + **kwargs) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
+
+
+ +
+ +
+ + +
+

get_current_train_phase(self) +

+
  +
+ +

Return the index of the current training phase.

+

The training phases are defined in the list self._train_seq.

+
+
+
+
+ +
+ +
+ + +
+

get_dtype(self) +

+
  +
+ + Return dtype. +
+
+
+
+ +
+ +
+ + +
+

get_input_dim(self) +

+
  +
+ + Return input dimensions. +
+
+
+
+ +
+ +
+ + +
+

get_output_dim(self) +

+
  +
+ + Return output dimensions. +
+
+
+
+ +
+ +
+ + +
+

get_remaining_train_phase(self) +

+
  +
+ +

Return the number of training phases still to accomplish.

+

If the node is not trainable then return 0.

+
+
+
+
+ +
+ +
+ + +
+

get_supported_dtypes(self) +

+
  +
+ +

Return dtypes supported by the node as a list of numpy.dtype +objects.

+

Note that subclasses should overwrite self._get_supported_dtypes +when needed.

+
+
+
+
+ +
+ +
+ + +
+

has_multiple_training_phases(self) +

+
  +
+ + Return True if the node has multiple training phases. +
+
+
+
+ +
+ +
+ + +
+

inverse(self, + y, + *args, + **kwargs) +

+
  +
+ +

Invert y.

+

If the node is invertible, compute the input x such that +y = execute(x).

+

By default, subclasses should overwrite _inverse to implement +their inverse function. The docstring of the inverse method +overwrites this docstring.

+
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
+
+
+ +
+ +
+ + +
+

is_training(self) +

+
  +
+ + Return True if the node is in the training phase, +False otherwise. +
+
+
+
+ +
+ +
+ + +
+

save(self, + filename, + protocol=-1) +

+
  +
+ +

Save a pickled serialization of the node to filename. +If filename is None, return a string.

+

Note: the pickled Node is not guaranteed to be forwards or +backwards compatible.

+
+
+
+
+ +
+ +
+ + +
+

set_dtype(self, + t) +

+
  +
+ +

Set internal structures' dtype.

+

Perform sanity checks and then calls self._set_dtype(n), which +is responsible for setting the internal attribute self._dtype. +Note that subclasses should overwrite self._set_dtype +when needed.

+
+
+
+
+ +
+ +
+ + +
+

set_input_dim(self, + n) +

+
  +
+ +

Set input dimensions.

+

Perform sanity checks and then calls self._set_input_dim(n), which +is responsible for setting the internal attribute self._input_dim. +Note that subclasses should overwrite self._set_input_dim +when needed.

+
+
+
+
+ +
+ +
+ + +
+

set_output_dim(self, + n) +

+
  +
+ +

Set output dimensions.

+

Perform sanity checks and then calls self._set_output_dim(n), which +is responsible for setting the internal attribute self._output_dim. +Note that subclasses should overwrite self._set_output_dim +when needed.

+
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + *args, + **kwargs) +

+
  +
+ +

Stop the training phase.

+

By default, subclasses should overwrite _stop_training to implement +this functionality. The docstring of the _stop_training method +overwrites this docstring.

+
+
+
+
+ +
+ +
+ + +
+

train(self, + x, + *args, + **kwargs) +

+
  +
+ +

Update the internal structures according to the input data x.

+

x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _train to implement their +training phase. The docstring of the _train method overwrites this +docstring.

+

Note: a subclass supporting multiple training phases should implement +the same signature for all the training phases and document the +meaning of the arguments in the _train method doc-string. Having +consistent signatures is a requirement to use the node in a flow.

+
+
+
+
+
+ + + + + + +
+ + + + + +
Property Details[hide private]
+
+ +
+ +
+

_train_seq

+

List of tuples:

+
+[(training-phase1, stop-training-phase1),
+ (training-phase2, stop_training-phase2),
+ ...]
+
+

By default:

+
+_train_seq = [(self._train, self._stop_training)]
+
+
+
Get Method:
+
unreachable(self) +
+
+
+
+ +
+ +
+

dtype

+ dtype +
+
Get Method:
+
get_dtype(self) + - Return dtype. +
+
Set Method:
+
set_dtype(self, + t) + - Set internal structures' dtype. +
+
+
+
+ +
+ +
+

input_dim

+ Input dimensions +
+
Get Method:
+
get_input_dim(self) + - Return input dimensions. +
+
Set Method:
+
set_input_dim(self, + n) + - Set input dimensions. +
+
+
+
+ +
+ +
+

output_dim

+ Output dimensions +
+
Get Method:
+
get_output_dim(self) + - Return output dimensions. +
+
Set Method:
+
set_output_dim(self, + n) + - Set output dimensions. +
+
+
+
+ +
+ +
+

supported_dtypes

+ Supported dtypes +
+
Get Method:
+
get_supported_dtypes(self) + - Return dtypes supported by the node as a list of numpy.dtype +objects. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.NodeException-class.html b/legacy/api/mdp.NodeException-class.html new file mode 100755 index 0000000..020b3c9 --- /dev/null +++ b/legacy/api/mdp.NodeException-class.html @@ -0,0 +1,194 @@ + + + + + mdp.NodeException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class NodeException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class NodeException

+
+ +
+
+Base class for exceptions in Node subclasses. + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.NodeMetaclass-class.html b/legacy/api/mdp.NodeMetaclass-class.html new file mode 100755 index 0000000..67431d8 --- /dev/null +++ b/legacy/api/mdp.NodeMetaclass-class.html @@ -0,0 +1,607 @@ + + + + + mdp.NodeMetaclass + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class NodeMetaclass + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Type NodeMetaclass

+
+ +
+
+

A metaclass which copies docstrings from private to public methods.

+

This metaclass is meant to overwrite doc-strings of methods like +Node.execute, Node.stop_training, Node.inverse with the ones +defined in the corresponding private methods Node._execute, +Node._stop_training, Node._inverse, etc.

+

This makes it possible for subclasses of Node to document the usage +of public methods, without the need to overwrite the ancestor's methods.

+ + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from type: + __call__, + __delattr__, + __eq__, + __ge__, + __getattribute__, + __gt__, + __hash__, + __init__, + __instancecheck__, + __le__, + __lt__, + __ne__, + __repr__, + __setattr__, + __subclasscheck__, + __subclasses__, + mro +

+

Inherited from object: + __format__, + __reduce__, + __reduce_ex__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+
+a new object with type S, a subtype of T
+
+
+
+ + + + + +
__new__(cls, + classname, + bases, + members) + + +
+ +
+   + + + + + + +
_function_infodict(func)
+ Returns an info dictionary containing:
+ + +
+ +
+   + + + + + + +
_get_infos(pubmethod) + + +
+ +
+   + + + + + + +
_select_private_methods_to_wrap(cls, + members)
+ Select private methods that can overwrite the public docstring.
+ + +
+ +
+   + + + + + + +
_wrap_function(original_func, + wrapper_infodict)
+ Return a wrapped version of func.
+ + +
+ +
+   + + + + + + +
_wrap_method(wrapper_infodict, + cls)
+ Return a wrapped version of func.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Class Variables[hide private]
+
+   + + DOC_METHODS = ['_train', '_stop_training', '_execute', '_inver... +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from type: + __abstractmethods__, + __base__, + __bases__, + __basicsize__, + __dictoffset__, + __flags__, + __itemsize__, + __mro__, + __name__, + __weakrefoffset__ +

+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__new__(cls, + classname, + bases, + members) +
Static Method +

+
  +
+ +
+
+
+
+
+
Returns:
+a new object with type S, a subtype of T
+
+
+
Overrides: + object.__new__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_function_infodict(func) +
Static Method +

+
  +
+ +

Returns an info dictionary containing:

+
    +
  • name (the name of the function : str)
  • +
  • argnames (the names of the arguments : list)
  • +
  • defaults (the values of the default arguments : tuple)
  • +
  • signature (the signature without the defaults : str)
  • +
  • doc (the docstring : str)
  • +
  • module (the module name : str)
  • +
  • dict (the function __dict__ : str)
  • +
  • kwargs_name (the name of the kwargs argument, if present, else None)
  • +
+
+>>> def f(self, x=1, y=2, *args, **kw): pass
+>>> info = getinfo(f)
+>>> info["name"]
+'f'
+>>> info["argnames"]
+['self', 'x', 'y', 'args', 'kw']
+>>> info["defaults"]
+(1, 2)
+>>> info["signature"]
+'self, x, y, *args, **kw'
+>>> info["kwargs_name"]
+kw
+
+
+
+
+ +
+ +
+ + +
+

_get_infos(pubmethod) +
Static Method +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_select_private_methods_to_wrap(cls, + members) +
Static Method +

+
  +
+ +

Select private methods that can overwrite the public docstring.

+

Return a dictionary priv_infos[pubname], where the keys are the +public name of the private method to be wrapped, +and the values are dictionaries with the signature, doc, +... informations of the private methods (see _function_infodict).

+
+
+
+
+ +
+ +
+ + +
+

_wrap_function(original_func, + wrapper_infodict) +
Static Method +

+
  +
+ + Return a wrapped version of func. +
+
Parameters:
+
    +
  • original_func - The function to be wrapped.
  • +
  • wrapper_infodict - The infodict to use for constructing the +wrapper.
  • +
+
+
+
+ +
+ +
+ + +
+

_wrap_method(wrapper_infodict, + cls) +
Static Method +

+
  +
+ + Return a wrapped version of func. +
+
Parameters:
+
    +
  • wrapper_infodict - The infodict to be used for constructing the +wrapper.
  • +
  • cls - Class to which the wrapper method will be added, this is +used for the super call.
  • +
+
+
+
+
+ + + + + + +
+ + + + + +
Class Variable Details[hide private]
+
+ +
+ +
+

DOC_METHODS

+ +
+
+
+
Value:
+
+['_train',
+ '_stop_training',
+ '_execute',
+ '_inverse',
+ '_label',
+ '_prob']
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.OnlineFlow-class.html b/legacy/api/mdp.OnlineFlow-class.html new file mode 100755 index 0000000..9052871 --- /dev/null +++ b/legacy/api/mdp.OnlineFlow-class.html @@ -0,0 +1,1336 @@ + + + + + mdp.OnlineFlow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class OnlineFlow + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class OnlineFlow

+
+ +
+
+
+An 'OnlineFlow' is a sequence of nodes that are trained online and executed
+together to form a more complex algorithm.  Input data is sent to the
+first node and is successively processed by the subsequent nodes along
+the sequence.
+
+Using an online flow as opposed to manually handling a set of nodes has a
+clear advantage: The general online flow implementation automatates the
+training (including supervised training and multiple training phases),
+execution, and inverse execution (if defined) of the whole sequence.
+
+To understand the compatible node sequences for an OnlineFlow, the following terminology is useful:
+   A "trainable" node: node.is_trainable() returns True, node.is_training() returns True.
+   A "trained" node: node.is_trainable() returns True, node.is_training() returns False.
+   A "non-trainable" node: node.is_trainable() returns False, node.is_training() returns False.
+
+OnlineFlow node sequence can contain
+(a) only OnlineNodes
+    (Eg. [OnlineCenteringNode(), IncSFANode()],
+or
+(b) a mix of OnlineNodes and trained/non-trainable Nodes
+    (eg. [a fully trained PCANode, IncSFANode()] or [QuadraticExpansionNode(), IncSFANode()],
+or
+(c) a mix of OnlineNodes/trained/non-trainable Nodes and a terminal trainable Node (but not an OnlineNode) whose
+training hasn't finished
+    (eg. [IncSFANode(), QuadraticExpansionNode(), a partially or untrained SFANode]).
+
+Differences between a Flow and an OnlineFlow:
+a) In Flow, data is processed sequentially, training one node at a time. That is, the second
+   node's training starts only after the first node is "trained". Whereas, in an OnlineFlow data is
+   processed simultaneously training all the nodes at the same time.
+   Eg:
+
+   flow = Flow([node1, node2]), onlineflow = OnlineFlow([node1, node2])
+
+   Let input x = [x_0, x_1, ...., x_n], where x_t a sample or a mini batch of samples.
+
+   Flow training:
+        node1 trains on the entire x. While node1 is training, node2 is inactive.
+        node1 training completes. node2 training begins on the node1(x).
+
+        Therefore, Flow goes through all the data twice. Once for each node.
+
+   OnlineFlow training:
+        node1 trains on x_0. node2 trains on the output of node1 (node1(x_0))
+        node1 trains on x_1. node2 trains on the output of node1 (node1(x_1))
+        ....
+        node1 trains on x_n. node2 trains on the output of node1 (node1(x_n))
+
+        OnlineFlow goes through all the data only once.
+
+b) Flow requires a list of dataiterables with a length equal to the
+   number of nodes or a single numpy array. OnlineFlow requires only one
+   input dataiterable as each node is trained simultaneously.
+
+c) Additional train args (supervised labels etc) are passed to each node through the
+   node specific dataiterable. OnlineFlow requires the dataiterable to return a list
+   that contains tuples of args for each node: [x, (node0 args), (node1 args), ...]. See
+   train docstring.
+
+Crash recovery is optionally available: in case of failure the current
+state of the flow is saved for later inspection.
+
+OnlineFlow objects are Python containers. Most of the builtin 'list'
+methods are available. An 'OnlineFlow' can be saved or copied using the
+corresponding 'save' and 'copy' methods.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__delitem__(self, + key) + + +
+ +
+   + + + + + + +
__iadd__(self, + other) + + +
+ +
+   + + + + + + +
__init__(self, + flow, + crash_recovery=False, + verbose=False)
+ Keyword arguments:
+ + +
+ +
+   + + + + + + +
__setitem__(self, + key, + value) + + +
+ +
+   + + + + + + +
_check_compatibility(self, + flow) + + +
+ +
+   + + + + + + +
_check_value_type_is_online_or_nontrainable_node(self, + value) + + +
+ +
+   + + + + + + +
_get_required_train_args_from_flow(self, + flow) + + +
+ +
+   + + + + + + +
_train_check_iterables(self, + data_iterables)
+ Return the data iterable after some checks and sanitizing.
+ + +
+ +
+   + + + + + + +
_train_node(self, + data_iterable, + nodenr)
+ Train a single node in the flow.
+ + +
+ +
+   + + + + + + +
_train_nodes(self, + data_iterables) + + +
+ +
+   + + + + + + +
append(flow, + node)
+ append node to flow end
+ + +
+ +
+   + + + + + + +
extend(flow, + iterable)
+ extend flow by appending +elements from the iterable
+ + +
+ +
+   + + + + + + +
insert(flow, + index, + node)
+ insert node before index
+ + +
+ +
+   + + + + + + +
train(self, + data_iterables)
+ Train all trainable nodes in the flow.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Flow
+   + + + + + + +
__call__(self, + iterable, + nodenr=None)
+ Calling an instance is equivalent to call its 'execute' method.
+ + +
+ +
+   + + + + + + +
__contains__(self, + item) + + +
+ +
+   + + + + + + +
__getitem__(self, + key) + + +
+ +
+   + + + + + + +
__iter__(self) + + +
+ +
+   + + + + + + +
__len__(self) + + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_dimension_consistency(self, + out, + inp)
+ Raise ValueError when both dimensions are set and different.
+ + +
+ +
+   + + + + + + +
_check_nodes_consistency(self, + flow=None)
+ Check the dimension consistency of a list of nodes.
+ + +
+ +
+   + + + + + + +
_check_value_type_isnode(self, + value) + + +
+ +
+   + + + + + + +
_close_last_node(self) + + +
+ +
+   + + + + + + +
_execute_seq(self, + x, + nodenr=None) + + +
+ +
+   + + + + + + +
_inverse_seq(self, + x) + + +
+ +
+   + + + + + + +
_propagate_exception(self, + except_, + nodenr) + + +
+ +
+   + + + + + + +
_stop_training_hook(self)
+ Hook method that is called before stop_training is called.
+ + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the flow.
+ + +
+ +
+   + + + + + + +
execute(self, + iterable, + nodenr=None)
+ Process the data through all nodes in the flow.
+ + +
+ +
+   + + + + + + +
inverse(self, + iterable)
+ Process the data through all nodes in the flow backwards +(starting from the last node up to the first node) by calling the +inverse function of each node. Of course, all nodes in the +flow must be invertible.
+ + +
+ +
+ node + + + + + + +
pop(flow, + index=...)
+ remove and return node at index +(default last)
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the flow to 'filename'. +If 'filename' is None, return a string.
+ + +
+ +
+   + + + + + + +
set_crash_recovery(self, + state=True)
+ Set crash recovery capabilities.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Flow
+   + + + + + + +
_get_required_train_args(node)
+ Return arguments in addition to self and x for node.train.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__add__(self, + other) +
(Addition operator) +

+
  +
+ + +
+
Overrides: + Flow.__add__ +
+
+
+
+ +
+ +
+ + +
+

__delitem__(self, + key) +
(Index deletion operator) +

+
  +
+ + +
+
Overrides: + Flow.__delitem__ +
+
+
+
+ +
+ +
+ + +
+

__iadd__(self, + other) +

+
  +
+ + +
+
Overrides: + Flow.__iadd__ +
+
+
+
+ +
+ +
+ + +
+

__init__(self, + flow, + crash_recovery=False, + verbose=False) +
(Constructor) +

+
  +
+ +
+
+Keyword arguments:
+
+flow -- a list of Nodes
+crash_recovery -- set (or not) Crash Recovery Mode (save node
+                  in case a failure)
+verbose -- if True, print some basic progress information
+
+
+
+
Overrides: + object.__init__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

__setitem__(self, + key, + value) +
(Index assignment operator) +

+
  +
+ + +
+
Overrides: + Flow.__setitem__ +
+
+
+
+ +
+ +
+ + +
+

_check_compatibility(self, + flow) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_check_value_type_is_online_or_nontrainable_node(self, + value) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_get_required_train_args_from_flow(self, + flow) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_train_check_iterables(self, + data_iterables) +

+
  +
+ +
+Return the data iterable after some checks and sanitizing.
+
+Note that this method does not distinguish between iterables and
+iterators, so this must be taken care of later.
+
+
+
+
Overrides: + Flow._train_check_iterables +
+
+
+
+ +
+ +
+ + +
+

_train_node(self, + data_iterable, + nodenr) +

+
  +
+ +
+Train a single node in the flow.
+
+nodenr -- index of the node in the flow
+
+
+
+
Overrides: + Flow._train_node +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_train_nodes(self, + data_iterables) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

append(flow, + node) +

+
  +
+ + append node to flow end +
+
Overrides: + Flow.append +
+
+
+
+ +
+ +
+ + +
+

extend(flow, + iterable) +

+
  +
+ + extend flow by appending +elements from the iterable +
+
Overrides: + Flow.extend +
+
+
+
+ +
+ +
+ + +
+

insert(flow, + index, + node) +

+
  +
+ + insert node before index +
+
Overrides: + Flow.insert +
+
+
+
+ +
+ +
+ + +
+

train(self, + data_iterables) +

+
  +
+ +

Train all trainable nodes in the flow.

+

'data_iterables' is a single iterable (including generator-type iterators if +the last node has no multiple training phases) that must return data +arrays to train nodes (so the data arrays are the 'x' for the nodes). +Note that the data arrays are processed by the nodes +which are in front of the node that gets trained, +so the data dimension must match the input dimension of the first node.

+

'data_iterables' can also be a 2D or a 3D numpy array. A 2D array trains +all the nodes incrementally, while a 3D array supports online training +in batches (=shape[1]).

+

'data_iterables' can also return a list or a tuple, where the first entry is +'x' and the rest are the required args for training all the nodes in +the flow (e.g. for supervised training).

+

(x, (node-0 args), (node-1 args), ..., (node-n args)) - args for n nodes

+

if say node-i does not require any args, the provided (node-i args) are ignored. +So, one can simply use None for the nodes that do not require args.

+

(x, (node-0 args), ..., None, ..., (node-n args)) - No args for the ith node.

+
+
Overrides: + Flow.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.OnlineFlowException-class.html b/legacy/api/mdp.OnlineFlowException-class.html new file mode 100755 index 0000000..3524384 --- /dev/null +++ b/legacy/api/mdp.OnlineFlowException-class.html @@ -0,0 +1,194 @@ + + + + + mdp.OnlineFlowException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class OnlineFlowException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class OnlineFlowException

+
+ +
+
+Base class for exceptions in Flow subclasses. + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.OnlineNode-class.html b/legacy/api/mdp.OnlineNode-class.html new file mode 100755 index 0000000..5791208 --- /dev/null +++ b/legacy/api/mdp.OnlineNode-class.html @@ -0,0 +1,1632 @@ + + + + + mdp.OnlineNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class OnlineNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class OnlineNode

+
+ +
+
+
+An online Node (OnlineNode) is the basic building block of
+an online MDP application.
+
+It represents a data processing element, for example a learning
+algorithm, a data filter, or a visualization step.
+Each node has a training phase (optional), during which the
+internal structures are updated incrementally (or in batches)
+from training data (e.g. the weights of a neural network are adapted).
+
+Each node can also be executed at any point in time, where new
+data can be processed forwards (or backwards by applying the inverse
+of the transformation computed by the node if defined).
+
+Unlike a Node, an OnlineNode's execute (or inverse) call __does not__ end the
+training phase of the node. The training phase can only be stopped through
+an explicit 'stop_training' call. Once stopped, an OnlineNode becomes
+functionally equivalent to a trained Node.
+
+OnlineNode also supports multiple training phases. However, all
+the training_phases are active for each data point. See _train_seq
+documentation for more information.
+
+The training type of an OnlineNode can be set either to 'incremental'
+or 'batch'. When set to 'incremental', the input data array is passed for
+training sample by sample, while for 'batch' the entire data array is passed.
+
+An `OnlineNode` inherits all the Node's utility methods, for example
+`copy` and `save`, that returns an exact copy of a node and saves it
+in a file, respectively. Additional methods may be present, depending
+on the algorithm.
+
+OnlineNodes also support using a pre-seeded random number generator
+through a 'numx_rng' argument. This can be useful to replicate
+results.
+
+`OnlineNode` subclasses should take care of overwriting (if necessary)
+the functions `_train`, `_stop_training`, `_execute`, 'is_trainable',
+`is_invertible`, `_inverse`, `_get_supported_dtypes` and '_get_supported_training_types'.
+If you need to overwrite the getters and setters of the
+node's properties refer to the docstring of `get_input_dim`/`set_input_dim`,
+`get_output_dim`/`set_output_dim`, `get_dtype`/`set_dtype`, 'get_numx_rng'/'set_numx_rng'.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + numx_rng=None)
+ If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute. +Every subclass must take care of up- or down-casting the internal +structures to match this argument (use _refcast private +method when possible). +If numx_rng is unspecified, it will be set to a random number generator +with a random seed.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_params(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_training_types(self)
+ Return the list of training types supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks. +It can be used when a subclass defines multiple execution methods.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_set_numx_rng(self, + rng) + + +
+ +
+   + + + + + + +
get_current_train_iteration(self)
+ Return the index of the current training iteration.
+ + +
+ +
+   + + + + + + +
get_numx_rng(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
set_numx_rng(self, + rng)
+ Set numx random number generator. +Note that subclasses should overwrite self._set_numx_rng when needed.
+ + +
+ +
+   + + + + + + +
set_training_type(self, + training_type)
+ Sets the training type
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+   + + _train_seq
+ List of tuples: +
+   + + numx_rng
+ Numpy seeded random number generator +
+   + + training_type
+ Training type (Read only) +
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__add__(self, + other) +
(Addition operator) +

+
  +
+ + +
+
Overrides: + Node.__add__ +
+
+
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + numx_rng=None) +
(Constructor) +

+
  +
+ + If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute. +Every subclass must take care of up- or down-casting the internal +structures to match this argument (use _refcast private +method when possible). +If numx_rng is unspecified, it will be set to a random number generator +with a random seed. +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

__repr__(self) +
(Representation operator) +

+
  +
+ +
+repr(x)
+
+
+
+
Overrides: + object.__repr__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_check_input(self, + x) +

+
  +
+ + +
+
Overrides: + Node._check_input +
+
+
+
+ +
+ +
+ + +
+

_check_params(self, + x) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_get_supported_training_types(self) +

+
  +
+ + Return the list of training types supported by this node. +
+
+
+
+ +
+ +
+ + +
+

_get_train_seq(self) +

+
  +
+ + +
+
Overrides: + Node._get_train_seq +
+
+
+
+ +
+ +
+ + +
+

_pre_execution_checks(self, + x) +

+
  +
+ + This method contains all pre-execution checks. +It can be used when a subclass defines multiple execution methods. +
+
Overrides: + Node._pre_execution_checks +
+
+
+
+ +
+ +
+ + +
+

_pre_inversion_checks(self, + y) +

+
  +
+ +

This method contains all pre-inversion checks.

+

It can be used when a subclass defines multiple inversion methods.

+
+
Overrides: + Node._pre_inversion_checks +
+
+
+
+ +
+ +
+ + +
+

_set_numx_rng(self, + rng) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

get_current_train_iteration(self) +

+
  +
+ + Return the index of the current training iteration. +
+
+
+
+ +
+ +
+ + +
+

get_numx_rng(self) +

+
  +
+ + Return input dimensions. +
+
+
+
+ +
+ +
+ + +
+

set_numx_rng(self, + rng) +

+
  +
+ + Set numx random number generator. +Note that subclasses should overwrite self._set_numx_rng when needed. +
+
+
+
+ +
+ +
+ + +
+

set_training_type(self, + training_type) +

+
  +
+ + Sets the training type +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + *args, + **kwargs) +

+
  +
+ +

Stop the training phase.

+

By default, subclasses should overwrite _stop_training to implement +this functionality. The docstring of the _stop_training method +overwrites this docstring.

+
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x, + *args, + **kwargs) +

+
  +
+ +

Update the internal structures according to the input data x.

+

x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _train to implement their +training phase. The docstring of the _train method overwrites this +docstring.

+

Note: a subclass supporting multiple training phases should implement +the same signature for all the training phases and document the +meaning of the arguments in the _train method doc-string. Having +consistent signatures is a requirement to use the node in a flow.

+
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Property Details[hide private]
+
+ +
+ +
+

_train_seq

+

List of tuples:

+
+[(training-phase1, stop-training-phase1, execution-phase1),
+ (training-phase2, stop_training-phase2, execution-phase2),
+ ...]
+
+

By default:

+
+_train_seq = [(self._train, self._stop_training, Identity-function)]
+
+
+
Get Method:
+
unreachable(self) +
+
+
+
+ +
+ +
+

numx_rng

+ Numpy seeded random number generator +
+
Get Method:
+
get_numx_rng(self) + - Return input dimensions. +
+
Set Method:
+
set_numx_rng(self, + rng) + - Set numx random number generator. +Note that subclasses should overwrite self._set_numx_rng when needed. +
+
+
+
+ +
+ +
+

training_type

+ Training type (Read only) +
+
Get Method:
+
unreachable.training_type(self) + - Training type (Read only) +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.OnlineNodeException-class.html b/legacy/api/mdp.OnlineNodeException-class.html new file mode 100755 index 0000000..a13e108 --- /dev/null +++ b/legacy/api/mdp.OnlineNodeException-class.html @@ -0,0 +1,194 @@ + + + + + mdp.OnlineNodeException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class OnlineNodeException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class OnlineNodeException

+
+ +
+
+Base class for exceptions in OnlineNode subclasses. + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.PreserveDimNode-class.html b/legacy/api/mdp.PreserveDimNode-class.html new file mode 100755 index 0000000..d1bcded --- /dev/null +++ b/legacy/api/mdp.PreserveDimNode-class.html @@ -0,0 +1,1036 @@ + + + + + mdp.PreserveDimNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class PreserveDimNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class PreserveDimNode

+
+ +
+
+

Abstract base class with output_dim == input_dim.

+

If one dimension is set then the other is set to the same value. +If the dimensions are set to different values, then an +InconsistentDimException is raised.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None)
+ If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

_set_input_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_input_dim +
+
+
+
+ +
+ +
+ + +
+

_set_output_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_output_dim +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.PreserveDimOnlineNode-class.html b/legacy/api/mdp.PreserveDimOnlineNode-class.html new file mode 100755 index 0000000..f8f5c0a --- /dev/null +++ b/legacy/api/mdp.PreserveDimOnlineNode-class.html @@ -0,0 +1,1187 @@ + + + + + mdp.PreserveDimOnlineNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class PreserveDimOnlineNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class PreserveDimOnlineNode

+
+ +
+
+

Abstract base class with output_dim == input_dim.

+

If one dimension is set then the other is set to the same value. +If the dimensions are set to different values, then an +InconsistentDimException is raised.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from OnlineNode
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + numx_rng=None)
+ If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute. +Every subclass must take care of up- or down-casting the internal +structures to match this argument (use _refcast private +method when possible). +If numx_rng is unspecified, it will be set to a random number generator +with a random seed.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_params(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_training_types(self)
+ Return the list of training types supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks. +It can be used when a subclass defines multiple execution methods.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_set_numx_rng(self, + rng) + + +
+ +
+   + + + + + + +
get_current_train_iteration(self)
+ Return the index of the current training iteration.
+ + +
+ +
+   + + + + + + +
get_numx_rng(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
set_numx_rng(self, + rng)
+ Set numx random number generator. +Note that subclasses should overwrite self._set_numx_rng when needed.
+ + +
+ +
+   + + + + + + +
set_training_type(self, + training_type)
+ Sets the training type
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from OnlineNode
+   + + _train_seq
+ List of tuples: +
+   + + numx_rng
+ Numpy seeded random number generator +
+   + + training_type
+ Training type (Read only) +
    Inherited from Node
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

_set_input_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_input_dim +
+
+
+
+ +
+ +
+ + +
+

_set_output_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_output_dim +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.TrainingException-class.html b/legacy/api/mdp.TrainingException-class.html new file mode 100755 index 0000000..ce772bb --- /dev/null +++ b/legacy/api/mdp.TrainingException-class.html @@ -0,0 +1,194 @@ + + + + + mdp.TrainingException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class TrainingException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class TrainingException

+
+ +
+
+Base class for exceptions in the training phase. + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.TrainingFinishedException-class.html b/legacy/api/mdp.TrainingFinishedException-class.html new file mode 100755 index 0000000..dd34adf --- /dev/null +++ b/legacy/api/mdp.TrainingFinishedException-class.html @@ -0,0 +1,195 @@ + + + + + mdp.TrainingFinishedException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class TrainingFinishedException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class TrainingFinishedException

+
+ +
+
+Raised when the Node.train method is called although the +training phase is closed. + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.caching-module.html b/legacy/api/mdp.caching-module.html new file mode 100755 index 0000000..b885434 --- /dev/null +++ b/legacy/api/mdp.caching-module.html @@ -0,0 +1,378 @@ + + + + + mdp.caching + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package caching + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Package caching

+

MDP extension to cache the execution phase of nodes.

+

This extension is based on the joblib library by Gael Varoquaux, +available at http://packages.python.org/joblib/. At the moment, the +extension is based on joblib v. 0.4.6.

+ + + + + + + + + + +
+ + + + + +
Classes[hide private]
+
+   + + cache
+ Context manager for the 'cache_execute' extension. +
+ + + + + + + + + + + + + + + +
+ + + + + +
Functions[hide private]
+
+   + + + + + + +
activate_caching(cachedir=None, + cache_classes=None, + cache_instances=None, + verbose=0)
+ Activate caching extension.
+ + +
+ +
+   + + + + + + +
deactivate_caching(cachedir=None)
+ De-activate caching extension.
+ + +
+ +
+   + + + + + + +
set_cachedir(cachedir=None, + verbose=0)
+ Set root directory for the joblib cache.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Variables[hide private]
+
+   + + __package__ = 'mdp.caching' +
+ + + + + + +
+ + + + + +
Function Details[hide private]
+
+ +
+ +
+ + +
+

activate_caching(cachedir=None, + cache_classes=None, + cache_instances=None, + verbose=0) +

+
  +
+ +

Activate caching extension.

+

By default, the cache is activated globally (i.e., for all instances +of Node). If cache_classes or cache instances are specified, the cache +is activated only for those classes and instances.

+
+
Parameters:
+
    +
  • cachedir - The root of the joblib cache, or a temporary directory if None
  • +
  • cache_classes - A list of Node subclasses for which caching is activated. +Default value: None
  • +
  • cache_classes - A list of Node instances for which caching is activated. +Default value: None
  • +
+
+
+
+ +
+ +
+ + +
+

deactivate_caching(cachedir=None) +

+
  +
+ + De-activate caching extension. +
+
+
+
+ +
+ +
+ + +
+

set_cachedir(cachedir=None, + verbose=0) +

+
  +
+ + Set root directory for the joblib cache. +
+
Parameters:
+
    +
  • cachedir - the cache directory name; if None, a temporary directory +is created using TemporaryDirectory
  • +
  • verbose - an integer number, controls the verbosity of the cache +(default is 0, i.e., not verbose)
  • +
+
+
+
+
+ + + + + + +
+ + + + + +
Variables Details[hide private]
+
+ +
+ +
+

__package__

+ +
+
+
+
Value:
+
+'mdp.caching'
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.caching.cache-class.html b/legacy/api/mdp.caching.cache-class.html new file mode 100755 index 0000000..dced2f2 --- /dev/null +++ b/legacy/api/mdp.caching.cache-class.html @@ -0,0 +1,351 @@ + + + + + mdp.caching.cache + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package caching :: + Class cache + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class cache

+
+ +
+
+

Context manager for the 'cache_execute' extension.

+

This allows using the caching extension using a 'with' +statement, as in:

+
+>>> with mdp.caching.cache(CACHEDIR):                    # doctest: +SKIP
+...     # 'node' is executed caching the results in CACHEDIR
+...     node.execute(x)
+

If the argument to the context manager is not specified, caching is +done in a temporary directory.

+ + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__enter__(self) + + +
+ +
+   + + + + + + +
__exit__(self, + type, + value, + traceback) + + +
+ +
+   + + + + + + +
__init__(self, + cachedir=None, + cache_classes=None, + cache_instances=None, + verbose=0)
+ Activate caching extension.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__enter__(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__exit__(self, + type, + value, + traceback) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__init__(self, + cachedir=None, + cache_classes=None, + cache_instances=None, + verbose=0) +
(Constructor) +

+
  +
+ +

Activate caching extension.

+

By default, the cache is activated globally (i.e., for all instances +of Node). If cache_classes or cache instances are specified, the cache +is activated only for those classes and instances.

+
+
Parameters:
+
    +
  • cachedir - The root of the joblib cache, or a temporary directory if None
  • +
  • cache_classes - A list of Node subclasses for which caching is activated. +Default value: None
  • +
  • cache_classes - A list of Node instances for which caching is activated. +Default value: None
  • +
+
Overrides: + object.__init__ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.config-class.html b/legacy/api/mdp.config-class.html new file mode 100755 index 0000000..2acba08 --- /dev/null +++ b/legacy/api/mdp.config-class.html @@ -0,0 +1,738 @@ + + + + + mdp.config + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class config + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class config

+
+ +
+
+

Provide information about optional dependencies.

+

This class should not be instantiated, it serves as a namespace +for dependency information. This information is encoded as a +series of attributes called has_<dependency>.

+

Dependency parameters are object which have a a boolean value +(True if the dependency is available). If False, they contain an +error string which will be used in mdp.config.info() output. If +True, they contain information about the available version of +the dependency. Those objects should be created by using the helper +class methods ExternalDepFound and ExternalDepFailed.

+
+>>> bool(config.has_python)
+True
+

Dependency parameters are numbered in the order of creation, +so the output is predictable.

+

The selection of the numerical backend (numpy or scipy) can be +forced by setting the environment variable MDPNUMX. The loading +of an optional dependency can be inhibited by setting the +environment variables MDP_DISABLE_<DEPNAME> to a non-empty +value.

+
+
The following variables are defined:
+
+
MDPNUMX
+
either numpy or scipy. By default the latter is used +if available.
+
MDP_DISABLE_PARALLEL_PYTHON
+
inhibit loading of mdp.parallel based on parallel python +(module pp)
+
MDP_DISABLE_SHOGUN
+
inhibit loading of the shogun classifier
+
MDP_DISABLE_LIBSVM
+
inhibit loading of the svm classifier
+
MDP_DISABLE_JOBLIB
+
inhibit loading of the joblib module and mdp.caching
+
MDP_DISABLE_SKLEARN
+
inhibit loading of the sklearn module
+
MDPNSDEBUG
+
print debugging information during the import process
+
MDP_PP_SECRET
+
set parallel python (pp) secret. If not set, and no secret is known +to pp, a default secret will be used.
+
MDP_DISABLE_MONKEYPATCH_PP
+
disable automatic monkeypatching of parallel python worker script, +otherwise a work around for debian bug #620551 is activated.
+
+
+
+ + + + + + + + + + +
+ + + + + +
Nested Classes[hide private]
+
+   + + _ExternalDep +
+ + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __init__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + + + + + + + +
+ + + + + +
Class Methods[hide private]
+
+   + + + + + + +
ExternalDepFailed(cls, + name, + failmsg)
+ Inform that an optional dependency was not found.
+ + +
+ +
+   + + + + + + +
ExternalDepFound(cls, + name, + version)
+ Inform that an optional dependency was found.
+ + +
+ +
+   + + + + + + +
info(cls)
+ Return nicely formatted info about MDP.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Class Variables[hide private]
+
+   + + _HAS_NUMBER = 9 +
+   + + has_joblib = 0.11 +
+   + + has_libsvm = NOT AVAILABLE: No module named libsvm +
+   + + has_mdp = 3.6 +
+   + + has_numx = scipy 0.17.0 +
+   + + has_parallel_python = 1.6.5 +
+   + + has_python = 2.7.12.final.0 +
+   + + has_shogun = NOT AVAILABLE: No module named shogun +
+   + + has_sklearn = 0.8.1 +
+   + + has_symeig = scipy.linalg.eigh +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

ExternalDepFailed(cls, + name, + failmsg) +
Class Method +

+
  +
+ +

Inform that an optional dependency was not found.

+

A new _ExternalDep object will be created and stored +in config.

+
+
Parameters:
+
    +
  • name - identifier of the optional dependency. This should +be a valid python identifier, because it will be +accessible as mdp.config.has_<name> attribute.
  • +
  • failmsg - an object convertible to str, which will be displayed in +mdp.config.info() output. This will usually be either an +exception (e.g. ImportError), or a message string.
  • +
+
+
+
+ +
+ +
+ + +
+

ExternalDepFound(cls, + name, + version) +
Class Method +

+
  +
+ +

Inform that an optional dependency was found.

+

A new _ExternalDep object will be created and stored +in config.

+
+
Parameters:
+
    +
  • name - identifier of the optional dependency. This should +be a valid python identifier, because it will be +accessible as mdp.config.has_<name> attribute.
  • +
  • version - an object convertible to str, which will be displayed in +mdp.config.info() output. Something like '0.4.3'.
  • +
+
+
+
+ +
+ +
+ + +
+

info(cls) +
Class Method +

+
  +
+ +

Return nicely formatted info about MDP.

+
+>>> print mdp.config.info()                           # doctest: +SKIP
+          python: 2.7.2.final.0
+             mdp: 3.3, MDP-3.2-9-g4bc7356+
+ parallel python: 1.6.1-monkey-patched
+          shogun: v1.1.0_02ce3cd_2011-12-12_08:17_
+          libsvm: libsvm.so.3
+          joblib: 0.5.4
+         sklearn: 0.9
+            numx: scipy 0.9.0
+          symeig: scipy.linalg.eigh
+

This function is used to provide the pytest report header and +footer.

+
+
+
+
+
+ + + + + + +
+ + + + + +
Class Variable Details[hide private]
+
+ +
+ +
+

_HAS_NUMBER

+ +
+
+
+
Value:
+
+9
+
+
+
+
+
+ +
+ +
+

has_joblib

+ +
+
+
+
Value:
+
+0.11
+
+
+
+
+
+ +
+ +
+

has_libsvm

+ +
+
+
+
Value:
+
+NOT AVAILABLE: No module named libsvm
+
+
+
+
+
+ +
+ +
+

has_mdp

+ +
+
+
+
Value:
+
+3.6
+
+
+
+
+
+ +
+ +
+

has_numx

+ +
+
+
+
Value:
+
+scipy 0.17.0
+
+
+
+
+
+ +
+ +
+

has_parallel_python

+ +
+
+
+
Value:
+
+1.6.5
+
+
+
+
+
+ +
+ +
+

has_python

+ +
+
+
+
Value:
+
+2.7.12.final.0
+
+
+
+
+
+ +
+ +
+

has_shogun

+ +
+
+
+
Value:
+
+NOT AVAILABLE: No module named shogun
+
+
+
+
+
+ +
+ +
+

has_sklearn

+ +
+
+
+
Value:
+
+0.8.1
+
+
+
+
+
+ +
+ +
+

has_symeig

+ +
+
+
+
Value:
+
+scipy.linalg.eigh
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.config._ExternalDep-class.html b/legacy/api/mdp.config._ExternalDep-class.html new file mode 100755 index 0000000..189c36f --- /dev/null +++ b/legacy/api/mdp.config._ExternalDep-class.html @@ -0,0 +1,334 @@ + + + + + mdp.config._ExternalDep + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class config :: + Class _ExternalDep + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class _ExternalDep

+
+ +
+
+ + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__bool__(self) + + +
+ +
+   + + + + + + +
__init__(self, + name, + version=None, + failmsg=None)
+ x.__init__(...) initializes x; see help(type(x)) for signature
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__bool__(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__init__(self, + name, + version=None, + failmsg=None) +
(Constructor) +

+
  +
+ +
+x.__init__(...) initializes x; see help(type(x)) for signature
+
+
+
+
Overrides: + object.__init__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

__repr__(self) +
(Representation operator) +

+
  +
+ +
+repr(x)
+
+
+
+
Overrides: + object.__repr__ +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.extension-class.html b/legacy/api/mdp.extension-class.html new file mode 100755 index 0000000..16780d1 --- /dev/null +++ b/legacy/api/mdp.extension-class.html @@ -0,0 +1,342 @@ + + + + + mdp.extension + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Class extension + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class extension

+
+ +
+
+

Context manager for MDP extension.

+

This allows you to use extensions using a with statement, as in:

+
+>>> with mdp.extension('extension_name'):
+...     # 'node' is executed with the extension activated
+...     node.execute(x)
+

It is also possible to activate multiple extensions at once:

+
+>>> with mdp.extension(['ext1', 'ext2']):
+...     # 'node' is executed with the two extensions activated
+...     node.execute(x)
+

The deactivation at the end happens only for the extensions that were +activated by this context manager (not for those that were already active +when the context was entered). This prevents unintended side effects.

+ + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__enter__(self) + + +
+ +
+   + + + + + + +
__exit__(self, + type, + value, + traceback) + + +
+ +
+   + + + + + + +
__init__(self, + ext_names)
+ x.__init__(...) initializes x; see help(type(x)) for signature
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__enter__(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__exit__(self, + type, + value, + traceback) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__init__(self, + ext_names) +
(Constructor) +

+
  +
+ +
+x.__init__(...) initializes x; see help(type(x)) for signature
+
+
+
+
Overrides: + object.__init__ +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.graph-module.html b/legacy/api/mdp.graph-module.html new file mode 100755 index 0000000..0ccdc33 --- /dev/null +++ b/legacy/api/mdp.graph-module.html @@ -0,0 +1,392 @@ + + + + + mdp.graph + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package graph + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Package graph

+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Classes[hide private]
+
+   + + Graph
+ Represent a directed graph. +
+   + + GraphEdge
+ Represent a graph edge and all information attached to it. +
+   + + GraphException
+ Base class for exception in the graph package. +
+   + + GraphNode
+ Represent a graph node and all information attached to it. +
+   + + GraphTopologicalException
+ Exception thrown during a topological sort if the graph is cyclical. +
+ + + + + + + + + + + + + + + +
+ + + + + +
Functions[hide private]
+
+   + + + + + + +
is_sequence(x) + + +
+ +
+   + + + + + + +
recursive_map(func, + seq)
+ Apply a function recursively on a sequence and all subsequences.
+ + +
+ +
+   + + + + + + +
recursive_reduce(func, + seq, + *argv)
+ Apply reduce(func, seq) recursively to a sequence and all its +subsequences.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Variables[hide private]
+
+   + + __package__ = 'mdp.graph' +
+ + + + + + +
+ + + + + +
Function Details[hide private]
+
+ +
+ +
+ + +
+

is_sequence(x) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

recursive_map(func, + seq) +

+
  +
+ +
+Apply a function recursively on a sequence and all subsequences.
+
+
+
+
+
+
+ +
+ +
+ + +
+

recursive_reduce(func, + seq, + *argv) +

+
  +
+ +
+Apply reduce(func, seq) recursively to a sequence and all its
+subsequences.
+
+
+
+
+
+
+
+ + + + + + +
+ + + + + +
Variables Details[hide private]
+
+ +
+ +
+

__package__

+ +
+
+
+
Value:
+
+'mdp.graph'
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.graph.Graph-class.html b/legacy/api/mdp.graph.Graph-class.html new file mode 100755 index 0000000..c1b9d90 --- /dev/null +++ b/legacy/api/mdp.graph.Graph-class.html @@ -0,0 +1,954 @@ + + + + + mdp.graph.Graph + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package graph :: + Class Graph + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class Graph

+
+ +
+
+
+Represent a directed graph.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self)
+ x.__init__(...) initializes x; see help(type(x)) for signature
+ + +
+ +
+   + + + + + + +
_bfs(self, + neighbors_fct, + root, + visit_fct=None) + + +
+ +
+   + + + + + + +
_dfs(self, + neighbors_fct, + root, + visit_fct=None) + + +
+ +
+   + + + + + + +
add_edge(self, + head, + tail, + data=None)
+ Add an edge going from head to tail.
+ + +
+ +
+   + + + + + + +
add_full_connectivity(self, + from_nodes, + to_nodes)
+ Add full connectivity from a group of nodes to another one.
+ + +
+ +
+   + + + + + + +
add_node(self, + data=None) + + +
+ +
+   + + + + + + +
add_nodes(self, + data)
+ Add many nodes at once.
+ + +
+ +
+   + + + + + + +
add_tree(self, + tree)
+ Add a tree to the graph.
+ + +
+ +
+   + + + + + + +
bfs(self, + root, + visit_fct=None)
+ Return a list of nodes in some Breadth First order starting from +a root node.
+ + +
+ +
+   + + + + + + +
connected_components(self)
+ Return a list of lists containing the nodes of all connected +components of the graph.
+ + +
+ +
+   + + + + + + +
dfs(self, + root, + visit_fct=None)
+ Return a list of nodes in some Depth First order starting from +a root node.
+ + +
+ +
+   + + + + + + +
is_weakly_connected(self)
+ Return True if the graph is weakly connected.
+ + +
+ +
+   + + + + + + +
remove_edge(self, + edge) + + +
+ +
+   + + + + + + +
remove_node(self, + node) + + +
+ +
+   + + + + + + +
topological_sort(self)
+ Perform a topological sort of the nodes.
+ + +
+ +
+   + + + + + + +
undirected_bfs(self, + root, + visit_fct=None)
+ Perform Breadth First sort.
+ + +
+ +
+   + + + + + + +
undirected_dfs(self, + root, + visit_fct=None)
+ Perform Depth First sort.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self) +
(Constructor) +

+
  +
+ +
+x.__init__(...) initializes x; see help(type(x)) for signature
+
+
+
+
Overrides: + object.__init__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_bfs(self, + neighbors_fct, + root, + visit_fct=None) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_dfs(self, + neighbors_fct, + root, + visit_fct=None) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

add_edge(self, + head, + tail, + data=None) +

+
  +
+ +
+Add an edge going from head to tail.
+head : head node
+tail : tail node
+
+
+
+
+
+
+ +
+ +
+ + +
+

add_full_connectivity(self, + from_nodes, + to_nodes) +

+
  +
+ +
+Add full connectivity from a group of nodes to another one.
+Return a list of lists of edges, one for each node in 'from_nodes'.
+
+Example: create a two-layer graph with full connectivity.
+>>> g = Graph()
+>>> layer1 = g.add_nodes(10)
+>>> layer2 = g.add_nodes(5)
+>>> g.add_full_connectivity(layer1, layer2)
+
+
+
+
+
+
+ +
+ +
+ + +
+

add_node(self, + data=None) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

add_nodes(self, + data) +

+
  +
+ +
+Add many nodes at once.
+
+data -- number of nodes to add or sequence of data values, one for
+        each new node
+
+
+
+
+
+
+ +
+ +
+ + +
+

add_tree(self, + tree) +

+
  +
+ +
+Add a tree to the graph.
+
+The tree is specified with a nested list of tuple, in a LISP-like
+notation. The values specified in the list become the values of
+the single nodes.
+
+Return an equivalent nested list with the nodes instead of the values.
+
+Example:
+>>> a=b=c=d=e=None
+>>> g.add_tree( (a, b, (c, d ,e)) )
+corresponds to this tree structure, with all node values set to None:
+
+        a
+       /               b   c
+         /                 d   e
+
+
+
+
+
+
+ +
+ +
+ + +
+

bfs(self, + root, + visit_fct=None) +

+
  +
+ +
+Return a list of nodes in some Breadth First order starting from
+a root node. If defined, visit_fct is applied on each visited node.
+
+Note the returned list does not have to contain all nodes in the
+graph, but only the ones reachable from the root.
+
+
+
+
+
+
+ +
+ +
+ + +
+

connected_components(self) +

+
  +
+ +
+Return a list of lists containing the nodes of all connected
+components of the graph.
+
+
+
+
+
+
+ +
+ +
+ + +
+

dfs(self, + root, + visit_fct=None) +

+
  +
+ +
+Return a list of nodes in some Depth First order starting from
+a root node. If defined, visit_fct is applied on each visited node.
+
+The returned list does not have to contain all nodes in the
+graph, but only the ones reachable from the root.
+
+
+
+
+
+
+ +
+ +
+ + +
+

is_weakly_connected(self) +

+
  +
+ +
+Return True if the graph is weakly connected.
+
+
+
+
+
+
+ +
+ +
+ + +
+

remove_edge(self, + edge) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

remove_node(self, + node) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

topological_sort(self) +

+
  +
+ +
+Perform a topological sort of the nodes. If the graph has a cycle,
+throw a GraphTopologicalException with the list of successfully
+ordered nodes.
+
+
+
+
+
+
+ +
+ +
+ + +
+

undirected_bfs(self, + root, + visit_fct=None) +

+
  +
+ +
+Perform Breadth First sort.
+
+This function is identical to bfs, but the sort is performed on
+the equivalent undirected version of the graph.
+
+
+
+
+
+
+ +
+ +
+ + +
+

undirected_dfs(self, + root, + visit_fct=None) +

+
  +
+ +
+Perform Depth First sort.
+
+This function is identical to dfs, but the sort is performed on
+the equivalent undirected version of the graph.
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.graph.GraphEdge-class.html b/legacy/api/mdp.graph.GraphEdge-class.html new file mode 100755 index 0000000..92698cf --- /dev/null +++ b/legacy/api/mdp.graph.GraphEdge-class.html @@ -0,0 +1,370 @@ + + + + + mdp.graph.GraphEdge + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package graph :: + Class GraphEdge + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class GraphEdge

+
+ +
+
+
+Represent a graph edge and all information attached to it.
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + head, + tail, + data=None)
+ x.__init__(...) initializes x; see help(type(x)) for signature
+ + +
+ +
+   + + + + + + +
get_ends(self)
+ Return the tuple (head_id, tail_id).
+ + +
+ +
+   + + + + + + +
get_head(self) + + +
+ +
+   + + + + + + +
get_tail(self) + + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + head, + tail, + data=None) +
(Constructor) +

+
  +
+ +
+x.__init__(...) initializes x; see help(type(x)) for signature
+
+
+
+
Overrides: + object.__init__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

get_ends(self) +

+
  +
+ +
+Return the tuple (head_id, tail_id).
+
+
+
+
+
+
+ +
+ +
+ + +
+

get_head(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

get_tail(self) +

+
  +
+ + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.graph.GraphException-class.html b/legacy/api/mdp.graph.GraphException-class.html new file mode 100755 index 0000000..8e276c7 --- /dev/null +++ b/legacy/api/mdp.graph.GraphException-class.html @@ -0,0 +1,198 @@ + + + + + mdp.graph.GraphException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package graph :: + Class GraphException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class GraphException

+
+ +
+
+
+Base class for exception in the graph package.
+
+
+ + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.graph.GraphNode-class.html b/legacy/api/mdp.graph.GraphNode-class.html new file mode 100755 index 0000000..8249907 --- /dev/null +++ b/legacy/api/mdp.graph.GraphNode-class.html @@ -0,0 +1,761 @@ + + + + + mdp.graph.GraphNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package graph :: + Class GraphNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class GraphNode

+
+ +
+
+
+Represent a graph node and all information attached to it.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + data=None)
+ x.__init__(...) initializes x; see help(type(x)) for signature
+ + +
+ +
+   + + + + + + +
add_edge_in(self, + edge) + + +
+ +
+   + + + + + + +
add_edge_out(self, + edge) + + +
+ +
+   + + + + + + +
degree(self)
+ Return the number of edges.
+ + +
+ +
+   + + + + + + +
get_edges(self, + neighbor=None)
+ Return a copy of all edges.
+ + +
+ +
+   + + + + + + +
get_edges_in(self, + from_=None)
+ Return a copy of the list of the entering edges.
+ + +
+ +
+   + + + + + + +
get_edges_out(self, + to_=None)
+ Return a copy of the list of the outgoing edges.
+ + +
+ +
+   + + + + + + +
in_degree(self)
+ Return the number of entering edges.
+ + +
+ +
+   + + + + + + +
in_neighbors(self)
+ Return the neighbors down in-edges (i.e.
+ + +
+ +
+   + + + + + + +
neighbors(self) + + +
+ +
+   + + + + + + +
out_degree(self)
+ Return the number of outgoing edges.
+ + +
+ +
+   + + + + + + +
out_neighbors(self)
+ Return the neighbors down in-edges (i.e.
+ + +
+ +
+   + + + + + + +
remove_edge_in(self, + edge) + + +
+ +
+   + + + + + + +
remove_edge_out(self, + edge) + + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + data=None) +
(Constructor) +

+
  +
+ +
+x.__init__(...) initializes x; see help(type(x)) for signature
+
+
+
+
Overrides: + object.__init__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

add_edge_in(self, + edge) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

add_edge_out(self, + edge) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

degree(self) +

+
  +
+ +
+Return the number of edges.
+
+
+
+
+
+
+ +
+ +
+ + +
+

get_edges(self, + neighbor=None) +

+
  +
+ +
+Return a copy of all edges. If neighbor is specified, return
+only the edges connected to that node.
+
+
+
+
+
+
+ +
+ +
+ + +
+

get_edges_in(self, + from_=None) +

+
  +
+ +
+Return a copy of the list of the entering edges. If from_
+is specified, return only the nodes coming from that node.
+
+
+
+
+
+
+ +
+ +
+ + +
+

get_edges_out(self, + to_=None) +

+
  +
+ +
+Return a copy of the list of the outgoing edges. If to_
+is specified, return only the nodes going to that node.
+
+
+
+
+
+
+ +
+ +
+ + +
+

in_degree(self) +

+
  +
+ +
+Return the number of entering edges.
+
+
+
+
+
+
+ +
+ +
+ + +
+

in_neighbors(self) +

+
  +
+ +
+Return the neighbors down in-edges (i.e. the parents nodes).
+
+
+
+
+
+
+ +
+ +
+ + +
+

neighbors(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

out_degree(self) +

+
  +
+ +
+Return the number of outgoing edges.
+
+
+
+
+
+
+ +
+ +
+ + +
+

out_neighbors(self) +

+
  +
+ +
+Return the neighbors down in-edges (i.e. the parents nodes).
+
+
+
+
+
+
+ +
+ +
+ + +
+

remove_edge_in(self, + edge) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

remove_edge_out(self, + edge) +

+
  +
+ + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.graph.GraphTopologicalException-class.html b/legacy/api/mdp.graph.GraphTopologicalException-class.html new file mode 100755 index 0000000..031c1aa --- /dev/null +++ b/legacy/api/mdp.graph.GraphTopologicalException-class.html @@ -0,0 +1,198 @@ + + + + + mdp.graph.GraphTopologicalException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package graph :: + Class GraphTopologicalException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class GraphTopologicalException

+
+ +
+
+
+Exception thrown during a topological sort if the graph is cyclical.
+
+
+ + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet-module.html b/legacy/api/mdp.hinet-module.html new file mode 100755 index 0000000..0486fac --- /dev/null +++ b/legacy/api/mdp.hinet-module.html @@ -0,0 +1,528 @@ + + + + + mdp.hinet + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Package hinet

+
+Hierarchical Networks Package.
+
+This package makes it possible to construct graph-like Node structures,
+especially hierarchical networks.
+
+The most important building block is the new Layer node, which works as an
+horizontal version of flow. It encapsulates a list of Nodes, which are trained
+and executed in parallel.
+For example we can take two Nodes with 100 dimensional input to
+construct a layer with a 200 dimensional input. The first half of the input
+data is automatically fed into the first Node, the second half into the second
+Node.
+
+Since one might also want to use Flows (i.e. vertical stacks of Nodes) in a
+Layer, a wrapper class for Nodes is provided.
+The FlowNode class wraps any Flow into a Node, which can then be used like any
+other Node. Together with the Layer this allows you to combine Nodes both
+horizontally and vertically. Thereby one can in principle realize
+any feed-forward network topology.
+
+For a hierarchical networks one might want to route the different parts of the
+data to different Nodes in a Layer in complicated ways. This is done by a
+Switchboard that handles all the routing.
+Defining the routing manually can be quite tedious, so one can derive subclasses
+for special routing situations. One such subclass for 2d image data is provided.
+It maps the data according to rectangular overlapping 2d input areas. One can
+then feed the output into a Layer and each Node will get the correct input.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Classes[hide private]
+
+   + + ChannelSwitchboard
+ Base class for Switchboards in which the data is bundled into channels. +
+   + + CircularOnlineFlowNode
+ CircularOnlineFlowNode wraps a CircularOnlineFlow of OnlineNodes into a single OnlineNode. +
+   + + CloneLayer
+ Layer with a single node instance that is used multiple times. +
+   + + CloneOnlineLayer
+ OnlineLayer with a single node instance that is used multiple times. +
+   + + DoubleRect2dSwitchboard
+ Special 2d Switchboard where each inner point is covered twice. +
+   + + DoubleRect2dSwitchboardException
+ Exception for routing problems in the DoubleRect2dSwitchboard class. +
+   + + DoubleRhomb2dSwitchboard
+ Rectangular lattice switchboard covering a rhombic lattice. +
+   + + DoubleRhomb2dSwitchboardException
+ Exception for routing problems in the DoubleRhomb2dSwitchboard class. +
+   + + FlowNode
+ FlowNode wraps a Flow of Nodes into a single Node. +
+   + + HiNetHTMLVisitor
+ Class to convert a hinet flow to HTML. +
+   + + HiNetXHTMLVisitor
+ Modified converter to create valid XHTML. +
+   + + Layer
+ Layers are nodes which consist of multiple horizontally parallel nodes. +
+   + + NewlineWriteFile
+ Decorator for file-like object. +
+   + + OnlineFlowNode
+ OnlineFlowNode wraps an OnlineFlow of OnlineNodes into a single OnlineNode. +
+   + + OnlineLayer
+ OnlineLayers are nodes which consist of multiple horizontally parallel OnlineNodes. +
+   + + Rectangular2dSwitchboard
+ Switchboard for a 2-dimensional topology. +
+   + + Rectangular2dSwitchboardException
+ Exception for routing problems in the Rectangular2dSwitchboard class. +
+   + + SameInputLayer
+ SameInputLayer is a layer were all nodes receive the full input. +
+   + + SameInputOnlineLayer
+ SameInputOnlineLayer is an OnlineLayer were all nodes receive the full input. +
+   + + Switchboard
+ Does the routing associated with the connections between layers. +
+   + + SwitchboardException
+ Exception for routing problems in the Switchboard class. +
+ + + + + + + + + + + + +
+ + + + + +
Functions[hide private]
+
+   + + + + + + +
get_2d_image_switchboard(image_size_xy)
+ Return a Rectangular2dSwitchboard representing an image.
+ + +
+ +
+   + + + + + + +
show_flow(flow, + filename=None, + title='MDP flow display', + show_size=False, + browser_open=True)
+ Write a flow into a HTML file, open it in the browser and +return the file name.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Variables[hide private]
+
+   + + __package__ = 'mdp.hinet' +
+ + + + + + +
+ + + + + +
Function Details[hide private]
+
+ +
+ +
+ + +
+

get_2d_image_switchboard(image_size_xy) +

+
  +
+ +
+Return a Rectangular2dSwitchboard representing an image.
+
+This can then be used as the prev_switchboard.
+
+
+
+
+
+
+ +
+ +
+ + +
+

show_flow(flow, + filename=None, + title='MDP flow display', + show_size=False, + browser_open=True) +

+
  +
+ +
+Write a flow into a HTML file, open it in the browser and
+return the file name.
+
+flow -- The flow to be shown.
+filename -- Filename for the HTML file to be created. If None
+            a temporary file is created.
+title -- Title for the HTML file.
+show_size -- Show the approximate memory footprint of all nodes.
+browser_open -- If True (default value) then the slideshow file is
+    automatically opened in a webbrowser.
+
+
+
+
+
+
+
+ + + + + + +
+ + + + + +
Variables Details[hide private]
+
+ +
+ +
+

__package__

+ +
+
+
+
Value:
+
+'mdp.hinet'
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.ChannelSwitchboard-class.html b/legacy/api/mdp.hinet.ChannelSwitchboard-class.html new file mode 100755 index 0000000..0dceee9 --- /dev/null +++ b/legacy/api/mdp.hinet.ChannelSwitchboard-class.html @@ -0,0 +1,1168 @@ + + + + + mdp.hinet.ChannelSwitchboard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Class ChannelSwitchboard + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ChannelSwitchboard

+
+ +
+
+
+Base class for Switchboards in which the data is bundled into channels.
+
+The dimensions of the input / output channels are constant.
+
+public attributes (in addition to inherited attributes):
+    out_channel_dim
+    in_channel_dim
+    output_channels
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim, + connections, + out_channel_dim, + in_channel_dim=1)
+ Initialize the switchboard.
+ + +
+ +
+   + + + + + + +
get_out_channel_input(self, + channel)
+ Return the input connections for the given channel index.
+ + +
+ +
+   + + + + + + +
get_out_channel_node(self, + channel)
+ Return a Switchboard that does the routing for a single +output channel.
+ + +
+ +
+   + + + + + + +
get_out_channels_input_channels(self, + channels)
+ Return array of input channel indices for the given output channels.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Switchboard
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in `x`.
+ + +
+ +
+   + + + + + + +
inverse(self, + x)
+ Invert `y`.
+ + +
+ +
+   + + + + + + +
is_invertible(self)
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Switchboard
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim, + connections, + out_channel_dim, + in_channel_dim=1) +
(Constructor) +

+
  +
+ +
+Initialize the switchboard.
+
+connections -- Connection sequence like for a standard switchboard
+    (the indices do not correspond to whole channels, but single
+     connections).
+out_channel_dim -- Number of connections per output channel.
+in_channel_dim -- Number of connections per input channel (default 1).
+    All the components of an input channel are treated equally
+    by the switchboard (i.e., they are routed to the same output
+    channel).
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

get_out_channel_input(self, + channel) +

+
  +
+ +
+Return the input connections for the given channel index.
+
+channel -- index of the requested channel (starting at 0)
+
+
+
+
+
+
+ +
+ +
+ + +
+

get_out_channel_node(self, + channel) +

+
  +
+ +
+Return a Switchboard that does the routing for a single
+output channel.
+
+channel -- index of the requested channel (starting at 0)
+
+
+
+
+
+
+ +
+ +
+ + +
+

get_out_channels_input_channels(self, + channels) +

+
  +
+ +
+Return array of input channel indices for the given output channels.
+
+channels -- Sequence of the requested output channels or a single
+    channel index (i.e. a number).
+
+The returned array contains the indices of all input channels which
+are connected to at least one of the given output channels.
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.CircularOnlineFlowNode-class.html b/legacy/api/mdp.hinet.CircularOnlineFlowNode-class.html new file mode 100755 index 0000000..f5e708c --- /dev/null +++ b/legacy/api/mdp.hinet.CircularOnlineFlowNode-class.html @@ -0,0 +1,1520 @@ + + + + + mdp.hinet.CircularOnlineFlowNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Class CircularOnlineFlowNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class CircularOnlineFlowNode

+
+ +
+
+
+CircularOnlineFlowNode wraps a CircularOnlineFlow of OnlineNodes into a single OnlineNode.
+
+This is handy if you want to use a CircularOnlineFlow where an OnlineNode is required.
+
+Once the node is initialized, the _flow_iterations and the _ignore_input values of a CircularOnlineFlow
+cannot be changed. However, the stored_input can be changed (or set) using 'set_stored_input' method.
+
+All the read-only container slots are supported and are forwarded to the internal flow.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + flow, + input_dim=None, + output_dim=None, + dtype=None, + numx_rng=None)
+ Wrap the given flow into this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self)
+ Return a training sequence containing all training phases.
+ + +
+ +
+   + + + + + + +
_set_numx_rng(self, + rng) + + +
+ +
+   + + + + + + +
_set_training_type_from_flow(self, + flow) + + +
+ +
+   + + + + + + +
get_stored_input(self)
+ Returns the stored input.
+ + +
+ +
+   + + + + + + +
set_stored_input(self, + x)
+ Sets the stored input.
+ + +
+ +
+   + + + + + + +
set_training_type(self, + training_type)
+ Sets the training type
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from FlowNode
+   + + + + + + +
__contains__(self, + item) + + +
+ +
+   + + + + + + +
__getitem__(self, + key) + + +
+ +
+   + + + + + + +
__iter__(self) + + +
+ +
+   + + + + + + +
__len__(self) + + +
+ +
+   + + + + + + +
_execute(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_fix_nodes_dimensions(self)
+ Try to fix the dimensions of the internal nodes.
+ + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a copy of this node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data contained in `x`.
+ + +
+ +
+   + + + + + + +
inverse(self, + x)
+ Invert `y`.
+ + +
+ +
+   + + + + + + +
is_invertible(self)
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable(self)
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
    Inherited from OnlineNode
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_params(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_training_types(self)
+ Return the list of training types supported by this node.
+ + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks. +It can be used when a subclass defines multiple execution methods.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
get_current_train_iteration(self)
+ Return the index of the current training iteration.
+ + +
+ +
+   + + + + + + +
get_numx_rng(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
set_numx_rng(self, + rng)
+ Set numx random number generator. +Note that subclasses should overwrite self._set_numx_rng when needed.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
_check_compatibility(flow) + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from FlowNode
+   + + flow
+ Read-only internal flow property. +
    Inherited from OnlineNode
+   + + _train_seq
+ List of tuples: +
+   + + numx_rng
+ Numpy seeded random number generator +
+   + + training_type
+ Training type (Read only) +
    Inherited from Node
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + flow, + input_dim=None, + output_dim=None, + dtype=None, + numx_rng=None) +
(Constructor) +

+
  +
+ +
+Wrap the given flow into this node.
+
+Pretrained nodes are allowed, but the internal flow should not
+be modified after the FlowNode was created (this will cause problems
+if the training phase structure of the internal nodes changes).
+
+If the node dimensions and dtype are not specified, they will be
+extracted from the internal nodes (late dimension setting is also
+supported).
+
+flow can have crash recovery enabled, but there is no special support
+for it.
+
+
+
+
Overrides: + object.__init__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_check_compatibility(flow) +
Static Method +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_get_train_seq(self) +

+
  +
+ +
+Return a training sequence containing all training phases.
+
+There are three possible train_seqs depending on the values of self._ignore_input
+and self._flow_iterations.
+
+1) self._ignore_input = False, self._flow_iterations = 1
+    This is functionally similar to the standard OnlineFlowNode.
+
+2) self._ignore_input = False, self._flow_iterations > 1
+    For each data point, the OnlineFlowNode trains 1 loop with the
+    data point and 'self._flow_iterations-1' loops with the updating stored input.
+
+3) self._ignore_input = True, self._flow_iterations > 1
+    Input data is ignored, however, for each data point, the flow trains
+    'self._flow_iterations' loops with the updating stored input.
+
+
+
+
Overrides: + Node._get_train_seq +
+
+
+
+ +
+ +
+ + +
+

_set_numx_rng(self, + rng) +

+
  +
+ + +
+
Overrides: + OnlineNode._set_numx_rng +
+
+
+
+ +
+ +
+ + +
+

_set_training_type_from_flow(self, + flow) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

get_stored_input(self) +

+
  +
+ +
+Returns the stored input.
+
+
+
+
+
+
+ +
+ +
+ + +
+

set_stored_input(self, + x) +

+
  +
+ +
+Sets the stored input.
+
+
+
+
+
+
+ +
+ +
+ + +
+

set_training_type(self, + training_type) +

+
  +
+ +
+Sets the training type
+
+
+
+
Overrides: + OnlineNode.set_training_type +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.CloneLayer-class.html b/legacy/api/mdp.hinet.CloneLayer-class.html new file mode 100755 index 0000000..a612a8b --- /dev/null +++ b/legacy/api/mdp.hinet.CloneLayer-class.html @@ -0,0 +1,1289 @@ + + + + + mdp.hinet.CloneLayer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Class CloneLayer + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class CloneLayer

+
+ +
+
+
+Layer with a single node instance that is used multiple times.
+
+The same single node instance is used to build the layer, so
+Clonelayer(node, 3) executes in the same way as Layer([node]*3).
+But Layer([node]*3) would have a problem when closing a training phase,
+so one has to use CloneLayer.
+
+A CloneLayer can be used for weight sharing in the training phase. It might
+be also useful for reducing the memory footprint use during the execution
+phase (since only a single node instance is needed).
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + node, + n_nodes=1, + dtype=None)
+ Setup the layer with the given list of nodes.
+ + +
+ +
+   + + + + + + +
_execute(self, + x, + *args, + **kwargs)
+ Process the data through the internal nodes.
+ + +
+ +
+   + + + + + + +
_inverse(self, + x, + *args, + **kwargs)
+ Combine the inverse of all the internal nodes.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs)
+ Stop training of the internal node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data through the internal nodes.
+ + +
+ +
+   + + + + + + +
inverse(self, + x, + *args, + **kwargs)
+ Combine the inverse of all the internal nodes.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop training of the internal node.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Layer
+   + + + + + + +
__contains__(self, + item) + + +
+ +
+   + + + + + + +
__getitem__(self, + key) + + +
+ +
+   + + + + + + +
__iter__(self) + + +
+ +
+   + + + + + + +
__len__(self) + + +
+ +
+   + + + + + + +
_check_props(self, + dtype)
+ Check the compatibility of the properties of the internal nodes.
+ + +
+ +
+   + + + + + + +
_get_output_dim_from_nodes(self)
+ Calculate the output_dim from the nodes and return it.
+ + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self)
+ Return the train sequence.
+ + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ Make sure that output_dim is set and then perform normal checks.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_train(self, + x, + *args, + **kwargs)
+ Perform single training step by training the internal nodes.
+ + +
+ +
+   + + + + + + +
is_invertible(self)
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable(self)
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Perform single training step by training the internal nodes.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + node, + n_nodes=1, + dtype=None) +
(Constructor) +

+
  +
+ +
+Setup the layer with the given list of nodes.
+
+Keyword arguments:
+node -- Node to be cloned.
+n_nodes -- Number of repetitions/clones of the given node.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x, + *args, + **kwargs) +

+
  +
+ +
+Process the data through the internal nodes.
+
+
+
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_inverse(self, + x, + *args, + **kwargs) +

+
  +
+ +
+Combine the inverse of all the internal nodes.
+
+
+
+
Overrides: + Node._inverse +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + *args, + **kwargs) +

+
  +
+ +
+Stop training of the internal node.
+
+
+
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x, + *args, + **kwargs) +

+
  +
+ +
+Process the data through the internal nodes.
+
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

inverse(self, + x, + *args, + **kwargs) +

+
  +
+ +
+Combine the inverse of all the internal nodes.
+
+
+
+
Overrides: + Node.inverse +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + *args, + **kwargs) +

+
  +
+ +
+Stop training of the internal node.
+
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.CloneOnlineLayer-class.html b/legacy/api/mdp.hinet.CloneOnlineLayer-class.html new file mode 100755 index 0000000..9328860 --- /dev/null +++ b/legacy/api/mdp.hinet.CloneOnlineLayer-class.html @@ -0,0 +1,1346 @@ + + + + + mdp.hinet.CloneOnlineLayer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Class CloneOnlineLayer + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class CloneOnlineLayer

+
+ +
+
+
+OnlineLayer with a single node instance that is used multiple times.
+
+The same single node instance is used to build the layer, so
+CloneOnlineLayer(node, 3) executes in the same way as OnlineLayer([node]*3).
+But OnlineLayer([node]*3) would have a problem when closing a training phase,
+so one has to use CloneOnlineLayer.
+
+An CloneOnlineLayer can be used for weight sharing in the training phase, it might
+be also useful for reducing the memory footprint use during the execution
+phase (since only a single node instance is needed).
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + node, + n_nodes=1, + dtype=None, + numx_rng=None)
+ Setup the layer with the given list of nodes.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from CloneLayer
+   + + + + + + +
_execute(self, + x, + *args, + **kwargs)
+ Process the data through the internal nodes.
+ + +
+ +
+   + + + + + + +
_inverse(self, + x, + *args, + **kwargs)
+ Combine the inverse of all the internal nodes.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs)
+ Stop training of the internal node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data through the internal nodes.
+ + +
+ +
+   + + + + + + +
inverse(self, + x, + *args, + **kwargs)
+ Combine the inverse of all the internal nodes.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop training of the internal node.
+ + +
+ +
    Inherited from OnlineLayer
+   + + + + + + +
_check_compatibility(self, + nodes) + + +
+ +
+   + + + + + + +
_get_train_seq(self)
+ Return the train sequence.
+ + +
+ +
+   + + + + + + +
_set_numx_rng(self, + rng) + + +
+ +
+   + + + + + + +
_set_training_type_from_nodes(self, + nodes) + + +
+ +
+   + + + + + + +
set_training_type(self, + training_type)
+ Sets the training type
+ + +
+ +
    Inherited from Layer
+   + + + + + + +
__contains__(self, + item) + + +
+ +
+   + + + + + + +
__getitem__(self, + key) + + +
+ +
+   + + + + + + +
__iter__(self) + + +
+ +
+   + + + + + + +
__len__(self) + + +
+ +
+   + + + + + + +
_check_props(self, + dtype)
+ Check the compatibility of the properties of the internal nodes.
+ + +
+ +
+   + + + + + + +
_get_output_dim_from_nodes(self)
+ Calculate the output_dim from the nodes and return it.
+ + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ Make sure that output_dim is set and then perform normal checks.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_train(self, + x, + *args, + **kwargs)
+ Perform single training step by training the internal nodes.
+ + +
+ +
+   + + + + + + +
is_invertible(self)
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable(self)
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Perform single training step by training the internal nodes.
+ + +
+ +
    Inherited from OnlineNode
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_params(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_training_types(self)
+ Return the list of training types supported by this node.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
get_current_train_iteration(self)
+ Return the index of the current training iteration.
+ + +
+ +
+   + + + + + + +
get_numx_rng(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
set_numx_rng(self, + rng)
+ Set numx random number generator. +Note that subclasses should overwrite self._set_numx_rng when needed.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from OnlineLayer
+   + + + + + + +
_check_value_type_is_compatible(value) + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from OnlineNode
+   + + _train_seq
+ List of tuples: +
+   + + numx_rng
+ Numpy seeded random number generator +
+   + + training_type
+ Training type (Read only) +
    Inherited from Node
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + node, + n_nodes=1, + dtype=None, + numx_rng=None) +
(Constructor) +

+
  +
+ +
+Setup the layer with the given list of nodes.
+
+Keyword arguments:
+node -- Node to be cloned.
+n_nodes -- Number of repetitions/clones of the given node.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.DoubleRect2dSwitchboard-class.html b/legacy/api/mdp.hinet.DoubleRect2dSwitchboard-class.html new file mode 100755 index 0000000..7123059 --- /dev/null +++ b/legacy/api/mdp.hinet.DoubleRect2dSwitchboard-class.html @@ -0,0 +1,1122 @@ + + + + + mdp.hinet.DoubleRect2dSwitchboard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Class DoubleRect2dSwitchboard + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class DoubleRect2dSwitchboard

+
+ +
+
+
+Special 2d Switchboard where each inner point is covered twice.
+
+First the input is covered with non-overlapping rectangular fields.
+Then the input is covered with fields of the same size that are shifted
+in the x and y direction by half the field size (we call this the
+uneven fields).
+
+Note that the output of this switchboard cannot be interpreted as
+a rectangular grid, because the short rows are shifted. Instead it is
+a rhombic grid (it is not a hexagonal grid because the distances of the
+field centers do not satisfy the necessary relation).
+See http://en.wikipedia.org/wiki/Lattice_(group)
+
+Example for a 6x4 input and a field size of 2 in both directions:
+
+long row fields:
+
+1 1 2 2 3 3
+1 1 2 2 3 3
+4 4 5 5 6 6
+4 4 5 5 6 6
+
+short row fields:
+
+* * * * * *
+* 7 7 8 8 *
+* 7 7 8 8 *
+* * * * * *
+
+Note that the short row channels come after all the long row connections in
+the connections sequence.
+
+public attributes (in addition to init arguments and inherited attributes):
+    unused_channels_xy
+    long_out_channels_xy -- Output channels in the long rows.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + in_channels_xy, + field_channels_xy, + in_channel_dim=1, + ignore_cover=False)
+ Calculate the connections.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ChannelSwitchboard
+   + + + + + + +
get_out_channel_input(self, + channel)
+ Return the input connections for the given channel index.
+ + +
+ +
+   + + + + + + +
get_out_channel_node(self, + channel)
+ Return a Switchboard that does the routing for a single +output channel.
+ + +
+ +
+   + + + + + + +
get_out_channels_input_channels(self, + channels)
+ Return array of input channel indices for the given output channels.
+ + +
+ +
    Inherited from Switchboard
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in `x`.
+ + +
+ +
+   + + + + + + +
inverse(self, + x)
+ Invert `y`.
+ + +
+ +
+   + + + + + + +
is_invertible(self)
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Switchboard
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + in_channels_xy, + field_channels_xy, + in_channel_dim=1, + ignore_cover=False) +
(Constructor) +

+
  +
+ +
+Calculate the connections.
+
+Keyword arguments:
+in_channels_xy -- 2-Tuple with number of input channels in the x- and
+    y-direction (or a single number for both). This has to be
+    specified, since the actual input is only one 1d array.
+field_channels_xy -- 2-Tuple with number of channels in each field in
+    the x- and y-direction (or a single number for both).
+    Must be even numbers.
+in_channel_dim -- Number of connections per input channel
+ignore_cover -- Boolean value defines if an
+    Rectangular2dSwitchboardException is raised when the fields do not
+    cover all input channels. Set this to True if you are willing to
+    risk loosing input channels at the border.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.DoubleRect2dSwitchboardException-class.html b/legacy/api/mdp.hinet.DoubleRect2dSwitchboardException-class.html new file mode 100755 index 0000000..1baf3ce --- /dev/null +++ b/legacy/api/mdp.hinet.DoubleRect2dSwitchboardException-class.html @@ -0,0 +1,198 @@ + + + + + mdp.hinet.DoubleRect2dSwitchboardException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Class DoubleRect2dSwitchboardException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class DoubleRect2dSwitchboardException

+
+ +
+
+
+Exception for routing problems in the DoubleRect2dSwitchboard class.
+
+
+ + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.DoubleRhomb2dSwitchboard-class.html b/legacy/api/mdp.hinet.DoubleRhomb2dSwitchboard-class.html new file mode 100755 index 0000000..e852d8e --- /dev/null +++ b/legacy/api/mdp.hinet.DoubleRhomb2dSwitchboard-class.html @@ -0,0 +1,1101 @@ + + + + + mdp.hinet.DoubleRhomb2dSwitchboard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Class DoubleRhomb2dSwitchboard + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class DoubleRhomb2dSwitchboard

+
+ +
+
+
+Rectangular lattice switchboard covering a rhombic lattice.
+
+All inner points of the rhombic lattice are covered twice. The rectangular
+fields are rotated by 45 degree.
+
+We assume that both the first and last row is a long row, e.g.
+
+*   *   *   *
+  *   *   *
+*   *   *   *
+  *   *   *
+*   *   *   *
+
+The incoming data is expected to contain the long rows first, then
+the short rows.
+
+The alignment of the first field is chosen to minimize cutaway.
+
+public attributes (in addition to init arguments and inherited attributes):
+    out_channels_xy
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + long_in_channels_xy, + diag_field_channels, + in_channel_dim=1)
+ Calculate the connections.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ChannelSwitchboard
+   + + + + + + +
get_out_channel_input(self, + channel)
+ Return the input connections for the given channel index.
+ + +
+ +
+   + + + + + + +
get_out_channel_node(self, + channel)
+ Return a Switchboard that does the routing for a single +output channel.
+ + +
+ +
+   + + + + + + +
get_out_channels_input_channels(self, + channels)
+ Return array of input channel indices for the given output channels.
+ + +
+ +
    Inherited from Switchboard
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in `x`.
+ + +
+ +
+   + + + + + + +
inverse(self, + x)
+ Invert `y`.
+ + +
+ +
+   + + + + + + +
is_invertible(self)
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Switchboard
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + long_in_channels_xy, + diag_field_channels, + in_channel_dim=1) +
(Constructor) +

+
  +
+ +
+Calculate the connections.
+
+Note that the incoming data will be interpreted as a rhombic grid,
+as it is produced by DoubleRect2dSwitchboard.
+
+Keyword arguments:
+long_in_channels_xy -- 2-Tuple with number of long input channels in
+    the x- and y-direction (or a single number for both).
+diag_field_channels -- Field edge size (before the rotation).
+in_channel_dim -- Number of connections per input channel
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.DoubleRhomb2dSwitchboardException-class.html b/legacy/api/mdp.hinet.DoubleRhomb2dSwitchboardException-class.html new file mode 100755 index 0000000..aa1e543 --- /dev/null +++ b/legacy/api/mdp.hinet.DoubleRhomb2dSwitchboardException-class.html @@ -0,0 +1,198 @@ + + + + + mdp.hinet.DoubleRhomb2dSwitchboardException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Class DoubleRhomb2dSwitchboardException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class DoubleRhomb2dSwitchboardException

+
+ +
+
+
+Exception for routing problems in the DoubleRhomb2dSwitchboard class.
+
+
+ + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.FlowNode-class.html b/legacy/api/mdp.hinet.FlowNode-class.html new file mode 100755 index 0000000..097d4b9 --- /dev/null +++ b/legacy/api/mdp.hinet.FlowNode-class.html @@ -0,0 +1,1570 @@ + + + + + mdp.hinet.FlowNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Class FlowNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class FlowNode

+
+ +
+
+
+FlowNode wraps a Flow of Nodes into a single Node.
+
+This is handy if you want to use a flow where a Node is required.
+Additional args and kwargs for train and execute are supported.
+
+Note that for nodes in the internal flow the intermediate training phases
+will generally be closed, e.g. a CheckpointSaveFunction should not expect
+these training  phases to be left open.
+
+All the read-only container slots are supported and are forwarded to the
+internal flow.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__contains__(self, + item) + + +
+ +
+   + + + + + + +
__getitem__(self, + key) + + +
+ +
+   + + + + + + +
__init__(self, + flow, + input_dim=None, + output_dim=None, + dtype=None)
+ Wrap the given flow into this node.
+ + +
+ +
+   + + + + + + +
__iter__(self) + + +
+ +
+   + + + + + + +
__len__(self) + + +
+ +
+   + + + + + + +
_execute(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_fix_nodes_dimensions(self)
+ Try to fix the dimensions of the internal nodes.
+ + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self)
+ Return a training sequence containing all training phases.
+ + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a copy of this node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data contained in `x`.
+ + +
+ +
+   + + + + + + +
inverse(self, + x)
+ Invert `y`.
+ + +
+ +
+   + + + + + + +
is_invertible(self)
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable(self)
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+   + + flow
+ Read-only internal flow property. +
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__contains__(self, + item) +
(In operator) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__getitem__(self, + key) +
(Indexing operator) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__init__(self, + flow, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ +
+Wrap the given flow into this node.
+
+Pretrained nodes are allowed, but the internal flow should not
+be modified after the FlowNode was created (this will cause problems
+if the training phase structure of the internal nodes changes).
+
+If the node dimensions and dtype are not specified, they will be
+extracted from the internal nodes (late dimension setting is also
+supported).
+
+flow can have crash recovery enabled, but there is no special support
+for it.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

__iter__(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__len__(self) +
(Length operator) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x, + *args, + **kwargs) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_fix_nodes_dimensions(self) +

+
  +
+ +
+Try to fix the dimensions of the internal nodes.
+
+
+
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ +

Return the list of dtypes supported by this node.

+

The types can be specified in any format allowed by numpy.dtype.

+
+
Overrides: + Node._get_supported_dtypes +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_get_train_seq(self) +

+
  +
+ +
+Return a training sequence containing all training phases.
+
+
+
+
Overrides: + Node._get_train_seq +
+
+
+
+ +
+ +
+ + +
+

_inverse(self, + x) +

+
  +
+ + +
+
Overrides: + Node._inverse +
+
+
+
+ +
+ +
+ + +
+

_set_dtype(self, + t) +

+
  +
+ + +
+
Overrides: + Node._set_dtype +
+
+
+
+ +
+ +
+ + +
+

_set_input_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_input_dim +
+
+
+
+ +
+ +
+ + +
+

_set_output_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_output_dim +
+
+
+
+ +
+ +
+ + +
+

copy(self, + protocol=None) +

+
  +
+ +
+Return a copy of this node.
+
+The copy call is delegated to the internal node, which allows the use
+of custom copy methods for special nodes.
+
+The protocol parameter should not be used.
+
+
+
+
Parameters:
+
    +
  • protocol - the pickle protocol (deprecated).
  • +
+
Overrides: + Node.copy +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x, + *args, + **kwargs) +

+
  +
+ +
+Process the data contained in `x`.
+
+If the object is still in the training phase, the function
+`stop_training` will be called.
+`x` is a matrix having different variables on different columns
+and observations on the rows.
+
+By default, subclasses should overwrite `_execute` to implement
+their execution phase. The docstring of the `_execute` method
+overwrites this docstring.
+
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

inverse(self, + x) +

+
  +
+ +
+Invert `y`.
+
+If the node is invertible, compute the input ``x`` such that
+``y = execute(x)``.
+
+By default, subclasses should overwrite `_inverse` to implement
+their `inverse` function. The docstring of the `inverse` method
+overwrites this docstring.
+
+
+
+
Overrides: + Node.inverse +
+
+
+
+ +
+ +
+ + +
+

is_invertible(self) +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable(self) +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Overrides: + Node.is_trainable +
(inherited documentation)
+ +
+
+
+
+ + + + + + +
+ + + + + +
Property Details[hide private]
+
+ +
+ +
+

flow

+
+Read-only internal flow property.
+
+In general the internal flow should not be modified (see __init__
+for more details).
+
+
+
+
Get Method:
+
unreachable.flow(self) + - Read-only internal flow property. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.Layer-class.html b/legacy/api/mdp.hinet.Layer-class.html new file mode 100755 index 0000000..9853377 --- /dev/null +++ b/legacy/api/mdp.hinet.Layer-class.html @@ -0,0 +1,1624 @@ + + + + + mdp.hinet.Layer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Class Layer + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class Layer

+
+ +
+
+
+Layers are nodes which consist of multiple horizontally parallel nodes.
+
+The incoming data is split up according to the dimensions of the internal
+nodes. For example if the first node has an input_dim of 50 and the second
+node 100 then the layer will have an input_dim of 150. The first node gets
+x[:,:50], the second one x[:,50:].
+
+Any additional arguments are forwarded unaltered to each node.
+Warning: This might change in the next release (2.5).
+
+Since they are nodes themselves layers can be stacked in a flow (e.g. to
+build a layered network). If one would like to use flows instead of nodes
+inside of a layer one can use a FlowNode.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__contains__(self, + item) + + +
+ +
+   + + + + + + +
__getitem__(self, + key) + + +
+ +
+   + + + + + + +
__init__(self, + nodes, + dtype=None)
+ Setup the layer with the given list of nodes.
+ + +
+ +
+   + + + + + + +
__iter__(self) + + +
+ +
+   + + + + + + +
__len__(self) + + +
+ +
+   + + + + + + +
_check_props(self, + dtype)
+ Check the compatibility of the properties of the internal nodes.
+ + +
+ +
+   + + + + + + +
_execute(self, + x, + *args, + **kwargs)
+ Process the data through the internal nodes.
+ + +
+ +
+   + + + + + + +
_get_output_dim_from_nodes(self)
+ Calculate the output_dim from the nodes and return it.
+ + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self)
+ Return the train sequence.
+ + +
+ +
+   + + + + + + +
_inverse(self, + x, + *args, + **kwargs)
+ Combine the inverse of all the internal nodes.
+ + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ Make sure that output_dim is set and then perform normal checks.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs)
+ Stop training of the internal nodes.
+ + +
+ +
+   + + + + + + +
_train(self, + x, + *args, + **kwargs)
+ Perform single training step by training the internal nodes.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data through the internal nodes.
+ + +
+ +
+   + + + + + + +
inverse(self, + x, + *args, + **kwargs)
+ Combine the inverse of all the internal nodes.
+ + +
+ +
+   + + + + + + +
is_invertible(self)
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable(self)
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop training of the internal nodes.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Perform single training step by training the internal nodes.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__contains__(self, + item) +
(In operator) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__getitem__(self, + key) +
(Indexing operator) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__init__(self, + nodes, + dtype=None) +
(Constructor) +

+
  +
+ +
+Setup the layer with the given list of nodes.
+
+The input and output dimensions for the nodes must be already set
+(the output dimensions for simplicity reasons). The training phases for
+the nodes are allowed to differ.
+
+Keyword arguments:
+nodes -- List of the nodes to be used.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

__iter__(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__len__(self) +
(Length operator) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_check_props(self, + dtype) +

+
  +
+ +
+Check the compatibility of the properties of the internal nodes.
+
+Return the found dtype and check the dimensions.
+
+dtype -- The specified layer dtype.
+
+
+
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x, + *args, + **kwargs) +

+
  +
+ +
+Process the data through the internal nodes.
+
+
+
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_output_dim_from_nodes(self) +

+
  +
+ +
+Calculate the output_dim from the nodes and return it.
+
+If the output_dim of a node is not set the None is returned.
+
+
+
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ +

Return the list of dtypes supported by this node.

+

The types can be specified in any format allowed by numpy.dtype.

+
+
Overrides: + Node._get_supported_dtypes +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_get_train_seq(self) +

+
  +
+ +
+Return the train sequence.
+
+The length is set by the node with maximum length.
+
+
+
+
Overrides: + Node._get_train_seq +
+
+
+
+ +
+ +
+ + +
+

_inverse(self, + x, + *args, + **kwargs) +

+
  +
+ +
+Combine the inverse of all the internal nodes.
+
+
+
+
Overrides: + Node._inverse +
+
+
+
+ +
+ +
+ + +
+

_pre_execution_checks(self, + x) +

+
  +
+ +
+Make sure that output_dim is set and then perform normal checks.
+
+
+
+
Overrides: + Node._pre_execution_checks +
+
+
+
+ +
+ +
+ + +
+

_set_dtype(self, + t) +

+
  +
+ + +
+
Overrides: + Node._set_dtype +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + *args, + **kwargs) +

+
  +
+ +
+Stop training of the internal nodes.
+
+
+
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x, + *args, + **kwargs) +

+
  +
+ +
+Perform single training step by training the internal nodes.
+
+
+
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x, + *args, + **kwargs) +

+
  +
+ +
+Process the data through the internal nodes.
+
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

inverse(self, + x, + *args, + **kwargs) +

+
  +
+ +
+Combine the inverse of all the internal nodes.
+
+
+
+
Overrides: + Node.inverse +
+
+
+
+ +
+ +
+ + +
+

is_invertible(self) +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable(self) +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Overrides: + Node.is_trainable +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

stop_training(self, + *args, + **kwargs) +

+
  +
+ +
+Stop training of the internal nodes.
+
+
+
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x, + *args, + **kwargs) +

+
  +
+ +
+Perform single training step by training the internal nodes.
+
+
+
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.OnlineFlowNode-class.html b/legacy/api/mdp.hinet.OnlineFlowNode-class.html new file mode 100755 index 0000000..c9ea5e5 --- /dev/null +++ b/legacy/api/mdp.hinet.OnlineFlowNode-class.html @@ -0,0 +1,1440 @@ + + + + + mdp.hinet.OnlineFlowNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Class OnlineFlowNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class OnlineFlowNode

+
+ +
+
+
+OnlineFlowNode wraps an OnlineFlow of OnlineNodes into a single OnlineNode.
+
+This is handy if you want to use an OnlineFlow where an OnlineNode is required.
+Additional args and kwargs for train and execute are supported.
+
+An OnlineFlowNode requires that all the nodes of the input onlineflow to be either:
+(a) OnlineNodes (eg. OnlineCenteringNode(), IncSFANode(), etc.),
+ or
+(b) trained Nodes (eg. a fully trained PCANode with no remaining training phases. A trained Node's
+node.is_trainable() returns True and node.is_training() returns False.),
+ or
+(c) non-trainable Nodes (eg. QuadraticExpansionNode(). A non-trainable Node's node.is_trainable()
+returns False and node.is_training() returns False.).
+
+OnlineFlowNode does not support an onlineflow with a terminal trainable Node that is not
+an OnlineNode (see doc string of OnlineFlow for reference).
+
+All the read-only container slots are supported and are forwarded to the internal flow.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + flow, + input_dim=None, + output_dim=None, + dtype=None, + numx_rng=None)
+ Wrap the given flow into this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self)
+ Return a training sequence containing all training phases.
+ + +
+ +
+   + + + + + + +
_set_numx_rng(self, + rng) + + +
+ +
+   + + + + + + +
_set_training_type_from_flow(self, + flow) + + +
+ +
+   + + + + + + +
set_training_type(self, + training_type)
+ Sets the training type
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from FlowNode
+   + + + + + + +
__contains__(self, + item) + + +
+ +
+   + + + + + + +
__getitem__(self, + key) + + +
+ +
+   + + + + + + +
__iter__(self) + + +
+ +
+   + + + + + + +
__len__(self) + + +
+ +
+   + + + + + + +
_execute(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_fix_nodes_dimensions(self)
+ Try to fix the dimensions of the internal nodes.
+ + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a copy of this node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data contained in `x`.
+ + +
+ +
+   + + + + + + +
inverse(self, + x)
+ Invert `y`.
+ + +
+ +
+   + + + + + + +
is_invertible(self)
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable(self)
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
    Inherited from OnlineNode
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_params(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_training_types(self)
+ Return the list of training types supported by this node.
+ + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks. +It can be used when a subclass defines multiple execution methods.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
get_current_train_iteration(self)
+ Return the index of the current training iteration.
+ + +
+ +
+   + + + + + + +
get_numx_rng(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
set_numx_rng(self, + rng)
+ Set numx random number generator. +Note that subclasses should overwrite self._set_numx_rng when needed.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
_check_compatibility(flow) + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from FlowNode
+   + + flow
+ Read-only internal flow property. +
    Inherited from OnlineNode
+   + + _train_seq
+ List of tuples: +
+   + + numx_rng
+ Numpy seeded random number generator +
+   + + training_type
+ Training type (Read only) +
    Inherited from Node
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + flow, + input_dim=None, + output_dim=None, + dtype=None, + numx_rng=None) +
(Constructor) +

+
  +
+ +
+Wrap the given flow into this node.
+
+Pretrained nodes are allowed, but the internal flow should not
+be modified after the FlowNode was created (this will cause problems
+if the training phase structure of the internal nodes changes).
+
+If the node dimensions and dtype are not specified, they will be
+extracted from the internal nodes (late dimension setting is also
+supported).
+
+flow can have crash recovery enabled, but there is no special support
+for it.
+
+
+
+
Overrides: + object.__init__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_check_compatibility(flow) +
Static Method +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_get_train_seq(self) +

+
  +
+ +
+Return a training sequence containing all training phases.
+
+Unlike thw FlowNode, the OnlineFlowNode requires only
+one train_seq item for each node. Each node's train function
+takes care of its multiple train phases (if any).
+
+
+
+
Overrides: + Node._get_train_seq +
+
+
+
+ +
+ +
+ + +
+

_set_numx_rng(self, + rng) +

+
  +
+ + +
+
Overrides: + OnlineNode._set_numx_rng +
+
+
+
+ +
+ +
+ + +
+

_set_training_type_from_flow(self, + flow) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

set_training_type(self, + training_type) +

+
  +
+ +
+Sets the training type
+
+
+
+
Overrides: + OnlineNode.set_training_type +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.OnlineLayer-class.html b/legacy/api/mdp.hinet.OnlineLayer-class.html new file mode 100755 index 0000000..017445c --- /dev/null +++ b/legacy/api/mdp.hinet.OnlineLayer-class.html @@ -0,0 +1,1479 @@ + + + + + mdp.hinet.OnlineLayer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Class OnlineLayer + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class OnlineLayer

+
+ +
+
+
+OnlineLayers are nodes which consist of multiple horizontally parallel OnlineNodes.
+OnlineLayer also supports trained or non-trainable Nodes.
+
+Reference:
+A trained Node: node.is_trainable() returns True, node.is_training() returns False.
+A non-trainable Node: node.is_trainable() returns False, node.is_training() returns False.
+
+The incoming data is split up according to the dimensions of the internal
+nodes. For example if the first node has an input_dim of 50 and the second
+node 100 then the layer will have an input_dim of 150. The first node gets
+x[:,:50], the second one x[:,50:].
+
+Any additional arguments are forwarded unaltered to each node.
+
+Since they are nodes themselves layers can be stacked in a flow (e.g. to
+build a layered network). If one would like to use flows instead of nodes
+inside of a layer one can use flownodes.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + nodes, + dtype=None, + numx_rng=None)
+ Setup the layer with the given list of nodes.
+ + +
+ +
+   + + + + + + +
_check_compatibility(self, + nodes) + + +
+ +
+   + + + + + + +
_get_train_seq(self)
+ Return the train sequence.
+ + +
+ +
+   + + + + + + +
_set_numx_rng(self, + rng) + + +
+ +
+   + + + + + + +
_set_training_type_from_nodes(self, + nodes) + + +
+ +
+   + + + + + + +
set_training_type(self, + training_type)
+ Sets the training type
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Layer
+   + + + + + + +
__contains__(self, + item) + + +
+ +
+   + + + + + + +
__getitem__(self, + key) + + +
+ +
+   + + + + + + +
__iter__(self) + + +
+ +
+   + + + + + + +
__len__(self) + + +
+ +
+   + + + + + + +
_check_props(self, + dtype)
+ Check the compatibility of the properties of the internal nodes.
+ + +
+ +
+   + + + + + + +
_execute(self, + x, + *args, + **kwargs)
+ Process the data through the internal nodes.
+ + +
+ +
+   + + + + + + +
_get_output_dim_from_nodes(self)
+ Calculate the output_dim from the nodes and return it.
+ + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_inverse(self, + x, + *args, + **kwargs)
+ Combine the inverse of all the internal nodes.
+ + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ Make sure that output_dim is set and then perform normal checks.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs)
+ Stop training of the internal nodes.
+ + +
+ +
+   + + + + + + +
_train(self, + x, + *args, + **kwargs)
+ Perform single training step by training the internal nodes.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data through the internal nodes.
+ + +
+ +
+   + + + + + + +
inverse(self, + x, + *args, + **kwargs)
+ Combine the inverse of all the internal nodes.
+ + +
+ +
+   + + + + + + +
is_invertible(self)
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable(self)
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop training of the internal nodes.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Perform single training step by training the internal nodes.
+ + +
+ +
    Inherited from OnlineNode
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_params(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_training_types(self)
+ Return the list of training types supported by this node.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
get_current_train_iteration(self)
+ Return the index of the current training iteration.
+ + +
+ +
+   + + + + + + +
get_numx_rng(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
set_numx_rng(self, + rng)
+ Set numx random number generator. +Note that subclasses should overwrite self._set_numx_rng when needed.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
_check_value_type_is_compatible(value) + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from OnlineNode
+   + + _train_seq
+ List of tuples: +
+   + + numx_rng
+ Numpy seeded random number generator +
+   + + training_type
+ Training type (Read only) +
    Inherited from Node
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + nodes, + dtype=None, + numx_rng=None) +
(Constructor) +

+
  +
+ +
+Setup the layer with the given list of nodes.
+
+The input and output dimensions for the nodes must be already set
+(the output dimensions for simplicity reasons).
+
+Keyword arguments:
+nodes -- List of the nodes to be used.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_check_compatibility(self, + nodes) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_check_value_type_is_compatible(value) +
Static Method +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_get_train_seq(self) +

+
  +
+ +
+Return the train sequence.
+Use OnlineNode train_seq not Layer's
+
+
+
+
Overrides: + Node._get_train_seq +
+
+
+
+ +
+ +
+ + +
+

_set_numx_rng(self, + rng) +

+
  +
+ + +
+
Overrides: + OnlineNode._set_numx_rng +
+
+
+
+ +
+ +
+ + +
+

_set_training_type_from_nodes(self, + nodes) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

set_training_type(self, + training_type) +

+
  +
+ +
+Sets the training type
+
+
+
+
Overrides: + OnlineNode.set_training_type +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.Rectangular2dSwitchboard-class.html b/legacy/api/mdp.hinet.Rectangular2dSwitchboard-class.html new file mode 100755 index 0000000..3592710 --- /dev/null +++ b/legacy/api/mdp.hinet.Rectangular2dSwitchboard-class.html @@ -0,0 +1,1107 @@ + + + + + mdp.hinet.Rectangular2dSwitchboard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Class Rectangular2dSwitchboard + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class Rectangular2dSwitchboard

+
+ +
+
+
+Switchboard for a 2-dimensional topology.
+
+This is a specialized version of SwitchboardLayer that makes it easy to
+implement connection topologies which are based on a 2-dimensional network
+layers.
+
+The input connections are assumed to be grouped into so called channels,
+which are considered as lying in a two dimensional rectangular plane.
+Each output channel corresponds to a 2d rectangular field in the
+input plane. The fields can overlap.
+
+The coordinates follow the standard image convention (see the above
+CoordinateTranslator class).
+
+public attributes (in addition to init arguments and inherited attributes):
+    unused_channels_xy
+    out_channels_xy
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + in_channels_xy, + field_channels_xy, + field_spacing_xy=1, + in_channel_dim=1, + ignore_cover=False)
+ Calculate the connections.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ChannelSwitchboard
+   + + + + + + +
get_out_channel_input(self, + channel)
+ Return the input connections for the given channel index.
+ + +
+ +
+   + + + + + + +
get_out_channel_node(self, + channel)
+ Return a Switchboard that does the routing for a single +output channel.
+ + +
+ +
+   + + + + + + +
get_out_channels_input_channels(self, + channels)
+ Return array of input channel indices for the given output channels.
+ + +
+ +
    Inherited from Switchboard
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in `x`.
+ + +
+ +
+   + + + + + + +
inverse(self, + x)
+ Invert `y`.
+ + +
+ +
+   + + + + + + +
is_invertible(self)
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Switchboard
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + in_channels_xy, + field_channels_xy, + field_spacing_xy=1, + in_channel_dim=1, + ignore_cover=False) +
(Constructor) +

+
  +
+ +
+Calculate the connections.
+
+Keyword arguments:
+in_channels_xy -- 2-Tuple with number of input channels in the x- and
+    y-direction (or a single number for both). This has to be
+    specified, since the actual input is only one 1d array.
+field_channels_xy -- 2-Tuple with number of channels in each field in
+    the x- and y-direction (or a single number for both).
+field_spacing_xy -- 2-Tuple with offset between two fields in the x-
+    and y-direction (or a single number for both).
+in_channel_dim -- Number of connections per input channel.
+ignore_cover -- Boolean value defines if an
+    Rectangular2dSwitchboardException is raised when the fields do not
+    cover all input channels. Set this to True if you are willing to
+    risk loosing input channels at the border.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.Rectangular2dSwitchboardException-class.html b/legacy/api/mdp.hinet.Rectangular2dSwitchboardException-class.html new file mode 100755 index 0000000..8c73308 --- /dev/null +++ b/legacy/api/mdp.hinet.Rectangular2dSwitchboardException-class.html @@ -0,0 +1,198 @@ + + + + + mdp.hinet.Rectangular2dSwitchboardException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Class Rectangular2dSwitchboardException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class Rectangular2dSwitchboardException

+
+ +
+
+
+Exception for routing problems in the Rectangular2dSwitchboard class.
+
+
+ + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.SameInputLayer-class.html b/legacy/api/mdp.hinet.SameInputLayer-class.html new file mode 100755 index 0000000..b95e469 --- /dev/null +++ b/legacy/api/mdp.hinet.SameInputLayer-class.html @@ -0,0 +1,1297 @@ + + + + + mdp.hinet.SameInputLayer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Class SameInputLayer + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SameInputLayer

+
+ +
+
+
+SameInputLayer is a layer were all nodes receive the full input.
+
+So instead of splitting the input according to node dimensions, all nodes
+receive the complete input data.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + nodes, + dtype=None)
+ Setup the layer with the given list of nodes.
+ + +
+ +
+   + + + + + + +
_execute(self, + x, + *args, + **kwargs)
+ Process the data through the internal nodes.
+ + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ Make sure that output_dim is set and then perform nromal checks.
+ + +
+ +
+   + + + + + + +
_train(self, + x, + *args, + **kwargs)
+ Perform single training step by training the internal nodes.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data through the internal nodes.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Perform single training step by training the internal nodes.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Layer
+   + + + + + + +
__contains__(self, + item) + + +
+ +
+   + + + + + + +
__getitem__(self, + key) + + +
+ +
+   + + + + + + +
__iter__(self) + + +
+ +
+   + + + + + + +
__len__(self) + + +
+ +
+   + + + + + + +
_check_props(self, + dtype)
+ Check the compatibility of the properties of the internal nodes.
+ + +
+ +
+   + + + + + + +
_get_output_dim_from_nodes(self)
+ Calculate the output_dim from the nodes and return it.
+ + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self)
+ Return the train sequence.
+ + +
+ +
+   + + + + + + +
_inverse(self, + x, + *args, + **kwargs)
+ Combine the inverse of all the internal nodes.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs)
+ Stop training of the internal nodes.
+ + +
+ +
+   + + + + + + +
inverse(self, + x, + *args, + **kwargs)
+ Combine the inverse of all the internal nodes.
+ + +
+ +
+   + + + + + + +
is_trainable(self)
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop training of the internal nodes.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + nodes, + dtype=None) +
(Constructor) +

+
  +
+ +
+Setup the layer with the given list of nodes.
+
+The input dimensions for the nodes must all be equal, the output
+dimensions can differ (but must be set as well for simplicity reasons).
+
+Keyword arguments:
+nodes -- List of the nodes to be used.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x, + *args, + **kwargs) +

+
  +
+ +
+Process the data through the internal nodes.
+
+
+
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_pre_execution_checks(self, + x) +

+
  +
+ +
+Make sure that output_dim is set and then perform nromal checks.
+
+
+
+
Overrides: + Node._pre_execution_checks +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x, + *args, + **kwargs) +

+
  +
+ +
+Perform single training step by training the internal nodes.
+
+
+
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x, + *args, + **kwargs) +

+
  +
+ +
+Process the data through the internal nodes.
+
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

train(self, + x, + *args, + **kwargs) +

+
  +
+ +
+Perform single training step by training the internal nodes.
+
+
+
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.SameInputOnlineLayer-class.html b/legacy/api/mdp.hinet.SameInputOnlineLayer-class.html new file mode 100755 index 0000000..e5c7804 --- /dev/null +++ b/legacy/api/mdp.hinet.SameInputOnlineLayer-class.html @@ -0,0 +1,1343 @@ + + + + + mdp.hinet.SameInputOnlineLayer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Class SameInputOnlineLayer + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SameInputOnlineLayer

+
+ +
+
+
+SameInputOnlineLayer is an OnlineLayer were all nodes receive the full input.
+
+So instead of splitting the input according to node dimensions, all nodes
+receive the complete input data.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + nodes, + dtype=None, + numx_rng=None)
+ Setup the layer with the given list of nodes.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from SameInputLayer
+   + + + + + + +
_execute(self, + x, + *args, + **kwargs)
+ Process the data through the internal nodes.
+ + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ Make sure that output_dim is set and then perform nromal checks.
+ + +
+ +
+   + + + + + + +
_train(self, + x, + *args, + **kwargs)
+ Perform single training step by training the internal nodes.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data through the internal nodes.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Perform single training step by training the internal nodes.
+ + +
+ +
    Inherited from OnlineLayer
+   + + + + + + +
_check_compatibility(self, + nodes) + + +
+ +
+   + + + + + + +
_get_train_seq(self)
+ Return the train sequence.
+ + +
+ +
+   + + + + + + +
_set_numx_rng(self, + rng) + + +
+ +
+   + + + + + + +
_set_training_type_from_nodes(self, + nodes) + + +
+ +
+   + + + + + + +
set_training_type(self, + training_type)
+ Sets the training type
+ + +
+ +
    Inherited from Layer
+   + + + + + + +
__contains__(self, + item) + + +
+ +
+   + + + + + + +
__getitem__(self, + key) + + +
+ +
+   + + + + + + +
__iter__(self) + + +
+ +
+   + + + + + + +
__len__(self) + + +
+ +
+   + + + + + + +
_check_props(self, + dtype)
+ Check the compatibility of the properties of the internal nodes.
+ + +
+ +
+   + + + + + + +
_get_output_dim_from_nodes(self)
+ Calculate the output_dim from the nodes and return it.
+ + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_inverse(self, + x, + *args, + **kwargs)
+ Combine the inverse of all the internal nodes.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs)
+ Stop training of the internal nodes.
+ + +
+ +
+   + + + + + + +
inverse(self, + x, + *args, + **kwargs)
+ Combine the inverse of all the internal nodes.
+ + +
+ +
+   + + + + + + +
is_trainable(self)
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop training of the internal nodes.
+ + +
+ +
    Inherited from OnlineNode
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_params(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_training_types(self)
+ Return the list of training types supported by this node.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
get_current_train_iteration(self)
+ Return the index of the current training iteration.
+ + +
+ +
+   + + + + + + +
get_numx_rng(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
set_numx_rng(self, + rng)
+ Set numx random number generator. +Note that subclasses should overwrite self._set_numx_rng when needed.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from SameInputLayer
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
    Inherited from OnlineLayer
+   + + + + + + +
_check_value_type_is_compatible(value) + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from OnlineNode
+   + + _train_seq
+ List of tuples: +
+   + + numx_rng
+ Numpy seeded random number generator +
+   + + training_type
+ Training type (Read only) +
    Inherited from Node
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + nodes, + dtype=None, + numx_rng=None) +
(Constructor) +

+
  +
+ +
+Setup the layer with the given list of nodes.
+
+The input dimensions for the nodes must all be equal, the output
+dimensions can differ (but must be set as well for simplicity reasons).
+
+Keyword arguments:
+nodes -- List of the nodes to be used.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.Switchboard-class.html b/legacy/api/mdp.hinet.Switchboard-class.html new file mode 100755 index 0000000..bc35a95 --- /dev/null +++ b/legacy/api/mdp.hinet.Switchboard-class.html @@ -0,0 +1,1212 @@ + + + + + mdp.hinet.Switchboard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Class Switchboard + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class Switchboard

+
+ +
+
+
+Does the routing associated with the connections between layers.
+
+It may be directly used as a layer/node, routing all the data at once. If
+the routing/mapping is not injective the processed data may be quite large
+and probably contains many redundant copies of the input data.
+So is this case one may instead use nodes for individual output
+channels and put each in a MultiNode.
+
+SwitchboardLayer is the most general version of a switchboard layer, since
+there is no imposed rule for the connection topology. For practical
+applications should often derive more specialized classes.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim, + connections)
+ Create a generic switchboard.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in `x`.
+ + +
+ +
+   + + + + + + +
inverse(self, + x)
+ Invert `y`.
+ + +
+ +
+   + + + + + + +
is_invertible(self)
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim, + connections) +
(Constructor) +

+
  +
+ +
+Create a generic switchboard.
+
+The input and output dimension as well as dtype have to be fixed
+at initialization time.
+
+Keyword arguments:
+input_dim -- Dimension of the input data (number of connections).
+connections -- 1d Array or sequence with an entry for each output
+    connection, containing the corresponding index of the
+    input connection.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ +
+Return the list of dtypes supported by this node.
+
+
+
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_inverse(self, + x) +

+
  +
+ + +
+
Overrides: + Node._inverse +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +
+Process the data contained in `x`.
+
+If the object is still in the training phase, the function
+`stop_training` will be called.
+`x` is a matrix having different variables on different columns
+and observations on the rows.
+
+By default, subclasses should overwrite `_execute` to implement
+their execution phase. The docstring of the `_execute` method
+overwrites this docstring.
+
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

inverse(self, + x) +

+
  +
+ +
+Invert `y`.
+
+If the node is invertible, compute the input ``x`` such that
+``y = execute(x)``.
+
+By default, subclasses should overwrite `_inverse` to implement
+their `inverse` function. The docstring of the `inverse` method
+overwrites this docstring.
+
+
+
+
Overrides: + Node.inverse +
+
+
+
+ +
+ +
+ + +
+

is_invertible(self) +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Overrides: + Node.is_trainable +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.SwitchboardException-class.html b/legacy/api/mdp.hinet.SwitchboardException-class.html new file mode 100755 index 0000000..d04b6b6 --- /dev/null +++ b/legacy/api/mdp.hinet.SwitchboardException-class.html @@ -0,0 +1,198 @@ + + + + + mdp.hinet.SwitchboardException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Class SwitchboardException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SwitchboardException

+
+ +
+
+
+Exception for routing problems in the Switchboard class.
+
+
+ + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html b/legacy/api/mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html new file mode 100755 index 0000000..58e62b6 --- /dev/null +++ b/legacy/api/mdp.hinet.htmlvisitor.HiNetHTMLVisitor-class.html @@ -0,0 +1,793 @@ + + + + + mdp.hinet.htmlvisitor.HiNetHTMLVisitor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Module htmlvisitor :: + Class HiNetHTMLVisitor + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class HiNetHTMLVisitor

+
+ +
+
+
+Class to convert a hinet flow to HTML.
+
+This class implements the visitor pattern. It relies on the 'html'
+extension to get custom representations for normal node classes.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + html_file, + show_size=False)
+ Initialize the HMTL converter.
+ + +
+ +
+   + + + + + + +
_close_node_env(self, + node, + type_id='node')
+ Close the HTML environment for the node internals.
+ + +
+ +
+   + + + + + + +
_open_node_env(self, + node, + type_id='node')
+ Open the HTML environment for the node internals.
+ + +
+ +
+   + + + + + + +
_visit_clonelayer(self, + layer) + + +
+ +
+   + + + + + + +
_visit_flownode(self, + flownode) + + +
+ +
+   + + + + + + +
_visit_layer(self, + layer) + + +
+ +
+   + + + + + + +
_visit_node(self, + node)
+ Translate a node and return the translation.
+ + +
+ +
+   + + + + + + +
_visit_sameinputlayer(self, + layer) + + +
+ +
+   + + + + + + +
_visit_standard_node(self, + node) + + +
+ +
+   + + + + + + +
_write_node_header(self, + node, + type_id='node')
+ Write the header content for the node into the HTML file.
+ + +
+ +
+   + + + + + + +
convert_flow(self, + flow)
+ Convert the flow into HTML and write it into the internal file.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Class Methods[hide private]
+
+   + + + + + + +
hinet_css(cls)
+ Return the standard CSS string.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Class Variables[hide private]
+
+   + + _CSS_FILENAME = 'hinet.css' +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + html_file, + show_size=False) +
(Constructor) +

+
  +
+ +
+Initialize the HMTL converter.
+
+html_file -- File object into which the representation is written
+    (only the write method is used).
+show_size -- Show the approximate memory footprint of all nodes.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_close_node_env(self, + node, + type_id='node') +

+
  +
+ +
+Close the HTML environment for the node internals.
+
+node -- The node itself.
+type_id -- The id string as used in the CSS.
+
+
+
+
+
+
+ +
+ +
+ + +
+

_open_node_env(self, + node, + type_id='node') +

+
  +
+ +
+Open the HTML environment for the node internals.
+
+node -- The node itself.
+type_id -- The id string as used in the CSS.
+
+
+
+
+
+
+ +
+ +
+ + +
+

_visit_clonelayer(self, + layer) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_visit_flownode(self, + flownode) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_visit_layer(self, + layer) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_visit_node(self, + node) +

+
  +
+ +
+Translate a node and return the translation.
+
+Depending on the type of the node this can be delegated to more
+specific methods.
+
+
+
+
+
+
+ +
+ +
+ + +
+

_visit_sameinputlayer(self, + layer) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_visit_standard_node(self, + node) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_write_node_header(self, + node, + type_id='node') +

+
  +
+ +
+Write the header content for the node into the HTML file.
+
+
+
+
+
+
+ +
+ +
+ + +
+

convert_flow(self, + flow) +

+
  +
+ +
+Convert the flow into HTML and write it into the internal file.
+
+
+
+
+
+
+ +
+ +
+ + +
+

hinet_css(cls) +
Class Method +

+
  +
+ +
+Return the standard CSS string.
+
+The CSS should be embedded in the final HTML file.
+
+
+
+
+
+
+
+ + + + + + +
+ + + + + +
Class Variable Details[hide private]
+
+ +
+ +
+

_CSS_FILENAME

+ +
+
+
+
Value:
+
+'hinet.css'
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.htmlvisitor.HiNetXHTMLVisitor-class.html b/legacy/api/mdp.hinet.htmlvisitor.HiNetXHTMLVisitor-class.html new file mode 100755 index 0000000..bdac227 --- /dev/null +++ b/legacy/api/mdp.hinet.htmlvisitor.HiNetXHTMLVisitor-class.html @@ -0,0 +1,504 @@ + + + + + mdp.hinet.htmlvisitor.HiNetXHTMLVisitor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Module htmlvisitor :: + Class HiNetXHTMLVisitor + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class HiNetXHTMLVisitor

+
+ +
+
+
+Modified converter to create valid XHTML.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
convert_flow(self, + flow)
+ Convert the flow into XHTML and write it into the internal file.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
    Inherited from HiNetHTMLVisitor
+   + + + + + + +
__init__(self, + html_file, + show_size=False)
+ Initialize the HMTL converter.
+ + +
+ +
+   + + + + + + +
_close_node_env(self, + node, + type_id='node')
+ Close the HTML environment for the node internals.
+ + +
+ +
+   + + + + + + +
_open_node_env(self, + node, + type_id='node')
+ Open the HTML environment for the node internals.
+ + +
+ +
+   + + + + + + +
_visit_clonelayer(self, + layer) + + +
+ +
+   + + + + + + +
_visit_flownode(self, + flownode) + + +
+ +
+   + + + + + + +
_visit_layer(self, + layer) + + +
+ +
+   + + + + + + +
_visit_node(self, + node)
+ Translate a node and return the translation.
+ + +
+ +
+   + + + + + + +
_visit_sameinputlayer(self, + layer) + + +
+ +
+   + + + + + + +
_visit_standard_node(self, + node) + + +
+ +
+   + + + + + + +
_write_node_header(self, + node, + type_id='node')
+ Write the header content for the node into the HTML file.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Class Methods[hide private]
+
    Inherited from HiNetHTMLVisitor
+   + + + + + + +
hinet_css(cls)
+ Return the standard CSS string.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Class Variables[hide private]
+
    Inherited from HiNetHTMLVisitor
+   + + _CSS_FILENAME = 'hinet.css' +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

convert_flow(self, + flow) +

+
  +
+ +
+Convert the flow into XHTML and write it into the internal file.
+
+
+
+
Overrides: + HiNetHTMLVisitor.convert_flow +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.hinet.htmlvisitor.NewlineWriteFile-class.html b/legacy/api/mdp.hinet.htmlvisitor.NewlineWriteFile-class.html new file mode 100755 index 0000000..45557f1 --- /dev/null +++ b/legacy/api/mdp.hinet.htmlvisitor.NewlineWriteFile-class.html @@ -0,0 +1,338 @@ + + + + + mdp.hinet.htmlvisitor.NewlineWriteFile + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package hinet :: + Module htmlvisitor :: + Class NewlineWriteFile + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class NewlineWriteFile

+
+ +
+
+
+Decorator for file-like object.
+
+Adds a newline character to each line written with write().
+
+
+ + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__getattr__(self, + attr) + + +
+ +
+   + + + + + + +
__init__(self, + file_obj)
+ Wrap the given file-like object.
+ + +
+ +
+   + + + + + + +
write(self, + str_obj)
+ Write a string to the file object and append a newline character.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__getattr__(self, + attr) +
(Qualification operator) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__init__(self, + file_obj) +
(Constructor) +

+
  +
+ +
+Wrap the given file-like object.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

write(self, + str_obj) +

+
  +
+ +
+Write a string to the file object and append a newline character.
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes-module.html b/legacy/api/mdp.nodes-module.html new file mode 100755 index 0000000..3685d99 --- /dev/null +++ b/legacy/api/mdp.nodes-module.html @@ -0,0 +1,1524 @@ + + + + + mdp.nodes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Package nodes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Classes[hide private]
+
+   + + ARDRegressionScikitsLearnNode
+ Bayesian ARD regression. +This node has been automatically generated by wrapping the scikits.learn.linear_model.bayes.ARDRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Fit the weights of a regression model, using an ARD prior. The weights of +the regression model are assumed to be in Gaussian distributions. +Also estimate the parameters lambda (precisions of the distributions of the +weights) and alpha (precision of the distribution of the noise). +The estimation is done by an iterative procedures (Evidence Maximization) +
+   + + AdaptiveCutoffNode
+ Node which uses the data history during training to learn cutoff values. +
+   + + BayesianRidgeScikitsLearnNode
+ Bayesian ridge regression +This node has been automatically generated by wrapping the scikits.learn.linear_model.bayes.BayesianRidge class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Fit a Bayesian ridge model and optimize the regularization parameters +lambda (precision of the weights) and alpha (precision of the noise). +
+   + + BinarizerScikitsLearnNode
+ This node has been automatically generated by wrapping the scikits.learn.preprocessing.sparse.Binarizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+   + + CCAScikitsLearnNode
+ CCA Canonical Correlation Analysis. +
+   + + CCIPCANode
+ Candid-Covariance free Incremental Principal Component Analysis (CCIPCA) +extracts the principal components from the input data incrementally. +
+   + + CCIPCAWhiteningNode
+ Incrementally updates whitening vectors for the input data using CCIPCA. +
+   + + Convolution2DNode
+ Convolve input data with filter banks. +
+   + + CountVectorizerScikitsLearnNode
+ Convert a collection of raw documents to a matrix of token counts +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.CountVectorizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +This implementation produces a sparse representation of the counts using +scipy.sparse.coo_matrix. +
+   + + CuBICANode
+ Perform Independent Component Analysis using the CuBICA algorithm. +
+   + + CutoffNode
+ Node to cut off values at specified bounds. +
+   + + DiscreteHopfieldClassifier
+ Node for simulating a simple discrete Hopfield model +
+   + + ElasticNetCVScikitsLearnNode
+ Elastic Net model with iterative fitting along a regularization path +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.ElasticNetCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The best model is selected by cross-validation. +
+   + + ElasticNetScikitsLearnNode
+ Linear Model trained with L1 and L2 prior as regularizer +This node has been automatically generated by wrapping the ``scikits.learn.linear_model.coordinate_descent.ElasticNet`` class +from the ``sklearn`` library. +
+   + + EtaComputerNode
+ Compute the eta values of the normalized training data. +
+   + + FANode
+ Perform Factor Analysis. +
+   + + FDANode
+ Perform a (generalized) Fisher Discriminant Analysis of its +input. It is a supervised node that implements FDA using a +generalized eigenvalue approach. +
+   + + FastICANode
+ Perform Independent Component Analysis using the FastICA algorithm. +
+   + + FastICAScikitsLearnNode
+ FastICA; a fast algorithm for Independent Component Analysis +This node has been automatically generated by wrapping the scikits.learn.decomposition.fastica_.FastICA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters +
+   + + GMMHMMScikitsLearnNode
+ Hidden Markov Model with Gaussin mixture emissions +This node has been automatically generated by wrapping the scikits.learn.hmm.GMMHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Attributes +
+   + + GMMScikitsLearnNode
+ Gaussian Mixture Model +This node has been automatically generated by wrapping the scikits.learn.mixture.GMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Representation of a Gaussian mixture model probability distribution. +This class allows for easy evaluation of, sampling from, and +maximum-likelihood estimation of the parameters of a GMM distribution. +
+   + + GNBScikitsLearnNode
+ Gaussian Naive Bayes (GNB) +This node has been automatically generated by wrapping the scikits.learn.naive_bayes.GNB class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters +
+   + + GSFANode
+ This node implements "Graph-Based SFA (GSFA)", which is the main +component of hierarchical GSFA (HGSFA). +
+   + + GaussianClassifier
+ Perform a supervised Gaussian classification. +
+   + + GaussianHMMScikitsLearnNode
+ Hidden Markov Model with Gaussian emissions +This node has been automatically generated by wrapping the scikits.learn.hmm.GaussianHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Representation of a hidden Markov model probability distribution. +This class allows for easy evaluation of, sampling from, and +maximum-likelihood estimation of the parameters of a HMM. +
+   + + GaussianProcessScikitsLearnNode
+ The Gaussian Process model class. +This node has been automatically generated by wrapping the scikits.learn.gaussian_process.gaussian_process.GaussianProcess class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters +
+   + + GeneralExpansionNode
+ Expands the input samples by applying to them one or more functions provided. +
+   + + GenericUnivariateSelectScikitsLearnNode +
+   + + GrowingNeuralGasExpansionNode
+ Perform a trainable radial basis expansion, where the centers and +sizes of the basis functions are learned through a growing neural +gas. +
+   + + GrowingNeuralGasNode
+ Learn the topological structure of the input data by building a +corresponding graph approximation. +
+   + + HLLENode
+ Perform a Hessian Locally Linear Embedding analysis on the data. +
+   + + HistogramNode
+ Node which stores a history of the data during its training phase. +
+   + + HitParadeNode
+ Collect the first n local maxima and minima of the training signal +which are separated by a minimum gap d. +
+   + + ICANode
+ ICANode is a general class to handle different batch-mode algorithm for +Independent Component Analysis. +
+   + + ISFANode
+ Perform Independent Slow Feature Analysis on the input data. +
+   + + IdentityNode
+ Execute returns the input data and the node is not trainable. +
+   + + IncSFANode
+ Incremental Slow Feature Analysis (IncSFA) extracts the slowly varying +components from the input data incrementally. +
+   + + JADENode
+ Perform Independent Component Analysis using the JADE algorithm. +
+   + + KMeansClassifier
+ Employs K-Means Clustering for a given number of centroids. +
+   + + KNNClassifier
+ K-Nearest-Neighbour Classifier. +
+   + + KernelCentererScikitsLearnNode
+ Centers a kernel. This is equivalent to centering phi(X) with +This node has been automatically generated by wrapping the scikits.learn.preprocessing.KernelCenterer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+   + + KernelPCAScikitsLearnNode
+ Kernel Principal component analysis (KPCA) +This node has been automatically generated by wrapping the ``scikits.learn.decomposition.pca.KernelPCA`` class +from the ``sklearn`` library. +
+   + + LARSScikitsLearnNode
+ Least Angle Regression model a.k.a. LAR +This node has been automatically generated by wrapping the scikits.learn.linear_model.least_angle.LARS class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters +
+   + + LDAScikitsLearnNode
+ Linear Discriminant Analysis (LDA) +This node has been automatically generated by wrapping the scikits.learn.lda.LDA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters +
+   + + LLENode
+ Perform a Locally Linear Embedding analysis on the data. +
+   + + LabelBinarizerScikitsLearnNode
+ Binarize labels in a one-vs-all fashion. +This node has been automatically generated by wrapping the scikits.learn.preprocessing.LabelBinarizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Several regression and binary classification algorithms are available in the +scikit. A simple way to extend these algorithms to the multi-class +classification case is to use the so-called one-vs-all scheme. +
+   + + LassoCVScikitsLearnNode
+ Lasso linear model with iterative fitting along a regularization path +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.LassoCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The best model is selected by cross-validation. +
+   + + LassoLARSScikitsLearnNode
+ Lasso model fit with Least Angle Regression a.k.a. LARS +This node has been automatically generated by wrapping the scikits.learn.linear_model.least_angle.LassoLARS class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +It is a Linear Model trained with an L1 prior as regularizer. +lasso). +
+   + + LassoScikitsLearnNode
+ Linear Model trained with L1 prior as regularizer (aka the Lasso) +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.Lasso class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Technically the Lasso model is optimizing the same objective function as +the Elastic Net with rho=1.0 (no L2 penalty). +
+   + + LengthNormalizerScikitsLearnNode +
+   + + LinearModelCVScikitsLearnNode
+ This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.LinearModelCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+   + + LinearRegressionNode
+ Compute least-square, multivariate linear regression on the input +data, i.e., learn coefficients b_j so that the linear combination +y_i = b_0 + b_1 x_1 + ... b_N x_N , for i = 1 ... M, minimizes +the sum of squared error given the training x's and y's. +
+   + + LinearRegressionScikitsLearnNode
+ Ordinary least squares Linear Regression. +This node has been automatically generated by wrapping the scikits.learn.linear_model.base.LinearRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Attributes +
+   + + LinearSVCScikitsLearnNode
+ Linear Support Vector Classification, Sparse Version +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.classes.LinearSVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Similar to SVC with parameter kernel='linear', but uses internally +liblinear rather than libsvm, so it has more flexibility in the +choice of penalties and loss functions and should be faster for +huge datasets. +
+   + + LogisticRegressionScikitsLearnNode
+ Logistic Regression. +This node has been automatically generated by wrapping the scikits.learn.linear_model.logistic.LogisticRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Implements L1 and L2 regularized logistic regression. +
+   + + MCANode
+ Minor Component Analysis (MCA) extracts minor components (dual of principal +components) from the input data incrementally. +
+   + + MultinomialHMMScikitsLearnNode
+ Hidden Markov Model with multinomial (discrete) emissions +This node has been automatically generated by wrapping the scikits.learn.hmm.MultinomialHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Attributes +
+   + + NIPALSNode
+ Perform Principal Component Analysis using the NIPALS algorithm. +
+   + + NMFScikitsLearnNode
+ Non-Negative matrix factorization by Projected Gradient (NMF) +This node has been automatically generated by wrapping the ``scikits.learn.decomposition.nmf.NMF`` class +from the ``sklearn`` library. +
+   + + NearestMeanClassifier
+ Nearest-Mean classifier. +
+   + + NeighborsClassifierScikitsLearnNode
+ Classifier implementing k-Nearest Neighbor Algorithm. +This node has been automatically generated by wrapping the scikits.learn.neighbors.NeighborsClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters +
+   + + NeighborsRegressorScikitsLearnNode
+ Regression based on k-Nearest Neighbor Algorithm +This node has been automatically generated by wrapping the scikits.learn.neighbors.NeighborsRegressor class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The target is predicted by local interpolation of the targets +associated of the k-Nearest Neighbors in the training set. +
+   + + NeuralGasNode
+ Learn the topological structure of the input data by building a +corresponding graph approximation (original Neural Gas algorithm). +
+   + + NoiseNode
+ Inject multiplicative or additive noise into the input data. +
+   + + NormalNoiseNode
+ Special version of NoiseNode for Gaussian additive noise. +
+   + + NormalizeNode
+ Make input signal meanfree and unit variance. +
+   + + NormalizerScikitsLearnNode
+ This node has been automatically generated by wrapping the scikits.learn.preprocessing.Normalizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+   + + NormalizingRecursiveExpansionNode
+ Recursively computable (orthogonal) expansions and a +trainable transformation to the domain of the expansions. +
+   + + NuSVCScikitsLearnNode
+ NuSVC for sparse matrices (csr). +
+   + + NuSVRScikitsLearnNode
+ NuSVR for sparse matrices (csr) +This node has been automatically generated by wrapping the ``scikits.learn.svm.sparse.classes.NuSVR`` class +from the ``sklearn`` library. +
+   + + OneClassSVMScikitsLearnNode
+ Unsupervised Outliers Detection. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.OneClassSVM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Estimate the support of a high-dimensional distribution. +
+   + + OnlineCenteringNode
+ OnlineCenteringNode centers the input data, that is, subtracts the arithmetic mean (average) from the +input data. This is an online learnable node. +
+   + + OnlineTimeDiffNode
+ Compute the discrete time derivative of the input using backward difference approximation: +
+   + + PCANode
+ Filter the input data through the most significatives of its +principal components. +
+   + + PCAScikitsLearnNode
+ Principal component analysis (PCA) +This node has been automatically generated by wrapping the ``scikits.learn.decomposition.pca.PCA`` class +from the ``sklearn`` library. +
+   + + PLSCanonicalScikitsLearnNode
+ PLS canonical. +
+   + + PLSRegressionScikitsLearnNode
+ PLS regression (Also known PLS2 or PLS in case of one dimensional +response). +
+   + + PLSSVDScikitsLearnNode
+ Partial Least Square SVD +This node has been automatically generated by wrapping the ``scikits.learn.pls.PLSSVD`` class +from the ``sklearn`` library. +
+   + + PerceptronClassifier
+ A simple perceptron with input_dim input nodes. +
+   + + PolynomialExpansionNode
+ Perform expansion in a polynomial space. +
+   + + ProbabilisticPCAScikitsLearnNode
+ Additional layer on top of PCA that adds a probabilistic evaluation +This node has been automatically generated by wrapping the ``scikits.learn.decomposition.pca.ProbabilisticPCA`` class +from the ``sklearn`` library. +
+   + + ProjectedGradientNMFScikitsLearnNode
+ Non-Negative matrix factorization by Projected Gradient (NMF) +This node has been automatically generated by wrapping the ``scikits.learn.decomposition.nmf.ProjectedGradientNMF`` class +from the ``sklearn`` library. +
+   + + QDAScikitsLearnNode
+ Quadratic Discriminant Analysis (QDA) +This node has been automatically generated by wrapping the scikits.learn.qda.QDA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters +
+   + + QuadraticExpansionNode
+ Perform expansion in the space formed by all linear and quadratic +monomials. +QuadraticExpansionNode() is equivalent to a +PolynomialExpansionNode(2) +
+   + + RBFExpansionNode
+ Expand input space with Gaussian Radial Basis Functions (RBFs). +
+   + + RBMNode
+ Restricted Boltzmann Machine node. An RBM is an undirected +probabilistic network with binary variables. The graph is +bipartite into observed (visible) and hidden (latent) variables. +By default, the execute method returns the probability of +one of the hiden variables being equal to 1 given the input. +Use the sample_v method to sample from the observed variables +given a setting of the hidden variables, and sample_h to do the +opposite. The energy method can be used to compute the energy +of a given setting of all variables. +
+   + + RBMWithLabelsNode
+ Restricted Boltzmann Machine with softmax labels. An RBM is an +undirected probabilistic network with binary variables. In this +case, the node is partitioned into a set of observed (visible) +variables, a set of hidden (latent) variables, and a set of +label variables (also observed), only one of which is active at +any time. The node is able to learn associations between the +visible variables and the labels. +By default, the execute method returns the probability of +one of the hiden variables being equal to 1 given the input. +Use the sample_v method to sample from the observed variables +(visible and labels) given a setting of the hidden variables, and +sample_h to do the opposite. The energy method can be used +to compute the energy of a given setting of all variables. +
+   + + RFECVScikitsLearnNode
+ Feature ranking with Recursive feature elimination and cross validation +This node has been automatically generated by wrapping the scikits.learn.feature_selection.rfe.RFECV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters +
+   + + RFEScikitsLearnNode
+ Feature ranking with Recursive feature elimination +This node has been automatically generated by wrapping the scikits.learn.feature_selection.rfe.RFE class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters +
+   + + RandomizedPCAScikitsLearnNode
+ Principal component analysis (PCA) using randomized SVD +This node has been automatically generated by wrapping the ``scikits.learn.decomposition.pca.RandomizedPCA`` class +from the ``sklearn`` library. +
+   + + RecursiveExpansionNode
+ Recursively computable (orthogonal) expansions. +
+   + + RidgeCVScikitsLearnNode
+ Ridge regression with built-in cross-validation. +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.RidgeCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +By default, it performs Generalized Cross-Validation, which is a form of +efficient Leave-One-Out cross-validation. Currently, only the n_features > +n_samples case is handled efficiently. +
+   + + RidgeClassifierCVScikitsLearnNode +
+   + + RidgeClassifierScikitsLearnNode
+ Classifier using Ridge regression +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.RidgeClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters +
+   + + RidgeScikitsLearnNode
+ Ridge regression. +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.Ridge class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters +
+   + + SFA2Node
+ Get an input signal, expand it in the space of +inhomogeneous polynomials of degree 2 and extract its slowly varying +components. +
+   + + SFANode
+ Extract the slowly varying components from the input data. +
+   + + SGDClassifierScikitsLearnNode
+ Linear model fitted by minimizing a regularized empirical loss with SGD. +
+   + + SGDRegressorScikitsLearnNode
+ Linear model fitted by minimizing a regularized empirical loss with SGD +This node has been automatically generated by wrapping the scikits.learn.linear_model.sparse.stochastic_gradient.SGDRegressor class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +SGD stands for Stochastic Gradient Descent: the gradient of the loss is +estimated each sample at a time and the model is updated along the way with +a decreasing strength schedule (aka learning rate). +
+   + + SVCScikitsLearnNode
+ C-Support Vector Classification. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters +
+   + + SVRScikitsLearnNode
+ epsilon-Support Vector Regression. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVR class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The free parameters in the model are C and epsilon. +
+   + + ScalerScikitsLearnNode
+ Object to standardize a dataset +This node has been automatically generated by wrapping the scikits.learn.preprocessing.Scaler class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +It centers the dataset and optionaly scales to fix the variance to 1 for +each feature +
+   + + SelectFdrScikitsLearnNode
+ Filter : Select the p-values corresponding to an estimated false +This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFdr class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+   + + SelectFprScikitsLearnNode
+ This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFpr class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+   + + SelectFweScikitsLearnNode
+ This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFwe class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+   + + SelectKBestScikitsLearnNode
+ This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectKBest class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+   + + SelectPercentileScikitsLearnNode
+ This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectPercentile class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+   + + SignumClassifier
+ This classifier node classifies as 1 if the sum of the data points +is positive and as -1 if the data point is negative. +
+   + + SimpleMarkovClassifier
+ A simple version of a Markov classifier. +
+   + + SparseBaseLibLinearScikitsLearnNode +
+   + + SparseBaseLibSVMScikitsLearnNode +
+   + + TDSEPNode
+ Perform Independent Component Analysis using the TDSEP algorithm. +
+   + + TfidfTransformerScikitsLearnNode
+ Transform a count matrix to a TF or TF-IDF representation +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.TfidfTransformer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +TF means term-frequency while TF-IDF means term-frequency times inverse +document-frequency: +
+   + + TimeDelayNode
+ Copy delayed version of the input signal on the space dimensions. +
+   + + TimeDelaySlidingWindowNode
+ TimeDelaySlidingWindowNode is an alternative to TimeDelayNode +which should be used for online learning/execution. Whereas the +TimeDelayNode works in a batch manner, for online application +a sliding window is necessary which yields only one row per call. +
+   + + TimeFramesNode
+ Copy delayed version of the input signal on the space dimensions. +
+   + + VartimeSFANode
+ Extract the slowly varying components from the input data. +This node can be understood as a generalization of the SFANode that +allows non-constant time increments between samples. +
+   + + VectorizerScikitsLearnNode
+ Convert a collection of raw documents to a matrix +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.Vectorizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Equivalent to CountVectorizer followed by TfidfTransformer. +
+   + + WardAgglomerationScikitsLearnNode
+ Feature agglomeration based on Ward hierarchical clustering +This node has been automatically generated by wrapping the scikits.learn.cluster.hierarchical.WardAgglomeration class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters +
+   + + WhiteningNode
+ Whiten the input data by filtering it through the most +significant of its principal components. +
+   + + XSFANode
+ Perform Non-linear Blind Source Separation using Slow Feature Analysis. +This node is designed to iteratively extract statistically +independent sources from (in principle) arbitrary invertible +nonlinear mixtures. The method relies on temporal correlations in +the sources and consists of a combination of nonlinear SFA and a +projection algorithm. More details can be found in the reference +given below (once it's published). +
+   + + _OneDimensionalHitParade
+ Class to produce hit-parades (i.e., a list of the locally largest +and smallest values) out of a one-dimensional time-series. +
+   + + iGSFANode
+ This node implements "information-preserving graph-based SFA (iGSFA)", +which is the main component of hierarchical iGSFA (HiGSFA). +
+ + + + + + + + + +
+ + + + + +
Functions[hide private]
+
+ int + + + + + + +
_expanded_dim(degree, + nvariables)
+ Return the size of a vector of dimension nvariables after +a polynomial expansion of degree degree.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Variables[hide private]
+
+   + + __package__ = 'mdp.nodes' +
+ + + + + + +
+ + + + + +
Function Details[hide private]
+
+ +
+ +
+ + +
+

_expanded_dim(degree, + nvariables) +

+
  +
+ + Return the size of a vector of dimension nvariables after +a polynomial expansion of degree degree. +
+
Parameters:
+
    +
  • degree (int) - The degree of polynomial expansion.
  • +
  • nvariables (int) - The number of variables, +i.e. the dimension of the vector space.
  • +
+
Returns: int
+
The size of a vector of dimension nvariables after +a polynomial expansion of degree degree.
+
+
+
+
+ + + + + + +
+ + + + + +
Variables Details[hide private]
+
+ +
+ +
+

__package__

+ +
+
+
+
Value:
+
+'mdp.nodes'
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.ARDRegressionScikitsLearnNode-class.html b/legacy/api/mdp.nodes.ARDRegressionScikitsLearnNode-class.html new file mode 100755 index 0000000..41eeabc --- /dev/null +++ b/legacy/api/mdp.nodes.ARDRegressionScikitsLearnNode-class.html @@ -0,0 +1,1367 @@ + + + + + mdp.nodes.ARDRegressionScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class ARDRegressionScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ARDRegressionScikitsLearnNode

+
+ +
+
+

Bayesian ARD regression. +This node has been automatically generated by wrapping the scikits.learn.linear_model.bayes.ARDRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Fit the weights of a regression model, using an ARD prior. The weights of +the regression model are assumed to be in Gaussian distributions. +Also estimate the parameters lambda (precisions of the distributions of the +weights) and alpha (precision of the distribution of the noise). +The estimation is done by an iterative procedures (Evidence Maximization)

+

Parameters

+
+
X : array, shape = (n_samples, n_features)
+
Training vectors.
+
y : array, shape = (n_samples)
+
Target values for training vectors
+
n_iter : int, optional
+
Maximum number of interations. Default is 300
+
eps : float, optional
+
Stop the algorithm if w has converged. Default is 1.e-3.
+
alpha_1 : float, optional
+
Hyper-parameter : shape parameter for the Gamma distribution prior +over the alpha parameter. Default is 1.e-6.
+
alpha_2 : float, optional
+
Hyper-parameter : inverse scale parameter (rate parameter) for the +Gamma distribution prior over the alpha parameter. Default is 1.e-6.
+
lambda_1 : float, optional
+
Hyper-parameter : shape parameter for the Gamma distribution prior +over the lambda parameter. Default is 1.e-6.
+
lambda_2 : float, optional
+
Hyper-parameter : inverse scale parameter (rate parameter) for the +Gamma distribution prior over the lambda parameter. Default is 1.e-6.
+
compute_score : boolean, optional
+
If True, compute the objective function at each step of the model. +Default is False.
+
threshold_lambda : float, optional
+
threshold for removing (pruning) weights with high precision from +the computation. Default is 1.e+4.
+
fit_intercept : boolean, optional
+
wether to calculate the intercept for this model. If set +to false, no intercept will be used in calculations +(e.g. data is expected to be already centered). +Default is True.
+
verbose : boolean, optional
+
Verbose mode when fitting the model. Default is False.
+
+

Attributes

+
+
coef_ : array, shape = (n_features)
+
Coefficients of the regression model (mean of distribution)
+
alpha_ : float
+
estimated precision of the noise.
+
lambda_ : array, shape = (n_features)
+
estimated precisions of the weights.
+
sigma_ : array, shape = (n_features, n_features)
+
estimated variance-covariance matrix of the weights
+
scores_ : float
+
if computed, value of the objective function (to be maximized)
+
+

Methods

+
+
fit(X, y) : self
+
Fit the model
+
predict(X) : array
+
Predict using the model.
+
+

Examples

+
+>>> from scikits.learn import linear_model
+>>> clf = linear_model.ARDRegression()
+>>> clf.fit([[0,0], [1, 1], [2, 2]], [0, 1, 2])
+ARDRegression(n_iter=300, verbose=False, lambda_1=1e-06, lambda_2=1e-06,
+       fit_intercept=True, eps=0.001, threshold_lambda=10000.0,
+       alpha_2=1e-06, alpha_1=1e-06, compute_score=False)
+>>> clf.predict([[1, 1]])
+array([ 1.])
+

Notes

+

See examples/linear_model/plot_ard.py for an example.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Bayesian ARD regression. +This node has been automatically generated by wrapping the scikits.learn.linear_model.bayes.ARDRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Fit the weights of a regression model, using an ARD prior. The weights of +the regression model are assumed to be in Gaussian distributions. +Also estimate the parameters lambda (precisions of the distributions of the +weights) and alpha (precision of the distribution of the noise). +The estimation is done by an iterative procedures (Evidence Maximization)
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.bayes.ARDRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the ARDRegression model according to the given training data +and parameters. +This node has been automatically generated by wrapping the scikits.learn.linear_model.bayes.ARDRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Iterative procedure to maximize the evidence
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Bayesian ARD regression. +This node has been automatically generated by wrapping the scikits.learn.linear_model.bayes.ARDRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Fit the weights of a regression model, using an ARD prior. The weights of +the regression model are assumed to be in Gaussian distributions. +Also estimate the parameters lambda (precisions of the distributions of the +weights) and alpha (precision of the distribution of the noise). +The estimation is done by an iterative procedures (Evidence Maximization)

+

Parameters

+
+
X : array, shape = (n_samples, n_features)
+
Training vectors.
+
y : array, shape = (n_samples)
+
Target values for training vectors
+
n_iter : int, optional
+
Maximum number of interations. Default is 300
+
eps : float, optional
+
Stop the algorithm if w has converged. Default is 1.e-3.
+
alpha_1 : float, optional
+
Hyper-parameter : shape parameter for the Gamma distribution prior +over the alpha parameter. Default is 1.e-6.
+
alpha_2 : float, optional
+
Hyper-parameter : inverse scale parameter (rate parameter) for the +Gamma distribution prior over the alpha parameter. Default is 1.e-6.
+
lambda_1 : float, optional
+
Hyper-parameter : shape parameter for the Gamma distribution prior +over the lambda parameter. Default is 1.e-6.
+
lambda_2 : float, optional
+
Hyper-parameter : inverse scale parameter (rate parameter) for the +Gamma distribution prior over the lambda parameter. Default is 1.e-6.
+
compute_score : boolean, optional
+
If True, compute the objective function at each step of the model. +Default is False.
+
threshold_lambda : float, optional
+
threshold for removing (pruning) weights with high precision from +the computation. Default is 1.e+4.
+
fit_intercept : boolean, optional
+
wether to calculate the intercept for this model. If set +to false, no intercept will be used in calculations +(e.g. data is expected to be already centered). +Default is True.
+
verbose : boolean, optional
+
Verbose mode when fitting the model. Default is False.
+
+

Attributes

+
+
coef_ : array, shape = (n_features)
+
Coefficients of the regression model (mean of distribution)
+
alpha_ : float
+
estimated precision of the noise.
+
lambda_ : array, shape = (n_features)
+
estimated precisions of the weights.
+
sigma_ : array, shape = (n_features, n_features)
+
estimated variance-covariance matrix of the weights
+
scores_ : float
+
if computed, value of the objective function (to be maximized)
+
+

Methods

+
+
fit(X, y) : self
+
Fit the model
+
predict(X) : array
+
Predict using the model.
+
+

Examples

+
+>>> from scikits.learn import linear_model
+>>> clf = linear_model.ARDRegression()
+>>> clf.fit([[0,0], [1, 1], [2, 2]], [0, 1, 2])
+ARDRegression(n_iter=300, verbose=False, lambda_1=1e-06, lambda_2=1e-06,
+       fit_intercept=True, eps=0.001, threshold_lambda=10000.0,
+       alpha_2=1e-06, alpha_1=1e-06, compute_score=False)
+>>> clf.predict([[1, 1]])
+array([ 1.])
+

Notes

+

See examples/linear_model/plot_ard.py for an example.

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.bayes.ARDRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X : numpy array of shape [n_samples, n_features]

+

Returns

+
+
C : array, shape = [n_samples]
+
Returns predicted values.
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the ARDRegression model according to the given training data +and parameters. +This node has been automatically generated by wrapping the scikits.learn.linear_model.bayes.ARDRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Iterative procedure to maximize the evidence

+

Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
Training vector, where n_samples in the number of samples and +n_features is the number of features.
+
y : array, shape = [n_samples]
+
Target values (integers)
+
+

Returns

+

self : returns an instance of self.

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.AdaptiveCutoffNode-class.html b/legacy/api/mdp.nodes.AdaptiveCutoffNode-class.html new file mode 100755 index 0000000..087f701 --- /dev/null +++ b/legacy/api/mdp.nodes.AdaptiveCutoffNode-class.html @@ -0,0 +1,1171 @@ + + + + + mdp.nodes.AdaptiveCutoffNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class AdaptiveCutoffNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class AdaptiveCutoffNode

+
+ +
+
+

Node which uses the data history during training to learn cutoff values.

+

As opposed to the simple CutoffNode, a different cutoff value is learned +for each data coordinate. For example if an upper cutoff fraction of +0.05 is specified, then the upper cutoff bound is set so that the upper +5% of the training data would have been clipped (in each dimension). +The cutoff bounds are then applied during execution. +This node also works as a HistogramNode, so the histogram data is stored.

+

When stop_training is called the cutoff values for each coordinate are +calculated based on the collected histogram data.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + lower_cutoff_fraction=None, + upper_cutoff_fraction=None, + hist_fraction=1.0, + hist_filename=None, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'AdaptiveCutoffNode'.
+ + +
+ +
+ numpy.ndarray + + + + + + +
_execute(self, + x)
+ Return the clipped data.
+ + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the data types supported by this node.
+ + +
+ +
+   + + + + + + +
_stop_training(self)
+ Calculate the cutoff bounds based on collected histogram data.
+ + +
+ +
+ numpy.ndarray + + + + + + +
execute(self, + x)
+ Return the clipped data.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Calculate the cutoff bounds based on collected histogram data.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from HistogramNode
+   + + + + + + +
_train(self, + x)
+ Store the history data.
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ Store the history data.
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + lower_cutoff_fraction=None, + upper_cutoff_fraction=None, + hist_fraction=1.0, + hist_filename=None, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'AdaptiveCutoffNode'. +
+
Parameters:
+
    +
  • lower_cutoff_fraction (float) - Fraction of data that will be cut off +after the training phase (assuming the data distribution does not +change). If set to None (default value) no cutoff is performed.
  • +
  • upper_cutoff_fraction (float) - Works like lower_cutoff_fraction.
  • +
  • hist_fraction (float) - Defines the fraction of the data that is stored +for the histogram.
  • +
  • hist_filename (str) - Filename for the file to which the data history +will be pickled after training. The data is pickled when +stop_training is called and data_hist is then +cleared (to free memory). If filename is None +(default value) then data_hist is not cleared and can +be directly used after training.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + Return the clipped data. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - Data to clip.
  • +
+
Returns: numpy.ndarray
+
The clipped data.
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the data types supported by this node. +
+
Returns: list
+
The list of numpy.dtypes that this node supports.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self) +

+
  +
+ + Calculate the cutoff bounds based on collected histogram data. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ + Return the clipped data. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - Data to clip.
  • +
+
Returns: numpy.ndarray
+
The clipped data.
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

stop_training(self) +

+
  +
+ + Calculate the cutoff bounds based on collected histogram data. +
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.BayesianRidgeScikitsLearnNode-class.html b/legacy/api/mdp.nodes.BayesianRidgeScikitsLearnNode-class.html new file mode 100755 index 0000000..0b291c4 --- /dev/null +++ b/legacy/api/mdp.nodes.BayesianRidgeScikitsLearnNode-class.html @@ -0,0 +1,1344 @@ + + + + + mdp.nodes.BayesianRidgeScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class BayesianRidgeScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class BayesianRidgeScikitsLearnNode

+
+ +
+
+

Bayesian ridge regression +This node has been automatically generated by wrapping the scikits.learn.linear_model.bayes.BayesianRidge class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Fit a Bayesian ridge model and optimize the regularization parameters +lambda (precision of the weights) and alpha (precision of the noise).

+

Parameters

+
+
X : array, shape = (n_samples, n_features)
+
Training vectors.
+
y : array, shape = (length)
+
Target values for training vectors
+
n_iter : int, optional
+
Maximum number of interations. Default is 300.
+
eps : float, optional
+
Stop the algorithm if w has converged. Default is 1.e-3.
+
alpha_1 : float, optional
+
Hyper-parameter : shape parameter for the Gamma distribution prior +over the alpha parameter. Default is 1.e-6
+
alpha_2 : float, optional
+
Hyper-parameter : inverse scale parameter (rate parameter) for the +Gamma distribution prior over the alpha parameter. +Default is 1.e-6.
+
lambda_1 : float, optional
+
Hyper-parameter : shape parameter for the Gamma distribution prior +over the lambda parameter. Default is 1.e-6.
+
lambda_2 : float, optional
+
Hyper-parameter : inverse scale parameter (rate parameter) for the +Gamma distribution prior over the lambda parameter. +Default is 1.e-6
+
compute_score : boolean, optional
+
If True, compute the objective function at each step of the model. +Default is False
+
fit_intercept : boolean, optional
+
wether to calculate the intercept for this model. If set +to false, no intercept will be used in calculations +(e.g. data is expected to be already centered). +Default is True.
+
+

Attributes

+
+
coef_ : array, shape = (n_features)
+
Coefficients of the regression model (mean of distribution)
+
alpha_ : float
+
estimated precision of the noise.
+
lambda_ : array, shape = (n_features)
+
estimated precisions of the weights.
+
scores_ : float
+
if computed, value of the objective function (to be maximized)
+
+

Methods

+
+
fit(X, y) : self
+
Fit the model
+
predict(X) : array
+
Predict using the model.
+
+

Examples

+
+>>> from scikits.learn import linear_model
+>>> clf = linear_model.BayesianRidge()
+>>> clf.fit([[0,0], [1, 1], [2, 2]], [0, 1, 2])
+BayesianRidge(n_iter=300, verbose=False, lambda_1=1e-06, lambda_2=1e-06,
+       fit_intercept=True, eps=0.001, alpha_2=1e-06, alpha_1=1e-06,
+       compute_score=False)
+>>> clf.predict([[1, 1]])
+array([ 1.])
+

Notes

+

See examples/linear_model/plot_bayesian_ridge.py for an example.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Bayesian ridge regression +This node has been automatically generated by wrapping the scikits.learn.linear_model.bayes.BayesianRidge class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Fit a Bayesian ridge model and optimize the regularization parameters +lambda (precision of the weights) and alpha (precision of the noise).
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.bayes.BayesianRidge class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the model +This node has been automatically generated by wrapping the scikits.learn.linear_model.bayes.BayesianRidge class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Bayesian ridge regression +This node has been automatically generated by wrapping the scikits.learn.linear_model.bayes.BayesianRidge class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Fit a Bayesian ridge model and optimize the regularization parameters +lambda (precision of the weights) and alpha (precision of the noise).

+

Parameters

+
+
X : array, shape = (n_samples, n_features)
+
Training vectors.
+
y : array, shape = (length)
+
Target values for training vectors
+
n_iter : int, optional
+
Maximum number of interations. Default is 300.
+
eps : float, optional
+
Stop the algorithm if w has converged. Default is 1.e-3.
+
alpha_1 : float, optional
+
Hyper-parameter : shape parameter for the Gamma distribution prior +over the alpha parameter. Default is 1.e-6
+
alpha_2 : float, optional
+
Hyper-parameter : inverse scale parameter (rate parameter) for the +Gamma distribution prior over the alpha parameter. +Default is 1.e-6.
+
lambda_1 : float, optional
+
Hyper-parameter : shape parameter for the Gamma distribution prior +over the lambda parameter. Default is 1.e-6.
+
lambda_2 : float, optional
+
Hyper-parameter : inverse scale parameter (rate parameter) for the +Gamma distribution prior over the lambda parameter. +Default is 1.e-6
+
compute_score : boolean, optional
+
If True, compute the objective function at each step of the model. +Default is False
+
fit_intercept : boolean, optional
+
wether to calculate the intercept for this model. If set +to false, no intercept will be used in calculations +(e.g. data is expected to be already centered). +Default is True.
+
+

Attributes

+
+
coef_ : array, shape = (n_features)
+
Coefficients of the regression model (mean of distribution)
+
alpha_ : float
+
estimated precision of the noise.
+
lambda_ : array, shape = (n_features)
+
estimated precisions of the weights.
+
scores_ : float
+
if computed, value of the objective function (to be maximized)
+
+

Methods

+
+
fit(X, y) : self
+
Fit the model
+
predict(X) : array
+
Predict using the model.
+
+

Examples

+
+>>> from scikits.learn import linear_model
+>>> clf = linear_model.BayesianRidge()
+>>> clf.fit([[0,0], [1, 1], [2, 2]], [0, 1, 2])
+BayesianRidge(n_iter=300, verbose=False, lambda_1=1e-06, lambda_2=1e-06,
+       fit_intercept=True, eps=0.001, alpha_2=1e-06, alpha_1=1e-06,
+       compute_score=False)
+>>> clf.predict([[1, 1]])
+array([ 1.])
+

Notes

+

See examples/linear_model/plot_bayesian_ridge.py for an example.

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.bayes.BayesianRidge class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X : numpy array of shape [n_samples, n_features]

+

Returns

+
+
C : array, shape = [n_samples]
+
Returns predicted values.
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the model +This node has been automatically generated by wrapping the scikits.learn.linear_model.bayes.BayesianRidge class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : numpy array of shape [n_samples,n_features]
+
Training data
+
y : numpy array of shape [n_samples]
+
Target values
+
+

Returns

+

self : returns an instance of self.

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.BinarizerScikitsLearnNode-class.html b/legacy/api/mdp.nodes.BinarizerScikitsLearnNode-class.html new file mode 100755 index 0000000..4e21da1 --- /dev/null +++ b/legacy/api/mdp.nodes.BinarizerScikitsLearnNode-class.html @@ -0,0 +1,1190 @@ + + + + + mdp.nodes.BinarizerScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class BinarizerScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class BinarizerScikitsLearnNode

+
+ +
+
+This node has been automatically generated by wrapping the scikits.learn.preprocessing.sparse.Binarizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ This node has been automatically generated by wrapping the scikits.learn.preprocessing.sparse.Binarizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ + This node has been automatically generated by wrapping the scikits.learn.preprocessing.sparse.Binarizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node.stop_training +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.CCAScikitsLearnNode-class.html b/legacy/api/mdp.nodes.CCAScikitsLearnNode-class.html new file mode 100755 index 0000000..ef5939c --- /dev/null +++ b/legacy/api/mdp.nodes.CCAScikitsLearnNode-class.html @@ -0,0 +1,1378 @@ + + + + + mdp.nodes.CCAScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class CCAScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class CCAScikitsLearnNode

+
+ +
+
+
+
+CCA Canonical Correlation Analysis. CCA inherits from PLS with
+mode="B" and deflation_mode="canonical".
+This node has been automatically generated by wrapping the ``scikits.learn.pls.CCA`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+**Parameters**
+
+X: array-like of predictors, shape (n_samples, p)
+    Training vectors, where n_samples in the number of samples and
+    p is the number of predictors.
+
+Y: array-like of response, shape (n_samples, q)
+    Training vectors, where n_samples in the number of samples and
+    q is the number of response variables.
+
+n_components: int, number of components to keep. (default 2).
+
+scale: boolean, scale data? (default True)
+
+algorithm: str "nipals" or "svd" the algorithm used to estimate the
+    weights, it will be called "n_components" time ie.: for each iteration
+    of the outer loop.
+
+max_iter: an integer, the maximum number of iterations (default 500) of the
+    NIPALS inner loop (used only if algorithm="nipals")
+
+tol: a not negative real, the tolerance used in the iterative algorithm
+     default 1e-06.
+
+copy: boolean, should the deflation been made on a copy? Let the default
+    value to True unless you don't care about side effect
+
+**Attributes**
+
+x_weights_: array, [p, n_components]
+    X block weights vectors.
+
+y_weights_: array, [q, n_components]
+    Y block weights vectors.
+
+x_loadings_: array, [p, n_components]
+    X block loadings vectors.
+
+y_loadings_: array, [q, n_components]
+    Y block loadings vectors.
+
+x_scores_: array, [n_samples, n_components]
+    X scores.
+
+y_scores_: array, [n_samples, n_components]
+    Y scores.
+
+x_rotations_: array, [p, n_components]
+    X block to latents rotations.
+
+y_rotations_: array, [q, n_components]
+    Y block to latents rotations.
+
+**Notes**
+
+For each component k, find the weights u, v that maximizes
+max corr(Xk u, Yk v), such that |u| = |v| = 1
+
+Note that it maximizes only the correlations between the scores.
+
+The residual matrix of X (Xk+1) block is obtained by the deflation on the
+current X score: x_score.
+
+The residual matrix of Y (Yk+1) block is obtained by deflation on the
+current Y score.
+
+**References**
+
+Jacob A. Wegelin. A survey of Partial Least Squares (PLS) methods, with
+emphasis on the two-block case. Technical Report 371, Department of
+Statistics, University of Washington, Seattle, 2000.
+
+In french but still a reference:
+
+Tenenhaus, M. (1998). La regression PLS: theorie et pratique. Paris:
+
+Editions Technic.
+
+See also
+
+PLSCanonical
+PLSSVD
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ CCA Canonical Correlation Analysis.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Apply the dimension reduction learned on the train data.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +
+
+CCA Canonical Correlation Analysis. CCA inherits from PLS with
+mode="B" and deflation_mode="canonical".
+This node has been automatically generated by wrapping the ``scikits.learn.pls.CCA`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+**Parameters**
+
+X: array-like of predictors, shape (n_samples, p)
+    Training vectors, where n_samples in the number of samples and
+    p is the number of predictors.
+
+Y: array-like of response, shape (n_samples, q)
+    Training vectors, where n_samples in the number of samples and
+    q is the number of response variables.
+
+n_components: int, number of components to keep. (default 2).
+
+scale: boolean, scale data? (default True)
+
+algorithm: str "nipals" or "svd" the algorithm used to estimate the
+    weights, it will be called "n_components" time ie.: for each iteration
+    of the outer loop.
+
+max_iter: an integer, the maximum number of iterations (default 500) of the
+    NIPALS inner loop (used only if algorithm="nipals")
+
+tol: a not negative real, the tolerance used in the iterative algorithm
+     default 1e-06.
+
+copy: boolean, should the deflation been made on a copy? Let the default
+    value to True unless you don't care about side effect
+
+**Attributes**
+
+x_weights_: array, [p, n_components]
+    X block weights vectors.
+
+y_weights_: array, [q, n_components]
+    Y block weights vectors.
+
+x_loadings_: array, [p, n_components]
+    X block loadings vectors.
+
+y_loadings_: array, [q, n_components]
+    Y block loadings vectors.
+
+x_scores_: array, [n_samples, n_components]
+    X scores.
+
+y_scores_: array, [n_samples, n_components]
+    Y scores.
+
+x_rotations_: array, [p, n_components]
+    X block to latents rotations.
+
+y_rotations_: array, [q, n_components]
+    Y block to latents rotations.
+
+**Notes**
+
+For each component k, find the weights u, v that maximizes
+max corr(Xk u, Yk v), such that |u| = |v| = 1
+
+Note that it maximizes only the correlations between the scores.
+
+The residual matrix of X (Xk+1) block is obtained by the deflation on the
+current X score: x_score.
+
+The residual matrix of Y (Yk+1) block is obtained by deflation on the
+current Y score.
+
+**References**
+
+Jacob A. Wegelin. A survey of Partial Least Squares (PLS) methods, with
+emphasis on the two-block case. Technical Report 371, Department of
+Statistics, University of Washington, Seattle, 2000.
+
+In french but still a reference:
+
+Tenenhaus, M. (1998). La regression PLS: theorie et pratique. Paris:
+
+Editions Technic.
+
+See also
+
+PLSCanonical
+PLSSVD
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +
+
+Apply the dimension reduction learned on the train data.
+Parameters
+----------
+X: array-like of predictors, shape (n_samples, p)
+Training vectors, where n_samples in the number of samples and
+p is the number of predictors.
+This node has been automatically generated by wrapping the ``scikits.learn.pls.CCA`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+Y: array-like of response, shape (n_samples, q), optional
+    Training vectors, where n_samples in the number of samples and
+    q is the number of response variables.
+
+copy: X and Y have to be normalize, do it on a copy or in place
+    with side effect!
+
+Returns
+
+x_scores if Y is not given, (x_scores, y_scores) otherwise.
+
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node.stop_training +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.CCIPCANode-class.html b/legacy/api/mdp.nodes.CCIPCANode-class.html new file mode 100755 index 0000000..17a5272 --- /dev/null +++ b/legacy/api/mdp.nodes.CCIPCANode-class.html @@ -0,0 +1,1771 @@ + + + + + mdp.nodes.CCIPCANode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class CCIPCANode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class CCIPCANode

+
+ +
+
+

Candid-Covariance free Incremental Principal Component Analysis (CCIPCA) +extracts the principal components from the input data incrementally.

+
+

+
+
+

Reference

+

More information about Candid-Covariance free Incremental Principal +Component Analysis can be found in Weng J., Zhang Y. and Hwang W., +Candid covariance-free incremental principal component analysis, +IEEE Trans. Pattern Analysis and Machine Intelligence, +vol. 25, 1034--1040, 2003.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + amn_params=(20, 200, 2000, 3), + init_eigen_vectors=None, + var_rel=1, + input_dim=None, + output_dim=None, + dtype=None, + numx_rng=None)
+ Initializes an object of type 'CCIPCANode'.
+ + +
+ +
+ str + + + + + + +
__repr__(self)
+ Print all args.
+ + +
+ +
+   + + + + + + +
_amnesic(self, + n)
+ Return amnesic weights.
+ + +
+ +
+   + + + + + + +
_check_params(self, + *args)
+ Initialize parameters.
+ + +
+ +
+   + + + + + + +
_execute(self, + x, + n=None)
+ Project the input on the first 'n' principal components.
+ + +
+ +
+   + + + + + + +
_inverse(self, + y, + n=None)
+ Project 'y' to the input space using the first 'n' components.
+ + +
+ +
+   + + + + + + +
_train(self, + x)
+ Update the principal components.
+ + +
+ +
+ numpy.ndarray + + + + + + +
execute(self, + x, + n=None)
+ Project the input on the first 'n' principal components. +If 'n' is not set, use all available components.
+ + +
+ +
+ numpy.ndarray + + + + + + +
get_projmatrix(self, + transposed=1)
+ Return the projection matrix.
+ + +
+ +
+ numpy.ndarray + + + + + + +
get_recmatrix(self, + transposed=1)
+ Return the back-projection matrix (i.e. the reconstruction matrix).
+ + +
+ +
+   + + + + + + +
get_reduced_dimsensionality(self)
+ Return reducible dimensionality based on the set thresholds.
+ + +
+ +
+ float + + + + + + +
get_var_tot(self)
+ Return the variance that can be +explained by self._output_dim PCA components.
+ + +
+ +
+ numpy.ndarray + + + + + + +
inverse(self, + y, + n=None)
+ Project 'y' to the input space using the first 'n' components. +If 'n' is not set, use all available components.
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ Update the principal components.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from OnlineNode
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_training_types(self)
+ Return the list of training types supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks. +It can be used when a subclass defines multiple execution methods.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_set_numx_rng(self, + rng) + + +
+ +
+   + + + + + + +
get_current_train_iteration(self)
+ Return the index of the current training iteration.
+ + +
+ +
+   + + + + + + +
get_numx_rng(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
set_numx_rng(self, + rng)
+ Set numx random number generator. +Note that subclasses should overwrite self._set_numx_rng when needed.
+ + +
+ +
+   + + + + + + +
set_training_type(self, + training_type)
+ Sets the training type
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + d
+ Eigenvalues +
+   + + v
+ Eigenvectors +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+ numpy.ndarray + + init_eigen_vectors
+ Return initialized eigen vectors (principal components). +
+

Inherited from object: + __class__ +

+
    Inherited from OnlineNode
+   + + _train_seq
+ List of tuples: +
+   + + numx_rng
+ Numpy seeded random number generator +
+   + + training_type
+ Training type (Read only) +
    Inherited from Node
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + amn_params=(20, 200, 2000, 3), + init_eigen_vectors=None, + var_rel=1, + input_dim=None, + output_dim=None, + dtype=None, + numx_rng=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'CCIPCANode'. +
+
Parameters:
+
    +
  • amn_params (tuple) - Amnesic parameters. +Default set to (n1=20,n2=200,m=2000,c=3). +For n < n1, ~ moving average. For n1 < n < n2 - Transitions from +moving average to amnesia. m denotes the scaling param and c +typically should be between (2-4). Higher values will weigh +recent data.
  • +
  • init_eigen_vectors (numpy.ndarray) - Initial eigen vectors. Default - randomly set.
  • +
  • var_rel (int) - Ratio cutoff to get reduced dimensionality. +(Explained variance of +reduced dimensionality <= beta * Total variance). Default is 1.
  • +
  • input_dim (int) - Dimensionality of the input. +Default is None.
  • +
  • output_dim (int) - Dimensionality of the output. +Default is None.
  • +
  • dtype (numpy.dtype, str) - Datatype of the input. +Default is None.
  • +
  • numx_rng ()
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

__repr__(self) +
(Representation operator) +

+
  +
+ + Print all args. +
+
Returns: str
+
A string that contains all argument names and their values.
+
Overrides: + object.__repr__ +
+
+
+
+ +
+ +
+ + +
+

_amnesic(self, + n) +

+
  +
+ +
+Return amnesic weights.
+
+:param n:
+:type n:
+
+
+
+
+
+
+ +
+ +
+ + +
+

_check_params(self, + *args) +

+
  +
+ +
+Initialize parameters.
+
+:param args:
+:type args:
+
+
+
+
Overrides: + OnlineNode._check_params +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x, + n=None) +

+
  +
+ +
+Project the input on the first 'n' principal components.
+If 'n' is not set, use all available components.
+
+:param x: The data to project.
+:type x: numpy.ndarray
+
+:param n: The number of first principal components to project on.
+:type n: int
+
+:return: The projected data.
+:rtype: numpy.ndarray
+
+
+
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_inverse(self, + y, + n=None) +

+
  +
+ +
+Project 'y' to the input space using the first 'n' components.
+If 'n' is not set, use all available components.
+
+:param y: Data in the output space along the principal components.
+:type y: numpy.ndarray
+
+:param n: The number of first principal components to use.
+:type n: int
+
+:return: The projected data in the input space.
+:rtype: numpy.ndarray
+
+
+
+
Overrides: + Node._inverse +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x) +

+
  +
+ +
+Update the principal components.
+
+:param x: Data vectors.
+:type x: numpy.ndarray
+
+
+
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x, + n=None) +

+
  +
+ + Project the input on the first 'n' principal components. +If 'n' is not set, use all available components. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data to project.
  • +
  • n (int) - The number of first principal components to project on.
  • +
+
Returns: numpy.ndarray
+
The projected data.
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

get_projmatrix(self, + transposed=1) +

+
  +
+ + Return the projection matrix. +
+
Returns: numpy.ndarray
+
The projection matrix.
+
+
+
+ +
+ +
+ + +
+

get_recmatrix(self, + transposed=1) +

+
  +
+ + Return the back-projection matrix (i.e. the reconstruction matrix). +
+
Returns: numpy.ndarray
+
The back-projection matrix.
+
+
+
+ +
+ +
+ + +
+

get_reduced_dimsensionality(self) +

+
  +
+ + Return reducible dimensionality based on the set thresholds. +
+
+
+
+ +
+ +
+ + +
+

get_var_tot(self) +

+
  +
+ + Return the variance that can be +explained by self._output_dim PCA components. +
+
Returns: float
+
The explained variance.
+
+
+
+ +
+ +
+ + +
+

inverse(self, + y, + n=None) +

+
  +
+ + Project 'y' to the input space using the first 'n' components. +If 'n' is not set, use all available components. +
+
Parameters:
+
    +
  • y (numpy.ndarray) - Data in the output space along the principal components.
  • +
  • n (int) - The number of first principal components to use.
  • +
+
Returns: numpy.ndarray
+
The projected data in the input space.
+
Overrides: + Node.inverse +
+
+
+
+ +
+ +
+ + +
+

train(self, + x) +

+
  +
+ + Update the principal components. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - Data vectors.
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

d

+ Eigenvalues +
+
+
+
+ +
+ +
+

v

+ Eigenvectors +
+
+
+
+
+ + + + + + +
+ + + + + +
Property Details[hide private]
+
+ +
+ +
+

init_eigen_vectors

+ Return initialized eigen vectors (principal components). +
+
Get Method:
+
unreachable.init_eigen_vectors(self) + - Return initialized eigen vectors (principal components). +
+
Set Method:
+
unreachable.init_eigen_vectors(self, + init_eigen_vectors=None) + - Set initial eigen vectors (principal components). +
+
Type:
+
numpy.ndarray
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.CCIPCAWhiteningNode-class.html b/legacy/api/mdp.nodes.CCIPCAWhiteningNode-class.html new file mode 100755 index 0000000..2922b08 --- /dev/null +++ b/legacy/api/mdp.nodes.CCIPCAWhiteningNode-class.html @@ -0,0 +1,1423 @@ + + + + + mdp.nodes.CCIPCAWhiteningNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class CCIPCAWhiteningNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class CCIPCAWhiteningNode

+
+ +
+
+
+
+Incrementally updates whitening vectors for the input data using CCIPCA.
+    ##############################
+Candid-Covariance free Incremental Principal Component Analysis (CCIPCA)
+extracts the principal components from the input data incrementally.
+
+:ivar v: Eigenvectors
+
+:ivar d: Eigenvalues
+
+|
+
+.. admonition:: Reference
+
+    More information about Candid-Covariance free Incremental Principal
+    Component Analysis can be found in Weng J., Zhang Y. and Hwang W.,
+    Candid covariance-free incremental principal component analysis,
+    IEEE Trans. Pattern Analysis and Machine Intelligence,
+    vol. 25, 1034--1040, 2003.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
_train(self, + x)
+ Updates whitening vectors.
+ + +
+ +
+ numpy.ndarray + + + + + + +
get_eigenvectors(self)
+ Return the eigenvectors of the covariance matrix.
+ + +
+ +
+ numpy.ndarray + + + + + + +
get_recmatrix(self, + transposed=1)
+ Return the back-projection matrix (i.e. the reconstruction matrix).
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ Updates whitening vectors.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from CCIPCANode
+   + + + + + + +
__init__(self, + amn_params=(20, 200, 2000, 3), + init_eigen_vectors=None, + var_rel=1, + input_dim=None, + output_dim=None, + dtype=None, + numx_rng=None)
+ Initializes an object of type 'CCIPCANode'.
+ + +
+ +
+ str + + + + + + +
__repr__(self)
+ Print all args.
+ + +
+ +
+   + + + + + + +
_amnesic(self, + n)
+ Return amnesic weights.
+ + +
+ +
+   + + + + + + +
_check_params(self, + *args)
+ Initialize parameters.
+ + +
+ +
+   + + + + + + +
_execute(self, + x, + n=None)
+ Project the input on the first 'n' principal components.
+ + +
+ +
+   + + + + + + +
_inverse(self, + y, + n=None)
+ Project 'y' to the input space using the first 'n' components.
+ + +
+ +
+ numpy.ndarray + + + + + + +
execute(self, + x, + n=None)
+ Project the input on the first 'n' principal components. +If 'n' is not set, use all available components.
+ + +
+ +
+ numpy.ndarray + + + + + + +
get_projmatrix(self, + transposed=1)
+ Return the projection matrix.
+ + +
+ +
+   + + + + + + +
get_reduced_dimsensionality(self)
+ Return reducible dimensionality based on the set thresholds.
+ + +
+ +
+ float + + + + + + +
get_var_tot(self)
+ Return the variance that can be +explained by self._output_dim PCA components.
+ + +
+ +
+ numpy.ndarray + + + + + + +
inverse(self, + y, + n=None)
+ Project 'y' to the input space using the first 'n' components. +If 'n' is not set, use all available components.
+ + +
+ +
    Inherited from OnlineNode
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_training_types(self)
+ Return the list of training types supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks. +It can be used when a subclass defines multiple execution methods.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_set_numx_rng(self, + rng) + + +
+ +
+   + + + + + + +
get_current_train_iteration(self)
+ Return the index of the current training iteration.
+ + +
+ +
+   + + + + + + +
get_numx_rng(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
set_numx_rng(self, + rng)
+ Set numx random number generator. +Note that subclasses should overwrite self._set_numx_rng when needed.
+ + +
+ +
+   + + + + + + +
set_training_type(self, + training_type)
+ Sets the training type
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
    Inherited from CCIPCANode
+   + + d
+ Eigenvalues +
+   + + v
+ Eigenvectors +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from CCIPCANode
+ numpy.ndarray + + init_eigen_vectors
+ Return initialized eigen vectors (principal components). +
    Inherited from OnlineNode
+   + + _train_seq
+ List of tuples: +
+   + + numx_rng
+ Numpy seeded random number generator +
+   + + training_type
+ Training type (Read only) +
    Inherited from Node
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

_train(self, + x) +

+
  +
+ +
+Updates whitening vectors.
+
+:param x: Data vectors.
+:type x: numpy.ndarray
+
+
+
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

get_eigenvectors(self) +

+
  +
+ + Return the eigenvectors of the covariance matrix. +
+
Returns: numpy.ndarray
+
The eigenvectors of the covariance matrix.
+
+
+
+ +
+ +
+ + +
+

get_recmatrix(self, + transposed=1) +

+
  +
+ + Return the back-projection matrix (i.e. the reconstruction matrix). +
+
Parameters:
+
    +
  • transposed (bool) - Indicates whether the transpose of the +back-projection matrix should be returned.
  • +
+
Returns: numpy.ndarray
+
The back-projection matrix (either transposed or +non-transposed).
+
Overrides: + CCIPCANode.get_recmatrix +
+
+
+
+ +
+ +
+ + +
+

train(self, + x) +

+
  +
+ + Updates whitening vectors. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - Data vectors.
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.Convolution2DNode-class.html b/legacy/api/mdp.nodes.Convolution2DNode-class.html new file mode 100755 index 0000000..e656ef6 --- /dev/null +++ b/legacy/api/mdp.nodes.Convolution2DNode-class.html @@ -0,0 +1,1534 @@ + + + + + mdp.nodes.Convolution2DNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class Convolution2DNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class Convolution2DNode

+
+ +
+
+

Convolve input data with filter banks.

+

Convolution can be selected to be executed by linear filtering of the data, or +in the frequency domain using a Discrete Fourier Transform.

+

Input data can be given as 3D data, each row being a 2D array +to be convolved with the filters, or as 2D data, in which case +the input_shape argument must be specified.

+

This node depends on scipy.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + filters, + input_shape=None, + approach='fft', + mode='full', + boundary='fill', + fillvalue=0, + output_2d=True, + input_dim=None, + dtype=None)
+ Initializes an object of type 'Convolution2DNode'.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
get_boundary(self) + + +
+ +
+   + + + + + + +
get_filters(self) + + +
+ +
+   + + + + + + +
is_invertible(self)
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable(self)
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+   + + + + + + +
set_boundary(self, + boundary) + + +
+ +
+   + + + + + + +
set_filters(self, + filters) + + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + filters
+ Specifies a set of 2D filters that are +convolved with the input data during execution. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+   + + approach +
+   + + boundary +
+   + + input_shape +
+   + + mode +
+   + + output_shape +
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + filters, + input_shape=None, + approach='fft', + mode='full', + boundary='fill', + fillvalue=0, + output_2d=True, + input_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'Convolution2DNode'. +
+
Parameters:
+
    +
  • filters (numpy.ndarray) - Specifies a set of 2D filters that are +convolved with the input data during execution.
  • +
  • input_shape (tuple) - Is a tuple (h,w) that corresponds to the height and +width of the input 2D data. If the input data is given +in a flattened format, it is first reshaped before +convolution
  • +
  • approach (str) - 'approach' is one of ['linear', 'fft']

    +
      +
    • 'linear': convolution is done by linear filtering;
    • +
    • 'fft': convoltion is done using the Fourier Transform
    • +
    +

    If 'approach' is 'fft', the 'boundary' and 'fillvalue' arguments +are ignored, and are assumed to be 'fill' and 0, respectively. +(Default = 'fft')

  • +
  • mode (str) - Convolution mode, as defined in scipy.signal.convolve2d +'mode' is one of ['valid', 'same', 'full'] +(Default = 'full')
  • +
  • boundary (str) - Boundary condition, as defined in scipy.signal.convolve2d +'boundary' is one of ['fill', 'wrap', 'symm'] +(Default = 'fill')
  • +
  • fillvalue (numeric) - Value to fill pad input arrays with +(Default = 0)
  • +
  • output_2d (bool) - If True, the output array is 2D; the first index +corresponds to data points; every output data point +is the result of flattened convolution results, with +the output of each filter concatenated together.

    +

    If False, the output array is 4D; the format is +data[idx,filter_nr,x,y], with

    +
      +
    • filter_nr: index of convolution filter
    • +
    • idx: data point index
    • +
    • x, y: 2D coordinates
    • +
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ +

Return the list of dtypes supported by this node.

+

Support floating point types with size smaller or equal than 64 bits. +This is because fftpack does not support floating point types larger +than that.

+
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_pre_execution_checks(self, + x) +

+
  +
+ +

This method contains all pre-execution checks.

+

It can be used when a subclass defines multiple execution methods.

+
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data.
  • +
+
Overrides: + Node._pre_execution_checks +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

get_boundary(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

get_filters(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

is_invertible(self) +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable(self) +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Overrides: + Node.is_trainable +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

set_boundary(self, + boundary) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

set_filters(self, + filters) +

+
  +
+ + +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

filters

+ Specifies a set of 2D filters that are +convolved with the input data during execution. +
+
Get Method:
+
get_filters(self) +
+
Set Method:
+
set_filters(self, + filters) +
+
+
+
+
+ + + + + + +
+ + + + + +
Property Details[hide private]
+
+ +
+ +
+

approach

+ +
+
Get Method:
+
unreachable.approach(self) +
+
+
+
+ +
+ +
+

boundary

+ +
+
Get Method:
+
get_boundary(self) +
+
Set Method:
+
set_boundary(self, + boundary) +
+
+
+
+ +
+ +
+

input_shape

+ +
+
Get Method:
+
unreachable.input_shape(self) +
+
+
+
+ +
+ +
+

mode

+ +
+
Get Method:
+
unreachable.mode(self) +
+
+
+
+ +
+ +
+

output_shape

+ +
+
Get Method:
+
unreachable.output_shape(self) +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.CountVectorizerScikitsLearnNode-class.html b/legacy/api/mdp.nodes.CountVectorizerScikitsLearnNode-class.html new file mode 100755 index 0000000..f52ec33 --- /dev/null +++ b/legacy/api/mdp.nodes.CountVectorizerScikitsLearnNode-class.html @@ -0,0 +1,1274 @@ + + + + + mdp.nodes.CountVectorizerScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class CountVectorizerScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class CountVectorizerScikitsLearnNode

+
+ +
+
+

Convert a collection of raw documents to a matrix of token counts +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.CountVectorizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +This implementation produces a sparse representation of the counts using +scipy.sparse.coo_matrix.

+

If you do not provide an a-priori dictionary and you do not use +an analyzer that does some kind of feature selection then the number of +features (the vocabulary size found by analysing the data) might be very +large and the count vectors might not fit in memory.

+

For this case it is either recommended to use the sparse.CountVectorizer +variant of this class or a HashingVectorizer that will reduce the +dimensionality to an arbitrary number by using random projection.

+

Parameters

+

analyzer: WordNGramAnalyzer or CharNGramAnalyzer, optional

+
+
vocabulary: dict, optional
+

A dictionary where keys are tokens and values are indices in the +matrix.

+

This is useful in order to fix the vocabulary in advance.

+
+
max_df : float in range [0.0, 1.0], optional, 1.0 by default
+

When building the vocabulary ignore terms that have a term frequency +strictly higher than the given threshold (corpus specific stop words).

+

This parameter is ignored if vocabulary is not None.

+
+
max_features : optional, None by default
+

If not None, build a vocabulary that only consider the top +max_features ordered by term frequency across the corpus.

+

This parameter is ignored if vocabulary is not None.

+
+
dtype: type, optional
+
Type of the matrix returned by fit_transform() or transform().
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Convert a collection of raw documents to a matrix of token counts +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.CountVectorizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +This implementation produces a sparse representation of the counts using +scipy.sparse.coo_matrix.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Extract token counts out of raw text documents +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.CountVectorizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Learn a vocabulary dictionary of all tokens in the raw documents +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.CountVectorizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Convert a collection of raw documents to a matrix of token counts +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.CountVectorizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +This implementation produces a sparse representation of the counts using +scipy.sparse.coo_matrix.

+

If you do not provide an a-priori dictionary and you do not use +an analyzer that does some kind of feature selection then the number of +features (the vocabulary size found by analysing the data) might be very +large and the count vectors might not fit in memory.

+

For this case it is either recommended to use the sparse.CountVectorizer +variant of this class or a HashingVectorizer that will reduce the +dimensionality to an arbitrary number by using random projection.

+

Parameters

+

analyzer: WordNGramAnalyzer or CharNGramAnalyzer, optional

+
+
vocabulary: dict, optional
+

A dictionary where keys are tokens and values are indices in the +matrix.

+

This is useful in order to fix the vocabulary in advance.

+
+
max_df : float in range [0.0, 1.0], optional, 1.0 by default
+

When building the vocabulary ignore terms that have a term frequency +strictly higher than the given threshold (corpus specific stop words).

+

This parameter is ignored if vocabulary is not None.

+
+
max_features : optional, None by default
+

If not None, build a vocabulary that only consider the top +max_features ordered by term frequency across the corpus.

+

This parameter is ignored if vocabulary is not None.

+
+
dtype: type, optional
+
Type of the matrix returned by fit_transform() or transform().
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Extract token counts out of raw text documents +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.CountVectorizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
raw_documents: iterable
+
an iterable which yields either str, unicode or file objects
+
+

Returns

+

vectors: array, [n_samples, n_features]

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Learn a vocabulary dictionary of all tokens in the raw documents +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.CountVectorizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
raw_documents: iterable
+
an iterable which yields either str, unicode or file objects
+
+

Returns

+

self

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.CuBICANode-class.html b/legacy/api/mdp.nodes.CuBICANode-class.html new file mode 100755 index 0000000..db5ae96 --- /dev/null +++ b/legacy/api/mdp.nodes.CuBICANode-class.html @@ -0,0 +1,1151 @@ + + + + + mdp.nodes.CuBICANode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class CuBICANode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class CuBICANode

+
+ +
+
+

Perform Independent Component Analysis using the CuBICA algorithm.

+

Note that CuBICA is a batch-algorithm, which means that it needs +all input data before it can start and compute the ICs. The +algorithm is here given as a Node for convenience, but it actually +accumulates all inputs it receives. Remember that to avoid running +out of memory when you have many components and many time samples.

+

As an alternative to this batch mode you might consider the telescope +mode (see the docs of the __init__ method).

+
+

Reference

+

Blaschke, T. and Wiskott, L. (2003). +CuBICA: Independent Component Analysis by Simultaneous Third- and +Fourth-Order Cumulant Diagonalization. +IEEE Transactions on Signal Processing, 52(5), pp. 1250-1256.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+ float + + + + + + +
core(self, + data)
+ This is the core routine of a node inheriting from ICANode.
+ + +
+ +
+

Inherited from unreachable.ProjectMatrixMixin: + get_projmatrix, + get_recmatrix +

+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ICANode
+   + + + + + + +
__init__(self, + limit=0.001, + telescope=False, + verbose=False, + whitened=False, + white_comp=None, + white_parm=None, + input_dim=None, + dtype=None)
+ Initializes an object of type 'ICANode'.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_inverse(self, + y) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self)
+ Whiten data if needed and call the 'core' routine to perform ICA.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
inverse(self, + y)
+ Invert y.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Whiten data if needed and call the 'core' routine to perform ICA.
+ + +
+ +
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + convergence
+ The value of the convergence threshold. +
+   + + filters
+ The ICA filters matrix (this is the transposed of the +projection matrix after whitening). +
+   + + white
+ The whitening node used for preprocessing. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

core(self, + data) +

+
  +
+ +

This is the core routine of a node inheriting from ICANode.

+

As a subclass, the CuBICANode define this function to return the achieved +convergence value. This function is also responsible for setting the +ICA filters matrix self.filters.

+
+
Parameters:
+
    +
  • data (numpy.ndarray) - The data you want to perform ICA on.
  • +
+
Returns: float
+
The convergence value, i.e. the maximum angle of rotation.
+
Overrides: + ICANode.core +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

convergence

+ The value of the convergence threshold. +
+
+
+
+ +
+ +
+

filters

+ The ICA filters matrix (this is the transposed of the +projection matrix after whitening). +
+
+
+
+ +
+ +
+

white

+ The whitening node used for preprocessing. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.CutoffNode-class.html b/legacy/api/mdp.nodes.CutoffNode-class.html new file mode 100755 index 0000000..71ab133 --- /dev/null +++ b/legacy/api/mdp.nodes.CutoffNode-class.html @@ -0,0 +1,1156 @@ + + + + + mdp.nodes.CutoffNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class CutoffNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class CutoffNode

+
+ +
+
+

Node to cut off values at specified bounds.

+

Works similar to numpy.clip, but also works when only a lower or upper +bound is specified.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + lower_bound=None, + upper_bound=None, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'CutoffNode'.
+ + +
+ +
+ numpy.ndarray + + + + + + +
_execute(self, + x)
+ Return the clipped data.
+ + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+ numpy.ndarray + + + + + + +
execute(self, + x)
+ Return the clipped data.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + lower_bound=None, + upper_bound=None, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'CutoffNode'. +
+
Parameters:
+
    +
  • lower_bound (numeric) - Data values below this are cut to the +lower_bound value. If lower_bound is None no cutoff +is performed. None is the default.
  • +
  • upper_bound (numeric) - Works like lower_bound. +None is the default.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + Return the clipped data. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - Data to clip.
  • +
+
Returns: numpy.ndarray
+
The clipped data.
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ +

Return the list of dtypes supported by this node.

+

The types can be specified in any format allowed by numpy.dtype.

+
+
Overrides: + Node._get_supported_dtypes +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ + Return the clipped data. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - Data to clip.
  • +
+
Returns: numpy.ndarray
+
The clipped data.
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Overrides: + Node.is_trainable +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.DiscreteHopfieldClassifier-class.html b/legacy/api/mdp.nodes.DiscreteHopfieldClassifier-class.html new file mode 100755 index 0000000..6a4fb7a --- /dev/null +++ b/legacy/api/mdp.nodes.DiscreteHopfieldClassifier-class.html @@ -0,0 +1,1463 @@ + + + + + mdp.nodes.DiscreteHopfieldClassifier + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class DiscreteHopfieldClassifier + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class DiscreteHopfieldClassifier

+
+ +
+
+Node for simulating a simple discrete Hopfield model + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + execute_method=None, + input_dim=None, + output_dim=None, + dtype='b')
+ Initializes an object of type 'DiscreteHopfieldClassifier'
+ + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Returns: +The list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_label(self, + x, + threshold=0)
+ Retrieves patterns from the associative memory.
+ + +
+ +
+   + + + + + + +
_label_one(self, + pattern, + threshold) + + +
+ +
+   + + + + + + +
_stop_training(self) + + +
+ +
+   + + + + + + +
_train(self, + x)
+ Provide the hopfield net with the possible states.
+ + +
+ +
+   + + + + + + +
_train_one(self, + pattern) + + +
+ +
+   + + + + + + +
label(self, + x, + threshold=0)
+ Retrieves patterns from the associative memory.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ Provide the hopfield net with the possible states.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ClassifierNode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_prob(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
prob(self, + x, + *args, + **kwargs)
+ This function does classification or regression on a test vector T +given a model with probability information. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+ float + + load_parameter +
+ int + + memory_size +
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + execute_method=None, + input_dim=None, + output_dim=None, + dtype='b') +
(Constructor) +

+
  +
+ + Initializes an object of type 'DiscreteHopfieldClassifier' +
+
Parameters:
+
    +
  • execute_method (str) - Set to string value 'label', 'rank', or 'prob' to +force the corresponding classification method being used instead +of the standard identity execution (which is used when +execute_method has the default value None). This can be used when +the node is last in a flow, the return value from Flow.execute +will then consist of the classification results.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ +

Return the list of dtypes supported by this node.

+

The types can be specified in any format allowed by numpy.dtype.

+
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_label(self, + x, + threshold=0) +

+
  +
+ + Retrieves patterns from the associative memory. +
+
Parameters:
+
    +
  • x - A matrix having different variables on different columns +and observations on rows.
  • +
  • threshold - numpy.ndarray
  • +
+
Returns:
+
The patterns.
+
Overrides: + ClassifierNode._label +
+
+
+
+ +
+ +
+ + +
+

_label_one(self, + pattern, + threshold) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self) +

+
  +
+ + +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x) +

+
  +
+ + Provide the hopfield net with the possible states. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - A matrix having different variables on different columns +and observations on rows.
  • +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

_train_one(self, + pattern) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

label(self, + x, + threshold=0) +

+
  +
+ + Retrieves patterns from the associative memory. +
+
Parameters:
+
    +
  • x - A matrix having different variables on different columns +and observations on rows.
  • +
  • threshold - numpy.ndarray
  • +
+
Returns:
+
The patterns.
+
Overrides: + ClassifierNode.label +
+
+
+
+ +
+ +
+ + +
+

stop_training(self) +

+
  +
+ +

Stop the training phase.

+

By default, subclasses should overwrite _stop_training to implement +this functionality. The docstring of the _stop_training method +overwrites this docstring.

+
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x) +

+
  +
+ + Provide the hopfield net with the possible states. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - A matrix having different variables on different columns +and observations on rows.
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Property Details[hide private]
+
+ +
+ +
+

load_parameter

+ Note: The quality of memory recall for a Hopfield net breaks down when the load parameter is larger than 0.14. +
+
Get Method:
+
unreachable.load_parameter(self) + - Returns: +The load parameter of the Hopfield net. +
+
Type:
+
float
+
+
+
+ +
+ +
+

memory_size

+ +
+
Get Method:
+
unreachable.memory_size(self) + - Returns: +The Hopfield net's memory size +
+
Type:
+
int
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.ElasticNetCVScikitsLearnNode-class.html b/legacy/api/mdp.nodes.ElasticNetCVScikitsLearnNode-class.html new file mode 100755 index 0000000..f11bd1b --- /dev/null +++ b/legacy/api/mdp.nodes.ElasticNetCVScikitsLearnNode-class.html @@ -0,0 +1,1258 @@ + + + + + mdp.nodes.ElasticNetCVScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class ElasticNetCVScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ElasticNetCVScikitsLearnNode

+
+ +
+
+

Elastic Net model with iterative fitting along a regularization path +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.ElasticNetCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The best model is selected by cross-validation.

+

Parameters

+
+
rho : float, optional
+
float between 0 and 1 passed to ElasticNet (scaling between +l1 and l2 penalties)
+
eps : float, optional
+
Length of the path. eps=1e-3 means that +alpha_min / alpha_max = 1e-3.
+
n_alphas : int, optional
+
Number of alphas along the regularization path
+
alphas : numpy array, optional
+
List of alphas where to compute the models. +If None alphas are set automatically
+
+

Notes

+

See examples/linear_model/lasso_path_with_crossvalidation.py +for an example.

+

To avoid unnecessary memory duplication the X argument of the fit method +should be directly passed as a fortran contiguous numpy array.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Elastic Net model with iterative fitting along a regularization path +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.ElasticNetCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The best model is selected by cross-validation.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.ElasticNetCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit linear model with coordinate descent along decreasing alphas +using cross-validation +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.ElasticNetCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Elastic Net model with iterative fitting along a regularization path +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.ElasticNetCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The best model is selected by cross-validation.

+

Parameters

+
+
rho : float, optional
+
float between 0 and 1 passed to ElasticNet (scaling between +l1 and l2 penalties)
+
eps : float, optional
+
Length of the path. eps=1e-3 means that +alpha_min / alpha_max = 1e-3.
+
n_alphas : int, optional
+
Number of alphas along the regularization path
+
alphas : numpy array, optional
+
List of alphas where to compute the models. +If None alphas are set automatically
+
+

Notes

+

See examples/linear_model/lasso_path_with_crossvalidation.py +for an example.

+

To avoid unnecessary memory duplication the X argument of the fit method +should be directly passed as a fortran contiguous numpy array.

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.ElasticNetCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X : numpy array of shape [n_samples, n_features]

+

Returns

+
+
C : array, shape = [n_samples]
+
Returns predicted values.
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit linear model with coordinate descent along decreasing alphas +using cross-validation +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.ElasticNetCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : numpy array of shape [n_samples,n_features]
+
Training data. Pass directly as fortran contiguous data to avoid +unnecessary memory duplication
+
y : numpy array of shape [n_samples]
+
Target values
+
cv : cross-validation generator, optional
+
If None, KFold will be used.
+
fit_params : kwargs
+
keyword arguments passed to the Lasso fit method
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.ElasticNetScikitsLearnNode-class.html b/legacy/api/mdp.nodes.ElasticNetScikitsLearnNode-class.html new file mode 100755 index 0000000..40ebf42 --- /dev/null +++ b/legacy/api/mdp.nodes.ElasticNetScikitsLearnNode-class.html @@ -0,0 +1,1281 @@ + + + + + mdp.nodes.ElasticNetScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class ElasticNetScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ElasticNetScikitsLearnNode

+
+ +
+
+
+
+Linear Model trained with L1 and L2 prior as regularizer
+This node has been automatically generated by wrapping the ``scikits.learn.linear_model.coordinate_descent.ElasticNet`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+rho=1 is the lasso penalty. Currently, rho <= 0.01 is not
+reliable, unless you supply your own sequence of alpha.
+
+**Parameters**
+
+alpha : float
+    Constant that multiplies the L1 term. Defaults to 1.0
+
+rho : float
+    The ElasticNet mixing parameter, with 0 < rho <= 1.
+
+coef_: ndarray of shape n_features
+    The initial coeffients to warm-start the optimization
+
+fit_intercept: bool
+    Whether the intercept should be estimated or not. If False, the
+    data is assumed to be already centered.
+
+**Notes**
+
+To avoid unnecessary memory duplication the X argument of the fit method
+should be directly passed as a fortran contiguous numpy array.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Linear Model trained with L1 and L2 prior as regularizer +This node has been automatically generated by wrapping the ``scikits.learn.linear_model.coordinate_descent.ElasticNet`` class +from the ``sklearn`` library.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.ElasticNet class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit Elastic Net model with coordinate descent +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.ElasticNet class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +
+
+Linear Model trained with L1 and L2 prior as regularizer
+This node has been automatically generated by wrapping the ``scikits.learn.linear_model.coordinate_descent.ElasticNet`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+rho=1 is the lasso penalty. Currently, rho <= 0.01 is not
+reliable, unless you supply your own sequence of alpha.
+
+**Parameters**
+
+alpha : float
+    Constant that multiplies the L1 term. Defaults to 1.0
+
+rho : float
+    The ElasticNet mixing parameter, with 0 < rho <= 1.
+
+coef_: ndarray of shape n_features
+    The initial coeffients to warm-start the optimization
+
+fit_intercept: bool
+    Whether the intercept should be estimated or not. If False, the
+    data is assumed to be already centered.
+
+**Notes**
+
+To avoid unnecessary memory duplication the X argument of the fit method
+should be directly passed as a fortran contiguous numpy array.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.ElasticNet class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X : numpy array of shape [n_samples, n_features]

+

Returns

+
+
C : array, shape = [n_samples]
+
Returns predicted values.
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit Elastic Net model with coordinate descent +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.ElasticNet class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X: ndarray, (n_samples, n_features)
+
Data
+
y: ndarray, (n_samples)
+
Target
+
precompute : True | False | 'auto' | array-like
+
Whether to use a precomputed Gram matrix to speed up +calculations. If set to 'auto' let us decide. The Gram +matrix can also be passed as argument.
+
Xy : array-like, optional
+
Xy = np.dot(X.T, y) that can be precomputed. It is useful +only when the Gram matrix is precomuted.
+
max_iter: int, optional
+
The maximum number of iterations
+
tol: float, optional
+
The tolerance for the optimization: if the updates are +smaller than 'tol', the optimization code checks the +dual gap for optimality and continues until it is smaller +than tol.
+
+

Notes

+

Coordinate descent is an algorithm that considers each column of +data at a time hence it will automatically convert the X input +as a fortran contiguous numpy array if necessary.

+

To avoid memory re-allocation it is advised to allocate the +initial data in memory directly using that format.

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.EtaComputerNode-class.html b/legacy/api/mdp.nodes.EtaComputerNode-class.html new file mode 100755 index 0000000..1b5c4ab --- /dev/null +++ b/legacy/api/mdp.nodes.EtaComputerNode-class.html @@ -0,0 +1,1243 @@ + + + + + mdp.nodes.EtaComputerNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class EtaComputerNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class EtaComputerNode

+
+ +
+
+

Compute the eta values of the normalized training data.

+

The delta value of a signal is a measure of its temporal +variation, and is defined as the mean of the derivative squared, +i.e. delta(x) = mean(dx/dt(t)^2). delta(x) is zero if +x is a constant signal, and increases if the temporal variation +of the signal is bigger.

+

The eta value is a more intuitive measure of temporal variation, +defined as:

+
+eta(x) = T/(2*pi) * sqrt(delta(x))
+
+

If x is a signal of length T which consists of a sine function +that accomplishes exactly N oscillations, then eta(x)=N.

+

EtaComputerNode normalizes the training data to have unit +variance, such that it is possible to compare the temporal +variation of two signals independently from their scaling.

+Note: - If a data chunk is tlen data points long, this node is going to consider only the first tlen-1 points together with their derivatives. This means in particular that the variance of the signal is not computed on all data points. This behavior is compatible with that of ``SFANode``. - This is an analysis node, i.e. the data is analyzed during training and the results are stored internally. Use the method ``get_eta`` to access them.
+

+
+
+

Reference

+

Wiskott, L. and Sejnowski, T.J. (2002). +Slow Feature Analysis: Unsupervised Learning of Invariances, +Neural Computation, 14(4):715-770.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + dtype=None)
+ Initializes an object of type 'EtaComputerNode'.
+ + +
+ +
+   + + + + + + +
_init_internals(self) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self) + + +
+ +
+   + + + + + + +
_train(self, + data) + + +
+ +
+ numpy.ndarray + + + + + + +
get_eta(self, + t=1)
+ Return the eta values of the data received during the training +phase.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + data)
+ Update the internal structures according to the input data x.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'EtaComputerNode'. +
+
Parameters:
+
    +
  • input_dim (int) - The input dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_init_internals(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_set_input_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_input_dim +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self) +

+
  +
+ + +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + data) +

+
  +
+ + +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

get_eta(self, + t=1) +

+
  +
+ +

Return the eta values of the data received during the training +phase.

+

If the training phase has not been completed yet, call +stop_training.

+
+
Parameters:
+
    +
  • t (int) - Sampling frequency in Hz.

    +

    The original definition in (Wiskott and Sejnowski, 2002) +is obtained for t=self._tlen, while for t=1 (default), +this corresponds to the beta-value defined in +(Berkes and Wiskott, 2005).

  • +
+
Returns: numpy.ndarray
+
The eta values of the data received.
+
+
+
+ +
+ +
+ + +
+

stop_training(self) +

+
  +
+ +

Stop the training phase.

+

By default, subclasses should overwrite _stop_training to implement +this functionality. The docstring of the _stop_training method +overwrites this docstring.

+
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + data) +

+
  +
+ +

Update the internal structures according to the input data x.

+

x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _train to implement their +training phase. The docstring of the _train method overwrites this +docstring.

+

Note: a subclass supporting multiple training phases should implement +the same signature for all the training phases and document the +meaning of the arguments in the _train method doc-string. Having +consistent signatures is a requirement to use the node in a flow.

+
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.FANode-class.html b/legacy/api/mdp.nodes.FANode-class.html new file mode 100755 index 0000000..298f3ec --- /dev/null +++ b/legacy/api/mdp.nodes.FANode-class.html @@ -0,0 +1,1379 @@ + + + + + mdp.nodes.FANode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class FANode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class FANode

+
+ +
+
+

Perform Factor Analysis.

+

The current implementation should be most efficient for long +data sets: the sufficient statistics are collected in the +training phase, and all EM-cycles are performed at +its end.

+

The execute method returns the Maximum A Posteriori estimate +of the latent variables. The generate_input method generates +observations from the prior distribution.

+
+

+
+
+

Reference

+

More information about Factor Analysis can be found in +Max Welling's classnotes: +http://www.ics.uci.edu/~welling/classnotes/classnotes.html , +in the chapter 'Linear Models'.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + tol=0.0001, + max_cycles=100, + verbose=False, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'FANode'.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_stop_training(self) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+ numpy.ndarray + + + + + + +
generate_input(self, + len_or_y=1, + noise=False)
+ Generate data from the prior distribution.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ Update the internal structures according to the input data x.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + A
+ Generating weights (available after training). +
+   + + E_y_mtx
+ Weights for Maximum A Posteriori inference. +
+   + + mu
+ Mean of the input data (available after training). +
+   + + sigma
+ Vector of estimated variance of the noise +for all input components. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + tol=0.0001, + max_cycles=100, + verbose=False, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'FANode'. +
+
Parameters:
+
    +
  • tol (float) - Tolerance (minimum change in log-likelihood before exiting +the EM algorithm).
  • +
  • max_cycles (int) - Maximum number of EM cycles/
  • +
  • verbose (bool) - If true, print log-likelihood during the EM-cycles.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self) +

+
  +
+ + +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x) +

+
  +
+ + +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

generate_input(self, + len_or_y=1, + noise=False) +

+
  +
+ +

Generate data from the prior distribution.

+

If the training phase has not been completed yet, call stop_training.

+
+
Parameters:
+
    +
  • len_or_y - If integer, it specified the number of observation +to generate. If array, it is used as a set of samples +of the latent variables
  • +
  • noise (bool) - If true, generation includes the estimated noise
  • +
+
Returns: numpy.ndarray
+
The generated data.
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

stop_training(self) +

+
  +
+ +

Stop the training phase.

+

By default, subclasses should overwrite _stop_training to implement +this functionality. The docstring of the _stop_training method +overwrites this docstring.

+
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x) +

+
  +
+ +

Update the internal structures according to the input data x.

+

x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _train to implement their +training phase. The docstring of the _train method overwrites this +docstring.

+

Note: a subclass supporting multiple training phases should implement +the same signature for all the training phases and document the +meaning of the arguments in the _train method doc-string. Having +consistent signatures is a requirement to use the node in a flow.

+
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

A

+ Generating weights (available after training). +
+
+
+
+ +
+ +
+

E_y_mtx

+ Weights for Maximum A Posteriori inference. +
+
+
+
+ +
+ +
+

mu

+ Mean of the input data (available after training). +
+
+
+
+ +
+ +
+

sigma

+ Vector of estimated variance of the noise +for all input components. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.FDANode-class.html b/legacy/api/mdp.nodes.FDANode-class.html new file mode 100755 index 0000000..33eb0b2 --- /dev/null +++ b/legacy/api/mdp.nodes.FDANode-class.html @@ -0,0 +1,1577 @@ + + + + + mdp.nodes.FDANode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class FDANode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class FDANode

+
+ +
+
+

Perform a (generalized) Fisher Discriminant Analysis of its +input. It is a supervised node that implements FDA using a +generalized eigenvalue approach.

+Note: FDANode has two training phases and is supervised so make sure to pay attention to the following points when you train it: - call the ``train`` method with *two* arguments: the input data and the labels (see the doc string of the ``train`` method for details). - if you are training the node by hand, call the ``train`` method twice. - if you are training the node using a flow (recommended), the only argument to ``Flow.train`` must be a list of ``(data_point, label)`` tuples or an iterator returning lists of such tuples, *not* a generator. The ``Flow.train`` function can be called just once as usual, since it takes care of *rewinding* the iterator to perform the second training step.
+

Reference

+

More information on Fisher Discriminant Analysis can be found for +example in C. Bishop, Neural Networks for Pattern Recognition, +Oxford Press, pp. 105-112.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'FDANode'.
+ + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + labels) + + +
+ +
+ numpy.ndarray + + + + + + +
_execute(self, + x, + n=None)
+ Compute the output of the FDA projection.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_inverse(self, + y) + + +
+ +
+   + + + + + + +
_stop_fda(self)
+ Solve the eigenvalue problem for the total covariance.
+ + +
+ +
+   + + + + + + +
_stop_means(self)
+ Calculate the class means.
+ + +
+ +
+   + + + + + + +
_train(self, + x, + label)
+ Update the internal structures according to the input data 'x'.
+ + +
+ +
+   + + + + + + +
_train_fda(self, + x, + labels)
+ Gather data for the overall and within-class covariance
+ + +
+ +
+   + + + + + + +
_train_means(self, + x, + labels)
+ Gather data to compute the means and number of elements.
+ + +
+ +
+   + + + + + + +
_update_SW(self, + x, + label)
+ Update the covariance matrix of the class means.
+ + +
+ +
+   + + + + + + +
_update_means(self, + x, + label)
+ Update the internal variables that store the data for the means.
+ + +
+ +
+ numpy.ndarray + + + + + + +
execute(self, + x, + n=None)
+ Compute the output of the FDA projection.
+ + +
+ +
+   + + + + + + +
inverse(self, + y)
+ Invert y.
+ + +
+ +
+   + + + + + + +
train(self, + x, + label)
+ Update the internal structures according to the input data 'x'.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + avg
+ Mean of the input data (available after training). +
+   + + v
+ Transposed of the projection matrix, so that +output = dot(input-self.avg, self.v) (available after training). +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'FDANode'. +
+
Parameters:
+
    +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_check_train_args(self, + x, + labels) +

+
  +
+ + +
+
Overrides: + Node._check_train_args +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x, + n=None) +

+
  +
+ + Compute the output of the FDA projection. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - Data to project.
  • +
  • n (int) - If 'n' is a positive integer, then use the first 'n' components. +Otherwise use all.
  • +
+
Returns: numpy.ndarray
+
The output of the FDA projection.
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_train_seq(self) +

+
  +
+ + +
+
Overrides: + Node._get_train_seq +
+
+
+
+ +
+ +
+ + +
+

_inverse(self, + y) +

+
  +
+ + +
+
Overrides: + Node._inverse +
+
+
+
+ +
+ +
+ + +
+

_stop_fda(self) +

+
  +
+ + Solve the eigenvalue problem for the total covariance. +
+
+
+
+ +
+ +
+ + +
+

_stop_means(self) +

+
  +
+ + Calculate the class means. +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x, + label) +

+
  +
+ + Update the internal structures according to the input data 'x'. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - A matrix having different variables on different columns +and observations on the rows.
  • +
  • label (list, tuple, numpy.ndarray or int) - Can be a list, tuple or array of labels (one for each data +point) or a single label, in which case all input data is assigned +to the same class.
  • +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

_train_fda(self, + x, + labels) +

+
  +
+ + Gather data for the overall and within-class covariance +
+
Parameters:
+
    +
  • x (numpy.ndarray) - Data points from classes specified by labels.
  • +
  • labels (int, list, tuple or numpy.ndarray) - Labels of the data points.
  • +
+
+
+
+ +
+ +
+ + +
+

_train_means(self, + x, + labels) +

+
  +
+ + Gather data to compute the means and number of elements. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data.
  • +
  • labels (list, tuple, numpy.ndarray) - The class labels.
  • +
+
+
+
+ +
+ +
+ + +
+

_update_SW(self, + x, + label) +

+
  +
+ + Update the covariance matrix of the class means. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - Data points from a single class.
  • +
  • label (int) - The label for the specific class.
  • +
+
+
+
+ +
+ +
+ + +
+

_update_means(self, + x, + label) +

+
  +
+ + Update the internal variables that store the data for the means. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - Data points from a single class.
  • +
  • label (int) - The label for that class.
  • +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x, + n=None) +

+
  +
+ + Compute the output of the FDA projection. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - Data to project.
  • +
  • n (int) - If 'n' is a positive integer, then use the first 'n' components. +Otherwise use all.
  • +
+
Returns: numpy.ndarray
+
The output of the FDA projection.
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

inverse(self, + y) +

+
  +
+ +

Invert y.

+

If the node is invertible, compute the input x such that +y = execute(x).

+

By default, subclasses should overwrite _inverse to implement +their inverse function. The docstring of the inverse method +overwrites this docstring.

+
+
Overrides: + Node.inverse +
+
+
+
+ +
+ +
+ + +
+

train(self, + x, + label) +

+
  +
+ + Update the internal structures according to the input data 'x'. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - A matrix having different variables on different columns +and observations on the rows.
  • +
  • label (list, tuple, numpy.ndarray or int) - Can be a list, tuple or array of labels (one for each data +point) or a single label, in which case all input data is assigned +to the same class.
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

avg

+ Mean of the input data (available after training). +
+
+
+
+ +
+ +
+

v

+ Transposed of the projection matrix, so that +output = dot(input-self.avg, self.v) (available after training). +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.FastICANode-class.html b/legacy/api/mdp.nodes.FastICANode-class.html new file mode 100755 index 0000000..dbde5a2 --- /dev/null +++ b/legacy/api/mdp.nodes.FastICANode-class.html @@ -0,0 +1,1295 @@ + + + + + mdp.nodes.FastICANode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class FastICANode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class FastICANode

+
+ +
+
+

Perform Independent Component Analysis using the FastICA algorithm.

+

Note that FastICA is a batch-algorithm. This means that it needs +all input data before it can start and compute the ICs. +The algorithm is here given as a Node for convenience, but it +actually accumulates all inputs it receives. Remember that to avoid +running out of memory when you have many components and many time samples.

+

FastICA does not support the telescope mode (the convergence +criterium is not robust in telescope mode). +criterium is not robust in telescope mode).

+

History:

+
+
    +
  • 1.4.1998 created for Matlab by Jarmo Hurri, Hugo Gavert, Jaakko Sarela, +and Aapo Hyvarinen
  • +
  • 7.3.2003 modified for Python by Thomas Wendler
  • +
  • 3.6.2004 rewritten and adapted for scipy and MDP by MDP's authors
  • +
  • 25.5.2005 now independent from scipy. Requires Numeric or numarray
  • +
  • 26.6.2006 converted to numpy
  • +
  • 14.9.2007 updated to Matlab version 2.5
  • +
+
+
+

Reference

+

Aapo Hyvarinen (1999). +Fast and Robust Fixed-Point Algorithms for Independent Component Analysis +IEEE Transactions on Neural Networks, 10(3):626-634.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + approach='defl', + g='pow3', + guess=None, + fine_g='pow3', + mu=1, + sample_size=1, + fine_tanh=1, + fine_gaus=1, + max_it=5000, + max_it_fine=100, + failures=5, + coarse_limit=None, + limit=0.001, + verbose=False, + whitened=False, + white_comp=None, + white_parm=None, + input_dim=None, + dtype=None)
+ Initializes an object of type 'FastICANode'.
+ + +
+ +
+   + + + + + + +
_get_rsamples(self, + X) + + +
+ +
+ float + + + + + + +
core(self, + data)
+ This is the core routine of a node inheriting from ICANode.
+ + +
+ +
+

Inherited from unreachable.ProjectMatrixMixin: + get_projmatrix, + get_recmatrix +

+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ICANode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_inverse(self, + y) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self)
+ Whiten data if needed and call the 'core' routine to perform ICA.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
inverse(self, + y)
+ Invert y.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Whiten data if needed and call the 'core' routine to perform ICA.
+ + +
+ +
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + convergence
+ The value of the convergence threshold. +
+   + + filters
+ The ICA filters matrix (this is the transposed of the +projection matrix after whitening). +
+   + + white
+ The whitening node used for preprocessing. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + approach='defl', + g='pow3', + guess=None, + fine_g='pow3', + mu=1, + sample_size=1, + fine_tanh=1, + fine_gaus=1, + max_it=5000, + max_it_fine=100, + failures=5, + coarse_limit=None, + limit=0.001, + verbose=False, + whitened=False, + white_comp=None, + white_parm=None, + input_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'FastICANode'. +
+
Parameters:
+
    +
  • approach (str) - approach: Approach to use. Possible values are

    +

    -'defl':deflation +-'symm': symmetric

  • +
  • g (str) - Nonlinearity to use. Possible values are +-'pow3': x^3 +-'tanh': tanh(fine_tanh*x) +-'gaus': x*exp(-fine_gaus*x^2/2) +-'skew': x^2 (for skewed signals)
  • +
  • guess - Initial guess for the mixing matrix (ignored if None).
  • +
  • fine_g (str) - Nonlinearity for fine tuning. Possible values are the same +as for 'g'. Set it to None to disable fine tuning.
  • +
  • mu - Step size.
  • +
  • sample_size (float) - Percentage of samples used in one iteration. +If sample_size < 1, samples are chosen in random order.
  • +
  • fine_tanh (float) - Parameter for 'tanh' nonlinearity.
  • +
  • fine_gaus (float) - Parameter for 'gaus' nonlinearity.
  • +
  • max_it (int) - Maximum number of iterations.
  • +
  • max_it_fine (int) - Maximum number of iterations for fine tuning.
  • +
  • failures (int) - Maximum number of failures to allow in deflation mode.
  • +
  • coarse_limit (float) - Initial convergence threshold, to switch to +fine_g function (i.e. linear to non-linear) even +before reaching the limit and final tuning. Set +it to a value higher than limit to be in effect.
  • +
  • limit (float) - Convergence threshold.
  • +
  • verbose (bool) - Idicates whether information is to be reported about +the operation.
  • +
  • whitened (bool) - Set whitened == True if input data are already whitened. +Otherwise the node will whiten the data itself.
  • +
  • white_comp (int) - If whitened == False, you can set 'white_comp' to the +number of whitened components to keep during the +calculation (i.e., the input dimensions are reduced to +white_comp by keeping the components of largest variance).
  • +
  • white_parm (dict) - A dictionary with additional parameters for whitening. +It is passed directly to the WhiteningNode constructor. For example:

    +
    +>>> white_parm = { 'svd' : True }
    +
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_get_rsamples(self, + X) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

core(self, + data) +

+
  +
+ +

This is the core routine of a node inheriting from ICANode.

+

As a subclass, the FastICANode defines this function to return the +achieved convergence value. This function is also responsible for +setting the ICA filters matrix self.filters.

+
+
Parameters:
+
    +
  • data (numpy.ndarray) - The data you want to perform ICA on.
  • +
+
Returns: float
+
The convergence value.
+
Overrides: + ICANode.core +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

convergence

+ The value of the convergence threshold. +
+
+
+
+ +
+ +
+

filters

+ The ICA filters matrix (this is the transposed of the +projection matrix after whitening). +
+
+
+
+ +
+ +
+

white

+ The whitening node used for preprocessing. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.FastICAScikitsLearnNode-class.html b/legacy/api/mdp.nodes.FastICAScikitsLearnNode-class.html new file mode 100755 index 0000000..020b491 --- /dev/null +++ b/legacy/api/mdp.nodes.FastICAScikitsLearnNode-class.html @@ -0,0 +1,1276 @@ + + + + + mdp.nodes.FastICAScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class FastICAScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class FastICAScikitsLearnNode

+
+ +
+
+

FastICA; a fast algorithm for Independent Component Analysis +This node has been automatically generated by wrapping the scikits.learn.decomposition.fastica_.FastICA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
n_components : int, optional
+
Number of components to use. If none is passed, all are used.
+
algorithm: {'parallel', 'deflation'}
+
Apply parallel or deflational algorithm for FastICA
+
whiten: boolean, optional
+
If whiten is false, the data is already considered to be +whitened, and no whitening is performed.
+
fun: {'logcosh', 'exp', or 'cube'}, or a callable
+
The non-linear function used in the FastICA loop to approximate +negentropy. If a function is passed, it derivative should be +passed as the 'fun_prime' argument.
+
fun_prime: None or a callable
+
The derivative of the non-linearity used.
+
max_iter : int, optional
+
Maximum number of iterations during fit
+
tol : float, optional
+
Tolerance on update at each iteration
+
w_init: None of an (n_components, n_components) ndarray
+
The mixing matrix to be used to initialize the algorithm.
+
+

Attributes

+
+
unmixing_matrix_ : 2D array, [n_components, n_samples]
+
The unmixing matrix
+
+

Methods

+

get_mixing_matrix() :

+
+
    +
  • Returns an estimate of the mixing matrix
  • +
+
+

Notes

+

Implementation based on :

+
    +
  1. Hyvarinen and E. Oja, Independent Component Analysis:
  2. +
+

Algorithms and Applications, Neural Networks, 13(4-5), 2000, +pp. 411-430

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ FastICA; a fast algorithm for Independent Component Analysis +This node has been automatically generated by wrapping the scikits.learn.decomposition.fastica_.FastICA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Apply un-mixing matrix "W" to X to recover the sources +This node has been automatically generated by wrapping the scikits.learn.decomposition.fastica_.FastICA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +S = W * X
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

FastICA; a fast algorithm for Independent Component Analysis +This node has been automatically generated by wrapping the scikits.learn.decomposition.fastica_.FastICA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
n_components : int, optional
+
Number of components to use. If none is passed, all are used.
+
algorithm: {'parallel', 'deflation'}
+
Apply parallel or deflational algorithm for FastICA
+
whiten: boolean, optional
+
If whiten is false, the data is already considered to be +whitened, and no whitening is performed.
+
fun: {'logcosh', 'exp', or 'cube'}, or a callable
+
The non-linear function used in the FastICA loop to approximate +negentropy. If a function is passed, it derivative should be +passed as the 'fun_prime' argument.
+
fun_prime: None or a callable
+
The derivative of the non-linearity used.
+
max_iter : int, optional
+
Maximum number of iterations during fit
+
tol : float, optional
+
Tolerance on update at each iteration
+
w_init: None of an (n_components, n_components) ndarray
+
The mixing matrix to be used to initialize the algorithm.
+
+

Attributes

+
+
unmixing_matrix_ : 2D array, [n_components, n_samples]
+
The unmixing matrix
+
+

Methods

+

get_mixing_matrix() :

+
+
    +
  • Returns an estimate of the mixing matrix
  • +
+
+

Notes

+

Implementation based on :

+
    +
  1. Hyvarinen and E. Oja, Independent Component Analysis:
  2. +
+

Algorithms and Applications, Neural Networks, 13(4-5), 2000, +pp. 411-430

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ + Apply un-mixing matrix "W" to X to recover the sources +This node has been automatically generated by wrapping the scikits.learn.decomposition.fastica_.FastICA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +S = W * X +
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node.stop_training +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.GMMHMMScikitsLearnNode-class.html b/legacy/api/mdp.nodes.GMMHMMScikitsLearnNode-class.html new file mode 100755 index 0000000..9e42a16 --- /dev/null +++ b/legacy/api/mdp.nodes.GMMHMMScikitsLearnNode-class.html @@ -0,0 +1,1308 @@ + + + + + mdp.nodes.GMMHMMScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class GMMHMMScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class GMMHMMScikitsLearnNode

+
+ +
+
+

Hidden Markov Model with Gaussin mixture emissions +This node has been automatically generated by wrapping the scikits.learn.hmm.GMMHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Attributes

+
+
n_states : int (read-only)
+
Number of states in the model.
+
transmat : array, shape (n_states, n_states)
+
Matrix of transition probabilities between states.
+
startprob : array, shape ('n_states`,)
+
Initial state occupation distribution.
+
gmms: array of GMM objects, length 'n_states`
+
GMM emission distributions for each state
+
+

Methods

+
+
eval(X)
+
Compute the log likelihood of X under the HMM.
+
decode(X)
+
Find most likely state sequence for each point in X using the +Viterbi algorithm.
+
rvs(n=1)
+
Generate n samples from the HMM.
+
init(X)
+
Initialize HMM parameters from X.
+
fit(X)
+
Estimate HMM parameters from X using the Baum-Welch algorithm.
+
predict(X)
+
Like decode, find most likely state sequence corresponding to X.
+
score(X)
+
Compute the log likelihood of X under the model.
+
+

Examples

+
+>>> from scikits.learn.hmm import GMMHMM
+>>> GMMHMM(n_states=2, n_mix=10, cvtype='diag')
+... # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE
+GMMHMM(n_mix=10, cvtype='diag', n_states=2, startprob_prior=1.0,
+    startprob=array([ 0.5,  0.5]),
+    transmat=array([[ 0.5,  0.5],
+       [ 0.5,  0.5]]),
+    transmat_prior=1.0,
+    gmms=[GMM(cvtype='diag', n_states=10), GMM(cvtype='diag',
+          n_states=10)])
+

See Also

+

GaussianHMM : HMM with Gaussian emissions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Create a hidden Markov model with GMM emissions. +This node has been automatically generated by wrapping the scikits.learn.hmm.GMMHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Find most likely state sequence corresponding to obs. +This node has been automatically generated by wrapping the scikits.learn.hmm.GMMHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Estimate model parameters. +This node has been automatically generated by wrapping the scikits.learn.hmm.GMMHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +An initialization step is performed before entering the EM +algorithm. If you want to avoid this step, set the keyword +argument init_params to the empty string ''. Likewise, if you +would like just to do an initialization, call this method with +n_iter=0.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Create a hidden Markov model with GMM emissions. +This node has been automatically generated by wrapping the scikits.learn.hmm.GMMHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
n_states : int
+
Number of states.
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Find most likely state sequence corresponding to obs. +This node has been automatically generated by wrapping the scikits.learn.hmm.GMMHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
obs : array_like, shape (n, n_features)
+
List of n_features-dimensional data points. Each row +corresponds to a single data point.
+
maxrank : int
+
Maximum rank to evaluate for rank pruning. If not None, +only consider the top maxrank states in the inner +sum of the forward algorithm recursion. Defaults to None +(no rank pruning). See The HTK Book for more details.
+
beamlogprob : float
+
Width of the beam-pruning beam in log-probability units. +Defaults to -numpy.Inf (no beam pruning). See The HTK +Book for more details.
+
+

Returns

+
+
states : array_like, shape (n,)
+
Index of the most likely states for each observation
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Estimate model parameters. +This node has been automatically generated by wrapping the scikits.learn.hmm.GMMHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +An initialization step is performed before entering the EM +algorithm. If you want to avoid this step, set the keyword +argument init_params to the empty string ''. Likewise, if you +would like just to do an initialization, call this method with +n_iter=0.

+

Parameters

+
+
obs : list
+
List of array-like observation sequences (shape (n_i, n_features)).
+
n_iter : int, optional
+
Number of iterations to perform.
+
thresh : float, optional
+
Convergence threshold.
+
params : string, optional
+
Controls which parameters are updated in the training +process. Can contain any combination of 's' for startprob, +'t' for transmat, 'm' for means, and 'c' for covars, etc. +Defaults to all parameters.
+
init_params : string, optional
+
Controls which parameters are initialized prior to +training. Can contain any combination of 's' for +startprob, 't' for transmat, 'm' for means, and 'c' for +covars, etc. Defaults to all parameters.
+
maxrank : int, optional
+
Maximum rank to evaluate for rank pruning. If not None, +only consider the top maxrank states in the inner +sum of the forward algorithm recursion. Defaults to None +(no rank pruning). See "The HTK Book" for more details.
+
beamlogprob : float, optional
+
Width of the beam-pruning beam in log-probability units. +Defaults to -numpy.Inf (no beam pruning). See "The HTK +Book" for more details.
+
+

Notes

+

In general, logprob should be non-decreasing unless +aggressive pruning is used. Decreasing logprob is generally +a sign of overfitting (e.g. a covariance parameter getting too +small). You can fix this by getting more training data, or +decreasing covars_prior.

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.GMMScikitsLearnNode-class.html b/legacy/api/mdp.nodes.GMMScikitsLearnNode-class.html new file mode 100755 index 0000000..ee25925 --- /dev/null +++ b/legacy/api/mdp.nodes.GMMScikitsLearnNode-class.html @@ -0,0 +1,1435 @@ + + + + + mdp.nodes.GMMScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class GMMScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class GMMScikitsLearnNode

+
+ +
+
+

Gaussian Mixture Model +This node has been automatically generated by wrapping the scikits.learn.mixture.GMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Representation of a Gaussian mixture model probability distribution. +This class allows for easy evaluation of, sampling from, and +maximum-likelihood estimation of the parameters of a GMM distribution.

+

Initializes parameters such that every mixture component has zero +mean and identity covariance.

+

Parameters

+
+
n_states : int, optional
+
Number of mixture components. Defaults to 1.
+
cvtype : string (read-only), optional
+
String describing the type of covariance parameters to +use. Must be one of 'spherical', 'tied', 'diag', 'full'. +Defaults to 'diag'.
+
+

Attributes

+
+
cvtype : string (read-only)
+
String describing the type of covariance parameters used by +the GMM. Must be one of 'spherical', 'tied', 'diag', 'full'.
+
n_features : int
+
Dimensionality of the Gaussians.
+
n_states : int (read-only)
+
Number of mixture components.
+
weights : array, shape (n_states,)
+
Mixing weights for each mixture component.
+
means : array, shape (n_states, n_features)
+
Mean parameters for each mixture component.
+
covars : array
+

Covariance parameters for each mixture component. The shape +depends on cvtype:

+
+
    +
  • (n_states,) if 'spherical',
  • +
  • (n_features, n_features) if 'tied',
  • +
  • (n_states, n_features) if 'diag',
  • +
  • (n_states, n_features, n_features) if 'full'
  • +
+
+
+
converged_ : bool
+
True when convergence was reached in fit(), False +otherwise.
+
+

Methods

+
+
decode(X)
+
Find most likely mixture components for each point in X.
+
eval(X)
+
Compute the log likelihood of X under the model and the +posterior distribution over mixture components.
+
fit(X)
+
Estimate model parameters from X using the EM algorithm.
+
predict(X)
+
Like decode, find most likely mixtures components for each +observation in X.
+
rvs(n=1)
+
Generate n samples from the model.
+
score(X)
+
Compute the log likelihood of X under the model.
+
+

Examples

+
+>>> import numpy as np
+>>> from scikits.learn import mixture
+>>> g = mixture.GMM(n_states=2)
+
+>>> # Generate random observations with two modes centered on 0
+>>> # and 10 to use for training.
+>>> np.random.seed(0)
+>>> obs = np.concatenate((np.random.randn(100, 1),
+...                       10 + np.random.randn(300, 1)))
+>>> g.fit(obs)
+GMM(cvtype='diag', n_states=2)
+>>> g.weights
+array([ 0.25,  0.75])
+>>> g.means
+array([[ 0.05980802],
+       [ 9.94199467]])
+>>> g.covars
+[array([[ 1.01682662]]), array([[ 0.96080513]])]
+>>> np.round(g.weights, 2)
+array([ 0.25,  0.75])
+>>> np.round(g.means, 2)
+array([[ 0.06],
+       [ 9.94]])
+>>> np.round(g.covars, 2)
+... #doctest: +NORMALIZE_WHITESPACE
+array([[[ 1.02]],
+       [[ 0.96]]])
+>>> g.predict([[0], [2], [9], [10]])
+array([0, 0, 1, 1])
+>>> np.round(g.score([[0], [2], [9], [10]]), 2)
+array([-2.32, -4.16, -1.65, -1.19])
+
+>>> # Refit the model on new data (initial parameters remain the
+>>> # same), this time with an even split between the two modes.
+>>> g.fit(20 * [[0]] +  20 * [[10]])
+GMM(cvtype='diag', n_states=2)
+>>> np.round(g.weights, 2)
+array([ 0.5,  0.5])
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Gaussian Mixture Model +This node has been automatically generated by wrapping the scikits.learn.mixture.GMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Representation of a Gaussian mixture model probability distribution. +This class allows for easy evaluation of, sampling from, and +maximum-likelihood estimation of the parameters of a GMM distribution.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Predict label for data. +This node has been automatically generated by wrapping the scikits.learn.mixture.GMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Estimate model parameters with the expectation-maximization +algorithm. +This node has been automatically generated by wrapping the scikits.learn.mixture.GMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +A initialization step is performed before entering the em +algorithm. If you want to avoid this step, set the keyword +argument init_params to the empty string ''. Likewise, if you +would like just to do an initialization, call this method with +n_iter=0.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Gaussian Mixture Model +This node has been automatically generated by wrapping the scikits.learn.mixture.GMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Representation of a Gaussian mixture model probability distribution. +This class allows for easy evaluation of, sampling from, and +maximum-likelihood estimation of the parameters of a GMM distribution.

+

Initializes parameters such that every mixture component has zero +mean and identity covariance.

+

Parameters

+
+
n_states : int, optional
+
Number of mixture components. Defaults to 1.
+
cvtype : string (read-only), optional
+
String describing the type of covariance parameters to +use. Must be one of 'spherical', 'tied', 'diag', 'full'. +Defaults to 'diag'.
+
+

Attributes

+
+
cvtype : string (read-only)
+
String describing the type of covariance parameters used by +the GMM. Must be one of 'spherical', 'tied', 'diag', 'full'.
+
n_features : int
+
Dimensionality of the Gaussians.
+
n_states : int (read-only)
+
Number of mixture components.
+
weights : array, shape (n_states,)
+
Mixing weights for each mixture component.
+
means : array, shape (n_states, n_features)
+
Mean parameters for each mixture component.
+
covars : array
+

Covariance parameters for each mixture component. The shape +depends on cvtype:

+
+
    +
  • (n_states,) if 'spherical',
  • +
  • (n_features, n_features) if 'tied',
  • +
  • (n_states, n_features) if 'diag',
  • +
  • (n_states, n_features, n_features) if 'full'
  • +
+
+
+
converged_ : bool
+
True when convergence was reached in fit(), False +otherwise.
+
+

Methods

+
+
decode(X)
+
Find most likely mixture components for each point in X.
+
eval(X)
+
Compute the log likelihood of X under the model and the +posterior distribution over mixture components.
+
fit(X)
+
Estimate model parameters from X using the EM algorithm.
+
predict(X)
+
Like decode, find most likely mixtures components for each +observation in X.
+
rvs(n=1)
+
Generate n samples from the model.
+
score(X)
+
Compute the log likelihood of X under the model.
+
+

Examples

+
+>>> import numpy as np
+>>> from scikits.learn import mixture
+>>> g = mixture.GMM(n_states=2)
+
+>>> # Generate random observations with two modes centered on 0
+>>> # and 10 to use for training.
+>>> np.random.seed(0)
+>>> obs = np.concatenate((np.random.randn(100, 1),
+...                       10 + np.random.randn(300, 1)))
+>>> g.fit(obs)
+GMM(cvtype='diag', n_states=2)
+>>> g.weights
+array([ 0.25,  0.75])
+>>> g.means
+array([[ 0.05980802],
+       [ 9.94199467]])
+>>> g.covars
+[array([[ 1.01682662]]), array([[ 0.96080513]])]
+>>> np.round(g.weights, 2)
+array([ 0.25,  0.75])
+>>> np.round(g.means, 2)
+array([[ 0.06],
+       [ 9.94]])
+>>> np.round(g.covars, 2)
+... #doctest: +NORMALIZE_WHITESPACE
+array([[[ 1.02]],
+       [[ 0.96]]])
+>>> g.predict([[0], [2], [9], [10]])
+array([0, 0, 1, 1])
+>>> np.round(g.score([[0], [2], [9], [10]]), 2)
+array([-2.32, -4.16, -1.65, -1.19])
+
+>>> # Refit the model on new data (initial parameters remain the
+>>> # same), this time with an even split between the two modes.
+>>> g.fit(20 * [[0]] +  20 * [[10]])
+GMM(cvtype='diag', n_states=2)
+>>> np.round(g.weights, 2)
+array([ 0.5,  0.5])
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Predict label for data. +This node has been automatically generated by wrapping the scikits.learn.mixture.GMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X : array-like, shape = [n_samples, n_features]

+

Returns

+

C : array, shape = (n_samples,)

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Estimate model parameters with the expectation-maximization +algorithm. +This node has been automatically generated by wrapping the scikits.learn.mixture.GMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +A initialization step is performed before entering the em +algorithm. If you want to avoid this step, set the keyword +argument init_params to the empty string ''. Likewise, if you +would like just to do an initialization, call this method with +n_iter=0.

+

Parameters

+
+
X : array_like, shape (n, n_features)
+
List of n_features-dimensional data points. Each row +corresponds to a single data point.
+
n_iter : int, optional
+
Number of EM iterations to perform.
+
min_covar : float, optional
+
Floor on the diagonal of the covariance matrix to prevent +overfitting. Defaults to 1e-3.
+
thresh : float, optional
+
Convergence threshold.
+
params : string, optional
+
Controls which parameters are updated in the training +process. Can contain any combination of 'w' for weights, +'m' for means, and 'c' for covars. Defaults to 'wmc'.
+
init_params : string, optional
+
Controls which parameters are updated in the initialization +process. Can contain any combination of 'w' for weights, +'m' for means, and 'c' for covars. Defaults to 'wmc'.
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.GNBScikitsLearnNode-class.html b/legacy/api/mdp.nodes.GNBScikitsLearnNode-class.html new file mode 100755 index 0000000..68c1923 --- /dev/null +++ b/legacy/api/mdp.nodes.GNBScikitsLearnNode-class.html @@ -0,0 +1,1367 @@ + + + + + mdp.nodes.GNBScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class GNBScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class GNBScikitsLearnNode

+
+ +
+
+

Gaussian Naive Bayes (GNB) +This node has been automatically generated by wrapping the scikits.learn.naive_bayes.GNB class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
Training vector, where n_samples in the number of samples and +n_features is the number of features.
+
y : array, shape = [n_samples]
+
Target vector relative to X
+
+

Attributes

+
+
proba_y : array, shape = [n_classes]
+
probability of each class.
+
theta : array, shape [n_classes * n_features]
+
mean of each feature for the different class
+
sigma : array, shape [n_classes * n_features]
+
variance of each feature for the different class
+
+

Methods

+
+
fit(X, y) : self
+
Fit the model
+
predict(X) : array
+
Predict using the model.
+
predict_proba(X) : array
+
Predict the probability of each class using the model.
+
predict_log_proba(X) : array
+
Predict the log-probability of each class using the model.
+
+

Examples

+
+>>> import numpy as np
+>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
+>>> Y = np.array([1, 1, 1, 2, 2, 2])
+>>> from scikits.learn.naive_bayes import GNB
+>>> clf = GNB()
+>>> clf.fit(X, Y)
+GNB()
+>>> print clf.predict([[-0.8, -1]])
+[1]
+

See also

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Initializes an object of type 'ScikitsNode'.
+ + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_label(self, + x) + + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Transform the data and labels lists to array objects and reshape them.
+ + +
+ +
+   + + + + + + +
label(self, + x)
+ Perform classification on an array of test vectors X. +This node has been automatically generated by wrapping the scikits.learn.naive_bayes.GNB class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit Gaussian Naive Bayes according to X, y +This node has been automatically generated by wrapping the scikits.learn.naive_bayes.GNB class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ClassifierCumulator
+   + + + + + + +
_check_train_args(self, + x, + labels) + + +
+ +
+   + + + + + + +
_train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
+   + + + + + + +
train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
    Inherited from ClassifierNode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_prob(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
prob(self, + x, + *args, + **kwargs)
+ This function does classification or regression on a test vector T +given a model with probability information. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ + Initializes an object of type 'ScikitsNode'. +
+
Parameters:
+
    +
  • input_dim (int) - Dimensionality of the input. +Default is None.
  • +
  • output_dim (int) - Dimensionality of the output. +Default is None.
  • +
  • dtype (numpy.dtype or str) - Datatype of the input. +Default is None.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_label(self, + x) +

+
  +
+ + +
+
Overrides: + ClassifierNode._label +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ +
+Transform the data and labels lists to array objects and reshape them.
+
+
+
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

label(self, + x) +

+
  +
+ +

Perform classification on an array of test vectors X. +This node has been automatically generated by wrapping the scikits.learn.naive_bayes.GNB class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X : array-like, shape = [n_samples, n_features]

+

Returns

+

C : array, shape = [n_samples]

+
+
Overrides: + ClassifierNode.label +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit Gaussian Naive Bayes according to X, y +This node has been automatically generated by wrapping the scikits.learn.naive_bayes.GNB class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
Training vectors, where n_samples is the number of samples +and n_features is the number of features.
+
y : array-like, shape = [n_samples]
+
Target values.
+
+

Returns

+
+
self : object
+
Returns self.
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.GSFANode-class.html b/legacy/api/mdp.nodes.GSFANode-class.html new file mode 100755 index 0000000..e934ec5 --- /dev/null +++ b/legacy/api/mdp.nodes.GSFANode-class.html @@ -0,0 +1,1353 @@ + + + + + mdp.nodes.GSFANode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class GSFANode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class GSFANode

+
+ +
+
+

This node implements "Graph-Based SFA (GSFA)", which is the main +component of hierarchical GSFA (HGSFA).

+

For further information, see: Escalante-B A.-N., Wiskott L, "How to solve +classification and regression problems on high-dimensional data with a +supervised extension of Slow Feature Analysis". Journal of Machine +Learning Research 14:3683-3719, 2013

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + block_size=None, + train_mode=None, + verbose=False)
+ Initializes the GSFA node, which is a subclass of the SFA node.
+ + +
+ +
+   + + + + + + +
_execute(self, + x, + n=None)
+ Compute the output of the slowest functions.
+ + +
+ +
+   + + + + + + +
_inverse(self, + y)
+ This function uses a pseudoinverse of the matrix sf to approximate +an inverse to the transformation.
+ + +
+ +
+   + + + + + + +
_set_range(self) + + +
+ +
+   + + + + + + +
_stop_training(self, + debug=False, + verbose=None) + + +
+ +
+   + + + + + + +
_train(self, + x, + block_size=None, + train_mode=None, + node_weights=None, + edge_weights=None, + verbose=None)
+ This is the main training function of GSFA.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + n=None)
+ Compute the output of the slowest functions. +If 'n' is an integer, then use the first 'n' slowest components.
+ + +
+ +
+   + + + + + + +
inverse(self, + y)
+ This function uses a pseudoinverse of the matrix sf to approximate +an inverse to the transformation.
+ + +
+ +
+   + + + + + + +
stop_training(self, + debug=False, + verbose=None)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + block_size=None, + train_mode=None, + node_weights=None, + edge_weights=None, + verbose=None)
+ This is the main training function of GSFA.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + block_size=None, + train_mode=None, + verbose=False) +
(Constructor) +

+
  +
+ +

Initializes the GSFA node, which is a subclass of the SFA node.

+

The parameters block_size and train_mode are not necessary and it is +recommended to skip them here and provide them as parameters to the +train method. +See the _train method for details.

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x, + n=None) +

+
  +
+ +
+Compute the output of the slowest functions.
+If 'n' is an integer, then use the first 'n' slowest components.
+
+
+
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_inverse(self, + y) +

+
  +
+ +
+This function uses a pseudoinverse of the matrix sf to approximate
+an inverse to the transformation.
+
+
+
+
Overrides: + Node._inverse +
+
+
+
+ +
+ +
+ + +
+

_set_range(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + debug=False, + verbose=None) +

+
  +
+ + +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x, + block_size=None, + train_mode=None, + node_weights=None, + edge_weights=None, + verbose=None) +

+
  +
+ +
+This is the main training function of GSFA.
+
+x: training data (each sample is a row)
+
+The semantics of the remaining parameters depends on the training mode
+(train_mode) parameter in order to train as in standard SFA:
+    set train_mode="regular" (the scale of the features should be
+    corrected afterwards)
+in order to train using the clustered graph:
+    set train_mode="clustered". The cluster size is given by block_size
+    (integer). Variable cluster sizes are possible if block_size is a
+    list of integers. Samples belonging to the same class should be
+    adjacent.
+in order to train for classification:
+    set train_mode=("classification", labels, weight), where labels is
+     an array with the class information and weight is a scalar value
+     (e.g., 1.0).
+in order to train for regression:
+    set train_mode=("serial_regression#", labels, weight), where # is
+    an integer that specifies the block size used by a serial graph,
+    labels is an array with the label information and weight is a
+    scalar value.
+in order to train using a graph without edges:
+    set train_mode="unlabeled".
+in order to train using the serial graph:
+    set train_mode="serial", and use block_size (integer) to specify
+    the group size.
+in order to train using the mixed graph:
+    set train_mode="mixed", and use block_size (integer) to specify
+    the group size.
+in order to train using an arbitrary user-provided graph:
+    set train_mode="graph", specify the node_weights (numpy 1D array),
+    and the edge_weights (numpy 2D array).
+
+
+
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x, + n=None) +

+
  +
+ + Compute the output of the slowest functions. +If 'n' is an integer, then use the first 'n' slowest components. +
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

inverse(self, + y) +

+
  +
+ + This function uses a pseudoinverse of the matrix sf to approximate +an inverse to the transformation. +
+
Overrides: + Node.inverse +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + debug=False, + verbose=None) +

+
  +
+ +

Stop the training phase.

+

By default, subclasses should overwrite _stop_training to implement +this functionality. The docstring of the _stop_training method +overwrites this docstring.

+
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x, + block_size=None, + train_mode=None, + node_weights=None, + edge_weights=None, + verbose=None) +

+
  +
+ +
+This is the main training function of GSFA.
+
+x: training data (each sample is a row)
+
+The semantics of the remaining parameters depends on the training mode
+(train_mode) parameter in order to train as in standard SFA:
+    set train_mode="regular" (the scale of the features should be
+    corrected afterwards)
+in order to train using the clustered graph:
+    set train_mode="clustered". The cluster size is given by block_size
+    (integer). Variable cluster sizes are possible if block_size is a
+    list of integers. Samples belonging to the same class should be
+    adjacent.
+in order to train for classification:
+    set train_mode=("classification", labels, weight), where labels is
+     an array with the class information and weight is a scalar value
+     (e.g., 1.0).
+in order to train for regression:
+    set train_mode=("serial_regression#", labels, weight), where # is
+    an integer that specifies the block size used by a serial graph,
+    labels is an array with the label information and weight is a
+    scalar value.
+in order to train using a graph without edges:
+    set train_mode="unlabeled".
+in order to train using the serial graph:
+    set train_mode="serial", and use block_size (integer) to specify
+    the group size.
+in order to train using the mixed graph:
+    set train_mode="mixed", and use block_size (integer) to specify
+    the group size.
+in order to train using an arbitrary user-provided graph:
+    set train_mode="graph", specify the node_weights (numpy 1D array),
+    and the edge_weights (numpy 2D array).
+
+
+
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.GaussianClassifier-class.html b/legacy/api/mdp.nodes.GaussianClassifier-class.html new file mode 100755 index 0000000..d215215 --- /dev/null +++ b/legacy/api/mdp.nodes.GaussianClassifier-class.html @@ -0,0 +1,1520 @@ + + + + + mdp.nodes.GaussianClassifier + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class GaussianClassifier + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class GaussianClassifier

+
+ +
+
+

Perform a supervised Gaussian classification.

+

Given a set of labelled data, the node fits a gaussian distribution +to each class.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + execute_method=False, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'GaussianClassifier'
+ + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + labels) + + +
+ +
+ float + + + + + + +
_gaussian_prob(self, + x, + lbl_idx)
+ Return the probability of the data points x with respect to a +gaussian.
+ + +
+ +
+ list + + + + + + +
_label(self, + x)
+ Classify the input data using Maximum A-Posteriori.
+ + +
+ +
+   + + + + + + +
_prob(self, + x)
+ Return the posterior probability of each class given the input in a dict.
+ + +
+ +
+   + + + + + + +
_stop_training(self) + + +
+ +
+   + + + + + + +
_train(self, + x, + labels) + + +
+ +
+   + + + + + + +
_update_covs(self, + x, + lbl) + + +
+ +
+ float + + + + + + +
class_probabilities(self, + x)
+ Return the posterior probability of each class given the input.
+ + +
+ +
+ list + + + + + + +
label(self, + x)
+ Classify the input data using Maximum A-Posteriori.
+ + +
+ +
+   + + + + + + +
prob(self, + x)
+ Return the posterior probability of each class given the input in a dict.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + labels)
+ Update the internal structures according to the input data x.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ClassifierNode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + execute_method=False, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'GaussianClassifier' +
+
Parameters:
+
    +
  • execute_method (str) - Set to string value 'label', 'rank', or 'prob' to +force the corresponding classification method being used instead +of the standard identity execution (which is used when +execute_method has the default value None). This can be used when +the node is last in a flow, the return value from Flow.execute +will then consist of the classification results.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_check_train_args(self, + x, + labels) +

+
  +
+ + +
+
Overrides: + Node._check_train_args +
+
+
+
+ +
+ +
+ + +
+

_gaussian_prob(self, + x, + lbl_idx) +

+
  +
+ + Return the probability of the data points x with respect to a +gaussian. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - Input data
  • +
  • lbl_idx
  • +
+
Returns: float
+
The probability of the data points x with respect to a +gaussian
+
+
+
+ +
+ +
+ + +
+

_label(self, + x) +

+
  +
+ + Classify the input data using Maximum A-Posteriori. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data.
  • +
+
Returns: list
+
A list of labels.
+
Overrides: + ClassifierNode._label +
+
+
+
+ +
+ +
+ + +
+

_prob(self, + x) +

+
  +
+ + Return the posterior probability of each class given the input in a dict. +
+
Overrides: + ClassifierNode._prob +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self) +

+
  +
+ + +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x, + labels) +

+
  +
+ + +
+
Parameters:
+
    +
  • x (numpy.ndarray) - Data
  • +
  • labels - Can be a list, tuple or array of labels (one for each data point) +or a single label, in which case all input data is assigned to +the same class.
  • +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

_update_covs(self, + x, + lbl) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

class_probabilities(self, + x) +

+
  +
+ + Return the posterior probability of each class given the input. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data.
  • +
+
Returns: float
+
The posterior probability of each class given the input.
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

label(self, + x) +

+
  +
+ + Classify the input data using Maximum A-Posteriori. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data.
  • +
+
Returns: list
+
A list of labels.
+
Overrides: + ClassifierNode.label +
+
+
+
+ +
+ +
+ + +
+

prob(self, + x) +

+
  +
+ + Return the posterior probability of each class given the input in a dict. +
+
Overrides: + ClassifierNode.prob +
+
+
+
+ +
+ +
+ + +
+

stop_training(self) +

+
  +
+ +

Stop the training phase.

+

By default, subclasses should overwrite _stop_training to implement +this functionality. The docstring of the _stop_training method +overwrites this docstring.

+
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x, + labels) +

+
  +
+ +

Update the internal structures according to the input data x.

+

x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _train to implement their +training phase. The docstring of the _train method overwrites this +docstring.

+

Note: a subclass supporting multiple training phases should implement +the same signature for all the training phases and document the +meaning of the arguments in the _train method doc-string. Having +consistent signatures is a requirement to use the node in a flow.

+
+
Parameters:
+
    +
  • x (numpy.ndarray) - Data
  • +
  • labels - Can be a list, tuple or array of labels (one for each data point) +or a single label, in which case all input data is assigned to +the same class.
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.GaussianHMMScikitsLearnNode-class.html b/legacy/api/mdp.nodes.GaussianHMMScikitsLearnNode-class.html new file mode 100755 index 0000000..ca74f7c --- /dev/null +++ b/legacy/api/mdp.nodes.GaussianHMMScikitsLearnNode-class.html @@ -0,0 +1,1333 @@ + + + + + mdp.nodes.GaussianHMMScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class GaussianHMMScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class GaussianHMMScikitsLearnNode

+
+ +
+
+

Hidden Markov Model with Gaussian emissions +This node has been automatically generated by wrapping the scikits.learn.hmm.GaussianHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Representation of a hidden Markov model probability distribution. +This class allows for easy evaluation of, sampling from, and +maximum-likelihood estimation of the parameters of a HMM.

+

Attributes

+
+
cvtype : string (read-only)
+
String describing the type of covariance parameters used by +the model. Must be one of 'spherical', 'tied', 'diag', 'full'.
+
n_features : int (read-only)
+
Dimensionality of the Gaussian emissions.
+
n_states : int (read-only)
+
Number of states in the model.
+
transmat : array, shape (n_states, n_states)
+
Matrix of transition probabilities between states.
+
startprob : array, shape ('n_states`,)
+
Initial state occupation distribution.
+
means : array, shape (n_states, n_features)
+
Mean parameters for each state.
+
covars : array
+

Covariance parameters for each state. The shape depends on +cvtype:

+
+
    +
  • (n_states,) if 'spherical',
  • +
  • (n_features, n_features) if 'tied',
  • +
  • (n_states, n_features) if 'diag',
  • +
  • (n_states, n_features, n_features) if 'full'
  • +
+
+
+
+

Methods

+
+
eval(X)
+
Compute the log likelihood of X under the HMM.
+
decode(X)
+
Find most likely state sequence for each point in X using the +Viterbi algorithm.
+
rvs(n=1)
+
Generate n samples from the HMM.
+
init(X)
+
Initialize HMM parameters from X.
+
fit(X)
+
Estimate HMM parameters from X using the Baum-Welch algorithm.
+
predict(X)
+
Like decode, find most likely state sequence corresponding to X.
+
score(X)
+
Compute the log likelihood of X under the model.
+
+

Examples

+
+>>> from scikits.learn.hmm import GaussianHMM
+>>> GaussianHMM(n_states=2)
+GaussianHMM(cvtype='diag', n_states=2, means_weight=0, startprob_prior=1.0,
+      startprob=array([ 0.5,  0.5]),
+      transmat=array([[ 0.5,  0.5],
+       [ 0.5,  0.5]]),
+      transmat_prior=1.0, means_prior=None, covars_weight=1,
+      covars_prior=0.01)
+

See Also

+

GMM : Gaussian mixture model

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Create a hidden Markov model with Gaussian emissions. +This node has been automatically generated by wrapping the scikits.learn.hmm.GaussianHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Initializes parameters such that every state has zero mean and +identity covariance.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Find most likely state sequence corresponding to obs. +This node has been automatically generated by wrapping the scikits.learn.hmm.GaussianHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Estimate model parameters. +This node has been automatically generated by wrapping the scikits.learn.hmm.GaussianHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +An initialization step is performed before entering the EM +algorithm. If you want to avoid this step, set the keyword +argument init_params to the empty string ''. Likewise, if you +would like just to do an initialization, call this method with +n_iter=0.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Create a hidden Markov model with Gaussian emissions. +This node has been automatically generated by wrapping the scikits.learn.hmm.GaussianHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Initializes parameters such that every state has zero mean and +identity covariance.

+

Parameters

+
+
n_states : int
+
Number of states.
+
cvtype : string
+
String describing the type of covariance parameters to +use. Must be one of 'spherical', 'tied', 'diag', 'full'. +Defaults to 'diag'.
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Find most likely state sequence corresponding to obs. +This node has been automatically generated by wrapping the scikits.learn.hmm.GaussianHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
obs : array_like, shape (n, n_features)
+
List of n_features-dimensional data points. Each row +corresponds to a single data point.
+
maxrank : int
+
Maximum rank to evaluate for rank pruning. If not None, +only consider the top maxrank states in the inner +sum of the forward algorithm recursion. Defaults to None +(no rank pruning). See The HTK Book for more details.
+
beamlogprob : float
+
Width of the beam-pruning beam in log-probability units. +Defaults to -numpy.Inf (no beam pruning). See The HTK +Book for more details.
+
+

Returns

+
+
states : array_like, shape (n,)
+
Index of the most likely states for each observation
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Estimate model parameters. +This node has been automatically generated by wrapping the scikits.learn.hmm.GaussianHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +An initialization step is performed before entering the EM +algorithm. If you want to avoid this step, set the keyword +argument init_params to the empty string ''. Likewise, if you +would like just to do an initialization, call this method with +n_iter=0.

+

Parameters

+
+
obs : list
+
List of array-like observation sequences (shape (n_i, n_features)).
+
n_iter : int, optional
+
Number of iterations to perform.
+
thresh : float, optional
+
Convergence threshold.
+
params : string, optional
+
Controls which parameters are updated in the training +process. Can contain any combination of 's' for startprob, +'t' for transmat, 'm' for means, and 'c' for covars, etc. +Defaults to all parameters.
+
init_params : string, optional
+
Controls which parameters are initialized prior to +training. Can contain any combination of 's' for +startprob, 't' for transmat, 'm' for means, and 'c' for +covars, etc. Defaults to all parameters.
+
maxrank : int, optional
+
Maximum rank to evaluate for rank pruning. If not None, +only consider the top maxrank states in the inner +sum of the forward algorithm recursion. Defaults to None +(no rank pruning). See "The HTK Book" for more details.
+
beamlogprob : float, optional
+
Width of the beam-pruning beam in log-probability units. +Defaults to -numpy.Inf (no beam pruning). See "The HTK +Book" for more details.
+
+

Notes

+

In general, logprob should be non-decreasing unless +aggressive pruning is used. Decreasing logprob is generally +a sign of overfitting (e.g. a covariance parameter getting too +small). You can fix this by getting more training data, or +decreasing covars_prior.

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.GaussianProcessScikitsLearnNode-class.html b/legacy/api/mdp.nodes.GaussianProcessScikitsLearnNode-class.html new file mode 100755 index 0000000..ea78d4c --- /dev/null +++ b/legacy/api/mdp.nodes.GaussianProcessScikitsLearnNode-class.html @@ -0,0 +1,1468 @@ + + + + + mdp.nodes.GaussianProcessScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class GaussianProcessScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class GaussianProcessScikitsLearnNode

+
+ +
+
+

The Gaussian Process model class. +This node has been automatically generated by wrapping the scikits.learn.gaussian_process.gaussian_process.GaussianProcess class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
regr : string or callable, optional
+

A regression function returning an array of outputs of the linear +regression functional basis. The number of observations n_samples +should be greater than the size p of this basis. +Default assumes a simple constant regression trend. +Here is the list of built-in regression models:

+
+
    +
  • 'constant', 'linear', 'quadratic'
  • +
+
+
+
corr : string or callable, optional
+

A stationary autocorrelation function returning the autocorrelation +between two points x and x'. +Default assumes a squared-exponential autocorrelation model. +Here is the list of built-in correlation models:

+
+
    +
  • 'absolute_exponential', 'squared_exponential',
  • +
  • 'generalized_exponential', 'cubic', 'linear'
  • +
+
+
+
beta0 : double array_like, optional
+
The regression weight vector to perform Ordinary Kriging (OK). +Default assumes Universal Kriging (UK) so that the vector beta of +regression weights is estimated using the maximum likelihood +principle.
+
storage_mode : string, optional
+
A string specifying whether the Cholesky decomposition of the +correlation matrix should be stored in the class (storage_mode = +'full') or not (storage_mode = 'light'). +Default assumes storage_mode = 'full', so that the +Cholesky decomposition of the correlation matrix is stored. +This might be a useful parameter when one is not interested in the +MSE and only plan to estimate the BLUP, for which the correlation +matrix is not required.
+
verbose : boolean, optional
+
A boolean specifying the verbose level. +Default is verbose = False.
+
theta0 : double array_like, optional
+
An array with shape (n_features, ) or (1, ). +The parameters in the autocorrelation model. +If thetaL and thetaU are also specified, theta0 is considered as +the starting point for the maximum likelihood rstimation of the +best set of parameters. +Default assumes isotropic autocorrelation model with theta0 = 1e-1.
+
thetaL : double array_like, optional
+
An array with shape matching theta0's. +Lower bound on the autocorrelation parameters for maximum +likelihood estimation. +Default is None, so that it skips maximum likelihood estimation and +it uses theta0.
+
thetaU : double array_like, optional
+
An array with shape matching theta0's. +Upper bound on the autocorrelation parameters for maximum +likelihood estimation. +Default is None, so that it skips maximum likelihood estimation and +it uses theta0.
+
normalize : boolean, optional
+
Input X and observations y are centered and reduced wrt +means and standard deviations estimated from the n_samples +observations provided. +Default is normalize = True so that data is normalized to ease +maximum likelihood estimation.
+
nugget : double, optional
+
Introduce a nugget effect to allow smooth predictions from noisy +data. +Default assumes a nugget close to machine precision for the sake of +robustness (nugget = 10. * MACHINE_EPSILON).
+
optimizer : string, optional
+

A string specifying the optimization algorithm to be used. +Default uses 'fmin_cobyla' algorithm from scipy.optimize. +Here is the list of available optimizers:

+
+
    +
  • 'fmin_cobyla', 'Welch'
  • +
+
+

'Welch' optimizer is dued to Welch et al., see reference [2]. It +consists in iterating over several one-dimensional optimizations +instead of running one single multi-dimensional optimization.

+
+
random_start : int, optional
+
The number of times the Maximum Likelihood Estimation should be +performed from a random starting point. +The first MLE always uses the specified starting point (theta0), +the next starting points are picked at random according to an +exponential distribution (log-uniform on [thetaL, thetaU]). +Default does not use random starting point (random_start = 1).
+
+

Example

+
+>>> import numpy as np
+>>> from scikits.learn.gaussian_process import GaussianProcess
+>>> X = np.atleast_2d([1., 3., 5., 6., 7., 8.]).T
+>>> y = (X * np.sin(X)).ravel()
+>>> gp = GaussianProcess(theta0=0.1, thetaL=.001, thetaU=1.)
+>>> gp.fit(X, y) # doctest: +ELLIPSIS
+GaussianProcess(normalize=True, ...)
+

Implementation details

+

The presentation implementation is based on a translation of the DACE +Matlab toolbox, see reference [1].

+

References

+
+
[1] H.B. Nielsen, S.N. Lophaven, H. B. Nielsen and J. Sondergaard (2002).
+
DACE - A MATLAB Kriging Toolbox. +http://www2.imm.dtu.dk/~hbn/dace/dace.pdf
+
[2] W.J. Welch, R.J. Buck, J. Sacks, H.P. Wynn, T.J. Mitchell, and M.D.
+
Morris (1992). Screening, predicting, and computer experiments. +Technometrics, 34(1) 15--25. +http://www.jstor.org/pss/1269548
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ The Gaussian Process model class. +This node has been automatically generated by wrapping the scikits.learn.gaussian_process.gaussian_process.GaussianProcess class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ This function evaluates the Gaussian Process model at x. +This node has been automatically generated by wrapping the scikits.learn.gaussian_process.gaussian_process.GaussianProcess class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ The Gaussian Process model fitting method. +This node has been automatically generated by wrapping the scikits.learn.gaussian_process.gaussian_process.GaussianProcess class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

The Gaussian Process model class. +This node has been automatically generated by wrapping the scikits.learn.gaussian_process.gaussian_process.GaussianProcess class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
regr : string or callable, optional
+

A regression function returning an array of outputs of the linear +regression functional basis. The number of observations n_samples +should be greater than the size p of this basis. +Default assumes a simple constant regression trend. +Here is the list of built-in regression models:

+
+
    +
  • 'constant', 'linear', 'quadratic'
  • +
+
+
+
corr : string or callable, optional
+

A stationary autocorrelation function returning the autocorrelation +between two points x and x'. +Default assumes a squared-exponential autocorrelation model. +Here is the list of built-in correlation models:

+
+
    +
  • 'absolute_exponential', 'squared_exponential',
  • +
  • 'generalized_exponential', 'cubic', 'linear'
  • +
+
+
+
beta0 : double array_like, optional
+
The regression weight vector to perform Ordinary Kriging (OK). +Default assumes Universal Kriging (UK) so that the vector beta of +regression weights is estimated using the maximum likelihood +principle.
+
storage_mode : string, optional
+
A string specifying whether the Cholesky decomposition of the +correlation matrix should be stored in the class (storage_mode = +'full') or not (storage_mode = 'light'). +Default assumes storage_mode = 'full', so that the +Cholesky decomposition of the correlation matrix is stored. +This might be a useful parameter when one is not interested in the +MSE and only plan to estimate the BLUP, for which the correlation +matrix is not required.
+
verbose : boolean, optional
+
A boolean specifying the verbose level. +Default is verbose = False.
+
theta0 : double array_like, optional
+
An array with shape (n_features, ) or (1, ). +The parameters in the autocorrelation model. +If thetaL and thetaU are also specified, theta0 is considered as +the starting point for the maximum likelihood rstimation of the +best set of parameters. +Default assumes isotropic autocorrelation model with theta0 = 1e-1.
+
thetaL : double array_like, optional
+
An array with shape matching theta0's. +Lower bound on the autocorrelation parameters for maximum +likelihood estimation. +Default is None, so that it skips maximum likelihood estimation and +it uses theta0.
+
thetaU : double array_like, optional
+
An array with shape matching theta0's. +Upper bound on the autocorrelation parameters for maximum +likelihood estimation. +Default is None, so that it skips maximum likelihood estimation and +it uses theta0.
+
normalize : boolean, optional
+
Input X and observations y are centered and reduced wrt +means and standard deviations estimated from the n_samples +observations provided. +Default is normalize = True so that data is normalized to ease +maximum likelihood estimation.
+
nugget : double, optional
+
Introduce a nugget effect to allow smooth predictions from noisy +data. +Default assumes a nugget close to machine precision for the sake of +robustness (nugget = 10. * MACHINE_EPSILON).
+
optimizer : string, optional
+

A string specifying the optimization algorithm to be used. +Default uses 'fmin_cobyla' algorithm from scipy.optimize. +Here is the list of available optimizers:

+
+
    +
  • 'fmin_cobyla', 'Welch'
  • +
+
+

'Welch' optimizer is dued to Welch et al., see reference [2]. It +consists in iterating over several one-dimensional optimizations +instead of running one single multi-dimensional optimization.

+
+
random_start : int, optional
+
The number of times the Maximum Likelihood Estimation should be +performed from a random starting point. +The first MLE always uses the specified starting point (theta0), +the next starting points are picked at random according to an +exponential distribution (log-uniform on [thetaL, thetaU]). +Default does not use random starting point (random_start = 1).
+
+

Example

+
+>>> import numpy as np
+>>> from scikits.learn.gaussian_process import GaussianProcess
+>>> X = np.atleast_2d([1., 3., 5., 6., 7., 8.]).T
+>>> y = (X * np.sin(X)).ravel()
+>>> gp = GaussianProcess(theta0=0.1, thetaL=.001, thetaU=1.)
+>>> gp.fit(X, y) # doctest: +ELLIPSIS
+GaussianProcess(normalize=True, ...)
+

Implementation details

+

The presentation implementation is based on a translation of the DACE +Matlab toolbox, see reference [1].

+

References

+
+
[1] H.B. Nielsen, S.N. Lophaven, H. B. Nielsen and J. Sondergaard (2002).
+
DACE - A MATLAB Kriging Toolbox. +http://www2.imm.dtu.dk/~hbn/dace/dace.pdf
+
[2] W.J. Welch, R.J. Buck, J. Sacks, H.P. Wynn, T.J. Mitchell, and M.D.
+
Morris (1992). Screening, predicting, and computer experiments. +Technometrics, 34(1) 15--25. +http://www.jstor.org/pss/1269548
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

This function evaluates the Gaussian Process model at x. +This node has been automatically generated by wrapping the scikits.learn.gaussian_process.gaussian_process.GaussianProcess class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array_like
+
An array with shape (n_eval, n_features) giving the point(s) at +which the prediction(s) should be made.
+
eval_MSE : boolean, optional
+
A boolean specifying whether the Mean Squared Error should be +evaluated or not. +Default assumes evalMSE = False and evaluates only the BLUP (mean +prediction).
+
batch_size : integer, optional
+
An integer giving the maximum number of points that can be +evaluated simulatneously (depending on the available memory). +Default is None so that all given points are evaluated at the same +time.
+
+

Returns

+
+
y : array_like
+
An array with shape (n_eval, ) with the Best Linear Unbiased +Prediction at x.
+
MSE : array_like, optional (if eval_MSE == True)
+
An array with shape (n_eval, ) with the Mean Squared Error at x.
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

The Gaussian Process model fitting method. +This node has been automatically generated by wrapping the scikits.learn.gaussian_process.gaussian_process.GaussianProcess class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : double array_like
+
An array with shape (n_samples, n_features) with the input at which +observations were made.
+
y : double array_like
+
An array with shape (n_features, ) with the observations of the +scalar output to be predicted.
+
+

Returns

+
+
gp : self
+
A fitted Gaussian Process model object awaiting data to perform +predictions.
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.GeneralExpansionNode-class.html b/legacy/api/mdp.nodes.GeneralExpansionNode-class.html new file mode 100755 index 0000000..1dde7e1 --- /dev/null +++ b/legacy/api/mdp.nodes.GeneralExpansionNode-class.html @@ -0,0 +1,1264 @@ + + + + + mdp.nodes.GeneralExpansionNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class GeneralExpansionNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class GeneralExpansionNode

+
+ +
+
+

Expands the input samples by applying to them one or more functions provided.

+

The functions to be applied are specified by a list [f_0, ..., f_k], where +f_i, for 0 <= i <= k, denotes a particular function. +The input data given to these functions is a two-dimensional array and +the output is another two-dimensional array. The dimensionality of the output +should depend only on the dimensionality of the input. +Given a two-dimensional input array x, the output of the node +is then [f_0(x), ..., f_k(x)], that is, the concatenation of each one of +the computed arrays f_i(x).

+

This node has been designed to facilitate nonlinear, fixed but arbitrary +transformations of the data samples within MDP flows.

+

Original code contributed by Alberto Escalante.

+
+

+
+
+

Example

+
+>>> import mdp
+>>> from mdp import numx
+
+>>> def identity(x): return x
+
+>>> def u3(x): return numx.absolute(x)**3 #A simple nonlinear transformation
+
+>>> def norm2(x): #Computes the norm of each sample returning an Nx1 array
+>>>     return ((x**2).sum(axis=1)**0.5).reshape((-1,1))
+
+>>> x = numx.array([[-2., 2.], [0.2, 0.3], [0.6, 1.2]])
+>>> gen = mdp.nodes.GeneralExpansionNode(funcs=[identity, u3, norm2])
+>>> print(gen.execute(x))
+>>> [[-2.          2.          8.          8.          2.82842712]
+>>>  [ 0.2         0.3         0.008       0.027       0.36055513]
+>>>  [ 0.6         1.2         0.216       1.728       1.34164079]]
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + funcs, + input_dim=None, + dtype=None)
+ Initializes an object of type 'GeneralExpansionNode'.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+ int + + + + + + +
expanded_dim(self, + n)
+ The expanded dim is computed by directly applying the expansion +functions f_i to a zero input of dimension n.
+ + +
+ +
+ list + + + + + + +
output_sizes(self, + n)
+ Return the individual output sizes of each expansion function +when the input has lenght n.
+ + +
+ +
+ numpy.ndarray + + + + + + +
pseudo_inverse(self, + x, + use_hint=None)
+ Calculate a pseudo inverse of the expansion using +scipy.optimize.
+ + +
+ +
+

Inherited from unreachable._ExpansionNode (private): + _set_input_dim, + _set_output_dim +

+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + funcs, + input_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'GeneralExpansionNode'. +
+
Parameters:
+
    +
  • funcs (list) - Functions f_i that realize the expansion.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

expanded_dim(self, + n) +

+
  +
+ + The expanded dim is computed by directly applying the expansion +functions f_i to a zero input of dimension n. +
+
Parameters:
+
    +
  • n (int) - Input dimension.
  • +
+
Returns: int
+
Sum of the output sizes of each output function.
+
Overrides: + unreachable._ExpansionNode.expanded_dim +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Overrides: + Node.is_trainable +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

output_sizes(self, + n) +

+
  +
+ + Return the individual output sizes of each expansion function +when the input has lenght n. +
+
Parameters:
+
    +
  • n - Input dimension,
  • +
+
Returns: list
+
The individual output sizes of each expansion function.
+
+
+
+ +
+ +
+ + +
+

pseudo_inverse(self, + x, + use_hint=None) +

+
  +
+ +

Calculate a pseudo inverse of the expansion using +scipy.optimize.

+

This method requires scipy.

+
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data.
  • +
  • use_hint (numpy.ndarray or bool) - When calculating a pseudo inverse of the expansion, +the hint determines the starting point for the approximation. +For details on this parameter see the function +invert_exp_funcs2 in mdp.utils.routines.py.
  • +
+
Returns: numpy.ndarray
+
The pseudo inverse.
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.GenericUnivariateSelectScikitsLearnNode-class.html b/legacy/api/mdp.nodes.GenericUnivariateSelectScikitsLearnNode-class.html new file mode 100755 index 0000000..0d197cc --- /dev/null +++ b/legacy/api/mdp.nodes.GenericUnivariateSelectScikitsLearnNode-class.html @@ -0,0 +1,1193 @@ + + + + + mdp.nodes.GenericUnivariateSelectScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class GenericUnivariateSelectScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class GenericUnivariateSelectScikitsLearnNode

+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.GenericUnivariateSelect class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.GenericUnivariateSelect class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute.

+

Every subclass must take care of up- or down-casting the internal +structures to match this argument (use _refcast private +method when possible).

+
+
Overrides: + object.__init__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ + This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.GenericUnivariateSelect class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ + This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.GenericUnivariateSelect class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.GrowingNeuralGasExpansionNode-class.html b/legacy/api/mdp.nodes.GrowingNeuralGasExpansionNode-class.html new file mode 100755 index 0000000..9cf4e8c --- /dev/null +++ b/legacy/api/mdp.nodes.GrowingNeuralGasExpansionNode-class.html @@ -0,0 +1,1444 @@ + + + + + mdp.nodes.GrowingNeuralGasExpansionNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class GrowingNeuralGasExpansionNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class GrowingNeuralGasExpansionNode

+
+ +
+
+

Perform a trainable radial basis expansion, where the centers and +sizes of the basis functions are learned through a growing neural +gas.

+

The positions of RBFs correspond to position of the nodes of the neural gas +The sizes of the RBFs correspond to mean distance to the neighbouring nodes.

+
+

+
+Note: Adjust the maximum number of nodes to control the dimension of the expansion.
+

+
+
+

Reference

+

More information on this expansion type can be found in: +B. Fritzke. +Growing cell structures-a self-organizing network for unsupervised +and supervised learning. Neural Networks 7, p. 1441--1460 (1994).

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + start_poss=None, + eps_b=0.2, + eps_n=0.006, + max_age=50, + lambda_=100, + alpha=0.5, + d=0.995, + max_nodes=100, + input_dim=None, + dtype=None)
+ Initializes an object of type 'GrowingNeuralGasExpansionNode'.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Stop the training phase.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from GrowingNeuralGasNode
+   + + + + + + +
_add_edge(self, + from_, + to_) + + +
+ +
+   + + + + + + +
_add_node(self, + pos) + + +
+ +
+   + + + + + + +
_get_nearest_nodes(self, + x)
+ Return the two nodes in the graph that are nearest to x and their +squared distances.
+ + +
+ +
+   + + + + + + +
_insert_new_node(self)
+ Insert a new node in the graph where it is more necessary (i.e. +where the error is the largest).
+ + +
+ +
+   + + + + + + +
_move_node(self, + node, + x, + eps)
+ Move a node by eps in the direction x.
+ + +
+ +
+   + + + + + + +
_remove_old_edges(self, + edges)
+ Remove all edges older than the maximal age.
+ + +
+ +
+   + + + + + + +
_train(self, + input) + + +
+ +
+   + + + + + + +
get_nodes_position(self) + + +
+ +
+ tuple + + + + + + +
nearest_neighbor(self, + input)
+ Assign each point in the input data to the nearest node in +the graph. Return the list of the nearest node instances, and +the list of distances.
+ + +
+ +
+   + + + + + + +
train(self, + input)
+ Update the internal structures according to the input data x.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
    Inherited from GrowingNeuralGasNode
+   + + graph
+ The corresponding mdp.graph.Graph object. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + start_poss=None, + eps_b=0.2, + eps_n=0.006, + max_age=50, + lambda_=100, + alpha=0.5, + d=0.995, + max_nodes=100, + input_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ +
+Initializes an object of type 'GrowingNeuralGasExpansionNode'.
+
+:param start_poss: Sequence of two arrays containing the position of the
+    first two nodes in the GNG graph. If unspecified, the initial nodes
+    are chosen with a random position generated from a gaussian 
+    distribution with zero mean and unit variance.
+:type start_poss: tuple or array
+
+:param eps_b: Coefficient of movement of the nearest node to a new data
+    point. Typical values are 0 < eps_b << 1 .
+:type eps_b: float
+
+:param eps_n: coefficient of movement of the neighbours of the nearest
+    node to a new data point. Typical values are 0 < eps_n << eps_b .
+:type eps_n: float
+
+:param max_age: Remove an edge after `max_age` updates. Typical values are
+    10 < max_age < lambda.
+:type max_age: int
+
+:param lambda_: Insert a new node after `lambda_` steps. Typical values are O(100).
+:type lambda_: int
+
+:param alpha: When a new node is inserted, multiply the error of the
+    nodes from which it generated by 0<alpha<1. A typical value is 0.5.
+:type alpha: float
+
+:param d: Each step the error of the nodes are multiplied by 0<d<1.
+    Typical values are close to 1.
+:type d: float
+
+:param max_nodes: Maximum number of nodes in the neural gas, therefore an
+    upper bound to the output dimension of the expansion.
+:type max_nodes: int
+
+:param input_dim: The input dimensionality.
+:type input_dim: int
+
+:param dtype: The datatype.
+:type dtype: numpy.dtype or str
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_set_input_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_input_dim +
+
+
+
+ +
+ +
+ + +
+

_set_output_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_output_dim +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self) +

+
  +
+ + +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Overrides: + Node.is_trainable +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

stop_training(self) +

+
  +
+ +

Stop the training phase.

+

By default, subclasses should overwrite _stop_training to implement +this functionality. The docstring of the _stop_training method +overwrites this docstring.

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.GrowingNeuralGasNode-class.html b/legacy/api/mdp.nodes.GrowingNeuralGasNode-class.html new file mode 100755 index 0000000..8334600 --- /dev/null +++ b/legacy/api/mdp.nodes.GrowingNeuralGasNode-class.html @@ -0,0 +1,1568 @@ + + + + + mdp.nodes.GrowingNeuralGasNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class GrowingNeuralGasNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class GrowingNeuralGasNode

+
+ +
+
+

Learn the topological structure of the input data by building a +corresponding graph approximation.

+

The algorithm expands on the original Neural Gas algorithm +(see mdp.nodes NeuralGasNode) in that the algorithm adds new nodes are +added to the graph as more data becomes available. Im this way, +if the growth rate is appropriate, one can avoid overfitting or +underfitting the data.

+
+

+
+
+

Reference

+

More information about the Growing Neural Gas algorithm can be found in +B. Fritzke, A Growing Neural Gas Network Learns Topologies, in G. Tesauro, +D. S. Touretzky, and T. K. Leen (editors), Advances in Neural Information +Processing Systems 7, pages 625-632. MIT Press, Cambridge MA, 1995.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + start_poss=None, + eps_b=0.2, + eps_n=0.006, + max_age=50, + lambda_=100, + alpha=0.5, + d=0.995, + max_nodes=2147483647, + input_dim=None, + dtype=None)
+ Initializes an object of type 'GrowingNeuralGasNode'.
+ + +
+ +
+   + + + + + + +
_add_edge(self, + from_, + to_) + + +
+ +
+   + + + + + + +
_add_node(self, + pos) + + +
+ +
+   + + + + + + +
_get_nearest_nodes(self, + x)
+ Return the two nodes in the graph that are nearest to x and their +squared distances.
+ + +
+ +
+   + + + + + + +
_insert_new_node(self)
+ Insert a new node in the graph where it is more necessary (i.e. +where the error is the largest).
+ + +
+ +
+   + + + + + + +
_move_node(self, + node, + x, + eps)
+ Move a node by eps in the direction x.
+ + +
+ +
+   + + + + + + +
_remove_old_edges(self, + edges)
+ Remove all edges older than the maximal age.
+ + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_train(self, + input) + + +
+ +
+   + + + + + + +
get_nodes_position(self) + + +
+ +
+ tuple + + + + + + +
nearest_neighbor(self, + input)
+ Assign each point in the input data to the nearest node in +the graph. Return the list of the nearest node instances, and +the list of distances.
+ + +
+ +
+   + + + + + + +
train(self, + input)
+ Update the internal structures according to the input data x.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + graph
+ The corresponding mdp.graph.Graph object. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + start_poss=None, + eps_b=0.2, + eps_n=0.006, + max_age=50, + lambda_=100, + alpha=0.5, + d=0.995, + max_nodes=2147483647, + input_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ +
+Initializes an object of type 'GrowingNeuralGasNode'.
+
+:param start_poss: Sequence of two arrays containing the position of the
+    first two nodes in the GNG graph. If unspecified, the
+    initial nodes are chosen with a random position generated
+    from a gaussian distribution with zero mean and unit
+    variance.
+:type start_poss: list, tuple, numpy.ndarray
+
+:param eps_b: Coefficient of movement of the nearest node to a new data
+    point. Typical values are 0 < eps_b << 1 .
+
+    Default: 0.2
+:type eps_b: float
+
+:param eps_n: Coefficient of movement of the neighbours of the nearest
+    node to a new data point. Typical values are
+    0 < eps_n << eps_b .
+
+    Default: 0.006
+:type eps_n: float
+
+:param max_age: Remove an edge after `max_age` updates. Typical values are
+    10 < max_age < lambda.
+
+    Default: 50
+:type max_age: int
+
+:param lambda_: Insert a new node after `lambda_` steps. Typical values are O(100).
+
+    Default: 100
+:type lambda_: int
+
+:param alpha: When a new node is inserted, multiply the error of the
+    nodes from which it generated by 0<alpha<1. A typical value
+    is 0.5.
+
+    Default: 0.5
+:type alpha: float
+
+:param d: Each step the error of the nodes are multiplied by 0<d<1.
+    Typical values are close to 1.
+
+    Default: 0.995
+:type d: float
+
+:param max_nodes: Maximal number of nodes in the graph.
+:type max_nodes: int
+
+:param input_dim: The input dimensionality.
+:type input_dim: int
+
+:param dtype: The datatype.
+:type dtype: numpy.dtype or str
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_add_edge(self, + from_, + to_) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_add_node(self, + pos) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_get_nearest_nodes(self, + x) +

+
  +
+ +
+Return the two nodes in the graph that are nearest to x and their
+squared distances.
+:param x: Coordinates of point to compute distance to in order to
+    specifiy nearest nodes.
+:type x: numpy.ndarray
+
+:return: The coordinates of the nearest two nodes and their
+    distances to x. ([node1, node2], [dist1, dist2])
+:rtype: tuple
+
+
+
+
+
+
+ +
+ +
+ + +
+

_insert_new_node(self) +

+
  +
+ + Insert a new node in the graph where it is more necessary (i.e. +where the error is the largest). +
+
+
+
+ +
+ +
+ + +
+

_move_node(self, + node, + x, + eps) +

+
  +
+ + Move a node by eps in the direction x. +
+
Parameters:
+
    +
  • node () - The node to move.
  • +
  • x (numpy.ndarray) - The point to move in the direction of.
  • +
  • eps (float) - The distance to move.
  • +
+
+
+
+ +
+ +
+ + +
+

_remove_old_edges(self, + edges) +

+
  +
+ + Remove all edges older than the maximal age. +
+
Parameters:
+
    +
  • edges () - Candidates that are considered to be removed.
  • +
+
+
+
+ +
+ +
+ + +
+

_set_input_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_input_dim +
+
+
+
+ +
+ +
+ + +
+

_train(self, + input) +

+
  +
+ + +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

get_nodes_position(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

nearest_neighbor(self, + input) +

+
  +
+ +

Assign each point in the input data to the nearest node in +the graph. Return the list of the nearest node instances, and +the list of distances.

+

Executing this function will close the training phase if +necessary.

+
+
Parameters:
+
    +
  • input (numpy.ndarray) - Points to find the nearest node in the graph to.
  • +
+
Returns: tuple
+
The list of the nearest node instances and +the list of distances.
+
+
+
+ +
+ +
+ + +
+

train(self, + input) +

+
  +
+ +

Update the internal structures according to the input data x.

+

x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _train to implement their +training phase. The docstring of the _train method overwrites this +docstring.

+

Note: a subclass supporting multiple training phases should implement +the same signature for all the training phases and document the +meaning of the arguments in the _train method doc-string. Having +consistent signatures is a requirement to use the node in a flow.

+
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

graph

+ The corresponding mdp.graph.Graph object. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.HLLENode-class.html b/legacy/api/mdp.nodes.HLLENode-class.html new file mode 100755 index 0000000..4dbe207 --- /dev/null +++ b/legacy/api/mdp.nodes.HLLENode-class.html @@ -0,0 +1,1198 @@ + + + + + mdp.nodes.HLLENode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class HLLENode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class HLLENode

+
+ +
+
+

Perform a Hessian Locally Linear Embedding analysis on the data.

+
+

+
+Note: Many methods are inherited from LLENode, including _execute(), _adjust_output_dim(), etc. The main advantage of the Hessian estimator is to limit distortions of the input manifold. Once the model has been trained, it is sufficient (and much less computationally intensive) to determine projections for new points using the LLE framework.
+

+
+
+

Reference

+

Implementation based on algorithm outlined in +Donoho, D. L., and Grimes, C., Hessian Eigenmaps: new locally linear +embedding techniques for high-dimensional data, Proceedings of the +National Academy of Sciences 100(10): 5591-5596, 2003.

+

Original code contributed by: Jake Vanderplas, University of Washington

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + k, + r=0.001, + svd=False, + verbose=False, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'HLLENode'.
+ + +
+ +
+   + + + + + + +
_stop_training(self)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Concatenate the collected data in a single array.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from LLENode
+   + + + + + + +
_adjust_output_dim(self)
+ This function is called if we need to compute the number of +output dimensions automatically as some quantities that are +useful later can be precalculated..
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from LLENode
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + desired_variance
+ Variance limit used to compute intrinsic +dimensionality. +
+   + + training_projection
+ The LLE projection of the training data +(defined when training finishes). +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + k, + r=0.001, + svd=False, + verbose=False, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'HLLENode'. +
+
Parameters:
+
    +
  • k (int) - Number of nearest neighbors to use; the node will raise +an MDPWarning if k is smaller than +k >= 1 + output_dim + output_dim*(output_dim+1)/2, +because in this case a less efficient computation must be +used, and the ablgorithm can become unstable.
  • +
  • r (float) - Regularization constant; as opposed to LLENode, it is +not possible to compute this constant automatically; it is +only used during execution.
  • +
  • svd (bool) - If true, use SVD to compute the projection matrix; +SVD is slower but more stable.
  • +
  • verbose (bool) - If true, displays information about the progress +of the algorithm.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int or float) - number of dimensions to output or a float between 0.0 +and 1.0. In the latter case, output_dim specifies the +desired fraction of variance to be exaplained, and the +final number of output dimensions is known at the end of +training (e.g., for 'output_dim=0.95' the algorithm will +keep as many dimensions as necessary in order to explain +95% of the input variance).
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

stop_training(self) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

desired_variance

+ Variance limit used to compute intrinsic +dimensionality. +
+
+
+
+ +
+ +
+

training_projection

+ The LLE projection of the training data +(defined when training finishes). +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.HistogramNode-class.html b/legacy/api/mdp.nodes.HistogramNode-class.html new file mode 100755 index 0000000..dfa72af --- /dev/null +++ b/legacy/api/mdp.nodes.HistogramNode-class.html @@ -0,0 +1,1151 @@ + + + + + mdp.nodes.HistogramNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class HistogramNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class HistogramNode

+
+ +
+
+

Node which stores a history of the data during its training phase.

+

The data history is stored in self.data_hist and can also be deleted to +free memory. Alternatively it can be automatically pickled to disk.

+

Note that data is only stored during training.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + hist_fraction=1.0, + hist_filename=None, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'HistogramNode'.
+ + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the data types supported by this node.
+ + +
+ +
+   + + + + + + +
_stop_training(self)
+ Pickle the histogram data to file and clear it if required.
+ + +
+ +
+   + + + + + + +
_train(self, + x)
+ Store the history data.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Pickle the histogram data to file and clear it if required.
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ Store the history data.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + hist_fraction=1.0, + hist_filename=None, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'HistogramNode'. +
+
Parameters:
+
    +
  • hist_fraction (float) - Defines the fraction of the data that is stored +randomly. Default is 1.0.
  • +
  • hist_filename (str) - Filename for the file to which the data history will +be pickled after training. The data is pickled when stop_training +is called and data_hist is then cleared (to free memory). +If filename is None (default value) then data_hist is not cleared +and can be directly used after training.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the data types supported by this node. +
+
Returns: list
+
The list of numpy.dtypes that this node supports.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self) +

+
  +
+ + Pickle the histogram data to file and clear it if required. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x) +

+
  +
+ + Store the history data. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The history data.
  • +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

stop_training(self) +

+
  +
+ + Pickle the histogram data to file and clear it if required. +
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x) +

+
  +
+ + Store the history data. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The history data.
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.HitParadeNode-class.html b/legacy/api/mdp.nodes.HitParadeNode-class.html new file mode 100755 index 0000000..c9ba672 --- /dev/null +++ b/legacy/api/mdp.nodes.HitParadeNode-class.html @@ -0,0 +1,1215 @@ + + + + + mdp.nodes.HitParadeNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class HitParadeNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class HitParadeNode

+
+ +
+
+

Collect the first n local maxima and minima of the training signal +which are separated by a minimum gap d.

+

This is an analysis node, i.e. the data is analyzed during training +and the results are stored internally. Use the +get_maxima and get_minima methods to access them.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + n, + d=1, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'HitParadeNode'.
+ + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the data types supported by this node.
+ + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+ tuple + + + + + + +
get_maxima(self)
+ Return the tuple defining the maxima fulfilling specified criteria. +If the training phase has not been completed yet, call stop_training.
+ + +
+ +
+ tuple + + + + + + +
get_minima(self)
+ Return the tuple defining the minima fulfilling specified criteria. +If the training phase has not been completed yet, call stop_training.
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ Update the internal structures according to the input data x.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from PreserveDimNode
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + n, + d=1, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'HitParadeNode'. +
+
Parameters:
+
    +
  • n (int) - Number of maxima and minima to remember.
  • +
  • d (int) - Minimum gap between two hits.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the data types supported by this node. +
+
Returns: list
+
The list of numpy.dtypes that this node supports.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_set_input_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_input_dim +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x) +

+
  +
+ + +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

get_maxima(self) +

+
  +
+ + Return the tuple defining the maxima fulfilling specified criteria. +If the training phase has not been completed yet, call stop_training. +
+
Returns: tuple
+
A tuple containing maxima and their corresponding indices +as numpy.ndarrays (see example in definition of the method +OneDimensionalHitParade.update). The maxima are sorted in +descending order.
+
+
+
+ +
+ +
+ + +
+

get_minima(self) +

+
  +
+ + Return the tuple defining the minima fulfilling specified criteria. +If the training phase has not been completed yet, call stop_training. +
+
Returns: tuple
+
A tuple containing minima and their corresponding indices +as numpy.ndarrays (see example in definition of the +OneDimensionalHitParade.update() function). The minima are sorted +in descending order.
+
+
+
+ +
+ +
+ + +
+

train(self, + x) +

+
  +
+ +

Update the internal structures according to the input data x.

+

x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _train to implement their +training phase. The docstring of the _train method overwrites this +docstring.

+

Note: a subclass supporting multiple training phases should implement +the same signature for all the training phases and document the +meaning of the arguments in the _train method doc-string. Having +consistent signatures is a requirement to use the node in a flow.

+
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.ICANode-class.html b/legacy/api/mdp.nodes.ICANode-class.html new file mode 100755 index 0000000..10ee42b --- /dev/null +++ b/legacy/api/mdp.nodes.ICANode-class.html @@ -0,0 +1,1272 @@ + + + + + mdp.nodes.ICANode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class ICANode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ICANode

+
+ +
+
+

ICANode is a general class to handle different batch-mode algorithm for +Independent Component Analysis.

+
+

Reference

+

More information about ICA can be found among others in +Hyvarinen A., Karhunen J., Oja E. (2001). Independent Component Analysis, +Wiley.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + limit=0.001, + telescope=False, + verbose=False, + whitened=False, + white_comp=None, + white_parm=None, + input_dim=None, + dtype=None)
+ Initializes an object of type 'ICANode'.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_inverse(self, + y) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self)
+ Whiten data if needed and call the 'core' routine to perform ICA.
+ + +
+ +
+   + + + + + + +
core(self, + data)
+ This is the core routine of the ICANode.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
inverse(self, + y)
+ Invert y.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Whiten data if needed and call the 'core' routine to perform ICA.
+ + +
+ +
+

Inherited from unreachable.ProjectMatrixMixin: + get_projmatrix, + get_recmatrix +

+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + limit=0.001, + telescope=False, + verbose=False, + whitened=False, + white_comp=None, + white_parm=None, + input_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'ICANode'. +
+
Parameters:
+
    +
  • limit (float) - Convergence threshold.
  • +
  • telescope (bool) - If telescope == True, use Telescope mode: Instead of +using all input data in a single batch try larger and larger +chunks of the input data until convergence is achieved. This +should lead to significantly faster convergence for stationary +statistics. This mode has not been thoroughly tested and must +be considered beta.
  • +
  • verbose (bool) - Idicates whether information is to be reported about +the operation.
  • +
  • whitened (bool) - Set whitened is True if input data are already whitened. +Otherwise the node will whiten the data itself.
  • +
  • white_comp (int) - If whitened is False, you can set 'white_comp' to the +number of whitened components to keep during the +calculation (i.e., the input dimensions are reduced to +white_comp by keeping the components of largest variance).
  • +
  • white_parm (dict) - A dictionary with additional parameters for whitening. +It is passed directly to the WhiteningNode constructor. For example:

    +
    +>>> white_parm = { 'svd' : True }
    +
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_inverse(self, + y) +

+
  +
+ + +
+
Overrides: + Node._inverse +
+
+
+
+ +
+ +
+ + +
+

_set_input_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_input_dim +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self) +

+
  +
+ +

Whiten data if needed and call the 'core' routine to perform ICA.

+

Take care of telescope-mode if needed.

+
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

core(self, + data) +

+
  +
+ +

This is the core routine of the ICANode.

+

Each subclass must define this function to return the achieved +convergence value. This function is also responsible for setting the +ICA filters matrix self.filters.

+Note: The matrix self.filters is applied to the right of the matrix containing input data. This is the transposed of the matrix defining the linear transformation. +
+
Parameters:
+
    +
  • data (numpy.ndarray) - The data you want to perform ICA on.
  • +
+
Returns:
+
The achieved convergence value.
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

inverse(self, + y) +

+
  +
+ +

Invert y.

+

If the node is invertible, compute the input x such that +y = execute(x).

+

By default, subclasses should overwrite _inverse to implement +their inverse function. The docstring of the inverse method +overwrites this docstring.

+
+
Overrides: + Node.inverse +
+
+
+
+ +
+ +
+ + +
+

stop_training(self) +

+
  +
+ +

Whiten data if needed and call the 'core' routine to perform ICA.

+

Take care of telescope-mode if needed.

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.ISFANode-class.html b/legacy/api/mdp.nodes.ISFANode-class.html new file mode 100755 index 0000000..08b31fa --- /dev/null +++ b/legacy/api/mdp.nodes.ISFANode-class.html @@ -0,0 +1,2023 @@ + + + + + mdp.nodes.ISFANode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class ISFANode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ISFANode

+
+ +
+
+

Perform Independent Slow Feature Analysis on the input data.

+Note: They are not cleared after convergence. If you need to free some memory, you can safely delete them with:: >>> del self.covsNote: If you intend to use this node for large datasets please have a look at the ``stop_training`` method documentation for speeding things up.
+

Reference

+

Blaschke, T. , Zito, T., and Wiskott, L. (2007). +Independent Slow Feature Analysis and Nonlinear Blind Source Separation. +Neural Computation 19(4):994-1021 (2007) +http://itb.biologie.hu-berlin.de/~wiskott/Publications/BlasZitoWisk2007-ISFA-NeurComp.pdf

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + lags=1, + sfa_ica_coeff=(1.0, 1.0), + icaweights=None, + sfaweights=None, + whitened=False, + white_comp=None, + white_parm=None, + eps_contrast=1e-06, + max_iter=10000, + RP=None, + verbose=False, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'ISFANode' to perform +Independent Slow Feature Analysis.
+ + +
+ +
+   + + + + + + +
_adjust_ica_sfa_coeff(self)
+ Adjust SFA/ICA ratio. The ICA and SFA terms are scaled +differently because SFA accounts for the diagonal terms +whereas ICA accounts for the off-diagonal terms.
+ + +
+ +
+   + + + + + + +
_do_sweep(self, + covs, + Q, + prev_contrast)
+ Perform a single sweep.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_fix_covs(self, + covs=None) + + +
+ +
+   + + + + + + +
_fmt_prog_info(self, + sweep, + pert, + contrast, + sfa=None, + ica=None) + + +
+ +
+   + + + + + + +
_get_contrast(self, + covs, + bica_bsfa=None) + + +
+ +
+   + + + + + + +
_get_eye(self) + + +
+ +
+   + + + + + + +
_get_rnd_permutation(self, + dim) + + +
+ +
+   + + + + + + +
_get_rnd_rotation(self, + dim) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_givens_angle(self, + i, + j, + covs, + bica_bsfa=None, + complete=0) + + +
+ +
+   + + + + + + +
_givens_angle_case1(self, + m, + n, + covs, + bica_bsfa, + complete=0) + + +
+ +
+   + + + + + + +
_givens_angle_case2(self, + m, + n, + covs, + bica_bsfa, + complete=0) + + +
+ +
+   + + + + + + +
_inverse(self, + y) + + +
+ +
+   + + + + + + +
_optimize(self)
+ Optimizes the contrast function. +:return: The optimal rotation matrix.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + dtype) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self, + covs=None)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
inverse(self, + y)
+ Invert y.
+ + +
+ +
+   + + + + + + +
stop_training(self, + covs=None)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ Update the internal structures according to the input data x.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + RP
+ The global rotation-permutation matrix. This is the filter +applied on input_data to get output_data +
+   + + RPC
+ The complete global rotation-permutation matrix. This +is a matrix of dimension input_dim x input_dim (the 'outer space' +is retained) +
+   + + covs
+ A mdp.utils.MultipleCovarianceMatrices instance +input_data. After convergence the uppermost +output_dim x output_dim submatrices should be almost +diagonal. +self.covs[n-1] is the covariance matrix relative to the +n-th time-lag +
+   + + final_contrast
+ Like the above but after convergence. +
+   + + initial_contrast
+ A dictionary with the starting contrast and the +SFA and ICA parts of it. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + lags=1, + sfa_ica_coeff=(1.0, 1.0), + icaweights=None, + sfaweights=None, + whitened=False, + white_comp=None, + white_parm=None, + eps_contrast=1e-06, + max_iter=10000, + RP=None, + verbose=False, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ +

Initializes an object of type 'ISFANode' to perform +Independent Slow Feature Analysis.

+

The notation is the same used in the paper by Blaschke et al. Please +refer to the paper for more information.

+
+
Parameters:
+
    +
  • lags (list or int) - A list of time-lags to generate the time-delayed covariance +matrices (in the paper this is the set of au). If lags is an +integer, time-lags 1,2,...,'lags' are used. +Note that time-lag == 0 (instantaneous correlation) is always +implicitly used.
  • +
  • sfa_ica_coeff (list) - A list of float with two entries, which defines the +weights of the SFA and ICA part of the objective function. +They are called b_{SFA} and b_{ICA} in the paper.
  • +
  • icaweights (int, list or array) - Weighting factors for the cov matrices relative +to the ICA part of the objective function (called +kappa_{ICA}^{ au} in the paper). Default is 1. +Possible values are:

    +
    +
      +
    • An integer n: All matrices are weighted the same +(note that it does not make sense to have n != 1).
    • +
    • A list or array of floats of len == len(lags): +Each element of the list is used for weighting the +corresponding matrix.
    • +
    • None: Use the default values.
    • +
    +
  • +
  • sfaweights (int, list or array) - Weighting factors for the covariance matrices relative +to the SFA part of the objective function (called +kappa_{SFA}^{ au} in the paper). Default is [1., 0., ..., 0.] +For possible values see the description of icaweights.
  • +
  • whitened (bool) - True if input data is already white, False +otherwise (the data will be whitened internally).
  • +
  • white_comp (int) - If whitened is false, you can set white_comp to the +number of whitened components to keep during the +calculation (i.e., the input dimensions are reduced to +white_comp` by keeping the components of largest variance).
  • +
  • white_parm (dict) - A dictionary with additional parameters for whitening. +It is passed directly to the WhiteningNode constructor. +Ex: white_parm = { 'svd' : True }
  • +
  • eps_contrast (float) - Convergence is achieved when the relative +improvement in the contrast is below this threshold. +Values in the range [1E-4, 1E-10] are usually reasonable.
  • +
  • max_iter (int) - If the algorithms does not achieve convergence within +max_iter iterations raise an Exception. +Should be larger than 100.
  • +
  • RP - Starting rotation-permutation matrix. It is an +input_dim x input_dim matrix used to initially rotate the +input components. If not set, the identity matrix is used. +In the paper this is used to start the algorithm at the +SFA solution (which is often quite near to the optimum).
  • +
  • verbose (bool) - Print progress information during convergence. This can +slow down the algorithm, but it's the only way to see +the rate of improvement and immediately spot if something +is going wrong.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - Sets the number of independent components that have to +be extracted. Note that if this is not smaller than input_dim, +the problem is solved linearly and SFA would give the same +solution only much faster.
  • +
  • dtype (numpy.dtype or str) - Datatype to be used.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_adjust_ica_sfa_coeff(self) +

+
  +
+ + Adjust SFA/ICA ratio. The ICA and SFA terms are scaled +differently because SFA accounts for the diagonal terms +whereas ICA accounts for the off-diagonal terms. +
+
+
+
+ +
+ +
+ + +
+

_do_sweep(self, + covs, + Q, + prev_contrast) +

+
  +
+ + Perform a single sweep. +
+
Parameters:
+
    +
  • covs - The covariance matrices.
  • +
  • Q - he rotation matrix.
  • +
  • prev_contrast - The previous contrast.
  • +
+
Returns:
+
The maximum improvement in contrast, rotated matrices, the current +contrast.
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_fix_covs(self, + covs=None) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_fmt_prog_info(self, + sweep, + pert, + contrast, + sfa=None, + ica=None) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_get_contrast(self, + covs, + bica_bsfa=None) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_get_eye(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_get_rnd_permutation(self, + dim) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_get_rnd_rotation(self, + dim) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ +

Return the list of dtypes supported by this node.

+

Support floating point types with size larger or equal than 64 bits.

+
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_givens_angle(self, + i, + j, + covs, + bica_bsfa=None, + complete=0) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_givens_angle_case1(self, + m, + n, + covs, + bica_bsfa, + complete=0) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_givens_angle_case2(self, + m, + n, + covs, + bica_bsfa, + complete=0) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_inverse(self, + y) +

+
  +
+ + +
+
Overrides: + Node._inverse +
+
+
+
+ +
+ +
+ + +
+

_optimize(self) +

+
  +
+ + Optimizes the contrast function. +:return: The optimal rotation matrix. +
+
+
+
+ +
+ +
+ + +
+

_set_dtype(self, + dtype) +

+
  +
+ + +
+
Overrides: + Node._set_dtype +
+
+
+
+ +
+ +
+ + +
+

_set_input_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_input_dim +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + covs=None) +

+
  +
+ +

Stop the training phase.

+Note: If the node is used on large datasets it may be wise to first learn the covariance matrices, and then tune the parameters until a suitable parameter set has been found (learning the covariance matrices is the slowest part in this case). This could be done for example in the following way (assuming the data is already white):: >>> covs=[mdp.utils.DelayCovarianceMatrix(dt, dtype=dtype) ... for dt in lags] >>> for block in data: ... [covs[i].update(block) for i in range(len(lags))] You can then initialize the ISFANode with the desired parameters, do a fake training with some random data to set the internal node structure and then call stop_training with the stored covariance matrices. For example:: >>> isfa = ISFANode(lags, .....) >>> x = mdp.numx_rand.random((100, input_dim)).astype(dtype) >>> isfa.train(x) >>> isfa.stop_training(covs=covs) This trick has been used in the paper to apply ISFA to surrogate matrices, i.e. covariance matrices that were not learnt on a real dataset. +
+
Parameters:
+
    +
  • covs - The covariance matrices.
  • +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x) +

+
  +
+ + +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

inverse(self, + y) +

+
  +
+ +

Invert y.

+

If the node is invertible, compute the input x such that +y = execute(x).

+

By default, subclasses should overwrite _inverse to implement +their inverse function. The docstring of the inverse method +overwrites this docstring.

+
+
Overrides: + Node.inverse +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + covs=None) +

+
  +
+ +

Stop the training phase.

+Note: If the node is used on large datasets it may be wise to first learn the covariance matrices, and then tune the parameters until a suitable parameter set has been found (learning the covariance matrices is the slowest part in this case). This could be done for example in the following way (assuming the data is already white):: >>> covs=[mdp.utils.DelayCovarianceMatrix(dt, dtype=dtype) ... for dt in lags] >>> for block in data: ... [covs[i].update(block) for i in range(len(lags))] You can then initialize the ISFANode with the desired parameters, do a fake training with some random data to set the internal node structure and then call stop_training with the stored covariance matrices. For example:: >>> isfa = ISFANode(lags, .....) >>> x = mdp.numx_rand.random((100, input_dim)).astype(dtype) >>> isfa.train(x) >>> isfa.stop_training(covs=covs) This trick has been used in the paper to apply ISFA to surrogate matrices, i.e. covariance matrices that were not learnt on a real dataset. +
+
Parameters:
+
    +
  • covs - The covariance matrices.
  • +
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x) +

+
  +
+ +

Update the internal structures according to the input data x.

+

x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _train to implement their +training phase. The docstring of the _train method overwrites this +docstring.

+

Note: a subclass supporting multiple training phases should implement +the same signature for all the training phases and document the +meaning of the arguments in the _train method doc-string. Having +consistent signatures is a requirement to use the node in a flow.

+
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

RP

+ The global rotation-permutation matrix. This is the filter +applied on input_data to get output_data +
+
+
+
+ +
+ +
+

RPC

+ The complete global rotation-permutation matrix. This +is a matrix of dimension input_dim x input_dim (the 'outer space' +is retained) +
+
+
+
+ +
+ +
+

covs

+ A mdp.utils.MultipleCovarianceMatrices instance +input_data. After convergence the uppermost +output_dim x output_dim submatrices should be almost +diagonal. +self.covs[n-1] is the covariance matrix relative to the +n-th time-lag +
+
+
+
+ +
+ +
+

final_contrast

+ Like the above but after convergence. +
+
+
+
+ +
+ +
+

initial_contrast

+ A dictionary with the starting contrast and the +SFA and ICA parts of it. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.IdentityNode-class.html b/legacy/api/mdp.nodes.IdentityNode-class.html new file mode 100755 index 0000000..6fcd73b --- /dev/null +++ b/legacy/api/mdp.nodes.IdentityNode-class.html @@ -0,0 +1,1041 @@ + + + + + mdp.nodes.IdentityNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class IdentityNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class IdentityNode

+
+ +
+
+

Execute returns the input data and the node is not trainable.

+

This node can be instantiated and is for example useful in +complex network layouts.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the data types supported by this node.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None)
+ If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the data types supported by this node. +
+
Returns: list
+
The list of numpy.dtypes that this node supports.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Overrides: + Node.is_trainable +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.IncSFANode-class.html b/legacy/api/mdp.nodes.IncSFANode-class.html new file mode 100755 index 0000000..72cad65 --- /dev/null +++ b/legacy/api/mdp.nodes.IncSFANode-class.html @@ -0,0 +1,1831 @@ + + + + + mdp.nodes.IncSFANode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class IncSFANode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class IncSFANode

+
+ +
+
+

Incremental Slow Feature Analysis (IncSFA) extracts the slowly varying +components from the input data incrementally.

+
+

Reference

+

More information about IncSFA +can be found in Kompella V.R, Luciw M. and Schmidhuber J., Incremental Slow +Feature Analysis: Adaptive Low-Complexity Slow Feature Updating from +High-Dimensional Input Streams, Neural Computation, 2012.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + eps=0.05, + whitening_output_dim=None, + remove_mean=True, + avg_n=None, + amn_params=(20, 200, 2000, 3), + init_pca_vectors=None, + init_mca_vectors=None, + input_dim=None, + output_dim=None, + dtype=None, + numx_rng=None)
+ Initialize an object of type 'SFANode'.
+ + +
+ +
+ str + + + + + + +
__repr__(self)
+ Print all args.
+ + +
+ +
+   + + + + + + +
_check_params(self, + x)
+ Initialize parameters.
+ + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_execute(self, + x)
+ Return slow feature response.
+ + +
+ +
+   + + + + + + +
_inverse(self, + y)
+ Return inverse of the slow feature response.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_numx_rng(self, + rng) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_step_train(self, + x) + + +
+ +
+   + + + + + + +
_train(self, + x, + new_episode=None)
+ Update slow features.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Return slow feature response.
+ + +
+ +
+   + + + + + + +
inverse(self, + y)
+ Return inverse of the slow feature response.
+ + +
+ +
+   + + + + + + +
train(self, + x, + new_episode=None)
+ Update slow features.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from OnlineNode
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_training_types(self)
+ Return the list of training types supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks. +It can be used when a subclass defines multiple execution methods.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
get_current_train_iteration(self)
+ Return the index of the current training iteration.
+ + +
+ +
+   + + + + + + +
get_numx_rng(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
set_numx_rng(self, + rng)
+ Set numx random number generator. +Note that subclasses should overwrite self._set_numx_rng when needed.
+ + +
+ +
+   + + + + + + +
set_training_type(self, + training_type)
+ Sets the training type
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
_pseudo_check_fn(node, + x) + + +
+ +
+   + + + + + + +
_pseudo_train_fn(node, + x) + + +
+ +
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + sf
+ Slow feature vectors +
+   + + sf_change
+ Difference in slow features after update +
+   + + wv
+ Whitening vectors +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+ numpy.ndarray + + init_mca_vectors
+ Return initialized minor components. +
+ numpy.ndarray + + init_pca_vectors
+ Return the initialized whitening vectors. +
+   + + init_slow_features
+ Return the initialized slow features. +
+

Inherited from object: + __class__ +

+
    Inherited from OnlineNode
+   + + _train_seq
+ List of tuples: +
+   + + numx_rng
+ Numpy seeded random number generator +
+   + + training_type
+ Training type (Read only) +
    Inherited from Node
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + eps=0.05, + whitening_output_dim=None, + remove_mean=True, + avg_n=None, + amn_params=(20, 200, 2000, 3), + init_pca_vectors=None, + init_mca_vectors=None, + input_dim=None, + output_dim=None, + dtype=None, + numx_rng=None) +
(Constructor) +

+
  +
+ + Initialize an object of type 'SFANode'. +
+
Parameters:
+
    +
  • eps (float) - Learning rate (default: 0.1)
  • +
  • whitening_output_dim (int) - Whitening output dimension. (default: input_dim)
  • +
  • remove_mean (bool) - Remove input mean incrementally (default: True)
  • +
  • avg_n - When set, the node updates an exponential weighted moving average. +avg_n intuitively denotes a window size. For a large avg_n, avg_n samples +represents about 86% of the total weight. (Default:None)
  • +
  • amn_params (tuple) - PCA amnesic parameters. Default set to (n1=20,n2=200,m=2000,c=3). +For n < n1, ~ moving average. +For n1 < n < n2 - Transitions from moving average to amnesia. m denotes the scaling +param and c typically should be between (2-4). Higher values will weigh recent data.
  • +
  • init_pca_vectors (numpy.ndarray) - Initial whitening vectors. Default - randomly set
  • +
  • init_mca_vectors (numpy.ndarray) - Initial mca vectors. Default - randomly set
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
  • numx_rng - Random number generator. (Optional)
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

__repr__(self) +
(Representation operator) +

+
  +
+ + Print all args. +
+
Returns: str
+
A string that contains all argument names and their values.
+
Overrides: + object.__repr__ +
+
+
+
+ +
+ +
+ + +
+

_check_params(self, + x) +

+
  +
+ +
+Initialize parameters.
+
+
+
+
Overrides: + OnlineNode._check_params +
+
+
+
+ +
+ +
+ + +
+

_check_train_args(self, + x, + *args, + **kwargs) +

+
  +
+ + +
+
Overrides: + Node._check_train_args +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ +
+Return slow feature response.
+
+:return: Slow feature response.
+
+
+
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_inverse(self, + y) +

+
  +
+ +
+Return inverse of the slow feature response.
+
+:return: The inverse of the slow feature response.
+
+
+
+
Overrides: + Node._inverse +
+
+
+
+ +
+ +
+ + +
+

_pseudo_check_fn(node, + x) +
Static Method +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_pseudo_train_fn(node, + x) +
Static Method +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_set_dtype(self, + t) +

+
  +
+ + +
+
Overrides: + Node._set_dtype +
+
+
+
+ +
+ +
+ + +
+

_set_input_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_input_dim +
+
+
+
+ +
+ +
+ + +
+

_set_numx_rng(self, + rng) +

+
  +
+ + +
+
Overrides: + OnlineNode._set_numx_rng +
+
+
+
+ +
+ +
+ + +
+

_set_output_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_output_dim +
+
+
+
+ +
+ +
+ + +
+

_step_train(self, + x) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x, + new_episode=None) +

+
  +
+ +
+Update slow features.
+
+:param new_episode: Set new_episode to True to ignore taking erroneous
+    derivatives between the episodes of training data.
+:type new_episode: bool
+
+
+
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ + Return slow feature response. +
+
Returns:
+
Slow feature response.
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

inverse(self, + y) +

+
  +
+ + Return inverse of the slow feature response. +
+
Returns:
+
The inverse of the slow feature response.
+
Overrides: + Node.inverse +
+
+
+
+ +
+ +
+ + +
+

train(self, + x, + new_episode=None) +

+
  +
+ + Update slow features. +
+
Parameters:
+
    +
  • new_episode (bool) - Set new_episode to True to ignore taking erroneous +derivatives between the episodes of training data.
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

sf

+ Slow feature vectors +
+
+
+
+ +
+ +
+

sf_change

+ Difference in slow features after update +
+
+
+
+ +
+ +
+

wv

+ Whitening vectors +
+
+
+
+
+ + + + + + +
+ + + + + +
Property Details[hide private]
+
+ +
+ +
+

init_mca_vectors

+ Return initialized minor components. +
+
Get Method:
+
unreachable.init_mca_vectors(self) + - Return initialized minor components. +
+
Type:
+
numpy.ndarray
+
+
+
+ +
+ +
+

init_pca_vectors

+ Return the initialized whitening vectors. +
+
Get Method:
+
unreachable.init_pca_vectors(self) + - Return the initialized whitening vectors. +
+
Type:
+
numpy.ndarray
+
+
+
+ +
+ +
+

init_slow_features

+ Return the initialized slow features. +
+
Get Method:
+
unreachable.init_slow_features(self) + - Return the initialized slow features. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.JADENode-class.html b/legacy/api/mdp.nodes.JADENode-class.html new file mode 100755 index 0000000..da13e64 --- /dev/null +++ b/legacy/api/mdp.nodes.JADENode-class.html @@ -0,0 +1,1123 @@ + + + + + mdp.nodes.JADENode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class JADENode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class JADENode

+
+ +
+
+

Perform Independent Component Analysis using the JADE algorithm.

+

Note that JADE is a batch-algorithm. This means that it needs +all input data before it can start and compute the ICs. +The algorithm is here given as a Node for convenience, but it +actually accumulates all inputs it receives. Remember that to avoid +running out of memory when you have many components and many time samples.

+

JADE does not support the telescope mode.

+
+

+
+
+

Reference

+

Cardoso, Jean-Francois and Souloumiac, Antoine (1993). +Blind beamforming for non Gaussian signals. +Radar and Signal Processing, IEE Proceedings F, 140(6): 362-370.

+

Cardoso, Jean-Francois (1999). +High-order contrasts for independent component analysis. +Neural Computation, 11(1): 157-192.

+

Original code contributed by: +Gabriel Beckers (2008).

+
+
+

+
+
+

History

+
    +
  • May 2005 version 1.8 for MATLAB released by Jean-Francois Cardoso
  • +
  • Dec 2007 MATLAB version 1.8 ported to Python/NumPy by Gabriel Beckers
  • +
  • Feb 15 2008 Python/NumPy version adapted for MDP by Gabriel Beckers
  • +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + limit=0.001, + max_it=1000, + verbose=False, + whitened=False, + white_comp=None, + white_parm=None, + input_dim=None, + dtype=None)
+ Initializes an object of type 'JADENode'.
+ + +
+ +
+   + + + + + + +
core(self, + data)
+ This is the core routine of the ICANode.
+ + +
+ +
+

Inherited from unreachable.ProjectMatrixMixin: + get_projmatrix, + get_recmatrix +

+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ICANode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_inverse(self, + y) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self)
+ Whiten data if needed and call the 'core' routine to perform ICA.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
inverse(self, + y)
+ Invert y.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Whiten data if needed and call the 'core' routine to perform ICA.
+ + +
+ +
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + limit=0.001, + max_it=1000, + verbose=False, + whitened=False, + white_comp=None, + white_parm=None, + input_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'JADENode'. +
+
Parameters:
+
    +
  • limit (float) - Convergence threshold.
  • +
  • max_it (int) - Maximum number of iterations
  • +
  • verbose (bool) - Idicates whether information is to be reported about +the operation.
  • +
  • whitened (bool) - Set whitened == True if input data are already whitened. +Otherwise the node will whiten the data itself.
  • +
  • white_comp (int) - If whitened == False, you can set 'white_comp' to the +number of whitened components to keep during the +calculation (i.e., the input dimensions are reduced to +white_comp by keeping the components of largest variance).
  • +
  • white_parm (dict) - A dictionary with additional parameters for whitening. +It is passed directly to the WhiteningNode constructor. +Ex: white_parm = { 'svd' : True }
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

core(self, + data) +

+
  +
+ +

This is the core routine of the ICANode.

+

Each subclass must define this function to return the achieved +convergence value. This function is also responsible for setting the +ICA filters matrix self.filters.

+Note: The matrix self.filters is applied to the right of the matrix containing input data. This is the transposed of the matrix defining the linear transformation. +
+
Parameters:
+
    +
  • data - The data you want to perform ICA on.
  • +
+
Returns:
+
The achieved convergence value.
+
Overrides: + ICANode.core +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.KMeansClassifier-class.html b/legacy/api/mdp.nodes.KMeansClassifier-class.html new file mode 100755 index 0000000..315837f --- /dev/null +++ b/legacy/api/mdp.nodes.KMeansClassifier-class.html @@ -0,0 +1,1332 @@ + + + + + mdp.nodes.KMeansClassifier + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class KMeansClassifier + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class KMeansClassifier

+
+ +
+
+Employs K-Means Clustering for a given number of centroids. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + num_clusters, + max_iter=10000, + execute_method=None, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'KMeansClassifier'
+ + +
+ +
+ list + + + + + + +
_label(self, + x)
+ For a set of feature vectors x, this classifier returns +a list of centroids.
+ + +
+ +
+   + + + + + + +
_nearest_centroid_idx(self, + data, + centroids) + + +
+ +
+   + + + + + + +
_stop_training(self) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+ list + + + + + + +
label(self, + x)
+ For a set of feature vectors x, this classifier returns +a list of centroids.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ Update the internal structures according to the input data x.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ClassifierNode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_prob(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
prob(self, + x, + *args, + **kwargs)
+ This function does classification or regression on a test vector T +given a model with probability information. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + num_clusters, + max_iter=10000, + execute_method=None, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'KMeansClassifier' +
+
Parameters:
+
    +
  • num_clusters (int) - number of centroids to use = number of clusters
  • +
  • max_iter (int) - If the algorithm does not reach convergence (for some +numerical reason), stop after max_iter iterations.
  • +
  • execute_method (str) - Set to string value 'label', 'rank', or 'prob' to +force the corresponding classification method being used instead +of the standard identity execution (which is used when +execute_method has the default value None). This can be used when +the node is last in a flow, the return value from Flow.execute +will then consist of the classification results.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_label(self, + x) +

+
  +
+ + For a set of feature vectors x, this classifier returns +a list of centroids. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - A set of feature vectors
  • +
+
Returns: list
+
A list of centroids
+
Overrides: + ClassifierNode._label +
+
+
+
+ +
+ +
+ + +
+

_nearest_centroid_idx(self, + data, + centroids) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self) +

+
  +
+ + +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x) +

+
  +
+ + +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

label(self, + x) +

+
  +
+ + For a set of feature vectors x, this classifier returns +a list of centroids. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - A set of feature vectors
  • +
+
Returns: list
+
A list of centroids
+
Overrides: + ClassifierNode.label +
+
+
+
+ +
+ +
+ + +
+

stop_training(self) +

+
  +
+ +

Stop the training phase.

+

By default, subclasses should overwrite _stop_training to implement +this functionality. The docstring of the _stop_training method +overwrites this docstring.

+
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x) +

+
  +
+ +

Update the internal structures according to the input data x.

+

x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _train to implement their +training phase. The docstring of the _train method overwrites this +docstring.

+

Note: a subclass supporting multiple training phases should implement +the same signature for all the training phases and document the +meaning of the arguments in the _train method doc-string. Having +consistent signatures is a requirement to use the node in a flow.

+
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.KNNClassifier-class.html b/legacy/api/mdp.nodes.KNNClassifier-class.html new file mode 100755 index 0000000..f158d73 --- /dev/null +++ b/legacy/api/mdp.nodes.KNNClassifier-class.html @@ -0,0 +1,1356 @@ + + + + + mdp.nodes.KNNClassifier + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class KNNClassifier + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class KNNClassifier

+
+ +
+
+K-Nearest-Neighbour Classifier. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + k=1, + execute_method=None, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'KNNClassifier'
+ + +
+ +
+   + + + + + + +
_add_samples(self, + x, + label)
+ Store x set for later neirest-neighbour calculation.
+ + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + labels) + + +
+ +
+ list + + + + + + +
_label(self, + x)
+ Label the data by comparison with the reference points.
+ + +
+ +
+   + + + + + + +
_stop_training(self)
+ Organize the sample data.
+ + +
+ +
+   + + + + + + +
_train(self, + x, + labels)
+ Add the sample points to the classes.
+ + +
+ +
+ list + + + + + + +
label(self, + x)
+ Label the data by comparison with the reference points.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Organize the sample data.
+ + +
+ +
+   + + + + + + +
train(self, + x, + labels)
+ Add the sample points to the classes.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ClassifierNode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_prob(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
prob(self, + x, + *args, + **kwargs)
+ This function does classification or regression on a test vector T +given a model with probability information. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + k=1, + execute_method=None, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'KNNClassifier' +
+
Parameters:
+
    +
  • k (int) - Number of closest sample points that are taken into account.
  • +
  • execute_method (str) - Set to string value 'label', 'rank', or 'prob' to +force the corresponding classification method being used instead +of the standard identity execution (which is used when +execute_method has the default value None). This can be used when +the node is last in a flow, the return value from Flow.execute +will then consist of the classification results.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_add_samples(self, + x, + label) +

+
  +
+ + Store x set for later neirest-neighbour calculation. +
+
+
+
+ +
+ +
+ + +
+

_check_train_args(self, + x, + labels) +

+
  +
+ + +
+
Overrides: + Node._check_train_args +
+
+
+
+ +
+ +
+ + +
+

_label(self, + x) +

+
  +
+ + Label the data by comparison with the reference points. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data to label.
  • +
+
Returns: list
+
The labels
+
Overrides: + ClassifierNode._label +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self) +

+
  +
+ + Organize the sample data. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x, + labels) +

+
  +
+ + Add the sample points to the classes. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data.
  • +
  • labels - Can be a list, tuple or array of labels (one for each data +point) or a single label, in which case all input data is assigned +to the same class (computationally this is more efficient).
  • +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

label(self, + x) +

+
  +
+ + Label the data by comparison with the reference points. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data to label.
  • +
+
Returns: list
+
The labels
+
Overrides: + ClassifierNode.label +
+
+
+
+ +
+ +
+ + +
+

stop_training(self) +

+
  +
+ + Organize the sample data. +
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x, + labels) +

+
  +
+ + Add the sample points to the classes. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data.
  • +
  • labels - Can be a list, tuple or array of labels (one for each data +point) or a single label, in which case all input data is assigned +to the same class (computationally this is more efficient).
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.KernelCentererScikitsLearnNode-class.html b/legacy/api/mdp.nodes.KernelCentererScikitsLearnNode-class.html new file mode 100755 index 0000000..99cc2f0 --- /dev/null +++ b/legacy/api/mdp.nodes.KernelCentererScikitsLearnNode-class.html @@ -0,0 +1,1215 @@ + + + + + mdp.nodes.KernelCentererScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class KernelCentererScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class KernelCentererScikitsLearnNode

+
+ +
+
+Centers a kernel. This is equivalent to centering phi(X) with +This node has been automatically generated by wrapping the scikits.learn.preprocessing.KernelCenterer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Initializes an object of type 'ScikitsNode'.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Center kernel +This node has been automatically generated by wrapping the scikits.learn.preprocessing.KernelCenterer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit KernelCenterer +This node has been automatically generated by wrapping the scikits.learn.preprocessing.KernelCenterer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ + Initializes an object of type 'ScikitsNode'. +
+
Parameters:
+
    +
  • input_dim (int) - Dimensionality of the input. +Default is None.
  • +
  • output_dim (int) - Dimensionality of the output. +Default is None.
  • +
  • dtype (numpy.dtype or str) - Datatype of the input. +Default is None.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Center kernel +This node has been automatically generated by wrapping the scikits.learn.preprocessing.KernelCenterer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
K : numpy array of shape [n_samples1, n_samples2]
+
Kernel matrix
+
+

Returns

+

K_new : numpy array of shape [n_samples1, n_samples2]

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit KernelCenterer +This node has been automatically generated by wrapping the scikits.learn.preprocessing.KernelCenterer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
K : numpy array of shape [n_samples, n_samples]
+
Kernel matrix
+
+

Returns

+

self : returns an instance of self.

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.KernelPCAScikitsLearnNode-class.html b/legacy/api/mdp.nodes.KernelPCAScikitsLearnNode-class.html new file mode 100755 index 0000000..c8b73ee --- /dev/null +++ b/legacy/api/mdp.nodes.KernelPCAScikitsLearnNode-class.html @@ -0,0 +1,1330 @@ + + + + + mdp.nodes.KernelPCAScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class KernelPCAScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class KernelPCAScikitsLearnNode

+
+ +
+
+
+
+Kernel Principal component analysis (KPCA)
+This node has been automatically generated by wrapping the ``scikits.learn.decomposition.pca.KernelPCA`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+Non-linear dimensionality reduction through the use of kernels.
+
+**Parameters**
+
+n_components: int or None
+    Number of components. If None, all non-zero components are kept.
+
+kernel: "linear" | "poly" | "rbf" | "precomputed"
+    kernel
+    Default: "linear"
+
+sigma: float
+    width of the rbf kernel
+    Default: 1.0
+
+degree: int
+    degree of the polynomial kernel
+    Default: 3
+
+alpha: int
+    hyperparameter of the ridge regression that learns the
+    inverse transform (when fit_inverse_transform=True)
+    Default: 1.0
+
+fit_inverse_transform: bool
+    learn the inverse transform
+    (i.e. learn to find the pre-image of a point)
+    Default: False
+
+**Attributes**
+
+
+``lambdas_``, alphas_:
+
+    - Eigenvalues and eigenvectors of the centered kernel matrix
+
+
+dual_coef_:
+
+    - Inverse transform matrix
+
+
+X_transformed_fit_:
+
+    - Projection of the fitted data on the kernel principal components
+
+
+Reference
+
+Kernel PCA was intoduced in:
+
+    - Bernhard Schoelkopf, Alexander J. Smola,
+    - and Klaus-Robert Mueller. 1999. Kernel principal
+    - component analysis. In Advances in kernel methods,
+    - MIT Press, Cambridge, MA, USA 327-352.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Kernel Principal component analysis (KPCA) +This node has been automatically generated by wrapping the ``scikits.learn.decomposition.pca.KernelPCA`` class +from the ``sklearn`` library.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Transform X. +This node has been automatically generated by wrapping the scikits.learn.decomposition.pca.KernelPCA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the model from data in X. +This node has been automatically generated by wrapping the scikits.learn.decomposition.pca.KernelPCA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +
+
+Kernel Principal component analysis (KPCA)
+This node has been automatically generated by wrapping the ``scikits.learn.decomposition.pca.KernelPCA`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+Non-linear dimensionality reduction through the use of kernels.
+
+**Parameters**
+
+n_components: int or None
+    Number of components. If None, all non-zero components are kept.
+
+kernel: "linear" | "poly" | "rbf" | "precomputed"
+    kernel
+    Default: "linear"
+
+sigma: float
+    width of the rbf kernel
+    Default: 1.0
+
+degree: int
+    degree of the polynomial kernel
+    Default: 3
+
+alpha: int
+    hyperparameter of the ridge regression that learns the
+    inverse transform (when fit_inverse_transform=True)
+    Default: 1.0
+
+fit_inverse_transform: bool
+    learn the inverse transform
+    (i.e. learn to find the pre-image of a point)
+    Default: False
+
+**Attributes**
+
+
+``lambdas_``, alphas_:
+
+    - Eigenvalues and eigenvectors of the centered kernel matrix
+
+
+dual_coef_:
+
+    - Inverse transform matrix
+
+
+X_transformed_fit_:
+
+    - Projection of the fitted data on the kernel principal components
+
+
+Reference
+
+Kernel PCA was intoduced in:
+
+    - Bernhard Schoelkopf, Alexander J. Smola,
+    - and Klaus-Robert Mueller. 1999. Kernel principal
+    - component analysis. In Advances in kernel methods,
+    - MIT Press, Cambridge, MA, USA 327-352.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Transform X. +This node has been automatically generated by wrapping the scikits.learn.decomposition.pca.KernelPCA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X: array-like, shape (n_samples, n_features)

+

Returns

+

X_new: array-like, shape (n_samples, n_components)

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the model from data in X. +This node has been automatically generated by wrapping the scikits.learn.decomposition.pca.KernelPCA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X: array-like, shape (n_samples, n_features)
+
Training vector, where n_samples in the number of samples +and n_features is the number of features.
+
+

Returns

+
+
self : object
+
Returns the instance itself.
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.LARSScikitsLearnNode-class.html b/legacy/api/mdp.nodes.LARSScikitsLearnNode-class.html new file mode 100755 index 0000000..b2d8e0d --- /dev/null +++ b/legacy/api/mdp.nodes.LARSScikitsLearnNode-class.html @@ -0,0 +1,1276 @@ + + + + + mdp.nodes.LARSScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class LARSScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class LARSScikitsLearnNode

+
+ +
+
+

Least Angle Regression model a.k.a. LAR +This node has been automatically generated by wrapping the scikits.learn.linear_model.least_angle.LARS class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
n_features : int, optional
+
Number of selected active features
+
fit_intercept : boolean
+
whether to calculate the intercept for this model. If set +to false, no intercept will be used in calculations +(e.g. data is expected to be already centered).
+
+

Attributes

+
+
coef_ : array, shape = [n_features]
+
parameter vector (w in the fomulation formula)
+
intercept_ : float
+
independent term in decision function.
+
+

Examples

+
+>>> from scikits.learn import linear_model
+>>> clf = linear_model.LARS()
+>>> clf.fit([[-1,1], [0, 0], [1, 1]], [-1, 0, -1], max_features=1)
+LARS(verbose=False, fit_intercept=True)
+>>> print clf.coef_
+[ 0.         -0.81649658]
+

References

+

http://en.wikipedia.org/wiki/Least_angle_regression

+

See also

+

lars_path, LassoLARS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Least Angle Regression model a.k.a. LAR +This node has been automatically generated by wrapping the scikits.learn.linear_model.least_angle.LARS class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.least_angle.LARS class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the model using X, y as training data. +This node has been automatically generated by wrapping the scikits.learn.linear_model.least_angle.LARS class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Least Angle Regression model a.k.a. LAR +This node has been automatically generated by wrapping the scikits.learn.linear_model.least_angle.LARS class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
n_features : int, optional
+
Number of selected active features
+
fit_intercept : boolean
+
whether to calculate the intercept for this model. If set +to false, no intercept will be used in calculations +(e.g. data is expected to be already centered).
+
+

Attributes

+
+
coef_ : array, shape = [n_features]
+
parameter vector (w in the fomulation formula)
+
intercept_ : float
+
independent term in decision function.
+
+

Examples

+
+>>> from scikits.learn import linear_model
+>>> clf = linear_model.LARS()
+>>> clf.fit([[-1,1], [0, 0], [1, 1]], [-1, 0, -1], max_features=1)
+LARS(verbose=False, fit_intercept=True)
+>>> print clf.coef_
+[ 0.         -0.81649658]
+

References

+

http://en.wikipedia.org/wiki/Least_angle_regression

+

See also

+

lars_path, LassoLARS

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.least_angle.LARS class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X : numpy array of shape [n_samples, n_features]

+

Returns

+
+
C : array, shape = [n_samples]
+
Returns predicted values.
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the model using X, y as training data. +This node has been automatically generated by wrapping the scikits.learn.linear_model.least_angle.LARS class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
Training data.
+
y : array-like, shape = [n_samples]
+
Target values.
+
precompute : True | False | 'auto' | array-like
+
Whether to use a precomputed Gram matrix to speed up +calculations. If set to 'auto' let us decide. The Gram +matrix can also be passed as argument.
+
+

Returns

+
+
self : object
+
returns an instance of self.
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.LDAScikitsLearnNode-class.html b/legacy/api/mdp.nodes.LDAScikitsLearnNode-class.html new file mode 100755 index 0000000..54badcc --- /dev/null +++ b/legacy/api/mdp.nodes.LDAScikitsLearnNode-class.html @@ -0,0 +1,1385 @@ + + + + + mdp.nodes.LDAScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class LDAScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class LDAScikitsLearnNode

+
+ +
+
+

Linear Discriminant Analysis (LDA) +This node has been automatically generated by wrapping the scikits.learn.lda.LDA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
n_components: int
+
Number of components (< n_classes - 1)
+
priors : array, optional, shape = [n_classes]
+
Priors on classes
+
+

Attributes

+
+
means_ : array-like, shape = [n_classes, n_features]
+
Class means
+
xbar_ : float, shape = [n_features]
+
Over all mean
+
priors_ : array-like, shape = [n_classes]
+
Class priors (sum to 1)
+
covariance_ : array-like, shape = [n_features, n_features]
+
Covariance matrix (shared by all classes)
+
+

Examples

+
+>>> import numpy as np
+>>> from scikits.learn.lda import LDA
+>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
+>>> y = np.array([1, 1, 1, 2, 2, 2])
+>>> clf = LDA()
+>>> clf.fit(X, y)
+LDA(priors=None, n_components=None)
+>>> print clf.predict([[-0.8, -1]])
+[1]
+

See also

+

QDA

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Linear Discriminant Analysis (LDA) +This node has been automatically generated by wrapping the scikits.learn.lda.LDA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_label(self, + x) + + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Transform the data and labels lists to array objects and reshape them.
+ + +
+ +
+   + + + + + + +
label(self, + x)
+ This function does classification on an array of test vectors X. +This node has been automatically generated by wrapping the scikits.learn.lda.LDA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The predicted class C for each sample in X is returned.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the LDA model according to the given training data and parameters.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ClassifierCumulator
+   + + + + + + +
_check_train_args(self, + x, + labels) + + +
+ +
+   + + + + + + +
_train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
+   + + + + + + +
train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
    Inherited from ClassifierNode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_prob(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
prob(self, + x, + *args, + **kwargs)
+ This function does classification or regression on a test vector T +given a model with probability information. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Linear Discriminant Analysis (LDA) +This node has been automatically generated by wrapping the scikits.learn.lda.LDA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
n_components: int
+
Number of components (< n_classes - 1)
+
priors : array, optional, shape = [n_classes]
+
Priors on classes
+
+

Attributes

+
+
means_ : array-like, shape = [n_classes, n_features]
+
Class means
+
xbar_ : float, shape = [n_features]
+
Over all mean
+
priors_ : array-like, shape = [n_classes]
+
Class priors (sum to 1)
+
covariance_ : array-like, shape = [n_features, n_features]
+
Covariance matrix (shared by all classes)
+
+

Examples

+
+>>> import numpy as np
+>>> from scikits.learn.lda import LDA
+>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
+>>> y = np.array([1, 1, 1, 2, 2, 2])
+>>> clf = LDA()
+>>> clf.fit(X, y)
+LDA(priors=None, n_components=None)
+>>> print clf.predict([[-0.8, -1]])
+[1]
+

See also

+

QDA

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_label(self, + x) +

+
  +
+ + +
+
Overrides: + ClassifierNode._label +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ +
+Transform the data and labels lists to array objects and reshape them.
+
+
+
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

label(self, + x) +

+
  +
+ +

This function does classification on an array of test vectors X. +This node has been automatically generated by wrapping the scikits.learn.lda.LDA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The predicted class C for each sample in X is returned.

+

Parameters

+

X : array-like, shape = [n_samples, n_features]

+

Returns

+

C : array, shape = [n_samples]

+
+
Overrides: + ClassifierNode.label +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +
+
+Fit the LDA model according to the given training data and parameters.
+This node has been automatically generated by wrapping the ``scikits.learn.lda.LDA`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+**Parameters**
+
+X : array-like, shape = [n_samples, n_features]
+    Training vector, where n_samples in the number of samples and
+    n_features is the number of features.
+y : array, shape = [n_samples]
+    Target values (integers)
+store_covariance : boolean
+    If True the covariance matrix (shared by all classes) is computed
+    and stored in self.covariance_ attribute.
+
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.LLENode-class.html b/legacy/api/mdp.nodes.LLENode-class.html new file mode 100755 index 0000000..4d4a32c --- /dev/null +++ b/legacy/api/mdp.nodes.LLENode-class.html @@ -0,0 +1,1313 @@ + + + + + mdp.nodes.LLENode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class LLENode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class LLENode

+
+ +
+
+

Perform a Locally Linear Embedding analysis on the data.

+

Based on the algorithm outlined in An Introduction to Locally +Linear Embedding by L. Saul and S. Roweis, using improvements +suggested in Locally Linear Embedding for Classification by +D. deRidder and R.P.W. Duin.

+
+

+
+
+

Reference

+

Roweis, S. and Saul, L., Nonlinear dimensionality +reduction by locally linear embedding, Science 290 (5500), pp. +2323-2326, 2000.

+
+

Original code contributed by: Jake VanderPlas, University of Washington,

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + k, + r=0.001, + svd=False, + verbose=False, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'LLENode'.
+ + +
+ +
+   + + + + + + +
_adjust_output_dim(self)
+ This function is called if we need to compute the number of +output dimensions automatically as some quantities that are +useful later can be precalculated..
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_stop_training(self)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Concatenate the collected data in a single array.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + desired_variance
+ Variance limit used to compute intrinsic +dimensionality. +
+   + + training_projection
+ The LLE projection of the training data +(defined when training finishes). +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + k, + r=0.001, + svd=False, + verbose=False, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'LLENode'. +
+
Parameters:
+
    +
  • k (int) - Number of nearest neighbors to use.
  • +
  • r (float) - Regularization constant; if None, r is automatically +computed using the method presented in deRidder and Duin; +this method involves solving an eigenvalue problem for +every data point, and can slow down the algorithm. +If specified, it multiplies the trace of the local covariance +matrix of the distances, as in Saul & Roweis (faster).
  • +
  • svd (bool) - If true, use SVD to compute the projection matrix; +SVD is slower but more stable
  • +
  • verbose (bool) - if true, displays information about the progress +of the algorithm
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - Number of dimensions to output or a float between 0.0 and +1.0. In the latter case, output_dim specifies the desired +fraction of variance to be explained, and the final +number of output dimensions is known at the end of +training (e.g., for output_dim=0.95 the algorithm will +keep as many dimensions as necessary in order to explain +95% of the input variance).
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_adjust_output_dim(self) +

+
  +
+ + This function is called if we need to compute the number of +output dimensions automatically as some quantities that are +useful later can be precalculated.. +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Overrides: + Node.is_trainable +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

stop_training(self) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

desired_variance

+ Variance limit used to compute intrinsic +dimensionality. +
+
+
+
+ +
+ +
+

training_projection

+ The LLE projection of the training data +(defined when training finishes). +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.LabelBinarizerScikitsLearnNode-class.html b/legacy/api/mdp.nodes.LabelBinarizerScikitsLearnNode-class.html new file mode 100755 index 0000000..03f05ae --- /dev/null +++ b/legacy/api/mdp.nodes.LabelBinarizerScikitsLearnNode-class.html @@ -0,0 +1,1248 @@ + + + + + mdp.nodes.LabelBinarizerScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class LabelBinarizerScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class LabelBinarizerScikitsLearnNode

+
+ +
+
+

Binarize labels in a one-vs-all fashion. +This node has been automatically generated by wrapping the scikits.learn.preprocessing.LabelBinarizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Several regression and binary classification algorithms are available in the +scikit. A simple way to extend these algorithms to the multi-class +classification case is to use the so-called one-vs-all scheme.

+

At learning time, this simply consists in learning one regressor or binary +classifier per class. In doing so, one needs to convert multi-class labels +to binary labels (belong or does not belong to the class). LabelBinarizer +makes this process easy with the transform method.

+

At prediction time, one assigns the class for which the corresponding model +gave the greatest confidence. LabelBinarizer makes this easy with the +inverse_transform method.

+

Attributes

+
+
classes_ : array of shape [n_class]
+
Holds the label for each class.
+
+

Examples

+
+>>> from scikits.learn import preprocessing
+>>> clf = preprocessing.LabelBinarizer()
+>>> clf.fit([1,2,6,4,2])
+LabelBinarizer()
+>>> clf.classes_
+array([1, 2, 4, 6])
+>>> clf.transform([1, 6])
+array([[ 1.,  0.,  0.,  0.],
+       [ 0.,  0.,  0.,  1.]])
+
+>>> clf.fit_transform([(1,2),(3,)])
+array([[ 1.,  1.,  0.],
+       [ 0.,  0.,  1.]])
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Initializes an object of type 'ScikitsNode'.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Transform multi-class labels to binary labels +This node has been automatically generated by wrapping the scikits.learn.preprocessing.LabelBinarizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The output of transform is sometimes referred to by some authors as the +1-of-K coding scheme.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit label binarizer +This node has been automatically generated by wrapping the scikits.learn.preprocessing.LabelBinarizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ + Initializes an object of type 'ScikitsNode'. +
+
Parameters:
+
    +
  • input_dim (int) - Dimensionality of the input. +Default is None.
  • +
  • output_dim (int) - Dimensionality of the output. +Default is None.
  • +
  • dtype (numpy.dtype or str) - Datatype of the input. +Default is None.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Transform multi-class labels to binary labels +This node has been automatically generated by wrapping the scikits.learn.preprocessing.LabelBinarizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The output of transform is sometimes referred to by some authors as the +1-of-K coding scheme.

+

Parameters

+
+
y : numpy array of shape [n_samples]
+
Target values
+
+

Returns

+

Y : numpy array of shape [n_samples, n_classes]

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit label binarizer +This node has been automatically generated by wrapping the scikits.learn.preprocessing.LabelBinarizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
y : numpy array of shape [n_samples]
+
Target values
+
+

Returns

+

self : returns an instance of self.

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.LassoCVScikitsLearnNode-class.html b/legacy/api/mdp.nodes.LassoCVScikitsLearnNode-class.html new file mode 100755 index 0000000..08ce9cd --- /dev/null +++ b/legacy/api/mdp.nodes.LassoCVScikitsLearnNode-class.html @@ -0,0 +1,1252 @@ + + + + + mdp.nodes.LassoCVScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class LassoCVScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class LassoCVScikitsLearnNode

+
+ +
+
+

Lasso linear model with iterative fitting along a regularization path +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.LassoCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The best model is selected by cross-validation.

+

Parameters

+
+
eps : float, optional
+
Length of the path. eps=1e-3 means that +alpha_min / alpha_max = 1e-3.
+
n_alphas : int, optional
+
Number of alphas along the regularization path
+
alphas : numpy array, optional
+
List of alphas where to compute the models. +If None alphas are set automatically
+
+

Notes

+

See examples/linear_model/lasso_path_with_crossvalidation.py +for an example.

+

To avoid unnecessary memory duplication the X argument of the fit method +should be directly passed as a fortran contiguous numpy array.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Lasso linear model with iterative fitting along a regularization path +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.LassoCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The best model is selected by cross-validation.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.LassoCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit linear model with coordinate descent along decreasing alphas +using cross-validation +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.LassoCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Lasso linear model with iterative fitting along a regularization path +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.LassoCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The best model is selected by cross-validation.

+

Parameters

+
+
eps : float, optional
+
Length of the path. eps=1e-3 means that +alpha_min / alpha_max = 1e-3.
+
n_alphas : int, optional
+
Number of alphas along the regularization path
+
alphas : numpy array, optional
+
List of alphas where to compute the models. +If None alphas are set automatically
+
+

Notes

+

See examples/linear_model/lasso_path_with_crossvalidation.py +for an example.

+

To avoid unnecessary memory duplication the X argument of the fit method +should be directly passed as a fortran contiguous numpy array.

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.LassoCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X : numpy array of shape [n_samples, n_features]

+

Returns

+
+
C : array, shape = [n_samples]
+
Returns predicted values.
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit linear model with coordinate descent along decreasing alphas +using cross-validation +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.LassoCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : numpy array of shape [n_samples,n_features]
+
Training data. Pass directly as fortran contiguous data to avoid +unnecessary memory duplication
+
y : numpy array of shape [n_samples]
+
Target values
+
cv : cross-validation generator, optional
+
If None, KFold will be used.
+
fit_params : kwargs
+
keyword arguments passed to the Lasso fit method
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.LassoLARSScikitsLearnNode-class.html b/legacy/api/mdp.nodes.LassoLARSScikitsLearnNode-class.html new file mode 100755 index 0000000..f0d19df --- /dev/null +++ b/legacy/api/mdp.nodes.LassoLARSScikitsLearnNode-class.html @@ -0,0 +1,1281 @@ + + + + + mdp.nodes.LassoLARSScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class LassoLARSScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class LassoLARSScikitsLearnNode

+
+ +
+
+

Lasso model fit with Least Angle Regression a.k.a. LARS +This node has been automatically generated by wrapping the scikits.learn.linear_model.least_angle.LassoLARS class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +It is a Linear Model trained with an L1 prior as regularizer. +lasso).

+

Parameters

+
+
alpha : float, optional
+
Constant that multiplies the L1 term. Defaults to 1.0
+
fit_intercept : boolean
+
whether to calculate the intercept for this model. If set +to false, no intercept will be used in calculations +(e.g. data is expected to be already centered).
+
+

Attributes

+
+
coef_ : array, shape = [n_features]
+
parameter vector (w in the fomulation formula)
+
intercept_ : float
+
independent term in decision function.
+
+

Examples

+
+>>> from scikits.learn import linear_model
+>>> clf = linear_model.LassoLARS(alpha=0.01)
+>>> clf.fit([[-1,1], [0, 0], [1, 1]], [-1, 0, -1])
+LassoLARS(alpha=0.01, verbose=False, fit_intercept=True)
+>>> print clf.coef_
+[ 0.         -0.72649658]
+

References

+

http://en.wikipedia.org/wiki/Least_angle_regression

+

See also

+

lars_path, Lasso

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Lasso model fit with Least Angle Regression a.k.a. LARS +This node has been automatically generated by wrapping the scikits.learn.linear_model.least_angle.LassoLARS class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +It is a Linear Model trained with an L1 prior as regularizer. +lasso).
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.least_angle.LassoLARS class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the model using X, y as training data. +This node has been automatically generated by wrapping the scikits.learn.linear_model.least_angle.LassoLARS class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Lasso model fit with Least Angle Regression a.k.a. LARS +This node has been automatically generated by wrapping the scikits.learn.linear_model.least_angle.LassoLARS class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +It is a Linear Model trained with an L1 prior as regularizer. +lasso).

+

Parameters

+
+
alpha : float, optional
+
Constant that multiplies the L1 term. Defaults to 1.0
+
fit_intercept : boolean
+
whether to calculate the intercept for this model. If set +to false, no intercept will be used in calculations +(e.g. data is expected to be already centered).
+
+

Attributes

+
+
coef_ : array, shape = [n_features]
+
parameter vector (w in the fomulation formula)
+
intercept_ : float
+
independent term in decision function.
+
+

Examples

+
+>>> from scikits.learn import linear_model
+>>> clf = linear_model.LassoLARS(alpha=0.01)
+>>> clf.fit([[-1,1], [0, 0], [1, 1]], [-1, 0, -1])
+LassoLARS(alpha=0.01, verbose=False, fit_intercept=True)
+>>> print clf.coef_
+[ 0.         -0.72649658]
+

References

+

http://en.wikipedia.org/wiki/Least_angle_regression

+

See also

+

lars_path, Lasso

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.least_angle.LassoLARS class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X : numpy array of shape [n_samples, n_features]

+

Returns

+
+
C : array, shape = [n_samples]
+
Returns predicted values.
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the model using X, y as training data. +This node has been automatically generated by wrapping the scikits.learn.linear_model.least_angle.LassoLARS class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
Training data.
+
y : array-like, shape = [n_samples]
+
Target values.
+
precompute : True | False | 'auto' | array-like
+
Whether to use a precomputed Gram matrix to speed up +calculations. If set to 'auto' let us decide. The Gram +matrix can also be passed as argument.
+
+

Returns

+
+
self : object
+
returns an instance of self.
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.LassoScikitsLearnNode-class.html b/legacy/api/mdp.nodes.LassoScikitsLearnNode-class.html new file mode 100755 index 0000000..bbbfc2a --- /dev/null +++ b/legacy/api/mdp.nodes.LassoScikitsLearnNode-class.html @@ -0,0 +1,1300 @@ + + + + + mdp.nodes.LassoScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class LassoScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class LassoScikitsLearnNode

+
+ +
+
+

Linear Model trained with L1 prior as regularizer (aka the Lasso) +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.Lasso class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Technically the Lasso model is optimizing the same objective function as +the Elastic Net with rho=1.0 (no L2 penalty).

+

Parameters

+
+
alpha : float, optional
+
Constant that multiplies the L1 term. Defaults to 1.0
+
fit_intercept : boolean
+
whether to calculate the intercept for this model. If set +to false, no intercept will be used in calculations +(e.g. data is expected to be already centered).
+
+

Attributes

+
+
coef_ : array, shape = [n_features]
+
parameter vector (w in the fomulation formula)
+
intercept_ : float
+
independent term in decision function.
+
+

Examples

+
+>>> from scikits.learn import linear_model
+>>> clf = linear_model.Lasso(alpha=0.1)
+>>> clf.fit([[0,0], [1, 1], [2, 2]], [0, 1, 2])
+Lasso(alpha=0.1, fit_intercept=True)
+>>> print clf.coef_
+[ 0.85  0.  ]
+>>> print clf.intercept_
+0.15
+

See also

+

LassoLARS

+

Notes

+

The algorithm used to fit the model is coordinate descent.

+

To avoid unnecessary memory duplication the X argument of the fit method +should be directly passed as a fortran contiguous numpy array.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Linear Model trained with L1 prior as regularizer (aka the Lasso) +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.Lasso class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Technically the Lasso model is optimizing the same objective function as +the Elastic Net with rho=1.0 (no L2 penalty).
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.Lasso class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit Elastic Net model with coordinate descent +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.Lasso class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Linear Model trained with L1 prior as regularizer (aka the Lasso) +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.Lasso class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Technically the Lasso model is optimizing the same objective function as +the Elastic Net with rho=1.0 (no L2 penalty).

+

Parameters

+
+
alpha : float, optional
+
Constant that multiplies the L1 term. Defaults to 1.0
+
fit_intercept : boolean
+
whether to calculate the intercept for this model. If set +to false, no intercept will be used in calculations +(e.g. data is expected to be already centered).
+
+

Attributes

+
+
coef_ : array, shape = [n_features]
+
parameter vector (w in the fomulation formula)
+
intercept_ : float
+
independent term in decision function.
+
+

Examples

+
+>>> from scikits.learn import linear_model
+>>> clf = linear_model.Lasso(alpha=0.1)
+>>> clf.fit([[0,0], [1, 1], [2, 2]], [0, 1, 2])
+Lasso(alpha=0.1, fit_intercept=True)
+>>> print clf.coef_
+[ 0.85  0.  ]
+>>> print clf.intercept_
+0.15
+

See also

+

LassoLARS

+

Notes

+

The algorithm used to fit the model is coordinate descent.

+

To avoid unnecessary memory duplication the X argument of the fit method +should be directly passed as a fortran contiguous numpy array.

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.Lasso class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X : numpy array of shape [n_samples, n_features]

+

Returns

+
+
C : array, shape = [n_samples]
+
Returns predicted values.
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit Elastic Net model with coordinate descent +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.Lasso class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X: ndarray, (n_samples, n_features)
+
Data
+
y: ndarray, (n_samples)
+
Target
+
precompute : True | False | 'auto' | array-like
+
Whether to use a precomputed Gram matrix to speed up +calculations. If set to 'auto' let us decide. The Gram +matrix can also be passed as argument.
+
Xy : array-like, optional
+
Xy = np.dot(X.T, y) that can be precomputed. It is useful +only when the Gram matrix is precomuted.
+
max_iter: int, optional
+
The maximum number of iterations
+
tol: float, optional
+
The tolerance for the optimization: if the updates are +smaller than 'tol', the optimization code checks the +dual gap for optimality and continues until it is smaller +than tol.
+
+

Notes

+

Coordinate descent is an algorithm that considers each column of +data at a time hence it will automatically convert the X input +as a fortran contiguous numpy array if necessary.

+

To avoid memory re-allocation it is advised to allocate the +initial data in memory directly using that format.

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.LengthNormalizerScikitsLearnNode-class.html b/legacy/api/mdp.nodes.LengthNormalizerScikitsLearnNode-class.html new file mode 100755 index 0000000..010acdc --- /dev/null +++ b/legacy/api/mdp.nodes.LengthNormalizerScikitsLearnNode-class.html @@ -0,0 +1,1191 @@ + + + + + mdp.nodes.LengthNormalizerScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class LengthNormalizerScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class LengthNormalizerScikitsLearnNode

+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Initializes an object of type 'ScikitsNode'.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ + Initializes an object of type 'ScikitsNode'. +
+
Parameters:
+
    +
  • input_dim (int) - Dimensionality of the input. +Default is None.
  • +
  • output_dim (int) - Dimensionality of the output. +Default is None.
  • +
  • dtype (numpy.dtype or str) - Datatype of the input. +Default is None.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node.stop_training +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.LinearModelCVScikitsLearnNode-class.html b/legacy/api/mdp.nodes.LinearModelCVScikitsLearnNode-class.html new file mode 100755 index 0000000..b16ce24 --- /dev/null +++ b/legacy/api/mdp.nodes.LinearModelCVScikitsLearnNode-class.html @@ -0,0 +1,1214 @@ + + + + + mdp.nodes.LinearModelCVScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class LinearModelCVScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class LinearModelCVScikitsLearnNode

+
+ +
+
+This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.LinearModelCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.LinearModelCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.LinearModelCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit linear model with coordinate descent along decreasing alphas +using cross-validation +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.LinearModelCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ + This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.LinearModelCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.LinearModelCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X : numpy array of shape [n_samples, n_features]

+

Returns

+
+
C : array, shape = [n_samples]
+
Returns predicted values.
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit linear model with coordinate descent along decreasing alphas +using cross-validation +This node has been automatically generated by wrapping the scikits.learn.linear_model.coordinate_descent.LinearModelCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : numpy array of shape [n_samples,n_features]
+
Training data. Pass directly as fortran contiguous data to avoid +unnecessary memory duplication
+
y : numpy array of shape [n_samples]
+
Target values
+
cv : cross-validation generator, optional
+
If None, KFold will be used.
+
fit_params : kwargs
+
keyword arguments passed to the Lasso fit method
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.LinearRegressionNode-class.html b/legacy/api/mdp.nodes.LinearRegressionNode-class.html new file mode 100755 index 0000000..f15fa79 --- /dev/null +++ b/legacy/api/mdp.nodes.LinearRegressionNode-class.html @@ -0,0 +1,1351 @@ + + + + + mdp.nodes.LinearRegressionNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class LinearRegressionNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class LinearRegressionNode

+
+ +
+
+

Compute least-square, multivariate linear regression on the input +data, i.e., learn coefficients b_j so that the linear combination +y_i = b_0 + b_1 x_1 + ... b_N x_N , for i = 1 ... M, minimizes +the sum of squared error given the training x's and y's.

+

This is a supervised learning node, and requires input data x and +target data y to be supplied during training (see train +docstring).

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + with_bias=True, + use_pinv=False, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'LinearRegressionNode'.
+ + +
+ +
+ numpy.ndarray + + + + + + +
_add_constant(self, + x)
+ Add a constant term to the vector 'x'. +x -> [1 x]
+ + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + y) + + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_stop_training(self) + + +
+ +
+   + + + + + + +
_train(self, + x, + y) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + y)
+ Update the internal structures according to the input data x.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + beta
+ The coefficients of the linear regression. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + with_bias=True, + use_pinv=False, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'LinearRegressionNode'. +
+
Parameters:
+
    +
  • with_bias (bool) - If true, the linear model includes a constant term.

    +
      +
    • True: y_i = b_0 + b_1 x_1 + ... b_N x_N
    • +
    • False: y_i = b_1 x_1 + ... b_N x_N
    • +
    +

    If present, the constant term is stored in the first +column of self.beta. Default: True.

  • +
  • use_pinv (bool) - If true, uses the pseudo-inverse function to compute +the linear regression coefficients, which is more robust +in some cases. Default: False.
  • +
  • input_dim (int) - Dimensionality of the input. +Default is None.
  • +
  • output_dim (int) - Dimensionality of the output. +Default is None.
  • +
  • dtype (numpy.dtype, str) - Datatype of the input. +Default is None.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_add_constant(self, + x) +

+
  +
+ + Add a constant term to the vector 'x'. +x -> [1 x] +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The vector a constant term is appended to.
  • +
+
Returns: numpy.ndarray
+
The altered vector.
+
+
+
+ +
+ +
+ + +
+

_check_train_args(self, + x, + y) +

+
  +
+ + +
+
Overrides: + Node._check_train_args +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self) +

+
  +
+ + +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x, + y) +

+
  +
+ + +
+
Parameters:
+
    +
  • x (numpy.ndarray) - Array of different input observations.
  • +
  • y (numpy.ndarray) - Array of size (x.shape[0], output_dim) that contains the +observed output to the input x's.
  • +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

stop_training(self) +

+
  +
+ +

Stop the training phase.

+

By default, subclasses should overwrite _stop_training to implement +this functionality. The docstring of the _stop_training method +overwrites this docstring.

+
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x, + y) +

+
  +
+ +

Update the internal structures according to the input data x.

+

x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _train to implement their +training phase. The docstring of the _train method overwrites this +docstring.

+

Note: a subclass supporting multiple training phases should implement +the same signature for all the training phases and document the +meaning of the arguments in the _train method doc-string. Having +consistent signatures is a requirement to use the node in a flow.

+
+
Parameters:
+
    +
  • x (numpy.ndarray) - Array of different input observations.
  • +
  • y (numpy.ndarray) - Array of size (x.shape[0], output_dim) that contains the +observed output to the input x's.
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

beta

+ The coefficients of the linear regression. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.LinearRegressionScikitsLearnNode-class.html b/legacy/api/mdp.nodes.LinearRegressionScikitsLearnNode-class.html new file mode 100755 index 0000000..3dfb469 --- /dev/null +++ b/legacy/api/mdp.nodes.LinearRegressionScikitsLearnNode-class.html @@ -0,0 +1,1237 @@ + + + + + mdp.nodes.LinearRegressionScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class LinearRegressionScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class LinearRegressionScikitsLearnNode

+
+ +
+
+

Ordinary least squares Linear Regression. +This node has been automatically generated by wrapping the scikits.learn.linear_model.base.LinearRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Attributes

+
+
coef_ : array
+
Estimated coefficients for the linear regression problem.
+
intercept_ : array
+
Independent term in the linear model.
+
+

Notes

+

From the implementation point of view, this is just plain Ordinary +Least Squares (numpy.linalg.lstsq) wrapped as a predictor object.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Ordinary least squares Linear Regression. +This node has been automatically generated by wrapping the scikits.learn.linear_model.base.LinearRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Attributes
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.base.LinearRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit linear model. +This node has been automatically generated by wrapping the scikits.learn.linear_model.base.LinearRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Ordinary least squares Linear Regression. +This node has been automatically generated by wrapping the scikits.learn.linear_model.base.LinearRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Attributes

+
+
coef_ : array
+
Estimated coefficients for the linear regression problem.
+
intercept_ : array
+
Independent term in the linear model.
+
+

Notes

+

From the implementation point of view, this is just plain Ordinary +Least Squares (numpy.linalg.lstsq) wrapped as a predictor object.

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.base.LinearRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X : numpy array of shape [n_samples, n_features]

+

Returns

+
+
C : array, shape = [n_samples]
+
Returns predicted values.
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit linear model. +This node has been automatically generated by wrapping the scikits.learn.linear_model.base.LinearRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : numpy array of shape [n_samples,n_features]
+
Training data
+
y : numpy array of shape [n_samples]
+
Target values
+
fit_intercept : boolean, optional
+
wether to calculate the intercept for this model. If set +to false, no intercept will be used in calculations +(e.g. data is expected to be already centered).
+
+

Returns

+

self : returns an instance of self.

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.LinearSVCScikitsLearnNode-class.html b/legacy/api/mdp.nodes.LinearSVCScikitsLearnNode-class.html new file mode 100755 index 0000000..591d5d2 --- /dev/null +++ b/legacy/api/mdp.nodes.LinearSVCScikitsLearnNode-class.html @@ -0,0 +1,1420 @@ + + + + + mdp.nodes.LinearSVCScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class LinearSVCScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class LinearSVCScikitsLearnNode

+
+ +
+
+

Linear Support Vector Classification, Sparse Version +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.classes.LinearSVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Similar to SVC with parameter kernel='linear', but uses internally +liblinear rather than libsvm, so it has more flexibility in the +choice of penalties and loss functions and should be faster for +huge datasets.

+

Parameters

+
+
loss : string, 'l1' or 'l2' (default 'l2')
+
Specifies the loss function. With 'l1' it is the standard SVM +loss (a.k.a. hinge Loss) while with 'l2' it is the squared loss. +(a.k.a. squared hinge Loss)
+
penalty : string, 'l1' or 'l2' (default 'l2')
+
Specifies the norm used in the penalization. The 'l2' penalty +is the standard used in SVC. The 'l1' leads to coef_ +vectors that are sparse.
+
dual : bool, (default True)
+
Select the algorithm to either solve the dual or primal +optimization problem.
+
intercept_scaling : float, default: 1
+
when self.fit_intercept is True, instance vector x becomes +[x, self.intercept_scaling], +i.e. a "synthetic" feature with constant value equals to +intercept_scaling is appended to the instance vector. +The intercept becomes intercept_scaling * synthetic feature weight +Note! the synthetic feature weight is subject to l1/l2 regularization +as all other features. +To lessen the effect of regularization on synthetic feature weight +(and therefore on the intercept) intercept_scaling has to be increased
+
+

Attributes

+
+
coef_ : array, shape = [n_features] if n_classes == 2 else [n_classes, n_features]
+
Wiehgiths asigned to the features (coefficients in the primal +problem). This is only available in the case of linear kernel.
+
intercept_ : array, shape = [1] if n_classes == 2 else [n_classes]
+
constants in decision function
+
+

Notes

+

The underlying C implementation uses a random number generator to +select features when fitting the model. It is thus not uncommon, +to have slightly different results for the same input data. If +that happens, try with a smaller eps parameter.

+

See also

+

SVC

+

References

+

LIBLINEAR -- A Library for Large Linear Classification +http://www.csie.ntu.edu.tw/~cjlin/liblinear/

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Linear Support Vector Classification, Sparse Version +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.classes.LinearSVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Similar to SVC with parameter kernel='linear', but uses internally +liblinear rather than libsvm, so it has more flexibility in the +choice of penalties and loss functions and should be faster for +huge datasets.
+ + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_label(self, + x) + + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Transform the data and labels lists to array objects and reshape them.
+ + +
+ +
+   + + + + + + +
label(self, + x)
+ Predict target values of X according to the fitted model. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.classes.LinearSVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the model using X, y as training data. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.classes.LinearSVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ClassifierCumulator
+   + + + + + + +
_check_train_args(self, + x, + labels) + + +
+ +
+   + + + + + + +
_train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
+   + + + + + + +
train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
    Inherited from ClassifierNode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_prob(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
prob(self, + x, + *args, + **kwargs)
+ This function does classification or regression on a test vector T +given a model with probability information. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Linear Support Vector Classification, Sparse Version +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.classes.LinearSVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Similar to SVC with parameter kernel='linear', but uses internally +liblinear rather than libsvm, so it has more flexibility in the +choice of penalties and loss functions and should be faster for +huge datasets.

+

Parameters

+
+
loss : string, 'l1' or 'l2' (default 'l2')
+
Specifies the loss function. With 'l1' it is the standard SVM +loss (a.k.a. hinge Loss) while with 'l2' it is the squared loss. +(a.k.a. squared hinge Loss)
+
penalty : string, 'l1' or 'l2' (default 'l2')
+
Specifies the norm used in the penalization. The 'l2' penalty +is the standard used in SVC. The 'l1' leads to coef_ +vectors that are sparse.
+
dual : bool, (default True)
+
Select the algorithm to either solve the dual or primal +optimization problem.
+
intercept_scaling : float, default: 1
+
when self.fit_intercept is True, instance vector x becomes +[x, self.intercept_scaling], +i.e. a "synthetic" feature with constant value equals to +intercept_scaling is appended to the instance vector. +The intercept becomes intercept_scaling * synthetic feature weight +Note! the synthetic feature weight is subject to l1/l2 regularization +as all other features. +To lessen the effect of regularization on synthetic feature weight +(and therefore on the intercept) intercept_scaling has to be increased
+
+

Attributes

+
+
coef_ : array, shape = [n_features] if n_classes == 2 else [n_classes, n_features]
+
Wiehgiths asigned to the features (coefficients in the primal +problem). This is only available in the case of linear kernel.
+
intercept_ : array, shape = [1] if n_classes == 2 else [n_classes]
+
constants in decision function
+
+

Notes

+

The underlying C implementation uses a random number generator to +select features when fitting the model. It is thus not uncommon, +to have slightly different results for the same input data. If +that happens, try with a smaller eps parameter.

+

See also

+

SVC

+

References

+

LIBLINEAR -- A Library for Large Linear Classification +http://www.csie.ntu.edu.tw/~cjlin/liblinear/

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_label(self, + x) +

+
  +
+ + +
+
Overrides: + ClassifierNode._label +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ +
+Transform the data and labels lists to array objects and reshape them.
+
+
+
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

label(self, + x) +

+
  +
+ +

Predict target values of X according to the fitted model. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.classes.LinearSVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X : sparse matrix, shape = [n_samples, n_features]

+

Returns

+

C : array, shape = [n_samples]

+
+
Overrides: + ClassifierNode.label +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the model using X, y as training data. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.classes.LinearSVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : sparse matrix, shape = [n_samples, n_features]
+
Training vector, where n_samples in the number of samples and +n_features is the number of features.
+
y : array, shape = [n_samples]
+
Target vector relative to X
+
+

Returns

+
+
self : object
+
Returns an instance of self.
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.LogisticRegressionScikitsLearnNode-class.html b/legacy/api/mdp.nodes.LogisticRegressionScikitsLearnNode-class.html new file mode 100755 index 0000000..53e28ca --- /dev/null +++ b/legacy/api/mdp.nodes.LogisticRegressionScikitsLearnNode-class.html @@ -0,0 +1,1420 @@ + + + + + mdp.nodes.LogisticRegressionScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class LogisticRegressionScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class LogisticRegressionScikitsLearnNode

+
+ +
+
+

Logistic Regression. +This node has been automatically generated by wrapping the scikits.learn.linear_model.logistic.LogisticRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Implements L1 and L2 regularized logistic regression.

+

Parameters

+
+
penalty : string, 'l1' or 'l2'
+
Used to specify the norm used in the penalization
+
dual : boolean
+
Dual or primal formulation. Dual formulation is only +implemented for l2 penalty.
+
C : float
+
Specifies the strength of the regularization. The smaller it is +the bigger in the regularization.
+
fit_intercept : bool, default: True
+
Specifies if a constant (a.k.a. bias or intercept) should be +added the decision function
+
intercept_scaling : float, default: 1
+
when self.fit_intercept is True, instance vector x becomes +[x, self.intercept_scaling], +i.e. a "synthetic" feature with constant value equals to +intercept_scaling is appended to the instance vector. +The intercept becomes intercept_scaling * synthetic feature weight +Note! the synthetic feature weight is subject to l1/l2 regularization +as all other features. +To lessen the effect of regularization on synthetic feature weight +(and therefore on the intercept) intercept_scaling has to be increased
+
tol: float, optional
+
tolerance for stopping criteria
+
+

Attributes

+
+
coef_ : array, shape = [n_classes-1, n_features]
+
Coefficient of the features in the decision function.
+
intercept_ : array, shape = [n_classes-1]
+
intercept (a.k.a. bias) added to the decision function. +It is available only when parameter intercept is set to True
+
+

See also

+

LinearSVC

+

Notes

+

The underlying C implementation uses a random number generator to +select features when fitting the model. It is thus not uncommon, +to have slightly different results for the same input data. If +that happens, try with a smaller tol parameter.

+

References

+

LIBLINEAR -- A Library for Large Linear Classification +http://www.csie.ntu.edu.tw/~cjlin/liblinear/

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Logistic Regression. +This node has been automatically generated by wrapping the scikits.learn.linear_model.logistic.LogisticRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Implements L1 and L2 regularized logistic regression.
+ + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_label(self, + x) + + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Transform the data and labels lists to array objects and reshape them.
+ + +
+ +
+   + + + + + + +
label(self, + x)
+ Predict target values of X according to the fitted model. +This node has been automatically generated by wrapping the scikits.learn.linear_model.logistic.LogisticRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the model according to the given training data and +parameters. +This node has been automatically generated by wrapping the scikits.learn.linear_model.logistic.LogisticRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ClassifierCumulator
+   + + + + + + +
_check_train_args(self, + x, + labels) + + +
+ +
+   + + + + + + +
_train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
+   + + + + + + +
train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
    Inherited from ClassifierNode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_prob(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
prob(self, + x, + *args, + **kwargs)
+ This function does classification or regression on a test vector T +given a model with probability information. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Logistic Regression. +This node has been automatically generated by wrapping the scikits.learn.linear_model.logistic.LogisticRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Implements L1 and L2 regularized logistic regression.

+

Parameters

+
+
penalty : string, 'l1' or 'l2'
+
Used to specify the norm used in the penalization
+
dual : boolean
+
Dual or primal formulation. Dual formulation is only +implemented for l2 penalty.
+
C : float
+
Specifies the strength of the regularization. The smaller it is +the bigger in the regularization.
+
fit_intercept : bool, default: True
+
Specifies if a constant (a.k.a. bias or intercept) should be +added the decision function
+
intercept_scaling : float, default: 1
+
when self.fit_intercept is True, instance vector x becomes +[x, self.intercept_scaling], +i.e. a "synthetic" feature with constant value equals to +intercept_scaling is appended to the instance vector. +The intercept becomes intercept_scaling * synthetic feature weight +Note! the synthetic feature weight is subject to l1/l2 regularization +as all other features. +To lessen the effect of regularization on synthetic feature weight +(and therefore on the intercept) intercept_scaling has to be increased
+
tol: float, optional
+
tolerance for stopping criteria
+
+

Attributes

+
+
coef_ : array, shape = [n_classes-1, n_features]
+
Coefficient of the features in the decision function.
+
intercept_ : array, shape = [n_classes-1]
+
intercept (a.k.a. bias) added to the decision function. +It is available only when parameter intercept is set to True
+
+

See also

+

LinearSVC

+

Notes

+

The underlying C implementation uses a random number generator to +select features when fitting the model. It is thus not uncommon, +to have slightly different results for the same input data. If +that happens, try with a smaller tol parameter.

+

References

+

LIBLINEAR -- A Library for Large Linear Classification +http://www.csie.ntu.edu.tw/~cjlin/liblinear/

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_label(self, + x) +

+
  +
+ + +
+
Overrides: + ClassifierNode._label +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ +
+Transform the data and labels lists to array objects and reshape them.
+
+
+
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

label(self, + x) +

+
  +
+ +

Predict target values of X according to the fitted model. +This node has been automatically generated by wrapping the scikits.learn.linear_model.logistic.LogisticRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X : array-like, shape = [n_samples, n_features]

+

Returns

+

C : array, shape = [n_samples]

+
+
Overrides: + ClassifierNode.label +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the model according to the given training data and +parameters. +This node has been automatically generated by wrapping the scikits.learn.linear_model.logistic.LogisticRegression class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
Training vector, where n_samples in the number of samples and +n_features is the number of features.
+
y : array-like, shape = [n_samples]
+
Target vector relative to X
+
class_weight : {dict, 'auto'}, optional
+
Weights associated with classes. If not given, all classes +are supposed to have weight one.
+
+

Returns

+
+
self : object
+
Returns self.
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.MCANode-class.html b/legacy/api/mdp.nodes.MCANode-class.html new file mode 100755 index 0000000..fee1b3b --- /dev/null +++ b/legacy/api/mdp.nodes.MCANode-class.html @@ -0,0 +1,1650 @@ + + + + + mdp.nodes.MCANode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class MCANode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class MCANode

+
+ +
+
+

Minor Component Analysis (MCA) extracts minor components (dual of principal +components) from the input data incrementally.

+
+

+
+
+

Reference

+

More information about MCA can be found in +Peng, D. and Yi, Z, A new algorithm for sequential minor component +analysis, International Journal of Computational Intelligence Research, +2(2):207--215, 2006.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + eps=0.1, + gamma=1.0, + normalize=True, + init_eigen_vectors=None, + input_dim=None, + output_dim=None, + dtype=None, + numx_rng=None)
+ Initializes an object of type 'MCANode'.
+ + +
+ +
+ str + + + + + + +
__repr__(self)
+ Print all args.
+ + +
+ +
+   + + + + + + +
_check_params(self, + *args)
+ Initialize parameters.
+ + +
+ +
+   + + + + + + +
_execute(self, + x, + n=None)
+ Project the input on the first 'n' principal components.
+ + +
+ +
+   + + + + + + +
_inverse(self, + y, + n=None)
+ Project 'y' to the input space using the first 'n' components.
+ + +
+ +
+   + + + + + + +
_train(self, + x)
+ Update the minor components.
+ + +
+ +
+ numpy.ndarray + + + + + + +
execute(self, + x, + n=None)
+ Project the input on the first 'n' principal components.
+ + +
+ +
+ numpy.ndarray + + + + + + +
get_projmatrix(self, + transposed=1)
+ Return the projection matrix.
+ + +
+ +
+ numpy.ndarray + + + + + + +
get_recmatrix(self, + transposed=1)
+ Return the back-projection matrix (i.e. the reconstruction matrix).
+ + +
+ +
+ numpy.ndarray + + + + + + +
inverse(self, + y, + n=None)
+ Project 'y' to the input space using the first 'n' components.
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ Update the minor components.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from OnlineNode
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_training_types(self)
+ Return the list of training types supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks. +It can be used when a subclass defines multiple execution methods.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_set_numx_rng(self, + rng) + + +
+ +
+   + + + + + + +
get_current_train_iteration(self)
+ Return the index of the current training iteration.
+ + +
+ +
+   + + + + + + +
get_numx_rng(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
set_numx_rng(self, + rng)
+ Set numx random number generator. +Note that subclasses should overwrite self._set_numx_rng when needed.
+ + +
+ +
+   + + + + + + +
set_training_type(self, + training_type)
+ Sets the training type
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + d
+ Eigenvalues +
+   + + v
+ Eigenvectors +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+ numpy.ndarray + + init_eigen_vectors
+ Return initialized eigenvectors (minor components). +
+

Inherited from object: + __class__ +

+
    Inherited from OnlineNode
+   + + _train_seq
+ List of tuples: +
+   + + numx_rng
+ Numpy seeded random number generator +
+   + + training_type
+ Training type (Read only) +
    Inherited from Node
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + eps=0.1, + gamma=1.0, + normalize=True, + init_eigen_vectors=None, + input_dim=None, + output_dim=None, + dtype=None, + numx_rng=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'MCANode'. +
+
Parameters:
+
    +
  • eps (float) - Learning rate (default: 0.1).
  • +
  • gamma (float) - Sequential addition coefficient (default: 1.0).
  • +
  • normalize (bool) - If True, eigenvectors are normalized after every update. +Useful for non-stationary input data. (default: True)
  • +
  • init_eigen_vectors (numpy.ndarray) - initial eigen vectors. Default - randomly set
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
  • numx_rng - OnlineNodes support use of a pre-seeded random number generator +through a 'numx_rng' argument. This can be useful to replicate +results.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

__repr__(self) +
(Representation operator) +

+
  +
+ + Print all args. +
+
Returns: str
+
A string that contains all names and their values.
+
Overrides: + object.__repr__ +
+
+
+
+ +
+ +
+ + +
+

_check_params(self, + *args) +

+
  +
+ +
+Initialize parameters.
+
+
+
+
Overrides: + OnlineNode._check_params +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x, + n=None) +

+
  +
+ +
+Project the input on the first 'n' principal components.
+
+:param x: The input that is to project.
+:type x: numpy.ndarray
+
+:param n: The number of first principle components to project on.
+    If 'n' is not set, use all available components.
+:type n: int
+
+:return: The projected input.
+:rtype: numpy.ndarray
+
+
+
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_inverse(self, + y, + n=None) +

+
  +
+ +
+Project 'y' to the input space using the first 'n' components.
+
+:param y: Vectors from the output space.
+:type y: numpy.ndarray
+
+:param n: The number of components to use for projection to the
+    input space. If 'n' is not set, use all available components.
+:type n: int
+
+:return: The projected vectors.
+:rtype: numpy.ndarray
+
+:raises mdp.NodeException: If the valid dimension is exceeded.
+
+
+
+
Overrides: + Node._inverse +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x) +

+
  +
+ +
+Update the minor components.
+
+
+
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x, + n=None) +

+
  +
+ + Project the input on the first 'n' principal components. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The input that is to project.
  • +
  • n (int) - The number of first principle components to project on. +If 'n' is not set, use all available components.
  • +
+
Returns: numpy.ndarray
+
The projected input.
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

get_projmatrix(self, + transposed=1) +

+
  +
+ + Return the projection matrix. +
+
Parameters:
+
    +
  • transposed (bool) - If the projection matrix should return transposed, +set this to True.
  • +
+
Returns: numpy.ndarray
+
The projection matrix.
+
+
+
+ +
+ +
+ + +
+

get_recmatrix(self, + transposed=1) +

+
  +
+ + Return the back-projection matrix (i.e. the reconstruction matrix). +
+
Parameters:
+
    +
  • transposed (bool) - If the back-projection matrix should return +transposed, set this to True.
  • +
+
Returns: numpy.ndarray
+
The back-projection matrix.
+
+
+
+ +
+ +
+ + +
+

inverse(self, + y, + n=None) +

+
  +
+ + Project 'y' to the input space using the first 'n' components. +
+
Parameters:
+
    +
  • y (numpy.ndarray) - Vectors from the output space.
  • +
  • n (int) - The number of components to use for projection to the +input space. If 'n' is not set, use all available components.
  • +
+
Returns: numpy.ndarray
+
The projected vectors.
+
Raises:
+
+
Overrides: + Node.inverse +
+
+
+
+ +
+ +
+ + +
+

train(self, + x) +

+
  +
+ + Update the minor components. +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

d

+ Eigenvalues +
+
+
+
+ +
+ +
+

v

+ Eigenvectors +
+
+
+
+
+ + + + + + +
+ + + + + +
Property Details[hide private]
+
+ +
+ +
+

init_eigen_vectors

+ Return initialized eigenvectors (minor components). +
+
Get Method:
+
unreachable.init_eigen_vectors(self) + - Return initialized eigenvectors (minor components). +
+
Set Method:
+
unreachable.init_eigen_vectors(self, + init_eigen_vectors=None) + - Set initial eigen vectors (minor components). +
+
Type:
+
numpy.ndarray
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.MultinomialHMMScikitsLearnNode-class.html b/legacy/api/mdp.nodes.MultinomialHMMScikitsLearnNode-class.html new file mode 100755 index 0000000..d3871d2 --- /dev/null +++ b/legacy/api/mdp.nodes.MultinomialHMMScikitsLearnNode-class.html @@ -0,0 +1,1307 @@ + + + + + mdp.nodes.MultinomialHMMScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class MultinomialHMMScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class MultinomialHMMScikitsLearnNode

+
+ +
+
+

Hidden Markov Model with multinomial (discrete) emissions +This node has been automatically generated by wrapping the scikits.learn.hmm.MultinomialHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Attributes

+
+
n_states : int (read-only)
+
Number of states in the model.
+
n_symbols : int
+
Number of possible symbols emitted by the model (in the observations).
+
transmat : array, shape (n_states, n_states)
+
Matrix of transition probabilities between states.
+
startprob : array, shape ('n_states`,)
+
Initial state occupation distribution.
+
emissionprob: array, shape ('n_states`, 'n_symbols`)
+
Probability of emitting a given symbol when in each state.
+
+

Methods

+
+
eval(X)
+
Compute the log likelihood of X under the HMM.
+
decode(X)
+
Find most likely state sequence for each point in X using the +Viterbi algorithm.
+
rvs(n=1)
+
Generate n samples from the HMM.
+
init(X)
+
Initialize HMM parameters from X.
+
fit(X)
+
Estimate HMM parameters from X using the Baum-Welch algorithm.
+
predict(X)
+
Like decode, find most likely state sequence corresponding to X.
+
score(X)
+
Compute the log likelihood of X under the model.
+
+

Examples

+
+>>> from scikits.learn.hmm import MultinomialHMM
+>>> MultinomialHMM(n_states=2)
+... #doctest: +ELLIPSIS +NORMALIZE_WHITESPACE
+MultinomialHMM(transmat=array([[ 0.5,  0.5],
+       [ 0.5,  0.5]]),
+        startprob_prior=1.0, n_states=2, startprob=array([ 0.5,  0.5]),
+       transmat_prior=1.0)
+

See Also

+

GaussianHMM : HMM with Gaussian emissions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Create a hidden Markov model with multinomial emissions. +This node has been automatically generated by wrapping the scikits.learn.hmm.MultinomialHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Find most likely state sequence corresponding to obs. +This node has been automatically generated by wrapping the scikits.learn.hmm.MultinomialHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Estimate model parameters. +This node has been automatically generated by wrapping the scikits.learn.hmm.MultinomialHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +An initialization step is performed before entering the EM +algorithm. If you want to avoid this step, set the keyword +argument init_params to the empty string ''. Likewise, if you +would like just to do an initialization, call this method with +n_iter=0.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Create a hidden Markov model with multinomial emissions. +This node has been automatically generated by wrapping the scikits.learn.hmm.MultinomialHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
n_states : int
+
Number of states.
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Find most likely state sequence corresponding to obs. +This node has been automatically generated by wrapping the scikits.learn.hmm.MultinomialHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
obs : array_like, shape (n, n_features)
+
List of n_features-dimensional data points. Each row +corresponds to a single data point.
+
maxrank : int
+
Maximum rank to evaluate for rank pruning. If not None, +only consider the top maxrank states in the inner +sum of the forward algorithm recursion. Defaults to None +(no rank pruning). See The HTK Book for more details.
+
beamlogprob : float
+
Width of the beam-pruning beam in log-probability units. +Defaults to -numpy.Inf (no beam pruning). See The HTK +Book for more details.
+
+

Returns

+
+
states : array_like, shape (n,)
+
Index of the most likely states for each observation
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Estimate model parameters. +This node has been automatically generated by wrapping the scikits.learn.hmm.MultinomialHMM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +An initialization step is performed before entering the EM +algorithm. If you want to avoid this step, set the keyword +argument init_params to the empty string ''. Likewise, if you +would like just to do an initialization, call this method with +n_iter=0.

+

Parameters

+
+
obs : list
+
List of array-like observation sequences (shape (n_i, n_features)).
+
n_iter : int, optional
+
Number of iterations to perform.
+
thresh : float, optional
+
Convergence threshold.
+
params : string, optional
+
Controls which parameters are updated in the training +process. Can contain any combination of 's' for startprob, +'t' for transmat, 'm' for means, and 'c' for covars, etc. +Defaults to all parameters.
+
init_params : string, optional
+
Controls which parameters are initialized prior to +training. Can contain any combination of 's' for +startprob, 't' for transmat, 'm' for means, and 'c' for +covars, etc. Defaults to all parameters.
+
maxrank : int, optional
+
Maximum rank to evaluate for rank pruning. If not None, +only consider the top maxrank states in the inner +sum of the forward algorithm recursion. Defaults to None +(no rank pruning). See "The HTK Book" for more details.
+
beamlogprob : float, optional
+
Width of the beam-pruning beam in log-probability units. +Defaults to -numpy.Inf (no beam pruning). See "The HTK +Book" for more details.
+
+

Notes

+

In general, logprob should be non-decreasing unless +aggressive pruning is used. Decreasing logprob is generally +a sign of overfitting (e.g. a covariance parameter getting too +small). You can fix this by getting more training data, or +decreasing covars_prior.

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.NIPALSNode-class.html b/legacy/api/mdp.nodes.NIPALSNode-class.html new file mode 100755 index 0000000..a53e7a8 --- /dev/null +++ b/legacy/api/mdp.nodes.NIPALSNode-class.html @@ -0,0 +1,1374 @@ + + + + + mdp.nodes.NIPALSNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class NIPALSNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class NIPALSNode

+
+ +
+
+

Perform Principal Component Analysis using the NIPALS algorithm.

+

This algorithm is particularly useful if you have more variables than +observations, or in general when the number of variables is huge and +calculating a full covariance matrix may be infeasible. It's also more +efficient of the standard PCANode if you expect the number of significant +principal components to be a small. In this case setting output_dim to be +a certain fraction of the total variance, say 90%, may be of some help.

+
+

+
+
+

Reference

+

Reference for NIPALS (Nonlinear Iterative Partial Least Squares): +Wold, H. +Nonlinear estimation by iterative least squares procedures. +in David, F. (Editor), Research Papers in Statistics, Wiley, +New York, pp 411-444 (1966).

+

More information about Principal Component Analysis*, a.k.a. discrete +Karhunen-Loeve transform can be found among others in +I.T. Jolliffe, Principal Component Analysis, Springer-Verlag (1986).

+

Original code contributed by: +Michael Schmuker, Susanne Lezius, and Farzad Farkhooi (2008).

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + conv=1e-08, + max_it=100000)
+ Initializes an object of type 'NIPALSNode'.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + debug=False)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
_train(self, + x)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
stop_training(self, + debug=False)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ Collect all input data in a list.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from PCANode
+ tuple + + + + + + +
_adjust_output_dim(self)
+ This function is used if the output dimensions is smaller than the input +dimension (so only the larger eigenvectors have to be kept). If required it +sets the output dim.
+ + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+ numpy.ndarray + + + + + + +
_execute(self, + x, + n=None)
+ Project the input on the first 'n' principal components.
+ + +
+ +
+ numpy.ndarray + + + + + + +
_inverse(self, + y, + n=None)
+ Project data from the output to the input space using the +first 'n' components.
+ + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+ numpy.ndarray + + + + + + +
execute(self, + x, + n=None)
+ Project the input on the first 'n' principal components.
+ + +
+ +
+ float + + + + + + +
get_explained_variance(self)
+ The explained variance is the fraction of the original variance +that can be explained by self._output_dim PCA components. If for +example output_dim has been set to 0.95, the explained variance could +be something like 0.958...
+ + +
+ +
+ numpy.ndarray + + + + + + +
get_projmatrix(self, + transposed=1)
+ Returns the projection matrix.
+ + +
+ +
+ numpy.ndarray + + + + + + +
get_recmatrix(self, + transposed=1)
+ Returns the the back-projection matrix +(i.e. the reconstruction matrix).
+ + +
+ +
+ numpy.ndarray + + + + + + +
inverse(self, + y, + n=None)
+ Project data from the output to the input space using the +first 'n' components.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + avg
+ Mean of the input data (available after training). +
+   + + d
+ Variance corresponding to the PCA components (eigenvalues of the +covariance matrix). +
+   + + explained_variance
+ When output_dim has been specified as a fraction +of the total variance, this is the fraction of the total variance that is +actually explained. +
+   + + v
+ Transposed of the projection matrix (available after training). +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + conv=1e-08, + max_it=100000) +
(Constructor) +

+
  +
+ + Initializes an object of type 'NIPALSNode'. +
+
Parameters:
+
    +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int or float) - The number of principal components to be kept can be specified as +'output_dim' directly (e.g. 'output_dim=10' means 10 components +are kept) or by the fraction of variance to be explained +(e.g. 'output_dim=0.95' means that as many components as necessary +will be kept in order to explain 95% of the input variance).
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
  • conv (float) - Convergence threshold for the residual error.
  • +
  • max_it (int) - Maximum number of iterations.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + debug=False) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Parameters:
+
    +
  • debug - Determines if singular matrices itself are stored in +self.cov_mtx and self.dcov_mtx to be examined, given that +stop_training fails because of singular covmatrices. +Default is False.
  • +
+
Raises:
+
    +
  • mdp.NodeException - If negative eigenvalues occur, +the covariance matrix may be singular or no component +amounts to variation exceeding var_abs.
  • +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x) +

+
  +
+ + Collect all input data in a list. +
+
Parameters:
+
    +
  • x - The training data.
  • +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + debug=False) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Parameters:
+
    +
  • debug - Determines if singular matrices itself are stored in +self.cov_mtx and self.dcov_mtx to be examined, given that +stop_training fails because of singular covmatrices. +Default is False.
  • +
+
Raises:
+
    +
  • mdp.NodeException - If negative eigenvalues occur, +the covariance matrix may be singular or no component +amounts to variation exceeding var_abs.
  • +
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x) +

+
  +
+ + Collect all input data in a list. +
+
Parameters:
+
    +
  • x - The training data.
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

avg

+ Mean of the input data (available after training). +
+
+
+
+ +
+ +
+

d

+ Variance corresponding to the PCA components (eigenvalues of the +covariance matrix). +
+
+
+
+ +
+ +
+

explained_variance

+ When output_dim has been specified as a fraction +of the total variance, this is the fraction of the total variance that is +actually explained. +
+
+
+
+ +
+ +
+

v

+ Transposed of the projection matrix (available after training). +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.NMFScikitsLearnNode-class.html b/legacy/api/mdp.nodes.NMFScikitsLearnNode-class.html new file mode 100755 index 0000000..a8c4319 --- /dev/null +++ b/legacy/api/mdp.nodes.NMFScikitsLearnNode-class.html @@ -0,0 +1,1420 @@ + + + + + mdp.nodes.NMFScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class NMFScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class NMFScikitsLearnNode

+
+ +
+
+
+
+Non-Negative matrix factorization by Projected Gradient (NMF)
+This node has been automatically generated by wrapping the ``scikits.learn.decomposition.nmf.NMF`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+**Parameters**
+
+X: array, [n_samples, n_features]
+    Data the model will be fit to.
+
+n_components: int or None
+    Number of components
+    if n_components is not set all components are kept
+
+init:  'nndsvd' |  'nndsvda' | 'nndsvdar' | int | RandomState
+    Method used to initialize the procedure.
+    Default: 'nndsvdar'
+    Valid options:
+
+        - 'nndsvd': default Nonnegative Double Singular Value
+        -     Decomposition (NNDSVD) initialization (better for sparseness)
+        - 'nndsvda': NNDSVD with zeros filled with the average of X
+        -     (better when sparsity is not desired)
+        - 'nndsvdar': NNDSVD with zeros filled with small random values
+        -     (generally faster, less accurate alternative to NNDSVDa
+        -     for when sparsity is not desired)
+        - int seed or RandomState: non-negative random matrices
+
+
+sparseness: 'data' | 'components' | None
+    Where to enforce sparsity in the model.
+    Default: None
+
+beta: double
+    Degree of sparseness, if sparseness is not None. Larger values mean
+    more sparseness.
+    Default: 1
+
+eta: double
+    Degree of correctness to mantain, if sparsity is not None. Smaller
+    values mean larger error.
+    Default: 0.1
+
+tol: double
+    Tolerance value used in stopping conditions.
+    Default: 1e-4
+
+max_iter: int
+    Number of iterations to compute.
+    Default: 200
+
+nls_max_iter: int
+    Number of iterations in NLS subproblem.
+    Default: 2000
+
+**Attributes**
+
+components_: array, [n_components, n_features]
+    Non-negative components of the data
+reconstruction_err_: number
+    Frobenius norm of the matrix difference between the
+    training data and the reconstructed data from the
+    fit produced by the model. || X - WH ||_2
+
+**Examples**
+
+
+>>> import numpy as np
+>>> X = np.array([[1,1], [2, 1], [3, 1.2], [4, 1], [5, 0.8], [6, 1]])
+>>> from scikits.learn.decomposition import ProjectedGradientNMF
+>>> model = ProjectedGradientNMF(n_components=2, init=0)
+>>> model.fit(X) #doctest: +ELLIPSIS
+ProjectedGradientNMF(nls_max_iter=2000, eta=0.1, max_iter=200,
+           init=<mtrand.RandomState object at 0x...>, beta=1,
+           sparseness=None, n_components=2, tol=0.0001)
+>>> model.components_
+array([[ 0.77032744,  0.11118662],
+       [ 0.38526873,  0.38228063]])
+>>> model.reconstruction_err_ #doctest: +ELLIPSIS
+0.00746...
+>>> model = ProjectedGradientNMF(n_components=2, init=0,
+...                              sparseness='components')
+>>> model.fit(X) #doctest: +ELLIPSIS
+ProjectedGradientNMF(nls_max_iter=2000, eta=0.1, max_iter=200,
+           init=<mtrand.RandomState object at 0x...>, beta=1,
+           sparseness='components', n_components=2, tol=0.0001)
+>>> model.components_
+array([[ 1.67481991,  0.29614922],
+       [-0.        ,  0.4681982 ]])
+>>> model.reconstruction_err_ #doctest: +ELLIPSIS
+0.513...
+
+**Notes**
+
+This implements C.-J. Lin. Projected gradient methods
+for non-negative matrix factorization. Neural
+Computation, 19(2007), 2756-2779.
+http://www.csie.ntu.edu.tw/~cjlin/nmf/
+
+NNDSVD is introduced in
+C. Boutsidis, E. Gallopoulos: SVD based
+initialization: A head start for nonnegative
+matrix factorization - Pattern Recognition, 2008
+http://www.cs.rpi.edu/~boutsc/files/nndsvd.pdf
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Non-Negative matrix factorization by Projected Gradient (NMF) +This node has been automatically generated by wrapping the ``scikits.learn.decomposition.nmf.NMF`` class +from the ``sklearn`` library.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Transform the data X according to the fitted NMF model +This node has been automatically generated by wrapping the scikits.learn.decomposition.nmf.NMF class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Learn a NMF model for the data X. +This node has been automatically generated by wrapping the scikits.learn.decomposition.nmf.NMF class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +
+
+Non-Negative matrix factorization by Projected Gradient (NMF)
+This node has been automatically generated by wrapping the ``scikits.learn.decomposition.nmf.NMF`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+**Parameters**
+
+X: array, [n_samples, n_features]
+    Data the model will be fit to.
+
+n_components: int or None
+    Number of components
+    if n_components is not set all components are kept
+
+init:  'nndsvd' |  'nndsvda' | 'nndsvdar' | int | RandomState
+    Method used to initialize the procedure.
+    Default: 'nndsvdar'
+    Valid options:
+
+        - 'nndsvd': default Nonnegative Double Singular Value
+        -     Decomposition (NNDSVD) initialization (better for sparseness)
+        - 'nndsvda': NNDSVD with zeros filled with the average of X
+        -     (better when sparsity is not desired)
+        - 'nndsvdar': NNDSVD with zeros filled with small random values
+        -     (generally faster, less accurate alternative to NNDSVDa
+        -     for when sparsity is not desired)
+        - int seed or RandomState: non-negative random matrices
+
+
+sparseness: 'data' | 'components' | None
+    Where to enforce sparsity in the model.
+    Default: None
+
+beta: double
+    Degree of sparseness, if sparseness is not None. Larger values mean
+    more sparseness.
+    Default: 1
+
+eta: double
+    Degree of correctness to mantain, if sparsity is not None. Smaller
+    values mean larger error.
+    Default: 0.1
+
+tol: double
+    Tolerance value used in stopping conditions.
+    Default: 1e-4
+
+max_iter: int
+    Number of iterations to compute.
+    Default: 200
+
+nls_max_iter: int
+    Number of iterations in NLS subproblem.
+    Default: 2000
+
+**Attributes**
+
+components_: array, [n_components, n_features]
+    Non-negative components of the data
+reconstruction_err_: number
+    Frobenius norm of the matrix difference between the
+    training data and the reconstructed data from the
+    fit produced by the model. || X - WH ||_2
+
+**Examples**
+
+
+>>> import numpy as np
+>>> X = np.array([[1,1], [2, 1], [3, 1.2], [4, 1], [5, 0.8], [6, 1]])
+>>> from scikits.learn.decomposition import ProjectedGradientNMF
+>>> model = ProjectedGradientNMF(n_components=2, init=0)
+>>> model.fit(X) #doctest: +ELLIPSIS
+ProjectedGradientNMF(nls_max_iter=2000, eta=0.1, max_iter=200,
+           init=<mtrand.RandomState object at 0x...>, beta=1,
+           sparseness=None, n_components=2, tol=0.0001)
+>>> model.components_
+array([[ 0.77032744,  0.11118662],
+       [ 0.38526873,  0.38228063]])
+>>> model.reconstruction_err_ #doctest: +ELLIPSIS
+0.00746...
+>>> model = ProjectedGradientNMF(n_components=2, init=0,
+...                              sparseness='components')
+>>> model.fit(X) #doctest: +ELLIPSIS
+ProjectedGradientNMF(nls_max_iter=2000, eta=0.1, max_iter=200,
+           init=<mtrand.RandomState object at 0x...>, beta=1,
+           sparseness='components', n_components=2, tol=0.0001)
+>>> model.components_
+array([[ 1.67481991,  0.29614922],
+       [-0.        ,  0.4681982 ]])
+>>> model.reconstruction_err_ #doctest: +ELLIPSIS
+0.513...
+
+**Notes**
+
+This implements C.-J. Lin. Projected gradient methods
+for non-negative matrix factorization. Neural
+Computation, 19(2007), 2756-2779.
+http://www.csie.ntu.edu.tw/~cjlin/nmf/
+
+NNDSVD is introduced in
+C. Boutsidis, E. Gallopoulos: SVD based
+initialization: A head start for nonnegative
+matrix factorization - Pattern Recognition, 2008
+http://www.cs.rpi.edu/~boutsc/files/nndsvd.pdf
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Transform the data X according to the fitted NMF model +This node has been automatically generated by wrapping the scikits.learn.decomposition.nmf.NMF class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X: array, [n_samples, n_features]
+
Data matrix to be transformed by the model
+
+

Returns

+
+
data: array, [n_samples, n_components]
+
Transformed data
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Learn a NMF model for the data X. +This node has been automatically generated by wrapping the scikits.learn.decomposition.nmf.NMF class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X: array, [n_samples, n_features]
+
Data matrix to be decomposed
+
+

Returns

+

self

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.NearestMeanClassifier-class.html b/legacy/api/mdp.nodes.NearestMeanClassifier-class.html new file mode 100755 index 0000000..e3f96e6 --- /dev/null +++ b/legacy/api/mdp.nodes.NearestMeanClassifier-class.html @@ -0,0 +1,1358 @@ + + + + + mdp.nodes.NearestMeanClassifier + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class NearestMeanClassifier + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class NearestMeanClassifier

+
+ +
+
+Nearest-Mean classifier. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + execute_method=None, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'NearestMeanClassifier'
+ + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + labels) + + +
+ +
+ list + + + + + + +
_label(self, + x)
+ Classify the data based on minimal distance to mean.
+ + +
+ +
+   + + + + + + +
_stop_training(self)
+ Calculate the class means.
+ + +
+ +
+   + + + + + + +
_train(self, + x, + labels)
+ Update the mean information for the different classes.
+ + +
+ +
+   + + + + + + +
_update_mean(self, + x, + label)
+ Update the mean with data for a single label.
+ + +
+ +
+ list + + + + + + +
label(self, + x)
+ Classify the data based on minimal distance to mean.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Calculate the class means.
+ + +
+ +
+   + + + + + + +
train(self, + x, + labels)
+ Update the mean information for the different classes.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ClassifierNode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_prob(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
prob(self, + x, + *args, + **kwargs)
+ This function does classification or regression on a test vector T +given a model with probability information. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + execute_method=None, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'NearestMeanClassifier' +
+
Parameters:
+
    +
  • execute_method (str) - Set to string value 'label', 'rank', or 'prob' to +force the corresponding classification method being used instead +of the standard identity execution (which is used when +execute_method has the default value None). This can be used when +the node is last in a flow, the return value from Flow.execute +will then consist of the classification results.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_check_train_args(self, + x, + labels) +

+
  +
+ + +
+
Overrides: + Node._check_train_args +
+
+
+
+ +
+ +
+ + +
+

_label(self, + x) +

+
  +
+ + Classify the data based on minimal distance to mean. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data to classify.
  • +
+
Returns: list
+
The data labels.
+
Overrides: + ClassifierNode._label +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self) +

+
  +
+ + Calculate the class means. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x, + labels) +

+
  +
+ + Update the mean information for the different classes. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data.
  • +
  • labels - Can be a list, tuple or array of labels (one for each data +point) or a single label, in which case all input data is assigned +to the same class (computationally this is more efficient).
  • +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

_update_mean(self, + x, + label) +

+
  +
+ + Update the mean with data for a single label. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data.
  • +
  • label - The label index.
  • +
+
+
+
+ +
+ +
+ + +
+

label(self, + x) +

+
  +
+ + Classify the data based on minimal distance to mean. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data to classify.
  • +
+
Returns: list
+
The data labels.
+
Overrides: + ClassifierNode.label +
+
+
+
+ +
+ +
+ + +
+

stop_training(self) +

+
  +
+ + Calculate the class means. +
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x, + labels) +

+
  +
+ + Update the mean information for the different classes. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data.
  • +
  • labels - Can be a list, tuple or array of labels (one for each data +point) or a single label, in which case all input data is assigned +to the same class (computationally this is more efficient).
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.NeighborsClassifierScikitsLearnNode-class.html b/legacy/api/mdp.nodes.NeighborsClassifierScikitsLearnNode-class.html new file mode 100755 index 0000000..445b5d7 --- /dev/null +++ b/legacy/api/mdp.nodes.NeighborsClassifierScikitsLearnNode-class.html @@ -0,0 +1,1380 @@ + + + + + mdp.nodes.NeighborsClassifierScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class NeighborsClassifierScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class NeighborsClassifierScikitsLearnNode

+
+ +
+
+

Classifier implementing k-Nearest Neighbor Algorithm. +This node has been automatically generated by wrapping the scikits.learn.neighbors.NeighborsClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
n_neighbors : int, optional
+
Default number of neighbors. Defaults to 5.
+
window_size : int, optional
+
Window size passed to BallTree
+
algorithm : {'auto', 'ball_tree', 'brute'}, optional
+
Algorithm used to compute the nearest neighbors. 'ball_tree' will +construct a BallTree while 'brute'will perform brute-force +search. 'auto' will guess the most appropriate based on current dataset.
+
+

Examples

+
+>>> samples = [[0, 0, 1], [1, 0, 0]]
+>>> labels = [0, 1]
+>>> from scikits.learn.neighbors import NeighborsClassifier
+>>> neigh = NeighborsClassifier(n_neighbors=1)
+>>> neigh.fit(samples, labels)
+NeighborsClassifier(n_neighbors=1, window_size=1, algorithm='auto')
+>>> print neigh.predict([[0,0,0]])
+[1]
+

See also

+

BallTree

+

References

+

http://en.wikipedia.org/wiki/K-nearest_neighbor_algorithm

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Classifier implementing k-Nearest Neighbor Algorithm. +This node has been automatically generated by wrapping the scikits.learn.neighbors.NeighborsClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_label(self, + x) + + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Transform the data and labels lists to array objects and reshape them.
+ + +
+ +
+   + + + + + + +
label(self, + x)
+ Predict the class labels for the provided data +This node has been automatically generated by wrapping the scikits.learn.neighbors.NeighborsClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the model using X, y as training data +This node has been automatically generated by wrapping the scikits.learn.neighbors.NeighborsClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ClassifierCumulator
+   + + + + + + +
_check_train_args(self, + x, + labels) + + +
+ +
+   + + + + + + +
_train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
+   + + + + + + +
train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
    Inherited from ClassifierNode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_prob(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
prob(self, + x, + *args, + **kwargs)
+ This function does classification or regression on a test vector T +given a model with probability information. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Classifier implementing k-Nearest Neighbor Algorithm. +This node has been automatically generated by wrapping the scikits.learn.neighbors.NeighborsClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
n_neighbors : int, optional
+
Default number of neighbors. Defaults to 5.
+
window_size : int, optional
+
Window size passed to BallTree
+
algorithm : {'auto', 'ball_tree', 'brute'}, optional
+
Algorithm used to compute the nearest neighbors. 'ball_tree' will +construct a BallTree while 'brute'will perform brute-force +search. 'auto' will guess the most appropriate based on current dataset.
+
+

Examples

+
+>>> samples = [[0, 0, 1], [1, 0, 0]]
+>>> labels = [0, 1]
+>>> from scikits.learn.neighbors import NeighborsClassifier
+>>> neigh = NeighborsClassifier(n_neighbors=1)
+>>> neigh.fit(samples, labels)
+NeighborsClassifier(n_neighbors=1, window_size=1, algorithm='auto')
+>>> print neigh.predict([[0,0,0]])
+[1]
+

See also

+

BallTree

+

References

+

http://en.wikipedia.org/wiki/K-nearest_neighbor_algorithm

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_label(self, + x) +

+
  +
+ + +
+
Overrides: + ClassifierNode._label +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ +
+Transform the data and labels lists to array objects and reshape them.
+
+
+
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

label(self, + x) +

+
  +
+ +

Predict the class labels for the provided data +This node has been automatically generated by wrapping the scikits.learn.neighbors.NeighborsClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X: array
+
A 2-D array representing the test point.
+
n_neighbors : int
+
Number of neighbors to get (default is the value +passed to the constructor).
+
+

Returns

+
+
labels: array
+
List of class labels (one for each data sample).
+
+
+
Overrides: + ClassifierNode.label +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the model using X, y as training data +This node has been automatically generated by wrapping the scikits.learn.neighbors.NeighborsClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
Training data.
+
y : array-like, shape = [n_samples]
+
Target values, array of integer values.
+
params : list of keyword, optional
+
Overwrite keywords from __init__
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.NeighborsRegressorScikitsLearnNode-class.html b/legacy/api/mdp.nodes.NeighborsRegressorScikitsLearnNode-class.html new file mode 100755 index 0000000..f515d00 --- /dev/null +++ b/legacy/api/mdp.nodes.NeighborsRegressorScikitsLearnNode-class.html @@ -0,0 +1,1397 @@ + + + + + mdp.nodes.NeighborsRegressorScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class NeighborsRegressorScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class NeighborsRegressorScikitsLearnNode

+
+ +
+
+

Regression based on k-Nearest Neighbor Algorithm +This node has been automatically generated by wrapping the scikits.learn.neighbors.NeighborsRegressor class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The target is predicted by local interpolation of the targets +associated of the k-Nearest Neighbors in the training set.

+

Different modes for estimating the result can be set via parameter +mode. 'barycenter' will apply the weights that best reconstruct +the point from its neighbors while 'mean' will apply constant +weights to each point.

+

Parameters

+
+
n_neighbors : int, optional
+
Default number of neighbors. Defaults to 5.
+
window_size : int, optional
+
Window size passed to BallTree
+
mode : {'mean', 'barycenter'}, optional
+
Weights to apply to labels.
+
algorithm : {'auto', 'ball_tree', 'brute'}, optional
+
Algorithm used to compute the nearest neighbors. 'ball_tree' will +construct a BallTree, while 'brute' will perform brute-force +search. 'auto' will guess the most appropriate based on current +dataset.
+
+

Examples

+
+>>> X = [[0], [1], [2], [3]]
+>>> y = [0, 0, 1, 1]
+>>> from scikits.learn.neighbors import NeighborsRegressor
+>>> neigh = NeighborsRegressor(n_neighbors=2)
+>>> neigh.fit(X, y)
+NeighborsRegressor(n_neighbors=2, window_size=1, mode='mean',
+          algorithm='auto')
+>>> print neigh.predict([[1.5]])
+[ 0.5]
+

Notes

+

http://en.wikipedia.org/wiki/K-nearest_neighbor_algorithm

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Regression based on k-Nearest Neighbor Algorithm +This node has been automatically generated by wrapping the scikits.learn.neighbors.NeighborsRegressor class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The target is predicted by local interpolation of the targets +associated of the k-Nearest Neighbors in the training set.
+ + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_label(self, + x) + + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Transform the data and labels lists to array objects and reshape them.
+ + +
+ +
+   + + + + + + +
label(self, + x)
+ Predict the target for the provided data +This node has been automatically generated by wrapping the scikits.learn.neighbors.NeighborsRegressor class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the model using X, y as training data +This node has been automatically generated by wrapping the scikits.learn.neighbors.NeighborsRegressor class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ClassifierCumulator
+   + + + + + + +
_check_train_args(self, + x, + labels) + + +
+ +
+   + + + + + + +
_train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
+   + + + + + + +
train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
    Inherited from ClassifierNode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_prob(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
prob(self, + x, + *args, + **kwargs)
+ This function does classification or regression on a test vector T +given a model with probability information. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Regression based on k-Nearest Neighbor Algorithm +This node has been automatically generated by wrapping the scikits.learn.neighbors.NeighborsRegressor class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The target is predicted by local interpolation of the targets +associated of the k-Nearest Neighbors in the training set.

+

Different modes for estimating the result can be set via parameter +mode. 'barycenter' will apply the weights that best reconstruct +the point from its neighbors while 'mean' will apply constant +weights to each point.

+

Parameters

+
+
n_neighbors : int, optional
+
Default number of neighbors. Defaults to 5.
+
window_size : int, optional
+
Window size passed to BallTree
+
mode : {'mean', 'barycenter'}, optional
+
Weights to apply to labels.
+
algorithm : {'auto', 'ball_tree', 'brute'}, optional
+
Algorithm used to compute the nearest neighbors. 'ball_tree' will +construct a BallTree, while 'brute' will perform brute-force +search. 'auto' will guess the most appropriate based on current +dataset.
+
+

Examples

+
+>>> X = [[0], [1], [2], [3]]
+>>> y = [0, 0, 1, 1]
+>>> from scikits.learn.neighbors import NeighborsRegressor
+>>> neigh = NeighborsRegressor(n_neighbors=2)
+>>> neigh.fit(X, y)
+NeighborsRegressor(n_neighbors=2, window_size=1, mode='mean',
+          algorithm='auto')
+>>> print neigh.predict([[1.5]])
+[ 0.5]
+

Notes

+

http://en.wikipedia.org/wiki/K-nearest_neighbor_algorithm

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_label(self, + x) +

+
  +
+ + +
+
Overrides: + ClassifierNode._label +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ +
+Transform the data and labels lists to array objects and reshape them.
+
+
+
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

label(self, + x) +

+
  +
+ +

Predict the target for the provided data +This node has been automatically generated by wrapping the scikits.learn.neighbors.NeighborsRegressor class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array
+
A 2-D array representing the test data.
+
n_neighbors : int, optional
+
Number of neighbors to get (default is the value +passed to the constructor).
+
+

Returns

+
+
y: array
+
List of target values (one for each data sample).
+
+
+
Overrides: + ClassifierNode.label +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the model using X, y as training data +This node has been automatically generated by wrapping the scikits.learn.neighbors.NeighborsRegressor class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
Training data.
+
y : array-like, shape = [n_samples]
+
Target values, array of integer values.
+
params : list of keyword, optional
+
Overwrite keywords from __init__
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.NeuralGasNode-class.html b/legacy/api/mdp.nodes.NeuralGasNode-class.html new file mode 100755 index 0000000..a1c0b48 --- /dev/null +++ b/legacy/api/mdp.nodes.NeuralGasNode-class.html @@ -0,0 +1,1443 @@ + + + + + mdp.nodes.NeuralGasNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class NeuralGasNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class NeuralGasNode

+
+ +
+
+

Learn the topological structure of the input data by building a +corresponding graph approximation (original Neural Gas algorithm).

+
+

+
+
+

Reference

+

The Neural Gas algorithm was originally published in Martinetz, T. and +Schulten, K.: A "Neural-Gas" Network Learns Topologies. In Kohonen, T., +Maekisara, K., Simula, O., and Kangas, J. (eds.), Artificial Neural +Networks. Elsevier, North-Holland., 1991.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + num_nodes=10, + start_poss=None, + epsilon_i=0.3, + epsilon_f=0.05, + lambda_i=30.0, + lambda_f=0.01, + max_age_i=20, + max_age_f=200, + max_epochs=100, + n_epochs_to_train=None, + input_dim=None, + dtype=None)
+ Initializes an object of type 'NeuralGasNode'.
+ + +
+ +
+ list + + + + + + +
_rank_nodes_by_distance(self, + x)
+ Return the nodes in the graph in a list ranked by their squared +distance to x.
+ + +
+ +
+   + + + + + + +
_remove_old_edges(self, + max_age)
+ Remove all edges older than the maximal age.
+ + +
+ +
+   + + + + + + +
_train(self, + input) + + +
+ +
+   + + + + + + +
train(self, + input)
+ Update the internal structures according to the input data x.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from GrowingNeuralGasNode
+   + + + + + + +
_add_edge(self, + from_, + to_) + + +
+ +
+   + + + + + + +
_add_node(self, + pos) + + +
+ +
+   + + + + + + +
_get_nearest_nodes(self, + x)
+ Return the two nodes in the graph that are nearest to x and their +squared distances.
+ + +
+ +
+   + + + + + + +
_insert_new_node(self)
+ Insert a new node in the graph where it is more necessary (i.e. +where the error is the largest).
+ + +
+ +
+   + + + + + + +
_move_node(self, + node, + x, + eps)
+ Move a node by eps in the direction x.
+ + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
get_nodes_position(self) + + +
+ +
+ tuple + + + + + + +
nearest_neighbor(self, + input)
+ Assign each point in the input data to the nearest node in +the graph. Return the list of the nearest node instances, and +the list of distances.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + graph
+ The corresponding mdp.graph.Graph object. +
+   + + max_epochs
+ Maximum number of epochs until which to train. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + num_nodes=10, + start_poss=None, + epsilon_i=0.3, + epsilon_f=0.05, + lambda_i=30.0, + lambda_f=0.01, + max_age_i=20, + max_age_f=200, + max_epochs=100, + n_epochs_to_train=None, + input_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ +

Initializes an object of type 'NeuralGasNode'.

+

Default parameters taken from the original publication.

+
+
Parameters:
+
    +
  • num_nodes (int) - Number of nodes to use. Ignored if start_poss is given. +Default is 10.
  • +
  • start_poss (list, tuple or numpy.ndarray) - Sequence of two arrays containing the position of the +first two nodes in the GNG graph. In unspecified, the +initial nodes are chosen with a random position generated +from a gaussian distribution with zero mean and unit +variance. +Default is None.
  • +
  • epsilon_i (float) - Initial value of epsilon. Fraction of the distance +between the closest node and the presented data point by which the +node moves towards the data point in an adaptation step. Epsilon +decays during training by e(t) = e_i(e_f/e_i)^(t/t_max) with t +being the epoch. +Default is 0.3.
  • +
  • epsilon_f (float) - Final value of epsilon. Fraction of the distance +between the closest node and the presented data point by which the +node moves towards the data point in an adaptation step. Epsilon +decays during training by e(t) = e_i(e_f/e_i)^(t/t_max) with t +being the epoch. +Default is 0.05.
  • +
  • lambda_i (float) - Initial value of lambda. Lambda influences how the +weight change of nodes in the ranking decreases with lower rank. It +is sometimes called the "neighborhood factor". Lambda decays during +training in the same manner as epsilon does. +Default is 30. .
  • +
  • lambda_f (float) - Final value of lambda. Lambda influences how the +weight change of nodes in the ranking decreases with lower rank. It +is sometimes called the "neighborhood factor". Lambda decays during +training in the same manner as epsilon does. +Default is 0.01.
  • +
  • max_age_i (int) - Initial lifetime, after which an edge will be removed. +Lifetime is measured in terms of adaptation steps, i.e., +presentations of data points. It decays during training like +epsilon does. +Default is 20.
  • +
  • max_age_f (int) - Final lifetime, after which an edge will be removed. +Lifetime is measured in terms of adaptation steps, i.e., +presentations of data points. It decays during training like +epsilon does. +Default is 200.
  • +
  • max_epochs (int) - Number of epochs to train. One epoch has passed when all data points +from the input have been presented once. The default in the original +publication was 40000, but since this has proven to be impractically +high too high for many real-world data sets, we adopted a default +value of 100.
  • +
  • n_epochs_to_train (int) - Number of epochs to train on each call. Useful for batch learning +and for visualization of the training process. Default is to +train once until max_epochs is reached.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_rank_nodes_by_distance(self, + x) +

+
  +
+ + Return the nodes in the graph in a list ranked by their squared +distance to x. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - Point to compute distance to.
  • +
+
Returns: list
+
List of nodes ordered by the distance of the node to x.
+
+
+
+ +
+ +
+ + +
+

_remove_old_edges(self, + max_age) +

+
  +
+ + Remove all edges older than the maximal age. +
+
Parameters:
+
    +
  • edges () - Candidates that are considered to be removed.
  • +
+
Overrides: + GrowingNeuralGasNode._remove_old_edges +
+
+
+
+ +
+ +
+ + +
+

_train(self, + input) +

+
  +
+ + +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

train(self, + input) +

+
  +
+ +

Update the internal structures according to the input data x.

+

x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _train to implement their +training phase. The docstring of the _train method overwrites this +docstring.

+

Note: a subclass supporting multiple training phases should implement +the same signature for all the training phases and document the +meaning of the arguments in the _train method doc-string. Having +consistent signatures is a requirement to use the node in a flow.

+
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

graph

+ The corresponding mdp.graph.Graph object. +
+
+
+
+ +
+ +
+

max_epochs

+ Maximum number of epochs until which to train. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.NoiseNode-class.html b/legacy/api/mdp.nodes.NoiseNode-class.html new file mode 100755 index 0000000..e3c4908 --- /dev/null +++ b/legacy/api/mdp.nodes.NoiseNode-class.html @@ -0,0 +1,1186 @@ + + + + + mdp.nodes.NoiseNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class NoiseNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class NoiseNode

+
+ +
+
+

Inject multiplicative or additive noise into the input data.

+

Original code contributed by Mathias Franzius.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + noise_func=<built-in method normal of mtrand.RandomState object at 0x7fb8..., + noise_args=(0, 1), + noise_type='additive', + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'NoiseNode'.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the data types supported by this node.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to 'filename'. +If 'filename' is None, return a string.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + noise_func=<built-in method normal of mtrand.RandomState object at 0x7fb8..., + noise_args=(0, 1), + noise_type='additive', + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'NoiseNode'. +
+
Parameters:
+
    +
  • noise_func (function) - A function that generates noise. It must +take a size keyword argument and return +a random array of that size. Default is normal noise.
  • +
  • noise_args (tuple) - Tuple of additional arguments passed to noise_func. +Default is (0,1) for (mean, standard deviation) +of the normal distribution.
  • +
  • noise_type (str) - Either 'additive' or 'multiplicative'.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the data types supported by this node. +
+
Returns: list
+
The list of numpy.dtypes that this node supports.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Overrides: + Node.is_trainable +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

save(self, + filename, + protocol=-1) +

+
  +
+ +

Save a pickled serialization of the node to 'filename'. +If 'filename' is None, return a string.

+

Note: the pickled Node is not guaranteed to be upward or +backward compatible.

+
+
Parameters:
+
    +
  • filename (str) - The name of the file to save to.
  • +
  • protocol - Whether to open the file in +binary mode (protocol != 0). Default is -1.
  • +
+
Overrides: + Node.save +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.NormalNoiseNode-class.html b/legacy/api/mdp.nodes.NormalNoiseNode-class.html new file mode 100755 index 0000000..0f90c77 --- /dev/null +++ b/legacy/api/mdp.nodes.NormalNoiseNode-class.html @@ -0,0 +1,1121 @@ + + + + + mdp.nodes.NormalNoiseNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class NormalNoiseNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class NormalNoiseNode

+
+ +
+
+

Special version of NoiseNode for Gaussian additive noise.

+

Unlike NoiseNode it does not store a noise function reference but simply +uses numx_rand.normal.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + noise_args=(0, 1), + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'NormalNoiseNode'.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + noise_args=(0, 1), + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'NormalNoiseNode'. +
+
Parameters:
+
    +
  • noise_args (tuple) - Tuple of (mean, standard deviation) for the normal +distribution, default is (0,1).
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Overrides: + Node.is_trainable +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.NormalizeNode-class.html b/legacy/api/mdp.nodes.NormalizeNode-class.html new file mode 100755 index 0000000..9b378b7 --- /dev/null +++ b/legacy/api/mdp.nodes.NormalizeNode-class.html @@ -0,0 +1,1242 @@ + + + + + mdp.nodes.NormalizeNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class NormalizeNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class NormalizeNode

+
+ +
+
+Make input signal meanfree and unit variance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'NormalizeNode'.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_inverse(self, + y) + + +
+ +
+   + + + + + + +
_stop_training(self) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
inverse(self, + y)
+ Invert y.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ Update the internal structures according to the input data x.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'NormalizeNode'. +
+
Parameters:
+
    +
  • input_dim (int) - Dimensionality of the input. +Default is None.
  • +
  • output_dim (int) - Dimensionality of the output. +Default is None.
  • +
  • dtype (numpy.dtype or str) - Datatype of the input. +Default is None.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_inverse(self, + y) +

+
  +
+ + +
+
Overrides: + Node._inverse +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self) +

+
  +
+ + +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x) +

+
  +
+ + +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

inverse(self, + y) +

+
  +
+ +

Invert y.

+

If the node is invertible, compute the input x such that +y = execute(x).

+

By default, subclasses should overwrite _inverse to implement +their inverse function. The docstring of the inverse method +overwrites this docstring.

+
+
Overrides: + Node.inverse +
+
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Overrides: + Node.is_trainable +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

stop_training(self) +

+
  +
+ +

Stop the training phase.

+

By default, subclasses should overwrite _stop_training to implement +this functionality. The docstring of the _stop_training method +overwrites this docstring.

+
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x) +

+
  +
+ +

Update the internal structures according to the input data x.

+

x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _train to implement their +training phase. The docstring of the _train method overwrites this +docstring.

+

Note: a subclass supporting multiple training phases should implement +the same signature for all the training phases and document the +meaning of the arguments in the _train method doc-string. Having +consistent signatures is a requirement to use the node in a flow.

+
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.NormalizerScikitsLearnNode-class.html b/legacy/api/mdp.nodes.NormalizerScikitsLearnNode-class.html new file mode 100755 index 0000000..b82637c --- /dev/null +++ b/legacy/api/mdp.nodes.NormalizerScikitsLearnNode-class.html @@ -0,0 +1,1195 @@ + + + + + mdp.nodes.NormalizerScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class NormalizerScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class NormalizerScikitsLearnNode

+
+ +
+
+This node has been automatically generated by wrapping the scikits.learn.preprocessing.Normalizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Initializes an object of type 'ScikitsNode'.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ + Initializes an object of type 'ScikitsNode'. +
+
Parameters:
+
    +
  • input_dim (int) - Dimensionality of the input. +Default is None.
  • +
  • output_dim (int) - Dimensionality of the output. +Default is None.
  • +
  • dtype (numpy.dtype or str) - Datatype of the input. +Default is None.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node.stop_training +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.NormalizingRecursiveExpansionNode-class.html b/legacy/api/mdp.nodes.NormalizingRecursiveExpansionNode-class.html new file mode 100755 index 0000000..7365318 --- /dev/null +++ b/legacy/api/mdp.nodes.NormalizingRecursiveExpansionNode-class.html @@ -0,0 +1,1309 @@ + + + + + mdp.nodes.NormalizingRecursiveExpansionNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class NormalizingRecursiveExpansionNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class NormalizingRecursiveExpansionNode

+
+ +
+
+Recursively computable (orthogonal) expansions and a +trainable transformation to the domain of the expansions. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + degree=1, + recf='standard_poly', + check=True, + with0=True, + input_dim=None, + dtype=None)
+ Initialize a NormalizingRecursiveExpansionNode.
+ + +
+ +
+ numpy.ndarray + + + + + + +
_execute(self, + x)
+ Apply the transformation and execute RecursiveExpansionNode.
+ + +
+ +
+   + + + + + + +
_stop_training(self)
+ Create a transformation function, that transforms the data +to the domain of the family of functions to evaluate.
+ + +
+ +
+   + + + + + + +
_train(self, + x)
+ Determine coordinatewise and absolute maxima and minima.
+ + +
+ +
+ numpy.ndarray + + + + + + +
execute(self, + x)
+ Apply the transformation and execute RecursiveExpansionNode.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Create a transformation function, that transforms the data +to the domain of the family of functions to evaluate.
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ Determine coordinatewise and absolute maxima and minima.
+ + +
+ +
+

Inherited from unreachable._ExpansionNode (private): + _set_input_dim, + _set_output_dim +

+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from RecursiveExpansionNode
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
check_domain(self, + x, + prec=1e-06)
+ the function sequence selected is defined or orthogonal.
+ + +
+ +
+ int + + + + + + +
expanded_dim(self, + num_vars)
+ Return the size of a vector of dimension 'dim' after +an expansion of degree 'self._degree'.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+

Inherited from unreachable._ExpansionNode: + is_invertible +

+
+ + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + lower
+ The lower bound of the domain on which the recursion function +is defined or orthogonal. +
+   + + upper
+ The upper bound of the domain on which the recursion function +is defined or orthogonal. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + degree=1, + recf='standard_poly', + check=True, + with0=True, + input_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initialize a NormalizingRecursiveExpansionNode. +
+
Parameters:
+
    +
  • degree (int) - The maximum order of the recursive expansion. +The dimension of the return for single variable inputs will be +equal to this value if with0 == False.
  • +
  • recf (tuple or str) - Must be in ['standard_poly', 'legendre_poly', +'legendre_rational', 'chebyshev_poly'] or a tuple similar +to those in the recfs dictionary in this module. The procedure +on how an init function is built can be found in the docstring +of the init and recursion function for standard polynomials +init_standard_poly and recf_standard_poly, respectively.
  • +
  • check (bool) - Indicates whether the input data will +be checked for compliance to the domain on which the function +sequence selected is defined or orthogonal. The check will be made +automatically in the execute method.
  • +
  • with0 (bool) - Parameter that specificies whether the zero-th order +element is to be included at the beginning of the result array.
  • +
  • input_dim (int) - Dimensionality of the input. +Default is None.
  • +
  • dtype (numpy.dtype or str) - Datatype of the input. +Default is None.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + Apply the transformation and execute RecursiveExpansionNode. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data to be expanded. Observations/samples must +be along the first axis, variables along the second.
  • +
+
Returns: numpy.ndarray
+
The expansion of x with observations/samples along the +first axis and corresponding function values (expansion) +along the second axis.
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self) +

+
  +
+ +

Create a transformation function, that transforms the data +to the domain of the family of functions to evaluate.

+Note: If the cube is unbounded the data is translated by the shortest length vector possible. If instead the cube is bounded the data is scaled around the mean of max and min, if neccessary. Then the mean of max and min is moved onto the cube mean by a translation. It is important to note, that the assumption is made, that the data on which the node is executed on, does not contain more "malign outliers" than the ones already supplied during training. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x) +

+
  +
+ +

Determine coordinatewise and absolute maxima and minima.

+

The values are used to generate a transformation to the valid domain +for the data.

+
+
Parameters:
+
    +
  • x (numpy.ndarray) - Chuck of data to be used for training. Observations/samples +must be along the first axis, variables along the second.
  • +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ + Apply the transformation and execute RecursiveExpansionNode. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data to be expanded. Observations/samples must +be along the first axis, variables along the second.
  • +
+
Returns: numpy.ndarray
+
The expansion of x with observations/samples along the +first axis and corresponding function values (expansion) +along the second axis.
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Overrides: + Node.is_trainable +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

stop_training(self) +

+
  +
+ +

Create a transformation function, that transforms the data +to the domain of the family of functions to evaluate.

+Note: If the cube is unbounded the data is translated by the shortest length vector possible. If instead the cube is bounded the data is scaled around the mean of max and min, if neccessary. Then the mean of max and min is moved onto the cube mean by a translation. It is important to note, that the assumption is made, that the data on which the node is executed on, does not contain more "malign outliers" than the ones already supplied during training. +
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x) +

+
  +
+ +

Determine coordinatewise and absolute maxima and minima.

+

The values are used to generate a transformation to the valid domain +for the data.

+
+
Parameters:
+
    +
  • x (numpy.ndarray) - Chuck of data to be used for training. Observations/samples +must be along the first axis, variables along the second.
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

lower

+ The lower bound of the domain on which the recursion function +is defined or orthogonal. +
+
+
+
+ +
+ +
+

upper

+ The upper bound of the domain on which the recursion function +is defined or orthogonal. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.NuSVCScikitsLearnNode-class.html b/legacy/api/mdp.nodes.NuSVCScikitsLearnNode-class.html new file mode 100755 index 0000000..d08f6c3 --- /dev/null +++ b/legacy/api/mdp.nodes.NuSVCScikitsLearnNode-class.html @@ -0,0 +1,1392 @@ + + + + + mdp.nodes.NuSVCScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class NuSVCScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class NuSVCScikitsLearnNode

+
+ +
+
+
+
+NuSVC for sparse matrices (csr).
+This node has been automatically generated by wrapping the ``scikits.learn.svm.sparse.classes.NuSVC`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+See :class:`scikits.learn.svm.NuSVC` for a complete list of parameters
+
+**Notes**
+
+For best results, this accepts a matrix in csr format
+(scipy.sparse.csr), but should be able to convert from any array-like
+object (including other sparse representations).
+
+**Examples**
+
+>>> import numpy as np
+>>> X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
+>>> y = np.array([1, 1, 2, 2])
+>>> from scikits.learn.svm.sparse import NuSVC
+>>> clf = NuSVC()
+>>> clf.fit(X, y)
+NuSVC(kernel='rbf', probability=False, degree=3, coef0=0.0, tol=0.001,
+   cache_size=100.0, shrinking=True, nu=0.5, gamma=0.25)
+>>> print clf.predict([[-0.8, -1]])
+[ 1.]
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ NuSVC for sparse matrices (csr).
+ + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_label(self, + x) + + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Transform the data and labels lists to array objects and reshape them.
+ + +
+ +
+   + + + + + + +
label(self, + x)
+ This function does classification or regression on an array of +test vectors T. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.classes.NuSVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +For a classification model, the predicted class for each +sample in T is returned. For a regression model, the function +value of T calculated is returned.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the SVM model according to the given training data and +parameters. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.classes.NuSVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ClassifierCumulator
+   + + + + + + +
_check_train_args(self, + x, + labels) + + +
+ +
+   + + + + + + +
_train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
+   + + + + + + +
train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
    Inherited from ClassifierNode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_prob(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
prob(self, + x, + *args, + **kwargs)
+ This function does classification or regression on a test vector T +given a model with probability information. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +
+
+NuSVC for sparse matrices (csr).
+This node has been automatically generated by wrapping the ``scikits.learn.svm.sparse.classes.NuSVC`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+See :class:`scikits.learn.svm.NuSVC` for a complete list of parameters
+
+**Notes**
+
+For best results, this accepts a matrix in csr format
+(scipy.sparse.csr), but should be able to convert from any array-like
+object (including other sparse representations).
+
+**Examples**
+
+>>> import numpy as np
+>>> X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
+>>> y = np.array([1, 1, 2, 2])
+>>> from scikits.learn.svm.sparse import NuSVC
+>>> clf = NuSVC()
+>>> clf.fit(X, y)
+NuSVC(kernel='rbf', probability=False, degree=3, coef0=0.0, tol=0.001,
+   cache_size=100.0, shrinking=True, nu=0.5, gamma=0.25)
+>>> print clf.predict([[-0.8, -1]])
+[ 1.]
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_label(self, + x) +

+
  +
+ + +
+
Overrides: + ClassifierNode._label +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ +
+Transform the data and labels lists to array objects and reshape them.
+
+
+
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

label(self, + x) +

+
  +
+ +

This function does classification or regression on an array of +test vectors T. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.classes.NuSVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +For a classification model, the predicted class for each +sample in T is returned. For a regression model, the function +value of T calculated is returned.

+

For an one-class model, +1 or -1 is returned.

+

Parameters

+

T : scipy.sparse.csr, shape = [n_samples, n_features]

+

Returns

+

C : array, shape = [n_samples]

+
+
Overrides: + ClassifierNode.label +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the SVM model according to the given training data and +parameters. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.classes.NuSVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : sparse matrix, shape = [n_samples, n_features]
+
Training vectors, where n_samples is the number of samples and +n_features is the number of features.
+
y : array-like, shape = [n_samples]
+
Target values (integers in classification, real numbers in +regression)
+
class_weight : {dict, 'auto'}, optional
+

Weights associated with classes in the form +{class_label : weight}. If not given, all classes are +supposed to have weight one.

+

The 'auto' mode uses the values of y to automatically adjust +weights inversely proportional to class frequencies.

+
+
sample_weight : array-like, shape = [n_samples], optional
+
Weights applied to individual samples (1. for unweighted).
+
+

Returns

+
+
self : object
+
Returns an instance of self.
+
+

Notes

+

For maximum effiency, use a sparse matrix in csr format +(scipy.sparse.csr_matrix)

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.NuSVRScikitsLearnNode-class.html b/legacy/api/mdp.nodes.NuSVRScikitsLearnNode-class.html new file mode 100755 index 0000000..b345062 --- /dev/null +++ b/legacy/api/mdp.nodes.NuSVRScikitsLearnNode-class.html @@ -0,0 +1,1283 @@ + + + + + mdp.nodes.NuSVRScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class NuSVRScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class NuSVRScikitsLearnNode

+
+ +
+
+
+
+NuSVR for sparse matrices (csr)
+This node has been automatically generated by wrapping the ``scikits.learn.svm.sparse.classes.NuSVR`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+See :class:`scikits.learn.svm.NuSVC` for a complete list of parameters
+
+**Notes**
+
+For best results, this accepts a matrix in csr format
+(scipy.sparse.csr), but should be able to convert from any array-like
+object (including other sparse representations).
+
+**Examples**
+
+>>> from scikits.learn.svm.sparse import NuSVR
+>>> import numpy as np
+>>> n_samples, n_features = 10, 5
+>>> np.random.seed(0)
+>>> y = np.random.randn(n_samples)
+>>> X = np.random.randn(n_samples, n_features)
+>>> clf = NuSVR(nu=0.1, C=1.0)
+>>> clf.fit(X, y)
+NuSVR(kernel='rbf', C=1.0, probability=False, degree=3, shrinking=True,
+   tol=0.001, epsilon=0.1, cache_size=100.0, coef0=0.0, nu=0.1, gamma=0.1)
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ NuSVR for sparse matrices (csr) +This node has been automatically generated by wrapping the ``scikits.learn.svm.sparse.classes.NuSVR`` class +from the ``sklearn`` library.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ This function does classification or regression on an array of +test vectors T. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.classes.NuSVR class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +For a classification model, the predicted class for each +sample in T is returned. For a regression model, the function +value of T calculated is returned.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the SVM model according to the given training data and +parameters. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.classes.NuSVR class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +
+
+NuSVR for sparse matrices (csr)
+This node has been automatically generated by wrapping the ``scikits.learn.svm.sparse.classes.NuSVR`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+See :class:`scikits.learn.svm.NuSVC` for a complete list of parameters
+
+**Notes**
+
+For best results, this accepts a matrix in csr format
+(scipy.sparse.csr), but should be able to convert from any array-like
+object (including other sparse representations).
+
+**Examples**
+
+>>> from scikits.learn.svm.sparse import NuSVR
+>>> import numpy as np
+>>> n_samples, n_features = 10, 5
+>>> np.random.seed(0)
+>>> y = np.random.randn(n_samples)
+>>> X = np.random.randn(n_samples, n_features)
+>>> clf = NuSVR(nu=0.1, C=1.0)
+>>> clf.fit(X, y)
+NuSVR(kernel='rbf', C=1.0, probability=False, degree=3, shrinking=True,
+   tol=0.001, epsilon=0.1, cache_size=100.0, coef0=0.0, nu=0.1, gamma=0.1)
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

This function does classification or regression on an array of +test vectors T. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.classes.NuSVR class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +For a classification model, the predicted class for each +sample in T is returned. For a regression model, the function +value of T calculated is returned.

+

For an one-class model, +1 or -1 is returned.

+

Parameters

+

T : scipy.sparse.csr, shape = [n_samples, n_features]

+

Returns

+

C : array, shape = [n_samples]

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the SVM model according to the given training data and +parameters. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.classes.NuSVR class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : sparse matrix, shape = [n_samples, n_features]
+
Training vectors, where n_samples is the number of samples and +n_features is the number of features.
+
y : array-like, shape = [n_samples]
+
Target values (integers in classification, real numbers in +regression)
+
class_weight : {dict, 'auto'}, optional
+

Weights associated with classes in the form +{class_label : weight}. If not given, all classes are +supposed to have weight one.

+

The 'auto' mode uses the values of y to automatically adjust +weights inversely proportional to class frequencies.

+
+
sample_weight : array-like, shape = [n_samples], optional
+
Weights applied to individual samples (1. for unweighted).
+
+

Returns

+
+
self : object
+
Returns an instance of self.
+
+

Notes

+

For maximum effiency, use a sparse matrix in csr format +(scipy.sparse.csr_matrix)

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.OneClassSVMScikitsLearnNode-class.html b/legacy/api/mdp.nodes.OneClassSVMScikitsLearnNode-class.html new file mode 100755 index 0000000..56c0fec --- /dev/null +++ b/legacy/api/mdp.nodes.OneClassSVMScikitsLearnNode-class.html @@ -0,0 +1,1304 @@ + + + + + mdp.nodes.OneClassSVMScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class OneClassSVMScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class OneClassSVMScikitsLearnNode

+
+ +
+
+

Unsupervised Outliers Detection. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.OneClassSVM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Estimate the support of a high-dimensional distribution.

+

Parameters

+
+
kernel : string, optional
+
Specifies the kernel type to be used in +the algorithm. Can be one of 'linear', 'poly', 'rbf', 'sigmoid', +'precomputed'. If none is given 'rbf' will be used.
+
nu : float, optional
+
An upper bound on the fraction of training +errors and a lower bound of the fraction of support +vectors. Should be in the interval (0, 1]. By default 0.5 +will be taken.
+
degree : int, optional
+
Degree of kernel function. Significant only in poly, rbf, sigmoid.
+
gamma : float, optional
+
kernel coefficient for rbf and poly, by default 1/n_features +will be taken.
+
coef0 : float, optional
+
Independent term in kernel function. It is only significant in +poly/sigmoid.
+
tol: float, optional
+
precision for stopping criteria
+
shrinking: boolean, optional
+
wether to use the shrinking heuristic.
+
cache_size: float, optional
+
specify the size of the cache (in MB)
+
+

Attributes

+
+
support_ : array-like, shape = [n_SV]
+
Index of support vectors.
+
support_vectors_ : array-like, shape = [nSV, n_features]
+
Support vectors.
+
dual_coef_ : array, shape = [n_classes-1, n_SV]
+
Coefficient of the support vector in the decision function.
+
coef_ : array, shape = [n_classes-1, n_features]
+
Weights asigned to the features (coefficients in the primal +problem). This is only available in the case of linear kernel.
+
intercept_ : array, shape = [n_classes-1]
+
Constants in decision function.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Unsupervised Outliers Detection. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.OneClassSVM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Estimate the support of a high-dimensional distribution.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ This function does classification or regression on an array of +test vectors X. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.OneClassSVM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +For a classification model, the predicted class for each +sample in X is returned. For a regression model, the function +value of X calculated is returned.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Detects the soft boundary of the set of samples X. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.OneClassSVM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Unsupervised Outliers Detection. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.OneClassSVM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Estimate the support of a high-dimensional distribution.

+

Parameters

+
+
kernel : string, optional
+
Specifies the kernel type to be used in +the algorithm. Can be one of 'linear', 'poly', 'rbf', 'sigmoid', +'precomputed'. If none is given 'rbf' will be used.
+
nu : float, optional
+
An upper bound on the fraction of training +errors and a lower bound of the fraction of support +vectors. Should be in the interval (0, 1]. By default 0.5 +will be taken.
+
degree : int, optional
+
Degree of kernel function. Significant only in poly, rbf, sigmoid.
+
gamma : float, optional
+
kernel coefficient for rbf and poly, by default 1/n_features +will be taken.
+
coef0 : float, optional
+
Independent term in kernel function. It is only significant in +poly/sigmoid.
+
tol: float, optional
+
precision for stopping criteria
+
shrinking: boolean, optional
+
wether to use the shrinking heuristic.
+
cache_size: float, optional
+
specify the size of the cache (in MB)
+
+

Attributes

+
+
support_ : array-like, shape = [n_SV]
+
Index of support vectors.
+
support_vectors_ : array-like, shape = [nSV, n_features]
+
Support vectors.
+
dual_coef_ : array, shape = [n_classes-1, n_SV]
+
Coefficient of the support vector in the decision function.
+
coef_ : array, shape = [n_classes-1, n_features]
+
Weights asigned to the features (coefficients in the primal +problem). This is only available in the case of linear kernel.
+
intercept_ : array, shape = [n_classes-1]
+
Constants in decision function.
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

This function does classification or regression on an array of +test vectors X. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.OneClassSVM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +For a classification model, the predicted class for each +sample in X is returned. For a regression model, the function +value of X calculated is returned.

+

For an one-class model, +1 or -1 is returned.

+

Parameters

+

X : array-like, shape = [n_samples, n_features]

+

Returns

+

C : array, shape = [n_samples]

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Detects the soft boundary of the set of samples X. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.OneClassSVM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
Set of samples, where n_samples is the number of samples and +n_features is the number of features.
+
+

Returns

+
+
self : object
+
Returns self.
+
+

Notes

+

If X is not a C-ordered contiguous array, it is copied.

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.OnlineCenteringNode-class.html b/legacy/api/mdp.nodes.OnlineCenteringNode-class.html new file mode 100755 index 0000000..2d276c5 --- /dev/null +++ b/legacy/api/mdp.nodes.OnlineCenteringNode-class.html @@ -0,0 +1,1507 @@ + + + + + mdp.nodes.OnlineCenteringNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class OnlineCenteringNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class OnlineCenteringNode

+
+ +
+
+

OnlineCenteringNode centers the input data, that is, subtracts the arithmetic mean (average) from the +input data. This is an online learnable node.

+Note: The node's train method updates the average (avg) according to the update rule: avg <- (1 / n) * x + (1-1/n) * avg, where n is the total number of samples observed while training. The node's execute method subtracts the updated average from the input and returns it. This node also supports centering via an exponentially weighted moving average that resembles a leaky integrator: avg <- alpha * x + (1-alpha) * avg, where alpha = 2. / (avg_n + 1). avg_n intuitively denotes a "window size". For a large avg_n, 'avg_n'-samples represent about 86% of the total weight. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + avg_n=None, + input_dim=None, + output_dim=None, + dtype=None, + numx_rng=None)
+ Initializes an object of type 'OnlineCenteringNode'.
+ + +
+ +
+ str + + + + + + +
__repr__(self)
+ Print all args.
+ + +
+ +
+   + + + + + + +
_check_params(self, + x) + + +
+ +
+   + + + + + + +
_execute(self, + x)
+ Returns a centered input.
+ + +
+ +
+   + + + + + + +
_get_supported_training_types(self)
+ Return the list of training types supported by this node.
+ + +
+ +
+   + + + + + + +
_inverse(self, + x)
+ Returns the non-centered original data.
+ + +
+ +
+   + + + + + + +
_train(self, + x)
+ updates the average parameter
+ + +
+ +
+ numpy.ndarray + + + + + + +
execute(self, + x)
+ Returns a centered input.
+ + +
+ +
+ float + + + + + + +
get_average(self)
+ Returns the updated average.
+ + +
+ +
+ numpy.ndarray + + + + + + +
inverse(self, + x)
+ Returns the non-centered original data.
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ updates the average parameter
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from PreserveDimOnlineNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from OnlineNode
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks. +It can be used when a subclass defines multiple execution methods.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_set_numx_rng(self, + rng) + + +
+ +
+   + + + + + + +
get_current_train_iteration(self)
+ Return the index of the current training iteration.
+ + +
+ +
+   + + + + + + +
get_numx_rng(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
set_numx_rng(self, + rng)
+ Set numx random number generator. +Note that subclasses should overwrite self._set_numx_rng when needed.
+ + +
+ +
+   + + + + + + +
set_training_type(self, + training_type)
+ Sets the training type
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + avg
+ The updated average of the input data. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from OnlineNode
+   + + _train_seq
+ List of tuples: +
+   + + numx_rng
+ Numpy seeded random number generator +
+   + + training_type
+ Training type (Read only) +
    Inherited from Node
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + avg_n=None, + input_dim=None, + output_dim=None, + dtype=None, + numx_rng=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'OnlineCenteringNode'. +
+
Parameters:
+
    +
  • avg_n (int or None) - If set to None (default), the node updates a simple +moving average. If set to a positive integer, the node updates an +exponentially weighted moving average.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
  • numx_rng - Random number generator.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

__repr__(self) +
(Representation operator) +

+
  +
+ + Print all args. +
+
Returns: str
+
A string that contains all argument names and their values.
+
Overrides: + object.__repr__ +
+
+
+
+ +
+ +
+ + +
+

_check_params(self, + x) +

+
  +
+ + +
+
Overrides: + OnlineNode._check_params +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ +
+Returns a centered input.
+
+:param x: The input to center.
+:type x: numpy.ndarray
+
+:return: The centered input.
+:rtype: numpy.ndarray
+
+
+
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_training_types(self) +

+
  +
+ + Return the list of training types supported by this node. +
+
Overrides: + OnlineNode._get_supported_training_types +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_inverse(self, + x) +

+
  +
+ +
+Returns the non-centered original data.
+
+:param x: The centered data.
+:type x: numpy.ndarray
+
+:return: The non-centered original input.
+:rtype: numpy.ndarray
+
+
+
+
Overrides: + Node._inverse +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x) +

+
  +
+ +
+updates the average parameter
+
+
+
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ + Returns a centered input. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The input to center.
  • +
+
Returns: numpy.ndarray
+
The centered input.
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

get_average(self) +

+
  +
+ + Returns the updated average. +
+
Returns: float
+
The average used for centering.
+
+
+
+ +
+ +
+ + +
+

inverse(self, + x) +

+
  +
+ + Returns the non-centered original data. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The centered data.
  • +
+
Returns: numpy.ndarray
+
The non-centered original input.
+
Overrides: + Node.inverse +
+
+
+
+ +
+ +
+ + +
+

train(self, + x) +

+
  +
+ + updates the average parameter +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

avg

+ The updated average of the input data. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.OnlineTimeDiffNode-class.html b/legacy/api/mdp.nodes.OnlineTimeDiffNode-class.html new file mode 100755 index 0000000..0b41c5e --- /dev/null +++ b/legacy/api/mdp.nodes.OnlineTimeDiffNode-class.html @@ -0,0 +1,1352 @@ + + + + + mdp.nodes.OnlineTimeDiffNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class OnlineTimeDiffNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class OnlineTimeDiffNode

+
+ +
+
+

Compute the discrete time derivative of the input using backward difference approximation:

+

dx(n) = x(n) - x(n-1), where n is the total number of input samples observed during training.

+

This is an online learnable node that uses a buffer to store the previous input sample = x(n-1). The node's train +method updates the buffer. The node's execute method returns the time difference using the stored buffer +as its previous input sample x(n-1).

+

This node supports both "incremental" and "batch" training types.

+
+

+
+
+

Example

+
+
If the training and execute methods are called sample by sample incrementally::
+
train(x[1]), y[1]=execute(x[1]), train(x[2]), y[2]=execute(x[2]), ...,
+
then::
+
y[1] = x[1] +y[2] = x[2] - x[1] +y[3] = x[3] - x[2] +...
+
If training and execute methods are called block by block::
+
train([x[1], x[2], x[3]]), [y[3], y[4], y[5]] = execute([x[3], x[4], x[5]])
+
then::
+
y[3] = x[3] - x[2] +y[4] = x[4] - x[3] +y[5] = x[5] - x[4]
+
+

Note that the stored buffer is still = x[2]. Only train() method changes the state of the node. +execute's input data is always assumed to start at get_current_train_iteration() time step.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + numx_rng=None)
+ Initializes an object of type 'OnlineTimeDiffNode'.
+ + +
+ +
+   + + + + + + +
_check_params(self, + x) + + +
+ +
+   + + + + + + +
_execute(self, + x)
+ Returns the time difference.
+ + +
+ +
+   + + + + + + +
_train(self, + x)
+ Update the buffer.
+ + +
+ +
+ numpy.ndarray + + + + + + +
execute(self, + x)
+ Returns the time difference.
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ Update the buffer.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from PreserveDimOnlineNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from OnlineNode
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_training_types(self)
+ Return the list of training types supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks. +It can be used when a subclass defines multiple execution methods.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_set_numx_rng(self, + rng) + + +
+ +
+   + + + + + + +
get_current_train_iteration(self)
+ Return the index of the current training iteration.
+ + +
+ +
+   + + + + + + +
get_numx_rng(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
set_numx_rng(self, + rng)
+ Set numx random number generator. +Note that subclasses should overwrite self._set_numx_rng when needed.
+ + +
+ +
+   + + + + + + +
set_training_type(self, + training_type)
+ Sets the training type
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from OnlineNode
+   + + _train_seq
+ List of tuples: +
+   + + numx_rng
+ Numpy seeded random number generator +
+   + + training_type
+ Training type (Read only) +
    Inherited from Node
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + numx_rng=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'OnlineTimeDiffNode'. +
+
Parameters:
+
    +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
  • numx_rng - Random number generator.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_check_params(self, + x) +

+
  +
+ + +
+
Overrides: + OnlineNode._check_params +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ +
+Returns the time difference.
+
+:param x: The array to compute a time difference on.
+:type x: numpy.ndarray
+
+:return: The difference array, which is one element shorter, when compared
+    to the supplied array. This follows directly from the method used.
+:rtype: numpy.ndarray
+
+
+
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x) +

+
  +
+ +
+Update the buffer.
+
+
+
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ + Returns the time difference. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The array to compute a time difference on.
  • +
+
Returns: numpy.ndarray
+
The difference array, which is one element shorter, when compared +to the supplied array. This follows directly from the method used.
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

train(self, + x) +

+
  +
+ + Update the buffer. +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.PCANode-class.html b/legacy/api/mdp.nodes.PCANode-class.html new file mode 100755 index 0000000..9cb1d98 --- /dev/null +++ b/legacy/api/mdp.nodes.PCANode-class.html @@ -0,0 +1,1665 @@ + + + + + mdp.nodes.PCANode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class PCANode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class PCANode

+
+ +
+
+

Filter the input data through the most significatives of its +principal components.

+
+

+
+
+

Reference

+

More information about Principal Component Analysis, a.k.a. discrete +Karhunen-Loeve transform can be found among others in +I.T. Jolliffe, Principal Component Analysis, Springer-Verlag (1986).

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + svd=False, + reduce=False, + var_rel=1e-12, + var_abs=1e-15, + var_part=None)
+ Initializes an object of type 'PCANode'.
+ + +
+ +
+ tuple + + + + + + +
_adjust_output_dim(self)
+ This function is used if the output dimensions is smaller than the input +dimension (so only the larger eigenvectors have to be kept). If required it +sets the output dim.
+ + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+ numpy.ndarray + + + + + + +
_execute(self, + x, + n=None)
+ Project the input on the first 'n' principal components.
+ + +
+ +
+ numpy.ndarray + + + + + + +
_inverse(self, + y, + n=None)
+ Project data from the output to the input space using the +first 'n' components.
+ + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self, + debug=False)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
_train(self, + x)
+ Update the covariance matrix.
+ + +
+ +
+ numpy.ndarray + + + + + + +
execute(self, + x, + n=None)
+ Project the input on the first 'n' principal components.
+ + +
+ +
+ float + + + + + + +
get_explained_variance(self)
+ The explained variance is the fraction of the original variance +that can be explained by self._output_dim PCA components. If for +example output_dim has been set to 0.95, the explained variance could +be something like 0.958...
+ + +
+ +
+ numpy.ndarray + + + + + + +
get_projmatrix(self, + transposed=1)
+ Returns the projection matrix.
+ + +
+ +
+ numpy.ndarray + + + + + + +
get_recmatrix(self, + transposed=1)
+ Returns the the back-projection matrix +(i.e. the reconstruction matrix).
+ + +
+ +
+ numpy.ndarray + + + + + + +
inverse(self, + y, + n=None)
+ Project data from the output to the input space using the +first 'n' components.
+ + +
+ +
+   + + + + + + +
stop_training(self, + debug=False)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ Update the covariance matrix.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + avg
+ Mean of the input data (available after training). +
+   + + d
+ Variance corresponding to the PCA components (eigenvalues of the +covariance matrix). +
+   + + explained_variance
+ When output_dim has been specified as a fraction +of the total variance, this is the fraction of the total variance that is +actually explained. +
+   + + v
+ Transposed of the projection matrix (available after training). +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + svd=False, + reduce=False, + var_rel=1e-12, + var_abs=1e-15, + var_part=None) +
(Constructor) +

+
  +
+ +

Initializes an object of type 'PCANode'.

+

The number of principal components to be kept can be specified as +'output_dim' directly (e.g. 'output_dim=10' means 10 components +are kept) or by the fraction of variance to be explained +(e.g. 'output_dim=0.95' means that as many components as necessary +will be kept in order to explain 95% of the input variance).

+Note: When the *reduce* switch is enabled, the actual number of principal components (self.output_dim) may be different from that set when creating the instance. +
+
Parameters:
+
    +
  • input_dim (int) - Dimensionality of the input. +Default is None.
  • +
  • output_dim (int) - Dimensionality of the output. +Default is None.
  • +
  • dtype (numpy.dtype, str) - Datatype of the input. +Default is None.
  • +
  • svd (bool) - If True use Singular Value Decomposition instead of the +standard eigenvalue problem solver. Use it when PCANode +complains about singular covariance matrices. +Default is Flase.
  • +
  • reduce (bool) - Keep only those principal components which have a variance +larger than 'var_abs' and a variance relative to the +first principal component larger than 'var_rel' and a +variance relative to total variance larger than 'var_part' +(set var_part to None or 0 for no filtering). +Default is False.
  • +
  • var_rel (float) - Variance relative to first principal component threshold. +Default is 1E-12.
  • +
  • var_abs (float) - Absolute variance threshold. +Default is 1E-15.
  • +
  • var_part (float) - Variance relative to total variance threshold. +Default is None.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_adjust_output_dim(self) +

+
  +
+ + This function is used if the output dimensions is smaller than the input +dimension (so only the larger eigenvectors have to be kept). If required it +sets the output dim. +
+
Returns: tuple
+
The eigenvector range.
+
+
+
+ +
+ +
+ + +
+

_check_output(self, + y) +

+
  +
+ + +
+
Overrides: + Node._check_output +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x, + n=None) +

+
  +
+ +

Project the input on the first 'n' principal components.

+

If 'n' is not set, use all available components.

+
+
Parameters:
+
    +
  • x (numpy.ndarray) - Input with at least 'n' principle components.
  • +
  • n (int) - Number of first principle components.
  • +
+
Returns: numpy.ndarray
+
The projected input.
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_inverse(self, + y, + n=None) +

+
  +
+ +

Project data from the output to the input space using the +first 'n' components.

+

If 'n' is not set, use all available components.

+
+
Parameters:
+
    +
  • y (numpy.ndarray) - Data to be projected to the input space.
  • +
  • n (int) - Number of first principle components.
  • +
+
Returns: numpy.ndarray
+
The projected data
+
Overrides: + Node._inverse +
+
+
+
+ +
+ +
+ + +
+

_set_output_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_output_dim +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + debug=False) +

+
  +
+ + Stop the training phase. +
+
Parameters:
+
    +
  • debug (bool) - Determines if singular matrices itself are stored in +self.cov_mtx and self.dcov_mtx to be examined, given that +stop_training fails because of singular covmatrices. +Default is False.
  • +
+
Raises:
+
    +
  • mdp.NodeException - If negative eigenvalues occur, +the covariance matrix may be singular or no component +amounts to variation exceeding var_abs.
  • +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x) +

+
  +
+ + Update the covariance matrix. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The training data.
  • +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x, + n=None) +

+
  +
+ +

Project the input on the first 'n' principal components.

+

If 'n' is not set, use all available components.

+
+
Parameters:
+
    +
  • x (numpy.ndarray) - Input with at least 'n' principle components.
  • +
  • n (int) - Number of first principle components.
  • +
+
Returns: numpy.ndarray
+
The projected input.
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

get_explained_variance(self) +

+
  +
+ +

The explained variance is the fraction of the original variance +that can be explained by self._output_dim PCA components. If for +example output_dim has been set to 0.95, the explained variance could +be something like 0.958...

+Note: If output_dim was explicitly set to be a fixed number of components, there is no way to calculate the explained variance. +
+
Returns: float
+
The explained variance.
+
+
+
+ +
+ +
+ + +
+

get_projmatrix(self, + transposed=1) +

+
  +
+ + Returns the projection matrix. +
+
Parameters:
+
    +
  • transposed (bool) - Determines whether the transposed projection +matrix is returned. +Default is True.
  • +
+
Returns: numpy.ndarray
+
The projection matrix.
+
+
+
+ +
+ +
+ + +
+

get_recmatrix(self, + transposed=1) +

+
  +
+ + Returns the the back-projection matrix +(i.e. the reconstruction matrix). +
+
Parameters:
+
    +
  • transposed (bool) - Determines whether the transposed back-projection matrix +(i.e. the reconstruction matrix) is returned. +Default is True.
  • +
+
Returns: numpy.ndarray
+
The back-projection matrix (i.e. the reconstruction matrix).
+
+
+
+ +
+ +
+ + +
+

inverse(self, + y, + n=None) +

+
  +
+ +

Project data from the output to the input space using the +first 'n' components.

+

If 'n' is not set, use all available components.

+
+
Parameters:
+
    +
  • y (numpy.ndarray) - Data to be projected to the input space.
  • +
  • n (int) - Number of first principle components.
  • +
+
Returns: numpy.ndarray
+
The projected data
+
Overrides: + Node.inverse +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + debug=False) +

+
  +
+ + Stop the training phase. +
+
Parameters:
+
    +
  • debug (bool) - Determines if singular matrices itself are stored in +self.cov_mtx and self.dcov_mtx to be examined, given that +stop_training fails because of singular covmatrices. +Default is False.
  • +
+
Raises:
+
    +
  • mdp.NodeException - If negative eigenvalues occur, +the covariance matrix may be singular or no component +amounts to variation exceeding var_abs.
  • +
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x) +

+
  +
+ + Update the covariance matrix. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The training data.
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

avg

+ Mean of the input data (available after training). +
+
+
+
+ +
+ +
+

d

+ Variance corresponding to the PCA components (eigenvalues of the +covariance matrix). +
+
+
+
+ +
+ +
+

explained_variance

+ When output_dim has been specified as a fraction +of the total variance, this is the fraction of the total variance that is +actually explained. +
+
+
+
+ +
+ +
+

v

+ Transposed of the projection matrix (available after training). +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.PCAScikitsLearnNode-class.html b/legacy/api/mdp.nodes.PCAScikitsLearnNode-class.html new file mode 100755 index 0000000..51fb058 --- /dev/null +++ b/legacy/api/mdp.nodes.PCAScikitsLearnNode-class.html @@ -0,0 +1,1365 @@ + + + + + mdp.nodes.PCAScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class PCAScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class PCAScikitsLearnNode

+
+ +
+
+
+
+Principal component analysis (PCA)
+This node has been automatically generated by wrapping the ``scikits.learn.decomposition.pca.PCA`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+Linear dimensionality reduction using Singular Value Decomposition of the
+data and keeping only the most significant singular vectors to project the
+data to a lower dimensional space.
+
+This implementation uses the scipy.linalg implementation of the singular
+value decomposition. It only works for dense arrays and is not scalable to
+large dimensional data.
+
+The time complexity of this implementation is O(n ** 3) assuming
+n ~ n_samples ~ n_features.
+
+**Parameters**
+
+n_components: int, none or string
+    Number of components to keep.
+    if n_components is not set all components are kept:
+
+        - n_components == min(n_samples, n_features)
+
+
+    if n_components == 'mle', Minka's MLE is used to guess the dimension
+
+    if 0 < n_components < 1, select the number of components such that
+                             the explained variance ratio is greater
+                             than n_components
+
+copy: bool
+    If False, data passed to fit are overwritten
+
+whiten: bool, optional
+    When True (False by default) the ``components_`` vectors are divided
+    by n_samples times singular values to ensure uncorrelated outputs
+    with unit component-wise variances.
+
+    Whitening will remove some information from the transformed signal
+    (the relative variance scales of the components) but can sometime
+    improve the predictive accuracy of the downstream estimators by
+    making there data respect some hard-wired assumptions.
+
+**Attributes**
+
+components_: array, [n_components, n_features]
+    Components with maximum variance.
+
+explained_variance_ratio_: array, [n_components]
+    Percentage of variance explained by each of the selected components.
+    k is not set then all components are stored and the sum of
+    explained variances is equal to 1.0
+
+**Notes**
+
+For n_components='mle', this class uses the method of Thomas P. Minka:
+
+Automatic Choice of Dimensionality for PCA. NIPS 2000: 598-604
+
+Due to implementation subtleties of the Singular Value Decomposition (SVD),
+which is used in this implementation, running fit twice on the same matrix
+can lead to principal components with signs flipped (change in direction).
+For this reason, it is important to always use the same estimator object to
+transform data in a consistent fashion.
+
+**Examples**
+
+>>> import numpy as np
+>>> from scikits.learn.decomposition import PCA
+>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
+>>> pca = PCA(n_components=2)
+>>> pca.fit(X)
+PCA(copy=True, n_components=2, whiten=False)
+>>> print pca.explained_variance_ratio_
+[ 0.99244289  0.00755711]
+
+See also
+
+ProbabilisticPCA
+RandomizedPCA
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Principal component analysis (PCA) +This node has been automatically generated by wrapping the ``scikits.learn.decomposition.pca.PCA`` class +from the ``sklearn`` library.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ This node has been automatically generated by wrapping the scikits.learn.decomposition.pca.PCA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the model from data in X. +This node has been automatically generated by wrapping the scikits.learn.decomposition.pca.PCA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +
+
+Principal component analysis (PCA)
+This node has been automatically generated by wrapping the ``scikits.learn.decomposition.pca.PCA`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+Linear dimensionality reduction using Singular Value Decomposition of the
+data and keeping only the most significant singular vectors to project the
+data to a lower dimensional space.
+
+This implementation uses the scipy.linalg implementation of the singular
+value decomposition. It only works for dense arrays and is not scalable to
+large dimensional data.
+
+The time complexity of this implementation is O(n ** 3) assuming
+n ~ n_samples ~ n_features.
+
+**Parameters**
+
+n_components: int, none or string
+    Number of components to keep.
+    if n_components is not set all components are kept:
+
+        - n_components == min(n_samples, n_features)
+
+
+    if n_components == 'mle', Minka's MLE is used to guess the dimension
+
+    if 0 < n_components < 1, select the number of components such that
+                             the explained variance ratio is greater
+                             than n_components
+
+copy: bool
+    If False, data passed to fit are overwritten
+
+whiten: bool, optional
+    When True (False by default) the ``components_`` vectors are divided
+    by n_samples times singular values to ensure uncorrelated outputs
+    with unit component-wise variances.
+
+    Whitening will remove some information from the transformed signal
+    (the relative variance scales of the components) but can sometime
+    improve the predictive accuracy of the downstream estimators by
+    making there data respect some hard-wired assumptions.
+
+**Attributes**
+
+components_: array, [n_components, n_features]
+    Components with maximum variance.
+
+explained_variance_ratio_: array, [n_components]
+    Percentage of variance explained by each of the selected components.
+    k is not set then all components are stored and the sum of
+    explained variances is equal to 1.0
+
+**Notes**
+
+For n_components='mle', this class uses the method of Thomas P. Minka:
+
+Automatic Choice of Dimensionality for PCA. NIPS 2000: 598-604
+
+Due to implementation subtleties of the Singular Value Decomposition (SVD),
+which is used in this implementation, running fit twice on the same matrix
+can lead to principal components with signs flipped (change in direction).
+For this reason, it is important to always use the same estimator object to
+transform data in a consistent fashion.
+
+**Examples**
+
+>>> import numpy as np
+>>> from scikits.learn.decomposition import PCA
+>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
+>>> pca = PCA(n_components=2)
+>>> pca.fit(X)
+PCA(copy=True, n_components=2, whiten=False)
+>>> print pca.explained_variance_ratio_
+[ 0.99244289  0.00755711]
+
+See also
+
+ProbabilisticPCA
+RandomizedPCA
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ + This node has been automatically generated by wrapping the scikits.learn.decomposition.pca.PCA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the model from data in X. +This node has been automatically generated by wrapping the scikits.learn.decomposition.pca.PCA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X: array-like, shape (n_samples, n_features)
+
Training vector, where n_samples in the number of samples +and n_features is the number of features.
+
+

Returns

+
+
self : object
+
Returns the instance itself.
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.PLSCanonicalScikitsLearnNode-class.html b/legacy/api/mdp.nodes.PLSCanonicalScikitsLearnNode-class.html new file mode 100755 index 0000000..9cf04cb --- /dev/null +++ b/legacy/api/mdp.nodes.PLSCanonicalScikitsLearnNode-class.html @@ -0,0 +1,1408 @@ + + + + + mdp.nodes.PLSCanonicalScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class PLSCanonicalScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class PLSCanonicalScikitsLearnNode

+
+ +
+
+
+
+PLS canonical. PLSCanonical inherits from PLS with mode="A" and
+deflation_mode="canonical".
+This node has been automatically generated by wrapping the ``scikits.learn.pls.PLSCanonical`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+**Parameters**
+
+X: array-like of predictors, shape (n_samples, p)
+    Training vectors, where n_samples in the number of samples and
+    p is the number of predictors.
+
+Y: array-like of response, shape (n_samples, q)
+    Training vectors, where n_samples in the number of samples and
+    q is the number of response variables.
+
+n_components: int, number of components to keep. (default 2).
+
+scale: boolean, scale data? (default True)
+
+algorithm: str "nipals" or "svd" the algorithm used to estimate the
+    weights, it will be called "n_components" time ie.: for each iteration
+    of the outer loop.
+
+max_iter: an integer, the maximum number of iterations (default 500) of the
+    NIPALS inner loop (used only if algorithm="nipals")
+
+tol: a not negative real, the tolerance used in the iterative algorithm
+     default 1e-06.
+
+copy: boolean, should the deflation been made on a copy? Let the default
+    value to True unless you don't care about side effect
+
+**Attributes**
+
+x_weights_: array, [p, n_components]
+    X block weights vectors.
+
+y_weights_: array, [q, n_components]
+    Y block weights vectors.
+
+x_loadings_: array, [p, n_components]
+    X block loadings vectors.
+
+y_loadings_: array, [q, n_components]
+    Y block loadings vectors.
+
+x_scores_: array, [n_samples, n_components]
+    X scores.
+
+y_scores_: array, [n_samples, n_components]
+    Y scores.
+
+x_rotations_: array, [p, n_components]
+    X block to latents rotations.
+
+y_rotations_: array, [q, n_components]
+    Y block to latents rotations.
+
+**Notes**
+
+For each component k, find weights u, v that optimizes:
+
+max corr(Xk u, Yk v) * var(Xk u) var(Yk u), such that |u| = |v| = 1
+
+Note that it maximizes both the correlations between the scores and the
+intra-block variances.
+
+The residual matrix of X (Xk+1) block is obtained by the deflation on the
+current X score: x_score.
+
+The residual matrix of Y (Yk+1) block is obtained by deflation on the
+current Y score. This performs a canonical symetric version of the PLS
+regression. But slightly different than the CCA. This is mode mostly used
+for modeling
+
+**Examples**
+
+>>> from scikits.learn.pls import PLSCanonical, PLSRegression, CCA
+>>> X = [[0., 0., 1.], [1.,0.,0.], [2.,2.,2.], [2.,5.,4.]]
+>>> Y = [[0.1, -0.2], [0.9, 1.1], [6.2, 5.9], [11.9, 12.3]]
+>>> plsca = PLSCanonical()
+>>> plsca.fit(X, Y, n_components=2)
+PLSCanonical(scale=True, algorithm='nipals', max_iter=500, n_components=2,
+       tol=1e-06, copy=True)
+>>> X_c, Y_c = plsca.transform(X, Y)
+
+**References**
+
+Jacob A. Wegelin. A survey of Partial Least Squares (PLS) methods, with
+emphasis on the two-block case. Technical Report 371, Department of
+Statistics, University of Washington, Seattle, 2000.
+
+In french but still a reference:
+
+Tenenhaus, M. (1998). La regression PLS: theorie et pratique. Paris:
+
+Editions Technic.
+
+See also
+
+CCA
+PLSSVD
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ PLS canonical.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Apply the dimension reduction learned on the train data.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +
+
+PLS canonical. PLSCanonical inherits from PLS with mode="A" and
+deflation_mode="canonical".
+This node has been automatically generated by wrapping the ``scikits.learn.pls.PLSCanonical`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+**Parameters**
+
+X: array-like of predictors, shape (n_samples, p)
+    Training vectors, where n_samples in the number of samples and
+    p is the number of predictors.
+
+Y: array-like of response, shape (n_samples, q)
+    Training vectors, where n_samples in the number of samples and
+    q is the number of response variables.
+
+n_components: int, number of components to keep. (default 2).
+
+scale: boolean, scale data? (default True)
+
+algorithm: str "nipals" or "svd" the algorithm used to estimate the
+    weights, it will be called "n_components" time ie.: for each iteration
+    of the outer loop.
+
+max_iter: an integer, the maximum number of iterations (default 500) of the
+    NIPALS inner loop (used only if algorithm="nipals")
+
+tol: a not negative real, the tolerance used in the iterative algorithm
+     default 1e-06.
+
+copy: boolean, should the deflation been made on a copy? Let the default
+    value to True unless you don't care about side effect
+
+**Attributes**
+
+x_weights_: array, [p, n_components]
+    X block weights vectors.
+
+y_weights_: array, [q, n_components]
+    Y block weights vectors.
+
+x_loadings_: array, [p, n_components]
+    X block loadings vectors.
+
+y_loadings_: array, [q, n_components]
+    Y block loadings vectors.
+
+x_scores_: array, [n_samples, n_components]
+    X scores.
+
+y_scores_: array, [n_samples, n_components]
+    Y scores.
+
+x_rotations_: array, [p, n_components]
+    X block to latents rotations.
+
+y_rotations_: array, [q, n_components]
+    Y block to latents rotations.
+
+**Notes**
+
+For each component k, find weights u, v that optimizes:
+
+max corr(Xk u, Yk v) * var(Xk u) var(Yk u), such that |u| = |v| = 1
+
+Note that it maximizes both the correlations between the scores and the
+intra-block variances.
+
+The residual matrix of X (Xk+1) block is obtained by the deflation on the
+current X score: x_score.
+
+The residual matrix of Y (Yk+1) block is obtained by deflation on the
+current Y score. This performs a canonical symetric version of the PLS
+regression. But slightly different than the CCA. This is mode mostly used
+for modeling
+
+**Examples**
+
+>>> from scikits.learn.pls import PLSCanonical, PLSRegression, CCA
+>>> X = [[0., 0., 1.], [1.,0.,0.], [2.,2.,2.], [2.,5.,4.]]
+>>> Y = [[0.1, -0.2], [0.9, 1.1], [6.2, 5.9], [11.9, 12.3]]
+>>> plsca = PLSCanonical()
+>>> plsca.fit(X, Y, n_components=2)
+PLSCanonical(scale=True, algorithm='nipals', max_iter=500, n_components=2,
+       tol=1e-06, copy=True)
+>>> X_c, Y_c = plsca.transform(X, Y)
+
+**References**
+
+Jacob A. Wegelin. A survey of Partial Least Squares (PLS) methods, with
+emphasis on the two-block case. Technical Report 371, Department of
+Statistics, University of Washington, Seattle, 2000.
+
+In french but still a reference:
+
+Tenenhaus, M. (1998). La regression PLS: theorie et pratique. Paris:
+
+Editions Technic.
+
+See also
+
+CCA
+PLSSVD
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +
+
+Apply the dimension reduction learned on the train data.
+Parameters
+----------
+X: array-like of predictors, shape (n_samples, p)
+Training vectors, where n_samples in the number of samples and
+p is the number of predictors.
+This node has been automatically generated by wrapping the ``scikits.learn.pls.PLSCanonical`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+Y: array-like of response, shape (n_samples, q), optional
+    Training vectors, where n_samples in the number of samples and
+    q is the number of response variables.
+
+copy: X and Y have to be normalize, do it on a copy or in place
+    with side effect!
+
+Returns
+
+x_scores if Y is not given, (x_scores, y_scores) otherwise.
+
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node.stop_training +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.PLSRegressionScikitsLearnNode-class.html b/legacy/api/mdp.nodes.PLSRegressionScikitsLearnNode-class.html new file mode 100755 index 0000000..f10ab72 --- /dev/null +++ b/legacy/api/mdp.nodes.PLSRegressionScikitsLearnNode-class.html @@ -0,0 +1,1405 @@ + + + + + mdp.nodes.PLSRegressionScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class PLSRegressionScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class PLSRegressionScikitsLearnNode

+
+ +
+
+
+
+PLS regression (Also known PLS2 or PLS in case of one dimensional
+response). PLSregression inherits from PLS with mode="A" and
+deflation_mode="regression".
+This node has been automatically generated by wrapping the ``scikits.learn.pls.PLSRegression`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+**Parameters**
+
+X: array-like of predictors, shape (n_samples, p)
+    Training vectors, where n_samples in the number of samples and
+    p is the number of predictors.
+
+Y: array-like of response, shape (n_samples, q)
+    Training vectors, where n_samples in the number of samples and
+    q is the number of response variables.
+
+n_components: int, number of components to keep. (default 2).
+
+scale: boolean, scale data? (default True)
+
+algorithm: str "nipals" or "svd" the algorithm used to estimate the
+    weights, it will be called "n_components" time ie.: for each iteration
+    of the outer loop.
+
+max_iter: an integer, the maximum number of iterations (default 500) of the
+    NIPALS inner loop (used only if algorithm="nipals")
+
+tol: a not negative real, the tolerance used in the iterative algorithm
+     default 1e-06.
+
+copy: boolean, should the deflation been made on a copy? Let the default
+    value to True unless you don't care about side effect
+
+**Attributes**
+
+x_weights_: array, [p, n_components]
+    X block weights vectors.
+
+y_weights_: array, [q, n_components]
+    Y block weights vectors.
+
+x_loadings_: array, [p, n_components]
+    X block loadings vectors.
+
+y_loadings_: array, [q, n_components]
+    Y block loadings vectors.
+
+x_scores_: array, [n_samples, n_components]
+    X scores.
+
+y_scores_: array, [n_samples, n_components]
+    Y scores.
+
+x_rotations_: array, [p, n_components]
+    X block to latents rotations.
+
+y_rotations_: array, [q, n_components]
+    Y block to latents rotations.
+
+coefs: array, [p, q]
+    The coeficients of the linear model: Y = X coefs + Err
+
+**Notes**
+
+For each component k, find weights u, v that optimizes:
+
+max corr(Xk u, Yk v) * var(Xk u) var(Yk u), such that |u| = |v| = 1
+
+Note that it maximizes both the correlations between the scores and the
+intra-block variances.
+
+The residual matrix of X (Xk+1) block is obtained by the deflation on the
+current X score: x_score.
+
+The residual matrix of Y (Yk+1) block is obtained by deflation on the
+current X score. This performs the PLS regression known as PLS2. This
+mode is prediction oriented.
+
+**Examples**
+
+>>> from scikits.learn.pls import PLSCanonical, PLSRegression, CCA
+>>> X = [[0., 0., 1.], [1.,0.,0.], [2.,2.,2.], [2.,5.,4.]]
+>>> Y = [[0.1, -0.2], [0.9, 1.1], [6.2, 5.9], [11.9, 12.3]]
+>>> pls2 = PLSRegression()
+>>> pls2.fit(X, Y, n_components=2)
+PLSRegression(scale=True, algorithm='nipals', max_iter=500, n_components=2,
+       tol=1e-06, copy=True)
+>>> Y_pred = pls2.predict(X)
+
+**References**
+
+Jacob A. Wegelin. A survey of Partial Least Squares (PLS) methods, with
+emphasis on the two-block case. Technical Report 371, Department of
+Statistics, University of Washington, Seattle, 2000.
+
+In french but still a reference:
+
+Tenenhaus, M. (1998). La regression PLS: theorie et pratique. Paris:
+
+Editions Technic.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ PLS regression (Also known PLS2 or PLS in case of one dimensional +response).
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Apply the dimension reduction learned on the train data.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +
+
+PLS regression (Also known PLS2 or PLS in case of one dimensional
+response). PLSregression inherits from PLS with mode="A" and
+deflation_mode="regression".
+This node has been automatically generated by wrapping the ``scikits.learn.pls.PLSRegression`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+**Parameters**
+
+X: array-like of predictors, shape (n_samples, p)
+    Training vectors, where n_samples in the number of samples and
+    p is the number of predictors.
+
+Y: array-like of response, shape (n_samples, q)
+    Training vectors, where n_samples in the number of samples and
+    q is the number of response variables.
+
+n_components: int, number of components to keep. (default 2).
+
+scale: boolean, scale data? (default True)
+
+algorithm: str "nipals" or "svd" the algorithm used to estimate the
+    weights, it will be called "n_components" time ie.: for each iteration
+    of the outer loop.
+
+max_iter: an integer, the maximum number of iterations (default 500) of the
+    NIPALS inner loop (used only if algorithm="nipals")
+
+tol: a not negative real, the tolerance used in the iterative algorithm
+     default 1e-06.
+
+copy: boolean, should the deflation been made on a copy? Let the default
+    value to True unless you don't care about side effect
+
+**Attributes**
+
+x_weights_: array, [p, n_components]
+    X block weights vectors.
+
+y_weights_: array, [q, n_components]
+    Y block weights vectors.
+
+x_loadings_: array, [p, n_components]
+    X block loadings vectors.
+
+y_loadings_: array, [q, n_components]
+    Y block loadings vectors.
+
+x_scores_: array, [n_samples, n_components]
+    X scores.
+
+y_scores_: array, [n_samples, n_components]
+    Y scores.
+
+x_rotations_: array, [p, n_components]
+    X block to latents rotations.
+
+y_rotations_: array, [q, n_components]
+    Y block to latents rotations.
+
+coefs: array, [p, q]
+    The coeficients of the linear model: Y = X coefs + Err
+
+**Notes**
+
+For each component k, find weights u, v that optimizes:
+
+max corr(Xk u, Yk v) * var(Xk u) var(Yk u), such that |u| = |v| = 1
+
+Note that it maximizes both the correlations between the scores and the
+intra-block variances.
+
+The residual matrix of X (Xk+1) block is obtained by the deflation on the
+current X score: x_score.
+
+The residual matrix of Y (Yk+1) block is obtained by deflation on the
+current X score. This performs the PLS regression known as PLS2. This
+mode is prediction oriented.
+
+**Examples**
+
+>>> from scikits.learn.pls import PLSCanonical, PLSRegression, CCA
+>>> X = [[0., 0., 1.], [1.,0.,0.], [2.,2.,2.], [2.,5.,4.]]
+>>> Y = [[0.1, -0.2], [0.9, 1.1], [6.2, 5.9], [11.9, 12.3]]
+>>> pls2 = PLSRegression()
+>>> pls2.fit(X, Y, n_components=2)
+PLSRegression(scale=True, algorithm='nipals', max_iter=500, n_components=2,
+       tol=1e-06, copy=True)
+>>> Y_pred = pls2.predict(X)
+
+**References**
+
+Jacob A. Wegelin. A survey of Partial Least Squares (PLS) methods, with
+emphasis on the two-block case. Technical Report 371, Department of
+Statistics, University of Washington, Seattle, 2000.
+
+In french but still a reference:
+
+Tenenhaus, M. (1998). La regression PLS: theorie et pratique. Paris:
+
+Editions Technic.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +
+
+Apply the dimension reduction learned on the train data.
+Parameters
+----------
+X: array-like of predictors, shape (n_samples, p)
+Training vectors, where n_samples in the number of samples and
+p is the number of predictors.
+This node has been automatically generated by wrapping the ``scikits.learn.pls.PLSRegression`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+Y: array-like of response, shape (n_samples, q), optional
+    Training vectors, where n_samples in the number of samples and
+    q is the number of response variables.
+
+copy: X and Y have to be normalize, do it on a copy or in place
+    with side effect!
+
+Returns
+
+x_scores if Y is not given, (x_scores, y_scores) otherwise.
+
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node.stop_training +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.PLSSVDScikitsLearnNode-class.html b/legacy/api/mdp.nodes.PLSSVDScikitsLearnNode-class.html new file mode 100755 index 0000000..05cb3bb --- /dev/null +++ b/legacy/api/mdp.nodes.PLSSVDScikitsLearnNode-class.html @@ -0,0 +1,1268 @@ + + + + + mdp.nodes.PLSSVDScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class PLSSVDScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class PLSSVDScikitsLearnNode

+
+ +
+
+
+
+Partial Least Square SVD
+This node has been automatically generated by wrapping the ``scikits.learn.pls.PLSSVD`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+Simply perform a svd on the crosscovariance matrix: X'Y
+The are no iterative deflation here.
+
+**Parameters**
+
+X: array-like of predictors, shape (n_samples, p)
+    Training vector, where n_samples in the number of samples and
+    p is the number of predictors. X will be centered before any analysis.
+
+Y: array-like of response, shape (n_samples, q)
+    Training vector, where n_samples in the number of samples and
+    q is the number of response variables. X will be centered before any
+    analysis.
+
+n_components: int, number of components to keep. (default 2).
+
+scale: boolean, scale X and Y (default True)
+
+**Attributes**
+
+x_weights_: array, [p, n_components]
+    X block weights vectors.
+
+y_weights_: array, [q, n_components]
+    Y block weights vectors.
+
+x_scores_: array, [n_samples, n_components]
+    X scores.
+
+y_scores_: array, [n_samples, n_components]
+    Y scores.
+
+See also
+
+PLSCanonical
+CCA
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Partial Least Square SVD +This node has been automatically generated by wrapping the ``scikits.learn.pls.PLSSVD`` class +from the ``sklearn`` library.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ This node has been automatically generated by wrapping the scikits.learn.pls.PLSSVD class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +
+
+Partial Least Square SVD
+This node has been automatically generated by wrapping the ``scikits.learn.pls.PLSSVD`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+Simply perform a svd on the crosscovariance matrix: X'Y
+The are no iterative deflation here.
+
+**Parameters**
+
+X: array-like of predictors, shape (n_samples, p)
+    Training vector, where n_samples in the number of samples and
+    p is the number of predictors. X will be centered before any analysis.
+
+Y: array-like of response, shape (n_samples, q)
+    Training vector, where n_samples in the number of samples and
+    q is the number of response variables. X will be centered before any
+    analysis.
+
+n_components: int, number of components to keep. (default 2).
+
+scale: boolean, scale X and Y (default True)
+
+**Attributes**
+
+x_weights_: array, [p, n_components]
+    X block weights vectors.
+
+y_weights_: array, [q, n_components]
+    Y block weights vectors.
+
+x_scores_: array, [n_samples, n_components]
+    X scores.
+
+y_scores_: array, [n_samples, n_components]
+    Y scores.
+
+See also
+
+PLSCanonical
+CCA
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ + This node has been automatically generated by wrapping the scikits.learn.pls.PLSSVD class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node.stop_training +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.PerceptronClassifier-class.html b/legacy/api/mdp.nodes.PerceptronClassifier-class.html new file mode 100755 index 0000000..acf3fd4 --- /dev/null +++ b/legacy/api/mdp.nodes.PerceptronClassifier-class.html @@ -0,0 +1,1281 @@ + + + + + mdp.nodes.PerceptronClassifier + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class PerceptronClassifier + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class PerceptronClassifier

+
+ +
+
+A simple perceptron with input_dim input nodes. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + execute_method=None, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'PerceptronClassifier'.
+ + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + labels) + + +
+ +
+ numpy.ndarray + + + + + + +
_label(self, + x)
+ Returns: +An array with class labels from the perceptron.
+ + +
+ +
+   + + + + + + +
_train(self, + x, + labels)
+ Update the internal structures according to the input data 'x'.
+ + +
+ +
+ numpy.ndarray + + + + + + +
label(self, + x)
+ Returns: +An array with class labels from the perceptron.
+ + +
+ +
+   + + + + + + +
train(self, + x, + labels)
+ Update the internal structures according to the input data 'x'.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ClassifierNode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_prob(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
prob(self, + x, + *args, + **kwargs)
+ This function does classification or regression on a test vector T +given a model with probability information. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + execute_method=None, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'PerceptronClassifier'. +
+
Parameters:
+
    +
  • execute_method (str) - Set to string value 'label', 'rank', or 'prob' to +force the corresponding classification method being used instead +of the standard identity execution (which is used when +execute_method has the default value None). This can be used when +the node is last in a flow, the return value from Flow.execute +will then consist of the classification results.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_check_train_args(self, + x, + labels) +

+
  +
+ + +
+
Overrides: + Node._check_train_args +
+
+
+
+ +
+ +
+ + +
+

_label(self, + x) +

+
  +
+ + +
+
Parameters:
+
    +
  • x (numpy.ndarray) - A matrix having different variables on different columns +and observations on the rows.
  • +
+
Returns: numpy.ndarray
+
An array with class labels from the perceptron.
+
Overrides: + ClassifierNode._label +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x, + labels) +

+
  +
+ + Update the internal structures according to the input data 'x'. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - A matrix having different variables on different columns +and observations on the rows.
  • +
  • labels - Can be a list, tuple or array of labels (one for each data point) +or a single label, in which case all input data is assigned to +the same class.
  • +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

label(self, + x) +

+
  +
+ +

Returns an array with best class labels.

+

By default, subclasses should overwrite _label to implement +their label. The docstring of the '_label' method +overwrites this docstring.

+
+
Parameters:
+
    +
  • x (numpy.ndarray) - A matrix having different variables on different columns +and observations on the rows.
  • +
+
Returns: numpy.ndarray
+
An array with class labels from the perceptron.
+
Overrides: + ClassifierNode.label +
+
+
+
+ +
+ +
+ + +
+

train(self, + x, + labels) +

+
  +
+ + Update the internal structures according to the input data 'x'. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - A matrix having different variables on different columns +and observations on the rows.
  • +
  • labels - Can be a list, tuple or array of labels (one for each data point) +or a single label, in which case all input data is assigned to +the same class.
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.PolynomialExpansionNode-class.html b/legacy/api/mdp.nodes.PolynomialExpansionNode-class.html new file mode 100755 index 0000000..abdd291 --- /dev/null +++ b/legacy/api/mdp.nodes.PolynomialExpansionNode-class.html @@ -0,0 +1,1082 @@ + + + + + mdp.nodes.PolynomialExpansionNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class PolynomialExpansionNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class PolynomialExpansionNode

+
+ +
+
+Perform expansion in a polynomial space. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + degree, + input_dim=None, + dtype=None)
+ Initializes an object of type 'PolynomialExpansionNode'.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+ int + + + + + + +
expanded_dim(self, + dim)
+ Return the size of a vector of dimension 'dim' after +a polynomial expansion of degree 'self._degree'.
+ + +
+ +
+

Inherited from unreachable._ExpansionNode (private): + _set_input_dim, + _set_output_dim +

+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+

Inherited from unreachable._ExpansionNode: + is_invertible, + is_trainable +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + degree, + input_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'PolynomialExpansionNode'. +
+
Parameters:
+
    +
  • degree (int) - Degree of the polynomial space where the +input is expanded.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

expanded_dim(self, + dim) +

+
  +
+ + Return the size of a vector of dimension 'dim' after +a polynomial expansion of degree 'self._degree'. +
+
Parameters:
+
    +
  • dim (int) - The dimension of the vector.
  • +
+
Returns: int
+
The size of the polynomial expension.
+
Overrides: + unreachable._ExpansionNode.expanded_dim +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.ProbabilisticPCAScikitsLearnNode-class.html b/legacy/api/mdp.nodes.ProbabilisticPCAScikitsLearnNode-class.html new file mode 100755 index 0000000..4e91761 --- /dev/null +++ b/legacy/api/mdp.nodes.ProbabilisticPCAScikitsLearnNode-class.html @@ -0,0 +1,1365 @@ + + + + + mdp.nodes.ProbabilisticPCAScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class ProbabilisticPCAScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ProbabilisticPCAScikitsLearnNode

+
+ +
+
+
+
+Additional layer on top of PCA that adds a probabilistic evaluation
+This node has been automatically generated by wrapping the ``scikits.learn.decomposition.pca.ProbabilisticPCA`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+Principal component analysis (PCA)
+
+Linear dimensionality reduction using Singular Value Decomposition of the
+data and keeping only the most significant singular vectors to project the
+data to a lower dimensional space.
+
+This implementation uses the scipy.linalg implementation of the singular
+value decomposition. It only works for dense arrays and is not scalable to
+large dimensional data.
+
+The time complexity of this implementation is O(n ** 3) assuming
+n ~ n_samples ~ n_features.
+
+**Parameters**
+
+n_components: int, none or string
+    Number of components to keep.
+    if n_components is not set all components are kept:
+
+        - n_components == min(n_samples, n_features)
+
+
+    if n_components == 'mle', Minka's MLE is used to guess the dimension
+
+    if 0 < n_components < 1, select the number of components such that
+                             the explained variance ratio is greater
+                             than n_components
+
+copy: bool
+    If False, data passed to fit are overwritten
+
+whiten: bool, optional
+    When True (False by default) the ``components_`` vectors are divided
+    by n_samples times singular values to ensure uncorrelated outputs
+    with unit component-wise variances.
+
+    Whitening will remove some information from the transformed signal
+    (the relative variance scales of the components) but can sometime
+    improve the predictive accuracy of the downstream estimators by
+    making there data respect some hard-wired assumptions.
+
+**Attributes**
+
+components_: array, [n_components, n_features]
+    Components with maximum variance.
+
+explained_variance_ratio_: array, [n_components]
+    Percentage of variance explained by each of the selected components.
+    k is not set then all components are stored and the sum of
+    explained variances is equal to 1.0
+
+**Notes**
+
+For n_components='mle', this class uses the method of Thomas P. Minka:
+
+Automatic Choice of Dimensionality for PCA. NIPS 2000: 598-604
+
+Due to implementation subtleties of the Singular Value Decomposition (SVD),
+which is used in this implementation, running fit twice on the same matrix
+can lead to principal components with signs flipped (change in direction).
+For this reason, it is important to always use the same estimator object to
+transform data in a consistent fashion.
+
+**Examples**
+
+>>> import numpy as np
+>>> from scikits.learn.decomposition import PCA
+>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
+>>> pca = PCA(n_components=2)
+>>> pca.fit(X)
+PCA(copy=True, n_components=2, whiten=False)
+>>> print pca.explained_variance_ratio_
+[ 0.99244289  0.00755711]
+
+See also
+
+ProbabilisticPCA
+RandomizedPCA
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Additional layer on top of PCA that adds a probabilistic evaluation +This node has been automatically generated by wrapping the ``scikits.learn.decomposition.pca.ProbabilisticPCA`` class +from the ``sklearn`` library.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ This node has been automatically generated by wrapping the scikits.learn.decomposition.pca.ProbabilisticPCA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Additionally to PCA.fit, learns a covariance model +This node has been automatically generated by wrapping the scikits.learn.decomposition.pca.ProbabilisticPCA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +
+
+Additional layer on top of PCA that adds a probabilistic evaluation
+This node has been automatically generated by wrapping the ``scikits.learn.decomposition.pca.ProbabilisticPCA`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+Principal component analysis (PCA)
+
+Linear dimensionality reduction using Singular Value Decomposition of the
+data and keeping only the most significant singular vectors to project the
+data to a lower dimensional space.
+
+This implementation uses the scipy.linalg implementation of the singular
+value decomposition. It only works for dense arrays and is not scalable to
+large dimensional data.
+
+The time complexity of this implementation is O(n ** 3) assuming
+n ~ n_samples ~ n_features.
+
+**Parameters**
+
+n_components: int, none or string
+    Number of components to keep.
+    if n_components is not set all components are kept:
+
+        - n_components == min(n_samples, n_features)
+
+
+    if n_components == 'mle', Minka's MLE is used to guess the dimension
+
+    if 0 < n_components < 1, select the number of components such that
+                             the explained variance ratio is greater
+                             than n_components
+
+copy: bool
+    If False, data passed to fit are overwritten
+
+whiten: bool, optional
+    When True (False by default) the ``components_`` vectors are divided
+    by n_samples times singular values to ensure uncorrelated outputs
+    with unit component-wise variances.
+
+    Whitening will remove some information from the transformed signal
+    (the relative variance scales of the components) but can sometime
+    improve the predictive accuracy of the downstream estimators by
+    making there data respect some hard-wired assumptions.
+
+**Attributes**
+
+components_: array, [n_components, n_features]
+    Components with maximum variance.
+
+explained_variance_ratio_: array, [n_components]
+    Percentage of variance explained by each of the selected components.
+    k is not set then all components are stored and the sum of
+    explained variances is equal to 1.0
+
+**Notes**
+
+For n_components='mle', this class uses the method of Thomas P. Minka:
+
+Automatic Choice of Dimensionality for PCA. NIPS 2000: 598-604
+
+Due to implementation subtleties of the Singular Value Decomposition (SVD),
+which is used in this implementation, running fit twice on the same matrix
+can lead to principal components with signs flipped (change in direction).
+For this reason, it is important to always use the same estimator object to
+transform data in a consistent fashion.
+
+**Examples**
+
+>>> import numpy as np
+>>> from scikits.learn.decomposition import PCA
+>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
+>>> pca = PCA(n_components=2)
+>>> pca.fit(X)
+PCA(copy=True, n_components=2, whiten=False)
+>>> print pca.explained_variance_ratio_
+[ 0.99244289  0.00755711]
+
+See also
+
+ProbabilisticPCA
+RandomizedPCA
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ + This node has been automatically generated by wrapping the scikits.learn.decomposition.pca.ProbabilisticPCA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Additionally to PCA.fit, learns a covariance model +This node has been automatically generated by wrapping the scikits.learn.decomposition.pca.ProbabilisticPCA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X: array of shape(n_samples, n_dim)
+
The data to fit
+
homoscedastic: bool, optional,
+
If True, average variance across remaining dimensions
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.ProjectedGradientNMFScikitsLearnNode-class.html b/legacy/api/mdp.nodes.ProjectedGradientNMFScikitsLearnNode-class.html new file mode 100755 index 0000000..dda0083 --- /dev/null +++ b/legacy/api/mdp.nodes.ProjectedGradientNMFScikitsLearnNode-class.html @@ -0,0 +1,1420 @@ + + + + + mdp.nodes.ProjectedGradientNMFScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class ProjectedGradientNMFScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ProjectedGradientNMFScikitsLearnNode

+
+ +
+
+
+
+Non-Negative matrix factorization by Projected Gradient (NMF)
+This node has been automatically generated by wrapping the ``scikits.learn.decomposition.nmf.ProjectedGradientNMF`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+**Parameters**
+
+X: array, [n_samples, n_features]
+    Data the model will be fit to.
+
+n_components: int or None
+    Number of components
+    if n_components is not set all components are kept
+
+init:  'nndsvd' |  'nndsvda' | 'nndsvdar' | int | RandomState
+    Method used to initialize the procedure.
+    Default: 'nndsvdar'
+    Valid options:
+
+        - 'nndsvd': default Nonnegative Double Singular Value
+        -     Decomposition (NNDSVD) initialization (better for sparseness)
+        - 'nndsvda': NNDSVD with zeros filled with the average of X
+        -     (better when sparsity is not desired)
+        - 'nndsvdar': NNDSVD with zeros filled with small random values
+        -     (generally faster, less accurate alternative to NNDSVDa
+        -     for when sparsity is not desired)
+        - int seed or RandomState: non-negative random matrices
+
+
+sparseness: 'data' | 'components' | None
+    Where to enforce sparsity in the model.
+    Default: None
+
+beta: double
+    Degree of sparseness, if sparseness is not None. Larger values mean
+    more sparseness.
+    Default: 1
+
+eta: double
+    Degree of correctness to mantain, if sparsity is not None. Smaller
+    values mean larger error.
+    Default: 0.1
+
+tol: double
+    Tolerance value used in stopping conditions.
+    Default: 1e-4
+
+max_iter: int
+    Number of iterations to compute.
+    Default: 200
+
+nls_max_iter: int
+    Number of iterations in NLS subproblem.
+    Default: 2000
+
+**Attributes**
+
+components_: array, [n_components, n_features]
+    Non-negative components of the data
+reconstruction_err_: number
+    Frobenius norm of the matrix difference between the
+    training data and the reconstructed data from the
+    fit produced by the model. || X - WH ||_2
+
+**Examples**
+
+
+>>> import numpy as np
+>>> X = np.array([[1,1], [2, 1], [3, 1.2], [4, 1], [5, 0.8], [6, 1]])
+>>> from scikits.learn.decomposition import ProjectedGradientNMF
+>>> model = ProjectedGradientNMF(n_components=2, init=0)
+>>> model.fit(X) #doctest: +ELLIPSIS
+ProjectedGradientNMF(nls_max_iter=2000, eta=0.1, max_iter=200,
+           init=<mtrand.RandomState object at 0x...>, beta=1,
+           sparseness=None, n_components=2, tol=0.0001)
+>>> model.components_
+array([[ 0.77032744,  0.11118662],
+       [ 0.38526873,  0.38228063]])
+>>> model.reconstruction_err_ #doctest: +ELLIPSIS
+0.00746...
+>>> model = ProjectedGradientNMF(n_components=2, init=0,
+...                              sparseness='components')
+>>> model.fit(X) #doctest: +ELLIPSIS
+ProjectedGradientNMF(nls_max_iter=2000, eta=0.1, max_iter=200,
+           init=<mtrand.RandomState object at 0x...>, beta=1,
+           sparseness='components', n_components=2, tol=0.0001)
+>>> model.components_
+array([[ 1.67481991,  0.29614922],
+       [-0.        ,  0.4681982 ]])
+>>> model.reconstruction_err_ #doctest: +ELLIPSIS
+0.513...
+
+**Notes**
+
+This implements C.-J. Lin. Projected gradient methods
+for non-negative matrix factorization. Neural
+Computation, 19(2007), 2756-2779.
+http://www.csie.ntu.edu.tw/~cjlin/nmf/
+
+NNDSVD is introduced in
+C. Boutsidis, E. Gallopoulos: SVD based
+initialization: A head start for nonnegative
+matrix factorization - Pattern Recognition, 2008
+http://www.cs.rpi.edu/~boutsc/files/nndsvd.pdf
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Non-Negative matrix factorization by Projected Gradient (NMF) +This node has been automatically generated by wrapping the ``scikits.learn.decomposition.nmf.ProjectedGradientNMF`` class +from the ``sklearn`` library.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Transform the data X according to the fitted NMF model +This node has been automatically generated by wrapping the scikits.learn.decomposition.nmf.ProjectedGradientNMF class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Learn a NMF model for the data X. +This node has been automatically generated by wrapping the scikits.learn.decomposition.nmf.ProjectedGradientNMF class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +
+
+Non-Negative matrix factorization by Projected Gradient (NMF)
+This node has been automatically generated by wrapping the ``scikits.learn.decomposition.nmf.ProjectedGradientNMF`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+**Parameters**
+
+X: array, [n_samples, n_features]
+    Data the model will be fit to.
+
+n_components: int or None
+    Number of components
+    if n_components is not set all components are kept
+
+init:  'nndsvd' |  'nndsvda' | 'nndsvdar' | int | RandomState
+    Method used to initialize the procedure.
+    Default: 'nndsvdar'
+    Valid options:
+
+        - 'nndsvd': default Nonnegative Double Singular Value
+        -     Decomposition (NNDSVD) initialization (better for sparseness)
+        - 'nndsvda': NNDSVD with zeros filled with the average of X
+        -     (better when sparsity is not desired)
+        - 'nndsvdar': NNDSVD with zeros filled with small random values
+        -     (generally faster, less accurate alternative to NNDSVDa
+        -     for when sparsity is not desired)
+        - int seed or RandomState: non-negative random matrices
+
+
+sparseness: 'data' | 'components' | None
+    Where to enforce sparsity in the model.
+    Default: None
+
+beta: double
+    Degree of sparseness, if sparseness is not None. Larger values mean
+    more sparseness.
+    Default: 1
+
+eta: double
+    Degree of correctness to mantain, if sparsity is not None. Smaller
+    values mean larger error.
+    Default: 0.1
+
+tol: double
+    Tolerance value used in stopping conditions.
+    Default: 1e-4
+
+max_iter: int
+    Number of iterations to compute.
+    Default: 200
+
+nls_max_iter: int
+    Number of iterations in NLS subproblem.
+    Default: 2000
+
+**Attributes**
+
+components_: array, [n_components, n_features]
+    Non-negative components of the data
+reconstruction_err_: number
+    Frobenius norm of the matrix difference between the
+    training data and the reconstructed data from the
+    fit produced by the model. || X - WH ||_2
+
+**Examples**
+
+
+>>> import numpy as np
+>>> X = np.array([[1,1], [2, 1], [3, 1.2], [4, 1], [5, 0.8], [6, 1]])
+>>> from scikits.learn.decomposition import ProjectedGradientNMF
+>>> model = ProjectedGradientNMF(n_components=2, init=0)
+>>> model.fit(X) #doctest: +ELLIPSIS
+ProjectedGradientNMF(nls_max_iter=2000, eta=0.1, max_iter=200,
+           init=<mtrand.RandomState object at 0x...>, beta=1,
+           sparseness=None, n_components=2, tol=0.0001)
+>>> model.components_
+array([[ 0.77032744,  0.11118662],
+       [ 0.38526873,  0.38228063]])
+>>> model.reconstruction_err_ #doctest: +ELLIPSIS
+0.00746...
+>>> model = ProjectedGradientNMF(n_components=2, init=0,
+...                              sparseness='components')
+>>> model.fit(X) #doctest: +ELLIPSIS
+ProjectedGradientNMF(nls_max_iter=2000, eta=0.1, max_iter=200,
+           init=<mtrand.RandomState object at 0x...>, beta=1,
+           sparseness='components', n_components=2, tol=0.0001)
+>>> model.components_
+array([[ 1.67481991,  0.29614922],
+       [-0.        ,  0.4681982 ]])
+>>> model.reconstruction_err_ #doctest: +ELLIPSIS
+0.513...
+
+**Notes**
+
+This implements C.-J. Lin. Projected gradient methods
+for non-negative matrix factorization. Neural
+Computation, 19(2007), 2756-2779.
+http://www.csie.ntu.edu.tw/~cjlin/nmf/
+
+NNDSVD is introduced in
+C. Boutsidis, E. Gallopoulos: SVD based
+initialization: A head start for nonnegative
+matrix factorization - Pattern Recognition, 2008
+http://www.cs.rpi.edu/~boutsc/files/nndsvd.pdf
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Transform the data X according to the fitted NMF model +This node has been automatically generated by wrapping the scikits.learn.decomposition.nmf.ProjectedGradientNMF class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X: array, [n_samples, n_features]
+
Data matrix to be transformed by the model
+
+

Returns

+
+
data: array, [n_samples, n_components]
+
Transformed data
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Learn a NMF model for the data X. +This node has been automatically generated by wrapping the scikits.learn.decomposition.nmf.ProjectedGradientNMF class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X: array, [n_samples, n_features]
+
Data matrix to be decomposed
+
+

Returns

+

self

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.QDAScikitsLearnNode-class.html b/legacy/api/mdp.nodes.QDAScikitsLearnNode-class.html new file mode 100755 index 0000000..18aca85 --- /dev/null +++ b/legacy/api/mdp.nodes.QDAScikitsLearnNode-class.html @@ -0,0 +1,1387 @@ + + + + + mdp.nodes.QDAScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class QDAScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class QDAScikitsLearnNode

+
+ +
+
+

Quadratic Discriminant Analysis (QDA) +This node has been automatically generated by wrapping the scikits.learn.qda.QDA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
Training vector, where n_samples in the number of samples and +n_features is the number of features.
+
y : array, shape = [n_samples]
+
Target vector relative to X
+
priors : array, optional, shape = [n_classes]
+
Priors on classes
+
+

Attributes

+
+
means_ : array-like, shape = [n_classes, n_features]
+
Class means
+
priors_ : array-like, shape = [n_classes]
+
Class priors (sum to 1)
+
covariances_ : list of array-like, shape = [n_features, n_features]
+
Covariance matrices of each class
+
+

Examples

+
+>>> from scikits.learn.qda import QDA
+>>> import numpy as np
+>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
+>>> y = np.array([1, 1, 1, 2, 2, 2])
+>>> clf = QDA()
+>>> clf.fit(X, y)
+QDA(priors=None)
+>>> print clf.predict([[-0.8, -1]])
+[1]
+

See also

+

LDA

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Quadratic Discriminant Analysis (QDA) +This node has been automatically generated by wrapping the scikits.learn.qda.QDA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_label(self, + x) + + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Transform the data and labels lists to array objects and reshape them.
+ + +
+ +
+   + + + + + + +
label(self, + x)
+ This function does classification on an array of test vectors X. +This node has been automatically generated by wrapping the scikits.learn.qda.QDA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The predicted class C for each sample in X is returned.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the QDA model according to the given training data and parameters.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ClassifierCumulator
+   + + + + + + +
_check_train_args(self, + x, + labels) + + +
+ +
+   + + + + + + +
_train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
+   + + + + + + +
train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
    Inherited from ClassifierNode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_prob(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
prob(self, + x, + *args, + **kwargs)
+ This function does classification or regression on a test vector T +given a model with probability information. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Quadratic Discriminant Analysis (QDA) +This node has been automatically generated by wrapping the scikits.learn.qda.QDA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
Training vector, where n_samples in the number of samples and +n_features is the number of features.
+
y : array, shape = [n_samples]
+
Target vector relative to X
+
priors : array, optional, shape = [n_classes]
+
Priors on classes
+
+

Attributes

+
+
means_ : array-like, shape = [n_classes, n_features]
+
Class means
+
priors_ : array-like, shape = [n_classes]
+
Class priors (sum to 1)
+
covariances_ : list of array-like, shape = [n_features, n_features]
+
Covariance matrices of each class
+
+

Examples

+
+>>> from scikits.learn.qda import QDA
+>>> import numpy as np
+>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
+>>> y = np.array([1, 1, 1, 2, 2, 2])
+>>> clf = QDA()
+>>> clf.fit(X, y)
+QDA(priors=None)
+>>> print clf.predict([[-0.8, -1]])
+[1]
+

See also

+

LDA

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_label(self, + x) +

+
  +
+ + +
+
Overrides: + ClassifierNode._label +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ +
+Transform the data and labels lists to array objects and reshape them.
+
+
+
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

label(self, + x) +

+
  +
+ +

This function does classification on an array of test vectors X. +This node has been automatically generated by wrapping the scikits.learn.qda.QDA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The predicted class C for each sample in X is returned.

+

Parameters

+

X : array-like, shape = [n_samples, n_features]

+

Returns

+

C : array, shape = [n_samples]

+
+
Overrides: + ClassifierNode.label +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +
+
+Fit the QDA model according to the given training data and parameters.
+This node has been automatically generated by wrapping the ``scikits.learn.qda.QDA`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+**Parameters**
+
+X : array-like, shape = [n_samples, n_features]
+    Training vector, where n_samples in the number of samples and
+    n_features is the number of features.
+y : array, shape = [n_samples]
+    Target values (integers)
+store_covariances : boolean
+    If True the covariance matrices are computed and stored in
+    self.covariances_ attribute.
+
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.QuadraticExpansionNode-class.html b/legacy/api/mdp.nodes.QuadraticExpansionNode-class.html new file mode 100755 index 0000000..9d694e4 --- /dev/null +++ b/legacy/api/mdp.nodes.QuadraticExpansionNode-class.html @@ -0,0 +1,977 @@ + + + + + mdp.nodes.QuadraticExpansionNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class QuadraticExpansionNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class QuadraticExpansionNode

+
+ +
+
+Perform expansion in the space formed by all linear and quadratic +monomials. +QuadraticExpansionNode() is equivalent to a +PolynomialExpansionNode(2) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + dtype=None)
+ Initializes an object of type 'QuadraticExpansionNode'.
+ + +
+ +
+

Inherited from unreachable._ExpansionNode (private): + _set_input_dim, + _set_output_dim +

+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from PolynomialExpansionNode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+ int + + + + + + +
expanded_dim(self, + dim)
+ Return the size of a vector of dimension 'dim' after +a polynomial expansion of degree 'self._degree'.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+

Inherited from unreachable._ExpansionNode: + is_invertible, + is_trainable +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'QuadraticExpansionNode'. +
+
Parameters:
+
    +
  • input_dim (int) - The input dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.RBFExpansionNode-class.html b/legacy/api/mdp.nodes.RBFExpansionNode-class.html new file mode 100755 index 0000000..ce3f97a --- /dev/null +++ b/legacy/api/mdp.nodes.RBFExpansionNode-class.html @@ -0,0 +1,1169 @@ + + + + + mdp.nodes.RBFExpansionNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class RBFExpansionNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class RBFExpansionNode

+
+ +
+
+

Expand input space with Gaussian Radial Basis Functions (RBFs).

+

The input data is filtered through a set of unnormalized Gaussian +filters, i.e.:

+
+y_j = exp(-0.5/s_j * ||x - c_j||^2)
+
+

for isotropic RBFs, or more in general:

+
+y_j = exp(-0.5 * (x-c_j)^T S^-1 (x-c_j))
+
+

for anisotropic RBFs.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + centers, + sizes, + dtype=None)
+ Initializes an object of type 'RBFExpansionNode'.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_init_RBF(self, + centers, + sizes) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + centers, + sizes, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'RBFExpansionNode'. +
+
Parameters:
+
    +
  • centers (numpy.ndarray) - Centers of the RBFs. The dimensionality +of the centers determines the input dimensionality; +the number of centers determines the output +dimensionalities.
  • +
  • sizes - Radius of the RBFs. sizes is a list with +one element for each RBF, either a scalar +(the variance of the RBFs for isotropic RBFs) or a +covariance matrix (for anisotropic RBFs). +If sizes is not a list, the same variance/covariance +is used for all RBFs.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_init_RBF(self, + centers, + sizes) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Overrides: + Node.is_trainable +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.RBMNode-class.html b/legacy/api/mdp.nodes.RBMNode-class.html new file mode 100755 index 0000000..7b005e2 --- /dev/null +++ b/legacy/api/mdp.nodes.RBMNode-class.html @@ -0,0 +1,1695 @@ + + + + + mdp.nodes.RBMNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class RBMNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class RBMNode

+
+ +
+
+

Restricted Boltzmann Machine node. An RBM is an undirected +probabilistic network with binary variables. The graph is +bipartite into observed (visible) and hidden (latent) variables. +By default, the execute method returns the probability of +one of the hiden variables being equal to 1 given the input. +Use the sample_v method to sample from the observed variables +given a setting of the hidden variables, and sample_h to do the +opposite. The energy method can be used to compute the energy +of a given setting of all variables.

+
+

+
+
+

Reference

+

For more information on RBMs, see +Geoffrey E. Hinton (2007) Boltzmann machine. Scholarpedia, 2(5):1668

+

The network is trained by Contrastive Divergence, as described in +Hinton, G. E. (2002). Training products of experts by minimizing +contrastive divergence. Neural Computation, 14(8):1711-1800

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + hidden_dim, + visible_dim=None, + dtype=None)
+ Initializes an object of type 'RBMNode'.
+ + +
+ +
+   + + + + + + +
_energy(self, + v, + h) + + +
+ +
+ float + + + + + + +
_execute(self, + v, + return_probs=True)
+ If return_probs is True, returns the probability of the +hidden variables h[n,i] being 1 given the observations v[n,:]. +If return_probs is False, return a sample from that probability.
+ + +
+ +
+   + + + + + + +
_init_weights(self) + + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_sample_h(self, + v) + + +
+ +
+   + + + + + + +
_sample_v(self, + h) + + +
+ +
+   + + + + + + +
_stop_training(self) + + +
+ +
+   + + + + + + +
_train(self, + v, + n_updates=1, + epsilon=0.1, + decay=0.0, + momentum=0.0, + update_with_ph=True, + verbose=False)
+ Update the internal structures according to the input data v. +The training is performed using Contrastive Divergence (CD).
+ + +
+ +
+ float + + + + + + +
energy(self, + v, + h)
+ Compute the energy of the RBM given observed variables state v and +hidden variables state h.
+ + +
+ +
+ float + + + + + + +
execute(self, + v, + return_probs=True)
+ If return_probs is True, returns the probability of the +hidden variables h[n,i] being 1 given the observations v[n,:]. +If return_probs is False, return a sample from that probability.
+ + +
+ +
+ tuple + + + + + + +
sample_h(self, + v)
+ Sample the hidden variables given observations v.
+ + +
+ +
+ tuple + + + + + + +
sample_v(self, + h)
+ Sample the observed variables given hidden variable state h.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + v, + n_updates=1, + epsilon=0.1, + decay=0.0, + momentum=0.0, + update_with_ph=True, + verbose=False)
+ Update the internal structures according to the input data v. +The training is performed using Contrastive Divergence (CD).
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + bh
+ Bias vector of the hidden variables. +
+   + + bv
+ Bias vector of the observed variables. +
+   + + w
+ Generative weights between hidden and observed variables. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + hidden_dim, + visible_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'RBMNode'. +
+
Parameters:
+
    +
  • hidden_dim (int) - Number of hidden variables.
  • +
  • visible_dim (int) - Number of observed variables. +Default is None.
  • +
  • dtype (numpy.dtype, str) - Datatype of the input. +Default is None.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_energy(self, + v, + h) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + v, + return_probs=True) +

+
  +
+ + If return_probs is True, returns the probability of the +hidden variables h[n,i] being 1 given the observations v[n,:]. +If return_probs is False, return a sample from that probability. +
+
Parameters:
+
    +
  • v (numpy.ndarray) - A binary matrix having different variables on different +columns and observations on the rows.
  • +
  • return_probs (bool) - Controls the return value. Default value: True
  • +
+
Returns: float
+
The probability of the hidden variables being 1 given the +observations or a sample from that probability.
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_init_weights(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_pre_inversion_checks(self, + y) +

+
  +
+ +

This method contains all pre-inversion checks.

+

It can be used when a subclass defines multiple inversion methods.

+
+
Overrides: + Node._pre_inversion_checks +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_sample_h(self, + v) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_sample_v(self, + h) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self) +

+
  +
+ + +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + v, + n_updates=1, + epsilon=0.1, + decay=0.0, + momentum=0.0, + update_with_ph=True, + verbose=False) +

+
  +
+ + Update the internal structures according to the input data v. +The training is performed using Contrastive Divergence (CD). +
+
Parameters:
+
    +
  • v (numpy.ndarray) - A binary matrix having different variables on different +columns and observations on the rows.
  • +
  • n_updates (int) - Number of CD iterations. Default value: 1
  • +
  • epsilon (float) - Learning rate. Default value: 0.1
  • +
  • decay (float) - Weight decay term. Default value: 0.
  • +
  • momentum (float) - Momentum term. Default value: 0.
  • +
  • update_with_ph (bool) - In his code, G.Hinton updates the hidden biases +using the probability of the hidden unit activations instead of a +sample from it. This is in order to speed up sequential +learning of RBMs. Set this to False to use the samples instead. +Default value: True
  • +
  • verbose (bool) - Controls whether information about the energy and +training error is printed.
  • +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

energy(self, + v, + h) +

+
  +
+ + Compute the energy of the RBM given observed variables state v and +hidden variables state h. +
+
Parameters:
+
    +
  • v (numpy.ndarray) - A binary matrix having different variables on different +columns and observations on the rows.
  • +
  • h (numpy.ndarray) - The hidden variable state h.
  • +
+
Returns: float
+
The energy of the RBM given observed and the hidden variables.
+
+
+
+ +
+ +
+ + +
+

execute(self, + v, + return_probs=True) +

+
  +
+ + If return_probs is True, returns the probability of the +hidden variables h[n,i] being 1 given the observations v[n,:]. +If return_probs is False, return a sample from that probability. +
+
Parameters:
+
    +
  • v (numpy.ndarray) - A binary matrix having different variables on different +columns and observations on the rows.
  • +
  • return_probs (bool) - Controls the return value. Default value: True
  • +
+
Returns: float
+
The probability of the hidden variables being 1 given the +observations or a sample from that probability.
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

sample_h(self, + v) +

+
  +
+ + Sample the hidden variables given observations v. +
+
Parameters:
+
    +
  • v (numpy.ndarray) - A binary matrix having different variables on different +columns and observations on the rows.
  • +
+
Returns: tuple
+
A tuple (prob_h, h), where prob_h[n,i] is the +probability that variable i is one given the observations +v[n,:], and h[n,i] is a sample from the posterior probability.
+
+
+
+ +
+ +
+ + +
+

sample_v(self, + h) +

+
  +
+ + Sample the observed variables given hidden variable state h. +
+
Parameters:
+
    +
  • h (numpy.ndarray) - The hidden variable state h.
  • +
+
Returns: tuple
+
A tuple (prob_v, v), where prob_v[n,i] is the +probability that variable i is one given the hidden +variables h[n,:], and v[n,i] is a sample from that +conditional probability.
+
+
+
+ +
+ +
+ + +
+

stop_training(self) +

+
  +
+ +

Stop the training phase.

+

By default, subclasses should overwrite _stop_training to implement +this functionality. The docstring of the _stop_training method +overwrites this docstring.

+
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + v, + n_updates=1, + epsilon=0.1, + decay=0.0, + momentum=0.0, + update_with_ph=True, + verbose=False) +

+
  +
+ + Update the internal structures according to the input data v. +The training is performed using Contrastive Divergence (CD). +
+
Parameters:
+
    +
  • v (numpy.ndarray) - A binary matrix having different variables on different +columns and observations on the rows.
  • +
  • n_updates (int) - Number of CD iterations. Default value: 1
  • +
  • epsilon (float) - Learning rate. Default value: 0.1
  • +
  • decay (float) - Weight decay term. Default value: 0.
  • +
  • momentum (float) - Momentum term. Default value: 0.
  • +
  • update_with_ph (bool) - In his code, G.Hinton updates the hidden biases +using the probability of the hidden unit activations instead of a +sample from it. This is in order to speed up sequential +learning of RBMs. Set this to False to use the samples instead. +Default value: True
  • +
  • verbose (bool) - Controls whether information about the energy and +training error is printed.
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

bh

+ Bias vector of the hidden variables. +
+
+
+
+ +
+ +
+

bv

+ Bias vector of the observed variables. +
+
+
+
+ +
+ +
+

w

+ Generative weights between hidden and observed variables. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.RBMWithLabelsNode-class.html b/legacy/api/mdp.nodes.RBMWithLabelsNode-class.html new file mode 100755 index 0000000..b635bd9 --- /dev/null +++ b/legacy/api/mdp.nodes.RBMWithLabelsNode-class.html @@ -0,0 +1,1554 @@ + + + + + mdp.nodes.RBMWithLabelsNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class RBMWithLabelsNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class RBMWithLabelsNode

+
+ +
+
+

Restricted Boltzmann Machine with softmax labels. An RBM is an +undirected probabilistic network with binary variables. In this +case, the node is partitioned into a set of observed (visible) +variables, a set of hidden (latent) variables, and a set of +label variables (also observed), only one of which is active at +any time. The node is able to learn associations between the +visible variables and the labels. +By default, the execute method returns the probability of +one of the hiden variables being equal to 1 given the input. +Use the sample_v method to sample from the observed variables +(visible and labels) given a setting of the hidden variables, and +sample_h to do the opposite. The energy method can be used +to compute the energy of a given setting of all variables.

+
+

+
+
+

Reference

+

The network is trained by Contrastive Divergence, as described in +Hinton, G. E. (2002). Training products of experts by minimizing +contrastive divergence. Neural Computation, 14(8):1711-1800

+

For more information on RBMs with labels, see:

+
    +
  • Geoffrey E. Hinton (2007) Boltzmann machine. Scholarpedia, 2(5):1668.
  • +
  • Hinton, G. E, Osindero, S., and Teh, Y. W. (2006). A fast learning +algorithm for deep belief nets. Neural Computation, 18:1527-1554.
  • +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + hidden_dim, + labels_dim, + visible_dim=None, + dtype=None)
+ Initializes an object of type 'RBMWithLabelsNode'.
+ + +
+ +
+   + + + + + + +
_sample_v(self, + h, + sample_l=False, + concatenate=True) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+ float + + + + + + +
energy(self, + v, + h, + l)
+ Compute the energy of the RBM given observed variables state v +and l, and hidden variables state h.
+ + +
+ +
+ float + + + + + + +
execute(self, + v, + l, + return_probs=True)
+ If return_probs is True, returns the probability of the +hidden variables h[n,i] being 1 given the observations v[n,:] +and l[n,:].
+ + +
+ +
+ tuple + + + + + + +
sample_h(self, + v, + l)
+ Sample the hidden variables given observations v and labels l.
+ + +
+ +
+ tuple + + + + + + +
sample_v(self, + h)
+ Sample the observed variables given hidden variable state h.
+ + +
+ +
+   + + + + + + +
train(self, + v, + l, + n_updates=1, + epsilon=0.1, + decay=0.0, + momentum=0.0, + verbose=False)
+ Update the internal structures according to the visible data v +and the labels l. +The training is performed using Contrastive Divergence (CD).
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from RBMNode
+   + + + + + + +
_energy(self, + v, + h) + + +
+ +
+ float + + + + + + +
_execute(self, + v, + return_probs=True)
+ If return_probs is True, returns the probability of the +hidden variables h[n,i] being 1 given the observations v[n,:]. +If return_probs is False, return a sample from that probability.
+ + +
+ +
+   + + + + + + +
_init_weights(self) + + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_sample_h(self, + v) + + +
+ +
+   + + + + + + +
_stop_training(self) + + +
+ +
+   + + + + + + +
_train(self, + v, + n_updates=1, + epsilon=0.1, + decay=0.0, + momentum=0.0, + update_with_ph=True, + verbose=False)
+ Update the internal structures according to the input data v. +The training is performed using Contrastive Divergence (CD).
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Stop the training phase.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + bh
+ Bias vector of the hidden variables. +
+   + + bv
+ Bias vector of the observed variables. +
+   + + w
+ Generative weights between hidden and observed variables. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + hidden_dim, + labels_dim, + visible_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'RBMWithLabelsNode'. +
+
Parameters:
+
    +
  • hidden_dim (int) - Number of hidden variables.
  • +
  • labels_dim (int) - Number of labels.
  • +
  • visible_dim (int) - Number of observed variables. +Default is None.
  • +
  • dtype (numpy.dtype, str) - Datatype of the input. +Default is None.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_sample_v(self, + h, + sample_l=False, + concatenate=True) +

+
  +
+ + +
+
Overrides: + RBMNode._sample_v +
+
+
+
+ +
+ +
+ + +
+

_set_input_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_input_dim +
+
+
+
+ +
+ +
+ + +
+

energy(self, + v, + h, + l) +

+
  +
+ + Compute the energy of the RBM given observed variables state v +and l, and hidden variables state h. +
+
Parameters:
+
    +
  • v (numpy.ndarray) - A binary matrix having different variables on different +columns and observations on the rows.
  • +
  • l (numpy.ndarray) - The labels. A binary matrix having different variables on +different columns and observations on the rows. +Only one value per row should be 1.
  • +
  • h (numpy.ndarray) - The hidden variable state h.
  • +
+
Returns: float
+
The energy of the RBM given observed and the hidden variables.
+
Overrides: + RBMNode.energy +
+
+
+
+ +
+ +
+ + +
+

execute(self, + v, + l, + return_probs=True) +

+
  +
+ +

If return_probs is True, returns the probability of the +hidden variables h[n,i] being 1 given the observations v[n,:] +and l[n,:].

+

If return_probs is False, return a sample from that probability.

+
+
Parameters:
+
    +
  • v (numpy.ndarray) - A binary matrix having different variables on different +columns and observations on the rows.
  • +
  • l (numpy.ndarray) - The labels. A binary matrix having different variables on +different columns and observations on the rows. +Only one value per row should be 1.
  • +
  • return_probs (bool) - Controls the return value. Default value: True
  • +
+
Returns: float
+
The probability of the hidden variables being 1 given the +observations and labels or a sample from that probability.
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

sample_h(self, + v, + l) +

+
  +
+ + Sample the hidden variables given observations v and labels l. +
+
Parameters:
+
    +
  • v (numpy.ndarray) - A binary matrix having different variables on different +columns and observations on the rows.
  • +
  • l (numpy.ndarray) - The labels. A binary matrix having different variables on +different columns and observations on the rows. +Only one value per row should be 1.
  • +
+
Returns: tuple
+
A tuple (prob_h, h), where prob_h[n,i] is the +probability that variable i is one given the observations +v[n,:] and the labels l[n,:], and h[n,i] is a sample +from the posterior probability.
+
Overrides: + RBMNode.sample_h +
+
+
+
+ +
+ +
+ + +
+

sample_v(self, + h) +

+
  +
+ + Sample the observed variables given hidden variable state h. +
+
Parameters:
+
    +
  • h (numpy.ndarray) - The hidden variable state h.
  • +
+
Returns: tuple
+
A tuple (prob_v, probs_l, v, l), where prob_v[n,i] +is the probability that the visible variable i is one given +the hidden variables h[n,:], and v[n,i] is a sample from +that conditional probability. prob_l and l have similar +interpretations for the label variables. Note that the labels are +activated using a softmax function, so that only one label can be +active at any time.
+
Overrides: + RBMNode.sample_v +
+
+
+
+ +
+ +
+ + +
+

train(self, + v, + l, + n_updates=1, + epsilon=0.1, + decay=0.0, + momentum=0.0, + verbose=False) +

+
  +
+ + Update the internal structures according to the visible data v +and the labels l. +The training is performed using Contrastive Divergence (CD). +
+
Parameters:
+
    +
  • v (numpy.ndarray) - A binary matrix having different variables on different +columns and observations on the rows.
  • +
  • l (numpy.ndarray) - A binary matrix having different variables on different +columns and observations on the rows. Only one value per row should +be 1.
  • +
  • n_updates (int) - Number of CD iterations. Default value: 1
  • +
  • epsilon (float) - Learning rate. Default value: 0.1
  • +
  • decay (float) - Weight decay term. Default value: 0.
  • +
  • momentum (float) - Momentum term. Default value: 0.
  • +
  • verbose (bool) - Controls the verbosity.
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

bh

+ Bias vector of the hidden variables. +
+
+
+
+ +
+ +
+

bv

+ Bias vector of the observed variables. +
+
+
+
+ +
+ +
+

w

+ Generative weights between hidden and observed variables. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.RFECVScikitsLearnNode-class.html b/legacy/api/mdp.nodes.RFECVScikitsLearnNode-class.html new file mode 100755 index 0000000..6aff348 --- /dev/null +++ b/legacy/api/mdp.nodes.RFECVScikitsLearnNode-class.html @@ -0,0 +1,1292 @@ + + + + + mdp.nodes.RFECVScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class RFECVScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class RFECVScikitsLearnNode

+
+ +
+
+

Feature ranking with Recursive feature elimination and cross validation +This node has been automatically generated by wrapping the scikits.learn.feature_selection.rfe.RFECV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
estimator : object
+

A supervised learning estimator with a fit method that updates a +coef_ attributes that holds the fitted parameters. The first +dimension of the coef_ array must be equal n_features an important +features must yield high absolute values in the coef_ array.

+

For instance this is the case for most supervised learning +algorithms such as Support Vector Classifiers and Generalized +Linear Models from the svm and linear_model package.

+
+
n_features : int
+
Number of features to select
+
percentage : float
+
The percentage of features to remove at each iteration +Should be between (0, 1]. By default 0.1 will be taken.
+
+

Attributes

+
+
support_ : array-like, shape = [n_features]
+
Mask of estimated support
+
ranking_ : array-like, shape = [n_features]
+
Mask of the ranking of features
+
+

Methods

+
+
fit(X, y) : self
+
Fit the model
+
transform(X) : array
+
Reduce X to support
+
+

Examples

+
+>>> # TODO!
+

References

+

Guyon, I., Weston, J., Barnhill, S., & Vapnik, V. (2002). Gene +selection for cancer classification using support vector +machines. Mach. Learn., 46(1-3), 389--422.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Feature ranking with Recursive feature elimination and cross validation +This node has been automatically generated by wrapping the scikits.learn.feature_selection.rfe.RFECV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Reduce X to the features selected during the fit +This node has been automatically generated by wrapping the scikits.learn.feature_selection.rfe.RFECV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the RFE model with cross-validation +This node has been automatically generated by wrapping the scikits.learn.feature_selection.rfe.RFECV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The final size of the support is tuned by cross validation.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Feature ranking with Recursive feature elimination and cross validation +This node has been automatically generated by wrapping the scikits.learn.feature_selection.rfe.RFECV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
estimator : object
+

A supervised learning estimator with a fit method that updates a +coef_ attributes that holds the fitted parameters. The first +dimension of the coef_ array must be equal n_features an important +features must yield high absolute values in the coef_ array.

+

For instance this is the case for most supervised learning +algorithms such as Support Vector Classifiers and Generalized +Linear Models from the svm and linear_model package.

+
+
n_features : int
+
Number of features to select
+
percentage : float
+
The percentage of features to remove at each iteration +Should be between (0, 1]. By default 0.1 will be taken.
+
+

Attributes

+
+
support_ : array-like, shape = [n_features]
+
Mask of estimated support
+
ranking_ : array-like, shape = [n_features]
+
Mask of the ranking of features
+
+

Methods

+
+
fit(X, y) : self
+
Fit the model
+
transform(X) : array
+
Reduce X to support
+
+

Examples

+
+>>> # TODO!
+

References

+

Guyon, I., Weston, J., Barnhill, S., & Vapnik, V. (2002). Gene +selection for cancer classification using support vector +machines. Mach. Learn., 46(1-3), 389--422.

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Reduce X to the features selected during the fit +This node has been automatically generated by wrapping the scikits.learn.feature_selection.rfe.RFECV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
Vector, where n_samples in the number of samples and +n_features is the number of features.
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the RFE model with cross-validation +This node has been automatically generated by wrapping the scikits.learn.feature_selection.rfe.RFECV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The final size of the support is tuned by cross validation.

+

Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
Training vector, where n_samples in the number of samples and +n_features is the number of features.
+
y : array, shape = [n_samples]
+
Target values (integers in classification, real numbers in +regression)
+
+

cv : cross-validation instance

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.RFEScikitsLearnNode-class.html b/legacy/api/mdp.nodes.RFEScikitsLearnNode-class.html new file mode 100755 index 0000000..ebcba61 --- /dev/null +++ b/legacy/api/mdp.nodes.RFEScikitsLearnNode-class.html @@ -0,0 +1,1290 @@ + + + + + mdp.nodes.RFEScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class RFEScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class RFEScikitsLearnNode

+
+ +
+
+

Feature ranking with Recursive feature elimination +This node has been automatically generated by wrapping the scikits.learn.feature_selection.rfe.RFE class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
estimator : object
+

A supervised learning estimator with a fit method that updates a +coef_ attributes that holds the fitted parameters. The first +dimension of the coef_ array must be equal n_features an important +features must yield high absolute values in the coef_ array.

+

For instance this is the case for most supervised learning +algorithms such as Support Vector Classifiers and Generalized +Linear Models from the svm and linear_model package.

+
+
n_features : int
+
Number of features to select
+
percentage : float
+
The percentage of features to remove at each iteration +Should be between (0, 1]. By default 0.1 will be taken.
+
+

Attributes

+
+
support_ : array-like, shape = [n_features]
+
Mask of estimated support
+
ranking_ : array-like, shape = [n_features]
+
Mask of the ranking of features
+
+

Methods

+
+
fit(X, y) : self
+
Fit the model
+
transform(X) : array
+
Reduce X to support
+
+

Examples

+
+>>> # TODO!
+

References

+

Guyon, I., Weston, J., Barnhill, S., & Vapnik, V. (2002). Gene +selection for cancer classification using support vector +machines. Mach. Learn., 46(1-3), 389--422.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Feature ranking with Recursive feature elimination +This node has been automatically generated by wrapping the scikits.learn.feature_selection.rfe.RFE class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Reduce X to the features selected during the fit +This node has been automatically generated by wrapping the scikits.learn.feature_selection.rfe.RFE class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the RFE model +This node has been automatically generated by wrapping the scikits.learn.feature_selection.rfe.RFE class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Feature ranking with Recursive feature elimination +This node has been automatically generated by wrapping the scikits.learn.feature_selection.rfe.RFE class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
estimator : object
+

A supervised learning estimator with a fit method that updates a +coef_ attributes that holds the fitted parameters. The first +dimension of the coef_ array must be equal n_features an important +features must yield high absolute values in the coef_ array.

+

For instance this is the case for most supervised learning +algorithms such as Support Vector Classifiers and Generalized +Linear Models from the svm and linear_model package.

+
+
n_features : int
+
Number of features to select
+
percentage : float
+
The percentage of features to remove at each iteration +Should be between (0, 1]. By default 0.1 will be taken.
+
+

Attributes

+
+
support_ : array-like, shape = [n_features]
+
Mask of estimated support
+
ranking_ : array-like, shape = [n_features]
+
Mask of the ranking of features
+
+

Methods

+
+
fit(X, y) : self
+
Fit the model
+
transform(X) : array
+
Reduce X to support
+
+

Examples

+
+>>> # TODO!
+

References

+

Guyon, I., Weston, J., Barnhill, S., & Vapnik, V. (2002). Gene +selection for cancer classification using support vector +machines. Mach. Learn., 46(1-3), 389--422.

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Reduce X to the features selected during the fit +This node has been automatically generated by wrapping the scikits.learn.feature_selection.rfe.RFE class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
Vector, where n_samples in the number of samples and +n_features is the number of features.
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the RFE model +This node has been automatically generated by wrapping the scikits.learn.feature_selection.rfe.RFE class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
Training vector, where n_samples in the number of samples and +n_features is the number of features.
+
y : array, shape = [n_samples]
+
Target values (integers in classification, real numbers in +regression)
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.RandomizedPCAScikitsLearnNode-class.html b/legacy/api/mdp.nodes.RandomizedPCAScikitsLearnNode-class.html new file mode 100755 index 0000000..946d63b --- /dev/null +++ b/legacy/api/mdp.nodes.RandomizedPCAScikitsLearnNode-class.html @@ -0,0 +1,1343 @@ + + + + + mdp.nodes.RandomizedPCAScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class RandomizedPCAScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class RandomizedPCAScikitsLearnNode

+
+ +
+
+
+
+Principal component analysis (PCA) using randomized SVD
+This node has been automatically generated by wrapping the ``scikits.learn.decomposition.pca.RandomizedPCA`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+Linear dimensionality reduction using approximated Singular Value
+Decomposition of the data and keeping only the most significant
+singular vectors to project the data to a lower dimensional space.
+
+This implementation uses a randomized SVD implementation and can
+handle both scipy.sparse and numpy dense arrays as input.
+
+**Parameters**
+
+n_components: int
+    Maximum number of components to keep: default is 50.
+
+copy: bool
+    If False, data passed to fit are overwritten
+
+iterated_power: int, optional
+    Number of iteration for the power method. 3 by default.
+
+whiten: bool, optional
+    When True (False by default) the ``components_`` vectors are divided
+    by the singular values to ensure uncorrelated outputs with unit
+    component-wise variances.
+
+    Whitening will remove some information from the transformed signal
+    (the relative variance scales of the components) but can sometime
+    improve the predictive accuracy of the downstream estimators by
+    making there data respect some hard-wired assumptions.
+
+**Attributes**
+
+components_: array, [n_components, n_features]
+    Components with maximum variance.
+
+explained_variance_ratio_: array, [n_components]
+    Percentage of variance explained by each of the selected components.
+    k is not set then all components are stored and the sum of
+    explained variances is equal to 1.0
+
+**Examples**
+
+>>> import numpy as np
+>>> from scikits.learn.decomposition import RandomizedPCA
+>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
+>>> pca = RandomizedPCA(n_components=2)
+>>> pca.fit(X)
+RandomizedPCA(copy=True, n_components=2, iterated_power=3, whiten=False)
+>>> print pca.explained_variance_ratio_
+[ 0.99244289  0.00755711]
+
+See also
+
+PCA
+ProbabilisticPCA
+
+**Notes**
+
+References:
+
+
+* Finding structure with randomness: Stochastic algorithms for
+  constructing approximate matrix decompositions Halko, et al., 2009
+  (arXiv:909)
+
+* A randomized algorithm for the decomposition of matrices
+  Per-Gunnar Martinsson, Vladimir Rokhlin and Mark Tygert
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Principal component analysis (PCA) using randomized SVD +This node has been automatically generated by wrapping the ``scikits.learn.decomposition.pca.RandomizedPCA`` class +from the ``sklearn`` library.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ This node has been automatically generated by wrapping the scikits.learn.decomposition.pca.RandomizedPCA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the model to the data X. +This node has been automatically generated by wrapping the scikits.learn.decomposition.pca.RandomizedPCA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +
+
+Principal component analysis (PCA) using randomized SVD
+This node has been automatically generated by wrapping the ``scikits.learn.decomposition.pca.RandomizedPCA`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+Linear dimensionality reduction using approximated Singular Value
+Decomposition of the data and keeping only the most significant
+singular vectors to project the data to a lower dimensional space.
+
+This implementation uses a randomized SVD implementation and can
+handle both scipy.sparse and numpy dense arrays as input.
+
+**Parameters**
+
+n_components: int
+    Maximum number of components to keep: default is 50.
+
+copy: bool
+    If False, data passed to fit are overwritten
+
+iterated_power: int, optional
+    Number of iteration for the power method. 3 by default.
+
+whiten: bool, optional
+    When True (False by default) the ``components_`` vectors are divided
+    by the singular values to ensure uncorrelated outputs with unit
+    component-wise variances.
+
+    Whitening will remove some information from the transformed signal
+    (the relative variance scales of the components) but can sometime
+    improve the predictive accuracy of the downstream estimators by
+    making there data respect some hard-wired assumptions.
+
+**Attributes**
+
+components_: array, [n_components, n_features]
+    Components with maximum variance.
+
+explained_variance_ratio_: array, [n_components]
+    Percentage of variance explained by each of the selected components.
+    k is not set then all components are stored and the sum of
+    explained variances is equal to 1.0
+
+**Examples**
+
+>>> import numpy as np
+>>> from scikits.learn.decomposition import RandomizedPCA
+>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
+>>> pca = RandomizedPCA(n_components=2)
+>>> pca.fit(X)
+RandomizedPCA(copy=True, n_components=2, iterated_power=3, whiten=False)
+>>> print pca.explained_variance_ratio_
+[ 0.99244289  0.00755711]
+
+See also
+
+PCA
+ProbabilisticPCA
+
+**Notes**
+
+References:
+
+
+* Finding structure with randomness: Stochastic algorithms for
+  constructing approximate matrix decompositions Halko, et al., 2009
+  (arXiv:909)
+
+* A randomized algorithm for the decomposition of matrices
+  Per-Gunnar Martinsson, Vladimir Rokhlin and Mark Tygert
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ + This node has been automatically generated by wrapping the scikits.learn.decomposition.pca.RandomizedPCA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the model to the data X. +This node has been automatically generated by wrapping the scikits.learn.decomposition.pca.RandomizedPCA class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X: array-like or scipy.sparse matrix, shape (n_samples, n_features)
+
Training vector, where n_samples in the number of samples and +n_features is the number of features.
+
+

Returns

+
+
self : object
+
Returns the instance itself.
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.RecursiveExpansionNode-class.html b/legacy/api/mdp.nodes.RecursiveExpansionNode-class.html new file mode 100755 index 0000000..0bda67c --- /dev/null +++ b/legacy/api/mdp.nodes.RecursiveExpansionNode-class.html @@ -0,0 +1,1248 @@ + + + + + mdp.nodes.RecursiveExpansionNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class RecursiveExpansionNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class RecursiveExpansionNode

+
+ +
+
+Recursively computable (orthogonal) expansions. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + degree=1, + recf='standard_poly', + check=False, + with0=True, + input_dim=None, + dtype=None)
+ Initialize a RecursiveExpansionNode.
+ + +
+ +
+ numpy.ndarray + + + + + + +
_execute(self, + x)
+ Expansion of the data.
+ + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
check_domain(self, + x, + prec=1e-06)
+ the function sequence selected is defined or orthogonal.
+ + +
+ +
+ numpy.ndarray + + + + + + +
execute(self, + x)
+ Expansion of the data.
+ + +
+ +
+ int + + + + + + +
expanded_dim(self, + num_vars)
+ Return the size of a vector of dimension 'dim' after +an expansion of degree 'self._degree'.
+ + +
+ +
+

Inherited from unreachable._ExpansionNode (private): + _set_input_dim, + _set_output_dim +

+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+

Inherited from unreachable._ExpansionNode: + is_invertible, + is_trainable +

+
+ + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + lower
+ The lower bound of the domain on which the recursion function +is defined or orthogonal. +
+   + + upper
+ The upper bound of the domain on which the recursion function +is defined or orthogonal. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + degree=1, + recf='standard_poly', + check=False, + with0=True, + input_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initialize a RecursiveExpansionNode. +
+
Parameters:
+
    +
  • degree (int) - The maximum order of the recursive expansion. +The dimension of the return for single variable inputs will be +equal to this value if with0 == False.
  • +
  • recf (tuple or str) - Must be in ['standard_poly', 'legendre_poly', +'legendre_rational', 'chebyshev_poly'] or a tuple similar +to those in the recfs dictionary in this module. The procedure +on how an init function is built can be found in the docstring +of the init and recursion function for standard polynomials +init_standard_poly and recf_standard_poly, respectively.
  • +
  • check (bool) - Indicates whether the input data will +be checked for compliance to the domain on which the function +sequence selected is defined or orthogonal. The check will be made +automatically in the execute method.
  • +
  • with0 (bool) - Parameter that specificies whether the zero-th order +element is to be included at the beginning of the result array.
  • +
  • input_dim (int) - Dimensionality of the input. +Default is None.
  • +
  • dtype (numpy.dtype or str) - Datatype of the input. +Default is None.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + Expansion of the data. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data to be expanded. Observations/samples must +be along the first axis, variables along the second.
  • +
+
Returns: numpy.ndarray
+
The expansion of x with observations/samples along the +first axis and corresponding function values (expansion) +along the second axis.
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

check_domain(self, + x, + prec=1e-06) +

+
  +
+ +
+
Checks for compliance of the data x with the domain on which
+
the function sequence selected is defined or orthogonal.
+
+
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data to be expanded. Observations/samples must +be along the first axis, variables along the second.
  • +
  • prec (float) - (Numerical) tolerance when checking validity.
  • +
+
Raises:
+
    +
  • mdp.NodeException - If one or more values lie outside of the function +specific domain.
  • +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ + Expansion of the data. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The data to be expanded. Observations/samples must +be along the first axis, variables along the second.
  • +
+
Returns: numpy.ndarray
+
The expansion of x with observations/samples along the +first axis and corresponding function values (expansion) +along the second axis.
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

expanded_dim(self, + num_vars) +

+
  +
+ + Return the size of a vector of dimension 'dim' after +an expansion of degree 'self._degree'. +
+
Parameters:
+
    +
  • num_vars (int) - The number of variables in the +supplied data. This value is equal to x.shape[1].
  • +
+
Returns: int
+
Overrides: + unreachable._ExpansionNode.expanded_dim +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

lower

+ The lower bound of the domain on which the recursion function +is defined or orthogonal. +
+
+
+
+ +
+ +
+

upper

+ The upper bound of the domain on which the recursion function +is defined or orthogonal. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.RidgeCVScikitsLearnNode-class.html b/legacy/api/mdp.nodes.RidgeCVScikitsLearnNode-class.html new file mode 100755 index 0000000..90979f1 --- /dev/null +++ b/legacy/api/mdp.nodes.RidgeCVScikitsLearnNode-class.html @@ -0,0 +1,1272 @@ + + + + + mdp.nodes.RidgeCVScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class RidgeCVScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class RidgeCVScikitsLearnNode

+
+ +
+
+

Ridge regression with built-in cross-validation. +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.RidgeCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +By default, it performs Generalized Cross-Validation, which is a form of +efficient Leave-One-Out cross-validation. Currently, only the n_features > +n_samples case is handled efficiently.

+

Parameters

+
+
alphas: numpy array of shape [n_alpha]
+
Array of alpha values to try. +Small positive values of alpha improve the conditioning of the +problem and reduce the variance of the estimates. +Alpha corresponds to (2*C)^-1 in other linear models such as +LogisticRegression or LinearSVC.
+
fit_intercept : boolean
+
Whether to calculate the intercept for this model. If set +to false, no intercept will be used in calculations +(e.g. data is expected to be already centered).
+
loss_func: callable, optional
+
function that takes 2 arguments and compares them in +order to evaluate the performance of prediciton (small is good) +if None is passed, the score of the estimator is maximized
+
score_func: callable, optional
+
function that takes 2 arguments and compares them in +order to evaluate the performance of prediciton (big is good) +if None is passed, the score of the estimator is maximized
+
+

See also

+

Ridge

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Ridge regression with built-in cross-validation. +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.RidgeCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +By default, it performs Generalized Cross-Validation, which is a form of +efficient Leave-One-Out cross-validation. Currently, only the n_features > +n_samples case is handled efficiently.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.RidgeCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit Ridge regression model +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.RidgeCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Ridge regression with built-in cross-validation. +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.RidgeCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +By default, it performs Generalized Cross-Validation, which is a form of +efficient Leave-One-Out cross-validation. Currently, only the n_features > +n_samples case is handled efficiently.

+

Parameters

+
+
alphas: numpy array of shape [n_alpha]
+
Array of alpha values to try. +Small positive values of alpha improve the conditioning of the +problem and reduce the variance of the estimates. +Alpha corresponds to (2*C)^-1 in other linear models such as +LogisticRegression or LinearSVC.
+
fit_intercept : boolean
+
Whether to calculate the intercept for this model. If set +to false, no intercept will be used in calculations +(e.g. data is expected to be already centered).
+
loss_func: callable, optional
+
function that takes 2 arguments and compares them in +order to evaluate the performance of prediciton (small is good) +if None is passed, the score of the estimator is maximized
+
score_func: callable, optional
+
function that takes 2 arguments and compares them in +order to evaluate the performance of prediciton (big is good) +if None is passed, the score of the estimator is maximized
+
+

See also

+

Ridge

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.RidgeCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X : numpy array of shape [n_samples, n_features]

+

Returns

+
+
C : array, shape = [n_samples]
+
Returns predicted values.
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit Ridge regression model +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.RidgeCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : numpy array of shape [n_samples, n_features]
+
Training data
+
y : numpy array of shape [n_samples] or [n_samples, n_responses]
+
Target values
+
sample_weight : float or numpy array of shape [n_samples]
+
Sample weight
+
cv : cross-validation generator, optional
+
If None, Generalized Cross-Validationn (efficient Leave-One-Out) +will be used.
+
+

Returns

+

self : Returns self.

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.RidgeClassifierCVScikitsLearnNode-class.html b/legacy/api/mdp.nodes.RidgeClassifierCVScikitsLearnNode-class.html new file mode 100755 index 0000000..bdc445f --- /dev/null +++ b/legacy/api/mdp.nodes.RidgeClassifierCVScikitsLearnNode-class.html @@ -0,0 +1,1217 @@ + + + + + mdp.nodes.RidgeClassifierCVScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class RidgeClassifierCVScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class RidgeClassifierCVScikitsLearnNode

+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the ridge classifier. +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.RidgeClassifierCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute.

+

Every subclass must take care of up- or down-casting the internal +structures to match this argument (use _refcast private +method when possible).

+
+
Overrides: + object.__init__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the ridge classifier. +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.RidgeClassifierCV class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
Training vectors, where n_samples is the number of samples +and n_features is the number of features.
+
y : array-like, shape = [n_samples]
+
Target values.
+
class_weight : dict, optional
+
Weights associated with classes in the form +{class_label : weight}. If not given, all classes are +supposed to have weight one.
+
sample_weight : float or numpy array of shape [n_samples]
+
Sample weight
+
+

Returns

+
+
self : object
+
Returns self.
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.RidgeClassifierScikitsLearnNode-class.html b/legacy/api/mdp.nodes.RidgeClassifierScikitsLearnNode-class.html new file mode 100755 index 0000000..a31fc37 --- /dev/null +++ b/legacy/api/mdp.nodes.RidgeClassifierScikitsLearnNode-class.html @@ -0,0 +1,1240 @@ + + + + + mdp.nodes.RidgeClassifierScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class RidgeClassifierScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class RidgeClassifierScikitsLearnNode

+
+ +
+
+

Classifier using Ridge regression +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.RidgeClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
alpha : float
+
Small positive values of alpha improve the conditioning of the +problem and reduce the variance of the estimates. +Alpha corresponds to (2*C)^-1 in other linear models such as +LogisticRegression or LinearSVC.
+
fit_intercept : boolean
+
Whether to calculate the intercept for this model. If set +to false, no intercept will be used in calculations +(e.g. data is expected to be already centered).
+
+

Note

+

For multi-class classification, n_class classifiers are trained in +a one-versus-all approach.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Classifier using Ridge regression +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.RidgeClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Predict target values according to the fitted model. +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.RidgeClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit Ridge regression model. +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.RidgeClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Classifier using Ridge regression +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.RidgeClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
alpha : float
+
Small positive values of alpha improve the conditioning of the +problem and reduce the variance of the estimates. +Alpha corresponds to (2*C)^-1 in other linear models such as +LogisticRegression or LinearSVC.
+
fit_intercept : boolean
+
Whether to calculate the intercept for this model. If set +to false, no intercept will be used in calculations +(e.g. data is expected to be already centered).
+
+

Note

+

For multi-class classification, n_class classifiers are trained in +a one-versus-all approach.

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Predict target values according to the fitted model. +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.RidgeClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X : array-like, shape = [n_samples, n_features]

+

Returns

+

C : array, shape = [n_samples]

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit Ridge regression model. +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.RidgeClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : numpy array of shape [n_samples,n_features]
+
Training data
+
y : numpy array of shape [n_samples]
+
Target values
+
+

Returns

+

self : returns an instance of self.

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.RidgeScikitsLearnNode-class.html b/legacy/api/mdp.nodes.RidgeScikitsLearnNode-class.html new file mode 100755 index 0000000..5e16293 --- /dev/null +++ b/legacy/api/mdp.nodes.RidgeScikitsLearnNode-class.html @@ -0,0 +1,1266 @@ + + + + + mdp.nodes.RidgeScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class RidgeScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class RidgeScikitsLearnNode

+
+ +
+
+

Ridge regression. +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.Ridge class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
alpha : float
+
Small positive values of alpha improve the conditioning of the +problem and reduce the variance of the estimates. +Alpha corresponds to (2*C)^-1 in other linear models such as +LogisticRegression or LinearSVC.
+
fit_intercept : boolean
+
Whether to calculate the intercept for this model. If set +to false, no intercept will be used in calculations +(e.g. data is expected to be already centered).
+
+

Examples

+
+>>> from scikits.learn.linear_model import Ridge
+>>> import numpy as np
+>>> n_samples, n_features = 10, 5
+>>> np.random.seed(0)
+>>> y = np.random.randn(n_samples)
+>>> X = np.random.randn(n_samples, n_features)
+>>> clf = Ridge(alpha=1.0)
+>>> clf.fit(X, y)
+Ridge(alpha=1.0, fit_intercept=True)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Ridge regression. +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.Ridge class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.Ridge class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit Ridge regression model +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.Ridge class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Ridge regression. +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.Ridge class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
alpha : float
+
Small positive values of alpha improve the conditioning of the +problem and reduce the variance of the estimates. +Alpha corresponds to (2*C)^-1 in other linear models such as +LogisticRegression or LinearSVC.
+
fit_intercept : boolean
+
Whether to calculate the intercept for this model. If set +to false, no intercept will be used in calculations +(e.g. data is expected to be already centered).
+
+

Examples

+
+>>> from scikits.learn.linear_model import Ridge
+>>> import numpy as np
+>>> n_samples, n_features = 10, 5
+>>> np.random.seed(0)
+>>> y = np.random.randn(n_samples)
+>>> X = np.random.randn(n_samples, n_features)
+>>> clf = Ridge(alpha=1.0)
+>>> clf.fit(X, y)
+Ridge(alpha=1.0, fit_intercept=True)
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.Ridge class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X : numpy array of shape [n_samples, n_features]

+

Returns

+
+
C : array, shape = [n_samples]
+
Returns predicted values.
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit Ridge regression model +This node has been automatically generated by wrapping the scikits.learn.linear_model.ridge.Ridge class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : numpy array of shape [n_samples,n_features]
+
Training data
+
y : numpy array of shape [n_samples]
+
Target values
+
sample_weight : float or numpy array of shape [n_samples]
+
Sample weight
+
solver : 'default' | 'cg'
+
Solver to use in the computational routines. 'default' +will use the standard scipy.linalg.solve function, 'cg' +will use the a conjugate gradient solver as found in +scipy.sparse.linalg.cg.
+
+

Returns

+

self : returns an instance of self.

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.SFA2Node-class.html b/legacy/api/mdp.nodes.SFA2Node-class.html new file mode 100755 index 0000000..d30c23b --- /dev/null +++ b/legacy/api/mdp.nodes.SFA2Node-class.html @@ -0,0 +1,1473 @@ + + + + + mdp.nodes.SFA2Node + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class SFA2Node + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SFA2Node

+
+ +
+
+

Get an input signal, expand it in the space of +inhomogeneous polynomials of degree 2 and extract its slowly varying +components.

+
+The get_quadratic_form method returns the input-output
+

function of one of the learned unit as a QuadraticForm object. +See the documentation of mdp.utils.QuadraticForm for additional +information.

+
+

Reference:

+

More information about Slow Feature Analysis can be found in +Wiskott, L. and Sejnowski, T.J., Slow Feature Analysis: Unsupervised +Learning of Invariances, Neural Computation, 14(4):715-770 (2002).

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + include_last_sample=True, + rank_deficit_method='none')
+ Initialize an object of type SFA2Node.
+ + +
+ +
+ numpy.ndarray + + + + + + +
_execute(self, + x, + n=None)
+ Compute the output of the slowest functions.
+ + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_range(self) + + +
+ +
+   + + + + + + +
_stop_training(self, + debug=False) + + +
+ +
+   + + + + + + +
_train(self, + x, + include_last_sample=None)
+ Training method.
+ + +
+ +
+ numpy.ndarray + + + + + + +
execute(self, + x, + n=None)
+ Compute the output of the slowest functions.
+ + +
+ +
+ numpy.ndarray, numpy.ndarray, float + + + + + + +
get_quadratic_form(self, + nr)
+ Return the matrix H, the vector f and the constant c of the +quadratic form 1/2 x'Hx + f'x + c that defines the output +of the component 'nr' of the SFA node.
+ + +
+ +
+   + + + + + + +
stop_training(self, + debug=False)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + include_last_sample=None)
+ Training method.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from SFANode
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs)
+ Raises exception if time dimension does not have enough elements.
+ + +
+ +
+   + + + + + + +
_init_cov(self) + + +
+ +
+   + + + + + + +
_inverse(self, + y) + + +
+ +
+   + + + + + + +
get_eta_values(self, + t=1)
+ Return the eta values of the slow components learned during +the training phase. If the training phase has not been completed +yet, call stop_training.
+ + +
+ +
+   + + + + + + +
inverse(self, + y)
+ Invert y.
+ + +
+ +
+   + + + + + + +
set_rank_deficit_method(self, + rank_deficit_method) + + +
+ +
+ numpy.ndarray + + + + + + +
time_derivative(self, + x)
+ Compute the linear approximation of the time derivative
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
    Inherited from SFANode
+   + + avg
+ Mean of the input data (available after training) +
+   + + d
+ Delta values corresponding to the SFA components (generalized +eigenvalues). [See the docs of the get_eta_values method for +more information] +
+   + + sf
+ Matrix of the SFA filters (available after training) +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + include_last_sample=True, + rank_deficit_method='none') +
(Constructor) +

+
  +
+ + Initialize an object of type SFA2Node. +
+
Parameters:
+
    +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
  • include_last_sample (bool) - If False the train method discards the +last sample in every chunk during training when calculating +the covariance matrix. +The last sample is in this case only used for calculating the +covariance matrix of the derivatives. The switch should be set +to False if you plan to train with several small chunks. +For an example, see the SFANode.__init__ method's docstring.
  • +
  • rank_deficit_method (str) - Possible values: 'none' (default), 'reg', 'pca', 'svd', 'auto' +If not 'none', the stop_train method solves the SFA eigenvalue +problem in a way that is robust against linear redundancies in +the input data. This would otherwise lead to rank deficit in the +covariance matrix, which usually yields a +SymeigException ('Covariance matrices may be singular'). +For a more detailed description, have a look at the SFANode's constructor docstring.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x, + n=None) +

+
  +
+ + Compute the output of the slowest functions. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The time series data.
  • +
  • n (int) - The number of slowest components. If 'n' is an integer, +then use the first 'n' slowest components.
  • +
+
Returns: numpy.ndarray
+
The output of the slowest functions.
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_set_input_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_input_dim +
+
+
+
+ +
+ +
+ + +
+

_set_range(self) +

+
  +
+ + +
+
Overrides: + SFANode._set_range +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + debug=False) +

+
  +
+ + +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x, + include_last_sample=None) +

+
  +
+ + Training method. +
+
Parameters:
+
    +
  • x - The time series data.
  • +
  • include_last_sample - For the include_last_sample switch have a +look at the SFANode.__init__ docstring.
  • +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x, + n=None) +

+
  +
+ + Compute the output of the slowest functions. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The time series data.
  • +
  • n (int) - The number of slowest components. If 'n' is an integer, +then use the first 'n' slowest components.
  • +
+
Returns: numpy.ndarray
+
The output of the slowest functions.
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

get_quadratic_form(self, + nr) +

+
  +
+ + Return the matrix H, the vector f and the constant c of the +quadratic form 1/2 x'Hx + f'x + c that defines the output +of the component 'nr' of the SFA node. +
+
Parameters:
+
    +
  • nr - The component 'nr' of the SFA node.
  • +
+
Returns: numpy.ndarray, numpy.ndarray, float
+
The matrix H, the vector f and the constant c of the +quadratic form.
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + debug=False) +

+
  +
+ +

Stop the training phase.

+

By default, subclasses should overwrite _stop_training to implement +this functionality. The docstring of the _stop_training method +overwrites this docstring.

+
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x, + include_last_sample=None) +

+
  +
+ + Training method. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The time series data.
  • +
  • include_last_sample (bool) - For the include_last_sample switch have a +look at the SFANode.__init__ docstring.
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.SFANode-class.html b/legacy/api/mdp.nodes.SFANode-class.html new file mode 100755 index 0000000..2856f54 --- /dev/null +++ b/legacy/api/mdp.nodes.SFANode-class.html @@ -0,0 +1,1663 @@ + + + + + mdp.nodes.SFANode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class SFANode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SFANode

+
+ +
+
+

Extract the slowly varying components from the input data.

+
+

Reference

+

More information about Slow Feature Analysis can be found in +Wiskott, L. and Sejnowski, T.J., Slow Feature Analysis: Unsupervised +Learning of Invariances, Neural Computation, 14(4):715-770 (2002).

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + include_last_sample=True, + rank_deficit_method='none')
+ Initialize an object of type 'SFANode'.
+ + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs)
+ Raises exception if time dimension does not have enough elements.
+ + +
+ +
+ numpy.ndarray + + + + + + +
_execute(self, + x, + n=None)
+ Compute the output of the slowest functions.
+ + +
+ +
+   + + + + + + +
_init_cov(self) + + +
+ +
+   + + + + + + +
_inverse(self, + y) + + +
+ +
+   + + + + + + +
_set_range(self) + + +
+ +
+   + + + + + + +
_stop_training(self, + debug=False) + + +
+ +
+   + + + + + + +
_train(self, + x, + include_last_sample=None)
+ Training method.
+ + +
+ +
+ numpy.ndarray + + + + + + +
execute(self, + x, + n=None)
+ Compute the output of the slowest functions.
+ + +
+ +
+   + + + + + + +
get_eta_values(self, + t=1)
+ Return the eta values of the slow components learned during +the training phase. If the training phase has not been completed +yet, call stop_training.
+ + +
+ +
+   + + + + + + +
inverse(self, + y)
+ Invert y.
+ + +
+ +
+   + + + + + + +
set_rank_deficit_method(self, + rank_deficit_method) + + +
+ +
+   + + + + + + +
stop_training(self, + debug=False)
+ Stop the training phase.
+ + +
+ +
+ numpy.ndarray + + + + + + +
time_derivative(self, + x)
+ Compute the linear approximation of the time derivative
+ + +
+ +
+   + + + + + + +
train(self, + x, + include_last_sample=None)
+ Training method.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + avg
+ Mean of the input data (available after training) +
+   + + d
+ Delta values corresponding to the SFA components (generalized +eigenvalues). [See the docs of the get_eta_values method for +more information] +
+   + + sf
+ Matrix of the SFA filters (available after training) +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + include_last_sample=True, + rank_deficit_method='none') +
(Constructor) +

+
  +
+ + Initialize an object of type 'SFANode'. +
+
Parameters:
+
    +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
  • include_last_sample (bool) - If False the train method discards +the last sample in every chunk during training when calculating +the covariance matrix. +The last sample is in this case only used for calculating the +covariance matrix of the derivatives. The switch should be set +to False if you plan to train with several small chunks. For +example we can split a sequence (index is time):

    +
    +x_1 x_2 x_3 x_4
    +
    +

    in smaller parts like this:

    +
    +x_1 x_2
    +x_2 x_3
    +x_3 x_4
    +
    +

    The SFANode will see 3 derivatives for the temporal covariance +matrix, and the first 3 points for the spatial covariance matrix. +Of course you will need to use a generator that connects the +small chunks (the last sample needs to be sent again in the next +chunk). If include_last_sample was True, depending on the +generator you use, you would either get:

    +
    +x_1 x_2
    +x_2 x_3
    +x_3 x_4
    +
    +

    in which case the last sample of every chunk would be used twice +when calculating the covariance matrix, or:

    +
    +x_1 x_2
    +x_3 x_4
    +
    +

    in which case you loose the derivative between x_3 and x_2.

    +

    If you plan to train with a single big chunk leave +include_last_sample to the default value, i.e. True.

    +

    You can even change this behaviour during training. Just set the +corresponding switch in the train method.

  • +
  • rank_deficit_method (str) - Possible values: 'none' (default), 'reg', 'pca', 'svd', 'auto' +If not 'none', the stop_train method solves the SFA eigenvalue +problem in a way that is robust against linear redundancies in +the input data. This would otherwise lead to rank deficit in the +covariance matrix, which usually yields a +SymeigException ('Covariance matrices may be singular'). +There are several solving methods implemented:

    +

    reg - works by regularization +pca - works by PCA +svd - works by SVD +ldl - works by LDL decomposition (requires SciPy >= 1.0)

    +
    +
    auto - (Will be: selects the best-benchmarked method of the above)
    +
    Currently it simply selects pca.
    +
    +

    Note: If you already received an exception +SymeigException ('Covariance matrices may be singular') +you can manually set the solving method for an existing node:

    +
    +sfa.set_rank_deficit_method('pca')
    +
    +

    That means,:

    +
    +sfa = SFANode(rank_deficit='pca')
    +
    +

    is equivalent to:

    +
    +sfa = SFANode()
    +sfa.set_rank_deficit_method('pca')
    +
    +

    After such an adjustment you can run stop_training() again, +which would save a potentially time-consuming rerun of all +train() calls.

  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_check_train_args(self, + x, + *args, + **kwargs) +

+
  +
+ + Raises exception if time dimension does not have enough elements. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The time series data.
  • +
  • *args
  • +
  • **kwargs
  • +
+
Overrides: + Node._check_train_args +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x, + n=None) +

+
  +
+ + Compute the output of the slowest functions. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The time series data.
  • +
  • n (int) - The number of slowest components. If 'n' is an integer, +then use the first 'n' slowest components.
  • +
+
Returns: numpy.ndarray
+
The output of the slowest functions.
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_init_cov(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_inverse(self, + y) +

+
  +
+ + +
+
Overrides: + Node._inverse +
+
+
+
+ +
+ +
+ + +
+

_set_range(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + debug=False) +

+
  +
+ + +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x, + include_last_sample=None) +

+
  +
+ + Training method. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The time series data.
  • +
  • include_last_sample (bool) - For the include_last_sample switch have a +look at the SFANode.__init__ docstring.
  • +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x, + n=None) +

+
  +
+ + Compute the output of the slowest functions. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The time series data.
  • +
  • n (int) - The number of slowest components. If 'n' is an integer, +then use the first 'n' slowest components.
  • +
+
Returns: numpy.ndarray
+
The output of the slowest functions.
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

get_eta_values(self, + t=1) +

+
  +
+ +

Return the eta values of the slow components learned during +the training phase. If the training phase has not been completed +yet, call stop_training.

+

The delta value of a signal is a measure of its temporal +variation, and is defined as the mean of the derivative squared, +i.e. delta(x) = mean(dx/dt(t)^2). delta(x) is zero if +x is a constant signal, and increases if the temporal variation +of the signal is bigger.

+

The eta value is a more intuitive measure of temporal variation, +defined as +eta(x) = t/(2*pi) * sqrt(delta(x)) +If x is a signal of length 't' which consists of a sine function +that accomplishes exactly N oscillations, then eta(x)=N.

+
+
Parameters:
+
    +
  • t - Sampling frequency in Hz.

    +

    The original definition in (Wiskott and Sejnowski, 2002) +is obtained for t = number of training data points, while +for t=1 (default), this corresponds to the beta-value defined +in (Berkes and Wiskott, 2005).

  • +
+
Returns:
+
The eta values of the slow components learned during +the training phase.
+
+
+
+ +
+ +
+ + +
+

inverse(self, + y) +

+
  +
+ +

Invert y.

+

If the node is invertible, compute the input x such that +y = execute(x).

+

By default, subclasses should overwrite _inverse to implement +their inverse function. The docstring of the inverse method +overwrites this docstring.

+
+
Overrides: + Node.inverse +
+
+
+
+ +
+ +
+ + +
+

set_rank_deficit_method(self, + rank_deficit_method) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + debug=False) +

+
  +
+ +

Stop the training phase.

+

By default, subclasses should overwrite _stop_training to implement +this functionality. The docstring of the _stop_training method +overwrites this docstring.

+
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

time_derivative(self, + x) +

+
  +
+ + Compute the linear approximation of the time derivative +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The time series data.
  • +
+
Returns: numpy.ndarray
+
Piecewise linear approximation of the time derivative.
+
+
+
+ +
+ +
+ + +
+

train(self, + x, + include_last_sample=None) +

+
  +
+ + Training method. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The time series data.
  • +
  • include_last_sample (bool) - For the include_last_sample switch have a +look at the SFANode.__init__ docstring.
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

avg

+ Mean of the input data (available after training) +
+
+
+
+ +
+ +
+

d

+ Delta values corresponding to the SFA components (generalized +eigenvalues). [See the docs of the get_eta_values method for +more information] +
+
+
+
+ +
+ +
+

sf

+ Matrix of the SFA filters (available after training) +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.SGDClassifierScikitsLearnNode-class.html b/legacy/api/mdp.nodes.SGDClassifierScikitsLearnNode-class.html new file mode 100755 index 0000000..a405625 --- /dev/null +++ b/legacy/api/mdp.nodes.SGDClassifierScikitsLearnNode-class.html @@ -0,0 +1,1546 @@ + + + + + mdp.nodes.SGDClassifierScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class SGDClassifierScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SGDClassifierScikitsLearnNode

+
+ +
+
+
+
+Linear model fitted by minimizing a regularized empirical loss with SGD.
+This node has been automatically generated by wrapping the ``scikits.learn.linear_model.stochastic_gradient.SGDClassifier`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+SGD stands for Stochastic Gradient Descent: the gradient of the loss is
+estimated each sample at a time and the model is updated along the way with
+a decreasing strength schedule (aka learning rate).
+
+The regularizer is a penalty added to the loss function that shrinks model
+parameters towards the zero vector using either the squared euclidean norm
+L2 or the absolute norm L1 or a combination of both (Elastic Net). If the
+parameter update crosses the 0.0 value because of the regularizer, the
+update is truncated to 0.0 to allow for learning sparse models and achieve
+online feature selection.
+
+This implementation works with data represented as dense numpy arrays of
+floating point values for the features.
+
+**Parameters**
+
+loss : str, 'hinge' or 'log' or 'modified_huber'
+    The loss function to be used. Defaults to 'hinge'. The hinge loss is
+    a margin loss used by standard linear SVM models. The 'log' loss is
+    the loss of logistic regression models and can be used for
+    probability estimation in binary classifiers. 'modified_huber'
+    is another smooth loss that brings tolerance to outliers.
+
+penalty : str, 'l2' or 'l1' or 'elasticnet'
+    The penalty (aka regularization term) to be used. Defaults to 'l2'
+    which is the standard regularizer for linear SVM models. 'l1' and
+    'elasticnet' migh bring sparsity to the model (feature selection)
+    not achievable with 'l2'.
+
+alpha : float
+    Constant that multiplies the regularization term. Defaults to 0.0001
+
+rho : float
+    The Elastic Net mixing parameter, with 0 < rho <= 1.
+    Defaults to 0.85.
+
+fit_intercept: bool
+    Whether the intercept should be estimated or not. If False, the
+    data is assumed to be already centered. Defaults to True.
+
+n_iter: int, optional
+    The number of passes over the training data (aka epochs).
+    Defaults to 5.
+
+shuffle: bool, optional
+    Whether or not the training data should be shuffled after each epoch.
+    Defaults to False.
+
+seed: int, optional
+    The seed of the pseudo random number generator to use when
+    shuffling the data.
+
+verbose: integer, optional
+    The verbosity level
+
+n_jobs: integer, optional
+    The number of CPUs to use to do the OVA (One Versus All, for
+    multi-class problems) computation. -1 means 'all CPUs'. Defaults
+    to 1.
+
+learning_rate : int
+    The learning rate:
+
+    - constant: eta = eta0
+    - optimal: eta = 1.0/(t+t0) [default]
+    - invscaling: eta = eta0 / pow(t, power_t)
+
+
+eta0 : double
+    The initial learning rate [default 0.01].
+
+power_t : double
+    The exponent for inverse scaling learning rate [default 0.25].
+
+
+**Attributes**
+
+`coef_` : array, shape = [1, n_features] if n_classes == 2 else [n_classes,
+n_features]
+    Weights assigned to the features.
+
+`intercept_` : array, shape = [1] if n_classes == 2 else [n_classes]
+    Constants in decision function.
+
+**Examples**
+
+>>> import numpy as np
+>>> from scikits.learn import linear_model
+>>> X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
+>>> Y = np.array([1, 1, 2, 2])
+>>> clf = linear_model.SGDClassifier()
+>>> clf.fit(X, Y)
+SGDClassifier(loss='hinge', n_jobs=1, shuffle=False, verbose=0, n_iter=5,
+       learning_rate='optimal', fit_intercept=True, penalty='l2',
+       power_t=0.5, seed=0, eta0=0.0, rho=1.0, alpha=0.0001)
+>>> print clf.predict([[-0.8, -1]])
+[ 1.]
+
+See also
+
+LinearSVC, LogisticRegression
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Linear model fitted by minimizing a regularized empirical loss with SGD.
+ + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_label(self, + x) + + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Transform the data and labels lists to array objects and reshape them.
+ + +
+ +
+   + + + + + + +
label(self, + x)
+ Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.stochastic_gradient.SGDClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit linear model with Stochastic Gradient Descent. +This node has been automatically generated by wrapping the scikits.learn.linear_model.stochastic_gradient.SGDClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ClassifierCumulator
+   + + + + + + +
_check_train_args(self, + x, + labels) + + +
+ +
+   + + + + + + +
_train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
+   + + + + + + +
train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
    Inherited from ClassifierNode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_prob(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
prob(self, + x, + *args, + **kwargs)
+ This function does classification or regression on a test vector T +given a model with probability information. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +
+
+Linear model fitted by minimizing a regularized empirical loss with SGD.
+This node has been automatically generated by wrapping the ``scikits.learn.linear_model.stochastic_gradient.SGDClassifier`` class
+from the ``sklearn`` library.  The wrapped instance can be accessed
+through the ``scikits_alg`` attribute.
+SGD stands for Stochastic Gradient Descent: the gradient of the loss is
+estimated each sample at a time and the model is updated along the way with
+a decreasing strength schedule (aka learning rate).
+
+The regularizer is a penalty added to the loss function that shrinks model
+parameters towards the zero vector using either the squared euclidean norm
+L2 or the absolute norm L1 or a combination of both (Elastic Net). If the
+parameter update crosses the 0.0 value because of the regularizer, the
+update is truncated to 0.0 to allow for learning sparse models and achieve
+online feature selection.
+
+This implementation works with data represented as dense numpy arrays of
+floating point values for the features.
+
+**Parameters**
+
+loss : str, 'hinge' or 'log' or 'modified_huber'
+    The loss function to be used. Defaults to 'hinge'. The hinge loss is
+    a margin loss used by standard linear SVM models. The 'log' loss is
+    the loss of logistic regression models and can be used for
+    probability estimation in binary classifiers. 'modified_huber'
+    is another smooth loss that brings tolerance to outliers.
+
+penalty : str, 'l2' or 'l1' or 'elasticnet'
+    The penalty (aka regularization term) to be used. Defaults to 'l2'
+    which is the standard regularizer for linear SVM models. 'l1' and
+    'elasticnet' migh bring sparsity to the model (feature selection)
+    not achievable with 'l2'.
+
+alpha : float
+    Constant that multiplies the regularization term. Defaults to 0.0001
+
+rho : float
+    The Elastic Net mixing parameter, with 0 < rho <= 1.
+    Defaults to 0.85.
+
+fit_intercept: bool
+    Whether the intercept should be estimated or not. If False, the
+    data is assumed to be already centered. Defaults to True.
+
+n_iter: int, optional
+    The number of passes over the training data (aka epochs).
+    Defaults to 5.
+
+shuffle: bool, optional
+    Whether or not the training data should be shuffled after each epoch.
+    Defaults to False.
+
+seed: int, optional
+    The seed of the pseudo random number generator to use when
+    shuffling the data.
+
+verbose: integer, optional
+    The verbosity level
+
+n_jobs: integer, optional
+    The number of CPUs to use to do the OVA (One Versus All, for
+    multi-class problems) computation. -1 means 'all CPUs'. Defaults
+    to 1.
+
+learning_rate : int
+    The learning rate:
+
+    - constant: eta = eta0
+    - optimal: eta = 1.0/(t+t0) [default]
+    - invscaling: eta = eta0 / pow(t, power_t)
+
+
+eta0 : double
+    The initial learning rate [default 0.01].
+
+power_t : double
+    The exponent for inverse scaling learning rate [default 0.25].
+
+
+**Attributes**
+
+`coef_` : array, shape = [1, n_features] if n_classes == 2 else [n_classes,
+n_features]
+    Weights assigned to the features.
+
+`intercept_` : array, shape = [1] if n_classes == 2 else [n_classes]
+    Constants in decision function.
+
+**Examples**
+
+>>> import numpy as np
+>>> from scikits.learn import linear_model
+>>> X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
+>>> Y = np.array([1, 1, 2, 2])
+>>> clf = linear_model.SGDClassifier()
+>>> clf.fit(X, Y)
+SGDClassifier(loss='hinge', n_jobs=1, shuffle=False, verbose=0, n_iter=5,
+       learning_rate='optimal', fit_intercept=True, penalty='l2',
+       power_t=0.5, seed=0, eta0=0.0, rho=1.0, alpha=0.0001)
+>>> print clf.predict([[-0.8, -1]])
+[ 1.]
+
+See also
+
+LinearSVC, LogisticRegression
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_label(self, + x) +

+
  +
+ + +
+
Overrides: + ClassifierNode._label +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ +
+Transform the data and labels lists to array objects and reshape them.
+
+
+
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

label(self, + x) +

+
  +
+ +

Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.stochastic_gradient.SGDClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array or scipy.sparse matrix of shape [n_samples, n_features]
+
Whether the numpy.array or scipy.sparse matrix is accepted dependes +on the actual implementation
+
+

Returns

+
+
array, shape = [n_samples]
+
Array containing the predicted class labels.
+
+
+
Overrides: + ClassifierNode.label +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit linear model with Stochastic Gradient Descent. +This node has been automatically generated by wrapping the scikits.learn.linear_model.stochastic_gradient.SGDClassifier class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : numpy array of shape [n_samples,n_features]
+
Training data
+
y : numpy array of shape [n_samples]
+
Target values
+
coef_init : array, shape = [n_classes,n_features]
+
The initial coeffients to warm-start the optimization.
+
intercept_init : array, shape = [n_classes]
+
The initial intercept to warm-start the optimization.
+
class_weight : dict, {class_label : weight} or "auto"
+

Weights associated with classes. If not given, all classes +are supposed to have weight one.

+

The "auto" mode uses the values of y to automatically adjust +weights inversely proportional to class frequencies.

+
+
sample_weight : array-like, shape = [n_samples], optional
+
Weights applied to individual samples (1. for unweighted).
+
+

Returns

+

self : returns an instance of self.

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.SGDRegressorScikitsLearnNode-class.html b/legacy/api/mdp.nodes.SGDRegressorScikitsLearnNode-class.html new file mode 100755 index 0000000..fd3444c --- /dev/null +++ b/legacy/api/mdp.nodes.SGDRegressorScikitsLearnNode-class.html @@ -0,0 +1,1383 @@ + + + + + mdp.nodes.SGDRegressorScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class SGDRegressorScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SGDRegressorScikitsLearnNode

+
+ +
+
+

Linear model fitted by minimizing a regularized empirical loss with SGD +This node has been automatically generated by wrapping the scikits.learn.linear_model.sparse.stochastic_gradient.SGDRegressor class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +SGD stands for Stochastic Gradient Descent: the gradient of the loss is +estimated each sample at a time and the model is updated along the way with +a decreasing strength schedule (aka learning rate).

+

The regularizer is a penalty added to the loss function that shrinks model +parameters towards the zero vector using either the squared euclidean norm +L2 or the absolute norm L1 or a combination of both (Elastic Net). If the +parameter update crosses the 0.0 value because of the regularizer, the +update is truncated to 0.0 to allow for learning sparse models and +achieve online feature selection.

+

This implementation works with data represented as dense numpy arrays +of floating point values for the features.

+

Parameters

+
+
loss : str, 'squared_loss' or 'huber'
+
The loss function to be used. Defaults to 'squared_loss' which +refers to the ordinary least squares fit. 'huber' is an epsilon +insensitive loss function for robust regression.
+
penalty : str, 'l2' or 'l1' or 'elasticnet'
+
The penalty (aka regularization term) to be used. Defaults to 'l2' +which is the standard regularizer for linear SVM models. 'l1' and +'elasticnet' migh bring sparsity to the model (feature selection) +not achievable with 'l2'.
+
alpha : float
+
Constant that multiplies the regularization term. Defaults to 0.0001
+
rho : float
+
The Elastic Net mixing parameter, with 0 < rho <= 1. +Defaults to 0.85.
+
fit_intercept: bool
+
Whether the intercept should be estimated or not. If False, the +data is assumed to be already centered. Defaults to True.
+
n_iter: int
+
The number of passes over the training data (aka epochs). +Defaults to 5.
+
shuffle: bool
+
Whether or not the training data should be shuffled after each epoch. +Defaults to False.
+
seed: int, optional
+
The seed of the pseudo random number generator to use when +shuffling the data.
+
verbose: integer, optional
+
The verbosity level
+
p : float
+
Epsilon in the epsilon insensitive huber loss function; +only if loss=='huber'.
+
learning_rate : string, optional
+

The learning rate:

+
    +
  • constant: eta = eta0
  • +
  • optimal: eta = 1.0/(t+t0)
  • +
  • invscaling: eta = eta0 / pow(t, power_t) [default]
  • +
+
+
eta0 : double, optional
+
The initial learning rate [default 0.01].
+
power_t : double, optional
+
The exponent for inverse scaling learning rate [default 0.25].
+
+

Attributes

+
+
coef_ : array, shape = [n_features]
+
Weights asigned to the features.
+
intercept_ : array, shape = [1]
+
The intercept term.
+
+

Examples

+
+>>> import numpy as np
+>>> from scikits.learn import linear_model
+>>> n_samples, n_features = 10, 5
+>>> np.random.seed(0)
+>>> y = np.random.randn(n_samples)
+>>> X = np.random.randn(n_samples, n_features)
+>>> clf = linear_model.sparse.SGDRegressor()
+>>> clf.fit(X, y)
+SGDRegressor(loss='squared_loss', power_t=0.25, shuffle=False, verbose=0,
+       n_iter=5, learning_rate='invscaling', fit_intercept=True,
+       penalty='l2', p=0.1, seed=0, eta0=0.01, rho=1.0, alpha=0.0001)
+

See also

+

RidgeRegression, ElasticNet, Lasso, SVR

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Linear model fitted by minimizing a regularized empirical loss with SGD +This node has been automatically generated by wrapping the scikits.learn.linear_model.sparse.stochastic_gradient.SGDRegressor class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +SGD stands for Stochastic Gradient Descent: the gradient of the loss is +estimated each sample at a time and the model is updated along the way with +a decreasing strength schedule (aka learning rate).
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.sparse.stochastic_gradient.SGDRegressor class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit linear model with Stochastic Gradient Descent. +This node has been automatically generated by wrapping the scikits.learn.linear_model.sparse.stochastic_gradient.SGDRegressor class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Linear model fitted by minimizing a regularized empirical loss with SGD +This node has been automatically generated by wrapping the scikits.learn.linear_model.sparse.stochastic_gradient.SGDRegressor class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +SGD stands for Stochastic Gradient Descent: the gradient of the loss is +estimated each sample at a time and the model is updated along the way with +a decreasing strength schedule (aka learning rate).

+

The regularizer is a penalty added to the loss function that shrinks model +parameters towards the zero vector using either the squared euclidean norm +L2 or the absolute norm L1 or a combination of both (Elastic Net). If the +parameter update crosses the 0.0 value because of the regularizer, the +update is truncated to 0.0 to allow for learning sparse models and +achieve online feature selection.

+

This implementation works with data represented as dense numpy arrays +of floating point values for the features.

+

Parameters

+
+
loss : str, 'squared_loss' or 'huber'
+
The loss function to be used. Defaults to 'squared_loss' which +refers to the ordinary least squares fit. 'huber' is an epsilon +insensitive loss function for robust regression.
+
penalty : str, 'l2' or 'l1' or 'elasticnet'
+
The penalty (aka regularization term) to be used. Defaults to 'l2' +which is the standard regularizer for linear SVM models. 'l1' and +'elasticnet' migh bring sparsity to the model (feature selection) +not achievable with 'l2'.
+
alpha : float
+
Constant that multiplies the regularization term. Defaults to 0.0001
+
rho : float
+
The Elastic Net mixing parameter, with 0 < rho <= 1. +Defaults to 0.85.
+
fit_intercept: bool
+
Whether the intercept should be estimated or not. If False, the +data is assumed to be already centered. Defaults to True.
+
n_iter: int
+
The number of passes over the training data (aka epochs). +Defaults to 5.
+
shuffle: bool
+
Whether or not the training data should be shuffled after each epoch. +Defaults to False.
+
seed: int, optional
+
The seed of the pseudo random number generator to use when +shuffling the data.
+
verbose: integer, optional
+
The verbosity level
+
p : float
+
Epsilon in the epsilon insensitive huber loss function; +only if loss=='huber'.
+
learning_rate : string, optional
+

The learning rate:

+
    +
  • constant: eta = eta0
  • +
  • optimal: eta = 1.0/(t+t0)
  • +
  • invscaling: eta = eta0 / pow(t, power_t) [default]
  • +
+
+
eta0 : double, optional
+
The initial learning rate [default 0.01].
+
power_t : double, optional
+
The exponent for inverse scaling learning rate [default 0.25].
+
+

Attributes

+
+
coef_ : array, shape = [n_features]
+
Weights asigned to the features.
+
intercept_ : array, shape = [1]
+
The intercept term.
+
+

Examples

+
+>>> import numpy as np
+>>> from scikits.learn import linear_model
+>>> n_samples, n_features = 10, 5
+>>> np.random.seed(0)
+>>> y = np.random.randn(n_samples)
+>>> X = np.random.randn(n_samples, n_features)
+>>> clf = linear_model.sparse.SGDRegressor()
+>>> clf.fit(X, y)
+SGDRegressor(loss='squared_loss', power_t=0.25, shuffle=False, verbose=0,
+       n_iter=5, learning_rate='invscaling', fit_intercept=True,
+       penalty='l2', p=0.1, seed=0, eta0=0.01, rho=1.0, alpha=0.0001)
+

See also

+

RidgeRegression, ElasticNet, Lasso, SVR

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Predict using the linear model +This node has been automatically generated by wrapping the scikits.learn.linear_model.sparse.stochastic_gradient.SGDRegressor class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array or scipy.sparse matrix of shape [n_samples, n_features]
+
Whether the numpy.array or scipy.sparse matrix is accepted dependes +on the actual implementation
+
+

Returns

+
+
array, shape = [n_samples]
+
Array containing the predicted class labels.
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit linear model with Stochastic Gradient Descent. +This node has been automatically generated by wrapping the scikits.learn.linear_model.sparse.stochastic_gradient.SGDRegressor class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : numpy array of shape [n_samples,n_features]
+
Training data
+
y : numpy array of shape [n_samples]
+
Target values
+
coef_init : array, shape = [n_features]
+
The initial coeffients to warm-start the optimization.
+
intercept_init : array, shape = [1]
+
The initial intercept to warm-start the optimization.
+
sample_weight : array-like, shape = [n_samples], optional
+
Weights applied to individual samples (1. for unweighted).
+
+

Returns

+

self : returns an instance of self.

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.SVCScikitsLearnNode-class.html b/legacy/api/mdp.nodes.SVCScikitsLearnNode-class.html new file mode 100755 index 0000000..b44ec68 --- /dev/null +++ b/legacy/api/mdp.nodes.SVCScikitsLearnNode-class.html @@ -0,0 +1,1461 @@ + + + + + mdp.nodes.SVCScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class SVCScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SVCScikitsLearnNode

+
+ +
+
+

C-Support Vector Classification. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
C : float, optional (default=1.0)
+
penalty parameter C of the error term.
+
kernel : string, optional
+
Specifies the kernel type to be used in the algorithm. +one of 'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'. +If none is given 'rbf' will be used.
+
degree : int, optional
+
degree of kernel function +is significant only in poly, rbf, sigmoid
+
gamma : float, optional
+
kernel coefficient for rbf and poly, by default 1/n_features +will be taken.
+
coef0 : float, optional
+
independent term in kernel function. It is only significant +in poly/sigmoid.
+
probability: boolean, optional (False by default)
+
enable probability estimates. This must be enabled prior +to calling prob_predict.
+
shrinking: boolean, optional
+
wether to use the shrinking heuristic.
+
tol: float, optional
+
precision for stopping criteria
+
cache_size: float, optional
+
specify the size of the cache (in MB)
+
+

Attributes

+
+
support_ : array-like, shape = [n_SV]
+
Index of support vectors.
+
support_vectors_ : array-like, shape = [n_SV, n_features]
+
Support vectors.
+
n_support_ : array-like, dtype=int32, shape = [n_class]
+
number of support vector for each class.
+
dual_coef_ : array, shape = [n_class-1, n_SV]
+
Coefficients of the support vector in the decision function.
+
coef_ : array, shape = [n_class-1, n_features]
+
Weights asigned to the features (coefficients in the primal +problem). This is only available in the case of linear kernel.
+
intercept_ : array, shape = [n_class * (n_class-1) / 2]
+
Constants in decision function.
+
+

Examples

+
+>>> import numpy as np
+>>> X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
+>>> y = np.array([1, 1, 2, 2])
+>>> from scikits.learn.svm import SVC
+>>> clf = SVC()
+>>> clf.fit(X, y)
+SVC(kernel='rbf', C=1.0, probability=False, degree=3, coef0=0.0, tol=0.001,
+  cache_size=100.0, shrinking=True, gamma=0.25)
+>>> print clf.predict([[-0.8, -1]])
+[ 1.]
+

See also

+

SVR, LinearSVC

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ C-Support Vector Classification. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_label(self, + x) + + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Transform the data and labels lists to array objects and reshape them.
+ + +
+ +
+   + + + + + + +
label(self, + x)
+ This function does classification or regression on an array of +test vectors X. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +For a classification model, the predicted class for each +sample in X is returned. For a regression model, the function +value of X calculated is returned.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the SVM model according to the given training data and +parameters. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ClassifierCumulator
+   + + + + + + +
_check_train_args(self, + x, + labels) + + +
+ +
+   + + + + + + +
_train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
+   + + + + + + +
train(self, + x, + labels)
+ Cumulate all input data in a one dimensional list.
+ + +
+ +
    Inherited from ClassifierNode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_prob(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
prob(self, + x, + *args, + **kwargs)
+ This function does classification or regression on a test vector T +given a model with probability information. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

C-Support Vector Classification. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
C : float, optional (default=1.0)
+
penalty parameter C of the error term.
+
kernel : string, optional
+
Specifies the kernel type to be used in the algorithm. +one of 'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'. +If none is given 'rbf' will be used.
+
degree : int, optional
+
degree of kernel function +is significant only in poly, rbf, sigmoid
+
gamma : float, optional
+
kernel coefficient for rbf and poly, by default 1/n_features +will be taken.
+
coef0 : float, optional
+
independent term in kernel function. It is only significant +in poly/sigmoid.
+
probability: boolean, optional (False by default)
+
enable probability estimates. This must be enabled prior +to calling prob_predict.
+
shrinking: boolean, optional
+
wether to use the shrinking heuristic.
+
tol: float, optional
+
precision for stopping criteria
+
cache_size: float, optional
+
specify the size of the cache (in MB)
+
+

Attributes

+
+
support_ : array-like, shape = [n_SV]
+
Index of support vectors.
+
support_vectors_ : array-like, shape = [n_SV, n_features]
+
Support vectors.
+
n_support_ : array-like, dtype=int32, shape = [n_class]
+
number of support vector for each class.
+
dual_coef_ : array, shape = [n_class-1, n_SV]
+
Coefficients of the support vector in the decision function.
+
coef_ : array, shape = [n_class-1, n_features]
+
Weights asigned to the features (coefficients in the primal +problem). This is only available in the case of linear kernel.
+
intercept_ : array, shape = [n_class * (n_class-1) / 2]
+
Constants in decision function.
+
+

Examples

+
+>>> import numpy as np
+>>> X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
+>>> y = np.array([1, 1, 2, 2])
+>>> from scikits.learn.svm import SVC
+>>> clf = SVC()
+>>> clf.fit(X, y)
+SVC(kernel='rbf', C=1.0, probability=False, degree=3, coef0=0.0, tol=0.001,
+  cache_size=100.0, shrinking=True, gamma=0.25)
+>>> print clf.predict([[-0.8, -1]])
+[ 1.]
+

See also

+

SVR, LinearSVC

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_label(self, + x) +

+
  +
+ + +
+
Overrides: + ClassifierNode._label +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ +
+Transform the data and labels lists to array objects and reshape them.
+
+
+
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

label(self, + x) +

+
  +
+ +

This function does classification or regression on an array of +test vectors X. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +For a classification model, the predicted class for each +sample in X is returned. For a regression model, the function +value of X calculated is returned.

+

For an one-class model, +1 or -1 is returned.

+

Parameters

+

X : array-like, shape = [n_samples, n_features]

+

Returns

+

C : array, shape = [n_samples]

+
+
Overrides: + ClassifierNode.label +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the SVM model according to the given training data and +parameters. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
Training vectors, where n_samples is the number of samples +and n_features is the number of features.
+
y : array-like, shape = [n_samples]
+
Target values (integers in classification, real numbers in +regression)
+
class_weight : {dict, 'auto'}, optional
+
Set the parameter C of class i to class_weight[i]*C for +SVC. If not given, all classes are supposed to have +weight one. The 'auto' mode uses the values of y to +automatically adjust weights inversely proportional to +class frequencies.
+
sample_weight : array-like, shape = [n_samples], optional
+
Weights applied to individual samples (1. for unweighted).
+
+

Returns

+
+
self : object
+
Returns self.
+
+

Notes

+

If X and y are not C-ordered and contiguous arrays, they are +copied.

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.SVRScikitsLearnNode-class.html b/legacy/api/mdp.nodes.SVRScikitsLearnNode-class.html new file mode 100755 index 0000000..dfbe443 --- /dev/null +++ b/legacy/api/mdp.nodes.SVRScikitsLearnNode-class.html @@ -0,0 +1,1348 @@ + + + + + mdp.nodes.SVRScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class SVRScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SVRScikitsLearnNode

+
+ +
+
+

epsilon-Support Vector Regression. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVR class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The free parameters in the model are C and epsilon.

+

Parameters

+
+
nu : float, optional
+
An upper bound on the fraction of training errors and a lower bound of +the fraction of support vectors. Should be in the interval (0, 1]. By +default 0.5 will be taken. Only available if impl='nu_svc'
+
kernel : string, optional
+
Specifies the kernel type to be used in the algorithm. +one of 'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'. +If none is given 'rbf' will be used.
+
epsilon : float
+
epsilon in the epsilon-SVR model.
+
degree : int, optional
+
degree of kernel function +is significant only in poly, rbf, sigmoid
+
gamma : float, optional
+
kernel coefficient for rbf and poly, by default 1/n_features +will be taken.
+
C : float, optional (default=1.0)
+
penalty parameter C of the error term.
+
probability: boolean, optional (False by default)
+
enable probability estimates. This must be enabled prior +to calling prob_predict.
+
tol: float, optional
+
precision for stopping criteria
+
coef0 : float, optional
+
independent term in kernel function. It is only significant +in poly/sigmoid.
+
cache_size: float, optional
+
specify the size of the cache (in MB)
+
shrinking: boolean, optional
+
wether to use the shrinking heuristic.
+
+

Attributes

+
+
support_ : array-like, shape = [n_SV]
+
Index of support vectors.
+
support_vectors_ : array-like, shape = [nSV, n_features]
+
Support vectors.
+
dual_coef_ : array, shape = [n_classes-1, n_SV]
+
Coefficients of the support vector in the decision function.
+
coef_ : array, shape = [n_classes-1, n_features]
+
Weights asigned to the features (coefficients in the primal +problem). This is only available in the case of linear kernel.
+
intercept_ : array, shape = [n_class * (n_class-1) / 2]
+
Constants in decision function.
+
+

Examples

+
+>>> from scikits.learn.svm import SVR
+>>> import numpy as np
+>>> n_samples, n_features = 10, 5
+>>> np.random.seed(0)
+>>> y = np.random.randn(n_samples)
+>>> X = np.random.randn(n_samples, n_features)
+>>> clf = SVR(C=1.0, epsilon=0.2)
+>>> clf.fit(X, y)
+SVR(kernel='rbf', C=1.0, probability=False, degree=3, epsilon=0.2,
+  shrinking=True, tol=0.001, cache_size=100.0, coef0=0.0, nu=0.5,
+  gamma=0.1)
+

See also

+

NuSVR

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ epsilon-Support Vector Regression. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVR class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The free parameters in the model are C and epsilon.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ This function does classification or regression on an array of +test vectors X. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVR class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +For a classification model, the predicted class for each +sample in X is returned. For a regression model, the function +value of X calculated is returned.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the SVM model according to the given training data and parameters. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVR class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

epsilon-Support Vector Regression. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVR class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +The free parameters in the model are C and epsilon.

+

Parameters

+
+
nu : float, optional
+
An upper bound on the fraction of training errors and a lower bound of +the fraction of support vectors. Should be in the interval (0, 1]. By +default 0.5 will be taken. Only available if impl='nu_svc'
+
kernel : string, optional
+
Specifies the kernel type to be used in the algorithm. +one of 'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'. +If none is given 'rbf' will be used.
+
epsilon : float
+
epsilon in the epsilon-SVR model.
+
degree : int, optional
+
degree of kernel function +is significant only in poly, rbf, sigmoid
+
gamma : float, optional
+
kernel coefficient for rbf and poly, by default 1/n_features +will be taken.
+
C : float, optional (default=1.0)
+
penalty parameter C of the error term.
+
probability: boolean, optional (False by default)
+
enable probability estimates. This must be enabled prior +to calling prob_predict.
+
tol: float, optional
+
precision for stopping criteria
+
coef0 : float, optional
+
independent term in kernel function. It is only significant +in poly/sigmoid.
+
cache_size: float, optional
+
specify the size of the cache (in MB)
+
shrinking: boolean, optional
+
wether to use the shrinking heuristic.
+
+

Attributes

+
+
support_ : array-like, shape = [n_SV]
+
Index of support vectors.
+
support_vectors_ : array-like, shape = [nSV, n_features]
+
Support vectors.
+
dual_coef_ : array, shape = [n_classes-1, n_SV]
+
Coefficients of the support vector in the decision function.
+
coef_ : array, shape = [n_classes-1, n_features]
+
Weights asigned to the features (coefficients in the primal +problem). This is only available in the case of linear kernel.
+
intercept_ : array, shape = [n_class * (n_class-1) / 2]
+
Constants in decision function.
+
+

Examples

+
+>>> from scikits.learn.svm import SVR
+>>> import numpy as np
+>>> n_samples, n_features = 10, 5
+>>> np.random.seed(0)
+>>> y = np.random.randn(n_samples)
+>>> X = np.random.randn(n_samples, n_features)
+>>> clf = SVR(C=1.0, epsilon=0.2)
+>>> clf.fit(X, y)
+SVR(kernel='rbf', C=1.0, probability=False, degree=3, epsilon=0.2,
+  shrinking=True, tol=0.001, cache_size=100.0, coef0=0.0, nu=0.5,
+  gamma=0.1)
+

See also

+

NuSVR

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

This function does classification or regression on an array of +test vectors X. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVR class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +For a classification model, the predicted class for each +sample in X is returned. For a regression model, the function +value of X calculated is returned.

+

For an one-class model, +1 or -1 is returned.

+

Parameters

+

X : array-like, shape = [n_samples, n_features]

+

Returns

+

C : array, shape = [n_samples]

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the SVM model according to the given training data and parameters. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVR class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
Training vector, where n_samples is the number of samples and +n_features is the number of features.
+
y : array, shape = [n_samples]
+
Target values. Array of floating-point numbers.
+
+

Returns

+
+
self : object
+
Returns self.
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.ScalerScikitsLearnNode-class.html b/legacy/api/mdp.nodes.ScalerScikitsLearnNode-class.html new file mode 100755 index 0000000..fb134ff --- /dev/null +++ b/legacy/api/mdp.nodes.ScalerScikitsLearnNode-class.html @@ -0,0 +1,1199 @@ + + + + + mdp.nodes.ScalerScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class ScalerScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ScalerScikitsLearnNode

+
+ +
+
+Object to standardize a dataset +This node has been automatically generated by wrapping the scikits.learn.preprocessing.Scaler class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +It centers the dataset and optionaly scales to fix the variance to 1 for +each feature + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Object to standardize a dataset +This node has been automatically generated by wrapping the scikits.learn.preprocessing.Scaler class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +It centers the dataset and optionaly scales to fix the variance to 1 for +each feature
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ + Object to standardize a dataset +This node has been automatically generated by wrapping the scikits.learn.preprocessing.Scaler class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +It centers the dataset and optionaly scales to fix the variance to 1 for +each feature +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node.stop_training +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.SelectFdrScikitsLearnNode-class.html b/legacy/api/mdp.nodes.SelectFdrScikitsLearnNode-class.html new file mode 100755 index 0000000..e6c77fa --- /dev/null +++ b/legacy/api/mdp.nodes.SelectFdrScikitsLearnNode-class.html @@ -0,0 +1,1204 @@ + + + + + mdp.nodes.SelectFdrScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class SelectFdrScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SelectFdrScikitsLearnNode

+
+ +
+
+Filter : Select the p-values corresponding to an estimated false +This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFdr class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Initialize the univariate feature selection. +This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFdr class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFdr class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFdr class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Initialize the univariate feature selection. +This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFdr class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
score_func: callable
+

function taking two arrays X and y, and returning 2 arrays:

+
    +
  • both scores and pvalues
  • +
+
+
alpha: float, optional
+
the highest uncorrected p-value for features to keep
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ + This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFdr class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ + This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFdr class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.SelectFprScikitsLearnNode-class.html b/legacy/api/mdp.nodes.SelectFprScikitsLearnNode-class.html new file mode 100755 index 0000000..7fc30d2 --- /dev/null +++ b/legacy/api/mdp.nodes.SelectFprScikitsLearnNode-class.html @@ -0,0 +1,1203 @@ + + + + + mdp.nodes.SelectFprScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class SelectFprScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SelectFprScikitsLearnNode

+
+ +
+
+This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFpr class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Initialize the univariate feature selection. +This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFpr class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFpr class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFpr class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Initialize the univariate feature selection. +This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFpr class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
score_func: callable
+

function taking two arrays X and y, and returning 2 arrays:

+
    +
  • both scores and pvalues
  • +
+
+
alpha: float, optional
+
the highest p-value for features to keep
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ + This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFpr class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ + This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFpr class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.SelectFweScikitsLearnNode-class.html b/legacy/api/mdp.nodes.SelectFweScikitsLearnNode-class.html new file mode 100755 index 0000000..fc8ba97 --- /dev/null +++ b/legacy/api/mdp.nodes.SelectFweScikitsLearnNode-class.html @@ -0,0 +1,1203 @@ + + + + + mdp.nodes.SelectFweScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class SelectFweScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SelectFweScikitsLearnNode

+
+ +
+
+This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFwe class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Initialize the univariate feature selection. +This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFwe class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFwe class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFwe class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Initialize the univariate feature selection. +This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFwe class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
score_func: callable
+

function taking two arrays X and y, and returning 2 arrays:

+
    +
  • both scores and pvalues
  • +
+
+
alpha: float, optional
+
the highest uncorrected p-value for features to keep
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ + This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFwe class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ + This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectFwe class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.SelectKBestScikitsLearnNode-class.html b/legacy/api/mdp.nodes.SelectKBestScikitsLearnNode-class.html new file mode 100755 index 0000000..9571879 --- /dev/null +++ b/legacy/api/mdp.nodes.SelectKBestScikitsLearnNode-class.html @@ -0,0 +1,1203 @@ + + + + + mdp.nodes.SelectKBestScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class SelectKBestScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SelectKBestScikitsLearnNode

+
+ +
+
+This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectKBest class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Initialize the univariate feature selection. +This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectKBest class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectKBest class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectKBest class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Initialize the univariate feature selection. +This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectKBest class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
score_func: callable
+

function taking two arrays X and y, and returning 2 arrays:

+
    +
  • both scores and pvalues
  • +
+
+
percentile: int, optional
+
percent of features to keep
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ + This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectKBest class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ + This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectKBest class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.SelectPercentileScikitsLearnNode-class.html b/legacy/api/mdp.nodes.SelectPercentileScikitsLearnNode-class.html new file mode 100755 index 0000000..da44fd2 --- /dev/null +++ b/legacy/api/mdp.nodes.SelectPercentileScikitsLearnNode-class.html @@ -0,0 +1,1203 @@ + + + + + mdp.nodes.SelectPercentileScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class SelectPercentileScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SelectPercentileScikitsLearnNode

+
+ +
+
+This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectPercentile class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Initialize the univariate feature selection. +This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectPercentile class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectPercentile class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectPercentile class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Initialize the univariate feature selection. +This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectPercentile class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
score_func: callable
+

function taking two arrays X and y, and returning 2 arrays:

+
    +
  • both scores and pvalues
  • +
+
+
percentile: int, optional
+
percent of features to keep
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ + This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectPercentile class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ + This node has been automatically generated by wrapping the scikits.learn.feature_selection.univariate_selection.SelectPercentile class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.SignumClassifier-class.html b/legacy/api/mdp.nodes.SignumClassifier-class.html new file mode 100755 index 0000000..c40ab18 --- /dev/null +++ b/legacy/api/mdp.nodes.SignumClassifier-class.html @@ -0,0 +1,1188 @@ + + + + + mdp.nodes.SignumClassifier + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class SignumClassifier + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SignumClassifier

+
+ +
+
+This classifier node classifies as 1 if the sum of the data points +is positive and as -1 if the data point is negative. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+ list + + + + + + +
_get_supported_dtypes(self)
+ Returns: +The list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_label(self, + x) + + +
+ +
+   + + + + + + +
label(self, + x)
+ Returns an array with best class labels.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ClassifierNode
+   + + + + + + +
__init__(self, + execute_method=None, + input_dim=None, + output_dim=None, + dtype=None)
+ Initialize classifier.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_prob(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
prob(self, + x, + *args, + **kwargs)
+ This function does classification or regression on a test vector T +given a model with probability information. +This node has been automatically generated by wrapping the scikits.learn.svm.classes.SVC class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ +

Return the list of dtypes supported by this node.

+

The types can be specified in any format allowed by numpy.dtype.

+
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_label(self, + x) +

+
  +
+ + +
+
Overrides: + ClassifierNode._label +
+
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Overrides: + Node.is_trainable +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

label(self, + x) +

+
  +
+ +

Returns an array with best class labels.

+

By default, subclasses should overwrite _label to implement +their label. The docstring of the '_label' method +overwrites this docstring.

+
+
Overrides: + ClassifierNode.label +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.SimpleMarkovClassifier-class.html b/legacy/api/mdp.nodes.SimpleMarkovClassifier-class.html new file mode 100755 index 0000000..c1359d4 --- /dev/null +++ b/legacy/api/mdp.nodes.SimpleMarkovClassifier-class.html @@ -0,0 +1,1365 @@ + + + + + mdp.nodes.SimpleMarkovClassifier + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class SimpleMarkovClassifier + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SimpleMarkovClassifier

+
+ +
+
+

A simple version of a Markov classifier.

+

It can be trained on a vector of tuples the label being the next element +in the testing data.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + execute_method=None, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'SimpleMarkovClassifier'
+ + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + labels) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Returns: +The list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_learn(self, + feature, + label) + + +
+ +
+   + + + + + + +
_prob(self, + features) + + +
+ +
+   + + + + + + +
_prob_one(self, + feature) + + +
+ +
+   + + + + + + +
_train(self, + x, + labels)
+ Update the internal structures according to the input data 'x'.
+ + +
+ +
+   + + + + + + +
prob(self, + features)
+ Returns the probability for each datapoint and label +(e.g., [{1:0.1, 2:0.0, 3:0.9}, {1:1.0, 2:0.0, 3:0.0}, ...])
+ + +
+ +
+   + + + + + + +
train(self, + x, + labels)
+ Update the internal structures according to the input data 'x'.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ClassifierNode
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_label(self, + x, + *args, + **kargs) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
label(self, + x, + *args, + **kwargs)
+ Returns an array with best class labels.
+ + +
+ +
+   + + + + + + +
rank(self, + x, + threshold=None)
+ Returns ordered list with all labels ordered according to prob(x) +(e.g., [[3 1 2], [2 1 3], ...]).
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + execute_method=None, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'SimpleMarkovClassifier' +
+
Parameters:
+
    +
  • execute_method (str) - Set to string value 'label', 'rank', or 'prob' to +force the corresponding classification method being used instead +of the standard identity execution (which is used when +execute_method has the default value None). This can be used when +the node is last in a flow, the return value from Flow.execute +will then consist of the classification results.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_check_train_args(self, + x, + labels) +

+
  +
+ + +
+
Overrides: + Node._check_train_args +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ +

Return the list of dtypes supported by this node.

+

The types can be specified in any format allowed by numpy.dtype.

+
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_learn(self, + feature, + label) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_prob(self, + features) +

+
  +
+ + +
+
Overrides: + ClassifierNode._prob +
+
+
+
+ +
+ +
+ + +
+

_prob_one(self, + feature) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x, + labels) +

+
  +
+ + Update the internal structures according to the input data 'x'. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - A matrix having different variables on different columns +and observations on the rows.
  • +
  • labels - Can be a list, tuple or array of labels (one for each data point) +or a single label, in which case all input data is assigned to +the same class.
  • +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

prob(self, + features) +

+
  +
+ +

Returns the probability for each datapoint and label +(e.g., [{1:0.1, 2:0.0, 3:0.9}, {1:1.0, 2:0.0, 3:0.0}, ...])

+

By default, subclasses should overwrite _prob to implement +their prob. The docstring of the '_prob' method +overwrites this docstring.

+
+
Overrides: + ClassifierNode.prob +
+
+
+
+ +
+ +
+ + +
+

train(self, + x, + labels) +

+
  +
+ + Update the internal structures according to the input data 'x'. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - A matrix having different variables on different columns +and observations on the rows.
  • +
  • labels - Can be a list, tuple or array of labels (one for each data point) +or a single label, in which case all input data is assigned to +the same class.
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.SparseBaseLibLinearScikitsLearnNode-class.html b/legacy/api/mdp.nodes.SparseBaseLibLinearScikitsLearnNode-class.html new file mode 100755 index 0000000..1862f43 --- /dev/null +++ b/legacy/api/mdp.nodes.SparseBaseLibLinearScikitsLearnNode-class.html @@ -0,0 +1,1214 @@ + + + + + mdp.nodes.SparseBaseLibLinearScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class SparseBaseLibLinearScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SparseBaseLibLinearScikitsLearnNode

+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Predict target values of X according to the fitted model. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.base.SparseBaseLibLinear class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the model using X, y as training data. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.base.SparseBaseLibLinear class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute.

+

Every subclass must take care of up- or down-casting the internal +structures to match this argument (use _refcast private +method when possible).

+
+
Overrides: + object.__init__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Predict target values of X according to the fitted model. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.base.SparseBaseLibLinear class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+

X : sparse matrix, shape = [n_samples, n_features]

+

Returns

+

C : array, shape = [n_samples]

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the model using X, y as training data. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.base.SparseBaseLibLinear class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : sparse matrix, shape = [n_samples, n_features]
+
Training vector, where n_samples in the number of samples and +n_features is the number of features.
+
y : array, shape = [n_samples]
+
Target vector relative to X
+
+

Returns

+
+
self : object
+
Returns an instance of self.
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.SparseBaseLibSVMScikitsLearnNode-class.html b/legacy/api/mdp.nodes.SparseBaseLibSVMScikitsLearnNode-class.html new file mode 100755 index 0000000..7d57946 --- /dev/null +++ b/legacy/api/mdp.nodes.SparseBaseLibSVMScikitsLearnNode-class.html @@ -0,0 +1,1237 @@ + + + + + mdp.nodes.SparseBaseLibSVMScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class SparseBaseLibSVMScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SparseBaseLibSVMScikitsLearnNode

+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ This function does classification or regression on an array of +test vectors T. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.base.SparseBaseLibSVM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +For a classification model, the predicted class for each +sample in T is returned. For a regression model, the function +value of T calculated is returned.
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the SVM model according to the given training data and +parameters. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.base.SparseBaseLibSVM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute.

+

Every subclass must take care of up- or down-casting the internal +structures to match this argument (use _refcast private +method when possible).

+
+
Overrides: + object.__init__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

This function does classification or regression on an array of +test vectors T. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.base.SparseBaseLibSVM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +For a classification model, the predicted class for each +sample in T is returned. For a regression model, the function +value of T calculated is returned.

+

For an one-class model, +1 or -1 is returned.

+

Parameters

+

T : scipy.sparse.csr, shape = [n_samples, n_features]

+

Returns

+

C : array, shape = [n_samples]

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indicating whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the SVM model according to the given training data and +parameters. +This node has been automatically generated by wrapping the scikits.learn.svm.sparse.base.SparseBaseLibSVM class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : sparse matrix, shape = [n_samples, n_features]
+
Training vectors, where n_samples is the number of samples and +n_features is the number of features.
+
y : array-like, shape = [n_samples]
+
Target values (integers in classification, real numbers in +regression)
+
class_weight : {dict, 'auto'}, optional
+

Weights associated with classes in the form +{class_label : weight}. If not given, all classes are +supposed to have weight one.

+

The 'auto' mode uses the values of y to automatically adjust +weights inversely proportional to class frequencies.

+
+
sample_weight : array-like, shape = [n_samples], optional
+
Weights applied to individual samples (1. for unweighted).
+
+

Returns

+
+
self : object
+
Returns an instance of self.
+
+

Notes

+

For maximum effiency, use a sparse matrix in csr format +(scipy.sparse.csr_matrix)

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.TDSEPNode-class.html b/legacy/api/mdp.nodes.TDSEPNode-class.html new file mode 100755 index 0000000..cd880ad --- /dev/null +++ b/legacy/api/mdp.nodes.TDSEPNode-class.html @@ -0,0 +1,1485 @@ + + + + + mdp.nodes.TDSEPNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class TDSEPNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class TDSEPNode

+
+ +
+
+

Perform Independent Component Analysis using the TDSEP algorithm.

+Note: That TDSEP, as implemented in this Node, is an online algorithm, i.e. it is suited to be trained on huge data sets, provided that the training is done sending small chunks of data for each time.
+

Reference

+

Ziehe, Andreas and Muller, Klaus-Robert (1998). +TDSEP an efficient algorithm for blind separation using time structure. +in Niklasson, L, Boden, M, and Ziemke, T (Editors), Proc. 8th Int. Conf. +Artificial Neural Networks (ICANN 1998).

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + lags=1, + limit=1e-05, + max_iter=10000, + verbose=False, + whitened=False, + white_comp=None, + white_parm=None, + input_dim=None, + dtype=None)
+ Initializes an object of type 'TDSEPNode'.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + covs=None)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
stop_training(self, + covs=None)
+ Stop the training phase.
+ + +
+ +
+

Inherited from unreachable.ProjectMatrixMixin: + get_projmatrix, + get_recmatrix +

+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ISFANode
+   + + + + + + +
_adjust_ica_sfa_coeff(self)
+ Adjust SFA/ICA ratio. The ICA and SFA terms are scaled +differently because SFA accounts for the diagonal terms +whereas ICA accounts for the off-diagonal terms.
+ + +
+ +
+   + + + + + + +
_do_sweep(self, + covs, + Q, + prev_contrast)
+ Perform a single sweep.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_fix_covs(self, + covs=None) + + +
+ +
+   + + + + + + +
_fmt_prog_info(self, + sweep, + pert, + contrast, + sfa=None, + ica=None) + + +
+ +
+   + + + + + + +
_get_contrast(self, + covs, + bica_bsfa=None) + + +
+ +
+   + + + + + + +
_get_eye(self) + + +
+ +
+   + + + + + + +
_get_rnd_permutation(self, + dim) + + +
+ +
+   + + + + + + +
_get_rnd_rotation(self, + dim) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_givens_angle(self, + i, + j, + covs, + bica_bsfa=None, + complete=0) + + +
+ +
+   + + + + + + +
_givens_angle_case1(self, + m, + n, + covs, + bica_bsfa, + complete=0) + + +
+ +
+   + + + + + + +
_givens_angle_case2(self, + m, + n, + covs, + bica_bsfa, + complete=0) + + +
+ +
+   + + + + + + +
_inverse(self, + y) + + +
+ +
+   + + + + + + +
_optimize(self)
+ Optimizes the contrast function. +:return: The optimal rotation matrix.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + dtype) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
inverse(self, + y)
+ Invert y.
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ Update the internal structures according to the input data x.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + convergence
+ The value of the convergence threshold. +
+   + + filters
+ The ICA filters matrix (this is the transposed of the +projection matrix after whitening). +
+   + + white
+ The whitening node used for preprocessing. +
    Inherited from ISFANode
+   + + RP
+ The global rotation-permutation matrix. This is the filter +applied on input_data to get output_data +
+   + + RPC
+ The complete global rotation-permutation matrix. This +is a matrix of dimension input_dim x input_dim (the 'outer space' +is retained) +
+   + + covs
+ A mdp.utils.MultipleCovarianceMatrices instance +input_data. After convergence the uppermost +output_dim x output_dim submatrices should be almost +diagonal. +self.covs[n-1] is the covariance matrix relative to the +n-th time-lag +
+   + + final_contrast
+ Like the above but after convergence. +
+   + + initial_contrast
+ A dictionary with the starting contrast and the +SFA and ICA parts of it. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + lags=1, + limit=1e-05, + max_iter=10000, + verbose=False, + whitened=False, + white_comp=None, + white_parm=None, + input_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ +

Initializes an object of type 'TDSEPNode'.

+Note: Time-lag == 0 (instantaneous correlation) is always implicitly used. +
+
Parameters:
+
    +
  • lags (list or int) - List of time-lags to generate the time-delayed covariance +matrices. If lags is an integer, time-lags 1,2,...,'lags' +are used.
  • +
  • limit (float) - Convergence threshold.
  • +
  • max_iter (int) - If the algorithms does not achieve convergence within +max_iter iterations raise an Exception. +Should be larger than 100.
  • +
  • verbose (bool) - Idicates whether information is to be reported about +the operation.
  • +
  • whitened (bool) - Set whitened is True if input data are already whitened. +Otherwise the node will whiten the data itself.
  • +
  • white_comp (int) - If whitened is False, you can set 'white_comp' to the +number of whitened components to keep during the +calculation (i.e., the input dimensions are reduced to +white_comp by keeping the components of largest variance).
  • +
  • white_parm (dict) - A dictionary with additional parameters for whitening. +It is passed directly to the WhiteningNode constructor. For example:

    +
    +>>> white_parm = { 'svd' : True }
    +
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + covs=None) +

+
  +
+ +

Stop the training phase.

+Note: If the node is used on large datasets it may be wise to first learn the covariance matrices, and then tune the parameters until a suitable parameter set has been found (learning the covariance matrices is the slowest part in this case). This could be done for example in the following way (assuming the data is already white):: >>> covs=[mdp.utils.DelayCovarianceMatrix(dt, dtype=dtype) ... for dt in lags] >>> for block in data: ... [covs[i].update(block) for i in range(len(lags))] You can then initialize the ISFANode with the desired parameters, do a fake training with some random data to set the internal node structure and then call stop_training with the stored covariance matrices. For example:: >>> isfa = ISFANode(lags, .....) >>> x = mdp.numx_rand.random((100, input_dim)).astype(dtype) >>> isfa.train(x) >>> isfa.stop_training(covs=covs) This trick has been used in the paper to apply ISFA to surrogate matrices, i.e. covariance matrices that were not learnt on a real dataset. +
+
Parameters:
+
    +
  • covs - The covariance matrices.
  • +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + covs=None) +

+
  +
+ +

Stop the training phase.

+Note: If the node is used on large datasets it may be wise to first learn the covariance matrices, and then tune the parameters until a suitable parameter set has been found (learning the covariance matrices is the slowest part in this case). This could be done for example in the following way (assuming the data is already white):: >>> covs=[mdp.utils.DelayCovarianceMatrix(dt, dtype=dtype) ... for dt in lags] >>> for block in data: ... [covs[i].update(block) for i in range(len(lags))] You can then initialize the ISFANode with the desired parameters, do a fake training with some random data to set the internal node structure and then call stop_training with the stored covariance matrices. For example:: >>> isfa = ISFANode(lags, .....) >>> x = mdp.numx_rand.random((100, input_dim)).astype(dtype) >>> isfa.train(x) >>> isfa.stop_training(covs=covs) This trick has been used in the paper to apply ISFA to surrogate matrices, i.e. covariance matrices that were not learnt on a real dataset. +
+
Parameters:
+
    +
  • covs - The covariance matrices.
  • +
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

convergence

+ The value of the convergence threshold. +
+
+
+
+ +
+ +
+

filters

+ The ICA filters matrix (this is the transposed of the +projection matrix after whitening). +
+
+
+
+ +
+ +
+

white

+ The whitening node used for preprocessing. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.TfidfTransformerScikitsLearnNode-class.html b/legacy/api/mdp.nodes.TfidfTransformerScikitsLearnNode-class.html new file mode 100755 index 0000000..59a828a --- /dev/null +++ b/legacy/api/mdp.nodes.TfidfTransformerScikitsLearnNode-class.html @@ -0,0 +1,1246 @@ + + + + + mdp.nodes.TfidfTransformerScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class TfidfTransformerScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class TfidfTransformerScikitsLearnNode

+
+ +
+
+

Transform a count matrix to a TF or TF-IDF representation +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.TfidfTransformer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +TF means term-frequency while TF-IDF means term-frequency times inverse +document-frequency:

+
+http://en.wikipedia.org/wiki/TF-IDF
+

The goal of using TF-IDF instead of the raw frequencies of occurrence of a +token in a given document is to scale down the impact of tokens that occur +very frequently in a given corpus and that are hence empirically less +informative than feature that occur in a small fraction of the training +corpus.

+

TF-IDF can be seen as a smooth alternative to the stop words filtering.

+

Parameters

+
+
use_tf: boolean
+
enable term-frequency normalization
+
use_idf: boolean
+
enable inverse-document-frequency reweighting
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Transform a count matrix to a TF or TF-IDF representation +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.TfidfTransformer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +TF means term-frequency while TF-IDF means term-frequency times inverse +document-frequency:
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Transform a count matrix to a TF or TF-IDF representation +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.TfidfTransformer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Learn the IDF vector (global term weights) +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.TfidfTransformer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Transform a count matrix to a TF or TF-IDF representation +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.TfidfTransformer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +TF means term-frequency while TF-IDF means term-frequency times inverse +document-frequency:

+
+http://en.wikipedia.org/wiki/TF-IDF
+

The goal of using TF-IDF instead of the raw frequencies of occurrence of a +token in a given document is to scale down the impact of tokens that occur +very frequently in a given corpus and that are hence empirically less +informative than feature that occur in a small fraction of the training +corpus.

+

TF-IDF can be seen as a smooth alternative to the stop words filtering.

+

Parameters

+
+
use_tf: boolean
+
enable term-frequency normalization
+
use_idf: boolean
+
enable inverse-document-frequency reweighting
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Transform a count matrix to a TF or TF-IDF representation +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.TfidfTransformer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X: sparse matrix, [n_samples, n_features]
+
a matrix of term/token counts
+
+

Returns

+

vectors: sparse matrix, [n_samples, n_features]

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Learn the IDF vector (global term weights) +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.TfidfTransformer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X: sparse matrix, [n_samples, n_features]
+
a matrix of term/token counts
+
+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.TimeDelayNode-class.html b/legacy/api/mdp.nodes.TimeDelayNode-class.html new file mode 100755 index 0000000..1e026f3 --- /dev/null +++ b/legacy/api/mdp.nodes.TimeDelayNode-class.html @@ -0,0 +1,1146 @@ + + + + + mdp.nodes.TimeDelayNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class TimeDelayNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class TimeDelayNode

+
+ +
+
+

Copy delayed version of the input signal on the space dimensions.

+

For example, for time_frames=3 and gap=2:

+
+[ X(1) Y(1)        [ X(1) Y(1)   0    0    0    0
+  X(2) Y(2)          X(2) Y(2)   0    0    0    0
+  X(3) Y(3)   -->    X(3) Y(3) X(1) Y(1)   0    0
+  X(4) Y(4)          X(4) Y(4) X(2) Y(2)   0    0
+  X(5) Y(5)          X(5) Y(5) X(3) Y(3) X(1) Y(1)
+  X(6) Y(6)          ...  ...  ...  ...  ...  ... ]
+  X(7) Y(7)
+  X(8) Y(8)
+  ...  ...  ]
+
+

This node provides similar functionality as the TimeFramesNode, only +that it performs a time embedding into the past rather than into the future.

+

See TimeDelaySlidingWindowNode for a sliding window delay node for +application in a non-batch manner.

+

Original code contributed by Sebastian Hoefer. +Dec 31, 2010

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + time_frames, + gap=1, + input_dim=None, + dtype=None)
+ Initializes an object of type 'TimeDelayNode'.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+ numpy.ndarray + + + + + + +
pseudo_inverse(self, + y)
+ This function returns a pseudo-inverse of the execute frame.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from TimeFramesNode
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the data types supported by this node.
+ + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from TimeFramesNode
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + time_frames, + gap=1, + input_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'TimeDelayNode'. +
+
Parameters:
+
    +
  • time_frames (int) - Number of delayed copies.
  • +
  • gap (int) - Time delay between the copies.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • dtype (numpy.dtype) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

pseudo_inverse(self, + y) +

+
  +
+ +

This function returns a pseudo-inverse of the execute frame.

+

y == execute(x) is only True if y belongs to the domain of execute +and has been computed with a sufficently large x. +If gap > 1 some of the last rows will be filled with zeros.

+
+
Parameters:
+
    +
  • y - The execute frame.
  • +
+
Returns: numpy.ndarray
+
A pseudo-inverse of the given frame.
+
Raises:
+
    +
  • mdp.NodeException - When called. This method overrides +the corresponding method of the ``TimeFramesNode*.
  • +
+
Overrides: + TimeFramesNode.pseudo_inverse +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.TimeDelaySlidingWindowNode-class.html b/legacy/api/mdp.nodes.TimeDelaySlidingWindowNode-class.html new file mode 100755 index 0000000..c6b093d --- /dev/null +++ b/legacy/api/mdp.nodes.TimeDelaySlidingWindowNode-class.html @@ -0,0 +1,1137 @@ + + + + + mdp.nodes.TimeDelaySlidingWindowNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class TimeDelaySlidingWindowNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class TimeDelaySlidingWindowNode

+
+ +
+
+

TimeDelaySlidingWindowNode is an alternative to TimeDelayNode +which should be used for online learning/execution. Whereas the +TimeDelayNode works in a batch manner, for online application +a sliding window is necessary which yields only one row per call.

+

Applied to the same data the collection of all returned rows of the +TimeDelaySlidingWindowNode is equivalent to the result of the +TimeDelayNode.

+

Original code contributed by Sebastian Hoefer. +Dec 31, 2010

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + time_frames, + gap=1, + input_dim=None, + dtype=None)
+ Initializes an object of type 'TimeDelaySlidingWindowNode'.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_init_sliding_window(self) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from TimeDelayNode
+ numpy.ndarray + + + + + + +
pseudo_inverse(self, + y)
+ This function returns a pseudo-inverse of the execute frame.
+ + +
+ +
    Inherited from TimeFramesNode
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the data types supported by this node.
+ + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from TimeFramesNode
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + time_frames, + gap=1, + input_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'TimeDelaySlidingWindowNode'. +
+
Parameters:
+
    +
  • time_frames (int) - Number of delayed copies.
  • +
  • gap (int) - Time delay between the copies.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_init_sliding_window(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.TimeFramesNode-class.html b/legacy/api/mdp.nodes.TimeFramesNode-class.html new file mode 100755 index 0000000..3a1be2d --- /dev/null +++ b/legacy/api/mdp.nodes.TimeFramesNode-class.html @@ -0,0 +1,1247 @@ + + + + + mdp.nodes.TimeFramesNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class TimeFramesNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class TimeFramesNode

+
+ +
+
+

Copy delayed version of the input signal on the space dimensions.

+

For example, for time_frames=3 and gap=2:

+
+[ X(1) Y(1)        [ X(1) Y(1) X(3) Y(3) X(5) Y(5)
+  X(2) Y(2)          X(2) Y(2) X(4) Y(4) X(6) Y(6)
+  X(3) Y(3)   -->    X(3) Y(3) X(5) Y(5) X(7) Y(7)
+  X(4) Y(4)          X(4) Y(4) X(6) Y(6) X(8) Y(8)
+  X(5) Y(5)          ...  ...  ...  ...  ...  ... ]
+  X(6) Y(6)
+  X(7) Y(7)
+  X(8) Y(8)
+  ...  ...  ]
+
+

It is not always possible to invert this transformation (the +transformation is not surjective. However, the pseudo_inverse +method does the correct thing when it is indeed possible.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + time_frames, + gap=1, + input_dim=None, + dtype=None)
+ Initializes an object of type 'TimeFramesNode'.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the data types supported by this node.
+ + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+ numpy.ndarray + + + + + + +
pseudo_inverse(self, + y)
+ This function returns a pseudo-inverse of the execute frame.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + time_frames, + gap=1, + input_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'TimeFramesNode'. +
+
Parameters:
+
    +
  • time_frames (int) - Number of delayed copies.
  • +
  • gap (int) - Time delay between the copies.
  • +
  • input_dim (int) - The input dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the data types supported by this node. +
+
Returns: list
+
The list of numpy.dtypes that this node supports.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_set_input_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_input_dim +
+
+
+
+ +
+ +
+ + +
+

_set_output_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_output_dim +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Overrides: + Node.is_trainable +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

pseudo_inverse(self, + y) +

+
  +
+ +

This function returns a pseudo-inverse of the execute frame.

+

y == execute(x) is only True if y belongs to the domain of execute +and has been computed with a sufficently large x. +If gap > 1 some of the last rows will be filled with zeros.

+
+
Parameters:
+
    +
  • y (numpy.ndarray) - The execute frame.
  • +
+
Returns: numpy.ndarray
+
A pseudo-inverse of the given frame.
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.VartimeSFANode-class.html b/legacy/api/mdp.nodes.VartimeSFANode-class.html new file mode 100755 index 0000000..f5675d1 --- /dev/null +++ b/legacy/api/mdp.nodes.VartimeSFANode-class.html @@ -0,0 +1,1462 @@ + + + + + mdp.nodes.VartimeSFANode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class VartimeSFANode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class VartimeSFANode

+
+ +
+
+

Extract the slowly varying components from the input data. +This node can be understood as a generalization of the SFANode that +allows non-constant time increments between samples.

+

In particular, this node numerically computes the integrals involved in +the SFA problem formulation by applying the trapezoid rule.

+
+

Reference

+

More information about Slow Feature Analysis can be found in +Wiskott, L. and Sejnowski, T.J., Slow Feature Analysis: Unsupervised +Learning of Invariances, Neural Computation, 14(4):715-770 (2002).

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + rank_deficit_method='none')
+ Initialize an object of type 'VartimeSFANode'.
+ + +
+ +
+   + + + + + + +
_init_cov(self) + + +
+ +
+   + + + + + + +
_train(self, + x, + dt=None, + time_dep=True)
+ Training method.
+ + +
+ +
+ numpy.ndarray + + + + + + +
time_derivative(self, + x, + dt=None, + time_dep=True)
+ Compute the linear approximation of the time derivative
+ + +
+ +
+   + + + + + + +
train(self, + x, + dt=None, + time_dep=True)
+ Training method.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from SFANode
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs)
+ Raises exception if time dimension does not have enough elements.
+ + +
+ +
+ numpy.ndarray + + + + + + +
_execute(self, + x, + n=None)
+ Compute the output of the slowest functions.
+ + +
+ +
+   + + + + + + +
_inverse(self, + y) + + +
+ +
+   + + + + + + +
_set_range(self) + + +
+ +
+   + + + + + + +
_stop_training(self, + debug=False) + + +
+ +
+ numpy.ndarray + + + + + + +
execute(self, + x, + n=None)
+ Compute the output of the slowest functions.
+ + +
+ +
+   + + + + + + +
get_eta_values(self, + t=1)
+ Return the eta values of the slow components learned during +the training phase. If the training phase has not been completed +yet, call stop_training.
+ + +
+ +
+   + + + + + + +
inverse(self, + y)
+ Invert y.
+ + +
+ +
+   + + + + + + +
set_rank_deficit_method(self, + rank_deficit_method) + + +
+ +
+   + + + + + + +
stop_training(self, + debug=False)
+ Stop the training phase.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + avg
+ Mean of the input data (available after training) +
+   + + d
+ Delta values corresponding to the SFA components (generalized +eigenvalues). [See the docs of the get_eta_values method for +more information] +
+   + + sf
+ Matrix of the SFA filters (available after training) +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + rank_deficit_method='none') +
(Constructor) +

+
  +
+ + Initialize an object of type 'VartimeSFANode'. +
+
Parameters:
+
    +
  • input_dim (int) - The input dimensionality.
  • +
  • output_dim (int) - The output dimensionality.
  • +
  • dtype (numpy.dtype or str) - The datatype.
  • +
  • rank_deficit_method (str) - Possible values: 'none' (default), 'reg', 'pca', 'svd', 'auto' +If not 'none', the stop_train method solves the SFA eigenvalue +problem in a way that is robust against linear redundancies in +the input data. This would otherwise lead to rank deficit in the +covariance matrix, which usually yields a +SymeigException ('Covariance matrices may be singular'). +There are several solving methods implemented:

    +

    reg - works by regularization +pca - works by PCA +svd - works by SVD +ldl - works by LDL decomposition (requires SciPy >= 1.0)

    +
    +
    auto - (Will be: selects the best-benchmarked method of the above)
    +
    Currently it simply selects pca.
    +
    +

    Note: If you already received an exception +SymeigException ('Covariance matrices may be singular') +you can manually set the solving method for an existing node:

    +
    +sfa.set_rank_deficit_method('pca')
    +
    +

    That means,:

    +
    +sfa = SFANode(rank_deficit='pca')
    +
    +

    is equivalent to:

    +
    +sfa = SFANode()
    +sfa.set_rank_deficit_method('pca')
    +
    +

    After such an adjustment you can run stop_training() again, +which would save a potentially time-consuming rerun of all +train() calls.

  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_init_cov(self) +

+
  +
+ + +
+
Overrides: + SFANode._init_cov +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x, + dt=None, + time_dep=True) +

+
  +
+ + Training method. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The time series data.
  • +
  • dt (numpy.ndarray or numeric) - Sequence of time increments between vectors.

    +
    +
    Usage with only single chunk of data:
    +
    dt should be of length x.shape[0]-1 or a constant. When +constant, the time increments are assumed to be constant. If +dt is not supplied, a constant time increment of one is +assumed. If a time sequence of length x.shape[0] is supplied +the first element is disregarded and a warning is presented.
    +
    Usage with multiple chunks of data with intended time dependence:
    +
    dt should have length x.shape[0]-1 in the first call and +be of length x.shape[0] starting with the second call. +Starting with the second call, the first element in each chunk +will be considered the time difference between the last element +of x in the previous chunk and the first element of x of the +current chunk. +The time_dep argument being True indicates this mode.
    +
    Usage with multiple chunks without time dependence:
    +
    The moments are computed as a weighted average of the moments +of separate chunks, if dt continues to have length +x.shape[0]-1 after the first call. Time dependence between +chunks is thus omitted and all algorithmic components regard +only the time structure within chunks. +The time_dep argument being False indicates this mode. +As in the single chunk case it is possible to set dt to be a +constant or omit it completely for constant or unit time +increments within chunks respectively.
    +
  • +
  • time_dep (bool) - Indicates whether time dependence between chunks can +be considered. The argument is only relevant if multiple chunks +of data are used. Time dependence between chunks is disregarded +when data collection has been done time-independently and thus no +reasonable time increment between the end of a chunk and +beginning of the next can be specified.
  • +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

time_derivative(self, + x, + dt=None, + time_dep=True) +

+
  +
+ + Compute the linear approximation of the time derivative +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The time series data.
  • +
  • dt (numpy.ndarray or numeric) - Sequence of time increments between vectors.

    +
    +
    Usage with only single chunk of data:
    +
    dt should be of length x.shape[0]-1 or a constant. When +constant, the time increments are assumed to be constant. If +dt is not supplied, a constant time increment of one is +assumed. If a time sequence of length x.shape[0] is supplied +the first element is disregarded and a warning is presented.
    +
    Usage with multiple chunks of data with intended time dependence:
    +
    dt should have length x.shape[0]-1 in the first call and +be of length x.shape[0] starting with the second call. +Starting with the second call, the first element in each chunk +will be considered the time difference between the last element +of x in the previous chunk and the first element of x of the +current chunk. +The time_dep argument being True indicates this mode.
    +
    Usage with multiple chunks without time dependence:
    +
    The moments are computed as a weighted average of the moments +of separate chunks, if dt continues to have length +x.shape[0]-1 after the first call. Time dependence between +chunks is thus omitted and all algorithmic components regard +only the time structure within chunks. +The time_dep argument being False indicates this mode. +As in the single chunk case it is possible to set dt to be a +constant or omit it completely for constant or unit time +increments within chunks respectively.
    +
  • +
  • time_dep (bool) - Indicates whether time dependence between chunks can +be considered. The argument is only relevant if multiple chunks +of data are used. Time dependence between chunks is disregarded +when data collection has been done time-independently and thus no +reasonable time increment between the end of a chunk and +beginning of the next can be specified.
  • +
+
Returns: numpy.ndarray
+
Piecewise linear approximation of the time derivative.
+
Overrides: + SFANode.time_derivative +
+
+
+
+ +
+ +
+ + +
+

train(self, + x, + dt=None, + time_dep=True) +

+
  +
+ + Training method. +
+
Parameters:
+
    +
  • x (numpy.ndarray) - The time series data.
  • +
  • dt (numpy.ndarray or numeric) - Sequence of time increments between vectors.

    +
    +
    Usage with only single chunk of data:
    +
    dt should be of length x.shape[0]-1 or a constant. When +constant, the time increments are assumed to be constant. If +dt is not supplied, a constant time increment of one is +assumed. If a time sequence of length x.shape[0] is supplied +the first element is disregarded and a warning is presented.
    +
    Usage with multiple chunks of data with intended time dependence:
    +
    dt should have length x.shape[0]-1 in the first call and +be of length x.shape[0] starting with the second call. +Starting with the second call, the first element in each chunk +will be considered the time difference between the last element +of x in the previous chunk and the first element of x of the +current chunk. +The time_dep argument being True indicates this mode.
    +
    Usage with multiple chunks without time dependence:
    +
    The moments are computed as a weighted average of the moments +of separate chunks, if dt continues to have length +x.shape[0]-1 after the first call. Time dependence between +chunks is thus omitted and all algorithmic components regard +only the time structure within chunks. +The time_dep argument being False indicates this mode. +As in the single chunk case it is possible to set dt to be a +constant or omit it completely for constant or unit time +increments within chunks respectively.
    +
  • +
  • time_dep (bool) - Indicates whether time dependence between chunks can +be considered. The argument is only relevant if multiple chunks +of data are used. Time dependence between chunks is disregarded +when data collection has been done time-independently and thus no +reasonable time increment between the end of a chunk and +beginning of the next can be specified.
  • +
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

avg

+ Mean of the input data (available after training) +
+
+
+
+ +
+ +
+

d

+ Delta values corresponding to the SFA components (generalized +eigenvalues). [See the docs of the get_eta_values method for +more information] +
+
+
+
+ +
+ +
+

sf

+ Matrix of the SFA filters (available after training) +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.VectorizerScikitsLearnNode-class.html b/legacy/api/mdp.nodes.VectorizerScikitsLearnNode-class.html new file mode 100755 index 0000000..1907481 --- /dev/null +++ b/legacy/api/mdp.nodes.VectorizerScikitsLearnNode-class.html @@ -0,0 +1,1205 @@ + + + + + mdp.nodes.VectorizerScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class VectorizerScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class VectorizerScikitsLearnNode

+
+ +
+
+Convert a collection of raw documents to a matrix +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.Vectorizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Equivalent to CountVectorizer followed by TfidfTransformer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Convert a collection of raw documents to a matrix +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.Vectorizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Equivalent to CountVectorizer followed by TfidfTransformer.
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Return the vectors. +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.Vectorizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.Vectorizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ + Convert a collection of raw documents to a matrix +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.Vectorizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Equivalent to CountVectorizer followed by TfidfTransformer. +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Return the vectors. +This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.Vectorizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
raw_documents: iterable
+
an iterable which yields either str, unicode or file objects
+
+

Returns

+

vectors: array, [n_samples, n_features]

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ + This node has been automatically generated by wrapping the scikits.learn.feature_extraction.text.Vectorizer class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.WardAgglomerationScikitsLearnNode-class.html b/legacy/api/mdp.nodes.WardAgglomerationScikitsLearnNode-class.html new file mode 100755 index 0000000..1a6d2ab --- /dev/null +++ b/legacy/api/mdp.nodes.WardAgglomerationScikitsLearnNode-class.html @@ -0,0 +1,1287 @@ + + + + + mdp.nodes.WardAgglomerationScikitsLearnNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class WardAgglomerationScikitsLearnNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class WardAgglomerationScikitsLearnNode

+
+ +
+
+

Feature agglomeration based on Ward hierarchical clustering +This node has been automatically generated by wrapping the scikits.learn.cluster.hierarchical.WardAgglomeration class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
n_clusters : int or ndarray
+
The number of clusters.
+
connectivity : sparse matrix
+
connectivity matrix. Defines for each feature the neigbhoring +features following a given structure of the data. +Defaut is None, i.e, the hiearchical agglomeration algorithm is +unstructured.
+
memory : Instance of joblib.Memory or string
+
Used to cache the output of the computation of the tree. +By default, no caching is done. If a string is given, it is the +path to the caching directory.
+
copy : bool
+
Copy the connectivity matrix or work inplace.
+
n_components : int (optional)
+
The number of connected components in the graph defined by the +connectivity matrix. If not set, it is estimated.
+
+

Methods

+

fit:

+
+
    +
  • Compute the clustering of features
  • +
+
+

Attributes

+
+
children_ : array-like, shape = [n_nodes, 2]
+
List of the children of each nodes. +Leaves of the tree do not appear.
+
labels_ : array [n_points]
+
cluster labels for each point
+
n_leaves_ : int
+
Number of leaves in the hiearchical tree.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs)
+ Feature agglomeration based on Ward hierarchical clustering +This node has been automatically generated by wrapping the scikits.learn.cluster.hierarchical.WardAgglomeration class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + **kwargs)
+ Concatenate the collected data in a single array.
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Transform a new matrix using the built clustering +This node has been automatically generated by wrapping the scikits.learn.cluster.hierarchical.WardAgglomeration class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+   + + + + + + +
stop_training(self, + **kwargs)
+ Fit the hierarchical clustering on the data +This node has been automatically generated by wrapping the scikits.learn.cluster.hierarchical.WardAgglomeration class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Cumulator
+   + + + + + + +
_train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
+   + + + + + + +
train(self, + *args)
+ Collect all input data in a list.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ bool + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Feature agglomeration based on Ward hierarchical clustering +This node has been automatically generated by wrapping the scikits.learn.cluster.hierarchical.WardAgglomeration class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
n_clusters : int or ndarray
+
The number of clusters.
+
connectivity : sparse matrix
+
connectivity matrix. Defines for each feature the neigbhoring +features following a given structure of the data. +Defaut is None, i.e, the hiearchical agglomeration algorithm is +unstructured.
+
memory : Instance of joblib.Memory or string
+
Used to cache the output of the computation of the tree. +By default, no caching is done. If a string is given, it is the +path to the caching directory.
+
copy : bool
+
Copy the connectivity matrix or work inplace.
+
n_components : int (optional)
+
The number of connected components in the graph defined by the +connectivity matrix. If not set, it is estimated.
+
+

Methods

+

fit:

+
+
    +
  • Compute the clustering of features
  • +
+
+

Attributes

+
+
children_ : array-like, shape = [n_nodes, 2]
+
List of the children of each nodes. +Leaves of the tree do not appear.
+
labels_ : array [n_points]
+
cluster labels for each point
+
n_leaves_ : int
+
Number of leaves in the hiearchical tree.
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_supported_dtypes(self) +

+
  +
+ + Return the list of dtypes supported by this node. +The types can be specified in any format allowed by numpy.dtype. +
+
Returns: list
+
The list of dtypes supported by this node.
+
Overrides: + Node._get_supported_dtypes +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + **kwargs) +

+
  +
+ + Concatenate the collected data in a single array. +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Transform a new matrix using the built clustering +This node has been automatically generated by wrapping the scikits.learn.cluster.hierarchical.WardAgglomeration class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
A M by N array of M observations in N dimensions or a length +M array of M one-dimensional observations.
+
pooling_func : a function that takes an array of shape = [M, N] and
+
return an array of value of size M. +Defaut is np.mean
+
+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Returns: bool
+
A boolean indication whether the node can be trained.
+
Overrides: + Node.is_trainable +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + **kwargs) +

+
  +
+ +

Fit the hierarchical clustering on the data +This node has been automatically generated by wrapping the scikits.learn.cluster.hierarchical.WardAgglomeration class +from the sklearn library. The wrapped instance can be accessed +through the scikits_alg attribute. +Parameters

+
+
X : array-like, shape = [n_samples, n_features]
+
The data
+
+

Returns

+

self

+
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.WhiteningNode-class.html b/legacy/api/mdp.nodes.WhiteningNode-class.html new file mode 100755 index 0000000..b923bc9 --- /dev/null +++ b/legacy/api/mdp.nodes.WhiteningNode-class.html @@ -0,0 +1,1333 @@ + + + + + mdp.nodes.WhiteningNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class WhiteningNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class WhiteningNode

+
+ +
+
+

Whiten the input data by filtering it through the most +significant of its principal components.

+

All output signals have zero mean, unit variance and are decorrelated.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
_stop_training(self, + debug=False)
+ Stop the training phase.
+ + +
+ +
+ numpy.ndarray + + + + + + +
get_eigenvectors(self)
+ Return the eigenvectors of the covariance matrix.
+ + +
+ +
+ numpy.ndarray + + + + + + +
get_recmatrix(self, + transposed=1)
+ Returns the the back-projection matrix +(i.e. the reconstruction matrix).
+ + +
+ +
+   + + + + + + +
stop_training(self, + debug=False)
+ Stop the training phase.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from PCANode
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + svd=False, + reduce=False, + var_rel=1e-12, + var_abs=1e-15, + var_part=None)
+ Initializes an object of type 'PCANode'.
+ + +
+ +
+ tuple + + + + + + +
_adjust_output_dim(self)
+ This function is used if the output dimensions is smaller than the input +dimension (so only the larger eigenvectors have to be kept). If required it +sets the output dim.
+ + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+ numpy.ndarray + + + + + + +
_execute(self, + x, + n=None)
+ Project the input on the first 'n' principal components.
+ + +
+ +
+ numpy.ndarray + + + + + + +
_inverse(self, + y, + n=None)
+ Project data from the output to the input space using the +first 'n' components.
+ + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_train(self, + x)
+ Update the covariance matrix.
+ + +
+ +
+ numpy.ndarray + + + + + + +
execute(self, + x, + n=None)
+ Project the input on the first 'n' principal components.
+ + +
+ +
+ float + + + + + + +
get_explained_variance(self)
+ The explained variance is the fraction of the original variance +that can be explained by self._output_dim PCA components. If for +example output_dim has been set to 0.95, the explained variance could +be something like 0.958...
+ + +
+ +
+ numpy.ndarray + + + + + + +
get_projmatrix(self, + transposed=1)
+ Returns the projection matrix.
+ + +
+ +
+ numpy.ndarray + + + + + + +
inverse(self, + y, + n=None)
+ Project data from the output to the input space using the +first 'n' components.
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ Update the covariance matrix.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
+   + + avg
+ Mean of the input data (available after training). +
+   + + d
+ Variance corresponding to the PCA components (eigenvalues of the +covariance matrix). +
+   + + explained_variance
+ When output_dim has been specified as a fraction +of the total variance, this is the fraction of the total variance that is +actually explained. +
+   + + v
+ Transposed of the projection matrix (available after training). +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

_stop_training(self, + debug=False) +

+
  +
+ + Stop the training phase. +
+
Parameters:
+
    +
  • debug (bool) - Determines if singular matrices itself are stored in +self.cov_mtx and self.dcov_mtx to be examined, given that +stop_training fails because of singular covmatrices. +Default is False.
  • +
+
Raises:
+
    +
  • mdp.NodeException - If negative eigenvalues occur, +the covariance matrix may be singular or no component +amounts to variation exceeding var_abs.
  • +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

get_eigenvectors(self) +

+
  +
+ + Return the eigenvectors of the covariance matrix. +
+
Returns: numpy.ndarray
+
The eigenvectors of the covariance matrix.
+
+
+
+ +
+ +
+ + +
+

get_recmatrix(self, + transposed=1) +

+
  +
+ + Returns the the back-projection matrix +(i.e. the reconstruction matrix). +
+
Parameters:
+
    +
  • transposed (bool) - Determines whether the transposed back-projection matrix +(i.e. the reconstruction matrix) is returned. +Default is True.
  • +
+
Returns: numpy.ndarray
+
The back-projection matrix (i.e. the reconstruction matrix).
+
Overrides: + PCANode.get_recmatrix +
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + debug=False) +

+
  +
+ + Stop the training phase. +
+
Parameters:
+
    +
  • debug (bool) - Determines if singular matrices itself are stored in +self.cov_mtx and self.dcov_mtx to be examined, given that +stop_training fails because of singular covmatrices. +Default is False.
  • +
+
Raises:
+
    +
  • mdp.NodeException - If negative eigenvalues occur, +the covariance matrix may be singular or no component +amounts to variation exceeding var_abs.
  • +
+
Overrides: + Node.stop_training +
+
+
+
+
+ + + + + + +
+ + + + + +
Instance Variable Details[hide private]
+
+ +
+ +
+

avg

+ Mean of the input data (available after training). +
+
+
+
+ +
+ +
+

d

+ Variance corresponding to the PCA components (eigenvalues of the +covariance matrix). +
+
+
+
+ +
+ +
+

explained_variance

+ When output_dim has been specified as a fraction +of the total variance, this is the fraction of the total variance that is +actually explained. +
+
+
+
+ +
+ +
+

v

+ Transposed of the projection matrix (available after training). +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.XSFANode-class.html b/legacy/api/mdp.nodes.XSFANode-class.html new file mode 100755 index 0000000..38a724e --- /dev/null +++ b/legacy/api/mdp.nodes.XSFANode-class.html @@ -0,0 +1,1440 @@ + + + + + mdp.nodes.XSFANode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class XSFANode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class XSFANode

+
+ +
+
+

Perform Non-linear Blind Source Separation using Slow Feature Analysis. +This node is designed to iteratively extract statistically +independent sources from (in principle) arbitrary invertible +nonlinear mixtures. The method relies on temporal correlations in +the sources and consists of a combination of nonlinear SFA and a +projection algorithm. More details can be found in the reference +given below (once it's published).

+

The node has multiple training phases. The number of training +phases depends on the number of sources that must be +extracted. The recommended way of training this node is through a +container flow:

+
+>>> flow = mdp.Flow([XSFANode()])
+>>> flow.train(x)
+
+

doing so will automatically train all training phases. The argument +x to the Flow.train method can be an array or a list of iterables +(see the section about Iterators in the MDP tutorial for more info). +If the number of training samples is large, you may run into +memory problems: use data iterators and chunk training to reduce +memory usage.

+

If you need to debug training and/or execution of this node, the +suggested approach is to use the capabilities of BiMDP. For example:

+
+>>> flow = mdp.Flow([XSFANode()])
+>>> tr_filename = bimdp.show_training(flow=flow, data_iterators=x)
+>>> ex_filename, out = bimdp.show_execution(flow, x=x)
+
+

this will run training and execution with bimdp inspection. Snapshots +of the internal flow state for each training phase and execution step +will be opened in a web brower and presented as a slideshow.

+
+

+
+
+

Reference

+

Sprekeler, H., Zito, T., and Wiskott, L. (2009). +An Extension of Slow Feature Analysis for Nonlinear Blind Source Separation. +Journal of Machine Learning Research. +http://cogprints.org/7056/1/SprekelerZitoWiskott-Cogprints-2010.pdf

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + basic_exp=None, + intern_exp=None, + svd=False, + verbose=False, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'XSFANode'.
+ + +
+ +
+   + + + + + + +
_check_train_args(self, + x) + + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_source_extractor(self, + dim, + nsources) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_initialize_internal_flow(self) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
execute(self, + x)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ Update the internal structures according to the input data x.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+   + + flow
+ Read-only internal flow property. +
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + basic_exp=None, + intern_exp=None, + svd=False, + verbose=False, + input_dim=None, + output_dim=None, + dtype=None) +
(Constructor) +

+
  +
+ + Initializes an object of type 'XSFANode'. +
+
Parameters:
+
    +
  • basic_exp (tuple) - A tuple (node, args, kwargs) defining the node +used for the basic nonlinear expansion. It is assumed that the +mixture is linearly invertible after this expansion. The higher the +complexity of the nonlinearity, the higher are the chances of +inverting the unknown mixture. On the other hand, high complexity +of the nonlinear expansion increases the danger of numeric +instabilities, which can cause singularities in the simulation or +errors in the source estimation. The trade-off has to be evaluated +carefully. +Default: (mdp.nodes.PolynomialExpansionNode, (2, ), {})
  • +
  • intern_exp (tuple) - A tuple (node, args, kwargs) defining the node +used for the internal nonlinear expansion of the estimated sources +to be removed from the input space. The same trade-off as for +basic_exp is valid here. +Default: (mdp.nodes.PolynomialExpansionNode, (10, ), {})
  • +
  • svd (bool) - Enable Singular Value Decomposition for normalization +and regularization. Use it if the node complains about singular +covariance matrices. Default: False
  • +
  • verbose (bool) - Show some progress during training. +Default: False
  • +
  • input_dim (int) - Dimensionality of the input. +Default is None.
  • +
  • output_dim (int) - Dimensionality of the output. +Default is None.
  • +
  • dtype (numpy.dtype or str) - Datatype of the input. +Default is None.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_check_train_args(self, + x) +

+
  +
+ + +
+
Overrides: + Node._check_train_args +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ + +
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_get_source_extractor(self, + dim, + nsources) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_get_train_seq(self) +

+
  +
+ + +
+
Overrides: + Node._get_train_seq +
+
+
+
+ +
+ +
+ + +
+

_initialize_internal_flow(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_set_input_dim(self, + n) +

+
  +
+ + +
+
Overrides: + Node._set_input_dim +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self) +

+
  +
+ + +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x) +

+
  +
+ + +
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ +

Process the data contained in x.

+

If the object is still in the training phase, the function +stop_training will be called. +x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _execute to implement +their execution phase. The docstring of the _execute method +overwrites this docstring.

+
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

is_invertible() +
Static Method +

+
  +
+ + Return True if the node can be inverted, False otherwise. +
+
Overrides: + Node.is_invertible +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

stop_training(self) +

+
  +
+ +

Stop the training phase.

+

By default, subclasses should overwrite _stop_training to implement +this functionality. The docstring of the _stop_training method +overwrites this docstring.

+
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x) +

+
  +
+ +

Update the internal structures according to the input data x.

+

x is a matrix having different variables on different columns +and observations on the rows.

+

By default, subclasses should overwrite _train to implement their +training phase. The docstring of the _train method overwrites this +docstring.

+

Note: a subclass supporting multiple training phases should implement +the same signature for all the training phases and document the +meaning of the arguments in the _train method doc-string. Having +consistent signatures is a requirement to use the node in a flow.

+
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + +
+ + + + + +
Property Details[hide private]
+
+ +
+ +
+

flow

+ Read-only internal flow property. +
+
Get Method:
+
unreachable.flow(self) + - Read-only internal flow property. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes._OneDimensionalHitParade-class.html b/legacy/api/mdp.nodes._OneDimensionalHitParade-class.html new file mode 100755 index 0000000..cb24c63 --- /dev/null +++ b/legacy/api/mdp.nodes._OneDimensionalHitParade-class.html @@ -0,0 +1,394 @@ + + + + + mdp.nodes._OneDimensionalHitParade + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class _OneDimensionalHitParade + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class _OneDimensionalHitParade

+
+ +
+
+Class to produce hit-parades (i.e., a list of the locally largest +and smallest values) out of a one-dimensional time-series. + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + n, + d, + real_dtype='d', + integer_dtype='l')
+ Initializes an object of type 'OneDimensionalHitParade'.
+ + +
+ +
+ tuple + + + + + + +
get_maxima(self)
+ Return the tuple defining the maxima fulfilling specified criteria.
+ + +
+ +
+ tuple + + + + + + +
get_minima(self)
+ Return the tuple defining the minima fulfilling specified criteria.
+ + +
+ +
+   + + + + + + +
update(self, + inp) + + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + n, + d, + real_dtype='d', + integer_dtype='l') +
(Constructor) +

+
  +
+ + Initializes an object of type 'OneDimensionalHitParade'. +
+
Parameters:
+
    +
  • n (int) - Number of maxima and minima to remember.
  • +
  • d (int) - Minimum gap between two hits.
  • +
  • real_dtype (numpy.dtype or str) - Datatype of sequence items
  • +
  • integer_dtype (numpy.dtype or str) - Datatype of sequence indices
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

get_maxima(self) +

+
  +
+ + Return the tuple defining the maxima fulfilling specified criteria. +
+
Returns: tuple
+
A tuple containing maxima and their corresponding indices +as numpy.ndarrays (see example in definition of the method +OneDimensionalHitParade.update). The maxima are sorted in +descending order.
+
+
+
+ +
+ +
+ + +
+

get_minima(self) +

+
  +
+ + Return the tuple defining the minima fulfilling specified criteria. +
+
Returns: tuple
+
A tuple containing minima and their corresponding indices +as numpy.ndarrays (see example in definition of the +OneDimensionalHitParade.update() function). The minima are sorted +in descending order.
+
+
+
+ +
+ +
+ + +
+

update(self, + inp) +

+
  +
+ + +
+
Parameters:
+
    +
  • inp (tuple) - A time series, defined by a tuple of numpy.ndarrays +with the first element containing the values and the second +containing the corresponding index. An example can be given by:

    +
    +>>> indices = numpy.array([0,1,2])
    +>>> values = numpy.array([100,101,100])
    +>>> avalidtuple = (indices,values)
    +
  • +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.nodes.iGSFANode-class.html b/legacy/api/mdp.nodes.iGSFANode-class.html new file mode 100755 index 0000000..7bbbf14 --- /dev/null +++ b/legacy/api/mdp.nodes.iGSFANode-class.html @@ -0,0 +1,1506 @@ + + + + + mdp.nodes.iGSFANode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package nodes :: + Class iGSFANode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class iGSFANode

+
+ +
+
+

This node implements "information-preserving graph-based SFA (iGSFA)", +which is the main component of hierarchical iGSFA (HiGSFA).

+

For further information, see: Escalante-B., A.-N. and Wiskott, L., +"Improved graph-based {SFA}: Information preservation complements the +slowness principle", e-print arXiv:1601.03945, +http://arxiv.org/abs/1601.03945, 2017.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + pre_expansion_node_class=None, + pre_expansion_out_dim=None, + expansion_funcs=None, + expansion_output_dim=None, + expansion_starting_point=None, + max_length_slow_part=None, + slow_feature_scaling_method=None, + delta_threshold=1.999, + reconstruct_with_sfa=False, + verbose=False, + input_dim=None, + output_dim=None, + dtype=None, + **argv)
+ Initializes the iGSFA node.
+ + +
+ +
+   + + + + + + +
_execute(self, + x)
+ Extracts iGSFA features from some data.
+ + +
+ +
+   + + + + + + +
_inverse(self, + y, + linear_inverse=True)
+ This method approximates an inverse function to the feature +extraction.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + verbose=None) + + +
+ +
+   + + + + + + +
_train(self, + x, + block_size=None, + train_mode=None, + node_weights=None, + edge_weights=None, + verbose=None, + **argv)
+ Trains an iGSFA node on data 'x'
+ + +
+ +
+   + + + + + + +
execute(self, + x)
+ Extracts iGSFA features from some data. The node must have been +already trained.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + linear_inverse=True)
+ This method approximates an inverse function to the feature +extraction.
+ + +
+ +
+   + + + + + + +
linear_inverse(self, + y, + verbose=True)
+ Linear inverse approximation method.
+ + +
+ +
+   + + + + + + +
multiple_train(self, + x, + block_size=None, + train_mode=None, + node_weights=None, + edge_weights=None, + verbose=None)
+ This function should not be called directly. Use instead the train +method, which will decide whether multiple-training is enabled, and +call this function if needed.
+ + +
+ +
+   + + + + + + +
nonlinear_inverse(self, + y, + verbose=None)
+ Non-linear inverse approximation method.
+ + +
+ +
+   + + + + + + +
stop_training(self, + verbose=None)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + block_size=None, + train_mode=None, + node_weights=None, + edge_weights=None, + verbose=None, + **argv)
+ Trains an iGSFA node on data 'x'
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
_is_invertible() + + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + pre_expansion_node_class=None, + pre_expansion_out_dim=None, + expansion_funcs=None, + expansion_output_dim=None, + expansion_starting_point=None, + max_length_slow_part=None, + slow_feature_scaling_method=None, + delta_threshold=1.999, + reconstruct_with_sfa=False, + verbose=False, + input_dim=None, + output_dim=None, + dtype=None, + **argv) +
(Constructor) +

+
  +
+ +
+Initializes the iGSFA node.
+pre_expansion_node_class: a node class. An instance of this class is
+    used to filter the data before the expansion.
+pre_expansion_out_dim: the output dimensionality of the
+    above-mentioned node.
+expansion_funcs: a list of expansion functions to be applied before
+    GSFA.
+expansion_output_dim: this parameter is used to specify an output
+    dimensionality for some expansion functions.
+expansion_starting_point: this parameter is also used by some specific
+    expansion functions.
+max_length_slow_part: fixes an upper bound to the size of the slow
+    part, which is convenient for computational reasons.
+slow_feature_scaling_method: the method used to scale the slow
+    features. Valid entries are: None, "sensitivity_based" (default),
+    "data_dependent", and "QR_decomposition".
+delta_threshold: this parameter has two different meanings depending
+    on its type. If it is real valued (e.g., 1.99), it determines the
+    parameter Delta_threshold, which is used to decide how many slow
+    features are preserved, depending on their delta values. If it is
+    integer (e.g., 20), it directly specifies the exact size of the
+    slow part.
+reconstruct_with_sfa: this Boolean parameter indicates whether the
+    slow part is removed from the input before PCA is applied.
+
+More information about parameters 'expansion_funcs' and
+    'expansion_starting_point' can be found in the documentation of
+    GeneralExpansionNode.
+
+Note: Training sometimes finishes after a single call to the train
+    method, unless multi-train is enabled (default). Multi-train is
+    enabled by setting reconstruct_with_sfa=False and
+    slow_feature_scaling_method in [None, "data_dependent"].
+    This is necessary to support weight sharing in iGSFA layers
+    (convolutional iGSFA layers).
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_execute(self, + x) +

+
  +
+ +
+Extracts iGSFA features from some data. The node must have been
+already trained.
+
+
+
+
Overrides: + Node._execute +
+
+
+
+ +
+ +
+ + +
+

_inverse(self, + y, + linear_inverse=True) +

+
  +
+ +
+This method approximates an inverse function to the feature
+extraction.
+
+If linear_inverse is True, a linear method is used. Otherwise, a
+gradient-based non-linear method is used.
+
+
+
+
Overrides: + Node._inverse +
+
+
+
+ +
+ +
+ + +
+

_is_invertible() +
Static Method +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_stop_training(self, + verbose=None) +

+
  +
+ + +
+
Overrides: + Node._stop_training +
+
+
+
+ +
+ +
+ + +
+

_train(self, + x, + block_size=None, + train_mode=None, + node_weights=None, + edge_weights=None, + verbose=None, + **argv) +

+
  +
+ +
+Trains an iGSFA node on data 'x'
+
+The parameters:  block_size, train_mode, node_weights, and edge_weights
+are passed to the training function of the corresponding gsfa node
+inside iGSFA (node.gsfa_node).
+
+
+
+
Overrides: + Node._train +
+
+
+
+ +
+ +
+ + +
+

execute(self, + x) +

+
  +
+ + Extracts iGSFA features from some data. The node must have been +already trained. +
+
Overrides: + Node.execute +
+
+
+
+ +
+ +
+ + +
+

inverse(self, + y, + linear_inverse=True) +

+
  +
+ +

This method approximates an inverse function to the feature +extraction.

+

If linear_inverse is True, a linear method is used. Otherwise, a +gradient-based non-linear method is used.

+
+
Overrides: + Node.inverse +
+
+
+
+ +
+ +
+ + +
+

is_trainable() +
Static Method +

+
  +
+ + Return True if the node can be trained, False otherwise. +
+
Overrides: + Node.is_trainable +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

linear_inverse(self, + y, + verbose=True) +

+
  +
+ + Linear inverse approximation method. +
+
+
+
+ +
+ +
+ + +
+

multiple_train(self, + x, + block_size=None, + train_mode=None, + node_weights=None, + edge_weights=None, + verbose=None) +

+
  +
+ + This function should not be called directly. Use instead the train +method, which will decide whether multiple-training is enabled, and +call this function if needed. +
+
+
+
+ +
+ +
+ + +
+

nonlinear_inverse(self, + y, + verbose=None) +

+
  +
+ +

Non-linear inverse approximation method.

+

This method is experimental and should be used with care. +Note: this function requires scipy.

+
+
+
+
+ +
+ +
+ + +
+

stop_training(self, + verbose=None) +

+
  +
+ +

Stop the training phase.

+

By default, subclasses should overwrite _stop_training to implement +this functionality. The docstring of the _stop_training method +overwrites this docstring.

+
+
Overrides: + Node.stop_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + x, + block_size=None, + train_mode=None, + node_weights=None, + edge_weights=None, + verbose=None, + **argv) +

+
  +
+ +

Trains an iGSFA node on data 'x'

+

The parameters: block_size, train_mode, node_weights, and edge_weights +are passed to the training function of the corresponding gsfa node +inside iGSFA (node.gsfa_node).

+
+
Overrides: + Node.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel-module.html b/legacy/api/mdp.parallel-module.html new file mode 100755 index 0000000..4b28c28 --- /dev/null +++ b/legacy/api/mdp.parallel-module.html @@ -0,0 +1,440 @@ + + + + + mdp.parallel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Package parallel

+
+
+This is the MDP package for parallel processing.
+
+It is designed to work with nodes for which a large part of the
+computation is embaressingly parallel (like in
+:class:`~mdp.nodes.PCANode`). The hinet package is also fully
+supported, i.e., there are parallel versions of all hinet nodes.
+
+This package consists of two decoupled parts. The first part consists
+of parallel versions of the familiar MDP structures (nodes and
+flows). At the top there is the :class:`~ParallelFlow`, which
+generates tasks that are processed in parallel (this can be done
+automatically in the train or execute methods).
+
+The second part consists of the schedulers. They take tasks and
+process them in a more or less parallel way (e.g. in multiple
+processes). So they are designed to deal with the more technical
+aspects of the parallelization, but do not have to know anything about
+flows or nodes.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Classes[hide private]
+
+   + + ExecuteResultContainer
+ Default result container with automatic restoring of the result order. +
+   + + FlowExecuteCallable
+ Implements data execution through a Flow. +
+   + + FlowTaskCallable
+ Base class for all flow callables. +
+   + + FlowTrainCallable
+ Implements a single training phase in a flow for a data block. +
+   + + JoinParallelException
+ Exception for errors when joining parallel nodes. +
+   + + ListResultContainer
+ Basic result container using simply a list. +
+   + + NoTaskException
+ Exception for problems with the task creation. +
+   + + NotForkableParallelException
+ Exception to signal that a fork is not possible. +
+   + + OrderedResultContainer
+ Default result container with automatic restoring of the result order. +
+   + + ParallelCheckpointFlow
+ Parallel version of CheckpointFlow. +
+   + + ParallelCloneLayer
+ Parallel version of CloneLayer class. +
+   + + ParallelExtensionNode
+ Base class for parallel trainable MDP nodes. +
+   + + ParallelFDANode +
+   + + ParallelFlow
+ A parallel flow provides the methods for parallel training / execution. +
+   + + ParallelFlowException
+ Standard exception for problems with ParallelFlow. +
+   + + ParallelFlowNode
+ Parallel version of FlowNode. +
+   + + ParallelHistogramNode
+ Parallel version of the HistogramNode. +
+   + + ParallelLayer
+ Parallel version of a Layer. +
+   + + ParallelSFANode
+ Parallel version of MDP SFA node. +
+   + + ProcessScheduler
+ Scheduler that distributes the task to multiple processes. +
+   + + ResultContainer
+ Abstract base class for result containers. +
+   + + Scheduler
+ Base class and trivial implementation for schedulers. +
+   + + SleepSqrTestCallable
+ Callable for testing. +
+   + + SqrTestCallable
+ Callable for testing. +
+   + + TaskCallable
+ Abstract base class for task callables. +
+   + + TaskCallableWrapper
+ Wrapper to provide a fork method for simple callables like a function. +
+   + + ThreadScheduler
+ Thread based scheduler. +
+   + + TrainResultContainer
+ Container for parallel nodes. +
+ + + + + + + + + +
+ + + + + +
Variables[hide private]
+
+   + + __package__ = 'mdp.parallel' +
+ + + + + + +
+ + + + + +
Variables Details[hide private]
+
+ +
+ +
+

__package__

+ +
+
+
+
Value:
+
+'mdp.parallel'
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.ExecuteResultContainer-class.html b/legacy/api/mdp.parallel.ExecuteResultContainer-class.html new file mode 100755 index 0000000..214c9c3 --- /dev/null +++ b/legacy/api/mdp.parallel.ExecuteResultContainer-class.html @@ -0,0 +1,351 @@ + + + + + mdp.parallel.ExecuteResultContainer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class ExecuteResultContainer + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ExecuteResultContainer

+
+ +
+
+
+Default result container with automatic restoring of the result order.
+
+This result container should be used together with BiFlowExecuteCallable.
+Both the execute result (x and possibly msg) and the forked BiFlowNode
+are stored.
+
+
+ + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self)
+ Initialize attributes.
+ + +
+ +
+   + + + + + + +
add_result(self, + result, + task_index)
+ Remove the forked BiFlowNode from the result and join it.
+ + +
+ +
+   + + + + + + +
get_results(self)
+ Return the ordered results.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self) +
(Constructor) +

+
  +
+ +
+Initialize attributes.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

add_result(self, + result, + task_index) +

+
  +
+ +
+Remove the forked BiFlowNode from the result and join it.
+
+
+
+
Overrides: + ResultContainer.add_result +
+
+
+
+ +
+ +
+ + +
+

get_results(self) +

+
  +
+ +
+Return the ordered results.
+
+The joined BiFlowNode is returned in the first result list entry,
+for the following result entries BiFlowNode is set to None.
+This reduces memory consumption while staying transparent for the
+ParallelBiFlow.
+
+
+
+
Overrides: + ResultContainer.get_results +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.FlowExecuteCallable-class.html b/legacy/api/mdp.parallel.FlowExecuteCallable-class.html new file mode 100755 index 0000000..421af3d --- /dev/null +++ b/legacy/api/mdp.parallel.FlowExecuteCallable-class.html @@ -0,0 +1,387 @@ + + + + + mdp.parallel.FlowExecuteCallable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class FlowExecuteCallable + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class FlowExecuteCallable

+
+ +
+
+
+Implements data execution through a Flow.
+
+A FlowNode is used to simplify the forking process and to
+encapsulate the flow.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__call__(self, + x)
+ Return the execution result.
+ + +
+ +
+   + + + + + + +
__init__(self, + flownode, + nodenr=None, + purge_nodes=True)
+ Store everything for the execution.
+ + +
+ +
+   + + + + + + +
fork(self)
+ Return a fork of this callable, e.g.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
    Inherited from FlowTaskCallable
+   + + + + + + +
setup_environment(self)
+ Activate the used extensions.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__call__(self, + x) +
(Call operator) +

+
  +
+ +
+Return the execution result.
+
+x -- data chunk
+
+If use_fork_execute is True for the flownode then it is returned
+in the result tuple.
+
+
+
+
Overrides: + TaskCallable.__call__ +
+
+
+
+ +
+ +
+ + +
+

__init__(self, + flownode, + nodenr=None, + purge_nodes=True) +
(Constructor) +

+
  +
+ +
+Store everything for the execution.
+
+flownode -- FlowNode for the execution
+nodenr -- optional nodenr argument for the flow execute method
+purge_nodes -- If True nodes not needed for the join will be replaced
+    with dummy nodes to reduce the footprint.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

fork(self) +

+
  +
+ +
+Return a fork of this callable, e.g. by making a copy.
+
+This method is always called exactly once before a callable is called,
+so instead of the original callable a fresh fork is called. This
+ensures that the original callable is preserved when caching is used.
+If the callable is not modified by the call then it can simply return
+itself.
+
+
+
+
Overrides: + TaskCallable.fork +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.FlowTaskCallable-class.html b/legacy/api/mdp.parallel.FlowTaskCallable-class.html new file mode 100755 index 0000000..c39f867 --- /dev/null +++ b/legacy/api/mdp.parallel.FlowTaskCallable-class.html @@ -0,0 +1,336 @@ + + + + + mdp.parallel.FlowTaskCallable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class FlowTaskCallable + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class FlowTaskCallable

+
+ +
+
+
+Base class for all flow callables.
+
+It deals activating the required extensions.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self)
+ Store the currently active extensions.
+ + +
+ +
+   + + + + + + +
setup_environment(self)
+ Activate the used extensions.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
    Inherited from TaskCallable
+   + + + + + + +
__call__(self, + data)
+ Perform the computation and return the result.
+ + +
+ +
+   + + + + + + +
fork(self)
+ Return a fork of this callable, e.g.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self) +
(Constructor) +

+
  +
+ +
+Store the currently active extensions.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

setup_environment(self) +

+
  +
+ +
+Activate the used extensions.
+
+
+
+
Overrides: + TaskCallable.setup_environment +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.FlowTrainCallable-class.html b/legacy/api/mdp.parallel.FlowTrainCallable-class.html new file mode 100755 index 0000000..fd1c9ee --- /dev/null +++ b/legacy/api/mdp.parallel.FlowTrainCallable-class.html @@ -0,0 +1,385 @@ + + + + + mdp.parallel.FlowTrainCallable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class FlowTrainCallable + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class FlowTrainCallable

+
+ +
+
+
+Implements a single training phase in a flow for a data block.
+
+A FlowNode is used to simplify the forking process and to
+encapsulate the flow.
+
+You can also derive from this class to define your own callable class.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__call__(self, + data)
+ Do the training and return only the trained node.
+ + +
+ +
+   + + + + + + +
__init__(self, + flownode, + purge_nodes=True)
+ Store everything for the training.
+ + +
+ +
+   + + + + + + +
fork(self)
+ Return a fork of this callable, e.g.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
    Inherited from FlowTaskCallable
+   + + + + + + +
setup_environment(self)
+ Activate the used extensions.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__call__(self, + data) +
(Call operator) +

+
  +
+ +
+Do the training and return only the trained node.
+
+data -- training data block (array or list if additional arguments are
+    required)
+
+
+
+
Overrides: + TaskCallable.__call__ +
+
+
+
+ +
+ +
+ + +
+

__init__(self, + flownode, + purge_nodes=True) +
(Constructor) +

+
  +
+ +
+Store everything for the training.
+
+keyword arguments:
+flownode -- FlowNode containing the flow to be trained.
+purge_nodes -- If True nodes not needed for the join will be replaced
+    with dummy nodes to reduce the footprint.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

fork(self) +

+
  +
+ +
+Return a fork of this callable, e.g. by making a copy.
+
+This method is always called exactly once before a callable is called,
+so instead of the original callable a fresh fork is called. This
+ensures that the original callable is preserved when caching is used.
+If the callable is not modified by the call then it can simply return
+itself.
+
+
+
+
Overrides: + TaskCallable.fork +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.JoinParallelException-class.html b/legacy/api/mdp.parallel.JoinParallelException-class.html new file mode 100755 index 0000000..c01d324 --- /dev/null +++ b/legacy/api/mdp.parallel.JoinParallelException-class.html @@ -0,0 +1,198 @@ + + + + + mdp.parallel.JoinParallelException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class JoinParallelException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class JoinParallelException

+
+ +
+
+
+Exception for errors when joining parallel nodes.
+
+
+ + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.ListResultContainer-class.html b/legacy/api/mdp.parallel.ListResultContainer-class.html new file mode 100755 index 0000000..9ae557f --- /dev/null +++ b/legacy/api/mdp.parallel.ListResultContainer-class.html @@ -0,0 +1,346 @@ + + + + + mdp.parallel.ListResultContainer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class ListResultContainer + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ListResultContainer

+
+ +
+
+
+Basic result container using simply a list.
+
+
+ + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self)
+ x.__init__(...) initializes x; see help(type(x)) for signature
+ + +
+ +
+   + + + + + + +
add_result(self, + result, + task_index)
+ Store a result in the container.
+ + +
+ +
+   + + + + + + +
get_results(self)
+ Return the list of results and reset this container.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self) +
(Constructor) +

+
  +
+ +
+x.__init__(...) initializes x; see help(type(x)) for signature
+
+
+
+
Overrides: + object.__init__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

add_result(self, + result, + task_index) +

+
  +
+ +
+Store a result in the container.
+
+
+
+
Overrides: + ResultContainer.add_result +
+
+
+
+ +
+ +
+ + +
+

get_results(self) +

+
  +
+ +
+Return the list of results and reset this container.
+
+Note that the results are stored in the order that they come in, which
+can be different from the orginal task order.
+
+
+
+
Overrides: + ResultContainer.get_results +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.NoTaskException-class.html b/legacy/api/mdp.parallel.NoTaskException-class.html new file mode 100755 index 0000000..c658cfc --- /dev/null +++ b/legacy/api/mdp.parallel.NoTaskException-class.html @@ -0,0 +1,198 @@ + + + + + mdp.parallel.NoTaskException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class NoTaskException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class NoTaskException

+
+ +
+
+
+Exception for problems with the task creation.
+
+
+ + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.NotForkableParallelException-class.html b/legacy/api/mdp.parallel.NotForkableParallelException-class.html new file mode 100755 index 0000000..620dd4e --- /dev/null +++ b/legacy/api/mdp.parallel.NotForkableParallelException-class.html @@ -0,0 +1,201 @@ + + + + + mdp.parallel.NotForkableParallelException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class NotForkableParallelException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class NotForkableParallelException

+
+ +
+
+
+Exception to signal that a fork is not possible.
+
+This exception is can be safely used and should be caught inside the
+ParallelFlow or the Scheduler.
+
+
+ + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.OrderedResultContainer-class.html b/legacy/api/mdp.parallel.OrderedResultContainer-class.html new file mode 100755 index 0000000..8d396e6 --- /dev/null +++ b/legacy/api/mdp.parallel.OrderedResultContainer-class.html @@ -0,0 +1,350 @@ + + + + + mdp.parallel.OrderedResultContainer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class OrderedResultContainer + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class OrderedResultContainer

+
+ +
+
+
+Default result container with automatic restoring of the result order.
+
+In general the order of the incoming results in the scheduler can be
+different from the order of the tasks, since some tasks may finish quicker
+than other tasks. This result container restores the original order.
+
+
+ + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self)
+ x.__init__(...) initializes x; see help(type(x)) for signature
+ + +
+ +
+   + + + + + + +
add_result(self, + result, + task_index)
+ Store a result in the container.
+ + +
+ +
+   + + + + + + +
get_results(self)
+ Sort the results into the original order and return them in list.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self) +
(Constructor) +

+
  +
+ +
+x.__init__(...) initializes x; see help(type(x)) for signature
+
+
+
+
Overrides: + object.__init__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

add_result(self, + result, + task_index) +

+
  +
+ +
+Store a result in the container.
+
+The task index is also stored and later used to reconstruct the
+original task order.
+
+
+
+
Overrides: + ResultContainer.add_result +
+
+
+
+ +
+ +
+ + +
+

get_results(self) +

+
  +
+ +
+Sort the results into the original order and return them in list.
+
+
+
+
Overrides: + ResultContainer.get_results +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.ParallelCheckpointFlow-class.html b/legacy/api/mdp.parallel.ParallelCheckpointFlow-class.html new file mode 100755 index 0000000..4984816 --- /dev/null +++ b/legacy/api/mdp.parallel.ParallelCheckpointFlow-class.html @@ -0,0 +1,1165 @@ + + + + + mdp.parallel.ParallelCheckpointFlow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class ParallelCheckpointFlow + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ParallelCheckpointFlow

+
+ +
+
+
+Parallel version of CheckpointFlow.
+
+Note that train phases are always closed, so e.g. CheckpointSaveFunction
+should not expect open train phases. This is necessary since otherwise
+stop_training() would be called remotely.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + flow, + verbose=False, + **kwargs)
+ Initialize the internal variables.
+ + +
+ +
+   + + + + + + +
_post_stop_training_hook(self)
+ Check if we reached a checkpoint.
+ + +
+ +
+   + + + + + + +
setup_parallel_training(self, + data_iterables, + checkpoints, + train_callable_class=<class 'mdp.parallel.FlowTrainCallable'>, + **kwargs)
+ Checkpoint version of parallel training.
+ + +
+ +
+   + + + + + + +
train(self, + data_iterables, + checkpoints, + scheduler=None, + train_callable_class=<class 'mdp.parallel.FlowTrainCallable'>, + overwrite_result_container=True, + **kwargs)
+ Train all trainable nodes in the flow.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ParallelFlow
+   + + + + + + +
_create_execute_task(self)
+ Create and return a single execution task.
+ + +
+ +
+   + + + + + + +
_create_train_task(self)
+ Create and return a single training task without callable.
+ + +
+ +
+   + + + + + + +
_local_train_phase(self, + data_iterable)
+ Perform a single training phase locally.
+ + +
+ +
+   + + + + + + +
_next_train_phase(self)
+ Find the next phase or node for parallel training.
+ + +
+ +
+   + + + + + + +
execute(self, + iterable, + nodenr=None, + scheduler=None, + execute_callable_class=None, + overwrite_result_container=True)
+ Train all trainable nodes in the flow.
+ + +
+ +
+   + + + + + + +
get_task(self)
+ Return a task either for either training or execution.
+ + +
+ +
+   + + + + + + +
setup_parallel_execution(self, + iterable, + nodenr=None, + execute_callable_class=<class 'mdp.parallel.FlowExecuteCallable'>)
+ Prepare the flow for handing out tasks to do the execution.
+ + +
+ +
+   + + + + + + +
use_results(self, + results)
+ Use the result from the scheduler.
+ + +
+ +
    Inherited from CheckpointFlow
+   + + + + + + +
_train_check_checkpoints(self, + checkpoints) + + +
+ +
    Inherited from Flow
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + iterable, + nodenr=None)
+ Calling an instance is equivalent to call its 'execute' method.
+ + +
+ +
+   + + + + + + +
__contains__(self, + item) + + +
+ +
+   + + + + + + +
__delitem__(self, + key) + + +
+ +
+   + + + + + + +
__getitem__(self, + key) + + +
+ +
+   + + + + + + +
__iadd__(self, + other) + + +
+ +
+   + + + + + + +
__iter__(self) + + +
+ +
+   + + + + + + +
__len__(self) + + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__setitem__(self, + key, + value) + + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_dimension_consistency(self, + out, + inp)
+ Raise ValueError when both dimensions are set and different.
+ + +
+ +
+   + + + + + + +
_check_nodes_consistency(self, + flow=None)
+ Check the dimension consistency of a list of nodes.
+ + +
+ +
+   + + + + + + +
_check_value_type_isnode(self, + value) + + +
+ +
+   + + + + + + +
_close_last_node(self) + + +
+ +
+   + + + + + + +
_execute_seq(self, + x, + nodenr=None) + + +
+ +
+   + + + + + + +
_inverse_seq(self, + x) + + +
+ +
+   + + + + + + +
_propagate_exception(self, + except_, + nodenr) + + +
+ +
+   + + + + + + +
_stop_training_hook(self)
+ Hook method that is called before stop_training is called.
+ + +
+ +
+   + + + + + + +
_train_check_iterables(self, + data_iterables)
+ Return the data iterables after some checks and sanitizing.
+ + +
+ +
+   + + + + + + +
_train_node(self, + data_iterable, + nodenr)
+ Train a single node in the flow.
+ + +
+ +
+   + + + + + + +
append(flow, + node)
+ append node to flow end
+ + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the flow.
+ + +
+ +
+   + + + + + + +
extend(flow, + iterable)
+ extend flow by appending +elements from the iterable
+ + +
+ +
+   + + + + + + +
insert(flow, + index, + node)
+ insert node before index
+ + +
+ +
+   + + + + + + +
inverse(self, + iterable)
+ Process the data through all nodes in the flow backwards +(starting from the last node up to the first node) by calling the +inverse function of each node. Of course, all nodes in the +flow must be invertible.
+ + +
+ +
+ node + + + + + + +
pop(flow, + index=...)
+ remove and return node at index +(default last)
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the flow to 'filename'. +If 'filename' is None, return a string.
+ + +
+ +
+   + + + + + + +
set_crash_recovery(self, + state=True)
+ Set crash recovery capabilities.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Flow
+   + + + + + + +
_get_required_train_args(node)
+ Return arguments in addition to self and x for node.train.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from ParallelFlow
+   + + is_parallel_executing
+ Return True if parallel execution is underway. +
+   + + is_parallel_training
+ Return True if parallel training is underway. +
+   + + task_available
+ Return True if tasks are available, otherwise False. +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + flow, + verbose=False, + **kwargs) +
(Constructor) +

+
  +
+ +
+Initialize the internal variables.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_post_stop_training_hook(self) +

+
  +
+ +
+Check if we reached a checkpoint.
+
+
+
+
Overrides: + ParallelFlow._post_stop_training_hook +
+
+
+
+ +
+ +
+ + +
+

setup_parallel_training(self, + data_iterables, + checkpoints, + train_callable_class=<class 'mdp.parallel.FlowTrainCallable'>, + **kwargs) +

+
  +
+ +
+Checkpoint version of parallel training.
+
+
+
+
Overrides: + ParallelFlow.setup_parallel_training +
+
+
+
+ +
+ +
+ + +
+

train(self, + data_iterables, + checkpoints, + scheduler=None, + train_callable_class=<class 'mdp.parallel.FlowTrainCallable'>, + overwrite_result_container=True, + **kwargs) +

+
  +
+ +
+Train all trainable nodes in the flow.
+
+Same as the train method in ParallelFlow, but with additional support
+of checkpoint functions as in CheckpointFlow.
+
+
+
+
Overrides: + Flow.train +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.ParallelCloneLayer-class.html b/legacy/api/mdp.parallel.ParallelCloneLayer-class.html new file mode 100755 index 0000000..abca170 --- /dev/null +++ b/legacy/api/mdp.parallel.ParallelCloneLayer-class.html @@ -0,0 +1,1342 @@ + + + + + mdp.parallel.ParallelCloneLayer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class ParallelCloneLayer + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ParallelCloneLayer

+
+ +
+
+
+Parallel version of CloneLayer class.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
_fork(self)
+ Fork the internal node in the clone layer.
+ + +
+ +
+   + + + + + + +
_join(self, + forked_node)
+ Join the internal node in the clone layer.
+ + +
+ +
+   + + + + + + +
use_execute_fork(self)
+ Return True if node requires a fork / join even during execution.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from hinet.CloneLayer
+   + + + + + + +
__init__(self, + node, + n_nodes=1, + dtype=None)
+ Setup the layer with the given list of nodes.
+ + +
+ +
+   + + + + + + +
_execute(self, + x, + *args, + **kwargs)
+ Process the data through the internal nodes.
+ + +
+ +
+   + + + + + + +
_inverse(self, + x, + *args, + **kwargs)
+ Combine the inverse of all the internal nodes.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs)
+ Stop training of the internal node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data through the internal nodes.
+ + +
+ +
+   + + + + + + +
inverse(self, + x, + *args, + **kwargs)
+ Combine the inverse of all the internal nodes.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop training of the internal node.
+ + +
+ +
    Inherited from hinet.Layer
+   + + + + + + +
__contains__(self, + item) + + +
+ +
+   + + + + + + +
__getitem__(self, + key) + + +
+ +
+   + + + + + + +
__iter__(self) + + +
+ +
+   + + + + + + +
__len__(self) + + +
+ +
+   + + + + + + +
_check_props(self, + dtype)
+ Check the compatibility of the properties of the internal nodes.
+ + +
+ +
+   + + + + + + +
_get_output_dim_from_nodes(self)
+ Calculate the output_dim from the nodes and return it.
+ + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self)
+ Return the train sequence.
+ + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ Make sure that output_dim is set and then perform normal checks.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_train(self, + x, + *args, + **kwargs)
+ Perform single training step by training the internal nodes.
+ + +
+ +
+   + + + + + + +
is_invertible(self)
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable(self)
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Perform single training step by training the internal nodes.
+ + +
+ +
    Inherited from ParallelExtensionNode
+   + + + + + + +
_default_fork(self)
+ Default implementation of _fork.
+ + +
+ +
+   + + + + + + +
fork(self)
+ Return a new instance of this node class for remote training.
+ + +
+ +
+   + + + + + + +
join(self, + forked_node)
+ Absorb the trained node from a fork into this parent node.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from ParallelExtensionNode
+   + + + + + + +
_join_covariance(cov, + forked_cov)
+ Helper method to join two CovarianceMatrix instances.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Class Variables[hide private]
+
    Inherited from ParallelExtensionNode
+   + + extension_name = 'parallel'
+ hash(x) +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

_fork(self) +

+
  +
+ +
+Fork the internal node in the clone layer.
+
+
+
+
Overrides: + ParallelExtensionNode._fork +
+
+
+
+ +
+ +
+ + +
+

_join(self, + forked_node) +

+
  +
+ +
+Join the internal node in the clone layer.
+
+
+
+
Overrides: + ParallelExtensionNode._join +
+
+
+
+ +
+ +
+ + +
+

use_execute_fork(self) +

+
  +
+ +
+Return True if node requires a fork / join even during execution.
+
+The default output is False, overwrite this method if required.
+
+Note that the same fork and join methods are used as during training,
+so the distinction must be implemented in the custom _fork and _join
+methods.
+
+
+
+
Overrides: + ParallelExtensionNode.use_execute_fork +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.ParallelExtensionNode-class.html b/legacy/api/mdp.parallel.ParallelExtensionNode-class.html new file mode 100755 index 0000000..1967b6b --- /dev/null +++ b/legacy/api/mdp.parallel.ParallelExtensionNode-class.html @@ -0,0 +1,1386 @@ + + + + + mdp.parallel.ParallelExtensionNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class ParallelExtensionNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ParallelExtensionNode

+
+ +
+
+
+Base class for parallel trainable MDP nodes.
+
+With the fork method new node instances are created which can then be
+trained. With the join method the trained instances are then merged back
+into a single node instance.
+
+This class defines default methods which raise a
+TrainingPhaseNotParallelException exception.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
_default_fork(self)
+ Default implementation of _fork.
+ + +
+ +
+   + + + + + + +
_fork(self)
+ Hook method for forking with default implementation.
+ + +
+ +
+   + + + + + + +
_join(self, + forked_node)
+ Hook method for joining, to be overridden.
+ + +
+ +
+   + + + + + + +
fork(self)
+ Return a new instance of this node class for remote training.
+ + +
+ +
+   + + + + + + +
join(self, + forked_node)
+ Absorb the trained node from a fork into this parent node.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None)
+ If the input dimension and the output dimension are +unspecified, they will be set when the train or execute +method is called for the first time. +If dtype is unspecified, it will be inherited from the data +it receives at the first call of train or execute.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
_join_covariance(cov, + forked_cov)
+ Helper method to join two CovarianceMatrix instances.
+ + +
+ +
+   + + + + + + +
use_execute_fork()
+ Return True if node requires a fork / join even during execution.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Class Variables[hide private]
+
+   + + extension_name = 'parallel'
+ hash(x) +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

_default_fork(self) +

+
  +
+ +
+Default implementation of _fork.
+
+It uses introspection to determine the init kwargs and tries to fill
+them with attributes. These kwargs are then used to instanciate
+self.__class__ to create the fork instance.
+
+So you can use this method if all the required keys are also public
+attributes or have a single underscore in front.
+
+There are two reasons why this method does not simply replace _fork
+of ParallelExtensionNode (plus removing Node from the
+inheritance list):
+- If a node is not parallelized _fork raises an exception, as do nodes
+    which can not fork due to some other reasons. Without this bahavior
+    of _fork we would have to check with hasattr first if fork is
+    present, adding more complexity at other places (mostly in
+    container nodes).
+- This is a safeguard forcing users to think a little instead of
+    relying on the inherited (but possibly incompatible)
+    default implementation.
+
+
+
+
+
+
+ +
+ +
+ + +
+

_fork(self) +

+
  +
+ +
+Hook method for forking with default implementation.
+
+Overwrite this method for nodes that can be parallelized.
+You can use _default_fork, if that is compatible with your node class,
+typically the hard part is the joining.
+
+
+
+
+
+
+ +
+ +
+ + +
+

_join(self, + forked_node) +

+
  +
+ +
+Hook method for joining, to be overridden.
+
+
+
+
+
+
+ +
+ +
+ + +
+

_join_covariance(cov, + forked_cov) +
Static Method +

+
  +
+ +
+Helper method to join two CovarianceMatrix instances.
+
+cov -- Instance of CovarianceMatrix, to which the forked_cov instance
+    is aded in-place.
+
+
+
+
+
+
+ +
+ +
+ + +
+

fork(self) +

+
  +
+ +
+Return a new instance of this node class for remote training.
+
+This is a template method, the actual forking should be implemented in
+_fork.
+
+The forked node should be a ParallelNode of the same class as well,
+thus allowing recursive forking and joining.
+
+
+
+
+
+
+ +
+ +
+ + +
+

join(self, + forked_node) +

+
  +
+ +
+Absorb the trained node from a fork into this parent node.
+
+This is a template method, the actual joining should be implemented in
+_join.
+
+
+
+
+
+
+ +
+ +
+ + +
+

use_execute_fork() +
Static Method +

+
  +
+ +
+Return True if node requires a fork / join even during execution.
+
+The default output is False, overwrite this method if required.
+
+Note that the same fork and join methods are used as during training,
+so the distinction must be implemented in the custom _fork and _join
+methods.
+
+
+
+
+
+
+
+ + + + + + +
+ + + + + +
Class Variable Details[hide private]
+
+ +
+ +
+

extension_name

+
+hash(x)
+
+
+
+
+
+
Value:
+
+'parallel'
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.ParallelFDANode-class.html b/legacy/api/mdp.parallel.ParallelFDANode-class.html new file mode 100755 index 0000000..02e0679 --- /dev/null +++ b/legacy/api/mdp.parallel.ParallelFDANode-class.html @@ -0,0 +1,1346 @@ + + + + + mdp.parallel.ParallelFDANode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class ParallelFDANode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ParallelFDANode

+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
_fork(self)
+ Hook method for forking with default implementation.
+ + +
+ +
+   + + + + + + +
_join(self, + forked_node)
+ Hook method for joining, to be overridden.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ParallelExtensionNode
+   + + + + + + +
_default_fork(self)
+ Default implementation of _fork.
+ + +
+ +
+   + + + + + + +
fork(self)
+ Return a new instance of this node class for remote training.
+ + +
+ +
+   + + + + + + +
join(self, + forked_node)
+ Absorb the trained node from a fork into this parent node.
+ + +
+ +
    Inherited from nodes.FDANode
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'FDANode'.
+ + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + labels) + + +
+ +
+ numpy.ndarray + + + + + + +
_execute(self, + x, + n=None)
+ Compute the output of the FDA projection.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_inverse(self, + y) + + +
+ +
+   + + + + + + +
_stop_fda(self)
+ Solve the eigenvalue problem for the total covariance.
+ + +
+ +
+   + + + + + + +
_stop_means(self)
+ Calculate the class means.
+ + +
+ +
+   + + + + + + +
_train(self, + x, + label)
+ Update the internal structures according to the input data 'x'.
+ + +
+ +
+   + + + + + + +
_train_fda(self, + x, + labels)
+ Gather data for the overall and within-class covariance
+ + +
+ +
+   + + + + + + +
_train_means(self, + x, + labels)
+ Gather data to compute the means and number of elements.
+ + +
+ +
+   + + + + + + +
_update_SW(self, + x, + label)
+ Update the covariance matrix of the class means.
+ + +
+ +
+   + + + + + + +
_update_means(self, + x, + label)
+ Update the internal variables that store the data for the means.
+ + +
+ +
+ numpy.ndarray + + + + + + +
execute(self, + x, + n=None)
+ Compute the output of the FDA projection.
+ + +
+ +
+   + + + + + + +
inverse(self, + y)
+ Invert y.
+ + +
+ +
+   + + + + + + +
train(self, + x, + label)
+ Update the internal structures according to the input data 'x'.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from ParallelExtensionNode
+   + + + + + + +
_join_covariance(cov, + forked_cov)
+ Helper method to join two CovarianceMatrix instances.
+ + +
+ +
+   + + + + + + +
use_execute_fork()
+ Return True if node requires a fork / join even during execution.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Class Variables[hide private]
+
    Inherited from ParallelExtensionNode
+   + + extension_name = 'parallel'
+ hash(x) +
+ + + + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
    Inherited from nodes.FDANode
+   + + avg
+ Mean of the input data (available after training). +
+   + + v
+ Transposed of the projection matrix, so that +output = dot(input-self.avg, self.v) (available after training). +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

_fork(self) +

+
  +
+ +
+Hook method for forking with default implementation.
+
+Overwrite this method for nodes that can be parallelized.
+You can use _default_fork, if that is compatible with your node class,
+typically the hard part is the joining.
+
+
+
+
Overrides: + ParallelExtensionNode._fork +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_join(self, + forked_node) +

+
  +
+ +
+Hook method for joining, to be overridden.
+
+
+
+
Overrides: + ParallelExtensionNode._join +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.ParallelFlow-class.html b/legacy/api/mdp.parallel.ParallelFlow-class.html new file mode 100755 index 0000000..b966dff --- /dev/null +++ b/legacy/api/mdp.parallel.ParallelFlow-class.html @@ -0,0 +1,1518 @@ + + + + + mdp.parallel.ParallelFlow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class ParallelFlow + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ParallelFlow

+
+ +
+
+
+A parallel flow provides the methods for parallel training / execution.
+
+Nodes in the flow which are not derived from ParallelNode are trained in
+the normal way. The training is also done normally if fork() raises a
+TrainingPhaseNotParallelException. This can be intentionally used by the
+node to request local training without forking.
+Parallel execution on the other hand should work for all nodes, since it
+only relies on the copy method of nodes.
+The stop_training method is always called locally, with no forking or
+copying involved.
+
+Both parallel training and execution can be done conveniently by providing
+a scheduler instance to the train or execute method.
+It is also possible to manage the tasks manually. This is done via the
+methods setup_parallel_training (or execution), get_task and use_results.
+The code of the train / execute method can serve as an example how to use
+these methods and process the tasks by a scheduler.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + flow, + verbose=False, + **kwargs)
+ Initialize the internal variables.
+ + +
+ +
+   + + + + + + +
_create_execute_task(self)
+ Create and return a single execution task.
+ + +
+ +
+   + + + + + + +
_create_train_task(self)
+ Create and return a single training task without callable.
+ + +
+ +
+   + + + + + + +
_local_train_phase(self, + data_iterable)
+ Perform a single training phase locally.
+ + +
+ +
+   + + + + + + +
_next_train_phase(self)
+ Find the next phase or node for parallel training.
+ + +
+ +
+   + + + + + + +
_post_stop_training_hook(self)
+ Hook method that is called after stop_training is called.
+ + +
+ +
+   + + + + + + +
execute(self, + iterable, + nodenr=None, + scheduler=None, + execute_callable_class=None, + overwrite_result_container=True)
+ Train all trainable nodes in the flow.
+ + +
+ +
+   + + + + + + +
get_task(self)
+ Return a task either for either training or execution.
+ + +
+ +
+   + + + + + + +
setup_parallel_execution(self, + iterable, + nodenr=None, + execute_callable_class=<class 'mdp.parallel.FlowExecuteCallable'>)
+ Prepare the flow for handing out tasks to do the execution.
+ + +
+ +
+   + + + + + + +
setup_parallel_training(self, + data_iterables, + train_callable_class=<class 'mdp.parallel.FlowTrainCallable'>)
+ Prepare the flow for handing out tasks to do the training.
+ + +
+ +
+   + + + + + + +
train(self, + data_iterables, + scheduler=None, + train_callable_class=None, + overwrite_result_container=True, + **kwargs)
+ Train all trainable nodes in the flow.
+ + +
+ +
+   + + + + + + +
use_results(self, + results)
+ Use the result from the scheduler.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from Flow
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + iterable, + nodenr=None)
+ Calling an instance is equivalent to call its 'execute' method.
+ + +
+ +
+   + + + + + + +
__contains__(self, + item) + + +
+ +
+   + + + + + + +
__delitem__(self, + key) + + +
+ +
+   + + + + + + +
__getitem__(self, + key) + + +
+ +
+   + + + + + + +
__iadd__(self, + other) + + +
+ +
+   + + + + + + +
__iter__(self) + + +
+ +
+   + + + + + + +
__len__(self) + + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__setitem__(self, + key, + value) + + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_dimension_consistency(self, + out, + inp)
+ Raise ValueError when both dimensions are set and different.
+ + +
+ +
+   + + + + + + +
_check_nodes_consistency(self, + flow=None)
+ Check the dimension consistency of a list of nodes.
+ + +
+ +
+   + + + + + + +
_check_value_type_isnode(self, + value) + + +
+ +
+   + + + + + + +
_close_last_node(self) + + +
+ +
+   + + + + + + +
_execute_seq(self, + x, + nodenr=None) + + +
+ +
+   + + + + + + +
_inverse_seq(self, + x) + + +
+ +
+   + + + + + + +
_propagate_exception(self, + except_, + nodenr) + + +
+ +
+   + + + + + + +
_stop_training_hook(self)
+ Hook method that is called before stop_training is called.
+ + +
+ +
+   + + + + + + +
_train_check_iterables(self, + data_iterables)
+ Return the data iterables after some checks and sanitizing.
+ + +
+ +
+   + + + + + + +
_train_node(self, + data_iterable, + nodenr)
+ Train a single node in the flow.
+ + +
+ +
+   + + + + + + +
append(flow, + node)
+ append node to flow end
+ + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the flow.
+ + +
+ +
+   + + + + + + +
extend(flow, + iterable)
+ extend flow by appending +elements from the iterable
+ + +
+ +
+   + + + + + + +
insert(flow, + index, + node)
+ insert node before index
+ + +
+ +
+   + + + + + + +
inverse(self, + iterable)
+ Process the data through all nodes in the flow backwards +(starting from the last node up to the first node) by calling the +inverse function of each node. Of course, all nodes in the +flow must be invertible.
+ + +
+ +
+ node + + + + + + +
pop(flow, + index=...)
+ remove and return node at index +(default last)
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the flow to 'filename'. +If 'filename' is None, return a string.
+ + +
+ +
+   + + + + + + +
set_crash_recovery(self, + state=True)
+ Set crash recovery capabilities.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from Flow
+   + + + + + + +
_get_required_train_args(node)
+ Return arguments in addition to self and x for node.train.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+   + + is_parallel_executing
+ Return True if parallel execution is underway. +
+   + + is_parallel_training
+ Return True if parallel training is underway. +
+   + + task_available
+ Return True if tasks are available, otherwise False. +
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + flow, + verbose=False, + **kwargs) +
(Constructor) +

+
  +
+ +
+Initialize the internal variables.
+
+Note that the crash_recovery flag is is not supported, so it is
+disabled.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_create_execute_task(self) +

+
  +
+ +
+Create and return a single execution task.
+
+Returns None if data iterator end is reached.
+
+
+
+
+
+
+ +
+ +
+ + +
+

_create_train_task(self) +

+
  +
+ +
+Create and return a single training task without callable.
+
+Returns None if data iterator end is reached.
+
+
+
+
+
+
+ +
+ +
+ + +
+

_local_train_phase(self, + data_iterable) +

+
  +
+ +
+Perform a single training phase locally.
+
+The internal _train_callable_class is used for the training.
+
+
+
+
+
+
+ +
+ +
+ + +
+

_next_train_phase(self) +

+
  +
+ +
+Find the next phase or node for parallel training.
+
+When it is found the corresponding internal variables are set.
+Nodes which are not derived from ParallelNode are trained locally.
+If a fork() fails due to a TrainingPhaseNotParallelException
+in a certain train phase, then the training is done locally as well
+(but fork() is tested again for the next phase).
+
+
+
+
+
+
+ +
+ +
+ + +
+

_post_stop_training_hook(self) +

+
  +
+ +
+Hook method that is called after stop_training is called.
+
+
+
+
+
+
+ +
+ +
+ + +
+

execute(self, + iterable, + nodenr=None, + scheduler=None, + execute_callable_class=None, + overwrite_result_container=True) +

+
  +
+ +
+Train all trainable nodes in the flow.
+
+If a scheduler is provided the execution will be done in parallel on
+the scheduler.
+
+iterable -- An iterable or iterator that returns data arrays that are
+    used as input to the flow. Alternatively, one can specify one
+    data array as input.
+    If a custom execute_callable_class is used to preprocess the data
+    then other data types can be used as well.
+nodenr -- Same as in normal flow, the flow is only executed up to the
+    nodenr.
+scheduler -- Value can be either None for normal execution (default
+    value) or a Scheduler instance for parallel execution with the
+    scheduler.
+execute_callable_class -- Class used to create execution callables for
+    the scheduler. By specifying your own class you can implement data
+    transformations before the data is actually fed into the flow
+    (e.g. from 8 bit image to 64 bit double precision).
+    Note that the execute_callable_class is only used if a scheduler was
+    provided. If a scheduler is provided the default class used is
+    NodeResultContainer.
+overwrite_result_container -- If set to True (default value) then
+    the result container in the scheduler will be overwritten with an
+    instance of OrderedResultContainer (unless it is already an
+    instance of OrderedResultContainer). Otherwise the results might
+    have a different order than the data chunks, which could mess up
+    any subsequent analysis.
+
+
+
+
Overrides: + Flow.execute +
+
+
+
+ +
+ +
+ + +
+

get_task(self) +

+
  +
+ +
+Return a task either for either training or execution.
+
+A a one task buffer is used to make task_available work.
+tasks are available as long as need_result returns False or all the
+training / execution is done. If no tasks are available a
+NoTaskException is raised.
+
+
+
+
+
+
+ +
+ +
+ + +
+

setup_parallel_execution(self, + iterable, + nodenr=None, + execute_callable_class=<class 'mdp.parallel.FlowExecuteCallable'>) +

+
  +
+ +
+Prepare the flow for handing out tasks to do the execution.
+
+After calling setup_parallel_execution one has to pick up the
+tasks with get_task, run them and finally return the results via
+use_results. use_results will then return the result as if the flow was
+executed in the normal way.
+
+iterable -- An iterable or iterator that returns data arrays that are
+    used as input to the flow. Alternatively, one can specify one
+    data array as input.
+    If a custom execute_callable_class is used to preprocess the data
+    then other data types can be used as well.
+nodenr -- Same as in normal flow, the flow is only executed up to the
+    nodenr.
+execute_callable_class -- Class used to create execution callables for
+    the scheduler. By specifying your own class you can implement data
+    transformations before the data is actually fed into the flow
+    (e.g. from 8 bit image to 64 bit double precision).
+
+
+
+
+
+
+ +
+ +
+ + +
+

setup_parallel_training(self, + data_iterables, + train_callable_class=<class 'mdp.parallel.FlowTrainCallable'>) +

+
  +
+ +
+Prepare the flow for handing out tasks to do the training.
+
+After calling setup_parallel_training one has to pick up the
+tasks with get_task, run them and finally return the results via
+use_results. tasks are available as long as task_available returns
+True. Training may require multiple phases, which are each closed by
+calling use_results.
+
+data_iterables -- A list of iterables, one for each node in the flow.
+    The iterators returned by the iterables must
+    return data arrays that are then used for the node training.
+    See Flow.train for more details.
+    If a custom train_callable_class is used to preprocess the data
+    then other data types can be used as well.
+train_callable_class -- Class used to create training callables for the
+    scheduler. By specifying your own class you can implement data
+    transformations before the data is actually fed into the flow
+    (e.g. from 8 bit image to 64 bit double precision).
+
+
+
+
+
+
+ +
+ +
+ + +
+

train(self, + data_iterables, + scheduler=None, + train_callable_class=None, + overwrite_result_container=True, + **kwargs) +

+
  +
+ +
+Train all trainable nodes in the flow.
+
+If a scheduler is provided the training will be done in parallel on the
+scheduler.
+
+data_iterables -- A list of iterables, one for each node in the flow.
+    The iterators returned by the iterables must
+    return data arrays that are then used for the node training.
+    See Flow.train for more details.
+    If a custom train_callable_class is used to preprocess the data
+    then other data types can be used as well.
+scheduler -- Value can be either None for normal training (default
+    value) or a Scheduler instance for parallel training with the
+    scheduler.
+    If the scheduler value is an iterable or iterator then it is
+    assumed that it contains a scheduler for each training phase.
+    After a node has been trained the scheduler is shutdown. Note that
+    you can e.g. use a generator to create the schedulers just in time.
+    For nodes which are not trained the scheduler can be None.
+train_callable_class -- Class used to create training callables for the
+    scheduler. By specifying your own class you can implement data
+    transformations before the data is actually fed into the flow
+    (e.g. from 8 bit image to 64 bit double precision).
+    Note that the train_callable_class is only used if a scheduler was
+    provided. By default NodeResultContainer is used.
+overwrite_result_container -- If set to True (default value) then
+    the result container in the scheduler will be overwritten with an
+    instance of NodeResultContainer (unless it is already an instance
+    of NodeResultContainer). This improves the memory efficiency.
+
+
+
+
Overrides: + Flow.train +
+
+
+
+ +
+ +
+ + +
+

use_results(self, + results) +

+
  +
+ +
+Use the result from the scheduler.
+
+During parallel training this will start the next training phase.
+For parallel execution this will return the result, like a normal
+execute would.
+
+results -- Iterable containing the results, normally the return value
+    of scheduler.ResultContainer.get_results().
+    The individual results can be the return values of the tasks.
+
+
+
+
+
+
+
+ + + + + + +
+ + + + + +
Property Details[hide private]
+
+ +
+ +
+

is_parallel_executing

+
+Return True if parallel execution is underway.
+
+
+
+
Get Method:
+
unreachable.is_parallel_executing(self) + - Return True if parallel execution is underway. +
+
+
+
+ +
+ +
+

is_parallel_training

+
+Return True if parallel training is underway.
+
+
+
+
Get Method:
+
unreachable.is_parallel_training(self) + - Return True if parallel training is underway. +
+
+
+
+ +
+ +
+

task_available

+
+Return True if tasks are available, otherwise False.
+
+If False is returned this can indicate that results are needed to
+continue training.
+
+
+
+
Get Method:
+
unreachable.task_available(self) + - Return True if tasks are available, otherwise False. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.ParallelFlowException-class.html b/legacy/api/mdp.parallel.ParallelFlowException-class.html new file mode 100755 index 0000000..39387f0 --- /dev/null +++ b/legacy/api/mdp.parallel.ParallelFlowException-class.html @@ -0,0 +1,198 @@ + + + + + mdp.parallel.ParallelFlowException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class ParallelFlowException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ParallelFlowException

+
+ +
+
+
+Standard exception for problems with ParallelFlow.
+
+
+ + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.ParallelFlowNode-class.html b/legacy/api/mdp.parallel.ParallelFlowNode-class.html new file mode 100755 index 0000000..9061dd1 --- /dev/null +++ b/legacy/api/mdp.parallel.ParallelFlowNode-class.html @@ -0,0 +1,1325 @@ + + + + + mdp.parallel.ParallelFlowNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class ParallelFlowNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ParallelFlowNode

+
+ +
+
+
+Parallel version of FlowNode.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
_fork(self)
+ Fork nodes that require it, reference all other nodes.
+ + +
+ +
+   + + + + + + +
_join(self, + forked_node)
+ Join the required nodes from the forked node into this FlowNode.
+ + +
+ +
+   + + + + + + +
use_execute_fork(self)
+ Return True if node requires a fork / join even during execution.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from hinet.FlowNode
+   + + + + + + +
__contains__(self, + item) + + +
+ +
+   + + + + + + +
__getitem__(self, + key) + + +
+ +
+   + + + + + + +
__init__(self, + flow, + input_dim=None, + output_dim=None, + dtype=None)
+ Wrap the given flow into this node.
+ + +
+ +
+   + + + + + + +
__iter__(self) + + +
+ +
+   + + + + + + +
__len__(self) + + +
+ +
+   + + + + + + +
_execute(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_fix_nodes_dimensions(self)
+ Try to fix the dimensions of the internal nodes.
+ + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self)
+ Return a training sequence containing all training phases.
+ + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a copy of this node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data contained in `x`.
+ + +
+ +
+   + + + + + + +
inverse(self, + x)
+ Invert `y`.
+ + +
+ +
+   + + + + + + +
is_invertible(self)
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable(self)
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
    Inherited from ParallelExtensionNode
+   + + + + + + +
_default_fork(self)
+ Default implementation of _fork.
+ + +
+ +
+   + + + + + + +
fork(self)
+ Return a new instance of this node class for remote training.
+ + +
+ +
+   + + + + + + +
join(self, + forked_node)
+ Absorb the trained node from a fork into this parent node.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_train(self, + x) + + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop the training phase.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Update the internal structures according to the input data x.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from ParallelExtensionNode
+   + + + + + + +
_join_covariance(cov, + forked_cov)
+ Helper method to join two CovarianceMatrix instances.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Class Variables[hide private]
+
    Inherited from ParallelExtensionNode
+   + + extension_name = 'parallel'
+ hash(x) +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from hinet.FlowNode
+   + + flow
+ Read-only internal flow property. +
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

_fork(self) +

+
  +
+ +
+Fork nodes that require it, reference all other nodes.
+
+If a required fork() fails the exception is not caught here.
+
+
+
+
Overrides: + ParallelExtensionNode._fork +
+
+
+
+ +
+ +
+ + +
+

_join(self, + forked_node) +

+
  +
+ +
+Join the required nodes from the forked node into this FlowNode.
+
+
+
+
Overrides: + ParallelExtensionNode._join +
+
+
+
+ +
+ +
+ + +
+

use_execute_fork(self) +

+
  +
+ +
+Return True if node requires a fork / join even during execution.
+
+The default output is False, overwrite this method if required.
+
+Note that the same fork and join methods are used as during training,
+so the distinction must be implemented in the custom _fork and _join
+methods.
+
+
+
+
Overrides: + ParallelExtensionNode.use_execute_fork +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.ParallelHistogramNode-class.html b/legacy/api/mdp.parallel.ParallelHistogramNode-class.html new file mode 100755 index 0000000..561a2ad --- /dev/null +++ b/legacy/api/mdp.parallel.ParallelHistogramNode-class.html @@ -0,0 +1,1205 @@ + + + + + mdp.parallel.ParallelHistogramNode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class ParallelHistogramNode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ParallelHistogramNode

+
+ +
+
+
+Parallel version of the HistogramNode.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
_fork(self)
+ Hook method for forking with default implementation.
+ + +
+ +
+   + + + + + + +
_join(self, + forked_node)
+ Hook method for joining, to be overridden.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ParallelExtensionNode
+   + + + + + + +
_default_fork(self)
+ Default implementation of _fork.
+ + +
+ +
+   + + + + + + +
fork(self)
+ Return a new instance of this node class for remote training.
+ + +
+ +
+   + + + + + + +
join(self, + forked_node)
+ Absorb the trained node from a fork into this parent node.
+ + +
+ +
    Inherited from nodes.HistogramNode
+   + + + + + + +
__init__(self, + hist_fraction=1.0, + hist_filename=None, + input_dim=None, + output_dim=None, + dtype=None)
+ Initializes an object of type 'HistogramNode'.
+ + +
+ +
+ list + + + + + + +
_get_supported_dtypes(self)
+ Return the data types supported by this node.
+ + +
+ +
+   + + + + + + +
_stop_training(self)
+ Pickle the histogram data to file and clear it if required.
+ + +
+ +
+   + + + + + + +
_train(self, + x)
+ Store the history data.
+ + +
+ +
+   + + + + + + +
stop_training(self)
+ Pickle the histogram data to file and clear it if required.
+ + +
+ +
+   + + + + + + +
train(self, + x)
+ Store the history data.
+ + +
+ +
    Inherited from PreserveDimNode
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_execute(self, + x) + + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_inverse(self, + x) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data contained in x.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
inverse(self, + y, + *args, + **kwargs)
+ Invert y.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from ParallelExtensionNode
+   + + + + + + +
_join_covariance(cov, + forked_cov)
+ Helper method to join two CovarianceMatrix instances.
+ + +
+ +
+   + + + + + + +
use_execute_fork()
+ Return True if node requires a fork / join even during execution.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Class Variables[hide private]
+
    Inherited from ParallelExtensionNode
+   + + extension_name = 'parallel'
+ hash(x) +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

_fork(self) +

+
  +
+ +
+Hook method for forking with default implementation.
+
+Overwrite this method for nodes that can be parallelized.
+You can use _default_fork, if that is compatible with your node class,
+typically the hard part is the joining.
+
+
+
+
Overrides: + ParallelExtensionNode._fork +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_join(self, + forked_node) +

+
  +
+ +
+Hook method for joining, to be overridden.
+
+
+
+
Overrides: + ParallelExtensionNode._join +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.ParallelLayer-class.html b/legacy/api/mdp.parallel.ParallelLayer-class.html new file mode 100755 index 0000000..377adb0 --- /dev/null +++ b/legacy/api/mdp.parallel.ParallelLayer-class.html @@ -0,0 +1,1338 @@ + + + + + mdp.parallel.ParallelLayer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class ParallelLayer + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ParallelLayer

+
+ +
+
+
+Parallel version of a Layer.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
_fork(self)
+ Fork or copy all the nodes in the layer to fork the layer.
+ + +
+ +
+   + + + + + + +
_join(self, + forked_node)
+ Join the trained nodes from the forked layer.
+ + +
+ +
+   + + + + + + +
use_execute_fork(self)
+ Return True if node requires a fork / join even during execution.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from hinet.Layer
+   + + + + + + +
__contains__(self, + item) + + +
+ +
+   + + + + + + +
__getitem__(self, + key) + + +
+ +
+   + + + + + + +
__init__(self, + nodes, + dtype=None)
+ Setup the layer with the given list of nodes.
+ + +
+ +
+   + + + + + + +
__iter__(self) + + +
+ +
+   + + + + + + +
__len__(self) + + +
+ +
+   + + + + + + +
_check_props(self, + dtype)
+ Check the compatibility of the properties of the internal nodes.
+ + +
+ +
+   + + + + + + +
_execute(self, + x, + *args, + **kwargs)
+ Process the data through the internal nodes.
+ + +
+ +
+   + + + + + + +
_get_output_dim_from_nodes(self)
+ Calculate the output_dim from the nodes and return it.
+ + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self)
+ Return the train sequence.
+ + +
+ +
+   + + + + + + +
_inverse(self, + x, + *args, + **kwargs)
+ Combine the inverse of all the internal nodes.
+ + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ Make sure that output_dim is set and then perform normal checks.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_stop_training(self, + *args, + **kwargs)
+ Stop training of the internal nodes.
+ + +
+ +
+   + + + + + + +
_train(self, + x, + *args, + **kwargs)
+ Perform single training step by training the internal nodes.
+ + +
+ +
+   + + + + + + +
execute(self, + x, + *args, + **kwargs)
+ Process the data through the internal nodes.
+ + +
+ +
+   + + + + + + +
inverse(self, + x, + *args, + **kwargs)
+ Combine the inverse of all the internal nodes.
+ + +
+ +
+   + + + + + + +
is_invertible(self)
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable(self)
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+   + + + + + + +
stop_training(self, + *args, + **kwargs)
+ Stop training of the internal nodes.
+ + +
+ +
+   + + + + + + +
train(self, + x, + *args, + **kwargs)
+ Perform single training step by training the internal nodes.
+ + +
+ +
    Inherited from ParallelExtensionNode
+   + + + + + + +
_default_fork(self)
+ Default implementation of _fork.
+ + +
+ +
+   + + + + + + +
fork(self)
+ Return a new instance of this node class for remote training.
+ + +
+ +
+   + + + + + + +
join(self, + forked_node)
+ Absorb the trained node from a fork into this parent node.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from ParallelExtensionNode
+   + + + + + + +
_join_covariance(cov, + forked_cov)
+ Helper method to join two CovarianceMatrix instances.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Class Variables[hide private]
+
    Inherited from ParallelExtensionNode
+   + + extension_name = 'parallel'
+ hash(x) +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

_fork(self) +

+
  +
+ +
+Fork or copy all the nodes in the layer to fork the layer.
+
+
+
+
Overrides: + ParallelExtensionNode._fork +
+
+
+
+ +
+ +
+ + +
+

_join(self, + forked_node) +

+
  +
+ +
+Join the trained nodes from the forked layer.
+
+
+
+
Overrides: + ParallelExtensionNode._join +
+
+
+
+ +
+ +
+ + +
+

use_execute_fork(self) +

+
  +
+ +
+Return True if node requires a fork / join even during execution.
+
+The default output is False, overwrite this method if required.
+
+Note that the same fork and join methods are used as during training,
+so the distinction must be implemented in the custom _fork and _join
+methods.
+
+
+
+
Overrides: + ParallelExtensionNode.use_execute_fork +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.ParallelSFANode-class.html b/legacy/api/mdp.parallel.ParallelSFANode-class.html new file mode 100755 index 0000000..a4f5e85 --- /dev/null +++ b/legacy/api/mdp.parallel.ParallelSFANode-class.html @@ -0,0 +1,1338 @@ + + + + + mdp.parallel.ParallelSFANode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class ParallelSFANode + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ParallelSFANode

+
+ +
+
+
+Parallel version of MDP SFA node.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
_fork(self)
+ Hook method for forking with default implementation.
+ + +
+ +
+   + + + + + + +
_join(self, + forked_node)
+ Combine the covariance matrices.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from ParallelExtensionNode
+   + + + + + + +
_default_fork(self)
+ Default implementation of _fork.
+ + +
+ +
+   + + + + + + +
fork(self)
+ Return a new instance of this node class for remote training.
+ + +
+ +
+   + + + + + + +
join(self, + forked_node)
+ Absorb the trained node from a fork into this parent node.
+ + +
+ +
    Inherited from nodes.SFANode
+   + + + + + + +
__init__(self, + input_dim=None, + output_dim=None, + dtype=None, + include_last_sample=True, + rank_deficit_method='none')
+ Initialize an object of type 'SFANode'.
+ + +
+ +
+   + + + + + + +
_check_train_args(self, + x, + *args, + **kwargs)
+ Raises exception if time dimension does not have enough elements.
+ + +
+ +
+ numpy.ndarray + + + + + + +
_execute(self, + x, + n=None)
+ Compute the output of the slowest functions.
+ + +
+ +
+   + + + + + + +
_init_cov(self) + + +
+ +
+   + + + + + + +
_inverse(self, + y) + + +
+ +
+   + + + + + + +
_set_range(self) + + +
+ +
+   + + + + + + +
_stop_training(self, + debug=False) + + +
+ +
+   + + + + + + +
_train(self, + x, + include_last_sample=None)
+ Training method.
+ + +
+ +
+ numpy.ndarray + + + + + + +
execute(self, + x, + n=None)
+ Compute the output of the slowest functions.
+ + +
+ +
+   + + + + + + +
get_eta_values(self, + t=1)
+ Return the eta values of the slow components learned during +the training phase. If the training phase has not been completed +yet, call stop_training.
+ + +
+ +
+   + + + + + + +
inverse(self, + y)
+ Invert y.
+ + +
+ +
+   + + + + + + +
set_rank_deficit_method(self, + rank_deficit_method) + + +
+ +
+   + + + + + + +
stop_training(self, + debug=False)
+ Stop the training phase.
+ + +
+ +
+ numpy.ndarray + + + + + + +
time_derivative(self, + x)
+ Compute the linear approximation of the time derivative
+ + +
+ +
+   + + + + + + +
train(self, + x, + include_last_sample=None)
+ Training method.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
__add__(self, + other) + + +
+ +
+   + + + + + + +
__call__(self, + x, + *args, + **kwargs)
+ Calling an instance of Node is equivalent to calling +its execute method.
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
__str__(self)
+ str(x)
+ + +
+ +
+   + + + + + + +
_check_input(self, + x) + + +
+ +
+   + + + + + + +
_check_output(self, + y) + + +
+ +
+   + + + + + + +
_get_supported_dtypes(self)
+ Return the list of dtypes supported by this node.
+ + +
+ +
+   + + + + + + +
_get_train_seq(self) + + +
+ +
+   + + + + + + +
_if_training_stop_training(self) + + +
+ +
+   + + + + + + +
_pre_execution_checks(self, + x)
+ This method contains all pre-execution checks.
+ + +
+ +
+   + + + + + + +
_pre_inversion_checks(self, + y)
+ This method contains all pre-inversion checks.
+ + +
+ +
+   + + + + + + +
_refcast(self, + x)
+ Helper function to cast arrays to the internal dtype.
+ + +
+ +
+   + + + + + + +
_set_dtype(self, + t) + + +
+ +
+   + + + + + + +
_set_input_dim(self, + n) + + +
+ +
+   + + + + + + +
_set_output_dim(self, + n) + + +
+ +
+   + + + + + + +
copy(self, + protocol=None)
+ Return a deep copy of the node.
+ + +
+ +
+   + + + + + + +
get_current_train_phase(self)
+ Return the index of the current training phase.
+ + +
+ +
+   + + + + + + +
get_dtype(self)
+ Return dtype.
+ + +
+ +
+   + + + + + + +
get_input_dim(self)
+ Return input dimensions.
+ + +
+ +
+   + + + + + + +
get_output_dim(self)
+ Return output dimensions.
+ + +
+ +
+   + + + + + + +
get_remaining_train_phase(self)
+ Return the number of training phases still to accomplish.
+ + +
+ +
+   + + + + + + +
get_supported_dtypes(self)
+ Return dtypes supported by the node as a list of numpy.dtype +objects.
+ + +
+ +
+   + + + + + + +
has_multiple_training_phases(self)
+ Return True if the node has multiple training phases.
+ + +
+ +
+   + + + + + + +
is_training(self)
+ Return True if the node is in the training phase, +False otherwise.
+ + +
+ +
+   + + + + + + +
save(self, + filename, + protocol=-1)
+ Save a pickled serialization of the node to filename. +If filename is None, return a string.
+ + +
+ +
+   + + + + + + +
set_dtype(self, + t)
+ Set internal structures' dtype.
+ + +
+ +
+   + + + + + + +
set_input_dim(self, + n)
+ Set input dimensions.
+ + +
+ +
+   + + + + + + +
set_output_dim(self, + n)
+ Set output dimensions.
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
    Inherited from ParallelExtensionNode
+   + + + + + + +
_join_covariance(cov, + forked_cov)
+ Helper method to join two CovarianceMatrix instances.
+ + +
+ +
+   + + + + + + +
use_execute_fork()
+ Return True if node requires a fork / join even during execution.
+ + +
+ +
    Inherited from Node
+   + + + + + + +
is_invertible()
+ Return True if the node can be inverted, False otherwise.
+ + +
+ +
+   + + + + + + +
is_trainable()
+ Return True if the node can be trained, False otherwise.
+ + +
+ +
+ + + + + + + + + + + +
+ + + + + +
Class Variables[hide private]
+
    Inherited from ParallelExtensionNode
+   + + extension_name = 'parallel'
+ hash(x) +
+ + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Variables[hide private]
+
    Inherited from nodes.SFANode
+   + + avg
+ Mean of the input data (available after training) +
+   + + d
+ Delta values corresponding to the SFA components (generalized +eigenvalues). [See the docs of the get_eta_values method for +more information] +
+   + + sf
+ Matrix of the SFA filters (available after training) +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Node
+   + + _train_seq
+ List of tuples: +
+   + + dtype
+ dtype +
+   + + input_dim
+ Input dimensions +
+   + + output_dim
+ Output dimensions +
+   + + supported_dtypes
+ Supported dtypes +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

_fork(self) +

+
  +
+ +
+Hook method for forking with default implementation.
+
+Overwrite this method for nodes that can be parallelized.
+You can use _default_fork, if that is compatible with your node class,
+typically the hard part is the joining.
+
+
+
+
Overrides: + ParallelExtensionNode._fork +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_join(self, + forked_node) +

+
  +
+ +
+Combine the covariance matrices.
+
+
+
+
Overrides: + ParallelExtensionNode._join +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.ProcessScheduler-class.html b/legacy/api/mdp.parallel.ProcessScheduler-class.html new file mode 100755 index 0000000..302bb3b --- /dev/null +++ b/legacy/api/mdp.parallel.ProcessScheduler-class.html @@ -0,0 +1,585 @@ + + + + + mdp.parallel.ProcessScheduler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class ProcessScheduler + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ProcessScheduler

+
+ +
+
+
+Scheduler that distributes the task to multiple processes.
+
+The subprocess module is used to start the requested number of processes.
+The execution of each task is internally managed by dedicated thread.
+
+This scheduler should work on all platforms (at least on Linux,
+Windows XP and Vista).
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + result_container=None, + verbose=False, + n_processes=1, + source_paths=None, + python_executable=None, + cache_callable=True)
+ Initialize the scheduler and start the slave processes.
+ + +
+ +
+   + + + + + + +
_process_task(self, + data, + task_callable, + task_index)
+ Add a task, if possible without blocking.
+ + +
+ +
+   + + + + + + +
_shutdown(self)
+ Shut down the slave processes.
+ + +
+ +
+   + + + + + + +
_task_thread(self, + process, + data, + task_callable, + task_index)
+ Thread function which cares for a single task.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
    Inherited from Scheduler
+   + + + + + + +
__enter__(self)
+ Return self.
+ + +
+ +
+   + + + + + + +
__exit__(self, + type, + value, + traceback)
+ Shutdown the scheduler.
+ + +
+ +
+   + + + + + + +
_store_result(self, + result, + task_index)
+ Store a result in the internal result container.
+ + +
+ +
+   + + + + + + +
add_task(self, + data, + task_callable=None)
+ Add a task to be executed.
+ + +
+ +
+   + + + + + + +
get_results(self)
+ Get the accumulated results from the result container.
+ + +
+ +
+   + + + + + + +
set_task_callable(self, + task_callable)
+ Set the callable that will be used if no task_callable is given.
+ + +
+ +
+   + + + + + + +
shutdown(self)
+ Controlled shutdown of the scheduler.
+ + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Scheduler
+   + + n_open_tasks
+ This property counts of submitted but unfinished tasks. +
+   + + task_counter
+ This property counts the number of submitted tasks. +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + result_container=None, + verbose=False, + n_processes=1, + source_paths=None, + python_executable=None, + cache_callable=True) +
(Constructor) +

+
  +
+ +
+Initialize the scheduler and start the slave processes.
+
+result_container -- ResultContainer used to store the results.
+verbose -- Set to True to get progress reports from the scheduler
+    (default value is False).
+n_processes -- Number of processes used in parallel. If None (default)
+    then the number of detected CPU cores is used.
+source_paths -- List of paths that are added to sys.path in
+    the processes to make the task unpickling work. A single path
+    instead of a list is also accepted.
+    If None (default value) then source_paths is set to sys.path.
+    To prevent this you can specify an empty list.
+python_executable -- Python executable that is used for the processes.
+    The default value is None, in which case sys.executable will be
+    used.
+cache_callable -- Cache the task objects in the processes (default
+    is True). Disabling caching can reduce the memory usage, but will
+    generally be less efficient since the task_callable has to be
+    pickled each time.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_process_task(self, + data, + task_callable, + task_index) +

+
  +
+ +
+Add a task, if possible without blocking.
+
+It blocks when the system is not able to start a new thread
+or when the processes are all in use.
+
+
+
+
Overrides: + Scheduler._process_task +
+
+
+
+ +
+ +
+ + +
+

_shutdown(self) +

+
  +
+ +
+Shut down the slave processes.
+
+If a process is still running a task then an exception is raised.
+
+
+
+
Overrides: + Scheduler._shutdown +
+
+
+
+ +
+ +
+ + +
+

_task_thread(self, + process, + data, + task_callable, + task_index) +

+
  +
+ +
+Thread function which cares for a single task.
+
+The task is pushed to the process via stdin, then we wait for the
+result on stdout, pass the result to the result container, free
+the process and exit.
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.ResultContainer-class.html b/legacy/api/mdp.parallel.ResultContainer-class.html new file mode 100755 index 0000000..64a283d --- /dev/null +++ b/legacy/api/mdp.parallel.ResultContainer-class.html @@ -0,0 +1,294 @@ + + + + + mdp.parallel.ResultContainer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class ResultContainer + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ResultContainer

+
+ +
+
+
+Abstract base class for result containers.
+
+
+ + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
add_result(self, + result_data, + task_index)
+ Store a result in the container.
+ + +
+ +
+   + + + + + + +
get_results(self)
+ Return results and reset container.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __init__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

add_result(self, + result_data, + task_index) +

+
  +
+ +
+Store a result in the container.
+
+
+
+
+
+
+ +
+ +
+ + +
+

get_results(self) +

+
  +
+ +
+Return results and reset container.
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.Scheduler-class.html b/legacy/api/mdp.parallel.Scheduler-class.html new file mode 100755 index 0000000..b4c1a76 --- /dev/null +++ b/legacy/api/mdp.parallel.Scheduler-class.html @@ -0,0 +1,752 @@ + + + + + mdp.parallel.Scheduler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class Scheduler + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class Scheduler

+
+ +
+
+
+Base class and trivial implementation for schedulers.
+
+New tasks are added with add_task(data, callable).
+get_results then returns the results (and locks if tasks are
+pending).
+
+In this simple scheduler implementation the tasks are simply executed in the
+add_task method.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__enter__(self)
+ Return self.
+ + +
+ +
+   + + + + + + +
__exit__(self, + type, + value, + traceback)
+ Shutdown the scheduler.
+ + +
+ +
+   + + + + + + +
__init__(self, + result_container=None, + verbose=False)
+ Initialize the scheduler.
+ + +
+ +
+   + + + + + + +
_process_task(self, + data, + task_callable, + task_index)
+ Process the task and store the result.
+ + +
+ +
+   + + + + + + +
_shutdown(self)
+ Hook method for shutdown to be used in custom schedulers.
+ + +
+ +
+   + + + + + + +
_store_result(self, + result, + task_index)
+ Store a result in the internal result container.
+ + +
+ +
+   + + + + + + +
add_task(self, + data, + task_callable=None)
+ Add a task to be executed.
+ + +
+ +
+   + + + + + + +
get_results(self)
+ Get the accumulated results from the result container.
+ + +
+ +
+   + + + + + + +
set_task_callable(self, + task_callable)
+ Set the callable that will be used if no task_callable is given.
+ + +
+ +
+   + + + + + + +
shutdown(self)
+ Controlled shutdown of the scheduler.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+   + + n_open_tasks
+ This property counts of submitted but unfinished tasks. +
+   + + task_counter
+ This property counts the number of submitted tasks. +
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__enter__(self) +

+
  +
+ +
+Return self.
+
+
+
+
+
+
+ +
+ +
+ + +
+

__exit__(self, + type, + value, + traceback) +

+
  +
+ +
+Shutdown the scheduler.
+
+It is important that all the calculations have finished
+when this is called, otherwise the shutdown might fail.
+
+
+
+
+
+
+ +
+ +
+ + +
+

__init__(self, + result_container=None, + verbose=False) +
(Constructor) +

+
  +
+ +
+Initialize the scheduler.
+
+result_container -- Instance of ResultContainer that is used to store
+    the results (default is None, in which case a ListResultContainer
+    is used).
+verbose -- If True then status messages will be printed to sys.stdout.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_process_task(self, + data, + task_callable, + task_index) +

+
  +
+ +
+Process the task and store the result.
+
+You can override this method for custom schedulers.
+
+Warning: When this method is entered is has the lock, the lock must be
+released here.
+
+Warning: Note that fork has not been called yet, so the provided
+task_callable must not be called. Only a forked version can be called.
+
+
+
+
+
+
+ +
+ +
+ + +
+

_shutdown(self) +

+
  +
+ +
+Hook method for shutdown to be used in custom schedulers.
+
+
+
+
+
+
+ +
+ +
+ + +
+

_store_result(self, + result, + task_index) +

+
  +
+ +
+Store a result in the internal result container.
+
+result -- Result data
+task_index -- Task index. Can be None if an error occured.
+
+This function blocks to avoid any problems during result storage.
+
+
+
+
+
+
+ +
+ +
+ + +
+

add_task(self, + data, + task_callable=None) +

+
  +
+ +
+Add a task to be executed.
+
+data -- Data for the task.
+task_callable -- A callable, which is called with the data. If it is
+    None (default value) then the last provided callable is used.
+    If task_callable is not an instance of TaskCallable then a
+    TaskCallableWrapper is used.
+
+The callable together with the data constitutes the task. This method
+blocks if there are no free recources to store or process the task
+(e.g. if no free worker processes are available).
+
+
+
+
+
+
+ +
+ +
+ + +
+

get_results(self) +

+
  +
+ +
+Get the accumulated results from the result container.
+
+This method blocks if there are open tasks.
+
+
+
+
+
+
+ +
+ +
+ + +
+

set_task_callable(self, + task_callable) +

+
  +
+ +
+Set the callable that will be used if no task_callable is given.
+
+Normally the callables are provided via add_task, in which case there
+is no need for this method.
+
+task_callable -- Callable that will be used unless a new task_callable
+    is given.
+
+
+
+
+
+
+ +
+ +
+ + +
+

shutdown(self) +

+
  +
+ +
+Controlled shutdown of the scheduler.
+
+This method should always be called when the scheduler is no longer
+needed and before the program shuts down! Otherwise one might get
+error messages.
+
+
+
+
+
+
+
+ + + + + + +
+ + + + + +
Property Details[hide private]
+
+ +
+ +
+

n_open_tasks

+
+This property counts of submitted but unfinished tasks.
+
+
+
+
Get Method:
+
unreachable.n_open_tasks(self) + - This property counts of submitted but unfinished tasks. +
+
+
+
+ +
+ +
+

task_counter

+
+This property counts the number of submitted tasks.
+
+
+
+
Get Method:
+
unreachable.task_counter(self) + - This property counts the number of submitted tasks. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.SleepSqrTestCallable-class.html b/legacy/api/mdp.parallel.SleepSqrTestCallable-class.html new file mode 100755 index 0000000..7473fe7 --- /dev/null +++ b/legacy/api/mdp.parallel.SleepSqrTestCallable-class.html @@ -0,0 +1,295 @@ + + + + + mdp.parallel.SleepSqrTestCallable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class SleepSqrTestCallable + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SleepSqrTestCallable

+
+ +
+
+
+Callable for testing.
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__call__(self, + data)
+ Return the squared data[0] after sleeping for data[1] seconds.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __init__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
    Inherited from TaskCallable
+   + + + + + + +
fork(self)
+ Return a fork of this callable, e.g.
+ + +
+ +
+   + + + + + + +
setup_environment(self)
+ This hook method is only called when the callable is first called +in a different Python process / environment.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__call__(self, + data) +
(Call operator) +

+
  +
+ +
+Return the squared data[0] after sleeping for data[1] seconds.
+
+
+
+
Overrides: + TaskCallable.__call__ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.SqrTestCallable-class.html b/legacy/api/mdp.parallel.SqrTestCallable-class.html new file mode 100755 index 0000000..be7ea9d --- /dev/null +++ b/legacy/api/mdp.parallel.SqrTestCallable-class.html @@ -0,0 +1,295 @@ + + + + + mdp.parallel.SqrTestCallable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class SqrTestCallable + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SqrTestCallable

+
+ +
+
+
+Callable for testing.
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__call__(self, + data)
+ Return the squared data.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __init__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
    Inherited from TaskCallable
+   + + + + + + +
fork(self)
+ Return a fork of this callable, e.g.
+ + +
+ +
+   + + + + + + +
setup_environment(self)
+ This hook method is only called when the callable is first called +in a different Python process / environment.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__call__(self, + data) +
(Call operator) +

+
  +
+ +
+Return the squared data.
+
+
+
+
Overrides: + TaskCallable.__call__ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.TaskCallable-class.html b/legacy/api/mdp.parallel.TaskCallable-class.html new file mode 100755 index 0000000..b8940a3 --- /dev/null +++ b/legacy/api/mdp.parallel.TaskCallable-class.html @@ -0,0 +1,348 @@ + + + + + mdp.parallel.TaskCallable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class TaskCallable + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class TaskCallable

+
+ +
+
+
+Abstract base class for task callables.
+
+This class encapsulates the task behavior and the related fixed data
+(data which stays constant over multiple tasks).
+
+
+ + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__call__(self, + data)
+ Perform the computation and return the result.
+ + +
+ +
+   + + + + + + +
fork(self)
+ Return a fork of this callable, e.g.
+ + +
+ +
+   + + + + + + +
setup_environment(self)
+ This hook method is only called when the callable is first called +in a different Python process / environment.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __init__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__call__(self, + data) +
(Call operator) +

+
  +
+ +
+Perform the computation and return the result.
+
+Override this method with a concrete implementation.
+
+
+
+
+
+
+ +
+ +
+ + +
+

fork(self) +

+
  +
+ +
+Return a fork of this callable, e.g. by making a copy.
+
+This method is always called exactly once before a callable is called,
+so instead of the original callable a fresh fork is called. This
+ensures that the original callable is preserved when caching is used.
+If the callable is not modified by the call then it can simply return
+itself.
+
+
+
+
+
+
+ +
+ +
+ + +
+

setup_environment(self) +

+
  +
+ +
+This hook method is only called when the callable is first called
+in a different Python process / environment.
+
+It can be used for modifications in the Python environment that are
+required by this callable.
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.TaskCallableWrapper-class.html b/legacy/api/mdp.parallel.TaskCallableWrapper-class.html new file mode 100755 index 0000000..ba2d894 --- /dev/null +++ b/legacy/api/mdp.parallel.TaskCallableWrapper-class.html @@ -0,0 +1,341 @@ + + + + + mdp.parallel.TaskCallableWrapper + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class TaskCallableWrapper + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class TaskCallableWrapper

+
+ +
+
+
+Wrapper to provide a fork method for simple callables like a function.
+
+This wrapper is applied internally in Scheduler.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__call__(self, + data)
+ Call the internal callable with the data and return the result.
+ + +
+ +
+   + + + + + + +
__init__(self, + task_callable)
+ Store and wrap the callable.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
    Inherited from TaskCallable
+   + + + + + + +
fork(self)
+ Return a fork of this callable, e.g.
+ + +
+ +
+   + + + + + + +
setup_environment(self)
+ This hook method is only called when the callable is first called +in a different Python process / environment.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__call__(self, + data) +
(Call operator) +

+
  +
+ +
+Call the internal callable with the data and return the result.
+
+
+
+
Overrides: + TaskCallable.__call__ +
+
+
+
+ +
+ +
+ + +
+

__init__(self, + task_callable) +
(Constructor) +

+
  +
+ +
+Store and wrap the callable.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.ThreadScheduler-class.html b/legacy/api/mdp.parallel.ThreadScheduler-class.html new file mode 100755 index 0000000..bac1957 --- /dev/null +++ b/legacy/api/mdp.parallel.ThreadScheduler-class.html @@ -0,0 +1,538 @@ + + + + + mdp.parallel.ThreadScheduler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class ThreadScheduler + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ThreadScheduler

+
+ +
+
+
+Thread based scheduler.
+
+Because of the GIL this only makes sense if most of the time is spend in
+numpy calculations (or some other external non-blocking C code) or for IO,
+but can be more efficient than ProcessScheduler because of the
+shared memory.
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + result_container=None, + verbose=False, + n_threads=1, + copy_callable=True)
+ Initialize the scheduler.
+ + +
+ +
+   + + + + + + +
_process_task(self, + data, + task_callable, + task_index)
+ Add a task, if possible without blocking.
+ + +
+ +
+   + + + + + + +
_task_thread(self, + data, + task_callable, + task_index)
+ Thread function which processes a single task.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
    Inherited from Scheduler
+   + + + + + + +
__enter__(self)
+ Return self.
+ + +
+ +
+   + + + + + + +
__exit__(self, + type, + value, + traceback)
+ Shutdown the scheduler.
+ + +
+ +
+   + + + + + + +
_shutdown(self)
+ Hook method for shutdown to be used in custom schedulers.
+ + +
+ +
+   + + + + + + +
_store_result(self, + result, + task_index)
+ Store a result in the internal result container.
+ + +
+ +
+   + + + + + + +
add_task(self, + data, + task_callable=None)
+ Add a task to be executed.
+ + +
+ +
+   + + + + + + +
get_results(self)
+ Get the accumulated results from the result container.
+ + +
+ +
+   + + + + + + +
set_task_callable(self, + task_callable)
+ Set the callable that will be used if no task_callable is given.
+ + +
+ +
+   + + + + + + +
shutdown(self)
+ Controlled shutdown of the scheduler.
+ + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
    Inherited from Scheduler
+   + + n_open_tasks
+ This property counts of submitted but unfinished tasks. +
+   + + task_counter
+ This property counts the number of submitted tasks. +
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + result_container=None, + verbose=False, + n_threads=1, + copy_callable=True) +
(Constructor) +

+
  +
+ +
+Initialize the scheduler.
+
+result_container -- ResultContainer used to store the results.
+verbose -- Set to True to get progress reports from the scheduler
+    (default value is False).
+n_threads -- Number of threads used in parallel. If None (default)
+    then the number of detected CPU cores is used.
+copy_callable -- Use deep copies of the task callable in the threads.
+    This is for example required if some nodes are stateful during
+    execution (e.g., a BiNode using the coroutine decorator).
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_process_task(self, + data, + task_callable, + task_index) +

+
  +
+ +
+Add a task, if possible without blocking.
+
+It blocks when the maximum number of threads is reached (given by
+n_threads) or when the system is not able to start a new thread.
+
+
+
+
Overrides: + Scheduler._process_task +
+
+
+
+ +
+ +
+ + +
+

_task_thread(self, + data, + task_callable, + task_index) +

+
  +
+ +
+Thread function which processes a single task.
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.parallel.TrainResultContainer-class.html b/legacy/api/mdp.parallel.TrainResultContainer-class.html new file mode 100755 index 0000000..af8e6c1 --- /dev/null +++ b/legacy/api/mdp.parallel.TrainResultContainer-class.html @@ -0,0 +1,349 @@ + + + + + mdp.parallel.TrainResultContainer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package parallel :: + Class TrainResultContainer + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class TrainResultContainer

+
+ +
+
+
+Container for parallel nodes.
+
+Expects flownodes as results and joins them to save memory.
+A list containing one flownode is returned, so this container can replace
+the standard list container without any changes elsewhere.
+
+
+ + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self)
+ x.__init__(...) initializes x; see help(type(x)) for signature
+ + +
+ +
+   + + + + + + +
add_result(self, + result, + task_index)
+ Store a result in the container.
+ + +
+ +
+   + + + + + + +
get_results(self)
+ Return results and reset container.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self) +
(Constructor) +

+
  +
+ +
+x.__init__(...) initializes x; see help(type(x)) for signature
+
+
+
+
Overrides: + object.__init__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

add_result(self, + result, + task_index) +

+
  +
+ +
+Store a result in the container.
+
+
+
+
Overrides: + ResultContainer.add_result +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

get_results(self) +

+
  +
+ +
+Return results and reset container.
+
+
+
+
Overrides: + ResultContainer.get_results +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.utils-module.html b/legacy/api/mdp.utils-module.html new file mode 100755 index 0000000..a1c68bc --- /dev/null +++ b/legacy/api/mdp.utils-module.html @@ -0,0 +1,2615 @@ + + + + + mdp.utils + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package utils + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Package utils

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Classes[hide private]
+
+   + + CovarianceMatrix
+ This class stores an empirical covariance matrix that can be updated +incrementally. A call to the 'fix' method returns the current state of +the covariance matrix, the average and the number of observations, and +resets the internal data. +
+   + + CrossCovarianceMatrix +
+   + + DelayCovarianceMatrix
+ This class stores an empirical covariance matrix between the signal and +time delayed signal that can be updated incrementally. +
+   + + HTMLSlideShow
+ Abstract slideshow base class. +
+   + + ImageHTMLSlideShow
+ Slideshow for images. +
+   + + MultipleCovarianceMatrices
+ Container class for multiple covariance matrices to easily +execute operations on all matrices at the same time. +Note: all operations are done in place where possible. +
+   + + OrderedDict
+ Dictionary that remembers insertion order +
+   + + QuadraticForm
+ Define an inhomogeneous quadratic form as 1/2 x'Hx + f'x + c . +This class implements the quadratic form analysis methods +presented in: +
+   + + QuadraticFormException +
+   + + SectionHTMLSlideShow
+ Astract slideshow with additional support for section markers. +
+   + + SectionImageHTMLSlideShow
+ Image slideshow with section markers. +
+   + + TemporaryDirectory
+ Create and return a temporary directory. This has the same +behavior as mkdtemp but can be used as a context manager. For +example: +
+   + + VartimeCovarianceMatrix
+ This class stores an empirical covariance matrix that can be updated +incrementally. A call to the 'fix' method returns the current state of +the covariance matrix, the average and the number of observations, and +resets the internal data. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Functions[hide private]
+
+   + + + + + + +
_fixup_namespace_item(parent, + mname, + name, + old_modules, + path) + + +
+ +
+   + + + + + + +
_without_prefix(name, + prefix) + + +
+ +
+   + + + + + + +
basic_css()
+ Return the basic default CSS.
+ + +
+ +
+   + + + + + + +
bool_to_sign(an_array)
+ Return -1 for each False; +1 for each True
+ + +
+ +
+   + + + + + + +
comb(N, + k)
+ Return number of combinations of k objects from a set of N objects +without repetitions, a.k.a. the binomial coefficient of N and k.
+ + +
+ +
+   + + + + + + +
cov2(x, + y)
+ Compute the covariance between 2D matrices x and y. +Complies with the old scipy.cov function: different variables +are on different columns.
+ + +
+ +
+   + + + + + + +
dig_node(x)
+ Crawl recursively an MDP Node looking for arrays.
+ + +
+ +
+   + + + + + + +
fixup_namespace(mname, + names, + old_modules, + keep_modules=())
+ Update __module__ attribute and remove old_modules from namespace
+ + +
+ +
+   + + + + + + +
gabor(size, + alpha, + phi, + freq, + sgm, + x0=None, + res=1, + ampl=1.0)
+ Return a 2D array containing a Gabor wavelet.
+ + +
+ +
+   + + + + + + +
get_dtypes(typecodes_key, + _safe=True)
+ Return the list of dtypes corresponding to the set of +typecodes defined in numpy.typecodes[typecodes_key]. +E.g., get_dtypes('Float') = [dtype('f'), dtype('d'), dtype('g')].
+ + +
+ +
+   + + + + + + +
get_node_size(x)
+ Return node total byte-size using cPickle with protocol=2.
+ + +
+ +
+   + + + + + + +
hermitian(x)
+ Compute the Hermitian, i.e. conjugate transpose, of x.
+ + +
+ +
+   + + + + + + +
image_slideshow(filenames, + image_size, + title=None, + section_ids=None, + delay=100, + delay_delta=20, + loop=True, + slideshow_id=None, + magnification=1, + mag_control=True, + shortcuts=True)
+ Return a string with the JS and HTML code for an image slideshow.
+ + +
+ +
+   + + + + + + +
image_slideshow_css()
+ Use nearest neighbour resampling in Firefox 3.6+ and IE.
+ + +
+ +
+   + + + + + + +
inv(x) + + +
+ +
+   + + + + + + +
irep(x, + n, + dim)
+ Replicate x n-times on a new dimension dim-th dimension
+ + +
+ +
+   + + + + + + +
izip_stretched(*iterables)
+ Same as izip, except that for convenience non-iterables are repeated ad infinitum.
+ + +
+ +
+   + + + + + + +
lrep(x, + n)
+ Replicate x n-times on a new first dimension
+ + +
+ +
+   + + + + + + +
matmult(a, + b, + alpha=1.0, + beta=0.0, + c=None, + trans_a=0, + trans_b=0)
+ Return alpha*(a*b) + beta*c.
+ + +
+ +
+   + + + + + + +
mult(a, + b, + out=None)
+ Dot product of two arrays.
+ + +
+ +
+   + + + + + + +
mult_diag(d, + mtx, + left=True)
+ Multiply a full matrix by a diagonal matrix. +This function should always be faster than dot.
+ + +
+ +
+   + + + + + + +
nongeneral_svd(A, + range=None, + **kwargs)
+ SVD routine for simple eigenvalue problem, API is compatible with +symeig.
+ + +
+ +
+   + + + + + + +
norm2(v)
+ Compute the 2-norm for 1D arrays. +norm2(v) = sqrt(sum(v_i^2))
+ + +
+ +
+   + + + + + + +
orthogonal_permutations(a_dict)
+ Takes a dictionary with lists as keys and returns all permutations +of these list elements in new dicts.
+ + +
+ +
+   + + + + + + +
permute(x, + indices=(0, 0), + rows=0, + cols=1)
+ Swap two columns and (or) two rows of 'x', whose indices are specified +in indices=[i,j]. +Note: permutations are done in-place. You'll lose your original matrix
+ + +
+ +
+   + + + + + + +
pinv(x) + + +
+ +
+   + + + + + + +
progressinfo(sequence, + length=None, + style='bar', + custom=None)
+ A fully configurable text-mode progress info box tailored to the + command-line die-hards.
+ + +
+ +
+   + + + + + + +
random_rot(dim, + dtype='d')
+ Return a random rotation matrix, drawn from the Haar distribution +(the only uniform distribution on SO(n)). +The algorithm is described in the paper +Stewart, G.W., "The efficient generation of random orthogonal +matrices with an application to condition estimators", SIAM Journal +on Numerical Analysis, 17(3), pp. 403-409, 1980. +For more information see +http://en.wikipedia.org/wiki/Orthogonal_matrix#Randomization
+ + +
+ +
+   + + + + + + +
refcast(array, + dtype)
+ Cast the array to dtype only if necessary, otherwise return a reference.
+ + +
+ +
+   + + + + + + +
rotate(mat, + angle, + columns=(0, 1), + units='radians')
+ Rotate in-place data matrix (NxM) in the plane defined by the columns=[i,j] +when observation are stored on rows. Observations are rotated +counterclockwise. This corresponds to the following matrix-multiplication +for each data-point (unchanged elements omitted):
+ + +
+ +
+   + + + + + + +
rrep(x, + n)
+ Replicate x n-times on a new last dimension
+ + +
+ +
+   + + + + + + +
scast(scalar, + dtype)
+ Convert a scalar in a 0D array of the given dtype.
+ + +
+ +
+   + + + + + + +
sign_to_bool(an_array, + zero=True)
+ Return False for each negative value, else True.
+ + +
+ +
+   + + + + + + +
slideshow_css()
+ Return the additional CSS for a slideshow.
+ + +
+ +
+   + + + + + + +
solve(x, + y) + + +
+ +
+   + + + + + + +
sqrtm(A)
+ This is a symmetric definite positive matrix sqrt function
+ + +
+ +
+   + + + + + + +
svd(x, + compute_uv=True)
+ Wrap the numx SVD routine, so that it returns arrays of the correct +dtype and a SymeigException in case of failures.
+ + +
+ +
+   + + + + + + +
symeig_semidefinite_ldl(A, + B=None, + eigenvectors=True, + turbo='on', + rng=None, + type=1, + overwrite=False, + rank_threshold=1e-12, + dfc_out=None)
+ LDL-based routine to solve generalized symmetric positive semidefinite +eigenvalue problems.
+ + +
+ +
+   + + + + + + +
symeig_semidefinite_pca(A, + B=None, + eigenvectors=True, + turbo='on', + range=None, + type=1, + overwrite=False, + rank_threshold=1e-12, + dfc_out=None)
+ PCA-based routine to solve generalized symmetric positive semidefinite +eigenvalue problems.
+ + +
+ +
+   + + + + + + +
symeig_semidefinite_reg(A, + B=None, + eigenvectors=True, + turbo='on', + range=None, + type=1, + overwrite=False, + rank_threshold=1e-12, + dfc_out=None)
+ Regularization-based routine to solve generalized symmetric positive +semidefinite eigenvalue problems.
+ + +
+ +
+   + + + + + + +
symeig_semidefinite_svd(A, + B=None, + eigenvectors=True, + turbo='on', + range=None, + type=1, + overwrite=False, + rank_threshold=1e-12, + dfc_out=None)
+ SVD-based routine to solve generalized symmetric positive semidefinite +eigenvalue problems.
+ + +
+ +
+   + + + + + + +
symrand(dim_or_eigv, + dtype='d')
+ Return a random symmetric (Hermitian) matrix.
+ + +
+ +
+   + + + + + + +
timediff(data)
+ Returns the array of the time differences of data.
+ + +
+ +
+   + + + + + + +
weighted_choice(a_dict, + normalize=True)
+ Returns a key from a dictionary based on the weight that the value suggests. +If 'normalize' is False, it is assumed the weights sum up to unity. Otherwise, +the algorithm will take care of normalising.
+ + +
+ +
+ + + + + + + + + + + + +
+ + + + + +
Variables[hide private]
+
+   + + FIXUP_DEBUG = None
+ hash(x) +
+   + + __package__ = 'mdp.utils' +
+ + + + + + +
+ + + + + +
Function Details[hide private]
+
+ +
+ +
+ + +
+

_fixup_namespace_item(parent, + mname, + name, + old_modules, + path) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_without_prefix(name, + prefix) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

basic_css() +

+
  +
+ + Return the basic default CSS. +
+
+
+
+ +
+ +
+ + +
+

bool_to_sign(an_array) +

+
  +
+ + Return -1 for each False; +1 for each True +
+
+
+
+ +
+ +
+ + +
+

comb(N, + k) +

+
  +
+ + Return number of combinations of k objects from a set of N objects +without repetitions, a.k.a. the binomial coefficient of N and k. +
+
+
+
+ +
+ +
+ + +
+

cov2(x, + y) +

+
  +
+ + Compute the covariance between 2D matrices x and y. +Complies with the old scipy.cov function: different variables +are on different columns. +
+
+
+
+ +
+ +
+ + +
+

dig_node(x) +

+
  +
+ +

Crawl recursively an MDP Node looking for arrays.

+

Return (dictionary, string), where the dictionary is: +{ attribute_name: (size_in_bytes, array_reference)} +and string is a nice string representation of it.

+
+
+
+
+ +
+ +
+ + +
+

fixup_namespace(mname, + names, + old_modules, + keep_modules=()) +

+
  +
+ +

Update __module__ attribute and remove old_modules from namespace

+

When classes are imported from implementation modules into the +package exporting them, the __module__ attribute reflects the +place of definition. Splitting the code into separate files (and +thus modules) makes the implementation managable. Nevertheless, we +do not want the implementation modules to be visible and delete +their names from the package's namespace. This causes some +problems: when looking at the exported classes and other objects, +their __module__ attribute points to something non-importable, +repr output and documentation do not show the module from +which they are supposed to be imported. The documentation +generators like epydoc and sphinx are also confused. To alleviate +those problems, the __module__ attributes of all exported +classes defined in a "private" module and then exported elsewhere +are changed to the latter.

+

For each name in names, if <mname>.<name> is accessible, +and if its __module__ attribute is equal to one of the names +in old_modules, it is changed to "<mname>". In other +words, all the __module__ attributes of objects exported from +module <mname> are updated, iff they used to point to one of the +"private" modules in old_modules.

+

This operation is performed not only for classes, but actually for +all objects with the __module__ attribute, following the rules +stated above. The operation is also performed recursively, not +only for names in names, but also for methods, inner classes, +and other attributes. This recursive invocation is necessary +because all the problems affecting top-level exported classes also +affect their attributes visible for the user, and especially +documented functions.

+

If names is None, all public names in module <mname> +(not starting with '_') are affected.

+

After the __module__ attributes are changed, "private" modules given +in old_modules, except for the ones in keep_modules, are deleted +from the namespace of <mname> module.

+
+
+
+
+ +
+ +
+ + +
+

gabor(size, + alpha, + phi, + freq, + sgm, + x0=None, + res=1, + ampl=1.0) +

+
  +
+ +

Return a 2D array containing a Gabor wavelet.

+

Input arguments: +size -- (height, width) (pixels) +alpha -- orientation (rad) +phi -- phase (rad) +freq -- frequency (cycles/deg) +sgm -- (sigma_x, sigma_y) standard deviation along the axis +of the gaussian ellipse (pixel) +x0 -- (x,y) coordinates of the center of the wavelet (pixel) +Default: None, meaning the center of the array +res -- spatial resolution (deg/pixel) +Default: 1, so that 'freq' is measured in cycles/pixel +ampl -- constant multiplying the result +Default: 1.

+
+
+
+
+ +
+ +
+ + +
+

get_dtypes(typecodes_key, + _safe=True) +

+
  +
+ +

Return the list of dtypes corresponding to the set of +typecodes defined in numpy.typecodes[typecodes_key]. +E.g., get_dtypes('Float') = [dtype('f'), dtype('d'), dtype('g')].

+

If _safe is True (default), we remove large floating point types +if the numerical backend does not support them.

+
+
+
+
+ +
+ +
+ + +
+

get_node_size(x) +

+
  +
+ +

Return node total byte-size using cPickle with protocol=2.

+

The byte-size is related to the memory needed by the node).

+
+
+
+
+ +
+ +
+ + +
+

hermitian(x) +

+
  +
+ + Compute the Hermitian, i.e. conjugate transpose, of x. +
+
+
+
+ +
+ +
+ + +
+

image_slideshow(filenames, + image_size, + title=None, + section_ids=None, + delay=100, + delay_delta=20, + loop=True, + slideshow_id=None, + magnification=1, + mag_control=True, + shortcuts=True) +

+
  +
+ +
+Return a string with the JS and HTML code for an image slideshow.
+
+Note that the CSS code for the slideshow is not included, so you should
+add SLIDESHOW_STYLE or a custom style to your CSS code.
+
+filenames -- Sequence of the image filenames.
+image_size -- Tuple (x,y) with the original image size, or enter
+    a different size to force scaling.
+title -- Optional slideshow title (for default None not title is shown).
+section_ids -- List with the section id for each slide index. The id
+        can be a string or a number. Default value None disables the
+        section feature.
+
+For additional keyword arguments see the ImageHTMLSlideShow class.
+
+
+
+
+
+
+ +
+ +
+ + +
+

image_slideshow_css() +

+
  +
+ +

Use nearest neighbour resampling in Firefox 3.6+ and IE.

+

Webkit (Chrome, Safari) does not support this yet. +(see http://code.google.com/p/chromium/issues/detail?id=1502)

+
+
+
+
+ +
+ +
+ + +
+

inv(x) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

irep(x, + n, + dim) +

+
  +
+ + Replicate x n-times on a new dimension dim-th dimension +
+
+
+
+ +
+ +
+ + +
+

izip_stretched(*iterables) +

+
  +
+ +

Same as izip, except that for convenience non-iterables are repeated ad infinitum.

+

This is useful when trying to zip input data with respective labels +and allows for having a single label for all data, as well as for +havning a list of labels for each data vector. +Note that this will take strings as an iterable (of course), so +strings acting as a single value need to be wrapped in a repeat +statement of their own.

+

Thus, +>>> for zipped in izip_stretched([1, 2, 3], -1): +print zipped +(1, -1) +(2, -1) +(3, -1)

+

is equivalent to +>>> for zipped in izip([1, 2, 3], [-1] * 3): +print zipped +(1, -1) +(2, -1) +(3, -1)

+
+
+
+
+ +
+ +
+ + +
+

lrep(x, + n) +

+
  +
+ + Replicate x n-times on a new first dimension +
+
+
+
+ +
+ +
+ + +
+

matmult(a, + b, + alpha=1.0, + beta=0.0, + c=None, + trans_a=0, + trans_b=0) +

+
  +
+ +
+Return alpha*(a*b) + beta*c.
+a,b,c : matrices
+alpha, beta: scalars
+trans_a : 0 (a not transposed), 1 (a transposed),
+          2 (a conjugate transposed)
+trans_b : 0 (b not transposed), 1 (b transposed),
+          2 (b conjugate transposed)
+
+
+
+
+
+
+ +
+ +
+ + +
+

mult(a, + b, + out=None) +

+
  +
+ +
+Dot product of two arrays.
+
+For 2-D arrays it is equivalent to matrix multiplication, and for 1-D
+arrays to inner product of vectors (without complex conjugation). For
+N dimensions it is a sum product over the last axis of `a` and
+the second-to-last of `b`::
+
+    dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])
+
+Parameters
+----------
+a : array_like
+    First argument.
+b : array_like
+    Second argument.
+out : ndarray, optional
+    Output argument. This must have the exact kind that would be returned
+    if it was not used. In particular, it must have the right type, must be
+    C-contiguous, and its dtype must be the dtype that would be returned
+    for `dot(a,b)`. This is a performance feature. Therefore, if these
+    conditions are not met, an exception is raised, instead of attempting
+    to be flexible.
+
+Returns
+-------
+output : ndarray
+    Returns the dot product of `a` and `b`.  If `a` and `b` are both
+    scalars or both 1-D arrays then a scalar is returned; otherwise
+    an array is returned.
+    If `out` is given, then it is returned.
+
+Raises
+------
+ValueError
+    If the last dimension of `a` is not the same size as
+    the second-to-last dimension of `b`.
+
+See Also
+--------
+vdot : Complex-conjugating dot product.
+tensordot : Sum products over arbitrary axes.
+einsum : Einstein summation convention.
+matmul : '@' operator as method with out parameter.
+
+Examples
+--------
+>>> np.dot(3, 4)
+12
+
+Neither argument is complex-conjugated:
+
+>>> np.dot([2j, 3j], [2j, 3j])
+(-13+0j)
+
+For 2-D arrays it is the matrix product:
+
+>>> a = [[1, 0], [0, 1]]
+>>> b = [[4, 1], [2, 2]]
+>>> np.dot(a, b)
+array([[4, 1],
+       [2, 2]])
+
+>>> a = np.arange(3*4*5*6).reshape((3,4,5,6))
+>>> b = np.arange(3*4*5*6)[::-1].reshape((5,4,6,3))
+>>> np.dot(a, b)[2,3,2,1,2,2]
+499128
+>>> sum(a[2,3,2,:] * b[1,2,:,2])
+499128
+
+
+
+
+
+
+ +
+ +
+ + +
+

mult_diag(d, + mtx, + left=True) +

+
  +
+ +

Multiply a full matrix by a diagonal matrix. +This function should always be faster than dot.

+
+
Input:
+
d -- 1D (N,) array (contains the diagonal elements) +mtx -- 2D (N,N) array
+
Output:
+
mult_diag(d, mts, left=True) == dot(diag(d), mtx) +mult_diag(d, mts, left=False) == dot(mtx, diag(d))
+
+
+
+
+
+ +
+ +
+ + +
+

nongeneral_svd(A, + range=None, + **kwargs) +

+
  +
+ + SVD routine for simple eigenvalue problem, API is compatible with +symeig. +
+
+
+
+ +
+ +
+ + +
+

norm2(v) +

+
  +
+ + Compute the 2-norm for 1D arrays. +norm2(v) = sqrt(sum(v_i^2)) +
+
+
+
+ +
+ +
+ + +
+

orthogonal_permutations(a_dict) +

+
  +
+ +

Takes a dictionary with lists as keys and returns all permutations +of these list elements in new dicts.

+

This function is useful, when a method with several arguments +shall be tested and all of the arguments can take several values.

+

The order is not defined, therefore the elements should be +orthogonal to each other.

+
+>>> for i in orthogonal_permutations({'a': [1,2,3], 'b': [4,5]}):
+        print i
+{'a': 1, 'b': 4}
+{'a': 1, 'b': 5}
+{'a': 2, 'b': 4}
+{'a': 2, 'b': 5}
+{'a': 3, 'b': 4}
+{'a': 3, 'b': 5}
+
+
+
+
+ +
+ +
+ + +
+

permute(x, + indices=(0, 0), + rows=0, + cols=1) +

+
  +
+ + Swap two columns and (or) two rows of 'x', whose indices are specified +in indices=[i,j]. +Note: permutations are done in-place. You'll lose your original matrix +
+
+
+
+ +
+ +
+ + +
+

pinv(x) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

progressinfo(sequence, + length=None, + style='bar', + custom=None) +

+
  +
+ +
+A fully configurable text-mode progress info box tailored to the
+  command-line die-hards.
+
+  To get a progress info box for your loops use it like this:
+
+     >>> for i in progressinfo(sequence):
+     ...     do_something(i)
+
+ You can also use it with generators, files or any other iterable object,
+ but in this case you have to specify the total length of the sequence:
+
+     >>> for line in progressinfo(open_file, nlines):
+     ...     do_something(line)
+
+ If the number of iterations is not known in advance, you may prefer
+ to iterate on the items directly. This can be useful for example if
+ you are downloading a big file in a subprocess and want to monitor
+ the progress. If the file to be downloaded is TOTAL bytes large and
+ you are downloading it on local:
+     >>> def done():
+     ...     yield os.path.getsize(localfile)
+     >>> for bytes in progressinfo(done(), -TOTAL)
+     ...     time.sleep(1)
+     ...     if download_process_has_finished():
+     ...         break
+
+
+Arguments:
+
+sequence    - if it is a Python container object (list,
+              dict, string, etc...) and it supports the
+              __len__ method call, the length argument can
+              be omitted. If it is an iterator (generators,
+              file objects, etc...) the length argument must
+              be specified.
+
+Keyword arguments:
+
+length     - length of the sequence. Automatically set
+             if `sequence' has the __len__ method. If length is
+             negative, iterate on items.
+
+style      - If style == 'bar', display a progress bar. The
+             default layout is:
+
+             [===========60%===>.........]
+
+             If style == 'timer', display a time elapsed / time
+             remaining info box. The default layout is:
+
+             23% [02:01:28] - [00:12:37]
+
+             where fields have the following meaning:
+
+             percent_done% [time_elapsed] - [time_remaining]
+
+custom     - a dictionary for customizing the layout.
+             Default layout for the 'bar' style:
+              custom = { 'indent': '',
+                         'width' : terminal_width - 1,
+                         'position' : 'middle',
+                         'delimiters' : '[]',
+                         'char1' : '=',
+                         'char2' : '>',
+                         'char3' : '.' }
+
+
+             Default layout for the 'timer' style:
+              custom = { 'speed': 'mean',
+                         'indent': '',
+                         'position' : 'left',
+                         'delimiters' : '[]',
+                         'separator' : ' - ' }
+
+             Description:
+               speed = completion time estimation method, must be one of
+                       ['mean', 'last']. 'mean' uses average speed, 'last'
+                       uses last step speed.
+               indent = string used for indenting the progress info box
+               position = position of the percent done string,
+                          must be one out of ['left', 'middle', 'right']
+
+
+Note 1: by default sys.stdout is flushed each time a new box is drawn.
+        If you need to rely on buffered stdout you'd better not use this
+        (any?) progress info box.
+Note 2: progressinfo slows down your loops. Always profile your scripts
+        and check that you are not wasting 99% of the time in drawing
+        the progress info box.
+
+
+
+
+
+
+ +
+ +
+ + +
+

random_rot(dim, + dtype='d') +

+
  +
+ + Return a random rotation matrix, drawn from the Haar distribution +(the only uniform distribution on SO(n)). +The algorithm is described in the paper +Stewart, G.W., "The efficient generation of random orthogonal +matrices with an application to condition estimators", SIAM Journal +on Numerical Analysis, 17(3), pp. 403-409, 1980. +For more information see +http://en.wikipedia.org/wiki/Orthogonal_matrix#Randomization +
+
+
+
+ +
+ +
+ + +
+

refcast(array, + dtype) +

+
  +
+ + Cast the array to dtype only if necessary, otherwise return a reference. +
+
+
+
+ +
+ +
+ + +
+

rotate(mat, + angle, + columns=(0, 1), + units='radians') +

+
  +
+ +

Rotate in-place data matrix (NxM) in the plane defined by the columns=[i,j] +when observation are stored on rows. Observations are rotated +counterclockwise. This corresponds to the following matrix-multiplication +for each data-point (unchanged elements omitted):

+
+
+
[ cos(angle) -sin(angle) [ x_i ]
+
sin(angle) cos(angle) ] * [ x_j ]
+
+
+

If M=2, columns=[0,1].

+
+
+
+
+ +
+ +
+ + +
+

rrep(x, + n) +

+
  +
+ + Replicate x n-times on a new last dimension +
+
+
+
+ +
+ +
+ + +
+

scast(scalar, + dtype) +

+
  +
+ + Convert a scalar in a 0D array of the given dtype. +
+
+
+
+ +
+ +
+ + +
+

sign_to_bool(an_array, + zero=True) +

+
  +
+ +

Return False for each negative value, else True.

+

The value for 0 is specified with 'zero'.

+
+
+
+
+ +
+ +
+ + +
+

slideshow_css() +

+
  +
+ + Return the additional CSS for a slideshow. +
+
+
+
+ +
+ +
+ + +
+

solve(x, + y) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

sqrtm(A) +

+
  +
+ + This is a symmetric definite positive matrix sqrt function +
+
+
+
+ +
+ +
+ + +
+

svd(x, + compute_uv=True) +

+
  +
+ + Wrap the numx SVD routine, so that it returns arrays of the correct +dtype and a SymeigException in case of failures. +
+
+
+
+ +
+ +
+ + +
+

symeig_semidefinite_ldl(A, + B=None, + eigenvectors=True, + turbo='on', + rng=None, + type=1, + overwrite=False, + rank_threshold=1e-12, + dfc_out=None) +

+
  +
+ +
+
+LDL-based routine to solve generalized symmetric positive semidefinite
+eigenvalue problems.
+This can be used in case the normal symeig() call in _stop_training()
+throws SymeigException ('Covariance matrices may be singular').
+
+This solver uses SciPy's raw LAPACK interface to access LDL decomposition.
+www.netlib.org/lapack/lug/node54.html describes how to solve a
+generalized eigenvalue problem with positive definite B using Cholesky/LL
+decomposition. We extend this method to solve for positive semidefinite B
+using LDL decomposition, which is a variant of Cholesky/LL decomposition
+for indefinite Matrices.
+Accessing raw LAPACK's LDL decomposition (sytrf) is challenging. This code
+is partly based on code for SciPy 1.1:
+github.com/scipy/scipy/pull/7941/files#diff-9bf9b4b2f0f40415bc0e72143584c889
+We optimized and shortened that code for the real-valued positive
+semidefinite case.
+
+This procedure is almost as efficient as the ordinary eigh implementation.
+This is because implementations for symmetric generalized eigenvalue
+problems usually perform the Cholesky approach mentioned above. The more
+general LDL decomposition is only slightly more expensive than Cholesky,
+due to pivotization.
+
+
+The signature of this function equals that of mdp.utils.symeig, but
+has two additional parameters:
+
+rank_threshold: A threshold to determine if an eigenvalue counts as zero.
+
+dfc_out: If dfc_out is not None dfc_out.rank_deficit will be set to an
+         integer indicating how many zero-eigenvalues were detected.
+
+
+Note:
+This method requires SciPy >= 1.0.
+
+
+
+
+
+
+ +
+ +
+ + +
+

symeig_semidefinite_pca(A, + B=None, + eigenvectors=True, + turbo='on', + range=None, + type=1, + overwrite=False, + rank_threshold=1e-12, + dfc_out=None) +

+
  +
+ +
+
+PCA-based routine to solve generalized symmetric positive semidefinite
+eigenvalue problems.
+This can be used in case the normal symeig() call in _stop_training()
+throws SymeigException ('Covariance matrices may be singular').
+
+It applies PCA to B and filters out rank deficit before it applies
+symeig() to A.
+It is roughly twice as expensive as the ordinary eigh implementation.
+
+
+The signature of this function equals that of mdp.utils.symeig, but
+has two additional parameters:
+
+rank_threshold: A threshold to determine if an eigenvalue counts as zero.
+
+dfc_out: If dfc_out is not None dfc_out.rank_deficit will be set to an
+         integer indicating how many zero-eigenvalues were detected.
+
+
+Note:
+The advantage compared to prepending a PCA node is that in execution
+phase all data needs to be processed by one step less. That is because
+this approach includes the PCA into e.g. the SFA execution matrix.
+
+
+
+
+
+
+ +
+ +
+ + +
+

symeig_semidefinite_reg(A, + B=None, + eigenvectors=True, + turbo='on', + range=None, + type=1, + overwrite=False, + rank_threshold=1e-12, + dfc_out=None) +

+
  +
+ +
+
+Regularization-based routine to solve generalized symmetric positive
+semidefinite eigenvalue problems.
+This can be used in case the normal symeig() call in _stop_training()
+throws SymeigException ('Covariance matrices may be singular').
+
+This solver applies a moderate regularization to B before applying
+eigh/symeig. Afterwards it properly detects the rank deficit and
+filters out malformed features.
+For full range, this procedure is (approximately) as efficient as the
+ordinary eigh implementation, because all additional steps are
+computationally cheap.
+For shorter range, the LDL method should be preferred.
+
+
+The signature of this function equals that of mdp.utils.symeig, but
+has two additional parameters:
+
+rank_threshold: A threshold to determine if an eigenvalue counts as zero.
+
+dfc_out: If dfc_out is not None dfc_out.rank_deficit will be set to an
+         integer indicating how many zero-eigenvalues were detected.
+
+
+Note:
+For efficiency reasons it actually modifies the matrix B
+(even if overwrite=False), but the changes are negligible.
+
+
+
+
+
+
+ +
+ +
+ + +
+

symeig_semidefinite_svd(A, + B=None, + eigenvectors=True, + turbo='on', + range=None, + type=1, + overwrite=False, + rank_threshold=1e-12, + dfc_out=None) +

+
  +
+ +
+
+SVD-based routine to solve generalized symmetric positive semidefinite
+eigenvalue problems.
+This can be used in case the normal symeig() call in _stop_training()
+throws SymeigException ('Covariance matrices may be singular').
+
+This solver's computational cost depends on the underlying SVD
+implementation. Its dominant cost factor consists of two SVD runs.
+
+rank_threshold=1e-12
+dfc_out=None
+
+For details on the used algorithm see:
+    http://www.geo.tuwien.ac.at/downloads/tm/svd.pdf (section 0.3.2)
+
+
+The signature of this function equals that of mdp.utils.symeig, but
+has two additional parameters:
+
+rank_threshold: A threshold to determine if an eigenvalue counts as zero.
+
+dfc_out: If dfc_out is not None dfc_out.rank_deficit will be set to an
+         integer indicating how many zero-eigenvalues were detected.
+
+
+Note:
+The parameters eigenvectors, turbo, type, overwrite are not used.
+They only exist to provide a symeig compatible signature.
+
+
+
+
+
+
+ +
+ +
+ + +
+

symrand(dim_or_eigv, + dtype='d') +

+
  +
+ +

Return a random symmetric (Hermitian) matrix.

+
+
If 'dim_or_eigv' is an integer N, return a NxN matrix, with eigenvalues
+
uniformly distributed on (-1,1).
+
If 'dim_or_eigv' is 1-D real array 'a', return a matrix whose
+
eigenvalues are 'a'.
+
+
+
+
+
+ +
+ +
+ + +
+

timediff(data) +

+
  +
+ + Returns the array of the time differences of data. +
+
+
+
+ +
+ +
+ + +
+

weighted_choice(a_dict, + normalize=True) +

+
  +
+ +

Returns a key from a dictionary based on the weight that the value suggests. +If 'normalize' is False, it is assumed the weights sum up to unity. Otherwise, +the algorithm will take care of normalising.

+

Example: +>>> d = {'a': 0.1, 'b': 0.5, 'c': 0.4} +>>> weighted_choice(d) +# draws 'b':'c':'a' with 5:4:1 probability

+

TODO: It might be good to either shuffle the order or explicitely specify it, +before walking through the items, to minimise possible degeneration.

+
+
+
+
+
+ + + + + + +
+ + + + + +
Variables Details[hide private]
+
+ +
+ +
+

FIXUP_DEBUG

+
+hash(x)
+
+
+
+
+
+
Value:
+
+None
+
+
+
+
+
+ +
+ +
+

__package__

+ +
+
+
+
Value:
+
+'mdp.utils'
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.utils.CovarianceMatrix-class.html b/legacy/api/mdp.utils.CovarianceMatrix-class.html new file mode 100755 index 0000000..817cbf1 --- /dev/null +++ b/legacy/api/mdp.utils.CovarianceMatrix-class.html @@ -0,0 +1,402 @@ + + + + + mdp.utils.CovarianceMatrix + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package utils :: + Class CovarianceMatrix + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class CovarianceMatrix

+
+ +
+
+

This class stores an empirical covariance matrix that can be updated +incrementally. A call to the 'fix' method returns the current state of +the covariance matrix, the average and the number of observations, and +resets the internal data.

+

Note that the internal sum is a standard __add__ operation. We are not +using any of the fancy sum algorithms to avoid round off errors when +adding many numbers. If you want to contribute a CovarianceMatrix class +that uses such algorithms we would be happy to include it in MDP. +For a start see the Python recipe by Raymond Hettinger at +http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/393090 +For a review about floating point arithmetic and its pitfalls see +http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html

+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + dtype=None, + bias=False)
+ If dtype is not defined, it will be inherited from the first +data bunch received by 'update'. +All the matrices in this class are set up with the given dtype and +no upcast is possible. +If bias is True, the covariance matrix is normalized by dividing +by T instead of the usual T-1.
+ + +
+ +
+   + + + + + + +
_init_internals(self, + x)
+ Init the internal structures.
+ + +
+ +
+   + + + + + + +
fix(self, + center=True)
+ Returns a triple containing the covariance matrix, the average and +the number of observations. The covariance matrix is then reset to +a zero-state.
+ + +
+ +
+   + + + + + + +
update(self, + x)
+ Update internal structures.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + dtype=None, + bias=False) +
(Constructor) +

+
  +
+ + If dtype is not defined, it will be inherited from the first +data bunch received by 'update'. +All the matrices in this class are set up with the given dtype and +no upcast is possible. +If bias is True, the covariance matrix is normalized by dividing +by T instead of the usual T-1. +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_init_internals(self, + x) +

+
  +
+ +
+Init the internal structures.
+
+The reason this is not done in the constructor is that we want to be
+able to derive the input dimension and the dtype directly from the
+data this class receives.
+
+
+
+
+
+
+ +
+ +
+ + +
+

fix(self, + center=True) +

+
  +
+ +

Returns a triple containing the covariance matrix, the average and +the number of observations. The covariance matrix is then reset to +a zero-state.

+

If center is false, the returned matrix is the matrix of the second moments, +i.e. the covariance matrix of the data without subtracting the mean.

+
+
+
+
+ +
+ +
+ + +
+

update(self, + x) +

+
  +
+ +

Update internal structures.

+

Note that no consistency checks are performed on the data (this is +typically done in the enclosing node).

+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.utils.CrossCovarianceMatrix-class.html b/legacy/api/mdp.utils.CrossCovarianceMatrix-class.html new file mode 100755 index 0000000..c31c4be --- /dev/null +++ b/legacy/api/mdp.utils.CrossCovarianceMatrix-class.html @@ -0,0 +1,376 @@ + + + + + mdp.utils.CrossCovarianceMatrix + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package utils :: + Class CrossCovarianceMatrix + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class CrossCovarianceMatrix

+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
_init_internals(self, + x, + y)
+ Init the internal structures.
+ + +
+ +
+   + + + + + + +
fix(self)
+ Returns a triple containing the covariance matrix, the average and +the number of observations. The covariance matrix is then reset to +a zero-state.
+ + +
+ +
+   + + + + + + +
update(self, + x, + y)
+ Update internal structures.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
    Inherited from CovarianceMatrix
+   + + + + + + +
__init__(self, + dtype=None, + bias=False)
+ If dtype is not defined, it will be inherited from the first +data bunch received by 'update'. +All the matrices in this class are set up with the given dtype and +no upcast is possible. +If bias is True, the covariance matrix is normalized by dividing +by T instead of the usual T-1.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

_init_internals(self, + x, + y) +

+
  +
+ +
+Init the internal structures.
+
+The reason this is not done in the constructor is that we want to be
+able to derive the input dimension and the dtype directly from the
+data this class receives.
+
+
+
+
Overrides: + CovarianceMatrix._init_internals +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

fix(self) +

+
  +
+ +

Returns a triple containing the covariance matrix, the average and +the number of observations. The covariance matrix is then reset to +a zero-state.

+

If center is false, the returned matrix is the matrix of the second moments, +i.e. the covariance matrix of the data without subtracting the mean.

+
+
Overrides: + CovarianceMatrix.fix +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

update(self, + x, + y) +

+
  +
+ +

Update internal structures.

+

Note that no consistency checks are performed on the data (this is +typically done in the enclosing node).

+
+
Overrides: + CovarianceMatrix.update +
(inherited documentation)
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.utils.DelayCovarianceMatrix-class.html b/legacy/api/mdp.utils.DelayCovarianceMatrix-class.html new file mode 100755 index 0000000..cbdeeec --- /dev/null +++ b/legacy/api/mdp.utils.DelayCovarianceMatrix-class.html @@ -0,0 +1,408 @@ + + + + + mdp.utils.DelayCovarianceMatrix + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package utils :: + Class DelayCovarianceMatrix + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class DelayCovarianceMatrix

+
+ +
+
+

This class stores an empirical covariance matrix between the signal and +time delayed signal that can be updated incrementally.

+

Note that the internal sum is a standard __add__ operation. We are not +using any of the fancy sum algorithms to avoid round off errors when +adding many numbers. If you want to contribute a CovarianceMatrix class +that uses such algorithms we would be happy to include it in MDP. +For a start see the Python recipe by Raymond Hettinger at +http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/393090 +For a review about floating point arithmetic and its pitfalls see +http://docs.sun.com/source/806-3568/ncg_goldberg.html

+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + dt, + dtype=None, + bias=False)
+ dt is the time delay. If dt==0, DelayCovarianceMatrix equals +CovarianceMatrix. If dtype is not defined, it will be inherited from +the first data bunch received by 'update'. +All the matrices in this class are set up with the given dtype and +no upcast is possible. +If bias is True, the covariance matrix is normalized by dividing +by T instead of the usual T-1.
+ + +
+ +
+   + + + + + + +
_init_internals(self, + x)
+ Inits some internals structures.
+ + +
+ +
+   + + + + + + +
fix(self, + A=None)
+ The collected data is adjusted to compute the covariance matrix of +the signal x(1)...x(N-dt) and the delayed signal x(dt)...x(N), +which is defined as <(x(t)-<x(t)>)*(x(t+dt)-<x(t+dt)>)> . +The function returns a tuple containing the covariance matrix, +the average <x(t)> over the first N-dt points, the average of the +delayed signal <x(t+dt)> and the number of observations. The internal +data is then reset to a zero-state.
+ + +
+ +
+   + + + + + + +
update(self, + x)
+ Update internal structures.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + dt, + dtype=None, + bias=False) +
(Constructor) +

+
  +
+ + dt is the time delay. If dt==0, DelayCovarianceMatrix equals +CovarianceMatrix. If dtype is not defined, it will be inherited from +the first data bunch received by 'update'. +All the matrices in this class are set up with the given dtype and +no upcast is possible. +If bias is True, the covariance matrix is normalized by dividing +by T instead of the usual T-1. +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_init_internals(self, + x) +

+
  +
+ +
+Inits some internals structures. The reason this is not done in
+the constructor is that we want to be able to derive the input
+dimension and the dtype directly from the data this class receives.
+
+
+
+
+
+
+ +
+ +
+ + +
+

fix(self, + A=None) +

+
  +
+ +

The collected data is adjusted to compute the covariance matrix of +the signal x(1)...x(N-dt) and the delayed signal x(dt)...x(N), +which is defined as <(x(t)-<x(t)>)*(x(t+dt)-<x(t+dt)>)> . +The function returns a tuple containing the covariance matrix, +the average <x(t)> over the first N-dt points, the average of the +delayed signal <x(t+dt)> and the number of observations. The internal +data is then reset to a zero-state.

+

If A is defined, the covariance matrix is transformed by the linear +transformation Ax . E.g. to whiten the data, A is the whitening matrix.

+
+
+
+
+ +
+ +
+ + +
+

update(self, + x) +

+
  +
+ + Update internal structures. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.utils.HTMLSlideShow-class.html b/legacy/api/mdp.utils.HTMLSlideShow-class.html new file mode 100755 index 0000000..a6f2911 --- /dev/null +++ b/legacy/api/mdp.utils.HTMLSlideShow-class.html @@ -0,0 +1,790 @@ + + + + + mdp.utils.HTMLSlideShow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package utils :: + Class HTMLSlideShow + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class HTMLSlideShow

+
+ +
+
+

Abstract slideshow base class.

+

It does not display anything, but can be adapted by overriding +some of the templating attributes. See ImageHTMLSlideShow for an example.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + title=None, + delay=100, + delay_delta=20, + loop=True, + slideshow_id=None, + shortcuts=True, + **kwargs)
+ Return the complete HTML code for the slideshow.
+ + +
+ +
+   + + + + + + +
_get_random_id(self)
+ Factory method for random slideshow id.
+ + +
+ +
+   + + + + + + +
html_bottom_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
html_box_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
html_buttons_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
html_controls_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
html_delay_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
html_top_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_controls_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_keyboard_shortcuts_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_loadslide_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_onload_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_update_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+

Inherited from unreachable.StringTemplate: + __str__, + write +

+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + title=None, + delay=100, + delay_delta=20, + loop=True, + slideshow_id=None, + shortcuts=True, + **kwargs) +
(Constructor) +

+
  +
+ +
+Return the complete HTML code for the slideshow.
+
+title -- Optional slideshow title (for defualt None not title is shown).
+delay - Delay between slides in ms (default 100).
+delay_delta - Step size for increasing or decreasing the delay.
+loop -- If True continue with first slide when the last slide is
+    reached during the automatic slideshow (default is False).
+slideshow_id -- String with the id used for the JS closure, and this
+    is also the id of the div with the slideshow (so it can be used
+    by CSS) and it is used as a prefix for the HTML elements.
+    If the value is None (default) then a random id is used.
+shortcuts -- Bind keyboard shortcuts to this slideshow (default is
+    True). Note that keyboard shortcuts only work for a single
+    slideshow per page.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_get_random_id(self) +

+
  +
+ +
+Factory method for random slideshow id.
+
+
+
+
+
+
+ +
+ +
+ + +
+

html_bottom_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

html_box_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

html_buttons_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

html_controls_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

html_delay_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

html_top_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

js_controls_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

js_keyboard_shortcuts_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

js_loadslide_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

js_onload_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

js_update_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.utils.ImageHTMLSlideShow-class.html b/legacy/api/mdp.utils.ImageHTMLSlideShow-class.html new file mode 100755 index 0000000..ec06e20 --- /dev/null +++ b/legacy/api/mdp.utils.ImageHTMLSlideShow-class.html @@ -0,0 +1,710 @@ + + + + + mdp.utils.ImageHTMLSlideShow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package utils :: + Class ImageHTMLSlideShow + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class ImageHTMLSlideShow

+
+ +
+
+

Slideshow for images.

+

This also serves as an example for implementing a slideshow based on +HTMLSlideShow.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + filenames, + image_size, + magnification=1, + mag_control=True, + **kwargs)
+ Return the complete HTML code for a slideshow of the given images.
+ + +
+ +
+   + + + + + + +
html_box_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
html_controls_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
html_mag_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_controls_resize_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_controls_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_loadslide_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_onload_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+

Inherited from unreachable.StringTemplate: + __str__, + write +

+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from HTMLSlideShow
+   + + + + + + +
_get_random_id(self)
+ Factory method for random slideshow id.
+ + +
+ +
+   + + + + + + +
html_bottom_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
html_buttons_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
html_delay_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
html_top_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_keyboard_shortcuts_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_update_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + filenames, + image_size, + magnification=1, + mag_control=True, + **kwargs) +
(Constructor) +

+
  +
+ +
+Return the complete HTML code for a slideshow of the given images.
+
+filenames -- sequence of strings, containing the path for each image
+image_size -- Tuple (x,y) with the original image size, or enter
+    a different size to force scaling.
+magnification -- Magnification factor for images (default 1). This
+    factor is applied on top of the provided image size.
+mag_control -- Set to True (default) to display a magnification control
+    element.
+
+For additional keyword arguments see the super class.
+
+
+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

html_box_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
Overrides: + HTMLSlideShow.html_box_template +
+
+
+
+ +
+ +
+ + +
+

html_controls_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
Overrides: + HTMLSlideShow.html_controls_template +
+
+
+
+ +
+ +
+ + +
+

html_mag_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

js_controls_resize_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

js_controls_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
Overrides: + HTMLSlideShow.js_controls_template +
+
+
+
+ +
+ +
+ + +
+

js_loadslide_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
Overrides: + HTMLSlideShow.js_loadslide_template +
+
+
+
+ +
+ +
+ + +
+

js_onload_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
Overrides: + HTMLSlideShow.js_onload_template +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.utils.MultipleCovarianceMatrices-class.html b/legacy/api/mdp.utils.MultipleCovarianceMatrices-class.html new file mode 100755 index 0000000..f9fecc3 --- /dev/null +++ b/legacy/api/mdp.utils.MultipleCovarianceMatrices-class.html @@ -0,0 +1,524 @@ + + + + + mdp.utils.MultipleCovarianceMatrices + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package utils :: + Class MultipleCovarianceMatrices + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class MultipleCovarianceMatrices

+
+ +
+
+Container class for multiple covariance matrices to easily +execute operations on all matrices at the same time. +Note: all operations are done in place where possible. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__getitem__(self, + item) + + +
+ +
+   + + + + + + +
__init__(self, + covs)
+ Insantiate with a sequence of covariance matrices.
+ + +
+ +
+   + + + + + + +
copy(self)
+ Return a deep copy of the instance.
+ + +
+ +
+   + + + + + + +
permute(self, + indices)
+ Swap two columns and two rows of all matrices, whose indices are +specified as [i,j].
+ + +
+ +
+   + + + + + + +
rotate(self, + angle, + indices)
+ Rotate matrices by angle in the plane defined by indices [i,j].
+ + +
+ +
+   + + + + + + +
symmetrize(self)
+ Symmetrize matrices: C -> (C+C^T)/2 .
+ + +
+ +
+   + + + + + + +
transform(self, + trans_matrix)
+ Apply a linear transformation to all matrices, defined by the +transformation matrix.
+ + +
+ +
+   + + + + + + +
weight(self, + weights)
+ Apply a weighting factor to matrices. +Argument can be a sequence or a single value. In the latter case +the same weight is applied to all matrices.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__getitem__(self, + item) +
(Indexing operator) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__init__(self, + covs) +
(Constructor) +

+
  +
+ + Insantiate with a sequence of covariance matrices. +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

copy(self) +

+
  +
+ + Return a deep copy of the instance. +
+
+
+
+ +
+ +
+ + +
+

permute(self, + indices) +

+
  +
+ + Swap two columns and two rows of all matrices, whose indices are +specified as [i,j]. +
+
+
+
+ +
+ +
+ + +
+

rotate(self, + angle, + indices) +

+
  +
+ + Rotate matrices by angle in the plane defined by indices [i,j]. +
+
+
+
+ +
+ +
+ + +
+

symmetrize(self) +

+
  +
+ + Symmetrize matrices: C -> (C+C^T)/2 . +
+
+
+
+ +
+ +
+ + +
+

transform(self, + trans_matrix) +

+
  +
+ + Apply a linear transformation to all matrices, defined by the +transformation matrix. +
+
+
+
+ +
+ +
+ + +
+

weight(self, + weights) +

+
  +
+ + Apply a weighting factor to matrices. +Argument can be a sequence or a single value. In the latter case +the same weight is applied to all matrices. +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.utils.QuadraticForm-class.html b/legacy/api/mdp.utils.QuadraticForm-class.html new file mode 100755 index 0000000..2606ed0 --- /dev/null +++ b/legacy/api/mdp.utils.QuadraticForm-class.html @@ -0,0 +1,469 @@ + + + + + mdp.utils.QuadraticForm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package utils :: + Class QuadraticForm + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class QuadraticForm

+
+ +
+
+

Define an inhomogeneous quadratic form as 1/2 x'Hx + f'x + c . +This class implements the quadratic form analysis methods +presented in:

+

Berkes, P. and Wiskott, L. (2006). On the analysis and interpretation +of inhomogeneous quadratic forms as receptive fields. Neural +Computation, 18(8): 1868-1895.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + H, + f=None, + c=None, + dtype='d')
+ The quadratic form is defined as 1/2 x'Hx + f'x + c . +'dtype' specifies the numerical type of the internal structures.
+ + +
+ +
+   + + + + + + +
_eig_sort(self, + x) + + +
+ +
+   + + + + + + +
_maximize(self, + norm, + tol=0.0001, + x0=None, + factor=None) + + +
+ +
+   + + + + + + +
apply(self, + x)
+ Apply the quadratic form to the input vectors. +Return 1/2 x'Hx + f'x + c .
+ + +
+ +
+   + + + + + + +
get_extrema(self, + norm, + tol=0.0001)
+ Find the input vectors xmax and xmin with norm 'nrm' that maximize +or minimize the quadratic form.
+ + +
+ +
+   + + + + + + +
get_invariances(self, + xstar)
+ Compute invariances of the quadratic form at extremum 'xstar'. +Outputs:
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + H, + f=None, + c=None, + dtype='d') +
(Constructor) +

+
  +
+ + The quadratic form is defined as 1/2 x'Hx + f'x + c . +'dtype' specifies the numerical type of the internal structures. +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

_eig_sort(self, + x) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

_maximize(self, + norm, + tol=0.0001, + x0=None, + factor=None) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

apply(self, + x) +

+
  +
+ + Apply the quadratic form to the input vectors. +Return 1/2 x'Hx + f'x + c . +
+
+
+
+ +
+ +
+ + +
+

get_extrema(self, + norm, + tol=0.0001) +

+
  +
+ +

Find the input vectors xmax and xmin with norm 'nrm' that maximize +or minimize the quadratic form.

+

tol: norm error tolerance

+
+
+
+
+ +
+ +
+ + +
+

get_invariances(self, + xstar) +

+
  +
+ +

Compute invariances of the quadratic form at extremum 'xstar'. +Outputs:

+
+w -- w[:,i] is the direction of the i-th invariance +nu -- nu[i] second derivative on the sphere in the direction w[:,i]
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.utils.QuadraticFormException-class.html b/legacy/api/mdp.utils.QuadraticFormException-class.html new file mode 100755 index 0000000..66cb6a3 --- /dev/null +++ b/legacy/api/mdp.utils.QuadraticFormException-class.html @@ -0,0 +1,193 @@ + + + + + mdp.utils.QuadraticFormException + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package utils :: + Class QuadraticFormException + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class QuadraticFormException

+
+ +
+
+ + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+

Inherited from exceptions.Exception: + __init__, + __new__ +

+

Inherited from exceptions.BaseException: + __delattr__, + __getattribute__, + __getitem__, + __getslice__, + __reduce__, + __repr__, + __setattr__, + __setstate__, + __str__, + __unicode__ +

+

Inherited from object: + __format__, + __hash__, + __reduce_ex__, + __sizeof__, + __subclasshook__ +

+
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from exceptions.BaseException: + args, + message +

+

Inherited from object: + __class__ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.utils.SectionHTMLSlideShow-class.html b/legacy/api/mdp.utils.SectionHTMLSlideShow-class.html new file mode 100755 index 0000000..309af82 --- /dev/null +++ b/legacy/api/mdp.utils.SectionHTMLSlideShow-class.html @@ -0,0 +1,594 @@ + + + + + mdp.utils.SectionHTMLSlideShow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package utils :: + Class SectionHTMLSlideShow + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SectionHTMLSlideShow

+
+ +
+
+Astract slideshow with additional support for section markers. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + section_ids, + slideshow_id=None, + **kwargs)
+ Return the complete HTML code for the slideshow.
+ + +
+ +
+   + + + + + + +
html_buttons_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
html_controls_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_keyboard_shortcuts_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_update_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+

Inherited from unreachable.StringTemplate: + __str__, + write +

+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from HTMLSlideShow
+   + + + + + + +
_get_random_id(self)
+ Factory method for random slideshow id.
+ + +
+ +
+   + + + + + + +
html_bottom_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
html_box_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
html_delay_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
html_top_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_controls_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_loadslide_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_onload_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + section_ids, + slideshow_id=None, + **kwargs) +
(Constructor) +

+
  +
+ +

Return the complete HTML code for the slideshow.

+
+
section_ids -- List with the section id for each slide index. The id
+
can be a string or a number.
+
+

For additional keyword arguments see the super class.

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

html_buttons_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
Overrides: + HTMLSlideShow.html_buttons_template +
+
+
+
+ +
+ +
+ + +
+

html_controls_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
Overrides: + HTMLSlideShow.html_controls_template +
+
+
+
+ +
+ +
+ + +
+

js_keyboard_shortcuts_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
Overrides: + HTMLSlideShow.js_keyboard_shortcuts_template +
+
+
+
+ +
+ +
+ + +
+

js_update_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
Overrides: + HTMLSlideShow.js_update_template +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.utils.SectionImageHTMLSlideShow-class.html b/legacy/api/mdp.utils.SectionImageHTMLSlideShow-class.html new file mode 100755 index 0000000..065b9cc --- /dev/null +++ b/legacy/api/mdp.utils.SectionImageHTMLSlideShow-class.html @@ -0,0 +1,562 @@ + + + + + mdp.utils.SectionImageHTMLSlideShow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package utils :: + Class SectionImageHTMLSlideShow + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class SectionImageHTMLSlideShow

+
+ +
+
+Image slideshow with section markers. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + filenames, + section_ids, + image_size, + **kwargs)
+ Return the HTML code for a sectioned slideshow of the given images.
+ + +
+ +
+   + + + + + + +
js_controls_resize_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+

Inherited from unreachable.StringTemplate: + __str__, + write +

+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __subclasshook__ +

+
    Inherited from SectionHTMLSlideShow
+   + + + + + + +
html_buttons_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
html_controls_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_keyboard_shortcuts_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_update_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
    Inherited from ImageHTMLSlideShow
+   + + + + + + +
html_box_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
html_mag_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_controls_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_loadslide_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
js_onload_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
    Inherited from HTMLSlideShow
+   + + + + + + +
_get_random_id(self)
+ Factory method for random slideshow id.
+ + +
+ +
+   + + + + + + +
html_bottom_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
html_delay_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
html_top_template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+   + + + + + + +
template(self, + _TemplateMetaClass__dict=None, + **kw) + + +
+ +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + filenames, + section_ids, + image_size, + **kwargs) +
(Constructor) +

+
  +
+ +

Return the HTML code for a sectioned slideshow of the given images.

+

For keyword arguments see the super classes.

+
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

js_controls_resize_template(self, + _TemplateMetaClass__dict=None, + **kw) +

+
  +
+ + +
+
Overrides: + ImageHTMLSlideShow.js_controls_resize_template +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.utils.TemporaryDirectory-class.html b/legacy/api/mdp.utils.TemporaryDirectory-class.html new file mode 100755 index 0000000..17b3d87 --- /dev/null +++ b/legacy/api/mdp.utils.TemporaryDirectory-class.html @@ -0,0 +1,739 @@ + + + + + mdp.utils.TemporaryDirectory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package utils :: + Class TemporaryDirectory + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class TemporaryDirectory

+
+ +
+
+

Create and return a temporary directory. This has the same +behavior as mkdtemp but can be used as a context manager. For +example:

+
+
+
with TemporaryDirectory() as tmpdir:
+
...
+
+
+

Upon exiting the context, the directory and everthing contained +in it are removed.

+ + + + + + + + + + +
+ + + + + +
Nested Classes[hide private]
+
+   + + _os_error
+ OS system call failed. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__del__(self) + + +
+ +
+   + + + + + + +
__enter__(self) + + +
+ +
+   + + + + + + +
__exit__(self, + exc, + value, + tb) + + +
+ +
+   + + + + + + +
__init__(self, + suffix='', + prefix='tmp', + dir=None)
+ x.__init__(...) initializes x; see help(type(x)) for signature
+ + +
+ +
+   + + + + + + +
__repr__(self)
+ repr(x)
+ + +
+ +
+   + + + + + + +
_rmtree(self, + path) + + +
+ +
+   + + + + + + +
cleanup(self, + _warn=False) + + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Static Methods[hide private]
+
+   + + + + + + +
_isdir(s)
+ Return true if the pathname refers to an existing directory.
+ + +
+ +
+ list_of_strings + + + + + + +
_listdir(path)
+ Return a list containing the names of the entries in the directory.
+ + +
+ +
+   + + + + + + +
_path_join(a, + *p)
+ Join two or more pathname components, inserting '/' as needed. +If any component is an absolute path, all previous path components +will be discarded. An empty last part will result in a path that +ends with a separator.
+ + +
+ +
+   + + + + + + +
_remove(path)
+ Remove a file (same as unlink(path)).
+ + +
+ +
+   + + + + + + +
_rmdir(path)
+ Remove a directory.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__del__(self) +
(Destructor) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__enter__(self) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__exit__(self, + exc, + value, + tb) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

__init__(self, + suffix='', + prefix='tmp', + dir=None) +
(Constructor) +

+
  +
+ +
+x.__init__(...) initializes x; see help(type(x)) for signature
+
+
+
+
Overrides: + object.__init__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

__repr__(self) +
(Representation operator) +

+
  +
+ +
+repr(x)
+
+
+
+
Overrides: + object.__repr__ +
(inherited documentation)
+ +
+
+
+ +
+ +
+ + +
+

_isdir(s) +
Static Method +

+
  +
+ + Return true if the pathname refers to an existing directory. +
+
+
+
+ +
+ +
+ + +
+

_listdir(path) +
Static Method +

+
  +
+ +

Return a list containing the names of the entries in the directory.

+
+path: path of directory to list
+

The list is in arbitrary order. It does not include the special +entries '.' and '..' even if they are present in the directory.

+
+
Returns: list_of_strings
+
+
+
+ +
+ +
+ + +
+

_path_join(a, + *p) +
Static Method +

+
  +
+ + Join two or more pathname components, inserting '/' as needed. +If any component is an absolute path, all previous path components +will be discarded. An empty last part will result in a path that +ends with a separator. +
+
+
+
+ +
+ +
+ + +
+

_remove(path) +
Static Method +

+
  +
+ + Remove a file (same as unlink(path)). +
+
+
+
+ +
+ +
+ + +
+

_rmdir(path) +
Static Method +

+
  +
+ + Remove a directory. +
+
+
+
+ +
+ +
+ + +
+

_rmtree(self, + path) +

+
  +
+ + +
+
+
+
+ +
+ +
+ + +
+

cleanup(self, + _warn=False) +

+
  +
+ + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/mdp.utils.VartimeCovarianceMatrix-class.html b/legacy/api/mdp.utils.VartimeCovarianceMatrix-class.html new file mode 100755 index 0000000..000d105 --- /dev/null +++ b/legacy/api/mdp.utils.VartimeCovarianceMatrix-class.html @@ -0,0 +1,427 @@ + + + + + mdp.utils.VartimeCovarianceMatrix + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Package mdp :: + Package utils :: + Class VartimeCovarianceMatrix + + + + + + +
[hide private]
[frames] | no frames]
+
+ +

Class VartimeCovarianceMatrix

+
+ +
+
+

This class stores an empirical covariance matrix that can be updated +incrementally. A call to the 'fix' method returns the current state of +the covariance matrix, the average and the number of observations, and +resets the internal data.

+

As compared to the CovarianceMatrix class, this class accepts sampled +input in conjunction with a non-constant time increment between samples. +The covariance matrix is then computed as a (centered) scalar product +between functions, that is sampled unevenly, using the trapezoid rule.

+

The mean is computed using the trapezoid rule as well.

+

Note that the internal sum is a standard __add__ operation.

+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Instance Methods[hide private]
+
+   + + + + + + +
__init__(self, + dtype=None)
+ Initialize a VartimeCovarianceMatrix.
+ + +
+ +
+   + + + + + + +
fix(self, + center=True)
+ Returns a triple containing the generalized +covariance matrix, the average and length of the +sequence (in time/summed increments).
+ + +
+ +
+   + + + + + + +
update(self, + x, + dt=None, + time_dep=True)
+ Update internal structures.
+ + +
+ +
+

Inherited from unreachable.newobject: + __long__, + __native__, + __nonzero__, + __unicode__, + next +

+

Inherited from object: + __delattr__, + __format__, + __getattribute__, + __hash__, + __new__, + __reduce__, + __reduce_ex__, + __repr__, + __setattr__, + __sizeof__, + __str__, + __subclasshook__ +

+
    Inherited from CovarianceMatrix
+   + + + + + + +
_init_internals(self, + x)
+ Init the internal structures.
+ + +
+ +
+ + + + + + + + + +
+ + + + + +
Properties[hide private]
+
+

Inherited from object: + __class__ +

+
+ + + + + + +
+ + + + + +
Method Details[hide private]
+
+ +
+ +
+ + +
+

__init__(self, + dtype=None) +
(Constructor) +

+
  +
+ + Initialize a VartimeCovarianceMatrix. +
+
Parameters:
+
    +
  • dtype (numpy.dtype or str) - Datatype of the input. +Default is None. If dtype is not defined, it will be inherited +from the first data bunch received by 'update'.
  • +
+
Overrides: + object.__init__ +
+
+
+
+ +
+ +
+ + +
+

fix(self, + center=True) +

+
  +
+ +

Returns a triple containing the generalized +covariance matrix, the average and length of the +sequence (in time/summed increments).

+

The covariance matrix is then reset to a zero-state.

+

of sequence (in time/summed increments). +:rtype: Tuple[np.ndarray, np.ndarray, np.ndarray]

+
+
Parameters:
+
    +
  • center (bool) - If center is false, the returned matrix is the matrix +of the second moments, i.e. the covariance matrix of the data +without subtracting the mean.
  • +
+
Returns:
+
Generalized covariance matrix, average and length
+
Overrides: + CovarianceMatrix.fix +
+
+
+
+ +
+ +
+ + +
+

update(self, + x, + dt=None, + time_dep=True) +

+
  +
+ +

Update internal structures.

+

Note that no consistency checks are performed on the data (this is +typically done in the enclosing node).

+
+
Parameters:
+
    +
  • x (numpy.ndarray) - Timed sequence of vectors, with samples along the rows +and random variables along the columns.
  • +
  • dt (numpy.ndarray or numeric) - Sequence of time increments between vectors.

    +
    +
    Usage with only single chunk of data:
    +
    dt should be of length x.shape[0]-1 or a constant. When +constant, the time increments are assumed to be constant. If +dt is not supplied, a constant time increment of one is +assumed. If a time sequence of length x.shape[0] is supplied +the first element is disregarded and a warning is presented.
    +
    Usage with multiple chunks of data with intended time dependence:
    +
    dt should have length x.shape[0]-1 in the first call and +be of length x.shape[0] starting with the second call. +Starting with the second call, the first element in each chunk +will be considered the time difference between the last element +of x in the previous chunk and the first element of x of the +current chunk. +The time_dep argument being True indicates this mode.
    +
    Usage with multiple chunks without time dependence:
    +
    The moments are computed as a weighted average of the moments +of separate chunks, if dt continues to have length +x.shape[0]-1 after the first call. Time dependence between +chunks is thus omitted and all algorithmic components regard +only the time structure within chunks. +The time_dep argument being False indicates this mode. +As in the single chunk case it is possible to set dt to be a +constant or omit it completely for constant or unit time +increments within chunks respectively.
    +
  • +
  • time_dep (bool) - Indicates whether time dependence between chunks can +be considered. The argument is only relevant if multiple chunks +of data are used. Time dependence between chunks is disregarded +when data collection has been done time-independently and thus no +reasonable time increment between the end of a chunk and +beginning of the next can be specified.
  • +
+
Overrides: + CovarianceMatrix.update +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/module-tree.html b/legacy/api/module-tree.html new file mode 100755 index 0000000..45ba39b --- /dev/null +++ b/legacy/api/module-tree.html @@ -0,0 +1,127 @@ + + + + + Module Hierarchy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  + + + + +
[hide private]
[frames] | no frames]
+
+
+ [ Module Hierarchy + | Class Hierarchy ] +

+

Module Hierarchy

+
    +
  • mdp: The Modular toolkit for Data Processing (MDP) package is a library +of widely used data processing algorithms, and the possibility to +combine them together to form pipelines for building more complex +data processing software. + +
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/legacy/api/redirect.html b/legacy/api/redirect.html new file mode 100755 index 0000000..ec7f1bc --- /dev/null +++ b/legacy/api/redirect.html @@ -0,0 +1,38 @@ +Epydoc Redirect Page + + + + + + + + +

Epydoc Auto-redirect page

+ +

When javascript is enabled, this page will redirect URLs of +the form redirect.html#dotted.name to the +documentation for the object with the given fully-qualified +dotted name.

+

 

+ + + + + diff --git a/legacy/api/toc-everything.html b/legacy/api/toc-everything.html new file mode 100755 index 0000000..5073512 --- /dev/null +++ b/legacy/api/toc-everything.html @@ -0,0 +1,392 @@ + + + + + Everything + + + + + +

Everything

+
+

All Classes

+ collections.OrderedDict
exceptions.OSError
mdp.CheckpointFlow
mdp.CheckpointFunction
mdp.CheckpointSaveFunction
mdp.CircularOnlineFlow
mdp.CircularOnlineFlowException
mdp.ClassifierCumulator
mdp.ClassifierNode
mdp.CrashRecoveryException
mdp.Cumulator
mdp.ExtensionNode
mdp.ExtensionNodeMetaclass
mdp.Flow
mdp.FlowException
mdp.FlowExceptionCR
mdp.IsNotInvertibleException
mdp.IsNotTrainableException
+ mdp.MDPException
mdp.MDPWarning
mdp.Node
mdp.NodeException
+ mdp.OnlineFlow
mdp.OnlineFlowException
mdp.OnlineNode
mdp.OnlineNodeException
mdp.PreserveDimNode
mdp.PreserveDimOnlineNode
mdp.TrainingException
mdp.TrainingFinishedException
mdp.caching.cache
mdp.config
+ mdp.extension
mdp.graph.Graph
mdp.graph.GraphEdge
mdp.graph.GraphException
mdp.graph.GraphNode
mdp.graph.GraphTopologicalException
mdp.hinet.ChannelSwitchboard
mdp.hinet.CircularOnlineFlowNode
mdp.hinet.CloneLayer
mdp.hinet.CloneOnlineLayer
mdp.hinet.DoubleRect2dSwitchboard
mdp.hinet.DoubleRect2dSwitchboardException
mdp.hinet.DoubleRhomb2dSwitchboard
mdp.hinet.DoubleRhomb2dSwitchboardException
mdp.hinet.FlowNode
mdp.hinet.Layer
mdp.hinet.OnlineFlowNode
mdp.hinet.OnlineLayer
mdp.hinet.Rectangular2dSwitchboard
mdp.hinet.Rectangular2dSwitchboardException
mdp.hinet.SameInputLayer
mdp.hinet.SameInputOnlineLayer
mdp.hinet.Switchboard
mdp.hinet.SwitchboardException
+ + + mdp.nodes.ARDRegressionScikitsLearnNode
mdp.nodes.AdaptiveCutoffNode
mdp.nodes.BayesianRidgeScikitsLearnNode
mdp.nodes.BinarizerScikitsLearnNode
mdp.nodes.CCAScikitsLearnNode
mdp.nodes.CCIPCANode
mdp.nodes.CCIPCAWhiteningNode
mdp.nodes.Convolution2DNode
mdp.nodes.CountVectorizerScikitsLearnNode
mdp.nodes.CuBICANode
mdp.nodes.CutoffNode
mdp.nodes.DiscreteHopfieldClassifier
mdp.nodes.ElasticNetCVScikitsLearnNode
mdp.nodes.ElasticNetScikitsLearnNode
mdp.nodes.EtaComputerNode
mdp.nodes.FANode
mdp.nodes.FDANode
mdp.nodes.FastICANode
mdp.nodes.FastICAScikitsLearnNode
mdp.nodes.GMMHMMScikitsLearnNode
mdp.nodes.GMMScikitsLearnNode
mdp.nodes.GNBScikitsLearnNode
mdp.nodes.GSFANode
mdp.nodes.GaussianClassifier
mdp.nodes.GaussianHMMScikitsLearnNode
mdp.nodes.GaussianProcessScikitsLearnNode
mdp.nodes.GeneralExpansionNode
mdp.nodes.GenericUnivariateSelectScikitsLearnNode
mdp.nodes.GrowingNeuralGasExpansionNode
mdp.nodes.GrowingNeuralGasNode
mdp.nodes.HLLENode
mdp.nodes.HistogramNode
mdp.nodes.HitParadeNode
+ mdp.nodes.ISFANode
mdp.nodes.IdentityNode
mdp.nodes.IncSFANode
mdp.nodes.JADENode
mdp.nodes.KMeansClassifier
mdp.nodes.KNNClassifier
mdp.nodes.KernelCentererScikitsLearnNode
mdp.nodes.KernelPCAScikitsLearnNode
mdp.nodes.LARSScikitsLearnNode
mdp.nodes.LDAScikitsLearnNode
mdp.nodes.LLENode
mdp.nodes.LabelBinarizerScikitsLearnNode
mdp.nodes.LassoCVScikitsLearnNode
mdp.nodes.LassoLARSScikitsLearnNode
mdp.nodes.LassoScikitsLearnNode
mdp.nodes.LengthNormalizerScikitsLearnNode
mdp.nodes.LinearModelCVScikitsLearnNode
mdp.nodes.LinearRegressionNode
mdp.nodes.LinearRegressionScikitsLearnNode
mdp.nodes.LinearSVCScikitsLearnNode
mdp.nodes.LogisticRegressionScikitsLearnNode
mdp.nodes.MCANode
mdp.nodes.MultinomialHMMScikitsLearnNode
mdp.nodes.NIPALSNode
mdp.nodes.NMFScikitsLearnNode
mdp.nodes.NearestMeanClassifier
mdp.nodes.NeighborsClassifierScikitsLearnNode
mdp.nodes.NeighborsRegressorScikitsLearnNode
mdp.nodes.NeuralGasNode
mdp.nodes.NoiseNode
mdp.nodes.NormalNoiseNode
mdp.nodes.NormalizeNode
mdp.nodes.NormalizerScikitsLearnNode
mdp.nodes.NormalizingRecursiveExpansionNode
mdp.nodes.NuSVCScikitsLearnNode
mdp.nodes.NuSVRScikitsLearnNode
mdp.nodes.OneClassSVMScikitsLearnNode
mdp.nodes.OnlineCenteringNode
mdp.nodes.OnlineTimeDiffNode
mdp.nodes.PCANode
mdp.nodes.PCAScikitsLearnNode
mdp.nodes.PLSCanonicalScikitsLearnNode
mdp.nodes.PLSRegressionScikitsLearnNode
mdp.nodes.PLSSVDScikitsLearnNode
mdp.nodes.PerceptronClassifier
mdp.nodes.PolynomialExpansionNode
mdp.nodes.ProbabilisticPCAScikitsLearnNode
mdp.nodes.ProjectedGradientNMFScikitsLearnNode
mdp.nodes.QDAScikitsLearnNode
mdp.nodes.QuadraticExpansionNode
mdp.nodes.RBFExpansionNode
mdp.nodes.RBMNode
mdp.nodes.RBMWithLabelsNode
mdp.nodes.RFECVScikitsLearnNode
mdp.nodes.RFEScikitsLearnNode
mdp.nodes.RandomizedPCAScikitsLearnNode
mdp.nodes.RecursiveExpansionNode
mdp.nodes.RidgeCVScikitsLearnNode
mdp.nodes.RidgeClassifierCVScikitsLearnNode
mdp.nodes.RidgeClassifierScikitsLearnNode
mdp.nodes.RidgeScikitsLearnNode
mdp.nodes.SFA2Node
mdp.nodes.SFANode
mdp.nodes.SGDClassifierScikitsLearnNode
mdp.nodes.SGDRegressorScikitsLearnNode
mdp.nodes.SVCScikitsLearnNode
mdp.nodes.SVRScikitsLearnNode
mdp.nodes.ScalerScikitsLearnNode
mdp.nodes.SelectFdrScikitsLearnNode
mdp.nodes.SelectFprScikitsLearnNode
mdp.nodes.SelectFweScikitsLearnNode
mdp.nodes.SelectKBestScikitsLearnNode
mdp.nodes.SelectPercentileScikitsLearnNode
mdp.nodes.SignumClassifier
mdp.nodes.SimpleMarkovClassifier
mdp.nodes.SparseBaseLibLinearScikitsLearnNode
mdp.nodes.SparseBaseLibSVMScikitsLearnNode
mdp.nodes.TDSEPNode
mdp.nodes.TfidfTransformerScikitsLearnNode
mdp.nodes.TimeDelayNode
mdp.nodes.TimeDelaySlidingWindowNode
mdp.nodes.TimeFramesNode
mdp.nodes.VartimeSFANode
mdp.nodes.VectorizerScikitsLearnNode
mdp.nodes.WardAgglomerationScikitsLearnNode
mdp.nodes.WhiteningNode
mdp.nodes.XSFANode
mdp.nodes._OneDimensionalHitParade
mdp.nodes.iGSFANode
mdp.parallel.ExecuteResultContainer
mdp.parallel.FlowExecuteCallable
mdp.parallel.FlowTaskCallable
mdp.parallel.FlowTrainCallable
mdp.parallel.JoinParallelException
mdp.parallel.ListResultContainer
mdp.parallel.NoTaskException
mdp.parallel.NotForkableParallelException
mdp.parallel.OrderedResultContainer
mdp.parallel.ParallelCheckpointFlow
mdp.parallel.ParallelCloneLayer
mdp.parallel.ParallelExtensionNode
mdp.parallel.ParallelFDANode
mdp.parallel.ParallelFlow
mdp.parallel.ParallelFlowException
mdp.parallel.ParallelFlowNode
mdp.parallel.ParallelHistogramNode
mdp.parallel.ParallelLayer
mdp.parallel.ParallelSFANode
mdp.parallel.ProcessScheduler
mdp.parallel.ResultContainer
mdp.parallel.Scheduler
mdp.parallel.SleepSqrTestCallable
mdp.parallel.SqrTestCallable
mdp.parallel.TaskCallable
mdp.parallel.TaskCallableWrapper
mdp.parallel.ThreadScheduler
mdp.parallel.TrainResultContainer
mdp.utils.CovarianceMatrix
mdp.utils.CrossCovarianceMatrix
mdp.utils.DelayCovarianceMatrix
mdp.utils.HTMLSlideShow
mdp.utils.ImageHTMLSlideShow
mdp.utils.MultipleCovarianceMatrices
mdp.utils.QuadraticForm
mdp.utils.QuadraticFormException
mdp.utils.SectionHTMLSlideShow
mdp.utils.SectionImageHTMLSlideShow
mdp.utils.TemporaryDirectory
mdp.utils.VartimeCovarianceMatrix

All Functions

+ mdp.VariadicCumulator
mdp.activate_extension
mdp.activate_extensions
mdp.caching.activate_caching
mdp.caching.deactivate_caching
mdp.caching.set_cachedir
mdp.deactivate_extension
mdp.deactivate_extensions
mdp.extension_method
mdp.extension_setup
mdp.extension_teardown
mdp.fastica
mdp.get_extensions
mdp.graph.is_sequence
mdp.graph.recursive_map
mdp.graph.recursive_reduce
mdp.hinet.get_2d_image_switchboard
+ mdp.nodes._expanded_dim
mdp.pca
+ + mdp.utils.basic_css
mdp.utils.bool_to_sign
mdp.utils.comb
mdp.utils.cov2
mdp.utils.dig_node
mdp.utils.fixup_namespace
mdp.utils.gabor
mdp.utils.get_dtypes
mdp.utils.get_node_size
mdp.utils.hermitian
mdp.utils.image_slideshow
mdp.utils.image_slideshow_css
mdp.utils.inv
mdp.utils.irep
mdp.utils.izip_stretched
mdp.utils.lrep
mdp.utils.matmult
mdp.utils.mult
mdp.utils.mult_diag
mdp.utils.nongeneral_svd
mdp.utils.norm2
mdp.utils.orthogonal_permutations
mdp.utils.permute
mdp.utils.pinv
mdp.utils.progressinfo
mdp.utils.random_rot
mdp.utils.refcast
mdp.utils.rotate
mdp.utils.rrep
mdp.utils.scast
mdp.utils.sign_to_bool
mdp.utils.slideshow_css
mdp.utils.solve
mdp.utils.sqrtm
mdp.utils.svd
+ + + + mdp.utils.symrand
mdp.utils.timediff
mdp.utils.weighted_choice
mdp.with_extension

All Variables

+ + + + + + + + + + + + + + +
+[hide private] + + + + diff --git a/legacy/api/toc-mdp-module.html b/legacy/api/toc-mdp-module.html new file mode 100755 index 0000000..ce6c1e5 --- /dev/null +++ b/legacy/api/toc-mdp-module.html @@ -0,0 +1,101 @@ + + + + + mdp + + + + + +

Module mdp

+
+

Classes

+ CheckpointFlow
CheckpointFunction
CheckpointSaveFunction
CircularOnlineFlow
CircularOnlineFlowException
ClassifierCumulator
ClassifierNode
CrashRecoveryException
Cumulator
ExtensionNode
ExtensionNodeMetaclass
Flow
FlowException
FlowExceptionCR
IsNotInvertibleException
IsNotTrainableException
+ MDPException
MDPWarning
Node
NodeException
+ OnlineFlow
OnlineFlowException
OnlineNode
OnlineNodeException
PreserveDimNode
PreserveDimOnlineNode
TrainingException
TrainingFinishedException
config
extension

Functions

+ VariadicCumulator
activate_extension
activate_extensions
deactivate_extension
deactivate_extensions
extension_method
extension_setup
extension_teardown
fastica
get_extensions
pca
with_extension

Variables

+ + + + + + + +
+[hide private] + + + + diff --git a/legacy/api/toc-mdp.caching-module.html b/legacy/api/toc-mdp.caching-module.html new file mode 100755 index 0000000..ac54af4 --- /dev/null +++ b/legacy/api/toc-mdp.caching-module.html @@ -0,0 +1,39 @@ + + + + + caching + + + + + +

Module caching

+
+

Classes

+ cache

Functions

+ activate_caching
deactivate_caching
set_cachedir

Variables

+ +
+[hide private] + + + + diff --git a/legacy/api/toc-mdp.graph-module.html b/legacy/api/toc-mdp.graph-module.html new file mode 100755 index 0000000..4e0650d --- /dev/null +++ b/legacy/api/toc-mdp.graph-module.html @@ -0,0 +1,43 @@ + + + + + graph + + + + + +

Module graph

+
+

Classes

+ Graph
GraphEdge
GraphException
GraphNode
GraphTopologicalException

Functions

+ is_sequence
recursive_map
recursive_reduce

Variables

+ +
+[hide private] + + + + diff --git a/legacy/api/toc-mdp.hinet-module.html b/legacy/api/toc-mdp.hinet-module.html new file mode 100755 index 0000000..fe9c3db --- /dev/null +++ b/legacy/api/toc-mdp.hinet-module.html @@ -0,0 +1,58 @@ + + + + + hinet + + + + + +

Module hinet

+
+

Classes

+ ChannelSwitchboard
CircularOnlineFlowNode
CloneLayer
CloneOnlineLayer
DoubleRect2dSwitchboard
DoubleRect2dSwitchboardException
DoubleRhomb2dSwitchboard
DoubleRhomb2dSwitchboardException
FlowNode
HiNetHTMLVisitor
HiNetXHTMLVisitor
Layer
NewlineWriteFile
OnlineFlowNode
OnlineLayer
Rectangular2dSwitchboard
Rectangular2dSwitchboardException
SameInputLayer
SameInputOnlineLayer
Switchboard
SwitchboardException

Functions

+ get_2d_image_switchboard
show_flow

Variables

+ +
+[hide private] + + + + diff --git a/legacy/api/toc-mdp.nodes-module.html b/legacy/api/toc-mdp.nodes-module.html new file mode 100755 index 0000000..470908b --- /dev/null +++ b/legacy/api/toc-mdp.nodes-module.html @@ -0,0 +1,161 @@ + + + + + nodes + + + + + +

Module nodes

+
+

Classes

+ ARDRegressionScikitsLearnNode
AdaptiveCutoffNode
BayesianRidgeScikitsLearnNode
BinarizerScikitsLearnNode
CCAScikitsLearnNode
CCIPCANode
CCIPCAWhiteningNode
Convolution2DNode
CountVectorizerScikitsLearnNode
CuBICANode
CutoffNode
DiscreteHopfieldClassifier
ElasticNetCVScikitsLearnNode
ElasticNetScikitsLearnNode
EtaComputerNode
FANode
FDANode
FastICANode
FastICAScikitsLearnNode
GMMHMMScikitsLearnNode
GMMScikitsLearnNode
GNBScikitsLearnNode
GSFANode
GaussianClassifier
GaussianHMMScikitsLearnNode
GaussianProcessScikitsLearnNode
GeneralExpansionNode
GenericUnivariateSelectScikitsLearnNode
GrowingNeuralGasExpansionNode
GrowingNeuralGasNode
HLLENode
HistogramNode
HitParadeNode
+ ISFANode
IdentityNode
IncSFANode
JADENode
KMeansClassifier
KNNClassifier
KernelCentererScikitsLearnNode
KernelPCAScikitsLearnNode
LARSScikitsLearnNode
LDAScikitsLearnNode
LLENode
LabelBinarizerScikitsLearnNode
LassoCVScikitsLearnNode
LassoLARSScikitsLearnNode
LassoScikitsLearnNode
LengthNormalizerScikitsLearnNode
LinearModelCVScikitsLearnNode
LinearRegressionNode
LinearRegressionScikitsLearnNode
LinearSVCScikitsLearnNode
LogisticRegressionScikitsLearnNode
MCANode
MultinomialHMMScikitsLearnNode
NIPALSNode
NMFScikitsLearnNode
NearestMeanClassifier
NeighborsClassifierScikitsLearnNode
NeighborsRegressorScikitsLearnNode
NeuralGasNode
NoiseNode
NormalNoiseNode
NormalizeNode
NormalizerScikitsLearnNode
NormalizingRecursiveExpansionNode
NuSVCScikitsLearnNode
NuSVRScikitsLearnNode
OneClassSVMScikitsLearnNode
OnlineCenteringNode
OnlineTimeDiffNode
PCANode
PCAScikitsLearnNode
PLSCanonicalScikitsLearnNode
PLSRegressionScikitsLearnNode
PLSSVDScikitsLearnNode
PerceptronClassifier
PolynomialExpansionNode
ProbabilisticPCAScikitsLearnNode
ProjectedGradientNMFScikitsLearnNode
QDAScikitsLearnNode
QuadraticExpansionNode
RBFExpansionNode
RBMNode
RBMWithLabelsNode
RFECVScikitsLearnNode
RFEScikitsLearnNode
RandomizedPCAScikitsLearnNode
RecursiveExpansionNode
RidgeCVScikitsLearnNode
RidgeClassifierCVScikitsLearnNode
RidgeClassifierScikitsLearnNode
RidgeScikitsLearnNode
SFA2Node
SFANode
SGDClassifierScikitsLearnNode
SGDRegressorScikitsLearnNode
SVCScikitsLearnNode
SVRScikitsLearnNode
ScalerScikitsLearnNode
SelectFdrScikitsLearnNode
SelectFprScikitsLearnNode
SelectFweScikitsLearnNode
SelectKBestScikitsLearnNode
SelectPercentileScikitsLearnNode
SignumClassifier
SimpleMarkovClassifier
SparseBaseLibLinearScikitsLearnNode
SparseBaseLibSVMScikitsLearnNode
TDSEPNode
TfidfTransformerScikitsLearnNode
TimeDelayNode
TimeDelaySlidingWindowNode
TimeFramesNode
VartimeSFANode
VectorizerScikitsLearnNode
WardAgglomerationScikitsLearnNode
WhiteningNode
XSFANode
_OneDimensionalHitParade
iGSFANode

Functions

+ _expanded_dim

Variables

+ +
+[hide private] + + + + diff --git a/legacy/api/toc-mdp.parallel-module.html b/legacy/api/toc-mdp.parallel-module.html new file mode 100755 index 0000000..e985092 --- /dev/null +++ b/legacy/api/toc-mdp.parallel-module.html @@ -0,0 +1,62 @@ + + + + + parallel + + + + + +

Module parallel

+
+

Classes

+ ExecuteResultContainer
FlowExecuteCallable
FlowTaskCallable
FlowTrainCallable
JoinParallelException
ListResultContainer
NoTaskException
NotForkableParallelException
OrderedResultContainer
ParallelCheckpointFlow
ParallelCloneLayer
ParallelExtensionNode
ParallelFDANode
ParallelFlow
ParallelFlowException
ParallelFlowNode
ParallelHistogramNode
ParallelLayer
ParallelSFANode
ProcessScheduler
ResultContainer
Scheduler
SleepSqrTestCallable
SqrTestCallable
TaskCallable
TaskCallableWrapper
ThreadScheduler
TrainResultContainer

Variables

+ +
+[hide private] + + + + diff --git a/legacy/api/toc-mdp.utils-module.html b/legacy/api/toc-mdp.utils-module.html new file mode 100755 index 0000000..8d40ba6 --- /dev/null +++ b/legacy/api/toc-mdp.utils-module.html @@ -0,0 +1,99 @@ + + + + + utils + + + + + +

Module utils

+
+

Classes

+ CovarianceMatrix
CrossCovarianceMatrix
DelayCovarianceMatrix
HTMLSlideShow
ImageHTMLSlideShow
MultipleCovarianceMatrices
OrderedDict
QuadraticForm
QuadraticFormException
SectionHTMLSlideShow
SectionImageHTMLSlideShow
TemporaryDirectory
VartimeCovarianceMatrix

Functions

+ + + basic_css
bool_to_sign
comb
cov2
dig_node
fixup_namespace
gabor
get_dtypes
get_node_size
hermitian
image_slideshow
image_slideshow_css
inv
irep
izip_stretched
lrep
matmult
mult
mult_diag
nongeneral_svd
norm2
orthogonal_permutations
permute
pinv
progressinfo
random_rot
refcast
rotate
rrep
scast
sign_to_bool
slideshow_css
solve
sqrtm
svd
symeig_semidefinite_ldl
symeig_semidefinite_pca
symeig_semidefinite_reg
symeig_semidefinite_svd
symrand
timediff
weighted_choice

Variables

+ + +
+[hide private] + + + + diff --git a/legacy/api/toc.html b/legacy/api/toc.html new file mode 100755 index 0000000..48df448 --- /dev/null +++ b/legacy/api/toc.html @@ -0,0 +1,39 @@ + + + + + Table of Contents + + + + + +

Table of Contents

+
+ Everything +
+

Modules

+ mdp
mdp.caching
mdp.graph
mdp.hinet
mdp.nodes
mdp.parallel
mdp.utils

+ [hide private] + + + + diff --git a/legacy/ext/codesnippet.py b/legacy/ext/codesnippet.py new file mode 100644 index 0000000..22d1afe --- /dev/null +++ b/legacy/ext/codesnippet.py @@ -0,0 +1,241 @@ +# -*- coding: utf-8 -*- +from __future__ import with_statement +import sys +import os +import time +import codecs +import re +import doctest +import errno +from docutils import nodes, statemachine +from docutils.parsers.rst import Directive + +from sphinx.builders import Builder +from sphinx.util.console import bold + +def write_if_changed(filename, text, logger): + """Write file to disk, only if contents would be different. + + :Return: True if file was actually written + """ + try: + with codecs.open(filename, 'r', encoding='utf-8') as file: + if file.read() == text: + logger.info('%s is unchanged' % filename) + return False + except IOError: + pass + + dirname = os.path.split(filename)[0] + try: + os.makedirs(dirname) + except OSError as e: + if e.errno != errno.EEXIST: + raise + with codecs.open(filename, 'w', encoding='utf-8') as file: + file.write(text) + return True + +RSTTEXT="""\ +.. _%s: + +%s +%s +%s + +Download :download:`%s <%s>`. +Browse the :ref:`code snippet index `. + +.. literalinclude:: %s +""" + +SNIPTEXT = ("You can download all the code on this page from the" + " :code_snippet:`code snippets directory <%s>`") + +def condition(node): + return (isinstance(node, (nodes.literal_block, nodes.comment)) + and 'testnodetype' in node) or isinstance(node, + nodes.doctest_block) +def visit_codesnippet_node(self, node): + self.visit_admonition(node) + +def depart_codesnippet_node(self, node): + self.depart_admonition(node) + +class CodeSnippet(nodes.Admonition, nodes.Element): + pass + + +# imported from sphinx/util/compat.py +def _make_admonition(node_class, name, title_text, options, content, lineno, + content_offset, block_text, state, state_machine): + text = '\n'.join(content) + admonition_node = node_class(text) + textnodes, messages = state.inline_text(title_text, lineno) + admonition_node += nodes.title(title_text, '', *textnodes) + admonition_node += messages + if 'class' in options: + classes = options['class'] + else: + classes = ['admonition-' + nodes.make_id(title_text)] + admonition_node['classes'] += classes + state.nested_parse(content, content_offset, admonition_node) + return [admonition_node] + +class CodeSnippetDirective(Directive): + has_content = True + + def run(self): + env = self.state.document.settings.env + link = env.docname.replace('\\','_') + '.html' + self.content = statemachine.StringList([ SNIPTEXT % link ]) + targetid = "codesnippet-%d" % env.new_serialno('codesnippet') + targetnode = nodes.target('', '', ids=[targetid]) + ad = _make_admonition(CodeSnippet, self.name, 'CodeSnippet', + self.options, + self.content, self.lineno, self.content_offset, + self.block_text, self.state, self.state_machine) + return [targetnode] + ad + + +class CodeSnippetBuilder(Builder): + name = 'codesnippet' + + def init(self): + self.total_lines = 0 + self.files = 0 + self.docs = [] + date = time.strftime('%Y-%m-%d') + header = ('# -*- coding: utf-8 -*-\n' + '# Generated by %s sphinx extension on %s\n'%(self.name, + date)) + + if self.config.doctest_global_setup: + self.header = ''.join((header, + self.config.doctest_global_setup)) + else: + self.header = header + + if self.config.codesnippet_path == '': + self.info('Need to set a path for the code links.') + self.info('Please set the "codesnippet_path" variable in conf.py!') + sys.exit(1) + + self.linkpath = os.path.normpath(os.path.sep+self.config.codesnippet_path) + self.cwd = os.getcwd()+os.path.sep + + def shortname(self, name): + pfx = os.path.commonprefix((self.cwd, name)) + return name[len(pfx):] + + def get_target_uri(self, docname, typ=None): + return '' + + def get_outdated_docs(self): + return self.env.found_docs + + def finish(self): + msg = 'Wrote %d lines in %d files.' % (self.total_lines, self.files) + pad = len(msg) + self.info('\n'+'='*pad +'\n'+ bold(msg) + '\n'+'='*pad) + self.write_toctree() + + def get_relative_name(self, docname): + return os.path.basename(docname) + + def get_module_name(self, docname, ext, abs=True): + """Return the normalized name of the file with code + """ + newname = docname.replace('\\', '_') + filename = newname + ext + if abs: + filename = os.path.join(self.outdir, filename) + return filename + + def get_code_link(self, docname): + return os.path.join(self.linkpath, self.get_module_name(docname, '.py', + abs=False)) + + def write(self, build_docnames, updated_docnames, method='update'): + if build_docnames is None: + build_docnames = sorted(self.env.all_docs) + + self.info(bold('Creating modules in "%s"'%self.shortname(self.outdir))) + for docname in build_docnames: + doctree = self.env.get_doctree(docname) + self.gen_snippets(docname, doctree) + + def gen_snippets(self, docname, doctree): + code = [] + for node in doctree.traverse(condition): + source = 'test' in node and node['test'] or node.astext() + try: + example = doctest.script_from_examples(source) + except Exception as exc: + # catch doctest errors + self.info('\nDocument: %s\n----------%s\n' % + (docname, '-'*len(docname))) + raise Exception(exc) + + if self.config.codesnippet_strip_doctest_directives: + # remove doctest directives + lines = (re.split(r'\s*#\s*doctest:', line, 1)[0] + for line in example.split('\n')) + example = '\n'.join(lines) + + code.append(example) + + if len(code) > 0: + self.info('\nDocument: %s\n----------%s\n' % + (docname, '-'*len(docname))) + self.write_code(docname, code) + self.write_rst(docname) + + def write_code(self, docname, code): + text = self.header + '\n'.join(code) + flname = self.get_module_name(docname, '.py') + if write_if_changed(flname, text, self): + self.files += 1 + lines = text.count('\n') + self.total_lines += lines + self.info('Wrote %d lines to %s' % (lines, self.shortname(flname))) + + def write_rst(self, docname): + rstname = self.get_module_name(docname, '.rst') + label_to_us = self.get_relative_name(docname)+'_code' + link_to_doc = self.get_relative_name(docname) + download = self.get_code_link(docname) + include = self.get_code_link(docname) + link_to_doc_text = 'Code snippets for page :ref:`%s`' % link_to_doc + overline = '='*len(link_to_doc_text) + text = RSTTEXT % (label_to_us, + overline, + link_to_doc_text, + overline, + os.path.basename(download), download, + include) + if write_if_changed(rstname, text, self): + self.info('Wrote link page to %s' % self.shortname(rstname)) + self.docs.append(self.get_module_name(docname, '.rst', abs=False)) + + def write_toctree(self): + name = os.path.join(self.outdir, 'code_snippets.rst') + text = ['.. _code_snippets:\n', + '=============', + 'Code Snippets', + '=============\n', + '.. toctree::\n'] + text.extend(' '+doc for doc in self.docs) + if write_if_changed(name, '\n'.join(text), self): + self.info(bold('Created toctree page in %s' % self.shortname(name))) + + +def setup(app): + app.add_builder(CodeSnippetBuilder) + app.add_config_value('codesnippet_path', '', 'env') + app.add_config_value('codesnippet_strip_doctest_directives', True, False) + app.add_directive('codesnippet', CodeSnippetDirective) + app.add_node(CodeSnippet, + html=(visit_codesnippet_node, depart_codesnippet_node), + latex=(visit_codesnippet_node, depart_codesnippet_node), + text=(visit_codesnippet_node, depart_codesnippet_node)) diff --git a/legacy/ext/descriptions_string.py b/legacy/ext/descriptions_string.py new file mode 100644 index 0000000..115ace4 --- /dev/null +++ b/legacy/ext/descriptions_string.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +from docutils import nodes, core +from docutils.parsers.rst import Directive + +from mdp import __short_description__ as short_description +from mdp import __doc__ as long_description +from mdp import __medium_description__ as middle_description + +class LongDescriptionStringDirective(Directive): + has_content = False + def run(self): + document = core.publish_doctree(long_description) + return document.children + +class MiddleDescriptionStringDirective(Directive): + has_content = False + def run(self): + document = core.publish_doctree(middle_description) + return document.children + +class ShortDescriptionStringDirective(Directive): + has_content = False + def run(self): + document = core.publish_doctree(short_description) + return document.children + +def setup(app): + app.add_directive('long-description-string', + LongDescriptionStringDirective) + app.add_directive('short-description-string', + ShortDescriptionStringDirective) + app.add_directive('middle-description-string', + MiddleDescriptionStringDirective) diff --git a/legacy/ext/download_links.py b/legacy/ext/download_links.py new file mode 100644 index 0000000..260b0bf --- /dev/null +++ b/legacy/ext/download_links.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +from docutils import nodes +from docutils.parsers.rst import Directive + +from mdp import __version__ + +class DownloadLinkDirective(Directive): + has_content = False + required_arguments = 1 + final_argument_whitespace = True + + def run(self): + prefix = self.arguments[0] + dl = self.state_machine.document.settings.env.config.download_link + if len(dl) == 0: + raise Exception('You must set the variable "download_link".') + text = ' '.join((prefix, dl)) + return [nodes.literal_block(text, text)] + +def setup(app): + app.add_directive('download-link', DownloadLinkDirective) + app.add_config_value('download_link', '', 'env') diff --git a/legacy/ext/extapi.py b/legacy/ext/extapi.py new file mode 100644 index 0000000..15804d8 --- /dev/null +++ b/legacy/ext/extapi.py @@ -0,0 +1,110 @@ +# +# Kenozooid - software stack to support different capabilities of dive +# computers. +# +# Copyright (C) 2009 by Artur Wroblewski +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# 2011: heavily modified by us for use with MDP + +import os.path +from docutils import nodes +import re +from sphinx.util import logging +LOG = logging.getLogger(__name__) + +def _extract_name(text): + """ + >>> _extract_name('mdp.nodes.PCANode') + ('mdp.nodes.PCANode', 'mdp.nodes.PCANode') + >>> _extract_name('mdp.nodes.PCANode ') + ('mdp.nodes.PCANode', 'PCA') + """ + match = re.match(r'(.*)\s+<(.+)>', text) + if match: + return match.groups() + + match = re.match(r'~(.*\.([^.]+))', text) + if match: + return match.groups() + else: + return text, text + +def api_role(role, rawtext, text, lineno, inliner, options={}, content=[]): + """ + Role `:api:` bridges generated API documentation by tool like EpyDoc + with Sphinx Python Documentation Generator. + + Other tools, other than EpyDoc, can be easily supported as well. + + First generate the documentation to be referenced, i.e. with EpyDoc:: + + $ mkdir -p doc/_build/html/api + $ epydoc -o doc/_build/html/api ... + + Next step is to generate documentation with Sphinx:: + + $ sphinx-build doc doc/_build/html + + """ + basedir = inliner.document.settings.env.config.extapi_epydoc_path + prefix = os.path.abspath(basedir) + if not os.path.exists(prefix): + LOG.info('Warning: epydoc API not found in %s' % prefix) + exists = lambda f: os.path.exists(os.path.join(prefix, f)) + link_prefix = inliner.document.settings.env.config.extapi_link_prefix + + text, display = _extract_name(text) + + # assume module is referenced + name = '%s' % text + uri = '%s/%s-module.html' % (link_prefix, text) + file = '%s/%s-module.html' % (prefix, text) + chunks = text.split('.') + + # if not module, then a class + if not exists(file): + name = text.split('.')[-1] + uri = '%s/%s-class.html' % (link_prefix, text) + file = '%s/%s-class.html' % (prefix, text) + + # if not a class, then function or class method + if not exists(file): + method = chunks[-1] + fprefix = '.'.join(chunks[:-1]) + # assume function is referenced + file = '%s/%s-module.html' % (prefix, fprefix) + if exists(file): + uri = '%s/%s-module.html#%s' % (link_prefix, fprefix, method) + else: + # class method is references + file = '%s/%s-class.html' % (prefix, fprefix) + if exists(file): + name = '.'.join(chunks[-2:]) # name should be Class.method + uri = '%s/%s-class.html#%s' % (link_prefix, fprefix, method) + + if exists(file): + node = nodes.reference(rawtext, display, refuri=uri, **options) + else: + # cannot find reference, then just inline the text + node = nodes.literal(rawtext, display) + + return [node], [] + + +def setup(app): + app.add_role('api', api_role) + app.add_config_value('extapi_epydoc_path', '', 'env') + app.add_config_value('extapi_link_prefix', '', 'env') diff --git a/legacy/ext/linkcheck2.py b/legacy/ext/linkcheck2.py new file mode 100644 index 0000000..7b107f9 --- /dev/null +++ b/legacy/ext/linkcheck2.py @@ -0,0 +1,154 @@ +# -*- coding: utf-8 -*- +# taken from sphinx 1.1 (not yet released): +# hg clone https://bitbucket.org/birkenfeld/sphinx +# commit 2949: 29be82a3dc91 +# parent 2948: 100e8f448fee +# branch: default +""" + sphinx.builders.linkcheck + ~~~~~~~~~~~~~~~~~~~~~~~~~ + + The CheckExternalLinksBuilder class. + + :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" +from future import standard_library +standard_library.install_aliases() +from builtins import map +from builtins import str + +import re +import socket +from os import path +from urllib.request import build_opener +from urllib.error import HTTPError + +from docutils import nodes + +from sphinx.builders import Builder +from sphinx.util.console import purple, red, darkgreen, darkgray + +# create an opener that will simulate a browser user-agent +opener = build_opener() +opener.addheaders = [('User-agent', 'Mozilla/5.0')] + + +class CheckExternalLinksBuilder2(Builder): + """ + Checks for broken external links. + """ + name = 'linkcheck2' + + def init(self): + self.to_ignore = list(map(re.compile, self.app.config.linkcheck2_ignore)) + self.good = set() + self.broken = {} + self.redirected = {} + # set a timeout for non-responding servers + socket.setdefaulttimeout(5.0) + # create output file + open(path.join(self.outdir, 'output.txt'), 'w').close() + + def get_target_uri(self, docname, typ=None): + return '' + + def get_outdated_docs(self): + return self.env.found_docs + + def prepare_writing(self, docnames): + return + + def write_doc(self, docname, doctree): + self.info() + for node in doctree.traverse(nodes.reference): + try: + self.check(node, docname) + except KeyError: + continue + + def check(self, node, docname): + uri = node['refuri'] + + if '#' in uri: + uri = uri.split('#')[0] + + if uri in self.good: + return + + lineno = None + while lineno is None: + node = node.parent + if node is None: + break + lineno = node.line + + if len(uri) == 0 or uri[0:7] == 'mailto:' or uri[0:4] == 'ftp:': + return + + if lineno: + self.info('(line %3d) ' % lineno, nonl=1) + for rex in self.to_ignore: + if rex.match(uri): + self.info(uri + ' - ' + darkgray('ignored')) + return + if uri[0:5] == 'http:' or uri[0:6] == 'https:': + self.info(uri, nonl=1) + + if uri in self.broken: + (r, s) = self.broken[uri] + elif uri in self.redirected: + (r, s) = self.redirected[uri] + else: + (r, s) = self.resolve(uri) + + if r == 0: + self.info(' - ' + darkgreen('working')) + self.good.add(uri) + elif r == 2: + self.info(' - ' + red('broken: ') + s) + self.write_entry('broken', docname, lineno, uri + ': ' + s) + self.broken[uri] = (r, s) + if self.app.quiet: + self.warn('broken link: %s' % uri, + '%s:%s' % (self.env.doc2path(docname), lineno)) + else: + self.info(' - ' + purple('redirected') + ' to ' + s) + self.write_entry('redirected', docname, + lineno, uri + ' to ' + s) + self.redirected[uri] = (r, s) + else: + self.info(uri + ' - ' + darkgray('local')) + self.write_entry('local', docname, lineno, uri) + + if self.broken: + self.app.statuscode = 1 + + def write_entry(self, what, docname, line, uri): + output = open(path.join(self.outdir, 'output.txt'), 'a') + output.write("%s:%s: [%s] %s\n" % (self.env.doc2path(docname, None), + line, what, uri)) + output.close() + + def resolve(self, uri): + try: + f = opener.open(uri) + f.close() + except HTTPError as err: + #if err.code == 403 and uri.startswith('http://en.wikipedia.org/'): + # # Wikipedia blocks requests from urllib User-Agent + # return (0, 0) + return (2, str(err)) + except Exception as err: + return (2, str(err)) + if f.url.rstrip('/') == uri.rstrip('/'): + return (0, 0) + else: + return (1, f.url) + + def finish(self): + return + +def setup(app): + app.add_builder(CheckExternalLinksBuilder2) + app.add_config_value('linkcheck2_ignore', '', 'env') diff --git a/legacy/ext/version_string.py b/legacy/ext/version_string.py new file mode 100644 index 0000000..69eb413 --- /dev/null +++ b/legacy/ext/version_string.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +from docutils import nodes +from docutils.parsers.rst import Directive + +from mdp import __version__, __authors__, __homepage__, __contact__ + +TAGS = (('Authors', __authors__), + ('Copyright', 'This document has been placed in the public domain.'), + ('Homepage', __homepage__), + ('Contact', __contact__), + ('Version', __version__)) + +class VersionStringDirective(Directive): + has_content = False + + def run(self): + field_list = nodes.field_list() + for name, value in TAGS: + fieldname = nodes.field_name() + fieldname += nodes.Text(name) + fieldbody = nodes.field_body() + para = nodes.paragraph() + para += nodes.Text(value) + fieldbody += para + field = nodes.field('', fieldname, fieldbody) + field_list += field + return [field_list] + +def setup(app): + app.add_directive('version-string', VersionStringDirective) diff --git a/make.bat.obsolete b/legacy/make.bat.obsolete similarity index 100% rename from make.bat.obsolete rename to legacy/make.bat.obsolete diff --git a/legacy/source/_static/API.css b/legacy/source/_static/API.css new file mode 100644 index 0000000..e342e95 --- /dev/null +++ b/legacy/source/_static/API.css @@ -0,0 +1,365 @@ + + +/* Epydoc CSS Stylesheet + * + * This stylesheet can be used to customize the appearance of epydoc's + * HTML output. + * + */ + +/* Default Colors & Styles + * - Set the default foreground & background color with 'body'; and + * link colors with 'a:link' and 'a:visited'. + * - Use bold for decision list terms. + * - The heading styles defined here are used for headings *within* + * docstring descriptions. All headings used by epydoc itself use + * either class='epydoc' or class='toc' (CSS styles for both + * defined below). + */ + +/** + * Sphinx deisgn for MDP Toolkit, based on: + * + * Alternate Sphinx design + * Originally created by Armin Ronacher for Werkzeug, adapted by Georg Brandl. + */ + + +p { margin-top: 0.5em; margin-bottom: 0.5em; } + +a:visited { color: #204080; } +dt { font-weight: bold; } +h1 { font-size: +140%; font-style: italic; + font-weight: bold; } +h2 { font-size: +125%; font-style: italic; + font-weight: bold; } +h3 { font-size: +110%; font-style: italic; + font-weight: normal; } + +/* N.B.: class, not pseudoclass */ +a.link { font-family: monospace; } + +/* Page Header & Footer + * - The standard page header consists of a navigation bar (with + * pointers to standard pages such as 'home' and 'trees'); a + * breadcrumbs list, which can be used to navigate to containing + * classes or modules; options links, to show/hide private + * variables and to show/hide frames; and a page title (using + *

). The page title may be followed by a link to the + * corresponding source code (using 'span.codelink'). + * - The footer consists of a navigation bar, a timestamp, and a + * pointer to epydoc's homepage. + */ +h1.epydoc { margin: 0; font-size: +140%; font-weight: bold; } +h2.epydoc { font-size: +130%; font-weight: bold; } +h3.epydoc { font-size: +115%; font-weight: bold; + margin-top: 0.2em; } +td h3.epydoc { font-size: +115%; font-weight: bold; + margin-bottom: 0; } +table.navbar { background: #a0c0ff; color: #000000; + border: 2px groove #c0d0d0; } +table.navbar table { color: #000000; } +th.navbar-select { background: #70b0ff; + color: #000000; } +table.navbar a { text-decoration: none; } +table.navbar a:link { color: #0000ff; } +table.navbar a:visited { color: #204080; } +span.breadcrumbs { font-size: 85%; font-weight: bold; } +span.options { font-size: 70%; } +span.codelink { font-size: 85%; } +td.footer { font-size: 85%; } + +/* Table Headers + * - Each summary table and details section begins with a 'header' + * row. This row contains a section title (marked by + * 'span.table-header') as well as a show/hide private link + * (marked by 'span.options', defined above). + * - Summary tables that contain user-defined groups mark those + * groups using 'group header' rows. + */ +td.table-header { background: #70b0ff; color: #000000; + border: 1px solid #608090; } +td.table-header table { color: #000000; } +td.table-header table a:link { color: #0000ff; } +td.table-header table a:visited { color: #204080; } +span.table-header { font-size: 120%; font-weight: bold; } +th.group-header { background: #c0e0f8; color: #000000; + text-align: left; font-style: italic; + font-size: 115%; + border: 1px solid #608090; } + +/* Summary Tables (functions, variables, etc) + * - Each object is described by a single row of the table with + * two cells. The left cell gives the object's type, and is + * marked with 'code.summary-type'. The right cell gives the + * object's name and a summary description. + * - CSS styles for the table's header and group headers are + * defined above, under 'Table Headers' + */ +table.summary { border-collapse: collapse; + background: #e8f0f8; color: #000000; + border: 1px solid #608090; + margin-bottom: 0.5em; } +td.summary { border: 1px solid #608090; } +code.summary-type { font-size: 85%; } +table.summary a:link { color: #0000ff; } +table.summary a:visited { color: #204080; } + + +/* Details Tables (functions, variables, etc) + * - Each object is described in its own div. + * - A single-row summary table w/ table-header is used as + * a header for each details section (CSS style for table-header + * is defined above, under 'Table Headers'). + */ +table.details { border-collapse: collapse; + background: #e8f0f8; color: #000000; + border: 1px solid #608090; + margin: .2em 0 0 0; } +table.details table { color: #000000; } +table.details a:link { color: #0000ff; } +table.details a:visited { color: #204080; } + +/* Fields */ +dl.fields { margin-left: 2em; margin-top: 1em; + margin-bottom: 1em; } +dl.fields dd ul { margin-left: 0em; padding-left: 0em; } +dl.fields dd ul li ul { margin-left: 2em; padding-left: 0em; } +div.fields { margin-left: 2em; } +div.fields p { margin-bottom: 0.5em; } + +/* Index tables (identifier index, term index, etc) + * - link-index is used for indices containing lists of links + * (namely, the identifier index & term index). + * - index-where is used in link indices for the text indicating + * the container/source for each link. + * - metadata-index is used for indices containing metadata + * extracted from fields (namely, the bug index & todo index). + */ +table.link-index { border-collapse: collapse; + background: #e8f0f8; color: #000000; + border: 1px solid #608090; } +td.link-index { border-width: 0px; } +table.link-index a:link { color: #0000ff; } +table.link-index a:visited { color: #204080; } +span.index-where { font-size: 70%; } +table.metadata-index { border-collapse: collapse; + background: #e8f0f8; color: #000000; + border: 1px solid #608090; + margin: .2em 0 0 0; } +td.metadata-index { border-width: 1px; border-style: solid; } +table.metadata-index a:link { color: #0000ff; } +table.metadata-index a:visited { color: #204080; } + +/* Function signatures + * - sig* is used for the signature in the details section. + * - .summary-sig* is used for the signature in the summary + * table, and when listing property accessor functions. + * */ +.sig-name { color: #006080; } +.sig-arg { color: #008060; } +.sig-default { color: #602000; } +.summary-sig { font-family: monospace; } +.summary-sig-name { color: #006080; font-weight: bold; } +table.summary a.summary-sig-name:link + { color: #006080; font-weight: bold; } +table.summary a.summary-sig-name:visited + { color: #006080; font-weight: bold; } +.summary-sig-arg { color: #006040; } +.summary-sig-default { color: #501800; } + +/* Subclass list + */ +ul.subclass-list { display: inline; margin: 0; padding: 0; } +ul.subclass-list li { display: inline; margin: 0; padding: 0; } + +/* To render variables, classes etc. like functions */ +table.summary .summary-name { color: #006080; font-weight: bold; + font-family: monospace; } +table.summary + a.summary-name:link { color: #006080; font-weight: bold; + font-family: monospace; } +table.summary + a.summary-name:visited { color: #006080; font-weight: bold; + font-family: monospace; } + +/* Variable values + * - In the 'variable details' sections, each varaible's value is + * listed in a 'pre.variable' box. The width of this box is + * restricted to 80 chars; if the value's repr is longer than + * this it will be wrapped, using a backslash marked with + * class 'variable-linewrap'. If the value's repr is longer + * than 3 lines, the rest will be ellided; and an ellipsis + * marker ('...' marked with 'variable-ellipsis') will be used. + * - If the value is a string, its quote marks will be marked + * with 'variable-quote'. + * - If the variable is a regexp, it is syntax-highlighted using + * the re* CSS classes. + */ +pre.variable { padding: .5em; margin: 0; + background: #dce4ec; color: #000000; + border: 1px solid #708890; } +.variable-linewrap { color: #604000; font-weight: bold; } +.variable-ellipsis { color: #604000; font-weight: bold; } +.variable-quote { color: #604000; font-weight: bold; } +.variable-group { color: #008000; font-weight: bold; } +.variable-op { color: #604000; font-weight: bold; } +.variable-string { color: #006030; } +.variable-unknown { color: #a00000; font-weight: bold; } +.re { color: #000000; } +.re-char { color: #006030; } +.re-op { color: #600000; } +.re-group { color: #003060; } +.re-ref { color: #404040; } + +/* Base tree + * - Used by class pages to display the base class hierarchy. + */ +pre.base-tree { font-size: 80%; margin: 0; } + +/* Frames-based table of contents headers + * - Consists of two frames: one for selecting modules; and + * the other listing the contents of the selected module. + * - h1.toc is used for each frame's heading + * - h2.toc is used for subheadings within each frame. + */ +h1.toc { text-align: center; font-size: 105%; + margin: 0; font-weight: bold; + padding: 0; } +h2.toc { font-size: 100%; font-weight: bold; + margin: 0.5em 0 0 -0.3em; } + +h1.toc ~ a, h2.toc ~ a, h2.toc ~ * a { font-size: 80%; } + +/* Syntax Highlighting for Source Code + * - doctest examples are displayed in a 'pre.py-doctest' block. + * If the example is in a details table entry, then it will use + * the colors specified by the 'table pre.py-doctest' line. + * - Source code listings are displayed in a 'pre.py-src' block. + * Each line is marked with 'span.py-line' (used to draw a line + * down the left margin, separating the code from the line + * numbers). Line numbers are displayed with 'span.py-lineno'. + * The expand/collapse block toggle button is displayed with + * 'a.py-toggle' (Note: the CSS style for 'a.py-toggle' should not + * modify the font size of the text.) + * - If a source code page is opened with an anchor, then the + * corresponding code block will be highlighted. The code + * block's header is highlighted with 'py-highlight-hdr'; and + * the code block's body is highlighted with 'py-highlight'. + * - The remaining py-* classes are used to perform syntax + * highlighting (py-string for string literals, py-name for names, + * etc.) + */ +pre.py-doctest { padding: .5em; margin: 1em; + background: #e8f0f8; color: #000000; + border: 1px solid #708890; } +table pre.py-doctest { background: #dce4ec; + color: #000000; } +pre.py-src { border: 2px solid #000000; + background: #f0f0f0; color: #000000; } +.py-line { border-left: 2px solid #000000; + margin-left: .2em; padding-left: .4em; } +.py-lineno { font-style: italic; font-size: 90%; + padding-left: .5em; } +a.py-toggle { text-decoration: none; } +div.py-highlight-hdr { border-top: 2px solid #000000; + border-bottom: 2px solid #000000; + background: #d8e8e8; } +div.py-highlight { border-bottom: 2px solid #000000; + background: #d0e0e0; } +.py-prompt { color: #005050; font-weight: bold;} +.py-more { color: #005050; font-weight: bold;} +.py-string { color: #006030; } +.py-comment { color: #003060; } +.py-keyword { color: #600000; } +.py-output { color: #404040; } +.py-name { color: #000050; } +.py-name:link { color: #000050 !important; } +.py-name:visited { color: #000050 !important; } +.py-number { color: #005000; } +.py-defname { color: #000060; font-weight: bold; } +.py-def-name { color: #000060; font-weight: bold; } +.py-base-class { color: #000060; } +.py-param { color: #000060; } +.py-docstring { color: #006030; } +.py-decorator { color: #804020; } +/* Use this if you don't want links to names underlined: */ +/*a.py-name { text-decoration: none; }*/ + +/* Graphs & Diagrams + * - These CSS styles are used for graphs & diagrams generated using + * Graphviz dot. 'img.graph-without-title' is used for bare + * diagrams (to remove the border created by making the image + * clickable). + */ +img.graph-without-title { border: none; } +img.graph-with-title { border: 1px solid #000000; } +span.graph-title { font-weight: bold; } +span.graph-caption { } + +/* General-purpose classes + * - 'p.indent-wrapped-lines' defines a paragraph whose first line + * is not indented, but whose subsequent lines are. + * - The 'nomargin-top' class is used to remove the top margin (e.g. + * from lists). The 'nomargin' class is used to remove both the + * top and bottom margin (but not the left or right margin -- + * for lists, that would cause the bullets to disappear.) + */ +p.indent-wrapped-lines { padding: 0 0 0 7em; text-indent: -7em; + margin: 0; } +.nomargin-top { margin-top: 0; } +.nomargin { margin-top: 0; margin-bottom: 0; } + +/* HTML Log */ +div.log-block { padding: 0; margin: .5em 0 .5em 0; + background: #e8f0f8; color: #000000; + border: 1px solid #000000; } +div.log-error { padding: .1em .3em .1em .3em; margin: 4px; + background: #ffb0b0; color: #000000; + border: 1px solid #000000; } +div.log-warning { padding: .1em .3em .1em .3em; margin: 4px; + background: #ffffb0; color: #000000; + border: 1px solid #000000; } +div.log-info { padding: .1em .3em .1em .3em; margin: 4px; + background: #b0ffb0; color: #000000; + border: 1px solid #000000; } +h2.log-hdr { background: #70b0ff; color: #000000; + margin: 0; padding: 0em 0.5em 0em 0.5em; + border-bottom: 1px solid #000000; font-size: 110%; } +p.log { font-weight: bold; margin: .5em 0 .5em 0; } +tr.opt-changed { color: #000000; font-weight: bold; } +tr.opt-default { color: #606060; } +pre.log { margin: 0; padding: 0; padding-left: 1em; } + + +body { + font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', 'Verdana', sans-serif; + font-size: 14px; + background-color: neptune; + color: black; +} + +a { + color: #CA7900; +} + +a:hover { + color: #2491CF; +} + +pre { + font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; + background-color: #f8f8f8; +} + + +cite, code, tt { + font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; + font-size: 0.95em; + letter-spacing: 0.01em; +} + +h1 { + color: #11557C; +} + diff --git a/legacy/source/_static/blkpearl.png b/legacy/source/_static/blkpearl.png new file mode 100644 index 0000000..cc2d71e Binary files /dev/null and b/legacy/source/_static/blkpearl.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/animation.html b/legacy/source/_static/examples/slideshow-animation/animation.html new file mode 100644 index 0000000..aa64138 --- /dev/null +++ b/legacy/source/_static/examples/slideshow-animation/animation.html @@ -0,0 +1,455 @@ + + +Test Animation + + + + + + +
+ + + +
+ + + + + + + + + + + + + + + + +
Test Animation
+ +
+ +
+ + + + + + + + + + +
+ +magnification: + + +
+ +delay: ms + + +
+
+positive | negative +
+
+
+ + + +
+ + + + \ No newline at end of file diff --git a/legacy/source/_static/examples/slideshow-animation/img0000.png b/legacy/source/_static/examples/slideshow-animation/img0000.png new file mode 100644 index 0000000..7bdd2a1 Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0000.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0001.png b/legacy/source/_static/examples/slideshow-animation/img0001.png new file mode 100644 index 0000000..2c25233 Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0001.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0002.png b/legacy/source/_static/examples/slideshow-animation/img0002.png new file mode 100644 index 0000000..77a8dc0 Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0002.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0003.png b/legacy/source/_static/examples/slideshow-animation/img0003.png new file mode 100644 index 0000000..b07d57a Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0003.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0004.png b/legacy/source/_static/examples/slideshow-animation/img0004.png new file mode 100644 index 0000000..447f748 Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0004.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0005.png b/legacy/source/_static/examples/slideshow-animation/img0005.png new file mode 100644 index 0000000..c977c96 Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0005.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0006.png b/legacy/source/_static/examples/slideshow-animation/img0006.png new file mode 100644 index 0000000..dd5627f Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0006.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0007.png b/legacy/source/_static/examples/slideshow-animation/img0007.png new file mode 100644 index 0000000..e4b7224 Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0007.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0008.png b/legacy/source/_static/examples/slideshow-animation/img0008.png new file mode 100644 index 0000000..7cefff3 Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0008.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0009.png b/legacy/source/_static/examples/slideshow-animation/img0009.png new file mode 100644 index 0000000..31456f2 Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0009.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0010.png b/legacy/source/_static/examples/slideshow-animation/img0010.png new file mode 100644 index 0000000..4c4aa66 Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0010.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0011.png b/legacy/source/_static/examples/slideshow-animation/img0011.png new file mode 100644 index 0000000..ab91454 Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0011.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0012.png b/legacy/source/_static/examples/slideshow-animation/img0012.png new file mode 100644 index 0000000..87e170b Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0012.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0013.png b/legacy/source/_static/examples/slideshow-animation/img0013.png new file mode 100644 index 0000000..c44c775 Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0013.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0014.png b/legacy/source/_static/examples/slideshow-animation/img0014.png new file mode 100644 index 0000000..41620a0 Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0014.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0015.png b/legacy/source/_static/examples/slideshow-animation/img0015.png new file mode 100644 index 0000000..b55f069 Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0015.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0016.png b/legacy/source/_static/examples/slideshow-animation/img0016.png new file mode 100644 index 0000000..ddc9953 Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0016.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0017.png b/legacy/source/_static/examples/slideshow-animation/img0017.png new file mode 100644 index 0000000..92e6524 Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0017.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0018.png b/legacy/source/_static/examples/slideshow-animation/img0018.png new file mode 100644 index 0000000..bbd4488 Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0018.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0019.png b/legacy/source/_static/examples/slideshow-animation/img0019.png new file mode 100644 index 0000000..f862e79 Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0019.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0020.png b/legacy/source/_static/examples/slideshow-animation/img0020.png new file mode 100644 index 0000000..f89dd9b Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0020.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0021.png b/legacy/source/_static/examples/slideshow-animation/img0021.png new file mode 100644 index 0000000..64bd58b Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0021.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0022.png b/legacy/source/_static/examples/slideshow-animation/img0022.png new file mode 100644 index 0000000..48bd421 Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0022.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0023.png b/legacy/source/_static/examples/slideshow-animation/img0023.png new file mode 100644 index 0000000..842d23d Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0023.png differ diff --git a/legacy/source/_static/examples/slideshow-animation/img0024.png b/legacy/source/_static/examples/slideshow-animation/img0024.png new file mode 100644 index 0000000..d182a38 Binary files /dev/null and b/legacy/source/_static/examples/slideshow-animation/img0024.png differ diff --git a/legacy/source/_static/favicon.ico b/legacy/source/_static/favicon.ico new file mode 100644 index 0000000..ef3dbdc Binary files /dev/null and b/legacy/source/_static/favicon.ico differ diff --git a/legacy/source/_static/favicon.png b/legacy/source/_static/favicon.png new file mode 100644 index 0000000..ccd07d1 Binary files /dev/null and b/legacy/source/_static/favicon.png differ diff --git a/legacy/source/_static/logo.png b/legacy/source/_static/logo.png new file mode 100644 index 0000000..100b687 Binary files /dev/null and b/legacy/source/_static/logo.png differ diff --git a/legacy/source/_static/logo_animation.gif b/legacy/source/_static/logo_animation.gif new file mode 100644 index 0000000..ab72dd1 Binary files /dev/null and b/legacy/source/_static/logo_animation.gif differ diff --git a/legacy/source/_static/logo_square.png b/legacy/source/_static/logo_square.png new file mode 100644 index 0000000..62436d2 Binary files /dev/null and b/legacy/source/_static/logo_square.png differ diff --git a/legacy/source/_static/mdp.css b/legacy/source/_static/mdp.css new file mode 100644 index 0000000..b305787 --- /dev/null +++ b/legacy/source/_static/mdp.css @@ -0,0 +1,719 @@ +/* reset.css - please keep it, even though things are overwritten afterwards + */ + +html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0; + padding: 0; + border: 0; + outline: 0; + font-size: 100%; + vertical-align: baseline; + background: transparent; +} + +ol, ul { + list-style: none; +} + +blockquote, q { + quotes: none; +} + +blockquote:before, blockquote:after { + content: ''; + content: none; +} + +q:before, q:after { + content: ''; + content: none; +} + +/* remember to define focus styles! */ +:focus { + outline: 0; +} + +/* remember to highlight inserts somehow! */ +ins { + text-decoration: none; +} + +del { + text-decoration: line-through; +} + +/* tables still need 'cellspacing="0"' in the markup */ +table { + border-collapse: collapse; + border-spacing: 0; +} + +/* end of reset css */ + +body { + font-family: Verdana, Geneva, sans-serif; + text-align:justify; + max-width: 62em; + font-size: 80%; + padding: 0.5em; + margin-right: auto; + margin-left: auto; +} + + +div.footer { + margin:0px; + padding:0px; + clear: both; + text-align: left; +} + +div.sphinxsidebar { + margin-top:0em; + margin-right:1em; + float: left; + text-align: left; + width: 11em; +} + +.clear { + height: 1px; + margin: 0px; + clear: both; +} + + +div.document { + background-color: white; + margin-top: 0em; + margin-left: 12em; +} + +div.body { + margin-bottom: 1em; + max-width: 50em; + text-align: justify; +} + +img { + max-width: 50em; +} + +div.clearer { + clear: both; +} + +#header { + border-width:1px; + border-style:solid; + margin: 0 0 1em 0; +} + +#header .td_header_left, #header .td_header_right { + vertical-align:middle; + padding-left:1em; + padding-right:1em; + font-size: 2.5em; + font-weight:bold; +} + +#header .td_header_left { + text-align: left; +} + +#header .td_header_right { + text-align: right; +} + +#header .img_header { + float: right; +} + +#header #logo img { + border: none; +} + +a:visited, a:link { + text-decoration:none; +} + +.body ul { + padding-left:1em; + list-style-type: square; +} + +.body ul li { + margin:0.5em; +} + + +pre { + font-family: 'Deja Vu Sans Mono', 'Courier', 'Bitstream Vera Sans Mono', monospace; + /*font-size: 0.95em;*/ + /*letter-spacing: 0.015em;*/ + padding: 0.5em; + border-width: 1px; + border-style: solid; + overflow: auto; +} + +td.linenos pre { + padding: 0.5em 0; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +cite, code, tt { + font-family: 'Deja Vu Sans Mono', 'Courier', 'Bitstream Vera Sans Mono', monospace; +} + +hr { + border-width: 1px; + border-style: solid; +} + +tt { + font-weight:bold; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; + border: 0; +} + +tt.descclassname { + background-color: transparent; + font-weight: bold; + font-size:1.2em; + border: 0; +} + +tt.xref { + background-color: transparent; + font-weight: bold; + border: 0; +} + +a tt { + background-color: transparent; + font-weight: bold; + border: 0; + color: #CA7900; +} + +a tt:hover { + color: #2491CF; +} + +dl { + margin-top: 1em; + margin-bottom: 1em; +} + +dt { + padding-left:1em; +/* font-family: 'Deja Vu Sans Mono', 'Courier', 'Bitstream Vera Sans Mono', monospace;*/ + font-weight: bold; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 1em; +} + +dd { + margin-top: 0.3em; + margin-bottom: 1em; + margin-left: 3.5em; +} + +.refcount { + color: #060; +} + +dt:target, { + background-color: #fbe54e; +} + +/* overwrite the strange color from pygments.css */ +div.highlight { + background-color: #ffffff; +} + +dl.class, dl.function { + /* border-top: 2px solid #888;*/ +} + +.property { + display: none; +} +dl.method, dl.attribute { + border-top: 1px solid #aaa; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +pre { + line-height: 120%; +} + +pre a { + color: inherit; + text-decoration: underline; +} + +.first { + margin-top: 0 !important; +} + +div.related { + margin-bottom: 1em; +} + +div.related h3 { + display: none; +} + +div.related ul { + height: 2em; + margin: 0; + padding-left: 0em; +} + +div.related ul li { + margin: 0; + padding: 0; + height: 2em; + float: left; +} + +div.related ul li.right { + float: right; + margin-right: 0.5em; +} + +div.related ul li a { + margin: 0; + padding: 0 0.5em 0 0.5em; + line-height: 1.75em; +} + +div.navigation_title { + padding: 0em; + width:auto; + text-align:center; + font-weight: bold; + border-width: 1px; + border-style: solid; +} + +div.navigation_title a{ + padding: 0.5em 0em 0.5em 0em; + display:block; +} + + +div.sphinxsidebar ul { + margin:0em; + padding:0em; + text-align:center; +} + +div.sphinxsidebar ul li { + margin-left:0em; + margin-right:0em; + margin-top:0.5em; + margin-bottom:0.5em; +} +div.sphinxsidebar ul li a{ + padding: 0.5em; + font-weight: bold; + text-decoration: none; + display: block; + border-width: 1px; + border-style: solid; +} + +div.sphinxsidebar ul ul { + margin-top: 0em; + margin-left:auto; + margin-right:auto; + width:auto; + text-align:left; + font-size:0.8em; + display:inline-block; +} + + +div.sphinxsidebar ul ul ul { + list-style:square; +} + +div.sphinxsidebar ul ul ul li{ + margin-left:2em; +} + +div.sphinxsidebar ul ul li a{ + text-decoration: none; + padding: 0.1em; + display: block; + border-width: 0px; + border-style: solid; +} + +p { + margin: 0.8em 0 0.5em 0; +} + +p.rubric { + font-weight: bold; +} + +h1 { + margin: 0 0 0.4em 0; + padding: 0em; + font-size: 2.0em; +} + +h2 { + margin: 1.3em 0 0.2em 0; + font-size: 1.6em; + padding: 0; +} + +h3 { + margin: 1em 0 0 0; + font-size: 1.2em; +} + +h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor { + display: none; + margin: 0 0 0 0.3em; + padding: 0 0.2em 0 0.2em; +} + +h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, +h5:hover a.anchor, h6:hover a.anchor { + display: inline; +} + +table { + border-collapse: collapse; + margin: 0 -0.5em 0 -0.5em; +} + +table td, table th { + padding: 0.2em 0.5em 0.2em 0.5em; +} + +div.footer hr { + border-width: 1px; + border-style: solid; + margin: 0px; + margin-bottom:0.5em; +} + +div.footer table { + width: 100%; + padding: 0px; + margin: 0px; +} + +div.footer tr, div.footer td { + vertical-align: middle; + padding: 0px; + margin: 0px; +} + +div.footer .footer-left { + text-align: left; +} + +div.footer .footer-center { + text-align: center; +} + +div.footer .footer-right { + text-align: right; +} + +div.pagination { + margin-top: 2em; + padding-top: 0.5em; + border-top: 1px solid black; + text-align: center; +} + +div.sphinxsidebar ul.toc { + margin: 1em 0 1em 0; + padding: 0 0 0 0.5em; +} + +div.sphinxsidebar ul.toc li { + margin: 0.5em 0 0.5em 0; + font-size: 0.9em; + line-height: 130%; +} + +div.sphinxsidebar ul.toc li p { + margin: 0; + padding: 0; +} + +div.sphinxsidebar ul.toc ul { + margin: 0.2em 0 0.2em 0; + padding: 0 0 0 1.8em; +} + +div.sphinxsidebar ul.toc ul li { + padding: 0; +} + +div.admonition, div.warning { + font-size: 0.9em; + border-width: 1px; + border-style: solid; +} + +div.admonition-news { + font-size: 80%; +} + +div.admonition-codesnippet { + float: right; + margin-left: 1em; + width: 10em; + font-weight: bold; + text-align: left; +} + +div.admonition p, div.warning p { + margin: 0.5em 1em 0.5em 1em; + padding: 0; +} + +div.admonition pre, div.warning pre { + margin: 0.4em 1em 0.4em 1em; +} + +div.admonition p.admonition-title, +div.warning p.admonition-title { + margin: 0; + padding: 0.1em 0 0.1em 0.5em; + border: 0px; + border-bottom:1px; + border-style: solid; + font-weight: bold; +} + +div.warning { + border: 1px; + border-style: solid; +} + +div.admonition ul, div.admonition ol, +div.warning ul, div.warning ol { + margin: 0.1em 0.5em 0.5em 3em; + padding: 0; +} + +div.versioninfo { + margin: 1em 0 0 0; + border: 1px solid #ccc; + background-color: #DDEAF0; + padding: 8px; + line-height: 1.3em; + font-size: 0.9em; +} + + +a.headerlink { + font-size: 1em; + margin-left: 0.7em; + padding: 0em 0.5em 0em 0.5em; + text-decoration: none!important; + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable dl, table.indextable dd { + margin-top: 0; + margin-bottom: 0; +} + +table.indextable tr.pcap { + height: 1em; +} + +table.indextable tr.cap { + margin-top: 1em; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 0.3em; + margin-top: 0.3em; + cursor: pointer; +} + +img.inheritance { + border: 0px +} + +form.pfform { + margin: 1.2em 0 2.4em 0; +} + +table.contentstable { + width: 90%; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 0.5em; + font-size: 90%; +} + +ul.search { + margin: 1.2em 0 0 2.4em; + padding: 0; +} + +ul.search li { + padding: 0.5em 0em 0.5em 2.5em; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 1em; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 0.1em 0 0 3.5em; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +div.admonition-codesnippet p.admonition-title { + display: none; +} + + +/* COLORS DEFINITION */ +body { background: white; } + +#header,.img_header a:hover, div.sphinxsidebar li a, div.navigation_title a { + background-color: #BFBB7E; color:#01261C; +} + +div.admonition p.admonition-title { + background-color: #BFBB7E; + color:#01261C; +} + +div.related ul li a, a:visited, a:link, +div.sphinxsidebar ul li .current { + color:#AF8320; +} + +h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor { + color:#AF8320; +} + +a.headerlink { + color:#AF8320; +} + +div.related ul li a:hover, a:hover, +a.headerlink:hover, +h1 a.anchor:hover, h2 a.anchor:hover, +h3 a.anchor:hover, h4 a.anchor:hover, +h5 a.anchor:hover, h6 a.anchor:hover { + color: #BFBB7E; +} + +h1, h2, h3 { + color: black; +} + +div.sphinxsidebar ul ul li a { + background-color:white; + color: #AF8320; +} + +div.sphinxsidebar ul ul li a:hover { + background-color:white; + color: black; +} + +.td_header_left a, .td_header_right a { + color: black; +} + +.td_header_left a:hover, .td_header_right a:hover, div.navigation_title a:hover, div.sphinxsidebar li a:hover { color: #AF8320;} + + +#header, pre, div.related, div.body, div.admonition, div.warning, div.navigation_title, div.sphinxsidebar li a, hr { + border-color: black; +} + +pre { + background-color: #f8f8f8; +} + +@media print { + .sphinxsidebar, .footer { + display: none; + } + + h1, h2, h3, h4, h5, h6 { + page-break-after: avoid; + } +} + diff --git a/legacy/source/_static/time_machine/20040824-0.9.png b/legacy/source/_static/time_machine/20040824-0.9.png new file mode 100644 index 0000000..0fc758f Binary files /dev/null and b/legacy/source/_static/time_machine/20040824-0.9.png differ diff --git a/legacy/source/_static/time_machine/20041115-1.0.png b/legacy/source/_static/time_machine/20041115-1.0.png new file mode 100644 index 0000000..6841693 Binary files /dev/null and b/legacy/source/_static/time_machine/20041115-1.0.png differ diff --git a/legacy/source/_static/time_machine/20050613-1.1.png b/legacy/source/_static/time_machine/20050613-1.1.png new file mode 100644 index 0000000..d98c8ea Binary files /dev/null and b/legacy/source/_static/time_machine/20050613-1.1.png differ diff --git a/legacy/source/_static/time_machine/20060630-2.0.png b/legacy/source/_static/time_machine/20060630-2.0.png new file mode 100644 index 0000000..e14510a Binary files /dev/null and b/legacy/source/_static/time_machine/20060630-2.0.png differ diff --git a/legacy/source/_static/time_machine/20070326-2.1.png b/legacy/source/_static/time_machine/20070326-2.1.png new file mode 100644 index 0000000..5d905f6 Binary files /dev/null and b/legacy/source/_static/time_machine/20070326-2.1.png differ diff --git a/legacy/source/_static/time_machine/20080321-2.2.png b/legacy/source/_static/time_machine/20080321-2.2.png new file mode 100644 index 0000000..9bb218e Binary files /dev/null and b/legacy/source/_static/time_machine/20080321-2.2.png differ diff --git a/legacy/source/_static/time_machine/20080515-2.3.png b/legacy/source/_static/time_machine/20080515-2.3.png new file mode 100644 index 0000000..8a8cfce Binary files /dev/null and b/legacy/source/_static/time_machine/20080515-2.3.png differ diff --git a/legacy/source/_static/time_machine/20081018-2.4.png b/legacy/source/_static/time_machine/20081018-2.4.png new file mode 100644 index 0000000..c83a10b Binary files /dev/null and b/legacy/source/_static/time_machine/20081018-2.4.png differ diff --git a/legacy/source/_static/time_machine/20090630-2.5.png b/legacy/source/_static/time_machine/20090630-2.5.png new file mode 100644 index 0000000..e302833 Binary files /dev/null and b/legacy/source/_static/time_machine/20090630-2.5.png differ diff --git a/legacy/source/_static/time_machine/20100514-2.6.png b/legacy/source/_static/time_machine/20100514-2.6.png new file mode 100644 index 0000000..6bc885a Binary files /dev/null and b/legacy/source/_static/time_machine/20100514-2.6.png differ diff --git a/source/_templates/layout.html b/legacy/source/_templates/layout.html similarity index 100% rename from source/_templates/layout.html rename to legacy/source/_templates/layout.html diff --git a/source/_themes/mdp/static/.placeholder b/legacy/source/_themes/mdp/static/.placeholder similarity index 100% rename from source/_themes/mdp/static/.placeholder rename to legacy/source/_themes/mdp/static/.placeholder diff --git a/source/_themes/mdp/theme.conf b/legacy/source/_themes/mdp/theme.conf similarity index 100% rename from source/_themes/mdp/theme.conf rename to legacy/source/_themes/mdp/theme.conf diff --git a/source/additional_utilities.rst b/legacy/source/additional_utilities.rst similarity index 92% rename from source/additional_utilities.rst rename to legacy/source/additional_utilities.rst index cd20131..ef704cf 100644 --- a/source/additional_utilities.rst +++ b/legacy/source/additional_utilities.rst @@ -27,6 +27,17 @@ for the full documentation and interface description. arithmetic* by David Goldberg, ACM Computing Surveys, Vol 23, No 1, March 1991. +:api:`mdp.utils.VartimeCovarianceMatrix` + This class stores an empirical covariance matrix that can be updated + incrementally. A call to the ``fix`` method returns the current state + of the covariance matrix, the average and the number of observations, + and resets the internal data. + + As compared to the ``CovarianceMatrix`` class, this class accepts sampled + input in conjunction with a non-constant time increment between samples. + The covariance matrix is then computed as a (centered) scalar product + between functions, that is sampled unevenly, using the trapezoid rule. + :api:`mdp.utils.DelayCovarianceMatrix` This class stores an empirical covariance matrix between the signal and time delayed signal that can be updated incrementally. diff --git a/legacy/source/conf.py b/legacy/source/conf.py new file mode 100644 index 0000000..5bd1a09 --- /dev/null +++ b/legacy/source/conf.py @@ -0,0 +1,235 @@ +# -*- coding: utf-8 -*- +# +# MDP-toolkit documentation build configuration file, created by +# sphinx-quickstart on Mon Jul 19 16:38:42 2010. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os +sys.path.insert(0, os.path.abspath('../../mdp-toolkit')) +import mdp + +def get_mdp_version(): + return mdp.__version__ + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +#sys.path.append(os.path.abspath('.')) + +# -- General configuration ----------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = ['sphinx.ext.autodoc', + 'sphinx.ext.doctest', + 'sphinx.ext.autosummary', + 'sphinx.ext.extlinks', + 'extapi', + 'codesnippet', + 'version_string', + 'linkcheck2', + 'descriptions_string',] +# 'download_links'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'MDP' + +version = get_mdp_version() +release = get_mdp_version() + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = ['main.rst', + 'tutorial/using_mdp_is_as_easy.rst', + ] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = 'mdp' + +# Add any paths that contain custom themes here, relative to this directory. +html_theme_path = ['_themes'] + +html_title = "Modular toolkit for Data Processing (MDP)" + + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +html_favicon = "./_static/favicon.ico" + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['talks', '_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +html_last_updated_fmt = '%Y-%m-%d %X %Z' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +html_domain_indices = False + +# If false, no index is generated. +html_use_index = False + +# If true, the index is split into individual pages for each letter. +html_split_index = False + +# If true, links to the reST sources are added to the pages. +html_show_sourcelink = False + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +html_show_sphinx = False + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +html_show_copyright = False + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = '' + +# A list of regular expressions that match URIs that should not be checked +# when doing a ``linkcheck`` build. +linkcheck2_ignore = [r'http://mdp-toolkit.*'] + +# Output file base name for HTML help builder. +htmlhelp_basename = 'MDP-toolkitdoc' + + +# -- Options for LaTeX output -------------------------------------------------- + +# The paper size ('letter' or 'a4'). +latex_paper_size = 'a4' + +# The font size ('10pt', '11pt' or '12pt'). +latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('tutorial/tutorial', 'MDP-tutorial.tex', + u'''Modular toolkit for Data Processing\\\\\\mbox{ }\\\\Tutorial''', + u'Authors: MDP Developers', 'manual', True), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +latex_logo = 'examples/logo/logo.png' + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +latex_appendices = ['node_list', 'additional_utilities', 'license'] + +# If false, no module index is generated. +latex_domain_indices = False + +# ========== Extensions configuration =============== +# doctest +trim_doctest_flags = True +doctest_global_setup =""" +import mdp +import numpy as np +np.random.seed(0) +""" + +# codesnippet +# set path for download links in codesnippet +codesnippet_path = "code" + +# wheter to strip '# doctest: ...' (True by default) +# codesnippet_strip_doctest_directives = True + +# extlinks +prefix = '%s/%s' %(mdp.__homepage__, codesnippet_path) +extlinks = {'code_snippet': (prefix+'/%s', 'code_snippet')} + +# extapi +extapi_epydoc_path = './api' +extapi_link_prefix = '%s/api'%mdp.__homepage__ + +# download links +#download_link = ('http://sourceforge.net/projects/mdp-toolkit/files/mdp-toolkit' +# '/%s/MDP-%s.tar.gz/download'%(version, version)) + +# overwrite default signature and members documentation +# features of autodoc + +def setup(app): + from sphinx.ext.autodoc import cut_lines + def autodoc_skip_member(app, what, name, obj, skip, options): + # only document public nodes, but none of their members! + if name.startswith('_') or what != 'module': + return True + else: + return False + + def autodoc_process_signature(app, what, name, obj, options, + signature, return_annotation): + # remove signature altogether + return (None, None) + + def autodoc_process_docstring(app, what, name, obj, options, lines): + # add link to api at the end of the docstring + shortname = name.split('.')[-1] + link = 'Full API documentation: :api:`%s <%s>`' % (name, shortname) + lines.extend(['', link]) + + # app.connect(event, callback) + app.connect('autodoc-process-signature', autodoc_process_signature) + app.connect('autodoc-skip-member', autodoc_skip_member) + app.connect('autodoc-process-docstring', autodoc_process_docstring) diff --git a/source/contact.rst b/legacy/source/contact.rst similarity index 100% rename from source/contact.rst rename to legacy/source/contact.rst diff --git a/source/development.rst b/legacy/source/development.rst similarity index 86% rename from source/development.rst rename to legacy/source/development.rst index a9484f8..dfa0cfb 100644 --- a/source/development.rst +++ b/legacy/source/development.rst @@ -14,17 +14,17 @@ MDP has been originally written by `Pietro Berkes`_ and `Tiziano Zito`_ at the `Institute for Theoretical Biology `_ of the `Humboldt University `_, Berlin in 2003. -Current maintainers are: +Since 2017, MDP is primarily maintained by the reasearch group +`Theory of Neural Systems `_ +at the `Institute for Neural Computation `_ +of the `Ruhr University Bochum `_. -* `Pietro Berkes `_ -* `Zbigniew Jędrzejewski-Szmek `_ -* `Rike-Benjamin Schuppner `_ -* `Niko Wilbert `_ -* `Tiziano Zito `_ +Current maintainers are: +* `Nils Müller `_ +* `Stefan Richthofer `_ +* `Tiziano Zito `_ -`Yaroslav Halchenko`_ maintains the python-mdp_ Debian package, -`Maximilian Nickel `_ maintains the py25-mdp-toolkit_ and py26-mdp-toolkit_ MacPorts packages. MDP is open to user contributions. Users have already contributed some of the nodes, and more contributions are currently being reviewed for @@ -51,40 +51,47 @@ hesitate to submit it! .. _`mailing list`: https://mail.python.org/mm3/mailman3/lists/mdp-toolkit.python.org/ - ------------ Contributors ------------ Strictly in alphabetical order: - `Gabriel Beckers `_ +- `Pietro Berkes `_ - Sven Dähne - Philip DeBoer - Kamel Ibn Aziz Derouiche -- Alberto Escalante -- `Farzad Farkhooi `_ +- `Alberto Escalante `_ +- `Farzad Farkhooi `_ - Mathias Franzius -- `Valentin Haenel `_ +- `Valentin Haenel `_ - `Yaroslav Halchenko`_ -- `Michael Hanke `_ +- `Michael Hanke `_ - `Konrad Hinsen `_ - Christian Hinze - `Sebastian Höfer `_ -- `Michael Hull `_ +- Michael Hull +- `Zbigniew Jędrzejewski-Szmek `_ - `Samuel John `_ +- `Varun Kompella `_ - Susanne Lezius +- Maximilian Nickel - `Fabian Pedregosa `_ -- `José Quesada `_ +- `José Quesada `_ +- `Stefan Richthofer `_ - `Ariel Rokem `_ -- `Michael Schmuker `_ -- `Benjamin Schrauwen `_ -- `Henning Sprekeler `_ -- `Jake VanderPlas `_ -- `David Verstraeten `_ +- `Michael Schmuker `_ +- `Benjamin Schrauwen `_ +- `Fabian Schönfeld `_ +- `Rike-Benjamin Schuppner `_ +- `Henning Sprekeler `_ +- `Jake VanderPlas `_ +- `David Verstraeten `_ +- `Niko Wilbert `_ - Ben Willmore -- `Katharina Maria Zeiner `_ +- `Katharina Maria Zeiner `_ -.. _`Yaroslav Halchenko`: http://www.onerussian.com +.. _`Yaroslav Halchenko`: http://centerforopenneuroscience.org/whoweare#yaroslav_o_halchenko_ ------------------------------ Information for new developers diff --git a/source/documentation.rst b/legacy/source/documentation.rst similarity index 100% rename from source/documentation.rst rename to legacy/source/documentation.rst diff --git a/source/examples/.gitignore b/legacy/source/examples/.gitignore similarity index 100% rename from source/examples/.gitignore rename to legacy/source/examples/.gitignore diff --git a/source/examples/backpropagation/demo_backprop.py b/legacy/source/examples/backpropagation/demo_backprop.py similarity index 100% rename from source/examples/backpropagation/demo_backprop.py rename to legacy/source/examples/backpropagation/demo_backprop.py diff --git a/source/examples/backpropagation/perceptron.py b/legacy/source/examples/backpropagation/perceptron.py similarity index 100% rename from source/examples/backpropagation/perceptron.py rename to legacy/source/examples/backpropagation/perceptron.py diff --git a/source/examples/backpropagation/readme.txt b/legacy/source/examples/backpropagation/readme.txt similarity index 100% rename from source/examples/backpropagation/readme.txt rename to legacy/source/examples/backpropagation/readme.txt diff --git a/source/examples/bayes_guesser/bayes_guesser.py b/legacy/source/examples/bayes_guesser/bayes_guesser.py similarity index 100% rename from source/examples/bayes_guesser/bayes_guesser.py rename to legacy/source/examples/bayes_guesser/bayes_guesser.py diff --git a/source/examples/bayes_guesser/bayes_guesser.rst b/legacy/source/examples/bayes_guesser/bayes_guesser.rst similarity index 100% rename from source/examples/bayes_guesser/bayes_guesser.rst rename to legacy/source/examples/bayes_guesser/bayes_guesser.rst diff --git a/source/examples/benchmark_parallel.py b/legacy/source/examples/benchmark_parallel.py similarity index 100% rename from source/examples/benchmark_parallel.py rename to legacy/source/examples/benchmark_parallel.py diff --git a/source/examples/bimdp_examples/bimdp_custom_inspection.py b/legacy/source/examples/bimdp_examples/bimdp_custom_inspection.py similarity index 100% rename from source/examples/bimdp_examples/bimdp_custom_inspection.py rename to legacy/source/examples/bimdp_examples/bimdp_custom_inspection.py diff --git a/source/examples/bimdp_examples/bimdp_custom_inspection.rst b/legacy/source/examples/bimdp_examples/bimdp_custom_inspection.rst similarity index 100% rename from source/examples/bimdp_examples/bimdp_custom_inspection.rst rename to legacy/source/examples/bimdp_examples/bimdp_custom_inspection.rst diff --git a/source/examples/bimdp_examples/bimdp_hinet_inspection.py b/legacy/source/examples/bimdp_examples/bimdp_hinet_inspection.py similarity index 100% rename from source/examples/bimdp_examples/bimdp_hinet_inspection.py rename to legacy/source/examples/bimdp_examples/bimdp_hinet_inspection.py diff --git a/source/examples/bimdp_examples/bimdp_hinet_inspection.rst b/legacy/source/examples/bimdp_examples/bimdp_hinet_inspection.rst similarity index 100% rename from source/examples/bimdp_examples/bimdp_hinet_inspection.rst rename to legacy/source/examples/bimdp_examples/bimdp_hinet_inspection.rst diff --git a/source/examples/bimdp_examples/bimdp_inverse.rst b/legacy/source/examples/bimdp_examples/bimdp_inverse.rst similarity index 100% rename from source/examples/bimdp_examples/bimdp_inverse.rst rename to legacy/source/examples/bimdp_examples/bimdp_inverse.rst diff --git a/source/examples/bimdp_examples/bimdp_simple_coroutine.py b/legacy/source/examples/bimdp_examples/bimdp_simple_coroutine.py similarity index 100% rename from source/examples/bimdp_examples/bimdp_simple_coroutine.py rename to legacy/source/examples/bimdp_examples/bimdp_simple_coroutine.py diff --git a/source/examples/binetdbn/dbn.rst b/legacy/source/examples/binetdbn/dbn.rst similarity index 100% rename from source/examples/binetdbn/dbn.rst rename to legacy/source/examples/binetdbn/dbn.rst diff --git a/source/examples/binetdbn/dbn_binodes.py b/legacy/source/examples/binetdbn/dbn_binodes.py similarity index 100% rename from source/examples/binetdbn/dbn_binodes.py rename to legacy/source/examples/binetdbn/dbn_binodes.py diff --git a/source/examples/binetdbn/dbn_binodes.rst b/legacy/source/examples/binetdbn/dbn_binodes.rst similarity index 100% rename from source/examples/binetdbn/dbn_binodes.rst rename to legacy/source/examples/binetdbn/dbn_binodes.rst diff --git a/source/examples/binetdbn/dbn_binodes_coroutine_old.py b/legacy/source/examples/binetdbn/dbn_binodes_coroutine_old.py similarity index 100% rename from source/examples/binetdbn/dbn_binodes_coroutine_old.py rename to legacy/source/examples/binetdbn/dbn_binodes_coroutine_old.py diff --git a/source/examples/binetdbn/dbn_binodes_coroutine_old.rst b/legacy/source/examples/binetdbn/dbn_binodes_coroutine_old.rst similarity index 100% rename from source/examples/binetdbn/dbn_binodes_coroutine_old.rst rename to legacy/source/examples/binetdbn/dbn_binodes_coroutine_old.rst diff --git a/source/examples/binetdbn/dbn_binodes_statemachine_old.py b/legacy/source/examples/binetdbn/dbn_binodes_statemachine_old.py similarity index 100% rename from source/examples/binetdbn/dbn_binodes_statemachine_old.py rename to legacy/source/examples/binetdbn/dbn_binodes_statemachine_old.py diff --git a/source/examples/binetdbn/dbn_binodes_statemachine_old.rst b/legacy/source/examples/binetdbn/dbn_binodes_statemachine_old.rst similarity index 100% rename from source/examples/binetdbn/dbn_binodes_statemachine_old.rst rename to legacy/source/examples/binetdbn/dbn_binodes_statemachine_old.rst diff --git a/source/examples/binetdbn/dbn_nodes.py b/legacy/source/examples/binetdbn/dbn_nodes.py similarity index 100% rename from source/examples/binetdbn/dbn_nodes.py rename to legacy/source/examples/binetdbn/dbn_nodes.py diff --git a/source/examples/binetdbn/dbn_nodes.rst b/legacy/source/examples/binetdbn/dbn_nodes.rst similarity index 100% rename from source/examples/binetdbn/dbn_nodes.rst rename to legacy/source/examples/binetdbn/dbn_nodes.rst diff --git a/source/examples/binetdbn/test_dbnnodes.py b/legacy/source/examples/binetdbn/test_dbnnodes.py similarity index 100% rename from source/examples/binetdbn/test_dbnnodes.py rename to legacy/source/examples/binetdbn/test_dbnnodes.py diff --git a/source/examples/binetdbn/test_dbnnodes.rst b/legacy/source/examples/binetdbn/test_dbnnodes.rst similarity index 100% rename from source/examples/binetdbn/test_dbnnodes.rst rename to legacy/source/examples/binetdbn/test_dbnnodes.rst diff --git a/source/examples/convolution/convolution_with_cache.py b/legacy/source/examples/convolution/convolution_with_cache.py similarity index 100% rename from source/examples/convolution/convolution_with_cache.py rename to legacy/source/examples/convolution/convolution_with_cache.py diff --git a/source/examples/convolution/filtered_lena.png b/legacy/source/examples/convolution/filtered_lena.png similarity index 100% rename from source/examples/convolution/filtered_lena.png rename to legacy/source/examples/convolution/filtered_lena.png diff --git a/source/examples/convolution/gabor_filters.png b/legacy/source/examples/convolution/gabor_filters.png similarity index 100% rename from source/examples/convolution/gabor_filters.png rename to legacy/source/examples/convolution/gabor_filters.png diff --git a/source/examples/convolution/image_convolution.py b/legacy/source/examples/convolution/image_convolution.py similarity index 100% rename from source/examples/convolution/image_convolution.py rename to legacy/source/examples/convolution/image_convolution.py diff --git a/source/examples/convolution/image_convolution.rst b/legacy/source/examples/convolution/image_convolution.rst similarity index 100% rename from source/examples/convolution/image_convolution.rst rename to legacy/source/examples/convolution/image_convolution.rst diff --git a/source/examples/convolution/lena.png b/legacy/source/examples/convolution/lena.png similarity index 100% rename from source/examples/convolution/lena.png rename to legacy/source/examples/convolution/lena.png diff --git a/source/examples/convolution/lena_gray.png b/legacy/source/examples/convolution/lena_gray.png similarity index 100% rename from source/examples/convolution/lena_gray.png rename to legacy/source/examples/convolution/lena_gray.png diff --git a/source/examples/examples.rst b/legacy/source/examples/examples.rst similarity index 100% rename from source/examples/examples.rst rename to legacy/source/examples/examples.rst diff --git a/source/examples/gng/animated_training.gif b/legacy/source/examples/gng/animated_training.gif similarity index 100% rename from source/examples/gng/animated_training.gif rename to legacy/source/examples/gng/animated_training.gif diff --git a/source/examples/gng/animated_training.rst b/legacy/source/examples/gng/animated_training.rst similarity index 100% rename from source/examples/gng/animated_training.rst rename to legacy/source/examples/gng/animated_training.rst diff --git a/source/examples/gng/gng.rst b/legacy/source/examples/gng/gng.rst similarity index 100% rename from source/examples/gng/gng.rst rename to legacy/source/examples/gng/gng.rst diff --git a/source/examples/gng/gng_distribution.png b/legacy/source/examples/gng/gng_distribution.png similarity index 100% rename from source/examples/gng/gng_distribution.png rename to legacy/source/examples/gng/gng_distribution.png diff --git a/source/examples/gng/gng_final.png b/legacy/source/examples/gng/gng_final.png similarity index 100% rename from source/examples/gng/gng_final.png rename to legacy/source/examples/gng/gng_final.png diff --git a/source/examples/gng/gng_initial.png b/legacy/source/examples/gng/gng_initial.png similarity index 100% rename from source/examples/gng/gng_initial.png rename to legacy/source/examples/gng/gng_initial.png diff --git a/source/examples/gradnewton/gradnewton.rst b/legacy/source/examples/gradnewton/gradnewton.rst similarity index 100% rename from source/examples/gradnewton/gradnewton.rst rename to legacy/source/examples/gradnewton/gradnewton.rst diff --git a/source/examples/hinet_html.py b/legacy/source/examples/hinet_html.py similarity index 100% rename from source/examples/hinet_html.py rename to legacy/source/examples/hinet_html.py diff --git a/source/examples/hinetplaner/configs/aaa_test.json b/legacy/source/examples/hinetplaner/configs/aaa_test.json similarity index 100% rename from source/examples/hinetplaner/configs/aaa_test.json rename to legacy/source/examples/hinetplaner/configs/aaa_test.json diff --git a/source/examples/hinetplaner/configs/avg_linpca.json b/legacy/source/examples/hinetplaner/configs/avg_linpca.json similarity index 100% rename from source/examples/hinetplaner/configs/avg_linpca.json rename to legacy/source/examples/hinetplaner/configs/avg_linpca.json diff --git a/source/examples/hinetplaner/configs/linpca2.json b/legacy/source/examples/hinetplaner/configs/linpca2.json similarity index 100% rename from source/examples/hinetplaner/configs/linpca2.json rename to legacy/source/examples/hinetplaner/configs/linpca2.json diff --git a/source/examples/hinetplaner/configs/rhomb_150x140.json b/legacy/source/examples/hinetplaner/configs/rhomb_150x140.json similarity index 100% rename from source/examples/hinetplaner/configs/rhomb_150x140.json rename to legacy/source/examples/hinetplaner/configs/rhomb_150x140.json diff --git a/source/examples/hinetplaner/configs/rhomb_large.json b/legacy/source/examples/hinetplaner/configs/rhomb_large.json similarity index 100% rename from source/examples/hinetplaner/configs/rhomb_large.json rename to legacy/source/examples/hinetplaner/configs/rhomb_large.json diff --git a/source/examples/hinetplaner/configs/rhomb_test.json b/legacy/source/examples/hinetplaner/configs/rhomb_test.json similarity index 100% rename from source/examples/hinetplaner/configs/rhomb_test.json rename to legacy/source/examples/hinetplaner/configs/rhomb_test.json diff --git a/source/examples/hinetplaner/configs/smaller_model.json b/legacy/source/examples/hinetplaner/configs/smaller_model.json similarity index 100% rename from source/examples/hinetplaner/configs/smaller_model.json rename to legacy/source/examples/hinetplaner/configs/smaller_model.json diff --git a/source/examples/hinetplaner/configs/standard_large.json b/legacy/source/examples/hinetplaner/configs/standard_large.json similarity index 100% rename from source/examples/hinetplaner/configs/standard_large.json rename to legacy/source/examples/hinetplaner/configs/standard_large.json diff --git a/source/examples/hinetplaner/configs/trigger_model.json b/legacy/source/examples/hinetplaner/configs/trigger_model.json similarity index 100% rename from source/examples/hinetplaner/configs/trigger_model.json rename to legacy/source/examples/hinetplaner/configs/trigger_model.json diff --git a/source/examples/hinetplaner/demo/hinetplaner_droid.jpg b/legacy/source/examples/hinetplaner/demo/hinetplaner_droid.jpg similarity index 100% rename from source/examples/hinetplaner/demo/hinetplaner_droid.jpg rename to legacy/source/examples/hinetplaner/demo/hinetplaner_droid.jpg diff --git a/source/examples/hinetplaner/frontend.js b/legacy/source/examples/hinetplaner/frontend.js similarity index 100% rename from source/examples/hinetplaner/frontend.js rename to legacy/source/examples/hinetplaner/frontend.js diff --git a/source/examples/hinetplaner/frontend.xhtml b/legacy/source/examples/hinetplaner/frontend.xhtml similarity index 100% rename from source/examples/hinetplaner/frontend.xhtml rename to legacy/source/examples/hinetplaner/frontend.xhtml diff --git a/source/examples/hinetplaner/hinetplaner.py b/legacy/source/examples/hinetplaner/hinetplaner.py similarity index 100% rename from source/examples/hinetplaner/hinetplaner.py rename to legacy/source/examples/hinetplaner/hinetplaner.py diff --git a/source/examples/hinetplaner/images/favicon.png b/legacy/source/examples/hinetplaner/images/favicon.png similarity index 100% rename from source/examples/hinetplaner/images/favicon.png rename to legacy/source/examples/hinetplaner/images/favicon.png diff --git a/source/examples/hinetplaner/images/mdpicon.svg b/legacy/source/examples/hinetplaner/images/mdpicon.svg similarity index 100% rename from source/examples/hinetplaner/images/mdpicon.svg rename to legacy/source/examples/hinetplaner/images/mdpicon.svg diff --git a/source/examples/hinetplaner/images/small_throbber.gif b/legacy/source/examples/hinetplaner/images/small_throbber.gif similarity index 100% rename from source/examples/hinetplaner/images/small_throbber.gif rename to legacy/source/examples/hinetplaner/images/small_throbber.gif diff --git a/source/examples/hinetplaner/images/throbber.gif b/legacy/source/examples/hinetplaner/images/throbber.gif similarity index 100% rename from source/examples/hinetplaner/images/throbber.gif rename to legacy/source/examples/hinetplaner/images/throbber.gif diff --git a/source/examples/hinetplaner/jquery-1.4.2.js b/legacy/source/examples/hinetplaner/jquery-1.4.2.js similarity index 100% rename from source/examples/hinetplaner/jquery-1.4.2.js rename to legacy/source/examples/hinetplaner/jquery-1.4.2.js diff --git a/source/examples/hinetplaner/jquery-1.4.2.min.js b/legacy/source/examples/hinetplaner/jquery-1.4.2.min.js similarity index 100% rename from source/examples/hinetplaner/jquery-1.4.2.min.js rename to legacy/source/examples/hinetplaner/jquery-1.4.2.min.js diff --git a/source/examples/hinetplaner/json/__init__.py b/legacy/source/examples/hinetplaner/json/__init__.py similarity index 100% rename from source/examples/hinetplaner/json/__init__.py rename to legacy/source/examples/hinetplaner/json/__init__.py diff --git a/source/examples/hinetplaner/json/_speedups.c b/legacy/source/examples/hinetplaner/json/_speedups.c similarity index 100% rename from source/examples/hinetplaner/json/_speedups.c rename to legacy/source/examples/hinetplaner/json/_speedups.c diff --git a/source/examples/hinetplaner/json/decoder.py b/legacy/source/examples/hinetplaner/json/decoder.py similarity index 100% rename from source/examples/hinetplaner/json/decoder.py rename to legacy/source/examples/hinetplaner/json/decoder.py diff --git a/source/examples/hinetplaner/json/encoder.py b/legacy/source/examples/hinetplaner/json/encoder.py similarity index 100% rename from source/examples/hinetplaner/json/encoder.py rename to legacy/source/examples/hinetplaner/json/encoder.py diff --git a/source/examples/hinetplaner/json/scanner.py b/legacy/source/examples/hinetplaner/json/scanner.py similarity index 100% rename from source/examples/hinetplaner/json/scanner.py rename to legacy/source/examples/hinetplaner/json/scanner.py diff --git a/source/examples/hinetplaner/json2.js b/legacy/source/examples/hinetplaner/json2.js similarity index 100% rename from source/examples/hinetplaner/json2.js rename to legacy/source/examples/hinetplaner/json2.js diff --git a/source/examples/hinetplaner/jsonrpc.py b/legacy/source/examples/hinetplaner/jsonrpc.py similarity index 100% rename from source/examples/hinetplaner/jsonrpc.py rename to legacy/source/examples/hinetplaner/jsonrpc.py diff --git a/source/examples/hinetplaner/readme.txt b/legacy/source/examples/hinetplaner/readme.txt similarity index 100% rename from source/examples/hinetplaner/readme.txt rename to legacy/source/examples/hinetplaner/readme.txt diff --git a/source/examples/hinetplaner/runme.py b/legacy/source/examples/hinetplaner/runme.py similarity index 100% rename from source/examples/hinetplaner/runme.py rename to legacy/source/examples/hinetplaner/runme.py diff --git a/source/examples/hinetplaner/styles/hinet.css b/legacy/source/examples/hinetplaner/styles/hinet.css similarity index 100% rename from source/examples/hinetplaner/styles/hinet.css rename to legacy/source/examples/hinetplaner/styles/hinet.css diff --git a/source/examples/hinetplaner/styles/planer.css b/legacy/source/examples/hinetplaner/styles/planer.css similarity index 100% rename from source/examples/hinetplaner/styles/planer.css rename to legacy/source/examples/hinetplaner/styles/planer.css diff --git a/source/examples/hinetplaner/switchboard_svg.py b/legacy/source/examples/hinetplaner/switchboard_svg.py similarity index 100% rename from source/examples/hinetplaner/switchboard_svg.py rename to legacy/source/examples/hinetplaner/switchboard_svg.py diff --git a/source/examples/lle/lle.rst b/legacy/source/examples/lle/lle.rst similarity index 100% rename from source/examples/lle/lle.rst rename to legacy/source/examples/lle/lle.rst diff --git a/source/examples/lle/lle_nodes_demo.py b/legacy/source/examples/lle/lle_nodes_demo.py similarity index 100% rename from source/examples/lle/lle_nodes_demo.py rename to legacy/source/examples/lle/lle_nodes_demo.py diff --git a/source/examples/lle/s_shape_3D.png b/legacy/source/examples/lle/s_shape_3D.png similarity index 100% rename from source/examples/lle/s_shape_3D.png rename to legacy/source/examples/lle/s_shape_3D.png diff --git a/source/examples/lle/s_shape_hole_3D.png b/legacy/source/examples/lle/s_shape_hole_3D.png similarity index 100% rename from source/examples/lle/s_shape_hole_3D.png rename to legacy/source/examples/lle/s_shape_hole_3D.png diff --git a/source/examples/lle/s_shape_hole_hlle_proj.png b/legacy/source/examples/lle/s_shape_hole_hlle_proj.png similarity index 100% rename from source/examples/lle/s_shape_hole_hlle_proj.png rename to legacy/source/examples/lle/s_shape_hole_hlle_proj.png diff --git a/source/examples/lle/s_shape_hole_lle_proj.png b/legacy/source/examples/lle/s_shape_hole_lle_proj.png similarity index 100% rename from source/examples/lle/s_shape_hole_lle_proj.png rename to legacy/source/examples/lle/s_shape_hole_lle_proj.png diff --git a/source/examples/lle/s_shape_lle_proj.png b/legacy/source/examples/lle/s_shape_lle_proj.png similarity index 100% rename from source/examples/lle/s_shape_lle_proj.png rename to legacy/source/examples/lle/s_shape_lle_proj.png diff --git a/source/examples/logmap/logmap.rst b/legacy/source/examples/logmap/logmap.rst similarity index 100% rename from source/examples/logmap/logmap.rst rename to legacy/source/examples/logmap/logmap.rst diff --git a/source/examples/logmap/results.agr b/legacy/source/examples/logmap/results.agr similarity index 100% rename from source/examples/logmap/results.agr rename to legacy/source/examples/logmap/results.agr diff --git a/source/examples/logmap/results.png b/legacy/source/examples/logmap/results.png similarity index 100% rename from source/examples/logmap/results.png rename to legacy/source/examples/logmap/results.png diff --git a/source/examples/logmap/series.agr b/legacy/source/examples/logmap/series.agr similarity index 100% rename from source/examples/logmap/series.agr rename to legacy/source/examples/logmap/series.agr diff --git a/source/examples/logmap/series.png b/legacy/source/examples/logmap/series.png similarity index 100% rename from source/examples/logmap/series.png rename to legacy/source/examples/logmap/series.png diff --git a/source/examples/logmap/series2.png b/legacy/source/examples/logmap/series2.png similarity index 100% rename from source/examples/logmap/series2.png rename to legacy/source/examples/logmap/series2.png diff --git a/legacy/source/examples/logo/Courier_New_Bold.ttf b/legacy/source/examples/logo/Courier_New_Bold.ttf new file mode 100644 index 0000000..9b8d4f0 Binary files /dev/null and b/legacy/source/examples/logo/Courier_New_Bold.ttf differ diff --git a/legacy/source/examples/logo/Georgia_Bold.ttf b/legacy/source/examples/logo/Georgia_Bold.ttf new file mode 100644 index 0000000..2cfce23 Binary files /dev/null and b/legacy/source/examples/logo/Georgia_Bold.ttf differ diff --git a/legacy/source/examples/logo/Times_New_Roman_Bold.ttf b/legacy/source/examples/logo/Times_New_Roman_Bold.ttf new file mode 100644 index 0000000..0fc9d84 Binary files /dev/null and b/legacy/source/examples/logo/Times_New_Roman_Bold.ttf differ diff --git a/legacy/source/examples/logo/Verdana.ttf b/legacy/source/examples/logo/Verdana.ttf new file mode 100644 index 0000000..754a9b7 Binary files /dev/null and b/legacy/source/examples/logo/Verdana.ttf differ diff --git a/legacy/source/examples/logo/animation.gif b/legacy/source/examples/logo/animation.gif new file mode 100644 index 0000000..ab72dd1 Binary files /dev/null and b/legacy/source/examples/logo/animation.gif differ diff --git a/legacy/source/examples/logo/animation/img0000.png b/legacy/source/examples/logo/animation/img0000.png new file mode 100644 index 0000000..003ed6d Binary files /dev/null and b/legacy/source/examples/logo/animation/img0000.png differ diff --git a/legacy/source/examples/logo/animation/img0001.png b/legacy/source/examples/logo/animation/img0001.png new file mode 100644 index 0000000..7dd44f8 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0001.png differ diff --git a/legacy/source/examples/logo/animation/img0002.png b/legacy/source/examples/logo/animation/img0002.png new file mode 100644 index 0000000..f21b06b Binary files /dev/null and b/legacy/source/examples/logo/animation/img0002.png differ diff --git a/legacy/source/examples/logo/animation/img0003.png b/legacy/source/examples/logo/animation/img0003.png new file mode 100644 index 0000000..ab86df2 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0003.png differ diff --git a/legacy/source/examples/logo/animation/img0004.png b/legacy/source/examples/logo/animation/img0004.png new file mode 100644 index 0000000..394d827 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0004.png differ diff --git a/legacy/source/examples/logo/animation/img0005.png b/legacy/source/examples/logo/animation/img0005.png new file mode 100644 index 0000000..e23b8b3 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0005.png differ diff --git a/legacy/source/examples/logo/animation/img0006.png b/legacy/source/examples/logo/animation/img0006.png new file mode 100644 index 0000000..f79da24 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0006.png differ diff --git a/legacy/source/examples/logo/animation/img0007.png b/legacy/source/examples/logo/animation/img0007.png new file mode 100644 index 0000000..1477b22 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0007.png differ diff --git a/legacy/source/examples/logo/animation/img0008.png b/legacy/source/examples/logo/animation/img0008.png new file mode 100644 index 0000000..af61ff2 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0008.png differ diff --git a/legacy/source/examples/logo/animation/img0009.png b/legacy/source/examples/logo/animation/img0009.png new file mode 100644 index 0000000..3eccbaf Binary files /dev/null and b/legacy/source/examples/logo/animation/img0009.png differ diff --git a/legacy/source/examples/logo/animation/img0010.png b/legacy/source/examples/logo/animation/img0010.png new file mode 100644 index 0000000..cf39d74 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0010.png differ diff --git a/legacy/source/examples/logo/animation/img0011.png b/legacy/source/examples/logo/animation/img0011.png new file mode 100644 index 0000000..a4c7a4f Binary files /dev/null and b/legacy/source/examples/logo/animation/img0011.png differ diff --git a/legacy/source/examples/logo/animation/img0012.png b/legacy/source/examples/logo/animation/img0012.png new file mode 100644 index 0000000..d37a966 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0012.png differ diff --git a/legacy/source/examples/logo/animation/img0013.png b/legacy/source/examples/logo/animation/img0013.png new file mode 100644 index 0000000..85429cf Binary files /dev/null and b/legacy/source/examples/logo/animation/img0013.png differ diff --git a/legacy/source/examples/logo/animation/img0014.png b/legacy/source/examples/logo/animation/img0014.png new file mode 100644 index 0000000..0479674 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0014.png differ diff --git a/legacy/source/examples/logo/animation/img0015.png b/legacy/source/examples/logo/animation/img0015.png new file mode 100644 index 0000000..4297304 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0015.png differ diff --git a/legacy/source/examples/logo/animation/img0016.png b/legacy/source/examples/logo/animation/img0016.png new file mode 100644 index 0000000..ece2040 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0016.png differ diff --git a/legacy/source/examples/logo/animation/img0017.png b/legacy/source/examples/logo/animation/img0017.png new file mode 100644 index 0000000..33f0394 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0017.png differ diff --git a/legacy/source/examples/logo/animation/img0018.png b/legacy/source/examples/logo/animation/img0018.png new file mode 100644 index 0000000..97fd875 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0018.png differ diff --git a/legacy/source/examples/logo/animation/img0019.png b/legacy/source/examples/logo/animation/img0019.png new file mode 100644 index 0000000..dda656e Binary files /dev/null and b/legacy/source/examples/logo/animation/img0019.png differ diff --git a/legacy/source/examples/logo/animation/img0020.png b/legacy/source/examples/logo/animation/img0020.png new file mode 100644 index 0000000..680bb08 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0020.png differ diff --git a/legacy/source/examples/logo/animation/img0021.png b/legacy/source/examples/logo/animation/img0021.png new file mode 100644 index 0000000..1a15bad Binary files /dev/null and b/legacy/source/examples/logo/animation/img0021.png differ diff --git a/legacy/source/examples/logo/animation/img0022.png b/legacy/source/examples/logo/animation/img0022.png new file mode 100644 index 0000000..b457dd7 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0022.png differ diff --git a/legacy/source/examples/logo/animation/img0023.png b/legacy/source/examples/logo/animation/img0023.png new file mode 100644 index 0000000..1614423 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0023.png differ diff --git a/legacy/source/examples/logo/animation/img0024.png b/legacy/source/examples/logo/animation/img0024.png new file mode 100644 index 0000000..de5e21e Binary files /dev/null and b/legacy/source/examples/logo/animation/img0024.png differ diff --git a/legacy/source/examples/logo/animation/img0025.png b/legacy/source/examples/logo/animation/img0025.png new file mode 100644 index 0000000..ad95f12 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0025.png differ diff --git a/legacy/source/examples/logo/animation/img0026.png b/legacy/source/examples/logo/animation/img0026.png new file mode 100644 index 0000000..80db7c0 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0026.png differ diff --git a/legacy/source/examples/logo/animation/img0027.png b/legacy/source/examples/logo/animation/img0027.png new file mode 100644 index 0000000..1c3c9ea Binary files /dev/null and b/legacy/source/examples/logo/animation/img0027.png differ diff --git a/legacy/source/examples/logo/animation/img0028.png b/legacy/source/examples/logo/animation/img0028.png new file mode 100644 index 0000000..4c719b0 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0028.png differ diff --git a/legacy/source/examples/logo/animation/img0029.png b/legacy/source/examples/logo/animation/img0029.png new file mode 100644 index 0000000..d151b79 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0029.png differ diff --git a/legacy/source/examples/logo/animation/img0030.png b/legacy/source/examples/logo/animation/img0030.png new file mode 100644 index 0000000..d51f804 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0030.png differ diff --git a/legacy/source/examples/logo/animation/img0031.png b/legacy/source/examples/logo/animation/img0031.png new file mode 100644 index 0000000..004f62c Binary files /dev/null and b/legacy/source/examples/logo/animation/img0031.png differ diff --git a/legacy/source/examples/logo/animation/img0032.png b/legacy/source/examples/logo/animation/img0032.png new file mode 100644 index 0000000..9d7956b Binary files /dev/null and b/legacy/source/examples/logo/animation/img0032.png differ diff --git a/legacy/source/examples/logo/animation/img0033.png b/legacy/source/examples/logo/animation/img0033.png new file mode 100644 index 0000000..c7838f4 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0033.png differ diff --git a/legacy/source/examples/logo/animation/img0034.png b/legacy/source/examples/logo/animation/img0034.png new file mode 100644 index 0000000..4aaebe7 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0034.png differ diff --git a/legacy/source/examples/logo/animation/img0035.png b/legacy/source/examples/logo/animation/img0035.png new file mode 100644 index 0000000..483e1fa Binary files /dev/null and b/legacy/source/examples/logo/animation/img0035.png differ diff --git a/legacy/source/examples/logo/animation/img0036.png b/legacy/source/examples/logo/animation/img0036.png new file mode 100644 index 0000000..c862158 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0036.png differ diff --git a/legacy/source/examples/logo/animation/img0037.png b/legacy/source/examples/logo/animation/img0037.png new file mode 100644 index 0000000..f2d3d75 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0037.png differ diff --git a/legacy/source/examples/logo/animation/img0038.png b/legacy/source/examples/logo/animation/img0038.png new file mode 100644 index 0000000..3048f1b Binary files /dev/null and b/legacy/source/examples/logo/animation/img0038.png differ diff --git a/legacy/source/examples/logo/animation/img0039.png b/legacy/source/examples/logo/animation/img0039.png new file mode 100644 index 0000000..1d84db9 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0039.png differ diff --git a/legacy/source/examples/logo/animation/img0040.png b/legacy/source/examples/logo/animation/img0040.png new file mode 100644 index 0000000..0f9c9f1 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0040.png differ diff --git a/legacy/source/examples/logo/animation/img0041.png b/legacy/source/examples/logo/animation/img0041.png new file mode 100644 index 0000000..8ff1033 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0041.png differ diff --git a/legacy/source/examples/logo/animation/img0042.png b/legacy/source/examples/logo/animation/img0042.png new file mode 100644 index 0000000..227a5b1 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0042.png differ diff --git a/legacy/source/examples/logo/animation/img0043.png b/legacy/source/examples/logo/animation/img0043.png new file mode 100644 index 0000000..cfa8078 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0043.png differ diff --git a/legacy/source/examples/logo/animation/img0044.png b/legacy/source/examples/logo/animation/img0044.png new file mode 100644 index 0000000..c0c4778 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0044.png differ diff --git a/legacy/source/examples/logo/animation/img0045.png b/legacy/source/examples/logo/animation/img0045.png new file mode 100644 index 0000000..35ace76 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0045.png differ diff --git a/legacy/source/examples/logo/animation/img0046.png b/legacy/source/examples/logo/animation/img0046.png new file mode 100644 index 0000000..ff5c512 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0046.png differ diff --git a/legacy/source/examples/logo/animation/img0047.png b/legacy/source/examples/logo/animation/img0047.png new file mode 100644 index 0000000..ddc293a Binary files /dev/null and b/legacy/source/examples/logo/animation/img0047.png differ diff --git a/legacy/source/examples/logo/animation/img0048.png b/legacy/source/examples/logo/animation/img0048.png new file mode 100644 index 0000000..1f00356 Binary files /dev/null and b/legacy/source/examples/logo/animation/img0048.png differ diff --git a/legacy/source/examples/logo/animation/img0049.png b/legacy/source/examples/logo/animation/img0049.png new file mode 100644 index 0000000..6780e5c Binary files /dev/null and b/legacy/source/examples/logo/animation/img0049.png differ diff --git a/legacy/source/examples/logo/gen_logo.py b/legacy/source/examples/logo/gen_logo.py new file mode 100644 index 0000000..22c291b --- /dev/null +++ b/legacy/source/examples/logo/gen_logo.py @@ -0,0 +1,123 @@ +# This script takes the text image generated by gen_text.py and +# learns a GNG network on top of that. +# it creates a series of png files with the learning process + + +save = False # save animation and logo +transparent = True # make transparent background +dpi = 100 # image quality + +# color codes from pylab +bg_color = 'k' +fg_color = 'r' + +N = 500 # data points per iteration +NITER = 50 # number of iterations + +noise = 0.1 # noise ratio 0.1 = 10% +max_nodes = 500 + +import matplotlib +#matplotlib.use('GTKAgg') +matplotlib.rcParams['toolbar'] = 'None' + +import mdp, numpy, pylab, pickle, os, shutil +# set random seed +numpy.random.seed(1) + +# create animation directory if not present +if save and not os.path.exists('animation'): os.mkdir('animation') + +print 'Load image.' +fl = file('text.raw', 'rb') +x = pickle.load(fl) +fl.close() +# cast x to be float32 +x = x.astype(numpy.float32) + +# set figure size +pylab.ion() +fig = pylab.figure() +#fig.set_size_inches((3*x.shape[1]/float(x.shape[0])),3) +fig.add_axes([0.01,0.01,0.98,0.98]) + +#.set_figsize_inches( (w,h) ) + +def plot_graph(gng, iter, fig): + lines = [] + for e in gng.graph.edges: + x0, y0 = e.head.data.pos + c0 = x[int(y0), int(x0)]<0.5 and bg_color or fg_color + x1, y1 = e.tail.data.pos + c1 = x[int(y1), int(x1)]<0.5 and bg_color or fg_color + # determine edge color + cline = c0==c1 and c0 or bg_color + lines.extend(([x0,x1], [y0,y1], cline+'-', + [x0,x0], [y0,y0], c0+'.', + [x1,x1], [y1,y1], c1+'.')) + + fig.clf() + pylab.ioff() + # the order of the axis command is important! + fig.add_axes([0.01,0.01,0.98,0.98]) + pylab.axis('scaled') + #pylab.plot(data[:,0], data[:,1], "k.") + pylab.plot(linewidth=2, ms=14, *lines) + pylab.axis([0,x.shape[1],0,x.shape[0]]) + pylab.axis('off') + pylab.draw() + if save: + #fig = pylab.gcf() + fig.frameon = not transparent + pylab.savefig('animation/img'+('%d'%iter).zfill(4)+'.png',dpi=dpi) + fig.frameon = True + pylab.ion() + + +def data_generator(niter): + for i in range(niter): + print 'Iteration ', i + # shuffled lists of indices of the foreground and background pixels + idx_fg = x.nonzero() + idx_bg = (1.-x).nonzero() + idx_fg = zip(idx_fg[1], idx_fg[0]) + idx_bg = zip(idx_bg[1], idx_bg[0]) + + numpy.random.shuffle(idx_fg) + numpy.random.shuffle(idx_bg) + N_fg = int(N*(1-noise)) + + # choose N_fg pixels from fg and N-N_fg pixels from bg + idx = idx_fg[:N_fg] + idx_bg[:N-N_fg] + numpy.random.shuffle(idx) + yield numpy.array(idx).astype('d') + +print 'Learning neural gas.' +# neural gas node +gng = mdp.nodes.GrowingNeuralGasNode(max_nodes=max_nodes) +for iter, data in enumerate(data_generator(NITER)): + gng.train(data) + plot_graph(gng, iter, fig) +gng.stop_training() + +if save: + shutil.copyfile('animation/img'+('%d'%iter).zfill(4)+'.png', 'logo.png') + +raw_input('Press ENTER to quit!\n') + +# to generate a gif animation use for example: +# convert -dispose Background -delay 10 animation/*png -loop 1 animation.gif + +# to reduce the size of the image, generate an indexed png with 4 colors: +# convert logo.png -matte -colors 4 gif:- | convert - logo_idx.png +# the image is reduced from 79K to 12K! +# reconvert to png and add re-add transparency + +# to generate a logo usable for the web page (height=100 pixel) +# either reduce the full logo.png and get a 39K logo: +# convert -resize x100 logo.png logo_small.png +# or put the indexed logo into the website and let the browser scale down. + +# to put them in the webpage: +# cp logo_small.png ../images/logo.png +# cp animation.gif ../images/logo_animation.gif diff --git a/legacy/source/examples/logo/gen_text.py b/legacy/source/examples/logo/gen_text.py new file mode 100644 index 0000000..6459d1b --- /dev/null +++ b/legacy/source/examples/logo/gen_text.py @@ -0,0 +1,41 @@ +# generate an array containing a black text on white background centered +# with a half font size margin. + +fontpath = "Georgia_Bold.ttf" # which truetype font to use +fontsize = 300 +text = "MDP" + +import Image, ImageDraw, ImageFont, pickle, numpy, pylab +print 'Generate image.' +# size of the starting image is enough to contain the text +imgsize = (len(text)*fontsize, len(text.splitlines())*fontsize) +# mode 'L' is 8-bit pixels (signed integers), black & white +image = Image.new("L", imgsize) +draw = ImageDraw.Draw(image) +draw.text((0,0),text,font=ImageFont.truetype(fontpath,fontsize),fill=1) +# crop the image to its natural bounding box +image = image.crop(image.getbbox()) +# flip the image top-down (the origin for arrays is in the lower-left +# corner) +image = image.transpose(Image.FLIP_TOP_BOTTOM) +# read image as an array of ints +x = numpy.fromstring(image.tostring(), numpy.int8) +x.shape = (image.size[1], image.size[0]) +# add half the font size as a margin and convert to floats +y = numpy.zeros((x.shape[0]+fontsize, x.shape[1]+fontsize), + dtype=numpy.int8) +# place the image in the middle of the new array +fs2 = int(fontsize/2) +y[fs2:fs2+x.shape[0], fs2:fs2+x.shape[1]] = x + +# now pickle the array for future use +fl = file('text.raw', 'wb') +pickle.dump(y, fl) +fl.close() + +# have a look at it +pylab.ioff() +pylab.imshow(y, cmap=pylab.cm.Greys, origin='lower') +pylab.axis('scaled') +pylab.show() + diff --git a/legacy/source/examples/logo/logo.png b/legacy/source/examples/logo/logo.png new file mode 100644 index 0000000..6780e5c Binary files /dev/null and b/legacy/source/examples/logo/logo.png differ diff --git a/source/examples/logo/logo_animation.rst b/legacy/source/examples/logo/logo_animation.rst similarity index 100% rename from source/examples/logo/logo_animation.rst rename to legacy/source/examples/logo/logo_animation.rst diff --git a/legacy/source/examples/logo/logo_idx.png b/legacy/source/examples/logo/logo_idx.png new file mode 100644 index 0000000..284ad97 Binary files /dev/null and b/legacy/source/examples/logo/logo_idx.png differ diff --git a/legacy/source/examples/logo/text.raw b/legacy/source/examples/logo/text.raw new file mode 100644 index 0000000..8d35ac0 --- /dev/null +++ b/legacy/source/examples/logo/text.raw @@ -0,0 +1,37 @@ +cnumpy.core.multiarray +_reconstruct +p0 +(cnumpy +ndarray +p1 +(I0 +tp2 +S'b' +p3 +tp4 +Rp5 +(I1 +(I508 +I1057 +tp6 +cnumpy +dtype +p7 +(S'i1' +p8 +I0 +I1 +tp9 +Rp10 +(I3 +S'|' +p11 +NNNI-1 +I-1 +I0 +tp12 +bI00 +S'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +p13 +tp14 +b. \ No newline at end of file diff --git a/source/examples/mnist/mnist_bifda.py b/legacy/source/examples/mnist/mnist_bifda.py similarity index 100% rename from source/examples/mnist/mnist_bifda.py rename to legacy/source/examples/mnist/mnist_bifda.py diff --git a/source/examples/mnist/mnist_fda.py b/legacy/source/examples/mnist/mnist_fda.py similarity index 100% rename from source/examples/mnist/mnist_fda.py rename to legacy/source/examples/mnist/mnist_fda.py diff --git a/source/examples/mnist/mnist_fda_short.py b/legacy/source/examples/mnist/mnist_fda_short.py similarity index 100% rename from source/examples/mnist/mnist_fda_short.py rename to legacy/source/examples/mnist/mnist_fda_short.py diff --git a/source/examples/mnist/mnist_hinet.py b/legacy/source/examples/mnist/mnist_hinet.py similarity index 100% rename from source/examples/mnist/mnist_hinet.py rename to legacy/source/examples/mnist/mnist_hinet.py diff --git a/source/examples/mnist/mnistdigits.py b/legacy/source/examples/mnist/mnistdigits.py similarity index 100% rename from source/examples/mnist/mnistdigits.py rename to legacy/source/examples/mnist/mnistdigits.py diff --git a/source/examples/pp_remote_test.py b/legacy/source/examples/pp_remote_test.py similarity index 100% rename from source/examples/pp_remote_test.py rename to legacy/source/examples/pp_remote_test.py diff --git a/source/examples/scikits_learn/digit_classification.rst b/legacy/source/examples/scikits_learn/digit_classification.rst similarity index 100% rename from source/examples/scikits_learn/digit_classification.rst rename to legacy/source/examples/scikits_learn/digit_classification.rst diff --git a/source/examples/scikits_learn/digits.png b/legacy/source/examples/scikits_learn/digits.png similarity index 100% rename from source/examples/scikits_learn/digits.png rename to legacy/source/examples/scikits_learn/digits.png diff --git a/source/examples/scikits_learn/digits_classification.py b/legacy/source/examples/scikits_learn/digits_classification.py similarity index 100% rename from source/examples/scikits_learn/digits_classification.py rename to legacy/source/examples/scikits_learn/digits_classification.py diff --git a/source/examples/slideshow/slideshow.py b/legacy/source/examples/slideshow/slideshow.py similarity index 100% rename from source/examples/slideshow/slideshow.py rename to legacy/source/examples/slideshow/slideshow.py diff --git a/source/examples/slideshow/slideshow.rst b/legacy/source/examples/slideshow/slideshow.rst similarity index 100% rename from source/examples/slideshow/slideshow.rst rename to legacy/source/examples/slideshow/slideshow.rst diff --git a/source/examples/slideshow/slideshow_double.py b/legacy/source/examples/slideshow/slideshow_double.py similarity index 100% rename from source/examples/slideshow/slideshow_double.py rename to legacy/source/examples/slideshow/slideshow_double.py diff --git a/source/examples/word_generator/word_generator.py b/legacy/source/examples/word_generator/word_generator.py similarity index 100% rename from source/examples/word_generator/word_generator.py rename to legacy/source/examples/word_generator/word_generator.py diff --git a/source/examples/word_generator/word_generator.rst b/legacy/source/examples/word_generator/word_generator.rst similarity index 100% rename from source/examples/word_generator/word_generator.rst rename to legacy/source/examples/word_generator/word_generator.rst diff --git a/source/how_to_cite_mdp.rst b/legacy/source/how_to_cite_mdp.rst similarity index 100% rename from source/how_to_cite_mdp.rst rename to legacy/source/how_to_cite_mdp.rst diff --git a/legacy/source/index.rst b/legacy/source/index.rst new file mode 100644 index 0000000..334deae --- /dev/null +++ b/legacy/source/index.rst @@ -0,0 +1,29 @@ +.. toctree:: + :hidden: + :maxdepth: 3 + + install.rst + documentation.rst + how_to_cite_mdp.rst + contact.rst + +.. admonition:: News + + 09.03.2016 + MDP 3.5 released! This is a bug-fix release + + Note that from this release MDP is in maintenance mode. 13 years after its first public release, + MDP has reached full maturity and no new features are planned in the future. + + If you plan to do serious machine learning in Python, use `sklearn `_. + Note though that some algorithms, notably SFA and Growing Neural Gas, are only available in MDP. + We would be happy to support the porting of these algorithms to sklearn! + + MDP works equally well in Python 2 and Python 3. All code examples in the documentation are using + Python 2 though. + +.. middle-description-string:: + +.. include:: tutorial/using_mdp_is_as_easy.rst + +To learn more about MDP, read through the :ref:`documentation`. diff --git a/source/install.rst b/legacy/source/install.rst similarity index 100% rename from source/install.rst rename to legacy/source/install.rst diff --git a/source/license.rst b/legacy/source/license.rst similarity index 100% rename from source/license.rst rename to legacy/source/license.rst diff --git a/source/main.rst b/legacy/source/main.rst similarity index 100% rename from source/main.rst rename to legacy/source/main.rst diff --git a/source/node_list.rst b/legacy/source/node_list.rst similarity index 100% rename from source/node_list.rst rename to legacy/source/node_list.rst diff --git a/source/talks/Bochum2009TalkPythonMDP.pdf b/legacy/source/talks/Bochum2009TalkPythonMDP.pdf similarity index 100% rename from source/talks/Bochum2009TalkPythonMDP.pdf rename to legacy/source/talks/Bochum2009TalkPythonMDP.pdf diff --git a/source/talks/Bochum2009TalkPythonMDP.zip b/legacy/source/talks/Bochum2009TalkPythonMDP.zip similarity index 100% rename from source/talks/Bochum2009TalkPythonMDP.zip rename to legacy/source/talks/Bochum2009TalkPythonMDP.zip diff --git a/source/talks/CNS2009Talk.odp b/legacy/source/talks/CNS2009Talk.odp similarity index 100% rename from source/talks/CNS2009Talk.odp rename to legacy/source/talks/CNS2009Talk.odp diff --git a/source/talks/CNS2009Talk.pdf b/legacy/source/talks/CNS2009Talk.pdf similarity index 100% rename from source/talks/CNS2009Talk.pdf rename to legacy/source/talks/CNS2009Talk.pdf diff --git a/source/talks/DLRCologne2009TalkGerman.pdf b/legacy/source/talks/DLRCologne2009TalkGerman.pdf similarity index 100% rename from source/talks/DLRCologne2009TalkGerman.pdf rename to legacy/source/talks/DLRCologne2009TalkGerman.pdf diff --git a/source/talks/DLRCologne2009TalkGerman.zip b/legacy/source/talks/DLRCologne2009TalkGerman.zip similarity index 100% rename from source/talks/DLRCologne2009TalkGerman.zip rename to legacy/source/talks/DLRCologne2009TalkGerman.zip diff --git a/source/talks/EuroPython2005MDPTalk.pdf b/legacy/source/talks/EuroPython2005MDPTalk.pdf similarity index 100% rename from source/talks/EuroPython2005MDPTalk.pdf rename to legacy/source/talks/EuroPython2005MDPTalk.pdf diff --git a/source/talks/EuroPython2005MDPTalk.sxi b/legacy/source/talks/EuroPython2005MDPTalk.sxi similarity index 100% rename from source/talks/EuroPython2005MDPTalk.sxi rename to legacy/source/talks/EuroPython2005MDPTalk.sxi diff --git a/source/talks/EuroPython2006MDPTalk.pdf b/legacy/source/talks/EuroPython2006MDPTalk.pdf similarity index 100% rename from source/talks/EuroPython2006MDPTalk.pdf rename to legacy/source/talks/EuroPython2006MDPTalk.pdf diff --git a/source/talks/EuroPython2006MDPTalk.sxi b/legacy/source/talks/EuroPython2006MDPTalk.sxi similarity index 100% rename from source/talks/EuroPython2006MDPTalk.sxi rename to legacy/source/talks/EuroPython2006MDPTalk.sxi diff --git a/source/talks/EuroPython2009MDPTalk.pdf b/legacy/source/talks/EuroPython2009MDPTalk.pdf similarity index 100% rename from source/talks/EuroPython2009MDPTalk.pdf rename to legacy/source/talks/EuroPython2009MDPTalk.pdf diff --git a/source/talks/EuroPython2009MDPTalk.zip b/legacy/source/talks/EuroPython2009MDPTalk.zip similarity index 100% rename from source/talks/EuroPython2009MDPTalk.zip rename to legacy/source/talks/EuroPython2009MDPTalk.zip diff --git a/source/talks/EuroScipy2009Talk.odp b/legacy/source/talks/EuroScipy2009Talk.odp similarity index 100% rename from source/talks/EuroScipy2009Talk.odp rename to legacy/source/talks/EuroScipy2009Talk.odp diff --git a/source/talks/EuroScipy2009Talk.pdf b/legacy/source/talks/EuroScipy2009Talk.pdf similarity index 100% rename from source/talks/EuroScipy2009Talk.pdf rename to legacy/source/talks/EuroScipy2009Talk.pdf diff --git a/source/talks/EuroScipy2010MDPTalk.pdf b/legacy/source/talks/EuroScipy2010MDPTalk.pdf similarity index 100% rename from source/talks/EuroScipy2010MDPTalk.pdf rename to legacy/source/talks/EuroScipy2010MDPTalk.pdf diff --git a/source/talks/EuroScipy2010MDPTalk.zip b/legacy/source/talks/EuroScipy2010MDPTalk.zip similarity index 100% rename from source/talks/EuroScipy2010MDPTalk.zip rename to legacy/source/talks/EuroScipy2010MDPTalk.zip diff --git a/source/talks/MDP_BiNet_TU2009.pdf b/legacy/source/talks/MDP_BiNet_TU2009.pdf similarity index 100% rename from source/talks/MDP_BiNet_TU2009.pdf rename to legacy/source/talks/MDP_BiNet_TU2009.pdf diff --git a/source/talks/MDP_BiNet_TU2009.zip b/legacy/source/talks/MDP_BiNet_TU2009.zip similarity index 100% rename from source/talks/MDP_BiNet_TU2009.zip rename to legacy/source/talks/MDP_BiNet_TU2009.zip diff --git a/source/talks/NIPS2008MDPTalk.odp b/legacy/source/talks/NIPS2008MDPTalk.odp similarity index 100% rename from source/talks/NIPS2008MDPTalk.odp rename to legacy/source/talks/NIPS2008MDPTalk.odp diff --git a/source/talks/NIPS2008MDPTalk.pdf b/legacy/source/talks/NIPS2008MDPTalk.pdf similarity index 100% rename from source/talks/NIPS2008MDPTalk.pdf rename to legacy/source/talks/NIPS2008MDPTalk.pdf diff --git a/source/talks/PythonInNeuroscienceSatelliteToEuroscipy2011.pdf b/legacy/source/talks/PythonInNeuroscienceSatelliteToEuroscipy2011.pdf similarity index 100% rename from source/talks/PythonInNeuroscienceSatelliteToEuroscipy2011.pdf rename to legacy/source/talks/PythonInNeuroscienceSatelliteToEuroscipy2011.pdf diff --git a/source/talks/talks.rst b/legacy/source/talks/talks.rst similarity index 100% rename from source/talks/talks.rst rename to legacy/source/talks/talks.rst diff --git a/source/time_machine.rst b/legacy/source/time_machine.rst similarity index 100% rename from source/time_machine.rst rename to legacy/source/time_machine.rst diff --git a/source/tutorial/bimdp.rst b/legacy/source/tutorial/bimdp.rst similarity index 100% rename from source/tutorial/bimdp.rst rename to legacy/source/tutorial/bimdp.rst diff --git a/source/tutorial/bimdp_inspection.png b/legacy/source/tutorial/bimdp_inspection.png similarity index 100% rename from source/tutorial/bimdp_inspection.png rename to legacy/source/tutorial/bimdp_inspection.png diff --git a/source/tutorial/bimdp_inspection_chrome.png b/legacy/source/tutorial/bimdp_inspection_chrome.png similarity index 100% rename from source/tutorial/bimdp_inspection_chrome.png rename to legacy/source/tutorial/bimdp_inspection_chrome.png diff --git a/source/tutorial/caching.rst b/legacy/source/tutorial/caching.rst similarity index 100% rename from source/tutorial/caching.rst rename to legacy/source/tutorial/caching.rst diff --git a/source/tutorial/checkpoints.rst b/legacy/source/tutorial/checkpoints.rst similarity index 100% rename from source/tutorial/checkpoints.rst rename to legacy/source/tutorial/checkpoints.rst diff --git a/source/tutorial/classifiers.rst b/legacy/source/tutorial/classifiers.rst similarity index 100% rename from source/tutorial/classifiers.rst rename to legacy/source/tutorial/classifiers.rst diff --git a/source/tutorial/extensions.rst b/legacy/source/tutorial/extensions.rst similarity index 100% rename from source/tutorial/extensions.rst rename to legacy/source/tutorial/extensions.rst diff --git a/source/tutorial/flows.rst b/legacy/source/tutorial/flows.rst similarity index 100% rename from source/tutorial/flows.rst rename to legacy/source/tutorial/flows.rst diff --git a/source/tutorial/hinet.rst b/legacy/source/tutorial/hinet.rst similarity index 100% rename from source/tutorial/hinet.rst rename to legacy/source/tutorial/hinet.rst diff --git a/source/tutorial/hinet_html.png b/legacy/source/tutorial/hinet_html.png similarity index 100% rename from source/tutorial/hinet_html.png rename to legacy/source/tutorial/hinet_html.png diff --git a/source/tutorial/hinet_opt_stim.png b/legacy/source/tutorial/hinet_opt_stim.png similarity index 100% rename from source/tutorial/hinet_opt_stim.png rename to legacy/source/tutorial/hinet_opt_stim.png diff --git a/source/tutorial/hinet_switchboard.png b/legacy/source/tutorial/hinet_switchboard.png similarity index 100% rename from source/tutorial/hinet_switchboard.png rename to legacy/source/tutorial/hinet_switchboard.png diff --git a/source/tutorial/hinet_switchboard.svg b/legacy/source/tutorial/hinet_switchboard.svg similarity index 100% rename from source/tutorial/hinet_switchboard.svg rename to legacy/source/tutorial/hinet_switchboard.svg diff --git a/source/tutorial/introduction.rst b/legacy/source/tutorial/introduction.rst similarity index 100% rename from source/tutorial/introduction.rst rename to legacy/source/tutorial/introduction.rst diff --git a/source/tutorial/iterables.rst b/legacy/source/tutorial/iterables.rst similarity index 100% rename from source/tutorial/iterables.rst rename to legacy/source/tutorial/iterables.rst diff --git a/source/tutorial/nodes.rst b/legacy/source/tutorial/nodes.rst similarity index 100% rename from source/tutorial/nodes.rst rename to legacy/source/tutorial/nodes.rst diff --git a/source/tutorial/parallel.rst b/legacy/source/tutorial/parallel.rst similarity index 100% rename from source/tutorial/parallel.rst rename to legacy/source/tutorial/parallel.rst diff --git a/source/tutorial/quick_start.rst b/legacy/source/tutorial/quick_start.rst similarity index 100% rename from source/tutorial/quick_start.rst rename to legacy/source/tutorial/quick_start.rst diff --git a/source/tutorial/tutorial.rst b/legacy/source/tutorial/tutorial.rst similarity index 100% rename from source/tutorial/tutorial.rst rename to legacy/source/tutorial/tutorial.rst diff --git a/legacy/source/tutorial/using_mdp_is_as_easy.rst b/legacy/source/tutorial/using_mdp_is_as_easy.rst new file mode 100644 index 0000000..715e57e --- /dev/null +++ b/legacy/source/tutorial/using_mdp_is_as_easy.rst @@ -0,0 +1,11 @@ +.. _using_mdp_is_as_easy: + +Using MDP is as easy as:: + + >>> import mdp + + >>> # perform PCA on some data x + >>> y = mdp.pca(x) # doctest: +SKIP + + >>> # perform ICA on some data x using single precision + >>> y = mdp.fastica(x, dtype='float32') # doctest: +SKIP diff --git a/source/tutorial/wrappers.rst b/legacy/source/tutorial/wrappers.rst similarity index 100% rename from source/tutorial/wrappers.rst rename to legacy/source/tutorial/wrappers.rst diff --git a/mdp-toolkit b/mdp-toolkit new file mode 160000 index 0000000..0111252 --- /dev/null +++ b/mdp-toolkit @@ -0,0 +1 @@ +Subproject commit 011125286ef0bc73ae3e6053f54d610e00842517 diff --git a/source/conf.py b/source/conf.py index b69b5b4..43420f5 100644 --- a/source/conf.py +++ b/source/conf.py @@ -12,6 +12,9 @@ # serve to show the default. import sys, os +sys.path.insert(0, os.path.abspath('../ext')) +sys.path.insert(0, os.path.abspath('../')) +sys.path.insert(0, os.path.abspath('../mdp-toolkit')) import mdp def get_mdp_version(): @@ -22,24 +25,31 @@ def get_mdp_version(): # documentation root, use os.path.abspath to make it absolute, like shown here. #sys.path.append(os.path.abspath('.')) + # -- General configuration ----------------------------------------------------- -# If your documentation needs a minimal Sphinx version, state it here. -needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc', - 'sphinx.ext.doctest', - 'sphinx.ext.autosummary', - 'sphinx.ext.extlinks', - 'extapi', - 'codesnippet', - 'version_string', - 'linkcheck2', - 'descriptions_string',] + 'sphinx.ext.autosummary'] + +#'sphinx.ext.autodoc', +# #'neatdoc', +# 'sphinx.ext.napoleon', +# 'sphinx.ext.autosummary', +# 'sphinx.ext.doctest', +# 'sphinx.ext.viewcode', +# 'sphinx.ext.extlinks', +# 'sphinx.ext.mathjax', +# 'extapi', +# 'codesnippet', +# 'version_string', +# 'linkcheck2', +# 'descriptions_string',] # 'download_links'] +#napoleon_google_docstring = False # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] @@ -60,9 +70,6 @@ def get_mdp_version(): # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['main.rst', - 'tutorial/using_mdp_is_as_easy.rst', - ] # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' @@ -71,23 +78,31 @@ def get_mdp_version(): # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'mdp' +html_theme = 'sphinx_rtd_theme' +html_theme_options = { + 'collapse_navigation': True, + 'display_version': False, + 'navigation_depth': 5, + 'logo_only': True +} # Add any paths that contain custom themes here, relative to this directory. html_theme_path = ['_themes'] html_title = "Modular toolkit for Data Processing (MDP)" +# Logo of the docs +html_logo = '_static/logo_animation.gif' # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -html_favicon = "favicon.ico" +html_favicon = "_static/favicon.ico" # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['talks', '_static'] +html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. @@ -130,10 +145,6 @@ def get_mdp_version(): # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = '' -# A list of regular expressions that match URIs that should not be checked -# when doing a ``linkcheck`` build. -linkcheck2_ignore = [r'http://mdp-toolkit.*'] - # Output file base name for HTML help builder. htmlhelp_basename = 'MDP-toolkitdoc' @@ -148,11 +159,11 @@ def get_mdp_version(): # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ('tutorial/tutorial', 'MDP-tutorial.tex', - u'''Modular toolkit for Data Processing\\\\\\mbox{ }\\\\Tutorial''', - u'Authors: MDP Developers', 'manual', True), -] +#latex_documents = [ +# ('tutorial/tutorial', 'MDP-tutorial.tex', +# ur'''Modular toolkit for Data Processing\\\mbox{ }\\Tutorial''', +# u'Authors: MDP Developers', 'manual', True), +#] # The name of an image file (relative to this directory) to place at the top of # the title page. @@ -172,7 +183,9 @@ def get_mdp_version(): #latex_preamble = '' # Documents to append as an appendix to all manuals. -latex_appendices = ['node_list', 'additional_utilities', 'license'] +latex_appendices = []#'node_list', +#'additional_utilities', +#'license'] # If false, no module index is generated. latex_domain_indices = False @@ -205,30 +218,11 @@ def get_mdp_version(): #download_link = ('http://sourceforge.net/projects/mdp-toolkit/files/mdp-toolkit' # '/%s/MDP-%s.tar.gz/download'%(version, version)) -# overwrite default signature and members documentation -# features of autodoc - -def setup(app): - from sphinx.ext.autodoc import cut_lines - def autodoc_skip_member(app, what, name, obj, skip, options): - # only document public nodes, but none of their members! - if name.startswith('_') or what != 'module': - return True - else: - return False - - def autodoc_process_signature(app, what, name, obj, options, - signature, return_annotation): - # remove signature altogether - return (None, None) - - def autodoc_process_docstring(app, what, name, obj, options, lines): - # add link to api at the end of the docstring - shortname = name.split('.')[-1] - link = 'Full API documentation: :api:`%s <%s>`' % (name, shortname) - lines.extend(['', link]) - - # app.connect(event, callback) - app.connect('autodoc-process-signature', autodoc_process_signature) - app.connect('autodoc-skip-member', autodoc_skip_member) - app.connect('autodoc-process-docstring', autodoc_process_docstring) +# neatdoc +neatdoc_module_path_list =[os.path.abspath('../mdp')] +neatdoc_apidoc_options = ['-e', '-P', '-d 7'] + +neatdoc_create_class_toc = True +autodoc_default_flags = ['members', 'undoc-members', 'private-members', 'special-members', 'inherited-members', 'show-inheritance'] + + diff --git a/source/documentation/api_documentation/api_documentation.rst b/source/documentation/api_documentation/api_documentation.rst new file mode 100644 index 0000000..7212619 --- /dev/null +++ b/source/documentation/api_documentation/api_documentation.rst @@ -0,0 +1,12 @@ +.. _api_documentation: + +================= +API Documentation +================= + +.. contents:: + :local: + :backlinks: none + +.. toctree:: + :maxdepth: 4 diff --git a/source/documentation/talks/Bochum2009TalkPythonMDP.pdf b/source/documentation/talks/Bochum2009TalkPythonMDP.pdf new file mode 100644 index 0000000..a633852 Binary files /dev/null and b/source/documentation/talks/Bochum2009TalkPythonMDP.pdf differ diff --git a/source/documentation/talks/Bochum2009TalkPythonMDP.zip b/source/documentation/talks/Bochum2009TalkPythonMDP.zip new file mode 100644 index 0000000..613f189 Binary files /dev/null and b/source/documentation/talks/Bochum2009TalkPythonMDP.zip differ diff --git a/source/documentation/talks/CNS2009Talk.odp b/source/documentation/talks/CNS2009Talk.odp new file mode 100644 index 0000000..abf1b0f Binary files /dev/null and b/source/documentation/talks/CNS2009Talk.odp differ diff --git a/source/documentation/talks/CNS2009Talk.pdf b/source/documentation/talks/CNS2009Talk.pdf new file mode 100644 index 0000000..faf1eeb Binary files /dev/null and b/source/documentation/talks/CNS2009Talk.pdf differ diff --git a/source/documentation/talks/DLRCologne2009TalkGerman.pdf b/source/documentation/talks/DLRCologne2009TalkGerman.pdf new file mode 100644 index 0000000..512b8b8 Binary files /dev/null and b/source/documentation/talks/DLRCologne2009TalkGerman.pdf differ diff --git a/source/documentation/talks/DLRCologne2009TalkGerman.zip b/source/documentation/talks/DLRCologne2009TalkGerman.zip new file mode 100644 index 0000000..c46bf49 Binary files /dev/null and b/source/documentation/talks/DLRCologne2009TalkGerman.zip differ diff --git a/source/documentation/talks/EuroPython2005MDPTalk.pdf b/source/documentation/talks/EuroPython2005MDPTalk.pdf new file mode 100644 index 0000000..b583a9e Binary files /dev/null and b/source/documentation/talks/EuroPython2005MDPTalk.pdf differ diff --git a/source/documentation/talks/EuroPython2005MDPTalk.sxi b/source/documentation/talks/EuroPython2005MDPTalk.sxi new file mode 100644 index 0000000..9a0346c Binary files /dev/null and b/source/documentation/talks/EuroPython2005MDPTalk.sxi differ diff --git a/source/documentation/talks/EuroPython2006MDPTalk.pdf b/source/documentation/talks/EuroPython2006MDPTalk.pdf new file mode 100644 index 0000000..7c0771e Binary files /dev/null and b/source/documentation/talks/EuroPython2006MDPTalk.pdf differ diff --git a/source/documentation/talks/EuroPython2006MDPTalk.sxi b/source/documentation/talks/EuroPython2006MDPTalk.sxi new file mode 100644 index 0000000..bd514c5 Binary files /dev/null and b/source/documentation/talks/EuroPython2006MDPTalk.sxi differ diff --git a/source/documentation/talks/EuroPython2009MDPTalk.pdf b/source/documentation/talks/EuroPython2009MDPTalk.pdf new file mode 100644 index 0000000..61a6cd3 Binary files /dev/null and b/source/documentation/talks/EuroPython2009MDPTalk.pdf differ diff --git a/source/documentation/talks/EuroPython2009MDPTalk.zip b/source/documentation/talks/EuroPython2009MDPTalk.zip new file mode 100644 index 0000000..fe92ce2 Binary files /dev/null and b/source/documentation/talks/EuroPython2009MDPTalk.zip differ diff --git a/source/documentation/talks/EuroScipy2009Talk.odp b/source/documentation/talks/EuroScipy2009Talk.odp new file mode 100644 index 0000000..c02a399 Binary files /dev/null and b/source/documentation/talks/EuroScipy2009Talk.odp differ diff --git a/source/documentation/talks/EuroScipy2009Talk.pdf b/source/documentation/talks/EuroScipy2009Talk.pdf new file mode 100644 index 0000000..ba65dfe Binary files /dev/null and b/source/documentation/talks/EuroScipy2009Talk.pdf differ diff --git a/source/documentation/talks/EuroScipy2010MDPTalk.pdf b/source/documentation/talks/EuroScipy2010MDPTalk.pdf new file mode 100644 index 0000000..61cdf5f Binary files /dev/null and b/source/documentation/talks/EuroScipy2010MDPTalk.pdf differ diff --git a/source/documentation/talks/EuroScipy2010MDPTalk.zip b/source/documentation/talks/EuroScipy2010MDPTalk.zip new file mode 100644 index 0000000..73d6d31 Binary files /dev/null and b/source/documentation/talks/EuroScipy2010MDPTalk.zip differ diff --git a/source/documentation/talks/MDP_BiNet_TU2009.pdf b/source/documentation/talks/MDP_BiNet_TU2009.pdf new file mode 100644 index 0000000..474d3e7 Binary files /dev/null and b/source/documentation/talks/MDP_BiNet_TU2009.pdf differ diff --git a/source/documentation/talks/MDP_BiNet_TU2009.zip b/source/documentation/talks/MDP_BiNet_TU2009.zip new file mode 100644 index 0000000..3399818 Binary files /dev/null and b/source/documentation/talks/MDP_BiNet_TU2009.zip differ diff --git a/source/documentation/talks/NIPS2008MDPTalk.odp b/source/documentation/talks/NIPS2008MDPTalk.odp new file mode 100644 index 0000000..554d01b Binary files /dev/null and b/source/documentation/talks/NIPS2008MDPTalk.odp differ diff --git a/source/documentation/talks/NIPS2008MDPTalk.pdf b/source/documentation/talks/NIPS2008MDPTalk.pdf new file mode 100644 index 0000000..20d87ca Binary files /dev/null and b/source/documentation/talks/NIPS2008MDPTalk.pdf differ diff --git a/source/documentation/talks/PythonInNeuroscienceSatelliteToEuroscipy2011.pdf b/source/documentation/talks/PythonInNeuroscienceSatelliteToEuroscipy2011.pdf new file mode 100644 index 0000000..51d0c38 Binary files /dev/null and b/source/documentation/talks/PythonInNeuroscienceSatelliteToEuroscipy2011.pdf differ diff --git a/source/documentation/talks/talks.rst b/source/documentation/talks/talks.rst new file mode 100644 index 0000000..bb05e8a --- /dev/null +++ b/source/documentation/talks/talks.rst @@ -0,0 +1,22 @@ +.. _talks: + +===== +Talks +===== + +Talks held about MDP. + +- :download:`Python in Neuroscience 2011 <./PythonInNeuroscienceSatelliteToEuroscipy2011.pdf>`: *Interoperability among + Data Processing Frameworks - Reality or Wishful Thinking?* +- :download:`EuroScipy 2010 <./EuroScipy2010MDPTalk.pdf>`: *MDP: Modular toolkit for Data Processing (and its new features)* +- :download:`EuroScipy 2010 <./EuroScipy2010MDPTalk.pdf>`: *MDP: Modular toolkit for Data Processing (and its new features)* +- :download:`EuroScipy 2009 <./EuroScipy2009Talk.pdf>`: *Modular toolkit for Data Processing a Python data processing framework* +- :download:`EuroPython 2009 <./EuroPython2009MDPTalk.pdf>`: *Modular toolkit for Data Processing (MDP)* +- :download:`CNS 2009 <./CNS2009Talk.pdf>`: *Modular toolkit for Data Processing a Python data processing framework* +- :download:`DLR Cologne 2009 <./DLRCologne2009TalkGerman.pdf>`: *Python in Computational Neuroscience & Modular toolkit for Data Processing (MDP)* +- :download:`INI Bochum 2009 <./Bochum2009TalkPythonMDP.pdf>`: *Python in Computational Neuroscience & Modular toolkit for Data Processing (MDP)* +- :download:`TU Berlin 2009 <./MDP_BiNet_TU2009.pdf>`: *Modular toolkit for Data Processing (MDP)* +- :download:`NIPS 2008 <./NIPS2008MDPTalk.pdf>`: *Modular toolkit for Data Processing a Python data processing framework* +- :download:`Europython 2006 <./EuroPython2006MDPTalk.pdf>`: *Modular toolkit for Data Processing* +- :download:`Europython 2005 <./EuroPython2005MDPTalk.pdf>`: *Modular toolkit for Data Processing* + diff --git a/source/getting_started/install.rst b/source/getting_started/install.rst new file mode 100644 index 0000000..2940a73 --- /dev/null +++ b/source/getting_started/install.rst @@ -0,0 +1,134 @@ +.. _install: + +.. |gE| unicode:: U+2265 + +************ +Installation +************ + +You can install using :ref:`pip`, :ref:`binary packages ` or +from :ref:`source `. + +.. _pip: + +pip (Windows, MacOSX, Linux) +============================ + +MDP is listed in the `Python Package Index `_ and can be +installed with `pip`:: + + pip install MDP + +This is the preferred method of installation if you are using Windows or MacOSX. + +.. _binary_packages: + +Binary packages (Linux/BSD) +=========================== + +.. _python-mdp: http://packages.debian.org/python-mdp + +.. _`sci-mathematics/mdp`: + http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=tree;f=sci-mathematics/mdp + +Debian, Ubuntu and derivatives +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Thanks to Yaroslav Halchenko, users of Debian, Ubuntu and derivatives can +install the `python-mdp`_ package. + +Just type:: + + sudo aptitude install python-mdp + +Gentoo +~~~~~~ +Gentoo users can install the ebuild `sci-mathematics/mdp`_ from the +``science`` overlay. + +Use your favourite package manager or, alternatively:: + + emerge layman + layman -L + layman -a science + emerge sci-mathematics/mdp + +NetBSD +~~~~~~ +Thanks to Kamel Ibn Aziz Derouiche, NetBSD users can install the +`py-mdp `_ from `pkgsrc `_. + + +.. _install_from_source: + +Installation from source +======================== + +Requirements +~~~~~~~~~~~~ +* `Python `_ 2.6/2.7/3.2/3.3/3.4/3.5 +* `Python-Future `_ +* `NumPy `_ |gE| 1.6 + +Download the latest MDP release source archive `here `_. + +If you want to live on the bleeding edge, check out the MDP git repositories. +You can either `browse the repository `_ +or clone the ``mdp-toolkit`` repository with:: + + git clone git://github.com/mdp-toolkit/mdp-toolkit + +and then install as explained below. + + +Installation +~~~~~~~~~~~~ +Unpack the archive file and change to the project directory or change to the +cloned git repository, and type:: + + python setup.py install + +If you want to use MDP without installing it on the system Python path:: + + python setup.py install --prefix=/some_dir_in_PYTHONPATH/ + + + +Optional Libraries +================== +MDP can make use of several additional libraries if they are installed on your +system. They are not required for using MDP, but may give more +functionality. Here a list of optional libraries and the corresponding +additional features in MDP: + +* `SciPy `_ |gE| 0.5.2: Use the fast and + efficient LAPACK wrapper for the symmetrical eigensolver, used + interally by many nodes; use the fast FFT routines in some nodes; + provide the ``Convolution2DNode``, using the fast convolution routines + in SciPy. +* `Parallel Python `_: provide the + parallel python scheduler ``PPScheduler`` in the ``parallel`` + module. +* `LibSVM `_ |gE| 2.91: + provide the ``LibSVMClassifier`` node. +* `joblib `_ |gE| 0.4.3: provide the + ``caching`` extension and the corresponding ``cache`` context + manager. +* `sklearn `_ |gE| 0.6: provide + wrapper nodes to several sklearn algorithms. + +Testing +======= +If you have successfully installed MDP, you can test your installation in a +Python shell as follows:: + + >>> import mdp + >>> mdp.test() + >>> import bimdp + >>> bimdp.test() + +Note that you will need to install `pytest `_ to run the tests. + +If some test fails, please report it to the `mailing list +`_. + +.. include:: license.rst diff --git a/source/getting_started/license.rst b/source/getting_started/license.rst new file mode 100644 index 0000000..de40227 --- /dev/null +++ b/source/getting_started/license.rst @@ -0,0 +1,7 @@ +License +======= + +MDP is distributed under the open source BSD license. + +.. literalinclude:: ../../mdp-toolkit/COPYRIGHT + :encoding: utf-8 diff --git a/source/index.rst b/source/index.rst index 334deae..3517d4a 100644 --- a/source/index.rst +++ b/source/index.rst @@ -1,13 +1,30 @@ +Modular toolkit for Data Processing (MDP) +========================================= + +.. toctree:: + :hidden: + :maxdepth: 4 + :caption: Getting Started + + getting_started/install.rst + +.. toctree:: + :hidden: + :maxdepth: 4 + :caption: Documentation + + documentation/api_documentation/api_documentation.rst + documentation/talks/talks.rst + .. toctree:: :hidden: - :maxdepth: 3 + :maxdepth: 4 + :caption: Reference - install.rst - documentation.rst - how_to_cite_mdp.rst - contact.rst + reference/how_to_cite_mdp.rst + reference/contact.rst -.. admonition:: News +.. Note:: 09.03.2016 MDP 3.5 released! This is a bug-fix release @@ -21,9 +38,7 @@ MDP works equally well in Python 2 and Python 3. All code examples in the documentation are using Python 2 though. - -.. middle-description-string:: .. include:: tutorial/using_mdp_is_as_easy.rst -To learn more about MDP, read through the :ref:`documentation`. +To learn more about MDP, check out the documentation. diff --git a/source/reference/contact.rst b/source/reference/contact.rst new file mode 100644 index 0000000..ef2cc0a --- /dev/null +++ b/source/reference/contact.rst @@ -0,0 +1,13 @@ +.. _contact: + +======= +Contact +======= + +To get in touch with the developers and other users, for comments, +patches, feature requests, support requests, and bug reports post to the +users' `mailing list +`_. + + + diff --git a/source/reference/how_to_cite_mdp.rst b/source/reference/how_to_cite_mdp.rst new file mode 100644 index 0000000..4fc099b --- /dev/null +++ b/source/reference/how_to_cite_mdp.rst @@ -0,0 +1,15 @@ +.. _how_to_cite_mdp: + +*************** +How to cite MDP +*************** + +If you use MDP for scientific purposes, you may want to cite it. This is the +official way to do it: + +Zito, T., Wilbert, N., Wiskott, L., Berkes, P. (2009). +**Modular toolkit for Data Processing (MDP): a Python data processing frame +work**, Front. Neuroinform. (2008) **2**:8. `doi:10.3389/neuro.11.008.2008 `_. + +If your paper gets published, please send us a reference (and even a copy if +you don't mind). diff --git a/source/requirements.txt b/source/requirements.txt new file mode 100644 index 0000000..a53c46a --- /dev/null +++ b/source/requirements.txt @@ -0,0 +1,4 @@ +numpy +scipy +joblib +