diff --git a/bob/pipelines/__init__.py b/bob/pipelines/__init__.py index cb884d2aba42d64a83796a23925f1d31b1678251..3d2a21c9da86d5627a42731680b67eb938d8a959 100644 --- a/bob/pipelines/__init__.py +++ b/bob/pipelines/__init__.py @@ -12,6 +12,7 @@ from .wrappers import ( ) from . import distributed from . import transformers +from . import xarray as xr def __appropriate__(*args): diff --git a/bob/pipelines/sample.py b/bob/pipelines/sample.py index 90056ab4cf41da62d3d29012072bb94ddb5a53e6..3fa76cade0cda3dca0a92f1915fe7bc451e26d07 100644 --- a/bob/pipelines/sample.py +++ b/bob/pipelines/sample.py @@ -6,6 +6,8 @@ import numpy as np import os import h5py +SAMPLE_DATA_ATTRS = ("data", "load", "samples", "_data") + def _copy_attributes(s, d): """Copies attributes from a dictionary to self.""" @@ -13,7 +15,7 @@ def _copy_attributes(s, d): dict( (k, v) for k, v in d.items() - if k not in ("data", "load", "samples", "_data") + if k not in SAMPLE_DATA_ATTRS ) ) diff --git a/bob/pipelines/tests/test_wrappers.py b/bob/pipelines/tests/test_wrappers.py index 0d2ffab4b314f0a291745ee06e387e7fca947f74..789981daf1170e7cbe0ccf4f95431aaa5e3ccdf1 100644 --- a/bob/pipelines/tests/test_wrappers.py +++ b/bob/pipelines/tests/test_wrappers.py @@ -49,16 +49,10 @@ class DummyTransformer(TransformerMixin, BaseEstimator): https://github.com/scikit-learn-contrib/project- template/blob/master/skltemplate/_template.py.""" - def __init__(self, picklable=True, i=None, **kwargs): + def __init__(self, i=None, **kwargs): super().__init__(**kwargs) - self.picklable = picklable self.i = i - if not picklable: - import bob.core - - self.rng = bob.core.random.mt19937() - def fit(self, X, y=None): return self @@ -221,7 +215,7 @@ def _build_estimator(path, i): return transformer -def _build_transformer(path, i, picklable=True): +def _build_transformer(path, i): features_dir = os.path.join(path, f"transformer{i}") estimator = mario.wrap( @@ -288,7 +282,9 @@ def test_checkpoint_fit_transform_pipeline(): transformer = ("1", _build_transformer(d, 1)) pipeline = Pipeline([fitter, transformer]) if dask_enabled: - pipeline = mario.wrap(["dask"], pipeline, fit_tag=[(1, "GPU")], npartitions=1) + pipeline = mario.wrap( + ["dask"], pipeline, fit_tag=[(1, "GPU")], npartitions=1 + ) pipeline = pipeline.fit(samples) tags = mario.dask_tags(pipeline) @@ -331,7 +327,7 @@ def test_checkpoint_fit_transform_pipeline_with_dask_non_pickle(): fitter = ("0", _build_estimator(d, 0)) transformer = ( "1", - _build_transformer(d, 1, picklable=False), + _build_transformer(d, 1), ) pipeline = Pipeline([fitter, transformer]) diff --git a/bob/pipelines/tests/test_xarray.py b/bob/pipelines/tests/test_xarray.py new file mode 100644 index 0000000000000000000000000000000000000000..466ffebe4b2ee6a5461751525ed41caf23d92ce9 --- /dev/null +++ b/bob/pipelines/tests/test_xarray.py @@ -0,0 +1,195 @@ +from sklearn import datasets +from sklearn.decomposition import PCA +from sklearn.discriminant_analysis import LinearDiscriminantAnalysis +from sklearn.linear_model import SGDClassifier +from sklearn.preprocessing import StandardScaler +import bob.pipelines as mario +import dask +import dask_ml.preprocessing, dask_ml.decomposition, dask_ml.wrappers +import numpy as np +import os +import tempfile +import xarray as xr + + +def _build_toy_samples(): + X = np.ones(shape=(10, 5), dtype=int) + samples = [mario.Sample(data, key=str(i)) for i, data in enumerate(X)] + return X, samples + + +def test_samples_to_dataset(): + X, samples = _build_toy_samples() + dataset = mario.xr.samples_to_dataset(samples) + assert dataset.dims == {"sample": X.shape[0], "dim_0": X.shape[1]}, dataset.dims + np.testing.assert_array_equal(dataset["data"], X) + np.testing.assert_array_equal(dataset["key"], [str(i) for i in range(10)]) + + +def _build_iris_dataset(shuffle=False): + + iris = datasets.load_iris() + + X = iris.data + keys = [str(k) for k in range(len(X))] + + samples = [ + mario.Sample(x, target=y, key=k) + for x, y, k in zip(iris.data, iris.target, keys) + ] + meta = xr.DataArray(X[0], dims=("feature",)) + dataset = mario.xr.samples_to_dataset(samples, meta=meta, npartitions=3, shuffle=shuffle) + return dataset + + +def test_dataset_pipeline(): + ds = _build_iris_dataset() + estimator = mario.xr.DatasetPipeline( + [ + PCA(n_components=0.99), + { + "estimator": LinearDiscriminantAnalysis(), + "fit_input": ["data", "target"], + }, + ] + ) + + estimator = estimator.fit(ds) + ds = estimator.decision_function(ds) + ds.compute() + + +def test_dataset_pipeline_with_shapes(): + ds = _build_iris_dataset() + estimator = mario.xr.DatasetPipeline( + [ + {"estimator": PCA(n_components=3), "output_dims": [("feature", 3)]}, + { + "estimator": LinearDiscriminantAnalysis(), + "fit_input": ["data", "target"], + "output_dims": [("probabilities", 3)], + }, + ] + ) + + estimator = estimator.fit(ds) + ds = estimator.decision_function(ds) + ds.compute() + + +def test_dataset_pipeline_with_checkpoints(): + iris_ds = _build_iris_dataset() + with tempfile.TemporaryDirectory() as d: + scaled_features = os.path.join(d, "scaled_features") + scaler_model = os.path.join(d, "scaler.pkl") + pca_model = os.path.join(d, "pca.pkl") + pca_features = os.path.join(d, "pca_features") + lda_model = os.path.join(d, "lda.pkl") + estimator = mario.xr.DatasetPipeline( + [ + { + "estimator": StandardScaler(), + "output_dims": [("feature", None)], + "model_path": scaler_model, + "features_dir": scaled_features, + }, + { + "estimator": PCA(n_components=3), + "output_dims": [("pca_features", 3)], + "model_path": pca_model, + "features_dir": pca_features, + }, + { + "estimator": LinearDiscriminantAnalysis(), + "fit_input": ["data", "target"], + "output_dims": [("probabilities", 3)], + "model_path": lda_model, + }, + ] + ) + + estimator.fit(iris_ds) + ds = estimator.decision_function(iris_ds) + oracle = ds.compute() + + assert os.path.isfile(pca_model) + paths = os.listdir(pca_features) + assert len(paths) == 150, (len(paths), paths) + assert os.path.isfile(lda_model) + for i, path in enumerate( + sorted( + os.listdir(pca_features), + key=lambda p: int(os.path.splitext(os.path.basename(p))[0]), + ) + ): + path = os.path.join(pca_features, path) + assert path.endswith(f"{i}.npy"), path + np.testing.assert_array_equal(np.load(path).shape, (3,)) + + # now this time it should load features + # delete one of the features + os.remove(os.path.join(pca_features, paths[0])) + estimator.fit(iris_ds) + ds = estimator.decision_function(iris_ds) + xr.testing.assert_allclose(ds, oracle) + + +class FailingPCA(PCA): + def transform(self, X): + Xt = super().transform(X) + Xt[::2] = np.nan + return Xt + + +def test_dataset_pipeline_with_failures(): + iris_ds = _build_iris_dataset() + estimator = mario.xr.DatasetPipeline( + [ + dict( + estimator=FailingPCA(n_components=3), output_dims=[("pca_features", 3)] + ), + dict(dataset_map=lambda x: x.persist().dropna("sample")), + dict(estimator=LinearDiscriminantAnalysis(), fit_input=["data", "target"]), + ] + ) + + estimator = estimator.fit(iris_ds) + ds = estimator.decision_function(iris_ds) + ds = ds.compute() + assert ds.dims == {"sample": 75, "c": 3}, ds.dims + + +def test_dataset_pipeline_with_dask_ml(): + + scaler = dask_ml.preprocessing.StandardScaler() + pca = dask_ml.decomposition.PCA(n_components=3, random_state=0) + clf = SGDClassifier(random_state=0, loss='log', penalty='l2', tol=1e-3) + clf = dask_ml.wrappers.Incremental(clf, scoring="accuracy") + + iris_ds = _build_iris_dataset(shuffle=True) + + estimator = mario.xr.DatasetPipeline( + [ + dict( + estimator=scaler, output_dims=[("feature", None)], input_dask_array=True + ), + dict( + estimator=pca, output_dims=[("pca_features", 3)], input_dask_array=True + ), + dict( + estimator=clf, + fit_input=["data", "target"], + output_dims=[], + input_dask_array=True, + fit_kwargs=dict(classes=range(3)), + ), + ] + ) + + with dask.config.set(scheduler="synchronous"): + estimator = estimator.fit(iris_ds) + ds = estimator.predict(iris_ds) + ds = ds.compute() + correct_classification = np.asarray(ds.data == ds.target).sum() + assert correct_classification > 90, correct_classification + assert ds.dims == {"sample": 150}, ds.dims diff --git a/bob/pipelines/transformers/__init__.py b/bob/pipelines/transformers/__init__.py index 06546b95f4f23d93406035b52ba87927c6c68341..9a5cafda648e00dbf574a6656d46d96a08fb77c3 100644 --- a/bob/pipelines/transformers/__init__.py +++ b/bob/pipelines/transformers/__init__.py @@ -5,3 +5,36 @@ from .function import ( CheckpointSampleFunctionTransformer, StatelessPipeline, ) + + +def __appropriate__(*args): + """Says object was actually declared here, and not in the import module. + Fixing sphinx warnings of not being able to find classes, when path is + shortened. + + Parameters + ---------- + *args + The objects that you want sphinx to beleive that are defined here. + + Resolves `Sphinx referencing issues ` + """ + + for obj in args: + obj.__module__ = __name__ + + +__appropriate__( + Linearize, + SampleLinearize, + CheckpointSampleLinearize, + CheckpointSamplePCA, + SamplePCA, + SampleFunctionTransformer, + CheckpointSampleFunctionTransformer, + StatelessPipeline, +) + +# gets sphinx autodoc done right - don't remove it +__all__ = [_ for _ in dir() if not _.startswith("_")] diff --git a/bob/pipelines/transformers/function.py b/bob/pipelines/transformers/function.py index 30beed1400374d5cf3944f2fa7b2e25a3531a49c..eb1b4efb824162f012a7772f7be42fc913ead476 100644 --- a/bob/pipelines/transformers/function.py +++ b/bob/pipelines/transformers/function.py @@ -25,4 +25,5 @@ class StatelessPipeline(Pipeline): return {"stateless": True, "requires_fit": False} def fit(self, X, y=None, **fit_params): + """Does nothing""" return self diff --git a/bob/pipelines/xarray.py b/bob/pipelines/xarray.py new file mode 100644 index 0000000000000000000000000000000000000000..0cf7cbe843965326b81e952b123b11f0069e8f1c --- /dev/null +++ b/bob/pipelines/xarray.py @@ -0,0 +1,478 @@ +from .sample import SAMPLE_DATA_ATTRS, _ReprMixin +from .utils import is_estimator_stateless +from functools import partial +from sklearn.base import BaseEstimator +from sklearn.pipeline import _name_estimators +from sklearn.utils.metaestimators import _BaseComposition +import cloudpickle +import dask +import logging +import numpy as np +import os +import random +import string +import xarray as xr + +logger = logging.getLogger(__name__) + + +def _one_sample_to_dataset(sample, meta=None): + dataset = {k: v for k, v in sample.__dict__.items() if k not in SAMPLE_DATA_ATTRS} + if meta is None: + meta = sample.data + dataset["data"] = dask.array.from_delayed( + dask.delayed(sample).data, meta.shape, dtype=meta.dtype, name=False + ) + try: + dims = meta.dims + except Exception: + dims = None + + dataset["data"] = xr.DataArray(dataset["data"], dims=dims) + return xr.Dataset(dataset).chunk() + + +def samples_to_dataset(samples, meta=None, npartitions=48, shuffle=False): + """Converts a list of samples to a dataset. + + See :ref:`bob.pipelines.dataset_pipeline`. + + Parameters + ---------- + samples : list + A list of :any:`Sample` or :any:`DelayedSample` objects. + meta : ``xarray.DataArray``, optional + An xarray.DataArray to be used as a template for data inside samples. + npartitions : :obj:`int`, optional + The number of partitions to partition the samples. + shuffle : :obj:`bool`, optional + If True, shuffles the samples (in-place) before constructing the dataset. + + Returns + ------- + ``xarray.Dataset`` + The constructed dataset with at least a ``data`` variable. + """ + if meta is None: + dataset = _one_sample_to_dataset(samples[0]) + meta = dataset["data"] + if shuffle: + random.shuffle(samples) + dataset = xr.concat( + [_one_sample_to_dataset(s, meta=meta) for s in samples], dim="sample" + ) + if npartitions is not None: + dataset = dataset.chunk({"sample": max(1, len(samples) // npartitions)}) + return dataset + + +class Block(_ReprMixin): + """A block representation in a graph. + This class is meant to be used with :any:`DatasetPipeline`. + + Attributes + ---------- + dataset_map : ``callable`` + A callable that transforms the input dataset into another dataset. + estimator : object + A scikit-learn estimator + estimator_name : str + Name of the estimator + extension : str + The extension of checkpointed features. + features_dir : str + The directory to save the features. + fit_input : str or list + A str or list of str of column names of the dataset to be given to the ``.fit`` + method. + fit_kwargs : None or dict + A dict of ``fit_kwargs`` to be passed to the ``.fit`` method of the estimator. + input_dask_array : bool + Whether the estimator takes dask arrays in its fit method or not. + load_func : ``callable`` + A function to save the features. Defaults to ``np.load``. + model_path : str or None + If given, the estimator will be pickled here. + output_dims : list + A list of ``(dim_name, dim_size)`` tuples. If ``dim_name`` is ``None``, a new + name is automatically generated, otherwise it should be a string. ``dim_size`` + should be a positive integer or nan for new dimensions or ``None`` for existing + dimensions. + output_dtype : object + The dtype of the output of the transformer. Defaults to ``float``. + save_func : ``callable`` + A function to save the features. Defaults to ``np.save`` with ``allow_pickle`` + set to ``False``. + transform_input : str or list + A str or list of str of column names of the dataset to be given to the + ``.transform`` method. + """ + + def __init__( + self, + estimator=None, + output_dtype=float, + output_dims=((None, np.nan),), + fit_input="data", + transform_input="data", + estimator_name=None, + model_path=None, + features_dir=None, + extension=".npy", + save_func=None, + load_func=None, + dataset_map=None, + input_dask_array=False, + fit_kwargs=None, + **kwargs, + ): + super().__init__(**kwargs) + self.estimator = estimator + self.output_dtype = output_dtype + if not all(len(d) == 2 for d in output_dims): + raise ValueError( + "output_dims must be an iterable of size 2 tuples " + f"(dim_name, dim_size), not {output_dims}" + ) + self.output_dims = output_dims + self.fit_input = fit_input + self.transform_input = transform_input + if estimator_name is None: + estimator_name = _name_estimators([estimator])[0][0] + self.estimator_name = estimator_name + self.model_path = model_path + self.features_dir = features_dir + self.extension = extension + self.save_func = save_func or partial(np.save, allow_pickle=False) + self.load_func = load_func or np.load + self.dataset_map = dataset_map + self.input_dask_array = input_dask_array + self.fit_kwargs = fit_kwargs or {} + + def __getitem__(self, key): + return getattr(self, key) + + def __setitem__(self, key, value): + setattr(self, key, value) + + @property + def output_ndim(self): + return len(self.output_dims) + 1 + + def make_path(self, key): + key = str(key) + if key.startswith(os.sep) or ".." in key: + raise ValueError( + "Sample.key values should be relative paths with no " + f"reference to upper folders. Got: {key}" + ) + return os.path.join(self.features_dir, key + self.extension) + + def save(self, key, data): + path = self.make_path(key) + os.makedirs(os.path.dirname(path), exist_ok=True) + # this should be save_func(path, data) so it's compatible with np.save + return self.save_func(path, data) + + def load(self, key): + path = self.make_path(key) + return self.load_func(path) + + +def _fit(*args, block): + logger.info(f"Calling {block.estimator_name}.fit") + block.estimator.fit(*args, **block.fit_kwargs) + if block.model_path is not None: + logger.info(f"Saving {block.estimator_name} in {block.model_path}") + os.makedirs(os.path.dirname(block.model_path), exist_ok=True) + with open(block.model_path, "wb") as f: + cloudpickle.dump(block.estimator, f) + return block.estimator + + +class _TokenStableTransform: + def __init__(self, block, method_name=None, **kwargs): + super().__init__(**kwargs) + self.block = block + self.method_name = method_name or "transform" + + def __dask_tokenize__(self): + return (self.method_name, self.block.features_dir) + + def __call__(self, *args, estimator): + data = args[0] + block, method_name = self.block, self.method_name + logger.info(f"Calling {block.estimator_name}.{method_name}") + + features = getattr(estimator, self.method_name)(data) + + # if keys are provided, checkpoint features + if len(args) == 2: + key = args[1] + + l1, l2 = len(data), len(features) + if l1 != l2: + raise ValueError(f"Got {l2} features from processing {l1} samples!") + + # save computed_features + logger.info(f"Saving {l2} features in {block.features_dir}") + for feat, k in zip(features, key): + block.save(k, feat) + + return features + + +def _populate_graph(graph): + new_graph = [] + for block in graph: + if isinstance(block, BaseEstimator): + block = {"estimator": block} + if isinstance(block, dict): + block = Block(**block) + new_graph.append(block) + return new_graph + + +def _get_dask_args_from_ds(ds, columns): + if isinstance(columns, str): + args = [(ds[columns].data, ds[columns].dims)] + else: + args = [] + for c in columns: + args.extend(_get_dask_args_from_ds(ds, c)) + args = tuple(args) + return args + + +def _blockwise_with_block_args(args, block, method_name=None): + + meta = [] + for _ in range(1, block.output_ndim): + meta = [meta] + meta = np.array(meta, dtype=block.output_dtype) + + ascii_letters = list(string.ascii_lowercase) + dim_map = {} + + input_arg_pairs = [] + for array, dims in args: + dim_name = [] + for dim, dim_size in zip(dims, array.shape): + if dim not in dim_map: + dim_map[dim] = (ascii_letters.pop(0), dim_size) + dim_name.append(dim_map[dim][0]) + input_arg_pairs.extend((array, "".join(dim_name))) + + # the sample dimension is always kept the same + output_dim_name = f"{input_arg_pairs[1][0]}" + new_axes = dict() + for dim_name, dim_size in block.output_dims: + if dim_name in dim_map: + output_dim_name += dim_map[dim_name][0] + else: + try: + dim_size = float(dim_size) + except Exception: + raise ValueError( + "Expected a float dim_size (positive integers or nan) for new " + f"dimension: {dim_name} but got: {dim_size}" + ) + + new_letter = ascii_letters.pop(0) + if dim_name is None: + dim_name = new_letter + dim_map[dim_name] = (new_letter, dim_size) + output_dim_name += new_letter + new_axes[new_letter] = dim_size + + dims = [] + inv_map = {v[0]: k for k, v in dim_map.items()} + for dim_name in output_dim_name: + dims.append(inv_map[dim_name]) + + output_shape = [dim_map[d][1] for d in dims] + + return output_dim_name, new_axes, input_arg_pairs, dims, meta, output_shape + + +def _blockwise_with_block(args, block, method_name=None): + ( + output_dim_name, + new_axes, + input_arg_pairs, + dims, + meta, + _, + ) = _blockwise_with_block_args(args, block, method_name=None) + transform_func = _TokenStableTransform(block, method_name) + transform_func.__name__ = f"{block.estimator_name}.{method_name}" + + data = dask.array.blockwise( + transform_func, + output_dim_name, + *input_arg_pairs, + meta=meta, + new_axes=new_axes, + concatenate=True, + estimator=block.estimator_, + ) + + return dims, data + + +def _load_estimator(block): + logger.info(f"Loading {block.estimator_name} from {block.model_path}") + with open(block.model_path, "rb") as f: + block.estimator = cloudpickle.load(f) + return block.estimator + + +def _transform_or_load(block, ds, input_columns, mn): + if isinstance(input_columns, str): + input_columns = [input_columns] + input_columns = list(input_columns) + ["key"] + + # filter dataset based on existing checkpoints + key = np.asarray(ds["key"]) + paths = [block.make_path(k) for k in key] + saved_samples = np.asarray([os.path.isfile(p) for p in paths]) + # compute/load features per chunk + chunksize = ds.data.data.chunksize[0] + for i in range(0, len(saved_samples), chunksize): + if not np.all(saved_samples[i : i + chunksize]): + saved_samples[i : i + chunksize] = False + + nonsaved_samples = np.logical_not(saved_samples) + total_samples_n, saved_samples_n = len(key), saved_samples.sum() + saved_ds = ds.sel({"sample": saved_samples}) + nonsaved_ds = ds.sel({"sample": nonsaved_samples}) + + computed_data = loaded_data = None + # compute non-saved data + if total_samples_n - saved_samples_n > 0: + args = _get_dask_args_from_ds(nonsaved_ds, input_columns) + dims, computed_data = _blockwise_with_block(args, block, mn) + + # load saved data + if saved_samples_n > 0: + logger.info( + f"Might load {saved_samples_n} features of {block.estimator_name}.{mn} from disk." + ) + args = _get_dask_args_from_ds(saved_ds, input_columns) + dims, meta, shape = _blockwise_with_block_args(args, block, mn)[-3:] + loaded_data = [ + dask.array.from_delayed( + dask.delayed(block.load)(k), shape=shape[1:], meta=meta, name=False, + )[None, ...] + for k in key[saved_samples] + ] + loaded_data = dask.array.concatenate(loaded_data, axis=0) + + # merge loaded and computed data + if computed_data is None: + data = loaded_data + elif loaded_data is None: + data = computed_data + else: + # merge data chunk-based + data = [] + i, j = 0, 0 + for k in range(0, len(saved_samples), chunksize): + saved = saved_samples[k] + if saved: + pick = loaded_data[j : j + chunksize] + j += chunksize + else: + pick = computed_data[i : i + chunksize] + i += chunksize + data.append(pick) + data = dask.array.concatenate(data, axis=0) + + data = dask.array.rechunk(data, {0: chunksize}) + return dims, data + + +class DatasetPipeline(_BaseComposition): + """A dataset-based scikit-learn pipeline. + See :ref:`bob.pipelines.dataset_pipeline`. + + Attributes + ---------- + graph : list + A list of :any:`Block`'s to be applied on input dataset. + """ + + def __init__(self, graph, **kwargs): + super().__init__(**kwargs) + self.graph = _populate_graph(graph) + + def _transform(self, ds, do_fit=False, method_name=None): + for i, block in enumerate(self.graph): + if block.dataset_map is not None: + ds = block.dataset_map(ds) + continue + + if do_fit: + args = _get_dask_args_from_ds(ds, block.fit_input) + args = [d for d, dims in args] + estimator = block.estimator + if is_estimator_stateless(estimator): + block.estimator_ = estimator + elif block.model_path is not None and os.path.isfile(block.model_path): + _load_estimator.__name__ = f"load_{block.estimator_name}" + block.estimator_ = dask.delayed(_load_estimator)(block) + elif block.input_dask_array: + ds = ds.persist() + args = _get_dask_args_from_ds(ds, block.fit_input) + args = [d for d, dims in args] + block.estimator_ = _fit(*args, block=block) + else: + _fit.__name__ = f"{block.estimator_name}.fit" + block.estimator_ = dask.delayed(_fit)(*args, block=block,) + + mn = "transform" + if i == len(self.graph) - 1: + if do_fit: + break + mn = method_name + + if block.features_dir is None: + args = _get_dask_args_from_ds(ds, block.transform_input) + dims, data = _blockwise_with_block(args, block, mn) + else: + dims, data = _transform_or_load(block, ds, block.transform_input, mn) + + # replace data inside dataset + ds = ds.copy(deep=False) + del ds["data"] + persisted = False + if not np.all(np.isfinite(data.shape)): + block.estimator_, data = dask.persist(block.estimator_, data) + data = data.compute_chunk_sizes() + persisted = True + ds["data"] = (dims, data) + if persisted: + ds = ds.persist() + + return ds + + def fit(self, ds, y=None): + if y is not None: + raise ValueError() + self._transform(ds, do_fit=True) + return self + + def transform(self, ds): + return self._transform(ds, method_name="transform") + + def decision_function(self, ds): + return self._transform(ds, method_name="decision_function") + + def predict(self, ds): + return self._transform(ds, method_name="predict") + + def predict_proba(self, ds): + return self._transform(ds, method_name="predict_proba") + + def score(self, ds): + return self._transform(ds, method_name="score") diff --git a/conda/meta.yaml b/conda/meta.yaml index fbad296b3494437eb1af1526188a1e57a9fe9e89..5b1c668f4096aef97f600504f63a6111c8a3d980 100644 --- a/conda/meta.yaml +++ b/conda/meta.yaml @@ -21,22 +21,34 @@ build: - cp -R README.rst requirements.txt doc "${PREFIX}/share/doc/{{ name }}/" requirements: - # place your build dependencies before the 'host' section host: - - python {{ python }} - - setuptools {{ setuptools }} - - numpy {{ numpy }} + - python + - setuptools + # bob dependencies - bob.extension - bob.io.base + # other libraries + - numpy {{ numpy }} + - dask {{ dask }} + - dask-jobqueue {{ dask_jobqueue }} + - distributed {{ distributed }} + - scikit-learn {{ scikit_learn }} + - xarray {{ xarray }} + # test requirements + - dask-ml {{ dask_ml }} + - h5py {{h5py}} run: - python - setuptools - - numpy - - dask - - dask-jobqueue - - distributed - - scikit-learn - - h5py + - {{ pin_compatible('numpy') }} + - {{ pin_compatible('dask') }} + - {{ pin_compatible('dask-jobqueue') }} + - {{ pin_compatible('distributed') }} + - {{ pin_compatible('scikit-learn') }} + - {{ pin_compatible('xarray') }} + - {{ pin_compatible('h5py') }} + run_constrained: + - {{ pin_compatible('dask-ml') }} test: imports: @@ -53,9 +65,10 @@ test: - coverage - sphinx - sphinx_rtd_theme + - dask-ml about: - summary: bob.pipelines + summary: Tools to build robust and extensible pipelines home: https://www.idiap.ch/software/bob/ license: BSD 3-Clause license_family: BSD diff --git a/doc/_static/copybutton.js b/doc/_static/copybutton.js new file mode 100644 index 0000000000000000000000000000000000000000..ea7e81fb7a4819bdc356210387d463bd698e196c --- /dev/null +++ b/doc/_static/copybutton.js @@ -0,0 +1,65 @@ +$(document).ready(function() { + /* Add a [>>>] button on the top-right corner of code samples to hide + * the >>> and ... prompts and the output and thus make the code + * copyable. */ + var div = $('.highlight-python .highlight,' + + '.highlight-python3 .highlight,' + + '.highlight-pycon .highlight,' + + '.highlight-pycon3 .highlight,' + + '.highlight-default .highlight'); + var pre = div.find('pre'); + + // get the styles from the current theme + pre.parent().parent().css('position', 'relative'); + var hide_text = 'Hide the prompts and output'; + var show_text = 'Show the prompts and output'; + var border_width = pre.css('border-top-width'); + var border_style = pre.css('border-top-style'); + var border_color = pre.css('border-top-color'); + var button_styles = { + 'cursor':'pointer', 'position': 'absolute', 'top': '0', 'right': '0', + 'border-color': border_color, 'border-style': border_style, + 'border-width': border_width, 'color': border_color, 'text-size': '75%', + 'font-family': 'monospace', 'padding-left': '0.2em', 'padding-right': '0.2em', + 'border-radius': '0 3px 0 0' + } + + // create and add the button to all the code blocks that contain >>> + div.each(function(index) { + var jthis = $(this); + if (jthis.find('.gp').length > 0) { + var button = $('>>>'); + button.css(button_styles) + button.attr('title', hide_text); + button.data('hidden', 'false'); + jthis.prepend(button); + } + // tracebacks (.gt) contain bare text elements that need to be + // wrapped in a span to work with .nextUntil() (see later) + jthis.find('pre:has(.gt)').contents().filter(function() { + return ((this.nodeType == 3) && (this.data.trim().length > 0)); + }).wrap(''); + }); + + // define the behavior of the button when it's clicked + $('.copybutton').click(function(e){ + e.preventDefault(); + var button = $(this); + if (button.data('hidden') === 'false') { + // hide the code output + button.parent().find('.go, .gp, .gt').hide(); + button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'hidden'); + button.css('text-decoration', 'line-through'); + button.attr('title', show_text); + button.data('hidden', 'true'); + } else { + // show the code output + button.parent().find('.go, .gp, .gt').show(); + button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'visible'); + button.css('text-decoration', 'none'); + button.attr('title', hide_text); + button.data('hidden', 'false'); + } + }); +}); + diff --git a/doc/checkpoint.rst b/doc/checkpoint.rst index 3f0d58ae83e2ee7d10d3bef5230ba30e77f66c45..2f3ed31527dea1cf1426bcfdffbf94afbe26e0f8 100644 --- a/doc/checkpoint.rst +++ b/doc/checkpoint.rst @@ -1,6 +1,5 @@ .. _bob.pipelines.checkpoint: -============= Checkpointing ============= diff --git a/doc/conf.py b/doc/conf.py index 9e1f08bcf665fbbf031d5559648cbdc0ef699a44..0e4e8064239bf9b1aa0972c30d292ca0ef70722c 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -159,7 +159,7 @@ html_favicon = "img/bob-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 = ['_static'] +html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. @@ -236,3 +236,9 @@ if os.path.exists(sphinx_requirements): ) else: intersphinx_mapping = link_documentation() + +def setup(app): + # Add `>>>` button to toggle visibility of prompts in code blocks. + # see https://github.com/readthedocs/sphinx_rtd_theme/issues/167 and + # https://raw.githubusercontent.com/python/python-docs-theme/master/python_docs_theme/static/copybutton.js + app.add_javascript('copybutton.js') diff --git a/doc/dask.rst b/doc/dask.rst index 8a1d76f272bb32acfa4e6d5ab7b02baeb17e1c70..31863ac6c662491b933abbd76f20e2ae1a70c82e 100644 --- a/doc/dask.rst +++ b/doc/dask.rst @@ -1,8 +1,7 @@ .. _bob.pipelines.dask: -======================================== - Dask: Scale your scikit.learn pipelines -======================================== +Dask: Scale your scikit.learn pipelines +======================================= `Dask `_ is a flexible library for parallel computing in Python. @@ -97,7 +96,7 @@ For this reason the generic SGE laucher was extended to this one :any:`bob.pipel Launching jobs in different SGE queues -====================================== +-------------------------------------- SGE queue specs are defined in python dictionary as in the example below, where, the root keys are the labels of the SGE queue and the other inner keys represents: @@ -147,7 +146,7 @@ Now that the queue specifications are set, let's trigger some jobs. Running estimator operations in specific SGE queues -=================================================== +--------------------------------------------------- Sometimes it's necessary to run parts of a :doc:`pipeline ` in specific SGE queues (e.g. q_1day IO_BIG or q_gpu). The example below shows how this is approached (lines 78 to 88). @@ -161,7 +160,7 @@ In this example, the `fit` method of `MyBoostedFitTransformer` runs on `q_gpu` Adaptive SGE: Scale up/down SGE cluster according to the graph complexity -========================================================================= +------------------------------------------------------------------------- One note about the code from the last section. Every time` cluster.scale` is executed to increase the amount of available SGE jobs to run a :doc:`dask graph `, such resources will be available until the end of its execution. diff --git a/doc/img/xarray-checkpoint-graph.svg b/doc/img/xarray-checkpoint-graph.svg new file mode 100644 index 0000000000000000000000000000000000000000..34a6905968e790622c3d8672d8bd5029d67c6b9c --- /dev/null +++ b/doc/img/xarray-checkpoint-graph.svg @@ -0,0 +1,10824 @@ + + + + + + +%3 + + + +-5744670194960972216 + +lineardiscriminantanalysis.decision_function + + + +9172294205089577063 + +(0, 0) + + + +-5744670194960972216->9172294205089577063 + + + + + +-3701321526255812466 + +(0, 0) + + + +-3701321526255812466->-5744670194960972216 + + + + + +-1384364058066739274 + + + + +-1384364058066739274->-5744670194960972216 + + + + + +-5585134889783386351 + +lineardiscriminantanalysis.decision_function + + + +-1384364058066739274->-5585134889783386351 + + + + + +-503046691683495558 + +lineardiscriminantanalysis.decision_function + + + +-1384364058066739274->-503046691683495558 + + + + + +9172295466286575886 + +(1, 0) + + + +-5585134889783386351->9172295466286575886 + + + + + +-3701322787452811289 + +(1, 0) + + + +-3701322787452811289->-5585134889783386351 + + + + + +9172296727483574709 + +(2, 0) + + + +-503046691683495558->9172296727483574709 + + + + + +-3701319003861814820 + +(2, 0) + + + +-3701319003861814820->-503046691683495558 + + + + + +-3631604926318509167 + +rechunk-merge + + + +-3631604926318509167->-3701321526255812466 + + + + + +-815202425143198847 + +(44, 0) + + + +-815202425143198847->-3631604926318509167 + + + + + +-815173417612225918 + +(7, 0) + + + +-815173417612225918->-3631604926318509167 + + + + + +-815144410081252989 + +(30, 0) + + + +-815144410081252989->-3631604926318509167 + + + + + +-815160805642237688 + +(13, 0) + + + +-815160805642237688->-3631604926318509167 + + + + + +-815206208734195316 + +(33, 0) + + + +-815206208734195316->-3631604926318509167 + + + + + +-815148193672249458 + +(19, 0) + + + +-815148193672249458->-3631604926318509167 + + + + + +-815164589233234157 + +(14, 0) + + + +-815164589233234157->-3631604926318509167 + + + + + +-815135581702261228 + +(25, 0) + + + +-815135581702261228->-3631604926318509167 + + + + + +-815209992325191785 + +(34, 0) + + + +-815209992325191785->-3631604926318509167 + + + + + +-815151977263245927 + +(20, 0) + + + +-815151977263245927->-3631604926318509167 + + + + + +-815197380355203555 + +(40, 0) + + + +-815197380355203555->-3631604926318509167 + + + + + +-815168372824230626 + +(3, 0) + + + +-815168372824230626->-3631604926318509167 + + + + + +-815139365293257697 + +(26, 0) + + + +-815139365293257697->-3631604926318509167 + + + + + +-815213775916188254 + +(39, 0) + + + +-815213775916188254->-3631604926318509167 + + + + + +-815155760854242396 + +(9, 0) + + + +-815155760854242396->-3631604926318509167 + + + + + +-815201163946200024 + +(45, 0) + + + +-815201163946200024->-3631604926318509167 + + + + + +-815172156415227095 + +(4, 0) + + + +-815172156415227095->-3631604926318509167 + + + + + +-815143148884254166 + +(31, 0) + + + +-815143148884254166->-3631604926318509167 + + + + + +-815159544445238865 + +(10, 0) + + + +-815159544445238865->-3631604926318509167 + + + + + +-815204947537196493 + +(46, 0) + + + +-815204947537196493->-3631604926318509167 + + + + + +-815146932475250635 + +(16, 0) + + + +-815146932475250635->-3631604926318509167 + + + + + +-815163328036235334 + +(15, 0) + + + +-815163328036235334->-3631604926318509167 + + + + + +-815208731128192962 + +(35, 0) + + + +-815208731128192962->-3631604926318509167 + + + + + +-815150716066247104 + +(21, 0) + + + +-815150716066247104->-3631604926318509167 + + + + + +-815196119158204732 + +(41, 0) + + + +-815196119158204732->-3631604926318509167 + + + + + +-815167111627231803 + +(0, 0) + + + +-815167111627231803->-3631604926318509167 + + + + + +-815138104096258874 + +(27, 0) + + + +-815138104096258874->-3631604926318509167 + + + + + +-815212514719189431 + +(36, 0) + + + +-815212514719189431->-3631604926318509167 + + + + + +-815154499657243573 + +(22, 0) + + + +-815154499657243573->-3631604926318509167 + + + + + +-815199902749201201 + +(42, 0) + + + +-815199902749201201->-3631604926318509167 + + + + + +-815170895218228272 + +(5, 0) + + + +-815170895218228272->-3631604926318509167 + + + + + +-815141887687255343 + +(28, 0) + + + +-815141887687255343->-3631604926318509167 + + + + + +-815187290779212971 + +(48, 0) + + + +-815187290779212971->-3631604926318509167 + + + + + +-815158283248240042 + +(11, 0) + + + +-815158283248240042->-3631604926318509167 + + + + + +-815203686340197670 + +(47, 0) + + + +-815203686340197670->-3631604926318509167 + + + + + +-815174678809224741 + +(6, 0) + + + +-815174678809224741->-3631604926318509167 + + + + + +-815145671278251812 + +(17, 0) + + + +-815145671278251812->-3631604926318509167 + + + + + +-815162066839236511 + +(12, 0) + + + +-815162066839236511->-3631604926318509167 + + + + + +-815207469931194139 + +(32, 0) + + + +-815207469931194139->-3631604926318509167 + + + + + +-815149454869248281 + +(18, 0) + + + +-815149454869248281->-3631604926318509167 + + + + + +-815165850430232980 + +(1, 0) + + + +-815165850430232980->-3631604926318509167 + + + + + +-815136842899260051 + +(24, 0) + + + +-815136842899260051->-3631604926318509167 + + + + + +-815211253522190608 + +(37, 0) + + + +-815211253522190608->-3631604926318509167 + + + + + +-815153238460244750 + +(23, 0) + + + +-815153238460244750->-3631604926318509167 + + + + + +-815198641552202378 + +(43, 0) + + + +-815198641552202378->-3631604926318509167 + + + + + +-815169634021229449 + +(2, 0) + + + +-815169634021229449->-3631604926318509167 + + + + + +-815140626490256520 + +(29, 0) + + + +-815140626490256520->-3631604926318509167 + + + + + +-815215037113187077 + +(38, 0) + + + +-815215037113187077->-3631604926318509167 + + + + + +-815186029582214148 + +(49, 0) + + + +-815186029582214148->-3631604926318509167 + + + + + +-815157022051241219 + +(8, 0) + + + +-815157022051241219->-3631604926318509167 + + + + + +-1489806047314151736 + +rechunk-merge + + + +-1489806047314151736->-3701322787452811289 + + + + + +-815069999458322432 + +(85, 0) + + + +-815069999458322432->-1489806047314151736 + + + + + +-815086395019307131 + +(64, 0) + + + +-815086395019307131->-1489806047314151736 + + + + + +-815057387488334202 + +(91, 0) + + + +-815057387488334202->-1489806047314151736 + + + + + +-815189813173210617 + +(50, 0) + + + +-815189813173210617->-1489806047314151736 + + + + + +-815073783049318901 + +(86, 0) + + + +-815073783049318901->-1489806047314151736 + + + + + +-815177201203222387 + +(56, 0) + + + +-815177201203222387->-1489806047314151736 + + + + + +-815090178610303600 + +(69, 0) + + + +-815090178610303600->-1489806047314151736 + + + + + +-815061171079330671 + +(92, 0) + + + +-815061171079330671->-1489806047314151736 + + + + + +-815193596764207086 + +(55, 0) + + + +-815193596764207086->-1489806047314151736 + + + + + +-815077566640315370 + +(75, 0) + + + +-815077566640315370->-1489806047314151736 + + + + + +-815180984794218856 + +(61, 0) + + + +-815180984794218856->-1489806047314151736 + + + + + +-815093962201300069 + +(70, 0) + + + +-815093962201300069->-1489806047314151736 + + + + + +-815064954670327140 + +(81, 0) + + + +-815064954670327140->-1489806047314151736 + + + + + +-815081350231311839 + +(76, 0) + + + +-815081350231311839->-1489806047314151736 + + + + + +-815184768385215325 + +(62, 0) + + + +-815184768385215325->-1489806047314151736 + + + + + +-815126753323269467 + +(96, 0) + + + +-815126753323269467->-1489806047314151736 + + + + + +-815068738261323609 + +(82, 0) + + + +-815068738261323609->-1489806047314151736 + + + + + +-815085133822308308 + +(65, 0) + + + +-815085133822308308->-1489806047314151736 + + + + + +-815056126291335379 + +(88, 0) + + + +-815056126291335379->-1489806047314151736 + + + + + +-815188551976211794 + +(51, 0) + + + +-815188551976211794->-1489806047314151736 + + + + + +-815072521852320078 + +(87, 0) + + + +-815072521852320078->-1489806047314151736 + + + + + +-815175940006223564 + +(57, 0) + + + +-815175940006223564->-1489806047314151736 + + + + + +-815088917413304777 + +(66, 0) + + + +-815088917413304777->-1489806047314151736 + + + + + +-815059909882331848 + +(93, 0) + + + +-815059909882331848->-1489806047314151736 + + + + + +-815192335567208263 + +(52, 0) + + + +-815192335567208263->-1489806047314151736 + + + + + +-815076305443316547 + +(72, 0) + + + +-815076305443316547->-1489806047314151736 + + + + + +-815179723597220033 + +(58, 0) + + + +-815179723597220033->-1489806047314151736 + + + + + +-815092701004301246 + +(71, 0) + + + +-815092701004301246->-1489806047314151736 + + + + + +-815063693473328317 + +(94, 0) + + + +-815063693473328317->-1489806047314151736 + + + + + +-815080089034313016 + +(77, 0) + + + +-815080089034313016->-1489806047314151736 + + + + + +-815183507188216502 + +(63, 0) + + + +-815183507188216502->-1489806047314151736 + + + + + +-815125492126270644 + +(97, 0) + + + +-815125492126270644->-1489806047314151736 + + + + + +-815067477064324786 + +(83, 0) + + + +-815067477064324786->-1489806047314151736 + + + + + +-815083872625309485 + +(78, 0) + + + +-815083872625309485->-1489806047314151736 + + + + + +-815054865094336556 + +(89, 0) + + + +-815054865094336556->-1489806047314151736 + + + + + +-815129275717267113 + +(98, 0) + + + +-815129275717267113->-1489806047314151736 + + + + + +-815071260655321255 + +(84, 0) + + + +-815071260655321255->-1489806047314151736 + + + + + +-815087656216305954 + +(67, 0) + + + +-815087656216305954->-1489806047314151736 + + + + + +-815058648685333025 + +(90, 0) + + + +-815058648685333025->-1489806047314151736 + + + + + +-815191074370209440 + +(53, 0) + + + +-815191074370209440->-1489806047314151736 + + + + + +-815075044246317724 + +(73, 0) + + + +-815075044246317724->-1489806047314151736 + + + + + +-815178462400221210 + +(59, 0) + + + +-815178462400221210->-1489806047314151736 + + + + + +-815091439807302423 + +(68, 0) + + + +-815091439807302423->-1489806047314151736 + + + + + +-815062432276329494 + +(95, 0) + + + +-815062432276329494->-1489806047314151736 + + + + + +-815194857961205909 + +(54, 0) + + + +-815194857961205909->-1489806047314151736 + + + + + +-815078827837314193 + +(74, 0) + + + +-815078827837314193->-1489806047314151736 + + + + + +-815182245991217679 + +(60, 0) + + + +-815182245991217679->-1489806047314151736 + + + + + +-815066215867325963 + +(80, 0) + + + +-815066215867325963->-1489806047314151736 + + + + + +-815082611428310662 + +(79, 0) + + + +-815082611428310662->-1489806047314151736 + + + + + +-815128014520268290 + +(99, 0) + + + +-815128014520268290->-1489806047314151736 + + + + + +-1322796727081384325 + +rechunk-merge + + + +-1322796727081384325->-3701319003861814820 + + + + + +-815011984396376574 + +(135, 0) + + + +-815011984396376574->-1322796727081384325 + + + + + +-815115402550280060 + +(105, 0) + + + +-815115402550280060->-1322796727081384325 + + + + + +-814999372426388344 + +(141, 0) + + + +-814999372426388344->-1322796727081384325 + + + + + +-815131798111264759 + +(100, 0) + + + +-815131798111264759->-1322796727081384325 + + + + + +-815102790580291830 + +(127, 0) + + + +-815102790580291830->-1322796727081384325 + + + + + +-814986760456400114 + +(147, 0) + + + +-814986760456400114->-1322796727081384325 + + + + + +-815119186141276529 + +(106, 0) + + + +-815119186141276529->-1322796727081384325 + + + + + +-815003156017384813 + +(142, 0) + + + +-815003156017384813->-1322796727081384325 + + + + + +-815106574171288299 + +(112, 0) + + + +-815106574171288299->-1322796727081384325 + + + + + +-814990544047396583 + +(148, 0) + + + +-814990544047396583->-1322796727081384325 + + + + + +-815122969732272998 + +(111, 0) + + + +-815122969732272998->-1322796727081384325 + + + + + +-815006939608381282 + +(131, 0) + + + +-815006939608381282->-1322796727081384325 + + + + + +-815110357762284768 + +(117, 0) + + + +-815110357762284768->-1322796727081384325 + + + + + +-814994327638393052 + +(137, 0) + + + +-814994327638393052->-1322796727081384325 + + + + + +-815097745792296538 + +(123, 0) + + + +-815097745792296538->-1322796727081384325 + + + + + +-815010723199377751 + +(132, 0) + + + +-815010723199377751->-1322796727081384325 + + + + + +-815114141353281237 + +(118, 0) + + + +-815114141353281237->-1322796727081384325 + + + + + +-814998111229389521 + +(138, 0) + + + +-814998111229389521->-1322796727081384325 + + + + + +-815130536914265936 + +(101, 0) + + + +-815130536914265936->-1322796727081384325 + + + + + +-815101529383293007 + +(124, 0) + + + +-815101529383293007->-1322796727081384325 + + + + + +-814985499259401291 + +(144, 0) + + + +-814985499259401291->-1322796727081384325 + + + + + +-815117924944277706 + +(107, 0) + + + +-815117924944277706->-1322796727081384325 + + + + + +-815001894820385990 + +(143, 0) + + + +-815001894820385990->-1322796727081384325 + + + + + +-815134320505262405 + +(102, 0) + + + +-815134320505262405->-1322796727081384325 + + + + + +-815105312974289476 + +(113, 0) + + + +-815105312974289476->-1322796727081384325 + + + + + +-814989282850397760 + +(149, 0) + + + +-814989282850397760->-1322796727081384325 + + + + + +-815121708535274175 + +(108, 0) + + + +-815121708535274175->-1322796727081384325 + + + + + +-815005678411382459 + +(128, 0) + + + +-815005678411382459->-1322796727081384325 + + + + + +-815109096565285945 + +(114, 0) + + + +-815109096565285945->-1322796727081384325 + + + + + +-815096484595297715 + +(120, 0) + + + +-815096484595297715->-1322796727081384325 + + + + + +-815009462002378928 + +(133, 0) + + + +-815009462002378928->-1322796727081384325 + + + + + +-815112880156282414 + +(119, 0) + + + +-815112880156282414->-1322796727081384325 + + + + + +-814996850032390698 + +(139, 0) + + + +-814996850032390698->-1322796727081384325 + + + + + +-815100268186294184 + +(125, 0) + + + +-815100268186294184->-1322796727081384325 + + + + + +-815013245593375397 + +(134, 0) + + + +-815013245593375397->-1322796727081384325 + + + + + +-814984238062402468 + +(145, 0) + + + +-814984238062402468->-1322796727081384325 + + + + + +-815116663747278883 + +(104, 0) + + + +-815116663747278883->-1322796727081384325 + + + + + +-815000633623387167 + +(140, 0) + + + +-815000633623387167->-1322796727081384325 + + + + + +-815133059308263582 + +(103, 0) + + + +-815133059308263582->-1322796727081384325 + + + + + +-815104051777290653 + +(126, 0) + + + +-815104051777290653->-1322796727081384325 + + + + + +-814988021653398937 + +(146, 0) + + + +-814988021653398937->-1322796727081384325 + + + + + +-815120447338275352 + +(109, 0) + + + +-815120447338275352->-1322796727081384325 + + + + + +-815004417214383636 + +(129, 0) + + + +-815004417214383636->-1322796727081384325 + + + + + +-815107835368287122 + +(115, 0) + + + +-815107835368287122->-1322796727081384325 + + + + + +-815124230929271821 + +(110, 0) + + + +-815124230929271821->-1322796727081384325 + + + + + +-815095223398298892 + +(121, 0) + + + +-815095223398298892->-1322796727081384325 + + + + + +-815008200805380105 + +(130, 0) + + + +-815008200805380105->-1322796727081384325 + + + + + +-815111618959283591 + +(116, 0) + + + +-815111618959283591->-1322796727081384325 + + + + + +-814995588835391875 + +(136, 0) + + + +-814995588835391875->-1322796727081384325 + + + + + +-815099006989295361 + +(122, 0) + + + +-815099006989295361->-1322796727081384325 + + + + + +8261378087508788512 + +(0, 0) + + + +8261378087508788512->-815167111627231803 + + + + + +6605451617780029304 + +(0, 0) + + + +6605451617780029304->-815165850430232980 + + + + + +6561437103294885112 + +(0, 0) + + + +6561437103294885112->-815169634021229449 + + + + + +-6018563538701164855 + +(0, 0) + + + +-6018563538701164855->-815168372824230626 + + + + + +-1970220773573846548 + +(0, 0) + + + +-1970220773573846548->-815172156415227095 + + + + + +1825216773581933672 + +(0, 0) + + + +1825216773581933672->-815170895218228272 + + + + + +-3177474498047605715 + +(0, 0) + + + +-3177474498047605715->-815174678809224741 + + + + + +1509080326753656257 + +(0, 0) + + + +1509080326753656257->-815173417612225918 + + + + + +571400532012715791 + +(0, 0) + + + +571400532012715791->-815157022051241219 + + + + + +9036945975702091494 + +(0, 0) + + + +9036945975702091494->-815155760854242396 + + + + + +110697203848996249 + +(0, 0) + + + +110697203848996249->-815159544445238865 + + + + + +-8758469647592411675 + +(0, 0) + + + +-8758469647592411675->-815158283248240042 + + + + + +-1011401310620480653 + +(0, 0) + + + +-1011401310620480653->-815162066839236511 + + + + + +-498288034224528815 + +(0, 0) + + + +-498288034224528815->-815160805642237688 + + + + + +2321714733847075404 + +(0, 0) + + + +2321714733847075404->-815164589233234157 + + + + + +-1626608827158185573 + +(0, 0) + + + +-1626608827158185573->-815163328036235334 + + + + + +-2917803102842324634 + +(0, 0) + + + +-2917803102842324634->-815146932475250635 + + + + + +8440172572153840339 + +(0, 0) + + + +8440172572153840339->-815145671278251812 + + + + + +3058898576067545971 + +(0, 0) + + + +3058898576067545971->-815149454869248281 + + + + + +3603097068726721089 + +(0, 0) + + + +3603097068726721089->-815148193672249458 + + + + + +-6898661903073746379 + +(0, 0) + + + +-6898661903073746379->-815151977263245927 + + + + + +-7516618468996603165 + +(0, 0) + + + +-7516618468996603165->-815150716066247104 + + + + + +7991300770902332741 + +(0, 0) + + + +7991300770902332741->-815154499657243573 + + + + + +-524648124095589707 + +(0, 0) + + + +-524648124095589707->-815153238460244750 + + + + + +9162558877134753671 + +(0, 0) + + + +9162558877134753671->-815136842899260051 + + + + + +2801214763433131112 + +(0, 0) + + + +2801214763433131112->-815135581702261228 + + + + + +-2763271946729287665 + +(0, 0) + + + +-2763271946729287665->-815139365293257697 + + + + + +2280693805929620161 + +(0, 0) + + + +2280693805929620161->-815138104096258874 + + + + + +8555651937163606371 + +(0, 0) + + + +8555651937163606371->-815141887687255343 + + + + + +8576441062521669060 + +(0, 0) + + + +8576441062521669060->-815140626490256520 + + + + + +-5177962433348180392 + +(0, 0) + + + +-5177962433348180392->-815144410081252989 + + + + + +7809609479547659456 + +(0, 0) + + + +7809609479547659456->-815143148884254166 + + + + + +-4820028178094183747 + +(0, 0) + + + +-4820028178094183747->-815207469931194139 + + + + + +-711924641252695870 + +(0, 0) + + + +-711924641252695870->-815206208734195316 + + + + + +-2586840106626038230 + +(0, 0) + + + +-2586840106626038230->-815209992325191785 + + + + + +-3443889303337717483 + +(0, 0) + + + +-3443889303337717483->-815208731128192962 + + + + + +-4443233851279732346 + +(0, 0) + + + +-4443233851279732346->-815212514719189431 + + + + + +3733641756928703242 + +(0, 0) + + + +3733641756928703242->-815211253522190608 + + + + + +-1755971658898969292 + +(0, 0) + + + +-1755971658898969292->-815215037113187077 + + + + + +-6860797684964424330 + +(0, 0) + + + +-6860797684964424330->-815213775916188254 + + + + + +2181757058330736687 + +(0, 0) + + + +2181757058330736687->-815197380355203555 + + + + + +1069623773019796091 + +(0, 0) + + + +1069623773019796091->-815196119158204732 + + + + + +3931468617225644159 + +(0, 0) + + + +3931468617225644159->-815199902749201201 + + + + + +-1902305066197622835 + +(0, 0) + + + +-1902305066197622835->-815198641552202378 + + + + + +-3002964577116693070 + +(0, 0) + + + +-3002964577116693070->-815202425143198847 + + + + + +645683864637592000 + +(0, 0) + + + +645683864637592000->-815201163946200024 + + + + + +7002941447937489593 + +(0, 0) + + + +7002941447937489593->-815204947537196493 + + + + + +-6136813247398450894 + +(0, 0) + + + +-6136813247398450894->-815203686340197670 + + + + + +-6056296378923319658 + +(0, 0) + + + +-6056296378923319658->-815187290779212971 + + + + + +7269269499041767324 + +(0, 0) + + + +7269269499041767324->-815186029582214148 + + + + + +5324760897025229054 + +(0, 0) + + + +5324760897025229054->-815189813173210617 + + + + + +8596342483186593658 + +(0, 0) + + + +8596342483186593658->-815188551976211794 + + + + + +4568913922390051278 + +(0, 0) + + + +4568913922390051278->-815192335567208263 + + + + + +-5357092661725671716 + +(0, 0) + + + +-5357092661725671716->-815191074370209440 + + + + + +-6439419153300679139 + +(0, 0) + + + +-6439419153300679139->-815194857961205909 + + + + + +5655905249461533396 + +(0, 0) + + + +5655905249461533396->-815193596764207086 + + + + + +-5669251334288429310 + +(0, 0) + + + +-5669251334288429310->-815177201203222387 + + + + + +-2736288944698066100 + +(0, 0) + + + +-2736288944698066100->-815175940006223564 + + + + + +4232003045952833573 + +(0, 0) + + + +4232003045952833573->-815179723597220033 + + + + + +-6186504334132715173 + +(0, 0) + + + +-6186504334132715173->-815178462400221210 + + + + + +-8896527506826088799 + +(0, 0) + + + +-8896527506826088799->-815182245991217679 + + + + + +5780541327260375507 + +(0, 0) + + + +5780541327260375507->-815180984794218856 + + + + + +8245007394672173162 + +(0, 0) + + + +8245007394672173162->-815184768385215325 + + + + + +-1896063725588272932 + +(0, 0) + + + +-1896063725588272932->-815183507188216502 + + + + + +-4612410805916691380 + +(0, 0) + + + +-4612410805916691380->-815086395019307131 + + + + + +-5337434298281616632 + +(0, 0) + + + +-5337434298281616632->-815085133822308308 + + + + + +6082261407575430613 + +(0, 0) + + + +6082261407575430613->-815088917413304777 + + + + + +-6850414235459569407 + +(0, 0) + + + +-6850414235459569407->-815087656216305954 + + + + + +1145352973641563367 + +(0, 0) + + + +1145352973641563367->-815091439807302423 + + + + + +5060824523647245122 + +(0, 0) + + + +5060824523647245122->-815090178610303600 + + + + + +-8031267904611086872 + +(0, 0) + + + +-8031267904611086872->-815093962201300069 + + + + + +-2586080662021365155 + +(0, 0) + + + +-2586080662021365155->-815092701004301246 + + + + + +6294821814612866580 + +(0, 0) + + + +6294821814612866580->-815076305443316547 + + + + + +4049682457953078187 + +(0, 0) + + + +4049682457953078187->-815075044246317724 + + + + + +-2271896389656765905 + +(0, 0) + + + +-2271896389656765905->-815078827837314193 + + + + + +8408154090900276722 + +(0, 0) + + + +8408154090900276722->-815077566640315370 + + + + + +-3797281238066583951 + +(0, 0) + + + +-3797281238066583951->-815081350231311839 + + + + + +7760824439306072003 + +(0, 0) + + + +7760824439306072003->-815080089034313016 + + + + + +5416804413741260603 + +(0, 0) + + + +5416804413741260603->-815083872625309485 + + + + + +-7840915968076600211 + +(0, 0) + + + +-7840915968076600211->-815082611428310662 + + + + + +6263388329709810913 + +(0, 0) + + + +6263388329709810913->-815066215867325963 + + + + + +-4003635042231380722 + +(0, 0) + + + +-4003635042231380722->-815064954670327140 + + + + + +3407284778574105527 + +(0, 0) + + + +3407284778574105527->-815068738261323609 + + + + + +-8126321293153989673 + +(0, 0) + + + +-8126321293153989673->-815067477064324786 + + + + + +6094083781666245439 + +(0, 0) + + + +6094083781666245439->-815071260655321255 + + + + + +-402681913254997738 + +(0, 0) + + + +-402681913254997738->-815069999458322432 + + + + + +-2273189457917848554 + +(0, 0) + + + +-2273189457917848554->-815073783049318901 + + + + + +-7797756188129243811 + +(0, 0) + + + +-7797756188129243811->-815072521852320078 + + + + + +-4872923927176383454 + +(0, 0) + + + +-4872923927176383454->-815056126291335379 + + + + + +3977880480749289855 + +(0, 0) + + + +3977880480749289855->-815054865094336556 + + + + + +-8611851145738567670 + +(0, 0) + + + +-8611851145738567670->-815058648685333025 + + + + + +-1490558007979164015 + +(0, 0) + + + +-1490558007979164015->-815057387488334202 + + + + + +-5211694790587532446 + +(0, 0) + + + +-5211694790587532446->-815061171079330671 + + + + + +5097534479327546127 + +(0, 0) + + + +5097534479327546127->-815059909882331848 + + + + + +-1492003488148797009 + +(0, 0) + + + +-1492003488148797009->-815063693473328317 + + + + + +1246545249238511719 + +(0, 0) + + + +1246545249238511719->-815062432276329494 + + + + + +3066973003327663800 + +(0, 0) + + + +3066973003327663800->-815126753323269467 + + + + + +-3156406640370983362 + +(0, 0) + + + +-3156406640370983362->-815125492126270644 + + + + + +2907288851593402734 + +(0, 0) + + + +2907288851593402734->-815129275717267113 + + + + + +1841100318653814839 + +(0, 0) + + + +1841100318653814839->-815128014520268290 + + + + + +6700262506627917071 + +(0, 0) + + + +6700262506627917071->-815131798111264759 + + + + + +-8239533568483086017 + +(0, 0) + + + +-8239533568483086017->-815130536914265936 + + + + + +128955180330574571 + +(0, 0) + + + +128955180330574571->-815134320505262405 + + + + + +8857775605287194871 + +(0, 0) + + + +8857775605287194871->-815133059308263582 + + + + + +-4609066198438941202 + +(0, 0) + + + +-4609066198438941202->-815116663747278883 + + + + + +-6716666071651051838 + +(0, 0) + + + +-6716666071651051838->-815115402550280060 + + + + + +8776538912470198878 + +(0, 0) + + + +8776538912470198878->-815119186141276529 + + + + + +3289964017659201600 + +(0, 0) + + + +3289964017659201600->-815117924944277706 + + + + + +-8971136762408851531 + +(0, 0) + + + +-8971136762408851531->-815121708535274175 + + + + + +-3559268417702995220 + +(0, 0) + + + +-3559268417702995220->-815120447338275352 + + + + + +-685390918690185484 + +(0, 0) + + + +-685390918690185484->-815124230929271821 + + + + + +-5818699546389535493 + +(0, 0) + + + +-5818699546389535493->-815122969732272998 + + + + + +-1350408428735573622 + +(0, 0) + + + +-1350408428735573622->-815106574171288299 + + + + + +-3778987643512773829 + +(0, 0) + + + +-3778987643512773829->-815105312974289476 + + + + + +7251950809146560507 + +(0, 0) + + + +7251950809146560507->-815109096565285945 + + + + + +-6734935938513796066 + +(0, 0) + + + +-6734935938513796066->-815107835368287122 + + + + + +-3675297034040399887 + +(0, 0) + + + +-3675297034040399887->-815111618959283591 + + + + + +3775304104091884298 + +(0, 0) + + + +3775304104091884298->-815110357762284768 + + + + + +1625774515853390235 + +(0, 0) + + + +1625774515853390235->-815114141353281237 + + + + + +8946279473979720006 + +(0, 0) + + + +8946279473979720006->-815112880156282414 + + + + + +3425007277147781730 + +(0, 0) + + + +3425007277147781730->-815096484595297715 + + + + + +-3687624856399643226 + +(0, 0) + + + +-3687624856399643226->-815095223398298892 + + + + + +-6926422812111782149 + +(0, 0) + + + +-6926422812111782149->-815099006989295361 + + + + + +-6205325741938994959 + +(0, 0) + + + +-6205325741938994959->-815097745792296538 + + + + + +8544496701321545180 + +(0, 0) + + + +8544496701321545180->-815101529383293007 + + + + + +2771158151748829486 + +(0, 0) + + + +2771158151748829486->-815100268186294184 + + + + + +-1563822608001047793 + +(0, 0) + + + +-1563822608001047793->-815104051777290653 + + + + + +-415157331424306033 + +(0, 0) + + + +-415157331424306033->-815102790580291830 + + + + + +6956125484666713793 + +(0, 0) + + + +6956125484666713793->-815005678411382459 + + + + + +1611130452440845915 + +(0, 0) + + + +1611130452440845915->-815004417214383636 + + + + + +-6509905753305073728 + +(0, 0) + + + +-6509905753305073728->-815008200805380105 + + + + + +5461261006319033726 + +(0, 0) + + + +5461261006319033726->-815006939608381282 + + + + + +-7166388410935432886 + +(0, 0) + + + +-7166388410935432886->-815010723199377751 + + + + + +2263120686926891481 + +(0, 0) + + + +2263120686926891481->-815009462002378928 + + + + + +415326571119353146 + +(0, 0) + + + +415326571119353146->-815013245593375397 + + + + + +5426266767756434401 + +(0, 0) + + + +5426266767756434401->-815011984396376574 + + + + + +-9018247050215580322 + +(0, 0) + + + +-9018247050215580322->-814995588835391875 + + + + + +-3403914958339376232 + +(0, 0) + + + +-3403914958339376232->-814994327638393052 + + + + + +-5719043527902053647 + +(0, 0) + + + +-5719043527902053647->-814998111229389521 + + + + + +-6527892572246956634 + +(0, 0) + + + +-6527892572246956634->-814996850032390698 + + + + + +-652468285272034411 + +(0, 0) + + + +-652468285272034411->-815000633623387167 + + + + + +-8638329855878992520 + +(0, 0) + + + +-8638329855878992520->-814999372426388344 + + + + + +-580544930002749774 + +(0, 0) + + + +-580544930002749774->-815003156017384813 + + + + + +-136855482198796275 + +(0, 0) + + + +-136855482198796275->-815001894820385990 + + + + + +-1045150118270834198 + +(0, 0) + + + +-1045150118270834198->-814985499259401291 + + + + + +-7485669085233196760 + +(0, 0) + + + +-7485669085233196760->-814984238062402468 + + + + + +-1994460539825996579 + +(0, 0) + + + +-1994460539825996579->-814988021653398937 + + + + + +-3337138523753823510 + +(0, 0) + + + +-3337138523753823510->-814986760456400114 + + + + + +-5263884262348792481 + +(0, 0) + + + +-5263884262348792481->-814990544047396583 + + + + + +-2949480582474181971 + +(0, 0) + + + +-2949480582474181971->-814989282850397760 + + + + + +5843551432077646415 + +getitem + + + +5843551432077646415->8261378087508788512 + + + + + +1957050515857504170 + +0 + + + +1957050515857504170->5843551432077646415 + + + + + +-6075368941166302939 + + + + +-6075368941166302939->1957050515857504170 + + + + + +-4627197809734528982 + +load + + + +-4627197809734528982->-6075368941166302939 + + + + + +-6999588119564741065 + +getitem + + + +-6999588119564741065->6605451617780029304 + + + + + +-4146785234312258848 + +0 + + + +-4146785234312258848->-6999588119564741065 + + + + + +-5827651254951331904 + + + + +-5827651254951331904->-4146785234312258848 + + + + + +4488558299336842671 + +load + + + +4488558299336842671->-5827651254951331904 + + + + + +-425267959731748681 + +getitem + + + +-425267959731748681->6561437103294885112 + + + + + +-5247903604514946071 + +0 + + + +-5247903604514946071->-425267959731748681 + + + + + +128635889200177714 + + + + +128635889200177714->-5247903604514946071 + + + + + +-1377461892303861083 + +load + + + +-1377461892303861083->128635889200177714 + + + + + +-380861988335257698 + +getitem + + + +-380861988335257698->-6018563538701164855 + + + + + +-2489385699461381942 + +0 + + + +-2489385699461381942->-380861988335257698 + + + + + +-4005706649443243511 + + + + +-4005706649443243511->-2489385699461381942 + + + + + +7180014678313602142 + +load + + + +7180014678313602142->-4005706649443243511 + + + + + +-1918323217321092213 + +getitem + + + +-1918323217321092213->-1970220773573846548 + + + + + +3510167109491144231 + +0 + + + +3510167109491144231->-1918323217321092213 + + + + + +-1861197827462388613 + + + + +-1861197827462388613->3510167109491144231 + + + + + +-6866646807645842900 + +load + + + +-6866646807645842900->-1861197827462388613 + + + + + +-3121678591673286809 + +getitem + + + +-3121678591673286809->1825216773581933672 + + + + + +-978013994227421207 + +0 + + + +-978013994227421207->-3121678591673286809 + + + + + +-9159644511063644343 + + + + +-9159644511063644343->-978013994227421207 + + + + + +-3294839548461638882 + +load + + + +-3294839548461638882->-9159644511063644343 + + + + + +-1864538891557320222 + +getitem + + + +-1864538891557320222->-3177474498047605715 + + + + + +-1591079458206812618 + +0 + + + +-1591079458206812618->-1864538891557320222 + + + + + +7000238123528380824 + + + + +7000238123528380824->-1591079458206812618 + + + + + +6607995671702428951 + +load + + + +6607995671702428951->7000238123528380824 + + + + + +2515513511502939206 + +getitem + + + +2515513511502939206->1509080326753656257 + + + + + +2979273429950768553 + +0 + + + +2979273429950768553->2515513511502939206 + + + + + +-7839306275344476018 + + + + +-7839306275344476018->2979273429950768553 + + + + + +4040311753068751761 + +load + + + +4040311753068751761->-7839306275344476018 + + + + + +1666418122287625664 + +getitem + + + +1666418122287625664->571400532012715791 + + + + + +-275376501432561337 + +0 + + + +-275376501432561337->1666418122287625664 + + + + + +4861889772925709950 + + + + +4861889772925709950->-275376501432561337 + + + + + +1403347405969949121 + +load + + + +1403347405969949121->4861889772925709950 + + + + + +-4668367606763530471 + +getitem + + + +-4668367606763530471->9036945975702091494 + + + + + +-8976953319972062195 + +0 + + + +-8976953319972062195->-4668367606763530471 + + + + + +-8249294784332920729 + + + + +-8249294784332920729->-8976953319972062195 + + + + + +-2653624889845107128 + +load + + + +-2653624889845107128->-8249294784332920729 + + + + + +727634246599729582 + +getitem + + + +727634246599729582->110697203848996249 + + + + + +1153048921242449000 + +0 + + + +1153048921242449000->727634246599729582 + + + + + +-1880110871769264316 + + + + +-1880110871769264316->1153048921242449000 + + + + + +-6235943789099328653 + +load + + + +-6235943789099328653->-1880110871769264316 + + + + + +5862912658551384170 + +getitem + + + +5862912658551384170->-8758469647592411675 + + + + + +6332747668354199740 + +0 + + + +6332747668354199740->5862912658551384170 + + + + + +3922687859353944207 + + + + +3922687859353944207->6332747668354199740 + + + + + +-3486037282847409088 + +load + + + +-3486037282847409088->3922687859353944207 + + + + + +5045881010975697524 + +getitem + + + +5045881010975697524->-1011401310620480653 + + + + + +8200977587530525441 + +0 + + + +8200977587530525441->5045881010975697524 + + + + + +-6846882932721116405 + + + + +-6846882932721116405->8200977587530525441 + + + + + +-2903812212441233476 + +load + + + +-2903812212441233476->-6846882932721116405 + + + + + +-8569883775415687978 + +getitem + + + +-8569883775415687978->-498288034224528815 + + + + + +-7240028348970027381 + +0 + + + +-7240028348970027381->-8569883775415687978 + + + + + +-16887023800501997 + + + + +-16887023800501997->-7240028348970027381 + + + + + +2695737584271296212 + +load + + + +2695737584271296212->-16887023800501997 + + + + + +-6684943219258387157 + +getitem + + + +-6684943219258387157->2321714733847075404 + + + + + +4673672113126812366 + +0 + + + +4673672113126812366->-6684943219258387157 + + + + + +6227641021525607394 + + + + +6227641021525607394->4673672113126812366 + + + + + +-5352245886391166763 + +load + + + +-5352245886391166763->6227641021525607394 + + + + + +3827302178855746060 + +getitem + + + +3827302178855746060->-1626608827158185573 + + + + + +5055736492870755056 + +0 + + + +5055736492870755056->3827302178855746060 + + + + + +219264712513729945 + + + + +219264712513729945->5055736492870755056 + + + + + +7652092494941508014 + +load + + + +7652092494941508014->219264712513729945 + + + + + +-7438049300544359 + +getitem + + + +-7438049300544359->-2917803102842324634 + + + + + +3906389397057453283 + +0 + + + +3906389397057453283->-7438049300544359 + + + + + +-6493727795206312172 + + + + +-6493727795206312172->3906389397057453283 + + + + + +-1041659848275482493 + +load + + + +-1041659848275482493->-6493727795206312172 + + + + + +3367077950832775444 + +getitem + + + +3367077950832775444->8440172572153840339 + + + + + +-6949709781274226159 + +0 + + + +-6949709781274226159->3367077950832775444 + + + + + +-6751716487724163898 + + + + +-6751716487724163898->-6949709781274226159 + + + + + +7033293843415902009 + +load + + + +7033293843415902009->-6751716487724163898 + + + + + +-3381031429291758988 + +getitem + + + +-3381031429291758988->3058898576067545971 + + + + + +-2447170560527258609 + +0 + + + +-2447170560527258609->-3381031429291758988 + + + + + +-7640848606033169174 + + + + +-7640848606033169174->-2447170560527258609 + + + + + +8469047630112898093 + +load + + + +8469047630112898093->-7640848606033169174 + + + + + +-2892107485775065146 + +getitem + + + +-2892107485775065146->3603097068726721089 + + + + + +3826168006733100612 + +0 + + + +3826168006733100612->-2892107485775065146 + + + + + +3699680300215809665 + + + + +3699680300215809665->3826168006733100612 + + + + + +-4649802460449055866 + +load + + + +-4649802460449055866->3699680300215809665 + + + + + +1264273959088392442 + +getitem + + + +1264273959088392442->-6898661903073746379 + + + + + +5063006851105606116 + +0 + + + +5063006851105606116->1264273959088392442 + + + + + +-1595023573912706276 + + + + +-1595023573912706276->5063006851105606116 + + + + + +-4540778666858524357 + +load + + + +-4540778666858524357->-1595023573912706276 + + + + + +6855132212967263780 + +getitem + + + +6855132212967263780->-7516618468996603165 + + + + + +-6175906005005557164 + +0 + + + +-6175906005005557164->6855132212967263780 + + + + + +-3234404612772492220 + + + + +-3234404612772492220->-6175906005005557164 + + + + + +5815152951446680179 + +load + + + +5815152951446680179->-3234404612772492220 + + + + + +-202260601718586870 + +getitem + + + +-202260601718586870->7991300770902332741 + + + + + +4505735148155552383 + +0 + + + +4505735148155552383->-202260601718586870 + + + + + +9197817494967219722 + + + + +9197817494967219722->4505735148155552383 + + + + + +4371145553704444941 + +load + + + +4371145553704444941->9197817494967219722 + + + + + +2375225274152248442 + +getitem + + + +2375225274152248442->-524648124095589707 + + + + + +8806587591249710902 + +0 + + + +8806587591249710902->2375225274152248442 + + + + + +-3129133722429918460 + + + + +-3129133722429918460->8806587591249710902 + + + + + +2770697692228585139 + +load + + + +2770697692228585139->-3129133722429918460 + + + + + +5717944337436397608 + +getitem + + + +5717944337436397608->9162558877134753671 + + + + + +-1626526200209441002 + +0 + + + +-1626526200209441002->5717944337436397608 + + + + + +-9220325347991826103 + + + + +-9220325347991826103->-1626526200209441002 + + + + + +4449259387395921182 + +load + + + +4449259387395921182->-9220325347991826103 + + + + + +4977841096761249639 + +getitem + + + +4977841096761249639->2801214763433131112 + + + + + +2492371709298557263 + +0 + + + +2492371709298557263->4977841096761249639 + + + + + +-9115893896718949405 + + + + +-9115893896718949405->2492371709298557263 + + + + + +-7349729395859741404 + +load + + + +-7349729395859741404->-9115893896718949405 + + + + + +929317220291428544 + +getitem + + + +929317220291428544->-2763271946729287665 + + + + + +-8682060939070593050 + +0 + + + +-8682060939070593050->929317220291428544 + + + + + +2829883596161064891 + + + + +2829883596161064891->-8682060939070593050 + + + + + +-4111318252690898196 + +load + + + +-4111318252690898196->2829883596161064891 + + + + + +-1533167449768504506 + +getitem + + + +-1533167449768504506->2280693805929620161 + + + + + +-2160231418498607757 + +0 + + + +-2160231418498607757->-1533167449768504506 + + + + + +-6079927359374825005 + + + + +-6079927359374825005->-2160231418498607757 + + + + + +7898072389451001364 + +load + + + +7898072389451001364->-6079927359374825005 + + + + + +1698304208854560676 + +getitem + + + +1698304208854560676->8555651937163606371 + + + + + +-1278754058888268025 + +0 + + + +-1278754058888268025->1698304208854560676 + + + + + +-5617817313849403937 + + + + +-5617817313849403937->-1278754058888268025 + + + + + +1131639453349244944 + +load + + + +1131639453349244944->-5617817313849403937 + + + + + +-7571157805918307085 + +getitem + + + +-7571157805918307085->8576441062521669060 + + + + + +-435072286694971878 + +0 + + + +-435072286694971878->-7571157805918307085 + + + + + +5449627833033122866 + + + + +5449627833033122866->-435072286694971878 + + + + + +5920176314178550949 + +load + + + +5920176314178550949->5449627833033122866 + + + + + +5144312180119215191 + +getitem + + + +5144312180119215191->-5177962433348180392 + + + + + +-5494870102904001714 + +0 + + + +-5494870102904001714->5144312180119215191 + + + + + +1104509956514358877 + + + + +1104509956514358877->-5494870102904001714 + + + + + +-6664114566085884014 + +load + + + +-6664114566085884014->1104509956514358877 + + + + + +-1711036616451619665 + +getitem + + + +-1711036616451619665->7809609479547659456 + + + + + +5702431744311800421 + +0 + + + +5702431744311800421->-1711036616451619665 + + + + + +8193656367076109705 + + + + +8193656367076109705->5702431744311800421 + + + + + +6407402744675631326 + +load + + + +6407402744675631326->8193656367076109705 + + + + + +-8522704549009239758 + +getitem + + + +-8522704549009239758->-4820028178094183747 + + + + + +-8951405673447312563 + +0 + + + +-8951405673447312563->-8522704549009239758 + + + + + +7496111713856683866 + + + + +7496111713856683866->-8951405673447312563 + + + + + +-7688395852642397027 + +load + + + +-7688395852642397027->7496111713856683866 + + + + + +2378834459115567605 + +getitem + + + +2378834459115567605->-711924641252695870 + + + + + +8811183870360938219 + +0 + + + +8811183870360938219->2378834459115567605 + + + + + +1533883070938658755 + + + + +1533883070938658755->8811183870360938219 + + + + + +5192978771196782148 + +load + + + +5192978771196782148->1533883070938658755 + + + + + +-5054370058140456467 + +getitem + + + +-5054370058140456467->-2586840106626038230 + + + + + +-722405062350582780 + +0 + + + +-722405062350582780->-5054370058140456467 + + + + + +7320456852517865674 + + + + +7320456852517865674->-722405062350582780 + + + + + +-5223236464255251891 + +load + + + +-5223236464255251891->7320456852517865674 + + + + + +4396699730016544794 + +getitem + + + +4396699730016544794->-3443889303337717483 + + + + + +-5918872054137291673 + +0 + + + +-5918872054137291673->4396699730016544794 + + + + + +-970108263610927479 + + + + +-970108263610927479->-5918872054137291673 + + + + + +-3059908705485524002 + +load + + + +-3059908705485524002->-970108263610927479 + + + + + +4024164908538509689 + +getitem + + + +4024164908538509689->-4443233851279732346 + + + + + +-1268598167720997090 + +0 + + + +-1268598167720997090->4024164908538509689 + + + + + +636517309083526339 + + + + +636517309083526339->-1268598167720997090 + + + + + +-2781801870453600956 + +load + + + +-2781801870453600956->636517309083526339 + + + + + +5841220282111561485 + +getitem + + + +5841220282111561485->3733641756928703242 + + + + + +-8218381200581341574 + +0 + + + +-8218381200581341574->5841220282111561485 + + + + + +-1386196411322894945 + + + + +-1386196411322894945->-8218381200581341574 + + + + + +-6190359797390088368 + +load + + + +-6190359797390088368->-1386196411322894945 + + + + + +5929831754914827363 + +getitem + + + +5929831754914827363->-1755971658898969292 + + + + + +6849511155586483757 + +0 + + + +6849511155586483757->5929831754914827363 + + + + + +-8596946886853041187 + + + + +-8596946886853041187->6849511155586483757 + + + + + +3530790072829896210 + +load + + + +3530790072829896210->-8596946886853041187 + + + + + +-1408384606486235543 + +getitem + + + +-1408384606486235543->-6860797684964424330 + + + + + +-1703308048817119351 + +0 + + + +-1703308048817119351->-1408384606486235543 + + + + + +875460562815932590 + + + + +875460562815932590->-1703308048817119351 + + + + + +1584257938755133041 + +load + + + +1584257938755133041->875460562815932590 + + + + + +1294218130481901216 + +getitem + + + +1294218130481901216->2181757058330736687 + + + + + +-1994024329879124241 + +0 + + + +-1994024329879124241->1294218130481901216 + + + + + +-4839956355017443196 + + + + +-4839956355017443196->-1994024329879124241 + + + + + +7767689290818183475 + +load + + + +7767689290818183475->-4839956355017443196 + + + + + +-429969270226415572 + +getitem + + + +-429969270226415572->1069623773019796091 + + + + + +-1498456179107892000 + +0 + + + +-1498456179107892000->-429969270226415572 + + + + + +-4728601343805659129 + + + + +-4728601343805659129->-1498456179107892000 + + + + + +-3993908747305535576 + +load + + + +-3993908747305535576->-4728601343805659129 + + + + + +-477859508510939280 + +getitem + + + +-477859508510939280->3931468617225644159 + + + + + +-2151211499093466799 + +0 + + + +-2151211499093466799->-477859508510939280 + + + + + +8477163003785774072 + + + + +8477163003785774072->-2151211499093466799 + + + + + +791685124320013751 + +load + + + +791685124320013751->8477163003785774072 + + + + + +-1422567058441356222 + +getitem + + + +-1422567058441356222->-1902305066197622835 + + + + + +303976866372267823 + +0 + + + +303976866372267823->-1422567058441356222 + + + + + +3500210770588101050 + + + + +3500210770588101050->303976866372267823 + + + + + +1853428397231096893 + +load + + + +1853428397231096893->3500210770588101050 + + + + + +6884835850551191333 + +getitem + + + +6884835850551191333->-3002964577116693070 + + + + + +-9152148896952195233 + +0 + + + +-9152148896952195233->6884835850551191333 + + + + + +-6897381922605761865 + + + + +-6897381922605761865->-9152148896952195233 + + + + + +-1138401061569048360 + +load + + + +-1138401061569048360->-6897381922605761865 + + + + + +-231304655893829713 + +getitem + + + +-231304655893829713->645683864637592000 + + + + + +8025206709172857709 + +0 + + + +8025206709172857709->-231304655893829713 + + + + + +-6888461669366823098 + + + + +-6888461669366823098->8025206709172857709 + + + + + +-8616685016628323143 + +load + + + +-8616685016628323143->-6888461669366823098 + + + + + +-3678565047239322738 + +getitem + + + +-3678565047239322738->7002941447937489593 + + + + + +-4445427376602244727 + +0 + + + +-4445427376602244727->-3678565047239322738 + + + + + +932601849875200948 + + + + +932601849875200948->-4445427376602244727 + + + + + +832303985800336867 + +load + + + +832303985800336867->932601849875200948 + + + + + +6699663037765322661 + +getitem + + + +6699663037765322661->-6136813247398450894 + + + + + +921888022778105099 + +0 + + + +921888022778105099->6699663037765322661 + + + + + +4949038642359656949 + + + + +4949038642359656949->921888022778105099 + + + + + +2964852181968045370 + +load + + + +2964852181968045370->4949038642359656949 + + + + + +-499790764128491959 + +getitem + + + +-499790764128491959->-6056296378923319658 + + + + + +-5119576642327903164 + +0 + + + +-5119576642327903164->-499790764128491959 + + + + + +6752127655809707569 + + + + +6752127655809707569->-5119576642327903164 + + + + + +8961297687776996086 + +load + + + +8961297687776996086->6752127655809707569 + + + + + +-1312606985437738821 + +getitem + + + +-1312606985437738821->7269269499041767324 + + + + + +-1413701497608211587 + +0 + + + +-1413701497608211587->-1312606985437738821 + + + + + +-8848820726324977874 + + + + +-8848820726324977874->-1413701497608211587 + + + + + +-3637021087459131407 + +load + + + +-3637021087459131407->-8848820726324977874 + + + + + +-4849129463170924735 + +getitem + + + +-4849129463170924735->5324760897025229054 + + + + + +-6486501441998280700 + +0 + + + +-6486501441998280700->-4849129463170924735 + + + + + +-2163140399931421735 + + + + +-2163140399931421735->-6486501441998280700 + + + + + +-1465858109597167506 + +load + + + +-1465858109597167506->-2163140399931421735 + + + + + +2859079432986761085 + +getitem + + + +2859079432986761085->8596342483186593658 + + + + + +-6149322251305352683 + +0 + + + +-6149322251305352683->2859079432986761085 + + + + + +-7585851858013436296 + + + + +-7585851858013436296->-6149322251305352683 + + + + + +3472606858146303799 + +load + + + +3472606858146303799->-7585851858013436296 + + + + + +-8449707295038375087 + +getitem + + + +-8449707295038375087->4568913922390051278 + + + + + +-6628498612555123466 + +0 + + + +-6628498612555123466->-8449707295038375087 + + + + + +-795902595393673248 + + + + +-795902595393673248->-6628498612555123466 + + + + + +8086620991386485647 + +load + + + +8086620991386485647->-795902595393673248 + + + + + +-137924841392681605 + +getitem + + + +-137924841392681605->-5357092661725671716 + + + + + +-8489884900874958164 + +0 + + + +-8489884900874958164->-137924841392681605 + + + + + +-8798315284788432102 + + + + +-8798315284788432102->-8489884900874958164 + + + + + +-8716352185623032611 + +load + + + +-8716352185623032611->-8798315284788432102 + + + + + +2952548024633519826 + +getitem + + + +2952548024633519826->-6439419153300679139 + + + + + +-5515529842472905048 + +0 + + + +-5515529842472905048->2952548024633519826 + + + + + +7990570970244544342 + + + + +7990570970244544342->-5515529842472905048 + + + + + +5667820721869136521 + +load + + + +5667820721869136521->7990570970244544342 + + + + + +-67743241248017981 + +getitem + + + +-67743241248017981->5655905249461533396 + + + + + +5061005882061945507 + +0 + + + +5061005882061945507->-67743241248017981 + + + + + +3745948030112668712 + + + + +3745948030112668712->5061005882061945507 + + + + + +-3802465385691330905 + +load + + + +-3802465385691330905->3745948030112668712 + + + + + +-516268178635273547 + +getitem + + + +-516268178635273547->-5669251334288429310 + + + + + +7475741739843950160 + +0 + + + +7475741739843950160->-516268178635273547 + + + + + +-418803271685612239 + + + + +-418803271685612239->7475741739843950160 + + + + + +8813535705328328694 + +load + + + +8813535705328328694->-418803271685612239 + + + + + +9150924796199308331 + +getitem + + + +9150924796199308331->-2736288944698066100 + + + + + +-1392787313627926507 + +0 + + + +-1392787313627926507->9150924796199308331 + + + + + +5893529446737264980 + + + + +5893529446737264980->-1392787313627926507 + + + + + +-6458044936892513469 + +load + + + +-6458044936892513469->5893529446737264980 + + + + + +-7472969742796072662 + +getitem + + + +-7472969742796072662->4232003045952833573 + + + + + +-4489751308815793985 + +0 + + + +-4489751308815793985->-7472969742796072662 + + + + + +-3436930842982513716 + + + + +-3436930842982513716->-4489751308815793985 + + + + + +2843920716954742699 + +load + + + +2843920716954742699->-3436930842982513716 + + + + + +6454942896554692428 + +getitem + + + +6454942896554692428->-6186504334132715173 + + + + + +-1609024886392847839 + +0 + + + +-1609024886392847839->6454942896554692428 + + + + + +-5003734457985938624 + + + + +-5003734457985938624->-1609024886392847839 + + + + + +8287931165287372335 + +load + + + +8287931165287372335->-5003734457985938624 + + + + + +5413214486060956006 + +getitem + + + +5413214486060956006->-8896527506826088799 + + + + + +-1729443242197054622 + +0 + + + +-1729443242197054622->5413214486060956006 + + + + + +807809001686387488 + + + + +807809001686387488->-1729443242197054622 + + + + + +-1430895833182052273 + +load + + + +-1430895833182052273->807809001686387488 + + + + + +7486477796340563476 + +getitem + + + +7486477796340563476->5780541327260375507 + + + + + +5840841899172782585 + +0 + + + +5840841899172782585->7486477796340563476 + + + + + +8506008566348052381 + + + + +8506008566348052381->5840841899172782585 + + + + + +-1461365770047737518 + +load + + + +-1461365770047737518->8506008566348052381 + + + + + +7432649060347665581 + +getitem + + + +7432649060347665581->8245007394672173162 + + + + + +-4045634672723444296 + +0 + + + +-4045634672723444296->7432649060347665581 + + + + + +2821522386383947324 + + + + +2821522386383947324->-4045634672723444296 + + + + + +-7313079311263255525 + +load + + + +-7313079311263255525->2821522386383947324 + + + + + +2746067924200527739 + +getitem + + + +2746067924200527739->-1896063725588272932 + + + + + +6090537991418163948 + +0 + + + +6090537991418163948->2746067924200527739 + + + + + +6317176299457301741 + + + + +6317176299457301741->6090537991418163948 + + + + + +-7467570589634184926 + +load + + + +-7467570589634184926->6317176299457301741 + + + + + +4516425091182391083 + +getitem + + + +4516425091182391083->-4612410805916691380 + + + + + +-3472727928230221068 + +0 + + + +-3472727928230221068->4516425091182391083 + + + + + +-8854622718030251883 + + + + +-8854622718030251883->-3472727928230221068 + + + + + +4358942694540842138 + +load + + + +4358942694540842138->-8854622718030251883 + + + + + +-6564926583622945337 + +getitem + + + +-6564926583622945337->-5337434298281616632 + + + + + +5079377297420070646 + +0 + + + +5079377297420070646->-6564926583622945337 + + + + + +-283506281793309000 + + + + +-283506281793309000->5079377297420070646 + + + + + +-3806585154406186505 + +load + + + +-3806585154406186505->-283506281793309000 + + + + + +4390679953953391450 + +getitem + + + +4390679953953391450->6082261407575430613 + + + + + +7292202350720404064 + +0 + + + +7292202350720404064->4390679953953391450 + + + + + +7377278882219869774 + + + + +7377278882219869774->7292202350720404064 + + + + + +2071919917249345233 + +load + + + +2071919917249345233->7377278882219869774 + + + + + +8501042165824825606 + +getitem + + + +8501042165824825606->-6850414235459569407 + + + + + +-2332593425971243494 + +0 + + + +-2332593425971243494->8501042165824825606 + + + + + +6916468265291146964 + + + + +6916468265291146964->-2332593425971243494 + + + + + +8466218070996037059 + +load + + + +8466218070996037059->6916468265291146964 + + + + + +-8343881587105540664 + +getitem + + + +-8343881587105540664->1145352973641563367 + + + + + +3294821345630739994 + +0 + + + +3294821345630739994->-8343881587105540664 + + + + + +-1958939489620342342 + + + + +-1958939489620342342->3294821345630739994 + + + + + +6220082873391899709 + +load + + + +6220082873391899709->-1958939489620342342 + + + + + +1076993034810900341 + +getitem + + + +1076993034810900341->5060824523647245122 + + + + + +1276831923620649505 + +0 + + + +1276831923620649505->1076993034810900341 + + + + + +-3103007615633095741 + + + + +-3103007615633095741->1276831923620649505 + + + + + +-2896838764728774076 + +load + + + +-2896838764728774076->-3103007615633095741 + + + + + +-8991214837257707033 + +getitem + + + +-8991214837257707033->-8031267904611086872 + + + + + +-8316936844553014369 + +0 + + + +-8316936844553014369->-8991214837257707033 + + + + + +-6690139360927175470 + + + + +-6690139360927175470->-8316936844553014369 + + + + + +1374452499890886149 + +load + + + +1374452499890886149->-6690139360927175470 + + + + + +7243989740938863506 + +getitem + + + +7243989740938863506->-2586080662021365155 + + + + + +4514925779645803933 + +0 + + + +4514925779645803933->7243989740938863506 + + + + + +5167610928364093302 + + + + +5167610928364093302->4514925779645803933 + + + + + +2976318942042337385 + +load + + + +2976318942042337385->5167610928364093302 + + + + + +517306332642535811 + +getitem + + + +517306332642535811->6294821814612866580 + + + + + +-5447470559506208372 + +0 + + + +-5447470559506208372->517306332642535811 + + + + + +584332989880255694 + + + + +584332989880255694->-5447470559506208372 + + + + + +-1657603068077158319 + +load + + + +-1657603068077158319->584332989880255694 + + + + + +1440771855443466524 + +getitem + + + +1440771855443466524->4049682457953078187 + + + + + +5125326345232076701 + +0 + + + +5125326345232076701->1440771855443466524 + + + + + +-1091196740925849708 + + + + +-1091196740925849708->5125326345232076701 + + + + + +9056066298774258691 + +load + + + +9056066298774258691->-1091196740925849708 + + + + + +-6472470632284397408 + +getitem + + + +-6472470632284397408->-2271896389656765905 + + + + + +1200250928866836963 + +0 + + + +1200250928866836963->-6472470632284397408 + + + + + +-109184439869584849 + + + + +-109184439869584849->1200250928866836963 + + + + + +-1175552179192729440 + +load + + + +-1175552179192729440->-109184439869584849 + + + + + +-3563613517057423387 + +getitem + + + +-3563613517057423387->8408154090900276722 + + + + + +5862594519011984888 + +0 + + + +5862594519011984888->-3563613517057423387 + + + + + +-6050942297146177540 + + + + +-6050942297146177540->5862594519011984888 + + + + + +-6298328185245253797 + +load + + + +-6298328185245253797->-6050942297146177540 + + + + + +-1836534299845943626 + +getitem + + + +-1836534299845943626->-3797281238066583951 + + + + + +-6506839246097757663 + +0 + + + +-6506839246097757663->-1836534299845943626 + + + + + +-1275709244598058529 + + + + +-1275709244598058529->-6506839246097757663 + + + + + +2300551614686796816 + +load + + + +2300551614686796816->-1275709244598058529 + + + + + +-7853063688194642364 + +getitem + + + +-7853063688194642364->7760824439306072003 + + + + + +-3424872181567914618 + +0 + + + +-3424872181567914618->-7853063688194642364 + + + + + +-3599668200901461251 + + + + +-3599668200901461251->-3424872181567914618 + + + + + +-457103078096319246 + +load + + + +-457103078096319246->-3599668200901461251 + + + + + +-3233089627998111892 + +getitem + + + +-3233089627998111892->5416804413741260603 + + + + + +6957308170163971301 + +0 + + + +6957308170163971301->-3233089627998111892 + + + + + +-3945154436002083234 + + + + +-3945154436002083234->6957308170163971301 + + + + + +-8656006535787196703 + +load + + + +-8656006535787196703->-3945154436002083234 + + + + + +1179769471392566690 + +getitem + + + +1179769471392566690->-7840915968076600211 + + + + + +-1063550469914411871 + +0 + + + +-1063550469914411871->1179769471392566690 + + + + + +1988694509467838989 + + + + +1988694509467838989->-1063550469914411871 + + + + + +5431781363775937026 + +load + + + +5431781363775937026->1988694509467838989 + + + + + +-3617043328965367770 + +getitem + + + +-3617043328965367770->6263388329709810913 + + + + + +-3809915135943099759 + +0 + + + +-3809915135943099759->-3617043328965367770 + + + + + +-400363451614176565 + + + + +-400363451614176565->-3809915135943099759 + + + + + +7390270797498632188 + +load + + + +7390270797498632188->-400363451614176565 + + + + + +2680026053915058961 + +getitem + + + +2680026053915058961->-4003635042231380722 + + + + + +-6649289009908614187 + +0 + + + +-6649289009908614187->2680026053915058961 + + + + + +-1003945341042729049 + + + + +-1003945341042729049->-6649289009908614187 + + + + + +-6347843316046760440 + +load + + + +-6347843316046760440->-1003945341042729049 + + + + + +-6043017028516341800 + +getitem + + + +-6043017028516341800->3407284778574105527 + + + + + +-7064068817165931859 + +0 + + + +-7064068817165931859->-6043017028516341800 + + + + + +489718726941359893 + + + + +489718726941359893->-7064068817165931859 + + + + + +8425409712115103258 + +load + + + +8425409712115103258->489718726941359893 + + + + + +-8971300550533427784 + +getitem + + + +-8971300550533427784->-8126321293153989673 + + + + + +4202154850781993642 + +0 + + + +4202154850781993642->-8971300550533427784 + + + + + +8170665638656623462 + + + + +8170665638656623462->4202154850781993642 + + + + + +-3622566437990838631 + +load + + + +-3622566437990838631->8170665638656623462 + + + + + +7825443628631565488 + +getitem + + + +7825443628631565488->6094083781666245439 + + + + + +3139734426427728860 + +0 + + + +3139734426427728860->7825443628631565488 + + + + + +5845437389137418428 + + + + +5845437389137418428->3139734426427728860 + + + + + +-5431685245937757797 + +load + + + +-5431685245937757797->5845437389137418428 + + + + + +8801831079169590217 + +getitem + + + +8801831079169590217->-402681913254997738 + + + + + +1882536050065931397 + +0 + + + +1882536050065931397->8801831079169590217 + + + + + +-2001876698780349471 + + + + +-2001876698780349471->1882536050065931397 + + + + + +-7369454305691183834 + +load + + + +-7369454305691183834->-2001876698780349471 + + + + + +-4428689826562199351 + +getitem + + + +-4428689826562199351->-2273189457917848554 + + + + + +3213937413553148287 + +0 + + + +3213937413553148287->-4428689826562199351 + + + + + +2012004638639000872 + + + + +2012004638639000872->3213937413553148287 + + + + + +-7517901433958371929 + +load + + + +-7517901433958371929->2012004638639000872 + + + + + +6211232671397684370 + +getitem + + + +6211232671397684370->-7797756188129243811 + + + + + +7919209738706116336 + +0 + + + +7919209738706116336->6211232671397684370 + + + + + +8769491921592348642 + + + + +8769491921592348642->7919209738706116336 + + + + + +6445833592196740309 + +load + + + +6445833592196740309->8769491921592348642 + + + + + +3555619038127590549 + +getitem + + + +3555619038127590549->-4872923927176383454 + + + + + +7476295198254971834 + +0 + + + +7476295198254971834->3555619038127590549 + + + + + +-4555928411103360689 + + + + +-4555928411103360689->7476295198254971834 + + + + + +-7799541172299502720 + +load + + + +-7799541172299502720->-4555928411103360689 + + + + + +6729301890154038896 + +getitem + + + +6729301890154038896->3977880480749289855 + + + + + +161535783407179735 + +0 + + + +161535783407179735->6729301890154038896 + + + + + +-912369142781397609 + + + + +-912369142781397609->161535783407179735 + + + + + +6679274562797890552 + +load + + + +6679274562797890552->-912369142781397609 + + + + + +7396158928912940557 + +getitem + + + +7396158928912940557->-8611851145738567670 + + + + + +-8920461611507233412 + +0 + + + +-8920461611507233412->7396158928912940557 + + + + + +9048166053983729251 + + + + +9048166053983729251->-8920461611507233412 + + + + + +-8080903942041766236 + +load + + + +-8080903942041766236->9048166053983729251 + + + + + +-3202084513958628458 + +getitem + + + +-3202084513958628458->-1490558007979164015 + + + + + +-2002905374081547035 + +0 + + + +-2002905374081547035->-3202084513958628458 + + + + + +-7895952590097914615 + + + + +-7895952590097914615->-2002905374081547035 + + + + + +3414577514384997726 + +load + + + +3414577514384997726->-7895952590097914615 + + + + + +-1629316918728698539 + +getitem + + + +-1629316918728698539->-5211694790587532446 + + + + + +3073907606953511901 + +0 + + + +3073907606953511901->-1629316918728698539 + + + + + +-6661539784106227651 + + + + +-6661539784106227651->3073907606953511901 + + + + + +-8675459470137044046 + +load + + + +-8675459470137044046->-6661539784106227651 + + + + + +4592591821609415104 + +getitem + + + +4592591821609415104->5097534479327546127 + + + + + +2660541154032422702 + +0 + + + +2660541154032422702->4592591821609415104 + + + + + +-3703312153910045497 + + + + +-3703312153910045497->2660541154032422702 + + + + + +4485305042801134312 + +load + + + +4485305042801134312->-3703312153910045497 + + + + + +4347805125482897696 + +getitem + + + +4347805125482897696->-1492003488148797009 + + + + + +-404653343053765412 + +0 + + + +-404653343053765412->4347805125482897696 + + + + + +-1636701916613525297 + + + + +-1636701916613525297->-404653343053765412 + + + + + +7308269118896629760 + +load + + + +7308269118896629760->-1636701916613525297 + + + + + +1311367210628910664 + +getitem + + + +1311367210628910664->1246545249238511719 + + + + + +-9000931391311476175 + +0 + + + +-9000931391311476175->1311367210628910664 + + + + + +-4892016059837224571 + + + + +-4892016059837224571->-9000931391311476175 + + + + + +2554180729287034314 + +load + + + +2554180729287034314->-4892016059837224571 + + + + + +6545523556212009463 + +getitem + + + +6545523556212009463->3066973003327663800 + + + + + +-6026613218022018374 + +0 + + + +-6026613218022018374->6545523556212009463 + + + + + +46315362258158819 + + + + +46315362258158819->-6026613218022018374 + + + + + +5529852485882626084 + +load + + + +5529852485882626084->46315362258158819 + + + + + +-6184798079798630143 + +getitem + + + +-6184798079798630143->-3156406640370983362 + + + + + +4289795863507863150 + +0 + + + +4289795863507863150->-6184798079798630143 + + + + + +-353917857327117371 + + + + +-353917857327117371->4289795863507863150 + + + + + +-3422453846936976502 + +load + + + +-3422453846936976502->-353917857327117371 + + + + + +3033310978432349617 + +getitem + + + +3033310978432349617->2907288851593402734 + + + + + +-8047868635092025396 + +0 + + + +-8047868635092025396->3033310978432349617 + + + + + +3398643536389765701 + + + + +3398643536389765701->-8047868635092025396 + + + + + +-7426828818115882742 + +load + + + +-7426828818115882742->3398643536389765701 + + + + + +-8046044479632682152 + +getitem + + + +-8046044479632682152->1841100318653814839 + + + + + +-7088254342946805171 + +0 + + + +-7088254342946805171->-8046044479632682152 + + + + + +4082895369161420879 + + + + +4082895369161420879->-7088254342946805171 + + + + + +-8467314041019454336 + +load + + + +-8467314041019454336->4082895369161420879 + + + + + +-6640836379871138880 + +getitem + + + +-6640836379871138880->6700262506627917071 + + + + + +520440712876167265 + +0 + + + +520440712876167265->-6640836379871138880 + + + + + +4253096583390125042 + + + + +4253096583390125042->520440712876167265 + + + + + +7894042060098567653 + +load + + + +7894042060098567653->4253096583390125042 + + + + + +-4965589985214526800 + +getitem + + + +-4965589985214526800->-8239533568483086017 + + + + + +-6088108006305974146 + +0 + + + +-6088108006305974146->-4965589985214526800 + + + + + +314371283254695991 + + + + +314371283254695991->-6088108006305974146 + + + + + +7548244261423190872 + +load + + + +7548244261423190872->314371283254695991 + + + + + +-1515216879122123300 + +getitem + + + +-1515216879122123300->128955180330574571 + + + + + +6266505997376052507 + +0 + + + +6266505997376052507->-1515216879122123300 + + + + + +1501129757874551371 + + + + +1501129757874551371->6266505997376052507 + + + + + +4337023338134281340 + +load + + + +4337023338134281340->1501129757874551371 + + + + + +79132973885657752 + +getitem + + + +79132973885657752->8857775605287194871 + + + + + +3843885941809717649 + +0 + + + +3843885941809717649->79132973885657752 + + + + + +-484491855232430613 + + + + +-484491855232430613->3843885941809717649 + + + + + +2487567272652429020 + +load + + + +2487567272652429020->-484491855232430613 + + + + + +8038621963015329073 + +getitem + + + +8038621963015329073->-4609066198438941202 + + + + + +1439039697305733756 + +0 + + + +1439039697305733756->8038621963015329073 + + + + + +-2493019453110228777 + + + + +-2493019453110228777->1439039697305733756 + + + + + +7442102634162685112 + +load + + + +7442102634162685112->-2493019453110228777 + + + + + +-7107022388264673291 + +getitem + + + +-7107022388264673291->-6716666071651051838 + + + + + +6613934520057576162 + +0 + + + +6613934520057576162->-7107022388264673291 + + + + + +5620452859389385191 + + + + +5620452859389385191->6613934520057576162 + + + + + +5813563275325982920 + +load + + + +5813563275325982920->5620452859389385191 + + + + + +-6692561301930644767 + +getitem + + + +-6692561301930644767->8776538912470198878 + + + + + +-2492178528422995282 + +0 + + + +-2492178528422995282->-6692561301930644767 + + + + + +6503780629623598337 + + + + +6503780629623598337->-2492178528422995282 + + + + + +2632515240390663430 + +load + + + +2632515240390663430->6503780629623598337 + + + + + +601198184411786543 + +getitem + + + +601198184411786543->3289964017659201600 + + + + + +-6067726033570734761 + +0 + + + +-6067726033570734761->601198184411786543 + + + + + +-2720584621725582689 + + + + +-2720584621725582689->-6067726033570734761 + + + + + +-5687317448061004208 + +load + + + +-5687317448061004208->-2720584621725582689 + + + + + +-3267136804325027974 + +getitem + + + +-3267136804325027974->-8971136762408851531 + + + + + +3661398545572316163 + +0 + + + +3661398545572316163->-3267136804325027974 + + + + + +-7751202319556028083 + + + + +-7751202319556028083->3661398545572316163 + + + + + +-4901761992401855806 + +load + + + +-4901761992401855806->-7751202319556028083 + + + + + +-4223051269652638069 + +getitem + + + +-4223051269652638069->-3559268417702995220 + + + + + +-5246818072425835655 + +0 + + + +-5246818072425835655->-4223051269652638069 + + + + + +7272379517644930402 + + + + +7272379517644930402->-5246818072425835655 + + + + + +-6142072240331405483 + +load + + + +-6142072240331405483->7272379517644930402 + + + + + +7333342020988079011 + +getitem + + + +7333342020988079011->-685390918690185484 + + + + + +1937737472783539011 + +0 + + + +1937737472783539011->7333342020988079011 + + + + + +6333891281697305583 + + + + +6333891281697305583->1937737472783539011 + + + + + +-4650001760931187744 + +load + + + +-4650001760931187744->6333891281697305583 + + + + + +-7749177584877494868 + +getitem + + + +-7749177584877494868->-5818699546389535493 + + + + + +-3968591000895451893 + +0 + + + +-3968591000895451893->-7749177584877494868 + + + + + +2912508285212387967 + + + + +2912508285212387967->-3968591000895451893 + + + + + +7382548727399823728 + +load + + + +7382548727399823728->2912508285212387967 + + + + + +1422899458294059149 + +getitem + + + +1422899458294059149->-1350408428735573622 + + + + + +-6603616739616499919 + +0 + + + +-6603616739616499919->1422899458294059149 + + + + + +8066743115408608569 + + + + +8066743115408608569->-6603616739616499919 + + + + + +3750294186172326158 + +load + + + +3750294186172326158->8066743115408608569 + + + + + +-6011564040418006164 + +getitem + + + +-6011564040418006164->-3778987643512773829 + + + + + +5424331033431252621 + +0 + + + +5424331033431252621->-6011564040418006164 + + + + + +1948210897266042394 + + + + +1948210897266042394->5424331033431252621 + + + + + +7792298681643239901 + +load + + + +7792298681643239901->1948210897266042394 + + + + + +-4635710489221144916 + +getitem + + + +-4635710489221144916->7251950809146560507 + + + + + +1693719508168801829 + +0 + + + +1693719508168801829->-4635710489221144916 + + + + + +-6483377853144562591 + + + + +-6483377853144562591->1693719508168801829 + + + + + +-3507840108317332314 + +load + + + +-3507840108317332314->-6483377853144562591 + + + + + +9041520710131636513 + +getitem + + + +9041520710131636513->-6734935938513796066 + + + + + +-6027277673876298357 + +0 + + + +-6027277673876298357->9041520710131636513 + + + + + +3775333560791978937 + + + + +3775333560791978937->-6027277673876298357 + + + + + +3212184331751223950 + +load + + + +3212184331751223950->3775333560791978937 + + + + + +-6738934243266739914 + +getitem + + + +-6738934243266739914->-3675297034040399887 + + + + + +-828889826546764076 + +0 + + + +-828889826546764076->-6738934243266739914 + + + + + +3009963647115319754 + + + + +3009963647115319754->-828889826546764076 + + + + + +-1029893854527631027 + +load + + + +-1029893854527631027->3009963647115319754 + + + + + +2460799789345697549 + +getitem + + + +2460799789345697549->3775304104091884298 + + + + + +6964110561265181622 + +0 + + + +6964110561265181622->2460799789345697549 + + + + + +1902116577124189769 + + + + +1902116577124189769->6964110561265181622 + + + + + +7838553541965530142 + +load + + + +7838553541965530142->1902116577124189769 + + + + + +4263727053641769484 + +getitem + + + +4263727053641769484->1625774515853390235 + + + + + +-8345109829068421677 + +0 + + + +-8345109829068421677->4263727053641769484 + + + + + +-7786711830501626091 + + + + +-7786711830501626091->-8345109829068421677 + + + + + +75605445048960538 + +load + + + +75605445048960538->-7786711830501626091 + + + + + +-1083364844723951943 + +getitem + + + +-1083364844723951943->8946279473979720006 + + + + + +2295234338007185803 + +0 + + + +2295234338007185803->-1083364844723951943 + + + + + +2591229217097205701 + + + + +2591229217097205701->2295234338007185803 + + + + + +-1887200179527544950 + +load + + + +-1887200179527544950->2591229217097205701 + + + + + +776741901977509461 + +getitem + + + +776741901977509461->3425007277147781730 + + + + + +376735419980651680 + +0 + + + +376735419980651680->776741901977509461 + + + + + +3003148072147445780 + + + + +3003148072147445780->376735419980651680 + + + + + +5990958337232239491 + +load + + + +5990958337232239491->3003148072147445780 + + + + + +2960152151051389017 + +getitem + + + +2960152151051389017->-3687624856399643226 + + + + + +787173505355420845 + +0 + + + +787173505355420845->2960152151051389017 + + + + + +-2887167641929288445 + + + + +-2887167641929288445->787173505355420845 + + + + + +-5187048836870243068 + +load + + + +-5187048836870243068->-2887167641929288445 + + + + + +-2624156608482158676 + +getitem + + + +-2624156608482158676->-6926422812111782149 + + + + + +-2779917138179944036 + +0 + + + +-2779917138179944036->-2624156608482158676 + + + + + +4445336556243498559 + + + + +4445336556243498559->-2779917138179944036 + + + + + +-1785481299075364432 + +load + + + +-1785481299075364432->4445336556243498559 + + + + + +-5029667089937505226 + +getitem + + + +-5029667089937505226->-6205325741938994959 + + + + + +-8767244616079805557 + +0 + + + +-8767244616079805557->-5029667089937505226 + + + + + +3369985301448023354 + + + + +3369985301448023354->-8767244616079805557 + + + + + +-5875751276574176067 + +load + + + +-5875751276574176067->3369985301448023354 + + + + + +-3908977537898726789 + +getitem + + + +-3908977537898726789->8544496701321545180 + + + + + +6701748066120104895 + +0 + + + +6701748066120104895->-3908977537898726789 + + + + + +6603211118384136255 + + + + +6603211118384136255->6701748066120104895 + + + + + +4785257978632823728 + +load + + + +4785257978632823728->6603211118384136255 + + + + + +423266670921409009 + +getitem + + + +423266670921409009->2771158151748829486 + + + + + +-2375530931744657473 + +0 + + + +-2375530931744657473->423266670921409009 + + + + + +2133133706408075040 + + + + +2133133706408075040->-2375530931744657473 + + + + + +1058276455556576335 + +load + + + +1058276455556576335->2133133706408075040 + + + + + +-149980491669186112 + +getitem + + + +-149980491669186112->-1563822608001047793 + + + + + +-6205235168046052212 + +0 + + + +-6205235168046052212->-149980491669186112 + + + + + +-8813026495956953485 + + + + +-8813026495956953485->-6205235168046052212 + + + + + +4592620630072618868 + +load + + + +4592620630072618868->-8813026495956953485 + + + + + +6605417382474205248 + +getitem + + + +6605417382474205248->-415157331424306033 + + + + + +4902318743163226959 + +0 + + + +4902318743163226959->6605417382474205248 + + + + + +-3421589323750859109 + + + + +-3421589323750859109->4902318743163226959 + + + + + +3600678572706879756 + +load + + + +3600678572706879756->-3421589323750859109 + + + + + +-8653585070783617210 + +getitem + + + +-8653585070783617210->6956125484666713793 + + + + + +812388265341869352 + +0 + + + +812388265341869352->-8653585070783617210 + + + + + +-7751901117067781009 + + + + +-7751901117067781009->812388265341869352 + + + + + +5237492134698720096 + +load + + + +5237492134698720096->-7751901117067781009 + + + + + +-4243412575307119028 + +getitem + + + +-4243412575307119028->1611130452440845915 + + + + + +821770863619672965 + +0 + + + +821770863619672965->-4243412575307119028 + + + + + +-1568298000236421026 + + + + +-1568298000236421026->821770863619672965 + + + + + +-999865686374530847 + +load + + + +-999865686374530847->-1568298000236421026 + + + + + +-1402370699832058449 + +getitem + + + +-1402370699832058449->-6509905753305073728 + + + + + +3990223964108476429 + +0 + + + +3990223964108476429->-1402370699832058449 + + + + + +-4244722001239321285 + + + + +-4244722001239321285->3990223964108476429 + + + + + +-7691167746300457620 + +load + + + +-7691167746300457620->-4244722001239321285 + + + + + +-677720167872670015 + +getitem + + + +-677720167872670015->5461261006319033726 + + + + + +703695923114903713 + +0 + + + +703695923114903713->-677720167872670015 + + + + + +610467737451364798 + + + + +610467737451364798->703695923114903713 + + + + + +-1284649290909782655 + +load + + + +-1284649290909782655->610467737451364798 + + + + + +4954260565731603917 + +getitem + + + +4954260565731603917->-7166388410935432886 + + + + + +6065854745733972523 + +0 + + + +6065854745733972523->4954260565731603917 + + + + + +-1421521668620680614 + + + + +-1421521668620680614->6065854745733972523 + + + + + +4723750323377549725 + +load + + + +4723750323377549725->-1421521668620680614 + + + + + +-284806700810043794 + +getitem + + + +-284806700810043794->2263120686926891481 + + + + + +786788812729907838 + +0 + + + +786788812729907838->-284806700810043794 + + + + + +-8648052469784737474 + + + + +-8648052469784737474->786788812729907838 + + + + + +-6957207571078972927 + +load + + + +-6957207571078972927->-8648052469784737474 + + + + + +-5747245521330058051 + +getitem + + + +-5747245521330058051->415326571119353146 + + + + + +3474263684572956592 + +0 + + + +3474263684572956592->-5747245521330058051 + + + + + +-4629642813864126505 + + + + +-4629642813864126505->3474263684572956592 + + + + + +-9035349495030675016 + +load + + + +-9035349495030675016->-4629642813864126505 + + + + + +-1245526128865393370 + +getitem + + + +-1245526128865393370->5426266767756434401 + + + + + +-9222645013289303445 + +0 + + + +-9222645013289303445->-1245526128865393370 + + + + + +4525915675947385212 + + + + +4525915675947385212->-9222645013289303445 + + + + + +-8585941238342558245 + +load + + + +-8585941238342558245->4525915675947385212 + + + + + +-2625494606179720223 + +getitem + + + +-2625494606179720223->-9018247050215580322 + + + + + +427813071404825978 + +0 + + + +427813071404825978->-2625494606179720223 + + + + + +4569688327757526012 + + + + +4569688327757526012->427813071404825978 + + + + + +-7238376093094081701 + +load + + + +-7238376093094081701->4569688327757526012 + + + + + +5237671667564058391 + +getitem + + + +5237671667564058391->-3403914958339376232 + + + + + +179854510106115633 + +0 + + + +179854510106115633->5237671667564058391 + + + + + +-7999280086959572272 + + + + +-7999280086959572272->179854510106115633 + + + + + +-1995529497496995137 + +load + + + +-1995529497496995137->-7999280086959572272 + + + + + +7670297812689661494 + +getitem + + + +7670297812689661494->-5719043527902053647 + + + + + +6938444803066148596 + +0 + + + +6938444803066148596->7670297812689661494 + + + + + +6174474793922102500 + + + + +6174474793922102500->6938444803066148596 + + + + + +5831277745313119187 + +load + + + +5831277745313119187->6174474793922102500 + + + + + +-4842328677086437287 + +getitem + + + +-4842328677086437287->-6527892572246956634 + + + + + +-9173421290402483930 + +0 + + + +-9173421290402483930->-4842328677086437287 + + + + + +-8702018958714719569 + + + + +-8702018958714719569->-9173421290402483930 + + + + + +4627883914627413024 + +load + + + +4627883914627413024->-8702018958714719569 + + + + + +-1183422250300750438 + +getitem + + + +-1183422250300750438->-652468285272034411 + + + + + +8058211781180719879 + +0 + + + +8058211781180719879->-1183422250300750438 + + + + + +-1632670000273296815 + + + + +-1632670000273296815->8058211781180719879 + + + + + +4751367085483906262 + +load + + + +4751367085483906262->-1632670000273296815 + + + + + +5104980083193982007 + +getitem + + + +5104980083193982007->-8638329855878992520 + + + + + +5450966336068983594 + +0 + + + +5450966336068983594->5104980083193982007 + + + + + +-3272596305282359088 + + + + +-3272596305282359088->5450966336068983594 + + + + + +-6226317125649391425 + +load + + + +-6226317125649391425->-3272596305282359088 + + + + + +1987841702229641765 + +getitem + + + +1987841702229641765->-580544930002749774 + + + + + +-2195351839395649557 + +0 + + + +-2195351839395649557->1987841702229641765 + + + + + +-7706606354624529050 + + + + +-7706606354624529050->-2195351839395649557 + + + + + +8547333718990620825 + +load + + + +8547333718990620825->-7706606354624529050 + + + + + +-1528048104362133502 + +getitem + + + +-1528048104362133502->-136855482198796275 + + + + + +8958873065559969620 + +0 + + + +8958873065559969620->-1528048104362133502 + + + + + +4687521689413553151 + + + + +4687521689413553151->8958873065559969620 + + + + + +-6968578760288191504 + +load + + + +-6968578760288191504->4687521689413553151 + + + + + +-4641469845029898451 + +getitem + + + +-4641469845029898451->-1045150118270834198 + + + + + +3710109415852231983 + +0 + + + +3710109415852231983->-4641469845029898451 + + + + + +246788694877683612 + + + + +246788694877683612->3710109415852231983 + + + + + +1403698479661656251 + +load + + + +1403698479661656251->246788694877683612 + + + + + +5364981716809048487 + +getitem + + + +5364981716809048487->-7485669085233196760 + + + + + +2143787733417515436 + +0 + + + +2143787733417515436->5364981716809048487 + + + + + +7853428123183287869 + + + + +7853428123183287869->2143787733417515436 + + + + + +1583051241306401202 + +load + + + +1583051241306401202->7853428123183287869 + + + + + +-937933158025287406 + +getitem + + + +-937933158025287406->-1994460539825996579 + + + + + +-8564905118049479104 + +0 + + + +-8564905118049479104->-937933158025287406 + + + + + +-6915743596092666709 + + + + +-6915743596092666709->-8564905118049479104 + + + + + +-94202168548183012 + +load + + + +-94202168548183012->-6915743596092666709 + + + + + +6173506395418679853 + +getitem + + + +6173506395418679853->-3337138523753823510 + + + + + +3062812995947545766 + +0 + + + +3062812995947545766->6173506395418679853 + + + + + +-1645355383960227417 + + + + +-1645355383960227417->3062812995947545766 + + + + + +4247792041930459144 + +load + + + +4247792041930459144->-1645355383960227417 + + + + + +-5008529995501388656 + +getitem + + + +-5008529995501388656->-5263884262348792481 + + + + + +2426287656778243545 + +0 + + + +2426287656778243545->-5008529995501388656 + + + + + +-6172081826483450994 + + + + +-6172081826483450994->2426287656778243545 + + + + + +-9141103578580228975 + +load + + + +-9141103578580228975->-6172081826483450994 + + + + + +3995104000713683810 + +getitem + + + +3995104000713683810->-2949480582474181971 + + + + + +173619719773676067 + +0 + + + +173619719773676067->3995104000713683810 + + + + + +-476234237290789473 + + + + +-476234237290789473->173619719773676067 + + + + + +-4340739614528727216 + +load + + + +-4340739614528727216->-476234237290789473 + + + + + +6552053339417654057 + +load_lineardiscriminantanalysis + + + +6552053339417654057->-1384364058066739274 + + + + + diff --git a/doc/img/xarray-sample-graph.svg b/doc/img/xarray-sample-graph.svg new file mode 100644 index 0000000000000000000000000000000000000000..2ff2b93e360380b6fcfb125aee0aa2ce9b40c593 --- /dev/null +++ b/doc/img/xarray-sample-graph.svg @@ -0,0 +1,12929 @@ + + + + + + +%3 + + + +3600477147361072112 + +lineardiscriminantanalysis.decision_function + + + +8076824695978972159 + +(0, 0) + + + +3600477147361072112->8076824695978972159 + + + + + +-6898596593997659912 + + + + +-6898596593997659912->3600477147361072112 + + + + + +-116920455143595687 + +lineardiscriminantanalysis.decision_function + + + +-6898596593997659912->-116920455143595687 + + + + + +91860516150646466 + +lineardiscriminantanalysis.decision_function + + + +-6898596593997659912->91860516150646466 + + + + + +4562292878548191906 + +(0, 0) + + + +4562292878548191906->3600477147361072112 + + + + + +-1410407832817692817 + +finalize + + + +4562292878548191906->-1410407832817692817 + + + + + +8076825957175970982 + +(1, 0) + + + +-116920455143595687->8076825957175970982 + + + + + +4562291617351193083 + +(1, 0) + + + +4562291617351193083->-116920455143595687 + + + + + +4562291617351193083->-1410407832817692817 + + + + + +8076827218372969805 + +(2, 0) + + + +91860516150646466->8076827218372969805 + + + + + +4562295400942189552 + +(2, 0) + + + +4562295400942189552->91860516150646466 + + + + + +4562295400942189552->-1410407832817692817 + + + + + +-3080252576304091627 + +pca.transform + + + +-3080252576304091627->4562292878548191906 + + + + + +-7936218787217421713 + +(0, 0) + + + +-7936218787217421713->-3080252576304091627 + + + + + +-7090751056991223943 + +finalize + + + +-7936218787217421713->-7090751056991223943 + + + + + +7513788470325875727 + + + + +7513788470325875727->-3080252576304091627 + + + + + +748747861179662508 + +pca.transform + + + +7513788470325875727->748747861179662508 + + + + + +730311865961669791 + +pca.transform + + + +7513788470325875727->730311865961669791 + + + + + +748747861179662508->4562291617351193083 + + + + + +-7936217526020422890 + +(1, 0) + + + +-7936217526020422890->748747861179662508 + + + + + +-7936217526020422890->-7090751056991223943 + + + + + +730311865961669791->4562295400942189552 + + + + + +-7936216264823424067 + +(2, 0) + + + +-7936216264823424067->730311865961669791 + + + + + +-7936216264823424067->-7090751056991223943 + + + + + +6454248045587798368 + +standardscaler.transform + + + +6454248045587798368->-7936218787217421713 + + + + + +-3043622264449125002 + + + + +-3043622264449125002->6454248045587798368 + + + + + +-4394159395897317943 + +standardscaler.transform + + + +-3043622264449125002->-4394159395897317943 + + + + + +-1660078170104162254 + +standardscaler.transform + + + +-3043622264449125002->-1660078170104162254 + + + + + +-5648791518138688026 + +(0, 0) + + + +-5648791518138688026->6454248045587798368 + + + + + +-1779428656218575167 + +finalize + + + +-5648791518138688026->-1779428656218575167 + + + + + +-4394159395897317943->-7936217526020422890 + + + + + +-5648792779335686849 + +(1, 0) + + + +-5648792779335686849->-4394159395897317943 + + + + + +-5648792779335686849->-1779428656218575167 + + + + + +-1660078170104162254->-7936216264823424067 + + + + + +-5648788995744690380 + +(2, 0) + + + +-5648788995744690380->-1660078170104162254 + + + + + +-5648788995744690380->-1779428656218575167 + + + + + +3269023060825093145 + +rechunk-merge + + + +3269023060825093145->-5648791518138688026 + + + + + +-6682322405173199104 + +(35, 0) + + + +-6682322405173199104->3269023060825093145 + + + + + +-6682367808265156732 + +(31, 0) + + + +-6682367808265156732->3269023060825093145 + + + + + +-6682309793203210874 + +(45, 0) + + + +-6682309793203210874->3269023060825093145 + + + + + +-6682384203826141431 + +(18, 0) + + + +-6682384203826141431->3269023060825093145 + + + + + +-6682355196295168502 + +(9, 0) + + + +-6682355196295168502->3269023060825093145 + + + + + +-6682326188764195573 + +(32, 0) + + + +-6682326188764195573->3269023060825093145 + + + + + +-6682371591856153201 + +(28, 0) + + + +-6682371591856153201->3269023060825093145 + + + + + +-6682313576794207343 + +(42, 0) + + + +-6682313576794207343->3269023060825093145 + + + + + +-6682358979886164971 + +(6, 0) + + + +-6682358979886164971->3269023060825093145 + + + + + +-6682375375447149670 + +(25, 0) + + + +-6682375375447149670->3269023060825093145 + + + + + +-6682346367916176741 + +(48, 0) + + + +-6682346367916176741->3269023060825093145 + + + + + +-6682317360385203812 + +(39, 0) + + + +-6682317360385203812->3269023060825093145 + + + + + +-6682362763477161440 + +(3, 0) + + + +-6682362763477161440->3269023060825093145 + + + + + +-6682379159038146139 + +(22, 0) + + + +-6682379159038146139->3269023060825093145 + + + + + +-6682350151507173210 + +(13, 0) + + + +-6682350151507173210->3269023060825093145 + + + + + +-6682321143976200281 + +(36, 0) + + + +-6682321143976200281->3269023060825093145 + + + + + +-6682366547068157909 + +(0, 0) + + + +-6682366547068157909->3269023060825093145 + + + + + +-6682308532006212051 + +(46, 0) + + + +-6682308532006212051->3269023060825093145 + + + + + +-6682382942629142608 + +(19, 0) + + + +-6682382942629142608->3269023060825093145 + + + + + +-6682353935098169679 + +(10, 0) + + + +-6682353935098169679->3269023060825093145 + + + + + +-6682324927567196750 + +(33, 0) + + + +-6682324927567196750->3269023060825093145 + + + + + +-6682370330659154378 + +(29, 0) + + + +-6682370330659154378->3269023060825093145 + + + + + +-6682312315597208520 + +(43, 0) + + + +-6682312315597208520->3269023060825093145 + + + + + +-6682386726220139077 + +(16, 0) + + + +-6682386726220139077->3269023060825093145 + + + + + +-6682357718689166148 + +(7, 0) + + + +-6682357718689166148->3269023060825093145 + + + + + +-6682374114250150847 + +(26, 0) + + + +-6682374114250150847->3269023060825093145 + + + + + +-6682345106719177918 + +(49, 0) + + + +-6682345106719177918->3269023060825093145 + + + + + +-6682316099188204989 + +(40, 0) + + + +-6682316099188204989->3269023060825093145 + + + + + +-6682361502280162617 + +(4, 0) + + + +-6682361502280162617->3269023060825093145 + + + + + +-6682377897841147316 + +(23, 0) + + + +-6682377897841147316->3269023060825093145 + + + + + +-6682348890310174387 + +(14, 0) + + + +-6682348890310174387->3269023060825093145 + + + + + +-6682319882779201458 + +(37, 0) + + + +-6682319882779201458->3269023060825093145 + + + + + +-6682365285871159086 + +(1, 0) + + + +-6682365285871159086->3269023060825093145 + + + + + +-6682307270809213228 + +(47, 0) + + + +-6682307270809213228->3269023060825093145 + + + + + +-6682381681432143785 + +(20, 0) + + + +-6682381681432143785->3269023060825093145 + + + + + +-6682352673901170856 + +(11, 0) + + + +-6682352673901170856->3269023060825093145 + + + + + +-6682323666370197927 + +(34, 0) + + + +-6682323666370197927->3269023060825093145 + + + + + +-6682369069462155555 + +(30, 0) + + + +-6682369069462155555->3269023060825093145 + + + + + +-6682311054400209697 + +(44, 0) + + + +-6682311054400209697->3269023060825093145 + + + + + +-6682385465023140254 + +(17, 0) + + + +-6682385465023140254->3269023060825093145 + + + + + +-6682356457492167325 + +(8, 0) + + + +-6682356457492167325->3269023060825093145 + + + + + +-6682372853053152024 + +(27, 0) + + + +-6682372853053152024->3269023060825093145 + + + + + +-6682314837991206166 + +(41, 0) + + + +-6682314837991206166->3269023060825093145 + + + + + +-6682360241083163794 + +(5, 0) + + + +-6682360241083163794->3269023060825093145 + + + + + +-6682376636644148493 + +(24, 0) + + + +-6682376636644148493->3269023060825093145 + + + + + +-6682347629113175564 + +(15, 0) + + + +-6682347629113175564->3269023060825093145 + + + + + +-6682318621582202635 + +(38, 0) + + + +-6682318621582202635->3269023060825093145 + + + + + +-6682364024674160263 + +(2, 0) + + + +-6682364024674160263->3269023060825093145 + + + + + +-6682380420235144962 + +(21, 0) + + + +-6682380420235144962->3269023060825093145 + + + + + +-6682351412704172033 + +(12, 0) + + + +-6682351412704172033->3269023060825093145 + + + + + +1313411512143126192 + +rechunk-merge + + + +1313411512143126192->-5648792779335686849 + + + + + +-6682454830858075519 + +(90, 0) + + + +-6682454830858075519->1313411512143126192 + + + + + +-6682338800734183803 + +(54, 0) + + + +-6682338800734183803->1313411512143126192 + + + + + +-6682442218888087289 + +(68, 0) + + + +-6682442218888087289->1313411512143126192 + + + + + +-6682458614449071988 + +(87, 0) + + + +-6682458614449071988->1313411512143126192 + + + + + +-6682429606918099059 + +(78, 0) + + + +-6682429606918099059->1313411512143126192 + + + + + +-6682342584325180272 + +(51, 0) + + + +-6682342584325180272->1313411512143126192 + + + + + +-6682446002479083758 + +(65, 0) + + + +-6682446002479083758->1313411512143126192 + + + + + +-6682329972355192042 + +(61, 0) + + + +-6682329972355192042->1313411512143126192 + + + + + +-6682462398040068457 + +(84, 0) + + + +-6682462398040068457->1313411512143126192 + + + + + +-6682433390509095528 + +(75, 0) + + + +-6682433390509095528->1313411512143126192 + + + + + +-6682404382978122599 + +(98, 0) + + + +-6682404382978122599->1313411512143126192 + + + + + +-6682449786070080227 + +(94, 0) + + + +-6682449786070080227->1313411512143126192 + + + + + +-6682333755946188511 + +(58, 0) + + + +-6682333755946188511->1313411512143126192 + + + + + +-6682466181631064926 + +(81, 0) + + + +-6682466181631064926->1313411512143126192 + + + + + +-6682437174100091997 + +(72, 0) + + + +-6682437174100091997->1313411512143126192 + + + + + +-6682453569661076696 + +(91, 0) + + + +-6682453569661076696->1313411512143126192 + + + + + +-6682337539537184980 + +(55, 0) + + + +-6682337539537184980->1313411512143126192 + + + + + +-6682440957691088466 + +(69, 0) + + + +-6682440957691088466->1313411512143126192 + + + + + +-6682457353252073165 + +(88, 0) + + + +-6682457353252073165->1313411512143126192 + + + + + +-6682428345721100236 + +(79, 0) + + + +-6682428345721100236->1313411512143126192 + + + + + +-6682341323128181449 + +(52, 0) + + + +-6682341323128181449->1313411512143126192 + + + + + +-6682444741282084935 + +(66, 0) + + + +-6682444741282084935->1313411512143126192 + + + + + +-6682328711158193219 + +(62, 0) + + + +-6682328711158193219->1313411512143126192 + + + + + +-6682461136843069634 + +(85, 0) + + + +-6682461136843069634->1313411512143126192 + + + + + +-6682432129312096705 + +(76, 0) + + + +-6682432129312096705->1313411512143126192 + + + + + +-6682403121781123776 + +(99, 0) + + + +-6682403121781123776->1313411512143126192 + + + + + +-6682448524873081404 + +(95, 0) + + + +-6682448524873081404->1313411512143126192 + + + + + +-6682332494749189688 + +(59, 0) + + + +-6682332494749189688->1313411512143126192 + + + + + +-6682464920434066103 + +(82, 0) + + + +-6682464920434066103->1313411512143126192 + + + + + +-6682435912903093174 + +(73, 0) + + + +-6682435912903093174->1313411512143126192 + + + + + +-6682406905372120245 + +(96, 0) + + + +-6682406905372120245->1313411512143126192 + + + + + +-6682452308464077873 + +(92, 0) + + + +-6682452308464077873->1313411512143126192 + + + + + +-6682336278340186157 + +(56, 0) + + + +-6682336278340186157->1313411512143126192 + + + + + +-6682439696494089643 + +(70, 0) + + + +-6682439696494089643->1313411512143126192 + + + + + +-6682456092055074342 + +(89, 0) + + + +-6682456092055074342->1313411512143126192 + + + + + +-6682340061931182626 + +(53, 0) + + + +-6682340061931182626->1313411512143126192 + + + + + +-6682443480085086112 + +(67, 0) + + + +-6682443480085086112->1313411512143126192 + + + + + +-6682327449961194396 + +(63, 0) + + + +-6682327449961194396->1313411512143126192 + + + + + +-6682459875646070811 + +(86, 0) + + + +-6682459875646070811->1313411512143126192 + + + + + +-6682430868115097882 + +(77, 0) + + + +-6682430868115097882->1313411512143126192 + + + + + +-6682343845522179095 + +(50, 0) + + + +-6682343845522179095->1313411512143126192 + + + + + +-6682447263676082581 + +(64, 0) + + + +-6682447263676082581->1313411512143126192 + + + + + +-6682331233552190865 + +(60, 0) + + + +-6682331233552190865->1313411512143126192 + + + + + +-6682463659237067280 + +(83, 0) + + + +-6682463659237067280->1313411512143126192 + + + + + +-6682434651706094351 + +(74, 0) + + + +-6682434651706094351->1313411512143126192 + + + + + +-6682405644175121422 + +(97, 0) + + + +-6682405644175121422->1313411512143126192 + + + + + +-6682451047267079050 + +(93, 0) + + + +-6682451047267079050->1313411512143126192 + + + + + +-6682335017143187334 + +(57, 0) + + + +-6682335017143187334->1313411512143126192 + + + + + +-6682467442828063749 + +(80, 0) + + + +-6682467442828063749->1313411512143126192 + + + + + +-6682438435297090820 + +(71, 0) + + + +-6682438435297090820->1313411512143126192 + + + + + +5634964174662352483 + +rechunk-merge + + + +5634964174662352483->-5648788995744690380 + + + + + +-6682425823327102590 + +(113, 0) + + + +-6682425823327102590->5634964174662352483 + + + + + +-6682396815796129661 + +(104, 0) + + + +-6682396815796129661->5634964174662352483 + + + + + +-6682413211357114360 + +(123, 0) + + + +-6682413211357114360->5634964174662352483 + + + + + +-6682222770610292087 + +(146, 0) + + + +-6682222770610292087->5634964174662352483 + + + + + +-6682193763079319158 + +(137, 0) + + + +-6682193763079319158->5634964174662352483 + + + + + +-6682400599387126130 + +(101, 0) + + + +-6682400599387126130->5634964174662352483 + + + + + +-6682416994948110829 + +(120, 0) + + + +-6682416994948110829->5634964174662352483 + + + + + +-6682387987417137900 + +(111, 0) + + + +-6682387987417137900->5634964174662352483 + + + + + +-6682197546670315627 + +(134, 0) + + + +-6682197546670315627->5634964174662352483 + + + + + +-6682420778539107298 + +(117, 0) + + + +-6682420778539107298->5634964174662352483 + + + + + +-6682391771008134369 + +(108, 0) + + + +-6682391771008134369->5634964174662352483 + + + + + +-6682201330261312096 + +(131, 0) + + + +-6682201330261312096->5634964174662352483 + + + + + +-6682408166569119068 + +(127, 0) + + + +-6682408166569119068->5634964174662352483 + + + + + +-6682188718291323866 + +(141, 0) + + + +-6682188718291323866->5634964174662352483 + + + + + +-6682424562130103767 + +(114, 0) + + + +-6682424562130103767->5634964174662352483 + + + + + +-6682395554599130838 + +(105, 0) + + + +-6682395554599130838->5634964174662352483 + + + + + +-6682205113852308565 + +(128, 0) + + + +-6682205113852308565->5634964174662352483 + + + + + +-6682411950160115537 + +(124, 0) + + + +-6682411950160115537->5634964174662352483 + + + + + +-6682221509413293264 + +(147, 0) + + + +-6682221509413293264->5634964174662352483 + + + + + +-6682192501882320335 + +(138, 0) + + + +-6682192501882320335->5634964174662352483 + + + + + +-6682399338190127307 + +(102, 0) + + + +-6682399338190127307->5634964174662352483 + + + + + +-6682415733751112006 + +(121, 0) + + + +-6682415733751112006->5634964174662352483 + + + + + +-6682225293004289733 + +(144, 0) + + + +-6682225293004289733->5634964174662352483 + + + + + +-6682196285473316804 + +(135, 0) + + + +-6682196285473316804->5634964174662352483 + + + + + +-6682419517342108475 + +(118, 0) + + + +-6682419517342108475->5634964174662352483 + + + + + +-6682390509811135546 + +(109, 0) + + + +-6682390509811135546->5634964174662352483 + + + + + +-6682200069064313273 + +(132, 0) + + + +-6682200069064313273->5634964174662352483 + + + + + +-6682187457094325043 + +(142, 0) + + + +-6682187457094325043->5634964174662352483 + + + + + +-6682423300933104944 + +(115, 0) + + + +-6682423300933104944->5634964174662352483 + + + + + +-6682394293402132015 + +(106, 0) + + + +-6682394293402132015->5634964174662352483 + + + + + +-6682203852655309742 + +(129, 0) + + + +-6682203852655309742->5634964174662352483 + + + + + +-6682410688963116714 + +(125, 0) + + + +-6682410688963116714->5634964174662352483 + + + + + +-6682220248216294441 + +(148, 0) + + + +-6682220248216294441->5634964174662352483 + + + + + +-6682191240685321512 + +(139, 0) + + + +-6682191240685321512->5634964174662352483 + + + + + +-6682427084524101413 + +(112, 0) + + + +-6682427084524101413->5634964174662352483 + + + + + +-6682398076993128484 + +(103, 0) + + + +-6682398076993128484->5634964174662352483 + + + + + +-6682414472554113183 + +(122, 0) + + + +-6682414472554113183->5634964174662352483 + + + + + +-6682224031807290910 + +(145, 0) + + + +-6682224031807290910->5634964174662352483 + + + + + +-6682195024276317981 + +(136, 0) + + + +-6682195024276317981->5634964174662352483 + + + + + +-6682401860584124953 + +(100, 0) + + + +-6682401860584124953->5634964174662352483 + + + + + +-6682418256145109652 + +(119, 0) + + + +-6682418256145109652->5634964174662352483 + + + + + +-6682389248614136723 + +(110, 0) + + + +-6682389248614136723->5634964174662352483 + + + + + +-6682198807867314450 + +(133, 0) + + + +-6682198807867314450->5634964174662352483 + + + + + +-6682186195897326220 + +(143, 0) + + + +-6682186195897326220->5634964174662352483 + + + + + +-6682422039736106121 + +(116, 0) + + + +-6682422039736106121->5634964174662352483 + + + + + +-6682393032205133192 + +(107, 0) + + + +-6682393032205133192->5634964174662352483 + + + + + +-6682202591458310919 + +(130, 0) + + + +-6682202591458310919->5634964174662352483 + + + + + +-6682409427766117891 + +(126, 0) + + + +-6682409427766117891->5634964174662352483 + + + + + +-6682218987019295618 + +(149, 0) + + + +-6682218987019295618->5634964174662352483 + + + + + +-6682189979488322689 + +(140, 0) + + + +-6682189979488322689->5634964174662352483 + + + + + +4324843068462219506 + +(0, 0) + + + +4324843068462219506->-6682366547068157909 + + + + + +846623131841810799 + +(0, 0) + + + +846623131841810799->-6682365285871159086 + + + + + +7115880869200564313 + +(0, 0) + + + +7115880869200564313->-6682364024674160263 + + + + + +3353142937839971912 + +(0, 0) + + + +3353142937839971912->-6682362763477161440 + + + + + +-7353800856440566296 + +(0, 0) + + + +-7353800856440566296->-6682361502280162617 + + + + + +-7816431823838339094 + +(0, 0) + + + +-7816431823838339094->-6682360241083163794 + + + + + +7472031983664874075 + +(0, 0) + + + +7472031983664874075->-6682358979886164971 + + + + + +865204646112660332 + +(0, 0) + + + +865204646112660332->-6682357718689166148 + + + + + +-4860994808443904956 + +(0, 0) + + + +-4860994808443904956->-6682356457492167325 + + + + + +-5919758507311351997 + +(0, 0) + + + +-5919758507311351997->-6682355196295168502 + + + + + +940648551028672436 + +(0, 0) + + + +940648551028672436->-6682353935098169679 + + + + + +1390441574970014797 + +(0, 0) + + + +1390441574970014797->-6682352673901170856 + + + + + +5279516702841286850 + +(0, 0) + + + +5279516702841286850->-6682351412704172033 + + + + + +6322833387481347626 + +(0, 0) + + + +6322833387481347626->-6682350151507173210 + + + + + +-7901305553299643303 + +(0, 0) + + + +-7901305553299643303->-6682348890310174387 + + + + + +-4134924012769425316 + +(0, 0) + + + +-4134924012769425316->-6682347629113175564 + + + + + +-607902844209591260 + +(0, 0) + + + +-607902844209591260->-6682386726220139077 + + + + + +-1480145074489202358 + +(0, 0) + + + +-1480145074489202358->-6682385465023140254 + + + + + +1501437743022068449 + +(0, 0) + + + +1501437743022068449->-6682384203826141431 + + + + + +3853735663077736328 + +(0, 0) + + + +3853735663077736328->-6682382942629142608 + + + + + +3886435401764634545 + +(0, 0) + + + +3886435401764634545->-6682381681432143785 + + + + + +-6322353191458840973 + +(0, 0) + + + +-6322353191458840973->-6682380420235144962 + + + + + +-7976592127834835596 + +(0, 0) + + + +-7976592127834835596->-6682379159038146139 + + + + + +-384270355225398158 + +(0, 0) + + + +-384270355225398158->-6682377897841147316 + + + + + +-5766323966358398759 + +(0, 0) + + + +-5766323966358398759->-6682376636644148493 + + + + + +-4430939461146870009 + +(0, 0) + + + +-4430939461146870009->-6682375375447149670 + + + + + +4546898300074380046 + +(0, 0) + + + +4546898300074380046->-6682374114250150847 + + + + + +5841699935341066047 + +(0, 0) + + + +5841699935341066047->-6682372853053152024 + + + + + +6589129532918543995 + +(0, 0) + + + +6589129532918543995->-6682371591856153201 + + + + + +-1899809981493955121 + +(0, 0) + + + +-1899809981493955121->-6682370330659154378 + + + + + +-3815727849239832071 + +(0, 0) + + + +-3815727849239832071->-6682369069462155555 + + + + + +-3694059908182240649 + +(0, 0) + + + +-3694059908182240649->-6682367808265156732 + + + + + +4208001313932568809 + +(0, 0) + + + +4208001313932568809->-6682326188764195573 + + + + + +536355734026172540 + +(0, 0) + + + +536355734026172540->-6682324927567196750 + + + + + +2089618883636455018 + +(0, 0) + + + +2089618883636455018->-6682323666370197927 + + + + + +6860121783725876674 + +(0, 0) + + + +6860121783725876674->-6682322405173199104 + + + + + +6566016744379141599 + +(0, 0) + + + +6566016744379141599->-6682321143976200281 + + + + + +3031736667088552506 + +(0, 0) + + + +3031736667088552506->-6682319882779201458 + + + + + +5803903308281110907 + +(0, 0) + + + +5803903308281110907->-6682318621582202635 + + + + + +-7773524306047502560 + +(0, 0) + + + +-7773524306047502560->-6682317360385203812 + + + + + +-6275808647681100021 + +(0, 0) + + + +-6275808647681100021->-6682316099188204989 + + + + + +1233718937542266216 + +(0, 0) + + + +1233718937542266216->-6682314837991206166 + + + + + +2264668739699040286 + +(0, 0) + + + +2264668739699040286->-6682313576794207343 + + + + + +-2491058834949581471 + +(0, 0) + + + +-2491058834949581471->-6682312315597208520 + + + + + +7826076427390015437 + +(0, 0) + + + +7826076427390015437->-6682311054400209697 + + + + + +-8921919204293721147 + +(0, 0) + + + +-8921919204293721147->-6682309793203210874 + + + + + +-1388431331548407270 + +(0, 0) + + + +-1388431331548407270->-6682308532006212051 + + + + + +-5759932672586031118 + +(0, 0) + + + +-5759932672586031118->-6682307270809213228 + + + + + +-294819988405127903 + +(0, 0) + + + +-294819988405127903->-6682346367916176741 + + + + + +1596127325756126685 + +(0, 0) + + + +1596127325756126685->-6682345106719177918 + + + + + +3449552638656669460 + +(0, 0) + + + +3449552638656669460->-6682343845522179095 + + + + + +-149410578779137191 + +(0, 0) + + + +-149410578779137191->-6682342584325180272 + + + + + +-1677394834872325020 + +(0, 0) + + + +-1677394834872325020->-6682341323128181449 + + + + + +-4800203862132063446 + +(0, 0) + + + +-4800203862132063446->-6682340061931182626 + + + + + +1048635228090560149 + +(0, 0) + + + +1048635228090560149->-6682338800734183803 + + + + + +708811165045590837 + +(0, 0) + + + +708811165045590837->-6682337539537184980 + + + + + +4158015556807211168 + +(0, 0) + + + +4158015556807211168->-6682336278340186157 + + + + + +477871324011177686 + +(0, 0) + + + +477871324011177686->-6682335017143187334 + + + + + +-3448666182793330575 + +(0, 0) + + + +-3448666182793330575->-6682333755946188511 + + + + + +4556622126644949103 + +(0, 0) + + + +4556622126644949103->-6682332494749189688 + + + + + +-3115422883450317208 + +(0, 0) + + + +-3115422883450317208->-6682331233552190865 + + + + + +-917382625428800789 + +(0, 0) + + + +-917382625428800789->-6682329972355192042 + + + + + +3071413651875409532 + +(0, 0) + + + +3071413651875409532->-6682328711158193219 + + + + + +-6607520460762493623 + +(0, 0) + + + +-6607520460762493623->-6682327449961194396 + + + + + +-2641152834035925289 + +(0, 0) + + + +-2641152834035925289->-6682447263676082581 + + + + + +-3914701640663408729 + +(0, 0) + + + +-3914701640663408729->-6682446002479083758 + + + + + +2704644763074642745 + +(0, 0) + + + +2704644763074642745->-6682444741282084935 + + + + + +-7055531086907983252 + +(0, 0) + + + +-7055531086907983252->-6682443480085086112 + + + + + +-4590400647391865055 + +(0, 0) + + + +-4590400647391865055->-6682442218888087289 + + + + + +527308255050329434 + +(0, 0) + + + +527308255050329434->-6682440957691088466 + + + + + +-7976423278604697475 + +(0, 0) + + + +-7976423278604697475->-6682439696494089643 + + + + + +-2689990581008106774 + +(0, 0) + + + +-2689990581008106774->-6682438435297090820 + + + + + +-5709234407796363404 + +(0, 0) + + + +-5709234407796363404->-6682437174100091997 + + + + + +-6753280804676581768 + +(0, 0) + + + +-6753280804676581768->-6682435912903093174 + + + + + +2775932428387097077 + +(0, 0) + + + +2775932428387097077->-6682434651706094351 + + + + + +-4336439416641389535 + +(0, 0) + + + +-4336439416641389535->-6682433390509095528 + + + + + +-7940689198374674073 + +(0, 0) + + + +-7940689198374674073->-6682432129312096705 + + + + + +-7681202336798945857 + +(0, 0) + + + +-7681202336798945857->-6682430868115097882 + + + + + +-1531968322951474159 + +(0, 0) + + + +-1531968322951474159->-6682429606918099059 + + + + + +2650597237067918253 + +(0, 0) + + + +2650597237067918253->-6682428345721100236 + + + + + +8746257865553081857 + +(0, 0) + + + +8746257865553081857->-6682467442828063749 + + + + + +-3318204048424780425 + +(0, 0) + + + +-3318204048424780425->-6682466181631064926 + + + + + +6556769633797541453 + +(0, 0) + + + +6556769633797541453->-6682464920434066103 + + + + + +8113603200135471194 + +(0, 0) + + + +8113603200135471194->-6682463659237067280 + + + + + +7533028914859791369 + +(0, 0) + + + +7533028914859791369->-6682462398040068457 + + + + + +549397428693599625 + +(0, 0) + + + +549397428693599625->-6682461136843069634 + + + + + +-5824798258652998543 + +(0, 0) + + + +-5824798258652998543->-6682459875646070811 + + + + + +-6571032075254168603 + +(0, 0) + + + +-6571032075254168603->-6682458614449071988 + + + + + +-4139762078213783481 + +(0, 0) + + + +-4139762078213783481->-6682457353252073165 + + + + + +-820923624473820606 + +(0, 0) + + + +-820923624473820606->-6682456092055074342 + + + + + +2265053821151815058 + +(0, 0) + + + +2265053821151815058->-6682454830858075519 + + + + + +1368203126353623181 + +(0, 0) + + + +1368203126353623181->-6682453569661076696 + + + + + +-1454431208038845256 + +(0, 0) + + + +-1454431208038845256->-6682452308464077873 + + + + + +2525423067391358705 + +(0, 0) + + + +2525423067391358705->-6682451047267079050 + + + + + +-8780404117103567482 + +(0, 0) + + + +-8780404117103567482->-6682449786070080227 + + + + + +5224731956401992435 + +(0, 0) + + + +5224731956401992435->-6682448524873081404 + + + + + +-5558589334714769044 + +(0, 0) + + + +-5558589334714769044->-6682406905372120245 + + + + + +4251096404020592211 + +(0, 0) + + + +4251096404020592211->-6682405644175121422 + + + + + +4548733406380136541 + +(0, 0) + + + +4548733406380136541->-6682404382978122599 + + + + + +-7938531493015765226 + +(0, 0) + + + +-7938531493015765226->-6682403121781123776 + + + + + +-8565991454570639716 + +(0, 0) + + + +-8565991454570639716->-6682401860584124953 + + + + + +3266490675710319945 + +(0, 0) + + + +3266490675710319945->-6682400599387126130 + + + + + +7034396348302274376 + +(0, 0) + + + +7034396348302274376->-6682399338190127307 + + + + + +-3152110092756200038 + +(0, 0) + + + +-3152110092756200038->-6682398076993128484 + + + + + +4677553871332923746 + +(0, 0) + + + +4677553871332923746->-6682396815796129661 + + + + + +4457686728332033337 + +(0, 0) + + + +4457686728332033337->-6682395554599130838 + + + + + +-5007974965692376151 + +(0, 0) + + + +-5007974965692376151->-6682394293402132015 + + + + + +3690958252723122517 + +(0, 0) + + + +3690958252723122517->-6682393032205133192 + + + + + +7275888385088692967 + +(0, 0) + + + +7275888385088692967->-6682391771008134369 + + + + + +-9076941044415982452 + +(0, 0) + + + +-9076941044415982452->-6682390509811135546 + + + + + +6425136640863788464 + +(0, 0) + + + +6425136640863788464->-6682389248614136723 + + + + + +3604682943623884725 + +(0, 0) + + + +3604682943623884725->-6682387987417137900 + + + + + +8433416385834207631 + +(0, 0) + + + +8433416385834207631->-6682427084524101413 + + + + + +-3656443227047426525 + +(0, 0) + + + +-3656443227047426525->-6682425823327102590 + + + + + +1609668560462150032 + +(0, 0) + + + +1609668560462150032->-6682424562130103767 + + + + + +9168906176622161954 + +(0, 0) + + + +9168906176622161954->-6682423300933104944 + + + + + +280732725267668981 + +(0, 0) + + + +280732725267668981->-6682422039736106121 + + + + + +2191576998860956251 + +(0, 0) + + + +2191576998860956251->-6682420778539107298 + + + + + +1385003683621112426 + +(0, 0) + + + +1385003683621112426->-6682419517342108475 + + + + + +-4807733459520525230 + +(0, 0) + + + +-4807733459520525230->-6682418256145109652 + + + + + +-1118566862849504530 + +(0, 0) + + + +-1118566862849504530->-6682416994948110829 + + + + + +-1751846046447145036 + +(0, 0) + + + +-1751846046447145036->-6682415733751112006 + + + + + +-3547187497314077072 + +(0, 0) + + + +-3547187497314077072->-6682414472554113183 + + + + + +-8006228531411693727 + +(0, 0) + + + +-8006228531411693727->-6682413211357114360 + + + + + +3196748699213820235 + +(0, 0) + + + +3196748699213820235->-6682411950160115537 + + + + + +5384256912756550138 + +(0, 0) + + + +5384256912756550138->-6682410688963116714 + + + + + +8270122429446600715 + +(0, 0) + + + +8270122429446600715->-6682409427766117891 + + + + + +5359769916521064793 + +(0, 0) + + + +5359769916521064793->-6682408166569119068 + + + + + +4154293960725124183 + +(0, 0) + + + +4154293960725124183->-6682205113852308565 + + + + + +6518641105865654762 + +(0, 0) + + + +6518641105865654762->-6682203852655309742 + + + + + +-5840856852031344534 + +(0, 0) + + + +-5840856852031344534->-6682202591458310919 + + + + + +3496249253610648233 + +(0, 0) + + + +3496249253610648233->-6682201330261312096 + + + + + +-4343124392439589878 + +(0, 0) + + + +-4343124392439589878->-6682200069064313273 + + + + + +-6922336249026136786 + +(0, 0) + + + +-6922336249026136786->-6682198807867314450 + + + + + +4817667994188843387 + +(0, 0) + + + +4817667994188843387->-6682197546670315627 + + + + + +6444429463582379560 + +(0, 0) + + + +6444429463582379560->-6682196285473316804 + + + + + +-2454322822461865718 + +(0, 0) + + + +-2454322822461865718->-6682195024276317981 + + + + + +4883999050095259383 + +(0, 0) + + + +4883999050095259383->-6682193763079319158 + + + + + +6541333804252588961 + +(0, 0) + + + +6541333804252588961->-6682192501882320335 + + + + + +2388121666400956018 + +(0, 0) + + + +2388121666400956018->-6682191240685321512 + + + + + +-751820163830341751 + +(0, 0) + + + +-751820163830341751->-6682189979488322689 + + + + + +845215797160631391 + +(0, 0) + + + +845215797160631391->-6682188718291323866 + + + + + +7753005725040758493 + +(0, 0) + + + +7753005725040758493->-6682187457094325043 + + + + + +1056611490500769524 + +(0, 0) + + + +1056611490500769524->-6682186195897326220 + + + + + +-7997186219546070831 + +(0, 0) + + + +-7997186219546070831->-6682225293004289733 + + + + + +6242584549460151610 + +(0, 0) + + + +6242584549460151610->-6682224031807290910 + + + + + +7092665598241123026 + +(0, 0) + + + +7092665598241123026->-6682222770610292087 + + + + + +4340466668188297487 + +(0, 0) + + + +4340466668188297487->-6682221509413293264 + + + + + +7146205352267780569 + +(0, 0) + + + +7146205352267780569->-6682220248216294441 + + + + + +-125473242412654239 + +(0, 0) + + + +-125473242412654239->-6682218987019295618 + + + + + +1482383422229400805 + +broadcast_to + + + +1482383422229400805->4324843068462219506 + + + + + +-6349658190635821645 + +0 + + + +-6349658190635821645->1482383422229400805 + + + + + +-2530848551793260634 + + + + +-2530848551793260634->-6349658190635821645 + + + + + +-2461753691369876903 + +getattr + + + +-2461753691369876903->-2530848551793260634 + + + + + +-6131784348207391173 + + + + +-6131784348207391173->-2461753691369876903 + + + + + +6159290720597096032 + +broadcast_to + + + +6159290720597096032->846623131841810799 +