{ "cells": [ { "cell_type": "markdown", "id": "9e20d5ea", "metadata": {}, "source": [ "![](display_images/remars_logo.png)\n", "\n", "# Train a 3D object detector\n", "\n", "Welcome to the training notebook! In the previous notebook you learned about the [A2D2 Dataset](https://www.a2d2.audi/a2d2/en.html), how to visualize it, and how to launch an Amazon SageMaker Ground Truth Labeling Job. \n", "\n", "In this notebook we will walk through how to train a 3D object detection model using Amazon SageMaker. We will:\n", "- Build a custom container\n", "- Setup FSx for Lustre as a data source\n", "- Setup SageMaker Experiments\n", "- Launch a distributed training job on Amazon SageMaker\n", "- Review training job profiling metrics \n", "\n", "Training a 3D object detection model requires a specialized toolset. Point cloud data cannot simply use the same kinds of operations 2D vision models use out of the box. Point cloud data tends to be rather sparse and spread out. The typical way 3D object detection models handle point cloud data is by either using specialized [sparse convolutions](https://arxiv.org/pdf/1711.10275.pdf) or by [voxelizing (generating uniform 3D boxes)](https://arxiv.org/pdf/1711.06396.pdf) the input. [MMDetection3D](https://github.com/open-mmlab/mmdetection3d) has implementations of a variety of different 3D object detection and segmentation models, making model training much easier! We are going to use a model called [3DSSD](https://arxiv.org/pdf/2002.10187.pdf). Some of you who are familiar with the 2D version of SSD will not notice a lot of similarities. It is indeed a single shot detector, but the feature generation it uses is much different, read the paper to learn more about it!\n", "\n", "We will start by installing [SageMaker Experiments](https://docs.aws.amazon.com/sagemaker/latest/dg/experiments.html) and cloning MM3D into our local filesystem.\n", "\n", "Note: **Please use conda_pytorch_p38 as the kernel for this notebook**" ] }, { "cell_type": "code", "execution_count": null, "id": "3e536557", "metadata": {}, "outputs": [], "source": [ "!pip install sagemaker-experiments\n", "!cd container_training && git clone https://github.com/open-mmlab/mmdetection3d.git\n", "!pip install botocore==1.24.42\n", "import IPython\n", "\n", "IPython.Application.instance().kernel.do_shutdown(True)" ] }, { "cell_type": "markdown", "id": "f2af1bfa", "metadata": {}, "source": [ "To install MM3D in your local environment, run the following commands. We aren't going to install MM3D in our kernel because the process takes ~20 minutes and can be complicated by CUDA dependencies. Instead we will build MM3D in our docker image where we can explicitly control the dependencies." ] }, { "cell_type": "code", "execution_count": null, "id": "cbf8f3c1", "metadata": { "scrolled": true }, "outputs": [], "source": [ "## If installing MM3D in your local environment, make sure the CUDA version you use matches the CUDA version PyTorch and MMCV are built with.\n", "\n", "# %%time\n", "# !pip install -U torch==1.8.1 torchvision==0.9.1\n", "# !export MKL_SERVICE_FORCE_INTEL=1 && pip install mmcv-full==1.3.13 -f https://download.openmmlab.com/mmcv/dist/cu110/torch1.8.1/index.html\n", "# !pip install mmdet==2.17.0\n", "# !pip install mmsegmentation==0.18.0\n", "# !cd container_training && git clone https://github.com/iprivit/mmdetection3d.git\n", "# !export MKL_SERVICE_FORCE_INTEL=1 && cd container_training/mmdetection3d && pip install -v -e .\n", "\n", "# import IPython\n", "# IPython.Application.instance().kernel.do_shutdown(True) #automatically restarts kernel" ] }, { "cell_type": "markdown", "id": "822b420b", "metadata": {}, "source": [ "### Initialize clients and import libraries\n", "\n", "Let's import a few libraries and initialize some [boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html) clients" ] }, { "cell_type": "code", "execution_count": 2, "id": "53e98d84", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline\n", "import os\n", "import sys\n", "import json\n", "import yaml\n", "import tarfile\n", "import boto3\n", "import sagemaker\n", "import multiprocessing\n", "import numpy as np\n", "import pandas as pd\n", "from datetime import datetime\n", "from glob import glob\n", "from tqdm import tqdm\n", "from PIL import Image\n", "from matplotlib import patches\n", "from sagemaker.pytorch.estimator import PyTorch\n", "from tqdm.contrib.concurrent import process_map\n", "import torch\n", "import torchvision\n", "from sagemaker.debugger import ProfilerConfig, FrameworkProfile, DetailedProfilingConfig, DataloaderProfilingConfig, PythonProfilingConfig, Rule, ProfilerRule, rule_configs\n", "\n", "def timestamp_to_utc(timestamp):\n", " utc_dt = datetime.utcfromtimestamp(timestamp)\n", " return utc_dt.strftime('%Y-%m-%d %H:%M:%S')\n", "\n", "# set device for PyTorch to use, if on a GPU instance use cuda\n", "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", "\n", "# initialize clients to make boto3 calls \n", "role = sagemaker.get_execution_role()\n", "sagemaker_session = sagemaker.Session()\n", "b3sess = boto3.Session()\n", "fsx_client = boto3.client('fsx')\n", "cfn_client = boto3.client('cloudformation')\n", "sm = b3sess.client('sagemaker')\n", "region = b3sess.region_name\n", "\n", "# set the S3 bucket you'll use\n", "bucket = sagemaker_session.default_bucket() \n", "prefix_output = 'training_res'\n", "\n", "# Use cloudformation to describe the stack we've built to grab resource names \n", "stack_res = cfn_client.describe_stack_resources(\n", " StackName='threedee',\n", ")\n", "resource_dict = {}\n", "for stack in stack_res['StackResources']:\n", " resource_dict[stack['ResourceType']] = stack['PhysicalResourceId']\n", " \n", "# grab subnets and security groups so we can run our training in our VPC\n", "subnets = [resource_dict['AWS::EC2::Subnet']]\n", "security_group_ids = [resource_dict['AWS::EC2::SecurityGroup']]" ] }, { "cell_type": "markdown", "id": "5554c4d6", "metadata": {}, "source": [ "### View Dockerfile\n", "\n", "Since MMDetection3D has rather complex dependencies, the easiest way to install it in our environment is by using [Docker](https://www.docker.com/resources/what-container). Docker allows us to create self contained images with all of the dependencies necessary to run MMDetection3D. Let's take a look at the Dockerfile we are going to use to build our image." ] }, { "cell_type": "code", "execution_count": 3, "id": "4a00eca2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[37m# # Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\u001b[39;49;00m\n", "\n", "\u001b[34mFROM\u001b[39;49;00m \u001b[33m763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-training:1.8.1-gpu-py36-cu111-ubuntu18.04\u001b[39;49;00m\n", "\n", "\u001b[34mLABEL\u001b[39;49;00m \u001b[31mauthors\u001b[39;49;00m=\u001b[33m\"privisaa@amazon.com\"\u001b[39;49;00m\n", "\n", "\u001b[34mENV\u001b[39;49;00m \u001b[31mTORCH_CUDA_ARCH_LIST\u001b[39;49;00m=\u001b[33m\"5.2 6.0 6.1 7.0 7.5 8.0+PTX\"\u001b[39;49;00m\n", "\u001b[34mENV\u001b[39;49;00m \u001b[31mTORCH_NVCC_FLAGS\u001b[39;49;00m=\u001b[33m\"-Xfatbin -compress-all\"\u001b[39;49;00m\n", "\u001b[34mENV\u001b[39;49;00m \u001b[31mCMAKE_PREFIX_PATH\u001b[39;49;00m=\u001b[33m\"\u001b[39;49;00m\u001b[34m$(\u001b[39;49;00mdirname \u001b[34m$(\u001b[39;49;00mwhich conda\u001b[34m)\u001b[39;49;00m\u001b[34m)\u001b[39;49;00m\u001b[33m/../\u001b[39;49;00m\u001b[33m\"\u001b[39;49;00m\n", "\u001b[34mENV\u001b[39;49;00m \u001b[31mFORCE_CUDA\u001b[39;49;00m=\u001b[33m\"1\"\u001b[39;49;00m\n", "\u001b[37m# ENV CUDA_HOME=\"/usr/local/cuda/\"\u001b[39;49;00m\n", "\n", "\u001b[37m# RUN apt-key del 7fa2af80\u001b[39;49;00m\n", "\n", "\u001b[37m# RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub\u001b[39;49;00m\n", "\n", "\u001b[37m## NVIDIA updated and rotated the signing keys used by apt, dnf/yum, and zypper package managers beginning April 27, 2022\u001b[39;49;00m\n", "\u001b[37m## This code snippet has been taken from the NVIDIA forums https://forums.developer.nvidia.com/t/notice-cuda-linux-repository-key-rotation/212771\u001b[39;49;00m\n", "\u001b[37m## to ensure that the builds do not fail\u001b[39;49;00m\n", "\u001b[34mRUN\u001b[39;49;00m apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub\n", "\u001b[34mRUN\u001b[39;49;00m apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub\n", "\n", "\n", "\u001b[34mRUN\u001b[39;49;00m apt-get update && apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 \u001b[33m\\\u001b[39;49;00m\n", " && apt-get clean \u001b[33m\\\u001b[39;49;00m\n", " && rm -rf /var/lib/apt/lists/*\n", "\n", "\n", "\u001b[37m# Reinstall torch\u001b[39;49;00m\n", "\u001b[34mRUN\u001b[39;49;00m pip install --upgrade --force-reinstall \u001b[31mtorch\u001b[39;49;00m==\u001b[34m1\u001b[39;49;00m.8.1 \u001b[31mtorchvision\u001b[39;49;00m==\u001b[34m0\u001b[39;49;00m.9.1 cython boto3\n", "\n", "\u001b[37m# Install MMCV, MMDetection and MMSegmentation\u001b[39;49;00m\n", "\u001b[34mRUN\u001b[39;49;00m \u001b[36mexport\u001b[39;49;00m \u001b[31mMKL_SERVICE_FORCE_INTEL\u001b[39;49;00m=\u001b[34m1\u001b[39;49;00m && pip install mmcv-full==\u001b[34m1\u001b[39;49;00m.4.0 -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.8.1/index.html\n", "\u001b[34mRUN\u001b[39;49;00m pip install \u001b[31mmmdet\u001b[39;49;00m==\u001b[34m2\u001b[39;49;00m.14.0\n", "\u001b[34mRUN\u001b[39;49;00m pip install \u001b[31mmmsegmentation\u001b[39;49;00m==\u001b[34m0\u001b[39;49;00m.14.1\n", "\n", "\u001b[37m# Install MMDetection3D\u001b[39;49;00m\n", "\u001b[34mRUN\u001b[39;49;00m conda clean --all\n", "\u001b[34mRUN\u001b[39;49;00m git clone https://github.com/iprivit/mmdetection3d.git /mmdetection3d\n", "\u001b[34mWORKDIR\u001b[39;49;00m\u001b[33m /mmdetection3d\u001b[39;49;00m\n", "\u001b[34mRUN\u001b[39;49;00m pip install -r requirements/build.txt\n", "\u001b[34mRUN\u001b[39;49;00m pip install --no-cache-dir -e .\n", "\u001b[34mRUN\u001b[39;49;00m mkdir /opt/ml/ && mkdir /opt/ml/code\n", "\n", "\u001b[34mCOPY\u001b[39;49;00m train.py /opt/ml/code/train.py\n", "\n", "\u001b[34mRUN\u001b[39;49;00m wget https://download.openmmlab.com/mmdetection3d/v1.0.0_models/3dssd/3dssd_4x4_kitti-3d-car/3dssd_4x4_kitti-3d-car_20210818_203828-b89c8fc4.pth -O /opt/ml/code/3dssd_4x4_kitti-3d-car_20210818_203828-b89c8fc4.pth\n", "\n", "\u001b[34mENV\u001b[39;49;00m SAGEMAKER_SUBMIT_DIRECTORY /opt/ml/code\n", "\u001b[34mENV\u001b[39;49;00m SAGEMAKER_PROGRAM /opt/ml/code/train.py\n", "\n", "\u001b[34mRUN\u001b[39;49;00m \u001b[36mexport\u001b[39;49;00m \u001b[31mMASTER_ADDR\u001b[39;49;00m=algo-1\n", "\u001b[34mRUN\u001b[39;49;00m \u001b[36mexport\u001b[39;49;00m \u001b[31mMASTER_PORT\u001b[39;49;00m=\u001b[34m12345\u001b[39;49;00m\n", "\n", "\u001b[37m# Starts PyTorch distributed framework\u001b[39;49;00m\n", "\u001b[34mENTRYPOINT\u001b[39;49;00m [\u001b[33m\"bash\"\u001b[39;49;00m, \u001b[33m\"-m\"\u001b[39;49;00m, \u001b[33m\"start_with_right_hostname.sh\"\u001b[39;49;00m]\n" ] } ], "source": [ "# view our dockerfile\n", "!pygmentize -l docker docker/Dockerfile" ] }, { "cell_type": "markdown", "id": "b7d8a212", "metadata": {}, "source": [ "## Build Our Docker Container\n", "\n", "Now that we have taken a look at our Dockerfile, let's build our container and push it to [Amazon Elastic Container Registry (ECR)](https://aws.amazon.com/ecr/). We will build our container, create a repository for it in ECR, and push our image to ECR with one simple command. This will allow us to later use that container when we run our training job." ] }, { "cell_type": "code", "execution_count": 4, "id": "db49d281", "metadata": { "scrolled": true }, "outputs": [], "source": [ "IMAGE_NAME = 'mmdet3d-sagemaker-pt181' \n", "account = boto3.client('sts').get_caller_identity()['Account']\n", "\n", "# # if in MLR401 your container will already be built for you, you can ue the following commands to pull them down!\n", "\n", "! docker pull public.ecr.aws/k2j9l5n0/mmdet3d\n", "! docker tag public.ecr.aws/k2j9l5n0/mmdet3d {account}.dkr.ecr.us-east-1.amazonaws.com/{IMAGE_NAME}\n", "! aws ecr get-login --no-include-email | bash\n", "! aws ecr create-repository --region {region} --repository-name {IMAGE_NAME}\n", "! docker push {account}.dkr.ecr.us-east-1.amazonaws.com/{IMAGE_NAME}\n", "\n", "# # if running on your own uncomment out the below lines:\n", "# !aws ecr get-login-password --region {region} | docker login --username AWS --password-stdin 763104351884.dkr.ecr.{region}.amazonaws.com\n", "# !bash ./build_and_push.sh {region} {IMAGE_NAME} latest docker " ] }, { "cell_type": "markdown", "id": "4feea1ad", "metadata": {}, "source": [ "Let's unpack our ground truth labels, DO NOT SKIP THIS STEP! Otherwise your model will not have any labels to train with." ] }, { "cell_type": "code", "execution_count": 5, "id": "4e9bfe0e", "metadata": {}, "outputs": [], "source": [ "# unpack the ground truth labels\n", "\n", "# !aws s3 cp s3://aws-tc-largeobjects/DEV-AWS-MO-Nvidia/a2d2_gt_database.tar.gz ../fsx/a2d2/a2d2_gt_database.tar.gz\n", "!tar -xzf /home/ec2-user/SageMaker/fsx/a2d2/a2d2_gt_database.tar.gz -C ../fsx/a2d2/camera_lidar_semantic_bboxes/\n", "!cp a2d2/a2d2*.pkl ../fsx/a2d2/camera_lidar_semantic_bboxes/" ] }, { "cell_type": "markdown", "id": "b1449a58", "metadata": {}, "source": [ "### Pre-process point clouds\n", "\n", "One pre-processing step we need to take care of is converting our LiDAR point clouds into bin files our [DataLoader](https://pytorch.org/docs/stable/data.html) is expecting. A2D2 stores point cloud data in [NPZ](https://numpy.org/doc/stable/reference/generated/numpy.savez.html) files, which are compressed Numpy files. We will use the convert_lidar function we define below and parallelize it's execution by using the [process_map](https://tqdm.github.io/docs/contrib.concurrent/) utility. " ] }, { "cell_type": "code", "execution_count": null, "id": "4545feb6", "metadata": { "scrolled": true }, "outputs": [], "source": [ "def convert_lidar(lidar_path, debug = False):\n", "\n", " \"\"\"\n", " azimuth -\n", " row - 2d coordinate of LiDAR point in image space, y (1208)\n", " col - 2d coordinate of LiDAR point in image space, x (1920)\n", " lidar_id - lidar sensor id (5)\n", " depth -\n", " reflectance - reflectance measurement\n", " points - 3D point measurement\n", " timestamp -\n", " distance -\n", " \"\"\"\n", "\n", " lidar = np.load(lidar_path)\n", " xyz = lidar['points' ].astype(dtype = np.float32)\n", " i = lidar['reflectance'].astype(dtype = np.float32).reshape(-1, 1)\n", " xyzi = np.concatenate((xyz, i), axis = 1) # [x y z] + [i]\n", "\n", " if debug:\n", "\n", " pprint(xyz)\n", " pprint(i)\n", " pprint(xyzi)\n", "\n", " pprint(np.asarray(np.unique(lidar['lidar_id'], return_counts = True), dtype = int).T)\n", " \n", " path = lidar_path.replace('npz', 'bin')\n", " xyzi.ravel().tofile(path) # flatten\n", "# print(path)\n", "\n", "roots = glob('../fsx/a2d2/camera_lidar_semantic_bboxes/2*')\n", "for root in tqdm(roots):\n", " paths = glob(f'{root}/lidar/cam_front_center/*npz')\n", " process_map(convert_lidar, paths, max_workers = multiprocessing.cpu_count())\n" ] }, { "cell_type": "markdown", "id": "13dbf005", "metadata": {}, "source": [ "## Create metric definitions\n", "\n", "Since we aren't training on the same instance our notebook is hosted on we need a way to capture our performance metrics. SageMaker allows users to collect metrics from the output logs of their training jobs. In our case we are going to capture the 4 loss outputs from our Faster RCNN model as well as the total loss, the learning rate, and the number of training iterations. The following definition specifies the name of the metric collected and the appropriate regex used to collect the metric. " ] }, { "cell_type": "code", "execution_count": 7, "id": "b46de635", "metadata": {}, "outputs": [], "source": [ "# define metrics\n", "\n", "metric_definitions=[{\n", " \"Name\": \"loss\",\n", " \"Regex\": \".*loss:\\s([0-9\\\\.]+)\\s*\"\n", " },\n", " {\n", " \"Name\": \"corner_loss\",\n", " \"Regex\": \".*corner_loss:\\s([0-9\\\\.]+)\\s*\"\n", " },\n", " {\n", " \"Name\": \"vote_loss\",\n", " \"Regex\": \".*vote_loss:\\s([0-9\\\\.]+)\\s*\"\n", " },\n", " {\n", " \"Name\": \"dir_class_loss\",\n", " \"Regex\": \".*dir_class_loss:\\s([0-9\\\\.]+)\\s*\"\n", " },\n", " {\n", " \"Name\": \"lr\", \n", " \"Regex\": \".*lr:\\s([0-9\\\\.]+)\\s*\"\n", " },\n", " {\n", " \"Name\": \"grad_norm\", \n", " \"Regex\": \".*grad_norm:\\s([0-9\\\\.]+)\\s*\"\n", " }\n", "]" ] }, { "cell_type": "markdown", "id": "da9dc8f7", "metadata": {}, "source": [ "## SageMaker Experiments \n", "\n", "Now that we have specified our training metrics above, we are going to need a way to organize and compare our training runs. [Amazon SageMaker experiments](https://aws.amazon.com/blogs/aws/amazon-sagemaker-experiments-organize-track-and-compare-your-machine-learning-trainings/) lets you organize, track, compare and evaluate machine learning experiments and model versions. We can add experiments tracking to our training jobs using a couple simple hooks. There is a small amount of setup required before we can hook it into our estimators. We first are going to create our experiment, and within our experiment create a trial for our new training job." ] }, { "cell_type": "code", "execution_count": 8, "id": "85399945", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Experiment(sagemaker_boto_client=,experiment_name='mm3d-a2d2-demo-1637711766',description='MMDetection3D training on the A2D2 dataset',tags=None,experiment_arn='arn:aws:sagemaker:us-east-1:427894311213:experiment/mm3d-a2d2-demo-1637711766',response_metadata={'RequestId': '6b6af75d-acae-4833-8f18-862a4a30d7fe', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '6b6af75d-acae-4833-8f18-862a4a30d7fe', 'content-type': 'application/x-amz-json-1.1', 'content-length': '97', 'date': 'Tue, 23 Nov 2021 23:56:05 GMT'}, 'RetryAttempts': 0}) \n", "\n" ] } ], "source": [ "# create d2 experiment\n", "\n", "from sagemaker.analytics import ExperimentAnalytics\n", "from smexperiments.experiment import Experiment\n", "from smexperiments.trial import Trial\n", "from smexperiments.trial_component import TrialComponent\n", "from smexperiments.tracker import Tracker\n", "from smexperiments.search_expression import Filter, Operator, SearchExpression\n", "\n", "mm3d_experiment = Experiment.create(\n", " experiment_name=f\"mm3d-a2d2-demo-{int(time.time())}\", \n", " description=\"MMDetection3D training on the A2D2 dataset\", \n", " sagemaker_boto_client=sm)\n", "print(mm3d_experiment,'\\n')" ] }, { "cell_type": "markdown", "id": "d2745e9d", "metadata": {}, "source": [ "### Setup FSx for Lustre\n", "\n", "We created a [FSx for Lustre filesystem](https://aws.amazon.com/fsx/lustre/) when we launched our initial [Cloudformation](https://aws.amazon.com/cloudformation/) stack. FSx for Lustre is a high performance file system that provides fast, scalable storage. It's ideal for tasks that require high data throughput like distributed training. \n", "\n", "In order to mount it to our SageMaker Training instance, we will need to create a FileSystemInput object. This will tell SageMaker how and where to mount the file system." ] }, { "cell_type": "code", "execution_count": 5, "id": "d347a0e0", "metadata": {}, "outputs": [], "source": [ "# Configure FSx Input for your SageMaker Training job\n", "from sagemaker.inputs import FileSystemInput\n", "username = 'AWS'\n", "\n", "file_system_id= resource_dict['AWS::FSx::FileSystem'] # FSx file system ID with your training dataset. Example: 'fs-0bYYYYYY'\n", "file_system_directory_path= f\"/{fsx_client.describe_file_systems()['FileSystems'][0]['LustreConfiguration']['MountName']}/a2d2\" # NOTE: '/fsx/' will be the root mount path. Example: '/fsx/mask_rcnn/PyTorch'\n", "file_system_access_mode='ro'\n", "file_system_type='FSxLustre'\n", "train_fs = FileSystemInput(file_system_id=file_system_id,\n", " file_system_type=file_system_type,\n", " directory_path=file_system_directory_path,\n", " file_system_access_mode=file_system_access_mode)\n", "# if using the above FSx Input then use the following data channel config\n", "# data_channels = {'train': train_fs}\n", "# if using local mode gpu training use the following data channel instead:\n", "data_channels = {'train': 'file://../fsx/a2d2'} " ] }, { "cell_type": "markdown", "id": "2f9b5e3a", "metadata": {}, "source": [ "# SageMaker Training\n", "\n", "![](display_images/sagemaker_how_it_works.png)\n", "\n", "[Image source](https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-training.html)" ] }, { "cell_type": "markdown", "id": "ca369bb3", "metadata": {}, "source": [ "## Define the Estimator\n", "\n", "In SageMaker training jobs are created by initializing an estimator class where we define our training container, our entrypoint, our hyperparameters and instance types in addition to a few other variables and then launching our training job on the instance or instances we specify.\n", "\n", "We first define a set of hyperparameters that we will pass to our estimator. When we launch our training job, these hyperparameters in addition to any source directory we define, will be packaged up and uploaded to our training instance running our Docker image. \n", "\n", "We then define our profiler configuration. SageMaker Debugger allows data scientists the ability to debug, monitor, and profile training jobs in real time! In this notebook we will focus specifically on the profiling. SageMaker Debugger's profiling feature allows us to collect both system and framework level information about our training job. This gives us information ranging from CPU/GPU utilization to detailed descriptions of the most time consuming operations in our training job! When we setup our profiling configuration, we tell our estimator how often to record both system and framework level information on our training job.\n", "\n", "For our specific training job, MM3D has a wide variety of model architectures with pretrained weights that we can use as a starting point. In our hyperparameters we can define the configuration file that tells the MM3D framework what model architecture we want to use. In this case we are using a 3DSSD model, you can experiment with different models, but make sure to look at how they ingest data first. \n", "\n", "Our training script is setup for distributed training so let's launch our job on one of AWS's multi-gpu instances!" ] }, { "cell_type": "code", "execution_count": null, "id": "ec087aab", "metadata": {}, "outputs": [], "source": [ "config = '3dssd/3dssd_4x4_a2d2-3d-car.py'\n", "launcher = 'none' # if using distributed training set to pytorch, otherwise if using single GPU, set to none\n", "\n", "with open(f\"container_training/mmdetection3d/configs/{config.split('/')[0]}/metafile.yml\", 'r') as f:\n", " cfg_meta = yaml.safe_load(f)\n", " \n", "model_path = cfg_meta['Models'][0]['Weights']\n", "!wget {model_path} -O container_training/{model_path.split('/')[-1]}" ] }, { "cell_type": "code", "execution_count": null, "id": "14432d0a", "metadata": {}, "outputs": [], "source": [ "# run training job\n", "\n", "# create experiment trial\n", "trial_name = f\"mm3d-demo-training-job-{int(time.time())}\"\n", "mm3d_trial = Trial.create(\n", " trial_name=trial_name, \n", " experiment_name=mm3d_experiment.experiment_name,\n", " sagemaker_boto_client=sm,\n", ")\n", "print(mm3d_trial)\n", "\n", "account = boto3.client('sts').get_caller_identity()['Account']\n", "image_uri = f'{account}.dkr.ecr.us-east-1.amazonaws.com/{IMAGE_NAME}'\n", "\n", "# pick our instance type\n", "instance_type = 'local_gpu' # set to use local mode, but if running in your own account, try running one of the below larger instances:\n", "if instance_type in ['ml.p3.8xlarge', 'ml.p3.16xlarge', 'ml.p3dn.24xlarge', 'ml.g4dn.12xlarge']:\n", " distributed = 1\n", "else:\n", " distributed = 0\n", "\n", "# set our hyperparameters\n", "hyperparameters = {\n", " 'config': f'/mmdetection3d/configs/{config}', \n", " \"work-dir\":'/opt/ml/model/',\n", " 'launcher':launcher,\n", " 'load-path':f\"/opt/ml/code/{model_path.split('/')[-1]}\",\n", " \"distributed\":distributed,\n", " \"epochs\":1,\n", " \"batch-size\":6,\n", " \"instance-count\":1\n", "}\n", "\n", "# setup our SageMaker Debugger Profiler configuration to monitor our resource utilization\n", "profiler_config = ProfilerConfig(\n", " system_monitor_interval_millis=1000,\n", ")\n", "\n", "# setup our estimator\n", "estimator = PyTorch(\n", " role=role,\n", " instance_count=1,\n", " instance_type= instance_type,\n", " entry_point='train.py',\n", " source_dir='container_training',\n", " image_uri=image_uri,\n", " volume_size=225,\n", " output_path=f\"s3://{bucket}/{prefix_output}\",\n", " base_job_name=f\"{config.split('/')[0]}-{launcher}-{instance_type.replace('.','-')}\", \n", " profiler_config=profiler_config,\n", " enable_cloudwatch_metrics=True,\n", " hyperparameters=hyperparameters,\n", " metric_definitions=metric_definitions,\n", " subnets=subnets,\n", " security_group_ids=security_group_ids,\n", "# distribution={ # if running distributed training, uncomment this argument\n", "# \"mpi\":{\"enabled\":True}\n", "# },\n", " )" ] }, { "cell_type": "markdown", "id": "847c9191", "metadata": {}, "source": [ "Now that we defined our estimator, we can launch our training job. We supply a few arguments, including \n", "- `inputs` this argument informs SageMaker where to find our training data.\n", "- `experiment_config` this argument is where we specify an experiment configuration for SageMaker Experiments.\n", "- `wait` this argument defines whether we want to hold the attention of the notebook cell. In this case we are setting it to `True` so that we can view the log output of our training job in our notebook.\n", "\n", "If you receive this error: `CapacityError: Unable to provision requested ML compute capacity. Please retry using a different ML instance type.`, this is because we are running our training inside of a specific [availability zone or AZ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-availability-zones) in our [virtual private cloud or VPC](https://aws.amazon.com/vpc/). Capacity is constantly being replenished, so wait a minute or two and retry launching your training job." ] }, { "cell_type": "code", "execution_count": null, "id": "515c5406", "metadata": {}, "outputs": [], "source": [ "estimator.fit(inputs=data_channels, \n", " wait=True,\n", " experiment_config={\n", " \"ExperimentName\": mm3d_experiment.experiment_name,\n", " \"TrialName\": mm3d_trial.trial_name,\n", " \"TrialComponentDisplayName\": f\"Training-{instance_type.replace('.','-')}\"},\n", " )\n", "training_job_name = estimator.latest_training_job.name\n", "print('Training job name:', training_job_name)" ] }, { "cell_type": "markdown", "id": "a3edab0d", "metadata": {}, "source": [ "To run training locally on your instance inside of the docker image we pulled from ECR, run the output of the following print commands in a terminal, the gif below will demonstrate how to do this." ] }, { "cell_type": "code", "execution_count": null, "id": "5801d3fb", "metadata": {}, "outputs": [], "source": [ "# to run the same training job locally on your SageMaker instance, run the following commands in a terminal:\n", "\n", "print(f'docker run -it --gpus all -v /home/ec2-user/SageMaker/fsx/a2d2:/opt/ml/input/data/train {account}.dkr.ecr.us-east-1.amazonaws.com/mmdet3d-sagemaker-pt181 bash')\n", "print(f'cd /opt/ml/code && python train.py --config /mmdetection3d/configs/3dssd/3dssd_4x4_a2d2-3d-car.py --batch-size 8 --epochs 1') # # takes about 45 minutes\n", "print('cp /opt/ml/code/work_dirs/3dssd_4x4_a2d2-3d-car/latest.pth /opt/ml/input/data/train/model.pth') \n", "print('exit')\n", "print('cd /home/ec2-user/SageMaker/end-2-end-3d-ml && tar -cvf model.tar.gz ../fsx/a2d2/model.pth') # model will be deposited in end-2-end-3d-ml folder" ] }, { "cell_type": "markdown", "id": "9e83bca6", "metadata": {}, "source": [ "![](display_images/local_train.gif)" ] }, { "cell_type": "markdown", "id": "ddc71caf", "metadata": {}, "source": [ "All of the information that Debugger gathers is stored in s3. The below call via the AWS CLI will check if profiler information has been saved to our training job's folder. " ] }, { "cell_type": "code", "execution_count": null, "id": "54eb0a66", "metadata": {}, "outputs": [], "source": [ "! aws s3 ls s3://{bucket}/{prefix_output}/{training_job_name}/profiler-output/" ] }, { "cell_type": "markdown", "id": "7375d44c", "metadata": {}, "source": [ "### Download our model object\n", "\n", "We will use this later when we deploy our model as an endpoint." ] }, { "cell_type": "code", "execution_count": 16, "id": "7d2b84ee", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "download: s3://sagemaker-us-east-1-427894311213/training_res/3dssd-pytorch-ml-g4dn-12xlarge-2021-11-23-23-56-46-899/output/model.tar.gz to ./model.tar.gz\n" ] } ], "source": [ "!aws s3 cp s3://{bucket}/{prefix_output}/{training_job_name}/output/model.tar.gz ." ] }, { "cell_type": "markdown", "id": "9c05b3d8", "metadata": {}, "source": [ "\n", " IF YOU RAN THE TRAINING JOB USING LOCAL MODE THE FOLLOWING BLOCKS WILL NOT WORK.\n", "\n", "### Find system metrics\n", "\n", "Once our outputs have been processed, we can import our system and framework data into our notebook and visualize them! The following block will check for the availability of our profiling data." ] }, { "cell_type": "code", "execution_count": 17, "id": "82c75305", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2021-11-24 00:18:36.422 ip-172-16-55-87.ec2.internal:22501 INFO utils.py:27] RULE_JOB_STOP_SIGNAL_FILENAME: None\n", "output path: s3://sagemaker-us-east-1-427894311213/training_res/3dssd-pytorch-ml-g4dn-12xlarge-2021-11-23-23-56-46-899/profiler-output\n", "Training job name: 3dssd-pytorch-ml-g4dn-12xlarge-2021-11-23-23-56-46-899\n", "\n", "\n", "Profiler data from system is available\n" ] } ], "source": [ "from smdebug.profiler.system_metrics_reader import S3SystemMetricsReader\n", "\n", "sagemaker_client = boto3.client('sagemaker')\n", "output_path = f's3://{bucket}/{prefix_output}/{training_job_name}/profiler-output'\n", "print(f'output path: {output_path}')\n", "print(f'Training job name: {training_job_name}')\n", "\n", "system_metrics_reader = S3SystemMetricsReader(output_path)\n", "\n", "training_job_status = ''\n", "training_job_secondary_status = ''\n", "while system_metrics_reader.get_timestamp_of_latest_available_file() == 0:\n", " system_metrics_reader.refresh_event_file_list()\n", " client = sagemaker_client.describe_training_job(\n", " TrainingJobName=training_job_name\n", " )\n", " if 'TrainingJobStatus' in client:\n", " training_job_status = f\"TrainingJobStatus: {client['TrainingJobStatus']}\"\n", " if 'SecondaryStatus' in client:\n", " training_job_secondary_status = f\"TrainingJobSecondaryStatus: {client['SecondaryStatus']}\"\n", " \n", " print(f\"Profiler data from system not available yet. {training_job_status}. {training_job_secondary_status}.\")\n", " time.sleep(20)\n", "\n", "print('\\n\\nProfiler data from system is available')" ] }, { "cell_type": "markdown", "id": "f4e12765", "metadata": {}, "source": [ "## Visualize Data in Notebook\n", "\n", "Now that we have verified our profiler data is available, let's plot some system metrics in our notebook. One easy thing to check for is if you are fully utilizing your GPU memory. If it seems low, we might be able to increase our batch size! " ] }, { "cell_type": "code", "execution_count": 24, "id": "cb12a133", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ProfilerConfig:{'S3OutputPath': 's3://sagemaker-us-east-1-427894311213/training_res', 'ProfilingIntervalInMilliseconds': 1000}\n", "s3 path:s3://sagemaker-us-east-1-427894311213/training_res/3dssd-pytorch-ml-g4dn-12xlarge-2021-11-23-23-56-46-899/profiler-output\n", "\n", "\n", "Profiler data from system is available\n", "select events:['total']\n", "select dimensions:['CPU', 'GPU']\n", "filtered_events:{'total'}\n", "filtered_dimensions:{'GPUMemoryUtilization-nodeid:algo-1', 'GPUUtilization-nodeid:algo-1', 'CPUUtilization-nodeid:algo-1'}\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " const docs_json = {\"84596c25-2813-4cf0-acdb-602822c894d2\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"children\":[{\"id\":\"16771\"},{\"id\":\"16649\"}]},\"id\":\"16772\",\"type\":\"Row\"},{\"attributes\":{\"end\":102},\"id\":\"16693\",\"type\":\"Range1d\"},{\"attributes\":{\"source\":{\"id\":\"16721\"}},\"id\":\"16728\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"16697\",\"type\":\"LinearScale\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"16687\"}],\"tooltips\":[[\"index\",\"$index\"],[\"(x,y)\",\"($x, $y)\"]]},\"id\":\"16689\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"16695\",\"type\":\"LinearScale\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"18051\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"18062\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"dimensions\":\"width\"},\"id\":\"16672\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"axis_label\":\"Time in ms\",\"coordinates\":null,\"formatter\":{\"id\":\"18065\"},\"group\":null,\"major_label_policy\":{\"id\":\"18066\"},\"ticker\":{\"id\":\"16700\"}},\"id\":\"16699\",\"type\":\"LinearAxis\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"18053\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"16704\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"18060\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"16700\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"16664\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"18063\",\"type\":\"AllLabels\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"16681\"},\"glyph\":{\"id\":\"16683\"},\"group\":null,\"hover_glyph\":null,\"view\":{\"id\":\"16686\"}},\"id\":\"16685\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis\":{\"id\":\"16699\"},\"coordinates\":null,\"group\":null,\"ticker\":null,\"visible\":false},\"id\":\"16702\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"18065\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"below\":[{\"id\":\"16739\"}],\"center\":[{\"id\":\"16742\"},{\"id\":\"16746\"}],\"height\":200,\"js_event_callbacks\":{\"selectiongeometry\":[{\"id\":\"16762\"}]},\"left\":[{\"id\":\"16743\"}],\"renderers\":[{\"id\":\"16765\"},{\"id\":\"16767\"}],\"title\":{\"id\":\"18053\"},\"toolbar\":{\"id\":\"16754\"},\"width\":1000,\"x_range\":{\"id\":\"16651\"},\"x_scale\":{\"id\":\"16735\"},\"y_range\":{\"id\":\"16733\"},\"y_scale\":{\"id\":\"16737\"}},\"id\":\"16731\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"tools\":[{\"id\":\"16707\"},{\"id\":\"16708\"},{\"id\":\"16709\"},{\"id\":\"16710\"},{\"id\":\"16711\"},{\"id\":\"16712\"},{\"id\":\"16729\"}]},\"id\":\"16714\",\"type\":\"Toolbar\"},{\"attributes\":{\"axis\":{\"id\":\"16703\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null,\"visible\":false},\"id\":\"16706\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"GPUUtilization-nodeid:algo-1_total\",\"coordinates\":null,\"formatter\":{\"id\":\"18062\"},\"group\":null,\"major_label_policy\":{\"id\":\"18063\"},\"ticker\":{\"id\":\"16704\"}},\"id\":\"16703\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"18066\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"18068\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"dimensions\":\"width\",\"overlay\":{\"id\":\"16673\"}},\"id\":\"16668\",\"type\":\"BoxSelectTool\"},{\"attributes\":{\"fill_alpha\":{\"value\":0},\"line_width\":{\"value\":0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"16724\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"18069\",\"type\":\"AllLabels\"},{\"attributes\":{\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"16723\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"18071\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"16721\"}},\"id\":\"16726\",\"type\":\"CDSView\"},{\"attributes\":{\"below\":[{\"id\":\"16699\"}],\"center\":[{\"id\":\"16702\"},{\"id\":\"16706\"}],\"height\":200,\"js_event_callbacks\":{\"selectiongeometry\":[{\"id\":\"16722\"}]},\"left\":[{\"id\":\"16703\"}],\"renderers\":[{\"id\":\"16725\"},{\"id\":\"16727\"}],\"title\":{\"id\":\"18051\"},\"toolbar\":{\"id\":\"16714\"},\"width\":1000,\"x_range\":{\"id\":\"16651\"},\"x_scale\":{\"id\":\"16695\"},\"y_range\":{\"id\":\"16693\"},\"y_scale\":{\"id\":\"16697\"}},\"id\":\"16691\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"18072\",\"type\":\"AllLabels\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"16721\"},\"glyph\":{\"id\":\"16724\"},\"group\":null,\"hover_glyph\":null,\"view\":{\"id\":\"16728\"}},\"id\":\"16727\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"18073\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"16673\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"args\":{\"div\":{\"id\":\"16649\"},\"s1\":{\"id\":\"16721\"}},\"code\":\"\\n console.log('Running CustomJS callback now.');\\n var inds = s1.selected.indices;\\n console.log(inds);\\n var line = \\\" Selected index range: [\\\" + Math.min.apply(Math,inds) + \\\",\\\" + Math.max.apply(Math,inds) + \\\"]\\\\n\\\";\\n console.log(line)\\n var text = div.text.concat(line);\\n var lines = text.split(\\\"\\\\n\\\")\\n if (lines.length > 35)\\n lines.shift();\\n div.text = lines.join(\\\"\\\\n\\\");\"},\"id\":\"16722\",\"type\":\"CustomJS\"},{\"attributes\":{},\"id\":\"16707\",\"type\":\"CrosshairTool\"},{\"attributes\":{},\"id\":\"18074\",\"type\":\"Selection\"},{\"attributes\":{\"dimensions\":\"width\",\"overlay\":{\"id\":\"16713\"}},\"id\":\"16708\",\"type\":\"BoxSelectTool\"},{\"attributes\":{\"axis\":{\"id\":\"16659\"},\"coordinates\":null,\"group\":null,\"ticker\":null,\"visible\":false},\"id\":\"16662\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"18076\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"16683\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"16709\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"16711\",\"type\":\"SaveTool\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"t2I0FWBn2EHcZXQVYGfYQWJltBVgZ9hBtmX0FWBn2EEkZDQWYGfYQTlkdBZgZ9hBF2a0FmBn2EFBZPQWYGfYQYxkNBdgZ9hBAmR0F2Bn2EFSZLQXYGfYQT1l9BdgZ9hBz2U0GGBn2EFWZXQYYGfYQapltBhgZ9hB2GX0GGBn2EE0ZjQZYGfYQdhkdBlgZ9hBnWS0GWBn2EFJZPQZYGfYQWNkNBpgZ9hBb2R0GmBn2EEKZbQaYGfYQf5i9BpgZ9hBJGQ0G2Bn2EHYZHQbYGfYQQ9jtBtgZ9hB5WP0G2Bn2EGNYzQcYGfYQQZjdBxgZ9hBzGK0HGBn2EHYY/QcYGfYQZ1lNB1gZ9hBhGR0HWBn2EFBZbQdYGfYQRNk9B1gZ9hBWmU0HmBn2EEoY3QeYGfYQVJltB5gZ9hBpWX0HmBn2EFeYzQfYGfYQb9ldB9gZ9hB3GW0H2Bn2EE0ZPQfYGfYQfFlNCBgZ9hBSWN0IGBn2EEfZLQgYGfYQeFi9CBgZ9hBUmM0IWBn2EFjZHQhYGfYQRdjtCFgZ9hBVmP0IWBn2EFFZTQiYGfYQQJldCJgZ9hB1GW0ImBn2EEXZfQiYGfYQXxlNCNgZ9hBWmV0I2Bn2EFnZbQjYGfYQShl9CNgZ9hBx2I0JGBn2EHTZnQkYGfYQdxltCRgZ9hB7WT0JGBn2EETZTQlYGfYQeBldCVgZ9hBy2W0JWBn2EGEZPQlYGfYQR9mNCZgZ9hBiGV0JmBn2EEXZLQmYGfYQapj9CZgZ9hB6WM0J2Bn2EFzY3QnYGfYQU5jtCdgZ9hB/mT0J2Bn2EHtYzQoYGfYQeVjdChgZ9hBPWS0KGBn2EGuZfQoYGfYQfpiNClgZ9hBQWR0KWBn2EFzZLQpYGfYQU1l9ClgZ9hBCmY0KmBn2EE0ZXQqYGfYQZlltCpgZ9hB6WL0KmBn2EFnZDQrYGfYQXxjdCtgZ9hB5WO0K2Bn2EFOY/QrYGfYQRNkNCxgZ9hBD2N0LGBn2EF7ZrQsYGfYQXxj9CxgZ9hBQWM0LWBn2EGEZXQtYGfYQXxktC1gZ9hBrmT0LWBn2EGRYjQuYGfYQQJkdC5gZ9hBqmS0LmBn2EECY/QuYGfYQaJjNC9gZ9hB4GR0L2Bn2EE0ZbQvYGfYQeli9C9gZ9hB4GM0MGBn2EEgY3QwYGfYQSxktDBgZ9hBVmP0MGBn2EGiYzQxYGfYQV5kdDFgZ9hB5GW0MWBn2EFeZPQxYGfYQTlkNDJgZ9hBJ2Z0MmBn2EFrZLQyYGfYQXdn9DJgZ9hBMGQ0M2Bn2EHkZXQzYGfYQSxktDNgZ9hB7WX0M2Bn2EEwZDQ0YGfYQSxkdDRgZ9hBx2W0NGBn2EEKZvQ0YGfYQR9kNDVgZ9hBlWV0NWBn2EHxYrQ1YGfYQSxk9DVgZ9hBI2U0NmBn2EEKZnQ2YGfYQV5ltDZgZ9hBc2X0NmBn2EGEZDQ3YGfYQTRmdDdgZ9hBNGa0N2Bn2EFOZPQ3YGfYQSRjNDhgZ9hBI2V0OGBn2EEGZrQ4YGfYQQpm9DhgZ9hB+WU0OWBn2EH1ZXQ5YGfYQQZmtDlgZ9hBE2X0OWBn2EEOZjQ6YGfYQdRldDpgZ9hBLGS0OmBn2EGAZvQ6YGfYQWdjNDtgZ9hBAmV0O2Bn2EEbZrQ7YGfYQU5k9DtgZ9hBTWU0PGBn2EGVZXQ8YGfYQfVltDxgZ9hBWmT0PGBn2EHxYjQ9YGfYQcNjdD1gZ9hBsmO0PWBn2EHcZPQ9YGfYQfVkND5gZ9hB8WV0PmBn2EFBZrQ+YGfYQYBl9D5gZ9hBC2M0P2Bn2EEwY3Q/YGfYQQJktD9gZ9hB6WL0P2Bn2EGuZTRAYGfYQRNjdEBgZ9hBY2S0QGBn2EEgY/RAYGfYQbZlNEFgZ9hBOWN0QWBn2EFNZbRBYGfYQUFk9EFgZ9hBt2I0QmBn2EFeY3RCYGfYQRtktEJgZ9hBgGP0QmBn2EEgYzRDYGfYQU1ldENgZ9hBiGS0Q2Bn2EHcZfRDYGfYQYhmNERgZ9hBOGZ0RGBn2EGqY7REYGfYQQpm9ERgZ9hB3GU0RWBn2EE4ZXRFYGfYQQJktEVgZ9hBRWP0RWBn2EG7YjRGYGfYQShkdEZgZ9hBRWS0RmBn2EGAZfRGYGfYQfFiNEdgZ9hBUmR0R2Bn2EEkZLRHYGfYQSxj9EdgZ9hBJGM0SGBn2EEoY3RIYGfYQZVltEhgZ9hBZ2T0SGBn2EEsYzRJYGfYQVpkdElgZ9hB3GK0SWBn2EFJZPRJYGfYQVJlNEpgZ9hBWmV0SmBn2EE5ZLRKYGfYQUlj9EpgZ9hBQWM0S2Bn2EEkZHRLYGfYQShjtEtgZ9hBumX0S2Bn2EHlZDRMYGfYQaFldExgZ9hBH2a0TGBn2EHcZfRMYGfYQU1mNE1gZ9hB5GV0TWBn2EFFZrRNYGfYQRdm9E1gZ9hBTWY0TmBn2EEsZnROYGfYQWNktE5gZ9hB+WX0TmBn2EFFZjRPYGfYQU1mdE9gZ9hBUWa0T2Bn2EEbZvRPYGfYQbZkNFBgZ9hBDmZ0UGBn2EE4ZrRQYGfYQW9m9FBgZ9hB9WQ0UWBn2EGhZXRRYGfYQXdmtFFgZ9hBPGb0UWBn2EEbZjRSYGfYQUlldFJgZ9hBF2S0UmBn2EH1ZPRSYGfYQe1lNFNgZ9hBkGV0U2Bn2EELY7RTYGfYQTlk9FNgZ9hBJGM0VGBn2EE1Y3RUYGfYQRtjtFRgZ9hBSWb0VGBn2EFzZDRVYGfYQR9mdFVgZ9hBVmS0VWBn2EFvZfRVYGfYQe1iNFZgZ9hBVmR0VmBn2EEwY7RWYGfYQSxk9FZgZ9hB5WM0V2Bn2EFOZHRXYGfYQVZktFdgZ9hB8WX0V2Bn2EEsZTRYYGfYQQ5mdFhgZ9hBSWW0WGBn2EEfZvRYYGfYQTBmNFlgZ9hBTmR0WWBn2EHYZbRZYGfYQUFj9FlgZ9hBjWM0WmBn2EFNZXRaYGfYQRdmtFpgZ9hB3GX0WmBn2EH+YjRbYGfYQRtldFtgZ9hB2GK0W2Bn2EEPZPRbYGfYQUVkNFxgZ9hBMGZ0XGBn2EEwZbRcYGfYQQ9k9FxgZ9hBnWY0XWBn2EEGZnRdYGfYQbJktF1gZ9hBCmb0XWBn2EHtZTReYGfYQfFjdF5gZ9hBRWO0XmBn2EHcZfReYGfYQf5iNF9gZ9hBjGR0X2Bn2EFJZLRfYGfYQUlj9F9gZ9hB9WM0YGBn2EHlYnRgYGfYQYRktGBgZ9hBRWX0YGBn2EEoZTRhYGfYQR9kdGFgZ9hBE2O0YWBn2EE9ZfRhYGfYQSxkNGJgZ9hBrmV0YmBn2EGAZLRiYGfYQfVk9GJgZ9hBWmU0Y2Bn2EEKZXRjYGfYQU5ktGNgZ9hBOGX0Y2Bn2EEOZjRkYGfYQdhjdGRgZ9hBMGW0ZGBn2EHLZfRkYGfYQYhkNGVgZ9hBNGZ0ZWBn2EEOZbRlYGfYQZ1k9GVgZ9hBE2M0ZmBn2EFWY3RmYGfYQVZjtGZgZ9hBAmP0ZmBn2EEoZTRnYGfYQeBkdGdgZ9hBC2O0Z2Bn2EHQZPRnYGfYQf5kNGhgZ9hBjGR0aGBn2EFnY7RoYGfYQUlm9GhgZ9hBUmM0aWBn2EEGZXRpYGfYQTBktGlgZ9hBUmT0aWBn2EHgZTRqYGfYQZlkdGpgZ9hBI2W0amBn2EFSY/RqYGfYQWtkNGtgZ9hBE2R0a2Bn2EEbZLRrYGfYQTRk9GtgZ9hBc2M0bGBn2EE5Y3RsYGfYQWNktGxgZ9hBIGP0bGBn2EFeZDRtYGfYQQJjdG1gZ9hBWmW0bWBn2EGEZPRtYGfYQXNlNG5gZ9hBRWR0bmBn2EFJY7RuYGfYQRdk9G5gZ9hBSWM0b2Bn2EHLZHRvYGfYQdhjtG9gZ9hBgGT0b2Bn2EHDZjRwYGfYQZlkdHBgZ9hB8WO0cGBn2EGMZPRwYGfYQQZmNHFgZ9hBOGV0cWBn2EG/ZLRxYGfYQf5l9HFgZ9hB9WQ0cmBn2EFWZXRyYGfYQWdktHJgZ9hBQWP0cmBn2EGuZTRzYGfYQRNldHNgZ9hBoWW0c2Bn2EEwZPRzYGfYQdxiNHRgZ9hB8WJ0dGBn2EGVZrR0YGfYQQJm9HRgZ9hBLGY0dWBn2EEKZXR1YGfYQWNktHVgZ9hBCmX0dWBn2EFzZTR2YGfYQVpkdHZgZ9hBRWW0dmBn2EFBZvR2YGfYQRdmNHdgZ9hBKGN0d2Bn2EHxZLR3YGfYQc9l9HdgZ9hBa2Q0eGBn2EE9ZHR4YGfYQXNltHhgZ9hBRWT0eGBn2EG7ZDR5YGfYQVpldHlgZ9hBJGS0eWBn2EECY/R5YGfYQVJkNHpgZ9hBXmR0emBn2EFeZbR6YGfYQU5j9HpgZ9hBF2M0e2Bn2EGZY3R7YGfYQQZltHtgZ9hBXmP0e2Bn2EE9YzR8YGfYQZ1kdHxgZ9hBmWO0fGBn2EGiY/R8YGfYQaJjNH1gZ9hBJGN0fWBn2EGIY7R9YGfYQUFj9H1gZ9hB4WI0fmBn2EEgY3R+YGfYQRNjtH5gZ9hB2GP0fmBn2EE9YzR/YGfYQaZjdH9gZ9hBD2S0f2Bn2EGNY/R/YGfYQZFjNIBgZ9hBjGR0gGBn2EEsY7SAYGfYQdhk9IBgZ9hBtmQ0gWBn2EHDZHSBYGfYQb9ktIFgZ9hBXmT0gWBn2EHUZDSCYGfYQTBmdIJgZ9hBc2O0gmBn2EFeY/SCYGfYQU5kNINgZ9hBUmR0g2Bn2EFrZbSDYGfYQTRl9INgZ9hBSWQ0hGBn2EFnZXSEYGfYQVJktIRgZ9hBPWT0hGBn2EFFYzSFYGfYQVZjdIVgZ9hBMGO0hWBn2EECZPSFYGfYQZlkNIZgZ9hB+WR0hmBn2EGAY7SGYGfYQThl9IZgZ9hBjGQ0h2Bn2EF3ZHSHYGfYQXdktIdgZ9hBu2P0h2Bn2EEbYzSIYGfYQYBkdIhgZ9hBTmS0iGBn2EFvZPSIYGfYQQZjNIlgZ9hBUmV0iWBn2EE5Y7SJYGfYQSxj9IlgZ9hBLGM0imBn2EE9Y3SKYGfYQRtjtIpgZ9hBPWT0imBn2EEsYzSLYGfYQfpjdItgZ9hBc2S0i2Bn2EFOZPSLYGfYQdRjNIxgZ9hB2GR0jGBn2EEKZLSMYGfYQYxk9IxgZ9hB3GI0jWBn2EH2YnSNYGfYQXdktI1gZ9hBRWP0jWBn2EEoZDSOYGfYQSxkdI5gZ9hBTmO0jmBn2EEwZPSOYGfYQeljNI9gZ9hB5WR0j2Bn2EH6YrSPYGfYQZll9I9gZ9hBjGU0kGBn2EEsY3SQYGfYQVJktJBgZ9hBD2T0kGBn2EE5YzSRYGfYQVJjdJFgZ9hBu2O0kWBn2EFnZfSRYGfYQTBjNJJgZ9hBMGV0kmBn2EGMZbSSYGfYQbtk9JJgZ9hBmWM0k2Bn2EEkY3STYGfYQWNktJNgZ9hBmWT0k2Bn2EGVZDSUYGfYQYRkdJRgZ9hB5WK0lGBn2EF8ZPSUYGfYQYhjNJVgZ9hBiGN0lWBn2EF8ZLSVYGfYQVpj9JVgZ9hBc2U0lmBn2EEsY3SWYGfYQTBltJZgZ9hBa2X0lmBn2EH+YzSXYGfYQXxldJdgZ9hBE2O0l2Bn2EE9ZPSXYGfYQUFjNJhgZ9hBLGR0mGBn2EE9ZLSYYGfYQRdj9JhgZ9hBOWM0mWBn2EFJY3SZYGfYQelitJlgZ9hBkWP0mWBn2EHpYjSaYGfYQSBjdJpgZ9hBLGO0mmBn2EGhZfSaYGfYQXNlNJtgZ9hBVmR0m2Bn2EGMZbSbYGfYQfFi9JtgZ9hBd2Q0nGBn2EHgY3ScYGfYQcNktJxgZ9hBhGT0nGBn2EETYzSdYGfYQbZldJ1gZ9hBXmS0nWBn2EEsY/SdYGfYQYhjNJ5gZ9hBE2N0nmBn2EFFZLSeYGfYQVZj9J5gZ9hBVmQ0n2Bn2EGVY3SfYGfYQV5ktJ9gZ9hBTmP0n2Bn2EEfZzSgYGfYQU5kdKBgZ9hBhGO0oGBn2EHDZPSgYGfYQRNkNKFgZ9hBRWR0oWBn2EHDZLShYGfYQVZj9KFgZ9hBu2M0omBn2EGhZHSiYGfYQapktKJgZ9hBsmP0omBn2EFBYzSjYGfYQYxkdKNgZ9hBJGO0o2Bn2EGVZPSjYGfYQYxkNKRgZ9hBD2N0pGBn2EECZbSkYGfYQTBk9KRgZ9hB0GM0pWBn2EFJY3SlYGfYQapjtKVgZ9hB1GP0pWBn2EFSYzSmYGfYQZFkdKZgZ9hBWmO0pmBn2EFeY/SmYGfYQTljNKdgZ9hBgGN0p2Bn2EGEZLSnYGfYQVZj9KdgZ9hBZ2M0qGBn2EEPY3SoYGfYQWdktKhgZ9hBZ2X0qGBn2EFWYzSpYGfYQbJkdKlgZ9hB6WS0qWBn2EGEZPSpYGfYQVZkNKpgZ9hBzGN0qmBn2EGqZLSqYGfYQbtk9KpgZ9hBE2Q0q2Bn2EEKZHSrYGfYQZVjtKtgZ9hBnWX0q2Bn2EGZZDSsYGfYQYxldKxgZ9hBb2W0rGBn2EEwZPSsYGfYQa5kNK1gZ9hBPWR0rWBn2EFBZLStYGfYQYxl9K1gZ9hBYmU0rmBn2EGQZXSuYGfYQXxjtK5gZ9hBfGX0rmBn2EFJZDSvYGfYQW9ldK9gZ9hBUmW0r2Bn2EE1Y/SvYGfYQR9kNLBgZ9hBKGN0sGBn2EFWZLSwYGfYQYxl9LBgZ9hBXmU0sWBn2EFaZXSxYGfYQQtjtLFgZ9hBKGT0sWBn2EFSZDSyYGfYQfFjdLJgZ9hB3GO0smBn2EECY/SyYGfYQcNkNLNgZ9hBOWN0s2Bn2EHHZbSzYGfYQT1l9LNgZ9hBSWU0tGBn2EEsZHS0YGfYQfFitLRgZ9hBpmT0tGBn2EHUYjS1YGfYQTVjdLVgZ9hB3GO0tWBn2EFOZPS1YGfYQf5iNLZgZ9hBZ2N0tmBn2EGAZbS2YGfYQRNj9LZgZ9hBfGM0t2Bn2EECY3S3YGfYQWNktLdgZ9hBOGX0t2Bn2EF8ZTS4YGfYQT1kdLhgZ9hBVmS0uGBn2EFeY/S4YGfYQVJlNLlgZ9hBUmV0uWBn2EETY7S5YGfYQZlm9LlgZ9hBAmM0umBn2EF3ZHS6YGfYQXNktLpgZ9hBPWX0umBn2EFrZTS7YGfYQTVjdLtgZ9hBlWW0u2Bn2EEPZPS7YGfYQShkNLxgZ9hBiGR0vGBn2EECY7S8YGfYQell9LxgZ9hBQWM0vWBn2EEoY3S9YGfYQTBjtL1gZ9hBPWT0vWBn2EFvZDS+YGfYQTBkdL5gZ9hBXmS0vmBn2EFOZPS+YGfYQVJkNL9gZ9hBjGV0v2Bn2EEXY7S/YGfYQWJl9L9gZ9hBXmQ0wGBn2EFBZXTAYGfYQaVltMBgZ9hBkGX0wGBn2EE5ZDTBYGfYQSBjdMFgZ9hB9mK0wWBn2EEsZPTBYGfYQVJlNMJgZ9hBQWR0wmBn2EETY7TCYGfYQTRk9MJgZ9hBiGM0w2Bn2EFiZXTDYGfYQUlktMNgZ9hBPWP0w2Bn2EH6YjTEYGfYQUFkdMRgZ9hBE2a0xGBn2EE9ZfTEYGfYQUlkNMVgZ9hBjGR0xWBn2EGyZLTFYGfYQVZj9MVgZ9hBiGQ0xmBn2EE1Y3TGYGfYQQ9jtMZgZ9hBVmT0xmBn2EFJZDTHYGfYQYhjdMdgZ9hBY2S0x2Bn2EGVZPTHYGfYQe1iNMhgZ9hBiGN0yGBn2EGNY7TIYGfYQYhj9MhgZ9hBBmM0yWBn2EFFY3TJYGfYQZ1jtMlgZ9hBZ2P0yWBn2EF8ZDTKYGfYQXNkdMpgZ9hBd2S0ymBn2EFeZPTKYGfYQVJjNMtgZ9hBVmR0y2Bn2EHhYrTLYGfYQTBj9MtgZ9hBgGQ0zGBn2EEgY3TMYGfYQZFktMxgZ9hBXmP0zGBn2EE5YzTNYGfYQU5jdM1gZ9hBd2S0zWBn2EFWZPTNYGfYQRtjNM5gZ9hBfGR0zmBn2EFaZLTOYGfYQZFk9M5gZ9hBc2M0z2Bn2EE5Y3TPYGfYQYBktM9gZ9hBmWT0z2Bn2EFnYzTQYGfYQWtjdNBgZ9hBG2O00GBn2EGqY/TQYGfYQRtjNNFgZ9hBd2R00WBn2EEPY7TRYGfYQQtj9NFgZ9hBE2M00mBn2EE1Y3TSYGfYQUljtNJgZ9hBa2P00mBn2EETYzTTYGfYQT1jdNNgZ9hBZ2O002Bn2EGMZPTTYGfYQWtkNNRgZ9hBRWN01GBn2EE9ZLTUYGfYQWtj9NRgZ9hBeGM01WBn2EFzY3TVYGfYQWtltNVgZ9hBgGT01WBn2EECZTTWYGfYQYRkdNZgZ9hB7WK01mBn2EGNY/TWYGfYQbJlNNdgZ9hB9WN012Bn2EH5ZLTXYGfYQWNj9NdgZ9hBXmM02GBn2EGAY3TYYGfYQaFktNhgZ9hBQWT02GBn2EE9ZDTZYGfYQeljdNlgZ9hB2GO02WBn2EEgY/TZYGfYQWtlNNpgZ9hBLGR02mBn2EHpYrTaYGfYQapj9NpgZ9hBt2M022Bn2EGAY3TbYGfYQWNktNtgZ9hBPWP022Bn2EFjYzTcYGfYQU5kdNxgZ9hBgGO03GBn2EFnZPTcYGfYQV5jNN1gZ9hBWmV03WBn2EFeZLTdYGfYQWtj9N1gZ9hBTWU03mBn2EGEZHTeYGfYQWJltN5gZ9hB2GX03mBn2EFSYzTfYGfYQZ1ldN9gZ9hB/mK032Bn2EGAZfTfYGfYQRtkNOBgZ9hBrmR04GBn2EGAZbTgYGfYQVpj9OBgZ9hBfGU04WBn2EGEZXThYGfYQYRltOFgZ9hBOWP04WBn2EEPYzTiYGfYQTlkdOJgZ9hBVmO04mBn2EGEZfTiYGfYQW9lNONgZ9hBLGN042Bn2EE5ZLTjYGfYQUVj9ONgZ9hBTWU05GBn2EGNY3TkYGfYQb9ktORgZ9hBgGT05GBn2EGIYzTlYGfYQaZkdOVgZ9hBE2O05WBn2EGIZPTlYGfYQUFkNOZgZ9hBKGN05mBn2EFWZbTmYGfYQUlj9OZgZ9hBRWM052Bn2EFFZHTnYGfYQT1ktOdgZ9hBpmP052Bn2EFOYzToYGfYQZBldOhgZ9hBhGS06GBn2EGAY/ToYGfYQRdkNOlgZ9hBVmN06WBn2EFWY7TpYGfYQXdk9OlgZ9hBMGU06mBn2EGMZHTqYGfYQeBjtOpgZ9hBgGP06mBn2EFaYzTrYGfYQYRkdOtgZ9hBfGO062Bn2EGAZPTrYGfYQQJjNOxgZ9hBOWN07GBn2EFnZbTsYGfYQXxk9OxgZ9hBgGQ07WBn2EGIZHTtYGfYQRNjtO1gZ9hBC2P07WBn2EGNYzTuYGfYQShjdO5gZ9hB/mK07mBn2EGIZPTuYGfYQaFkNO9gZ9hBZ2R072Bn2EFjY7TvYGfYQQ9k9O9gZ9hB7WQ08GBn2EFvY3TwYGfYQZVjtPBgZ9hB+WT08GBn2EEwYzTxYGfYQYBkdPFgZ9hBfGO08WBn2EGiY/TxYGfYQVJjNPJgZ9hBVmR08mBn2EFOZLTyYGfYQShk9PJgZ9hBOWQ082Bn2EEoY3TzYGfYQdhitPNgZ9hBD2T082Bn2EGAYzT0YGfYQYRkdPRgZ9hBZ2O09GBn2EFFZfT0YGfYQT1jNPVgZ9hBiGR09WBn2EF4Y7T1YGfYQQJl9PVgZ9hB/mI09mBn2EEKZHT2YGfYQa5jtPZgZ9hBu2P09mBn2EEKZDT3YGfYQW9jdPdgZ9hBt2O092Bn2EGiY/T3YGfYQbdjNPhgZ9hBqmN0+GBn2EFFY7T4YGfYQdxj9PhgZ9hBv2M0+WBn2EFjY3T5YGfYQQJktPlgZ9hBjWP0+WBn2EGRYzT6YGfYQbdjdPpgZ9hBu2O0+mBn2EHxY/T6YGfYQSxjNPtgZ9hBa2N0+2Bn2EHMY7T7YGfYQaFk9PtgZ9hB0GM0/GBn2EGdY3T8YGfYQW9jtPxgZ9hBRWP0/GBn2EGuZDT9YGfYQXNjdP1gZ9hBSWS0/WBn2EFOZPT9YGfYQUFjNP5gZ9hBiGV0/mBn2EETY7T+YGfYQYBl9P5gZ9hBa2U0/2Bn2EFrZHT/YGfYQXxktP9gZ9hBNWP0/2Bn2EH6YjQAYWfYQV5jdABhZ9hBgGS0AGFn2EGVZPQAYWfYQYhkNAFhZ9hBfGR0AWFn2EFzY7QBYWfYQYBl9AFhZ9hBUmM0AmFn2EEGY3QCYWfYQQZjtAJhZ9hBXmT0AmFn2EFzZDQDYWfYQUlkdANhZ9hBF2O0A2Fn2EEPY/QDYWfYQZlkNARhZ9hBY2N0BGFn2EFOZLQEYWfYQW9j9ARhZ9hBgGQ0BWFn2EFFZXQFYWfYQWNjtAVhZ9hBXmT0BWFn2EFvZDQGYWfYQU5kdAZhZ9hBUmW0BmFn2EEOZfQGYWfYQVpkNAdhZ9hBE2N0B2Fn2EH2YrQHYWfYQTlj9AdhZ9hBb2Q0CGFn2EE5ZHQIYWfYQXxktAhhZ9hBJGT0CGFn2EE5ZDQJYWfYQUFkdAlhZ9hBVmO0CWFn2EFSY/QJYWfYQRtjNAphZ9hBJGN0CmFn2EEbY7QKYWfYQa5j9AphZ9hBnWM0C2Fn2EF4Y3QLYWfYQYRktAthZ9hBVmP0C2Fn2EFWZDQMYWfYQUljdAxhZ9hBMGW0DGFn2EE5ZPQMYWfYQUllNA1hZ9hBSWV0DWFn2EEXZbQNYWfYQV5l9A1hZ9hBRWU0DmFn2EEwZXQOYWfYQVpjtA5hZ9hBG2T0DmFn2EEfZDQPYWfYQVJkdA9hZ9hBOWO0D2Fn2EEXZPQPYWfYQT1kNBBhZ9hBLGN0EGFn2EGQZbQQYWfYQWdk9BBhZ9hBRWM0EWFn2EFFY3QRYWfYQeFitBFhZ9hBOWT0EWFn2EEwYzQSYWfYQZVjdBJhZ9hBKGO0EmFn2EE1Y/QSYWfYQXxkNBNhZ9hBb2R0E2Fn2EFJZLQTYWfYQQZj9BNhZ9hB+mI0FGFn2EFFY3QUYWfYQW9ltBRhZ9hBgGX0FGFn2EEwZTQVYWfYQbpldBVhZ9hBQWO0FWFn2EFrZfQVYWfYQfFjNBZhZ9hBa2V0FmFn2EHHYrQWYWfYQShj9BZhZ9hBDmY0F2Fn2EGRZHQXYWfYQW9ltBdhZ9hB/mT0F2Fn2EE0ZTQYYWfYQRNldBhhZ9hBKGO0GGFn2EFOY/QYYWfYQeVkNBlhZ9hBWmV0GWFn2EGlZbQZYWfYQV5k9BlhZ9hBVmQ0GmFn2EGMZHQaYWfYQVJltBphZ9hBXmX0GmFn2EFWZTQbYWfYQXNldBthZ9hBAmS0G2Fn2EE5ZPQbYWfYQRtkNBxhZ9hBQWN0HGFn2EE5ZLQcYWfYQVJj9BxhZ9hBc2U0HWFn2EFJZHQdYWfYQRNktB1hZ9hBPWT0HWFn2EHtYjQeYWfYQQZldB5hZ9hBLGS0HmFn2EGEZfQeYWfYQQ==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1064]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAAAEUAAAAAAAAASQAAAAAAAABVAAAAAAAAA8D8AAAAAAADgPwAAAAAAAAAAAAAAAAAAAAAAAAAAAIBDQAAAAAAAwFZAAAAAAADgV0AAAAAAAGBWQAAAAAAAoFdAAAAAAAAAWUAAAAAAAPBWQAAAAAAA8FZAAAAAAACgV0AAAAAAAFBYQAAAAAAAwFdAAAAAAACwV0AAAAAAAMBXQAAAAAAAgFdAAAAAAABgV0AAAAAAANBXQAAAAAAAIFhAAAAAAAAAWEAAAAAAAHBWQAAAAAAAwFZAAAAAAADAWEAAAAAAAIBXQAAAAAAAEFdAAAAAAACAVkAAAAAAAGBXQAAAAAAAoFdAAAAAAADgVkAAAAAAAPBXQAAAAAAAQFZAAAAAAADAVkAAAAAAAPBWQAAAAAAAwFdAAAAAAAAAWUAAAAAAAOBWQAAAAAAA4FZAAAAAAACgV0AAAAAAAFBYQAAAAAAA8FdAAAAAAACwV0AAAAAAAPBXQAAAAAAAEFdAAAAAAADgV0AAAAAAADBYQAAAAAAAMFhAAAAAAADgV0AAAAAAAGBWQAAAAAAA4FZAAAAAAABgWEAAAAAAALBXQAAAAAAAUFdAAAAAAADwVkAAAAAAAOBWQAAAAAAAoFdAAAAAAABQV0AAAAAAAPBXQAAAAAAAIFdAAAAAAAAwV0AAAAAAAABXQAAAAAAAMFdAAAAAAABgWEAAAAAAAKBXQAAAAAAAUFdAAAAAAABgVkAAAAAAANBXQAAAAAAA8FhAAAAAAAAwV0AAAAAAAABYQAAAAAAA0FZAAAAAAAAgV0AAAAAAABBXQAAAAAAAEFdAAAAAAACAWEAAAAAAANBWQAAAAAAAgFdAAAAAAABgVkAAAAAAAPBXQAAAAAAA4FhAAAAAAAAQV0AAAAAAANBWQAAAAAAA4FZAAAAAAABQV0AAAAAAAKBXQAAAAAAAYFdAAAAAAABwWEAAAAAAANBWQAAAAAAA4FZAAAAAAABgV0AAAAAAAABYQAAAAAAA4FhAAAAAAADwVkAAAAAAAMBWQAAAAAAAcFdAAAAAAABAWEAAAAAAALBXQAAAAAAAUFdAAAAAAADwV0AAAAAAAHBWQAAAAAAA4FZAAAAAAAAQV0AAAAAAAMBXQAAAAAAAgFhAAAAAAABwV0AAAAAAAGBXQAAAAAAAkFZAAAAAAAAAWEAAAAAAAKBYQAAAAAAAEFdAAAAAAADwV0AAAAAAAGBWQAAAAAAAgFdAAAAAAAAQV0AAAAAAAJBXQAAAAAAAgFhAAAAAAADQVkAAAAAAAIBXQAAAAAAAgFZAAAAAAADwV0AAAAAAALBYQAAAAAAAIFdAAAAAAAAQV0AAAAAAAIBWQAAAAAAAYFdAAAAAAACwV0AAAAAAAIBXQAAAAAAAgFhAAAAAAADwVkAAAAAAANBWQAAAAAAAQFdAAAAAAADwV0AAAAAAAMBYQAAAAAAAEFdAAAAAAAAAV0AAAAAAAMBXQAAAAAAAgFhAAAAAAACwV0AAAAAAAMBXQAAAAAAA8FdAAAAAAADwVkAAAAAAAOBWQAAAAAAAYFdAAAAAAADgV0AAAAAAADBYQAAAAAAAEFdAAAAAAADgVkAAAAAAAKBXQAAAAAAAcFhAAAAAAAAAWEAAAAAAAOBWQAAAAAAA8FdAAAAAAACQVkAAAAAAAFBXQAAAAAAAkFdAAAAAAADgV0AAAAAAAIBYQAAAAAAAQFZAAAAAAAAQV0AAAAAAACBYQAAAAAAAIFhAAAAAAADwV0AAAAAAABBXQAAAAAAA0FZAAAAAAADAV0AAAAAAANBXQAAAAAAAsFdAAAAAAADQV0AAAAAAAPBXQAAAAAAAYFZAAAAAAAAQV0AAAAAAACBYQAAAAAAAEFhAAAAAAABQV0AAAAAAABBXQAAAAAAAAFdAAAAAAADAV0AAAAAAAKBXQAAAAAAA8FdAAAAAAADAV0AAAAAAAPBXQAAAAAAAAFdAAAAAAAAwV0AAAAAAAFBYQAAAAAAAQFhAAAAAAACAV0AAAAAAANBWQAAAAAAA0FZAAAAAAABAWEAAAAAAAEBXQAAAAAAAoFdAAAAAAABAVkAAAAAAAFBXQAAAAAAAEFdAAAAAAACAV0AAAAAAAIBYQAAAAAAAMFhAAAAAAABgV0AAAAAAAHBWQAAAAAAAYFdAAAAAAACgWEAAAAAAAEBXQAAAAAAAsFdAAAAAAABwVkAAAAAAACBXQAAAAAAAYFhAAAAAAABwV0AAAAAAAHBYQAAAAAAAoFdAAAAAAACwVkAAAAAAAHBWQAAAAAAAMFdAAAAAAADAWEAAAAAAAABXQAAAAAAAMFdAAAAAAADQVkAAAAAAAOBWQAAAAAAAUFhAAAAAAABAV0AAAAAAAGBXQAAAAAAAsFdAAAAAAADAVkAAAAAAAABXQAAAAAAAYFdAAAAAAACwWEAAAAAAAABXQAAAAAAAIFdAAAAAAAAQV0AAAAAAAEBYQAAAAAAAgFhAAAAAAAAQV0AAAAAAAIBXQAAAAAAA4FZAAAAAAAAAWEAAAAAAADBXQAAAAAAAYFdAAAAAAABgWEAAAAAAAHBWQAAAAAAAAFdAAAAAAAAQV0AAAAAAAIBYQAAAAAAAgFhAAAAAAACQVkAAAAAAAABXQAAAAAAAsFdAAAAAAAAQWEAAAAAAAMBXQAAAAAAA0FdAAAAAAAAwWEAAAAAAAHBWQAAAAAAAcFdAAAAAAAAQV0AAAAAAAFBYQAAAAAAAYFhAAAAAAABwVkAAAAAAAPBWQAAAAAAAYFhAAAAAAABAWEAAAAAAALBXQAAAAAAAEFdAAAAAAABwV0AAAAAAAMBWQAAAAAAAgFdAAAAAAAAwWEAAAAAAAOBXQAAAAAAAYFdAAAAAAABwVkAAAAAAABBXQAAAAAAAUFhAAAAAAACQV0AAAAAAAHBXQAAAAAAAAFdAAAAAAADwVkAAAAAAAFBYQAAAAAAAQFdAAAAAAACAWEAAAAAAAKBXQAAAAAAAAFdAAAAAAAAAV0AAAAAAAFBXQAAAAAAAYFhAAAAAAABAV0AAAAAAAIBXQAAAAAAAYFZAAAAAAACQV0AAAAAAAABZQAAAAAAAIFdAAAAAAACAV0AAAAAAAGBWQAAAAAAAAFdAAAAAAAAAV0AAAAAAAEBXQAAAAAAAgFhAAAAAAACAVkAAAAAAAIBXQAAAAAAAUFZAAAAAAACgV0AAAAAAAPBYQAAAAAAAAFdAAAAAAAAAV0AAAAAAAPBWQAAAAAAAAFhAAAAAAABQWEAAAAAAABBXQAAAAAAAgFhAAAAAAACgVkAAAAAAACBXQAAAAAAAMFdAAAAAAAAQWEAAAAAAAMBYQAAAAAAAwFZAAAAAAAAAV0AAAAAAAHBXQAAAAAAAcFhAAAAAAADgV0AAAAAAAABXQAAAAAAAAFhAAAAAAABQVkAAAAAAAIBXQAAAAAAAoFdAAAAAAACAWEAAAAAAAIBYQAAAAAAAgFZAAAAAAAAAV0AAAAAAACBYQAAAAAAAIFhAAAAAAACgV0AAAAAAAABXQAAAAAAAgFdAAAAAAADwVkAAAAAAAOBXQAAAAAAA0FdAAAAAAABQWEAAAAAAAKBXQAAAAAAAIFZAAAAAAAAAV0AAAAAAAABYQAAAAAAAMFhAAAAAAADAV0AAAAAAAEBWQAAAAAAAAFdAAAAAAABQWEAAAAAAABBYQAAAAAAAQFdAAAAAAACgV0AAAAAAAGBYQAAAAAAAkFZAAAAAAACAV0AAAAAAABBYQAAAAAAAcFhAAAAAAAAAWEAAAAAAAFBWQAAAAAAAAFdAAAAAAABQWEAAAAAAAABYQAAAAAAAgFdAAAAAAABAVkAAAAAAAABYQAAAAAAAEFdAAAAAAACgV0AAAAAAAPBXQAAAAAAAUFhAAAAAAABwV0AAAAAAAFBWQAAAAAAA8FZAAAAAAADgV0AAAAAAAHBYQAAAAAAA4FdAAAAAAABAVkAAAAAAAABXQAAAAAAAUFhAAAAAAAAAWEAAAAAAALBXQAAAAAAAwFdAAAAAAAAAWEAAAAAAALBWQAAAAAAAgFdAAAAAAACwV0AAAAAAAFBYQAAAAAAAAFhAAAAAAABAVkAAAAAAALBWQAAAAAAAUFhAAAAAAACwV0AAAAAAAOBXQAAAAAAAsFdAAAAAAACgV0AAAAAAAMBWQAAAAAAAgFdAAAAAAADwV0AAAAAAAHBYQAAAAAAA8FdAAAAAAABAVkAAAAAAANBWQAAAAAAAEFhAAAAAAADgV0AAAAAAAKBXQAAAAAAAAFdAAAAAAAAAWEAAAAAAADBXQAAAAAAA0FdAAAAAAAAgWEAAAAAAAGBYQAAAAAAAgFdAAAAAAABgVkAAAAAAAMBWQAAAAAAA8FdAAAAAAAAgWEAAAAAAAPBXQAAAAAAAUFZAAAAAAAAAV0AAAAAAAKBXQAAAAAAAAFhAAAAAAACQV0AAAAAAAMBXQAAAAAAAcFhAAAAAAACAVkAAAAAAAIBXQAAAAAAAYFdAAAAAAAAwWEAAAAAAADBYQAAAAAAAMFZAAAAAAAAAV0AAAAAAAIBXQAAAAAAAgFhAAAAAAADQV0AAAAAAAIBWQAAAAAAAAFhAAAAAAABAVkAAAAAAAIBXQAAAAAAA4FZAAAAAAABgV0AAAAAAAOBYQAAAAAAAgFdAAAAAAABQV0AAAAAAAEBWQAAAAAAAoFdAAAAAAADwWEAAAAAAAEBXQAAAAAAAAFdAAAAAAADwVkAAAAAAABBXQAAAAAAAkFdAAAAAAACgV0AAAAAAANBXQAAAAAAAIFhAAAAAAAAAWEAAAAAAADBWQAAAAAAAAFdAAAAAAACwV0AAAAAAAEBYQAAAAAAAAFhAAAAAAADgVkAAAAAAAOBXQAAAAAAAUFZAAAAAAACwV0AAAAAAABBXQAAAAAAAgFdAAAAAAADwWEAAAAAAAIBXQAAAAAAAIFdAAAAAAABwVkAAAAAAANBXQAAAAAAAAFlAAAAAAAAwV0AAAAAAAPBWQAAAAAAA8FZAAAAAAAAAV0AAAAAAALBXQAAAAAAAgFdAAAAAAADwV0AAAAAAAFBYQAAAAAAAsFdAAAAAAABgVkAAAAAAAABXQAAAAAAAoFdAAAAAAABwWEAAAAAAAEBYQAAAAAAAcFZAAAAAAAAAV0AAAAAAANBWQAAAAAAA0FdAAAAAAACgV0AAAAAAAPBWQAAAAAAAAFhAAAAAAABgV0AAAAAAAFBXQAAAAAAAQFZAAAAAAAAAV0AAAAAAACBYQAAAAAAAUFhAAAAAAAAAWEAAAAAAAEBWQAAAAAAAAFdAAAAAAAAAWEAAAAAAACBYQAAAAAAAsFdAAAAAAABQV0AAAAAAAPBXQAAAAAAA4FZAAAAAAAAwV0AAAAAAAHBWQAAAAAAAgFdAAAAAAADQWEAAAAAAALBXQAAAAAAAgFdAAAAAAACAVkAAAAAAAABXQAAAAAAAUFhAAAAAAABAWEAAAAAAANBXQAAAAAAAgFdAAAAAAAAAWEAAAAAAAMBWQAAAAAAAIFdAAAAAAABQVkAAAAAAACBXQAAAAAAAkFhAAAAAAADgV0AAAAAAAOBXQAAAAAAAYFZAAAAAAAAAV0AAAAAAACBXQAAAAAAAgFdAAAAAAACwV0AAAAAAAOBWQAAAAAAAYFhAAAAAAACgV0AAAAAAAABYQAAAAAAAgFZAAAAAAAAAV0AAAAAAAJBXQAAAAAAAAFhAAAAAAADgWEAAAAAAADBXQAAAAAAAkFdAAAAAAAAgV0AAAAAAAIBXQAAAAAAAQFdAAAAAAAAAWEAAAAAAABBXQAAAAAAAYFdAAAAAAACQWEAAAAAAABBYQAAAAAAAAFhAAAAAAACAVkAAAAAAAABXQAAAAAAAUFdAAAAAAAAAWEAAAAAAAGBYQAAAAAAA4FdAAAAAAADQV0AAAAAAAHBXQAAAAAAA0FdAAAAAAABAV0AAAAAAAIBXQAAAAAAAgFZAAAAAAAAAV0AAAAAAAPBWQAAAAAAAsFdAAAAAAADgWEAAAAAAAABYQAAAAAAA4FdAAAAAAABwVkAAAAAAAIBXQAAAAAAA4FZAAAAAAABQV0AAAAAAAKBXQAAAAAAAUFdAAAAAAAAQWEAAAAAAAEBYQAAAAAAAIFhAAAAAAABgVkAAAAAAALBWQAAAAAAAYFdAAAAAAABwWEAAAAAAAIBYQAAAAAAAwFZAAAAAAACAV0AAAAAAAJBWQAAAAAAAQFdAAAAAAACwV0AAAAAAAABXQAAAAAAAMFhAAAAAAAAgWEAAAAAAALBXQAAAAAAAcFZAAAAAAABgV0AAAAAAAKBYQAAAAAAAoFdAAAAAAADAV0AAAAAAABBXQAAAAAAAYFdAAAAAAACgV0AAAAAAAIBXQAAAAAAA0FdAAAAAAABgWEAAAAAAAABYQAAAAAAAYFZAAAAAAAAAV0AAAAAAAPBXQAAAAAAAUFhAAAAAAADQV0AAAAAAAGBWQAAAAAAAUFdAAAAAAAAAWEAAAAAAAABYQAAAAAAA4FdAAAAAAADAV0AAAAAAAABYQAAAAAAAAFdAAAAAAAAAV0AAAAAAAMBXQAAAAAAAUFhAAAAAAAAAWEAAAAAAAGBWQAAAAAAAAFdAAAAAAABwWEAAAAAAAOBXQAAAAAAA8FdAAAAAAAAQV0AAAAAAAIBXQAAAAAAAoFdAAAAAAACAV0AAAAAAAMBXQAAAAAAAQFhAAAAAAAAgWEAAAAAAAGBWQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1064]}},\"selected\":{\"id\":\"18077\"},\"selection_policy\":{\"id\":\"18076\"}},\"id\":\"16721\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"18077\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"16681\"}},\"id\":\"16686\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"18079\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"16710\",\"type\":\"ResetTool\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"16681\"},\"glyph\":{\"id\":\"16684\"},\"group\":null,\"hover_glyph\":null,\"view\":{\"id\":\"16688\"}},\"id\":\"16687\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"18080\",\"type\":\"Selection\"},{\"attributes\":{\"dimensions\":\"width\"},\"id\":\"16712\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"16721\"},\"glyph\":{\"id\":\"16723\"},\"group\":null,\"hover_glyph\":null,\"view\":{\"id\":\"16726\"}},\"id\":\"16725\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis_label\":\"GPUMemoryUtilization-nodeid:algo-1_total\",\"coordinates\":null,\"formatter\":{\"id\":\"18056\"},\"group\":null,\"major_label_policy\":{\"id\":\"18057\"},\"ticker\":{\"id\":\"16664\"}},\"id\":\"16663\",\"type\":\"LinearAxis\"},{\"attributes\":{\"tools\":[{\"id\":\"16667\"},{\"id\":\"16668\"},{\"id\":\"16669\"},{\"id\":\"16670\"},{\"id\":\"16671\"},{\"id\":\"16672\"},{\"id\":\"16689\"}]},\"id\":\"16674\",\"type\":\"Toolbar\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"16713\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"16670\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"16671\",\"type\":\"SaveTool\"},{\"attributes\":{\"axis\":{\"id\":\"16663\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null,\"visible\":false},\"id\":\"16666\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"16669\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"16667\",\"type\":\"CrosshairTool\"},{\"attributes\":{\"end\":102},\"id\":\"16733\",\"type\":\"Range1d\"},{\"attributes\":{\"below\":[{\"id\":\"16659\"}],\"center\":[{\"id\":\"16662\"},{\"id\":\"16666\"}],\"height\":200,\"js_event_callbacks\":{\"selectiongeometry\":[{\"id\":\"16682\"}]},\"left\":[{\"id\":\"16663\"}],\"renderers\":[{\"id\":\"16685\"},{\"id\":\"16687\"}],\"title\":{\"id\":\"18049\"},\"toolbar\":{\"id\":\"16674\"},\"width\":1000,\"x_range\":{\"id\":\"16651\"},\"x_scale\":{\"id\":\"16655\"},\"y_range\":{\"id\":\"16653\"},\"y_scale\":{\"id\":\"16657\"}},\"id\":\"16650\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"16727\"}],\"tooltips\":[[\"index\",\"$index\"],[\"(x,y)\",\"($x, $y)\"]]},\"id\":\"16729\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"16735\",\"type\":\"LinearScale\"},{\"attributes\":{\"source\":{\"id\":\"16681\"}},\"id\":\"16688\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"a2V0FWBn2EHDZrQVYGfYQWto9BVgZ9hBQWY0FmBn2EFBZ3QWYGfYQaVotBZgZ9hBZWT0FmBn2EGpZTQXYGfYQf9jdBdgZ9hBQWS0F2Bn2EE9ZfQXYGfYQellNBhgZ9hBR2V0GGBn2EHFZ7QYYGfYQRVo9BhgZ9hBu2c0GWBn2EGHaHQZYGfYQRtmtBlgZ9hB2WT0GWBn2EFXZDQaYGfYQX9kdBpgZ9hBv2a0GmBn2EE/ZPQaYGfYQT1lNBtgZ9hBa2d0G2Bn2EF9Y7QbYGfYQQdl9BtgZ9hBG2Q0HGBn2EEFY3QcYGfYQcFitBxgZ9hBB2j0HGBn2EGDZjQdYGfYQT1odB1gZ9hBOWi0HWBn2EEDZ/QdYGfYQT1lNB5gZ9hB+WV0HmBn2EFVaLQeYGfYQUFn9B5gZ9hBK2Q0H2Bn2EEranQfYGfYQelltB9gZ9hBm2X0H2Bn2EEBZjQgYGfYQdtkdCBgZ9hBWWe0IGBn2EFVY/QgYGfYQaVjNCFgZ9hBa2R0IWBn2EG/ZLQhYGfYQVdj9CFgZ9hBVWU0ImBn2EHDZnQiYGfYQeVltCJgZ9hBm2f0ImBn2EHnZzQjYGfYQWtldCNgZ9hBR2i0I2Bn2EGAZvQjYGfYQQNkNCRgZ9hBpWl0JGBn2EE5Z7QkYGfYQf9k9CRgZ9hBJWU0JWBn2EFpZ3QlYGfYQStstCVgZ9hBpWf0JWBn2EEnaDQmYGfYQcFmdCZgZ9hBa2S0JmBn2EF5ZfQmYGfYQf9nNCdgZ9hBf2N0J2Bn2EH7ZLQnYGfYQQdl9CdgZ9hBqWc0KGBn2EEbaHQoYGfYQUFltChgZ9hBgWj0KGBn2EH9YjQpYGfYQStkdClgZ9hBl2W0KWBn2EEXaPQpYGfYQRtmNCpgZ9hBpWd0KmBn2EGbZbQqYGfYQRtm9CpgZ9hBZ2Q0K2Bn2EE5aXQrYGfYQftjtCtgZ9hBVWP0K2Bn2EHjZDQsYGfYQUVndCxgZ9hBf2m0LGBn2EGXZPQsYGfYQZlmNC1gZ9hBK2V0LWBn2EF/aLQtYGfYQb1l9C1gZ9hBhWI0LmBn2EFBZHQuYGfYQXtntC5gZ9hB62b0LmBn2EGlZzQvYGfYQeVndC9gZ9hBZWa0L2Bn2EGXZfQvYGfYQelkNDBgZ9hBg2N0MGBn2EFAabQwYGfYQX9l9DBgZ9hBq2M0MWBn2EGAZXQxYGfYQb9ptDFgZ9hBh2j0MWBn2EGZZDQyYGfYQXlndDJgZ9hBxWW0MmBn2EGbaPQyYGfYQXtkNDNgZ9hBAWZ0M2Bn2EF7ZbQzYGfYQetl9DNgZ9hB2WY0NGBn2EFrZHQ0YGfYQflmtDRgZ9hBOWb0NGBn2EHlZzQ1YGfYQf9mdDVgZ9hB62K0NWBn2EE5aPQ1YGfYQbtnNDZgZ9hBv2d0NmBn2EFZZbQ2YGfYQYBl9DZgZ9hB+WY0N2Bn2EFVZnQ3YGfYQUVmtDdgZ9hB+WX0N2Bn2EEdYzQ4YGfYQVtldDhgZ9hBJWa0OGBn2EGlaPQ4YGfYQZtoNDlgZ9hBm2h0OWBn2EG5aLQ5YGfYQVVl9DlgZ9hBJ2Y0OmBn2EHZZXQ6YGfYQSdktDpgZ9hBg2j0OmBn2EHlZjQ7YGfYQRtndDtgZ9hBK2a0O2Bn2EGpZvQ7YGfYQdVoNDxgZ9hB52Z0PGBn2EEnarQ8YGfYQVdn9DxgZ9hBOWM0PWBn2EEHZHQ9YGfYQcNltD1gZ9hBPWX0PWBn2EErZTQ+YGfYQcVldD5gZ9hBRWa0PmBn2EHDZfQ+YGfYQRdjND9gZ9hBPWN0P2Bn2EEHZbQ/YGfYQVtj9D9gZ9hBu2c0QGBn2EGDZXRAYGfYQVVktEBgZ9hBuWT0QGBn2EH/ZjRBYGfYQYBjdEFgZ9hBWWW0QWBn2EG/ZvRBYGfYQbliNEJgZ9hBBWV0QmBn2EEDZrRCYGfYQcNj9EJgZ9hBZWQ0Q2Bn2EHFZnRDYGfYQZlktENgZ9hBFWn0Q2Bn2EErazREYGfYQf1qdERgZ9hB+2S0RGBn2EG5Z/REYGfYQYdpNEVgZ9hBV2V0RWBn2EHZZLRFYGfYQXtk9EVgZ9hB62Q0RmBn2EG9ZXRGYGfYQT1ltEZgZ9hBv2X0RmBn2EHrYjRHYGfYQeVldEdgZ9hBWWe0R2Bn2EFHZvRHYGfYQVdkNEhgZ9hBp2R0SGBn2EE/Z7RIYGfYQWVo9EhgZ9hB52Y0SWBn2EG/ZXRJYGfYQdVitElgZ9hBWWX0SWBn2EFXZTRKYGfYQUdldEpgZ9hBvWa0SmBn2EEVZfRKYGfYQRtkNEtgZ9hBpWV0S2Bn2EFBZLRLYGfYQeVm9EtgZ9hBK2U0TGBn2EFVaXRMYGfYQT1mtExgZ9hB+WX0TGBn2EHjZzRNYGfYQf9ldE1gZ9hBa2e0TWBn2EGlaPRNYGfYQWlmNE5gZ9hBRWZ0TmBn2EFbZLROYGfYQcNo9E5gZ9hBW2Y0T2Bn2EG5anRPYGfYQWdmtE9gZ9hBJ2b0T2Bn2EFZaDRQYGfYQcdmdFBgZ9hBV2a0UGBn2EEFafRQYGfYQWVlNFFgZ9hBlWh0UWBn2EEnarRRYGfYQVVm9FFgZ9hBJ2Y0UmBn2EFBZXRSYGfYQSdltFJgZ9hBeWf0UmBn2EEFZjRTYGfYQZtldFNgZ9hBO2O0U2Bn2EElZfRTYGfYQQVlNFRgZ9hBP2R0VGBn2EFrY7RUYGfYQeNm9FRgZ9hBh2c0VWBn2EHlaXRVYGfYQcVktFVgZ9hBJ2j0VWBn2EEdYzRWYGfYQVdndFZgZ9hBW2S0VmBn2EG5ZfRWYGfYQWlnNFdgZ9hBV2R0V2Bn2EFlZLRXYGfYQQdm9FdgZ9hBVWg0WGBn2EFDanRYYGfYQT9ltFhgZ9hBK2r0WGBn2EHrZTRZYGfYQdtldFlgZ9hBBWy0WWBn2EGDZPRZYGfYQYdjNFpgZ9hBW2Z0WmBn2EEpaLRaYGfYQYFo9FpgZ9hB/WI0W2Bn2EEnZXRbYGfYQSVotFtgZ9hBh2b0W2Bn2EElaTRcYGfYQT9mdFxgZ9hBR2W0XGBn2EH9ZvRcYGfYQYdmNF1gZ9hB+2V0XWBn2EGrZLRdYGfYQVVo9F1gZ9hBQWc0XmBn2EH7ZXReYGfYQb9jtF5gZ9hBf2v0XmBn2EGAZDRfYGfYQftodF9gZ9hBB2W0X2Bn2EFVZ/RfYGfYQQFkNGBgZ9hBlWN0YGBn2EFHZrRgYGfYQVVl9GBgZ9hBu2c0YWBn2EHrZ3RhYGfYQcVktGFgZ9hB5Wb0YWBn2EHHZTRiYGfYQbtldGJgZ9hBV2W0YmBn2EHrZPRiYGfYQalpNGNgZ9hBpWZ0Y2Bn2EFbZLRjYGfYQUFl9GNgZ9hBw2U0ZGBn2EE9ZnRkYGfYQblntGRgZ9hB/WX0ZGBn2EEHZzRlYGfYQZVpdGVgZ9hBKWq0ZWBn2EG5ZPRlYGfYQRVmNGZgZ9hBR2N0ZmBn2EE5ZbRmYGfYQVtk9GZgZ9hBh2c0Z2Bn2EE5ZnRnYGfYQStltGdgZ9hB62T0Z2Bn2EEbZTRoYGfYQYBldGhgZ9hBa2O0aGBn2EFnZvRoYGfYQZtlNGlgZ9hBG2V0aWBn2EFHZLRpYGfYQall9GlgZ9hB2WU0amBn2EHlZnRqYGfYQT9otGpgZ9hBZ2b0amBn2EG5ZTRrYGfYQQFndGtgZ9hBP2a0a2Bn2EGpZfRrYGfYQYBjNGxgZ9hBV2V0bGBn2EFbZLRsYGfYQb9l9GxgZ9hBeWU0bWBn2EEXaHRtYGfYQbtntG1gZ9hBx2f0bWBn2EEVaTRuYGfYQYNndG5gZ9hBPWa0bmBn2EE/ZfRuYGfYQadjNG9gZ9hBQWZ0b2Bn2EF/Z7RvYGfYQb1l9G9gZ9hBmWY0cGBn2EEBaHRwYGfYQYNmtHBgZ9hBh2T0cGBn2EGVZzRxYGfYQaVmdHFgZ9hB+2a0cWBn2EEbZvRxYGfYQUVpNHJgZ9hBvWd0cmBn2EFpZ7RyYGfYQYNk9HJgZ9hBv2U0c2Bn2EG5ZXRzYGfYQftmtHNgZ9hBW2f0c2Bn2EHpYjR0YGfYQVtjdHRgZ9hBu2a0dGBn2EGraPR0YGfYQUVmNHVgZ9hB12d0dWBn2EGlZbR1YGfYQRto9HVgZ9hBf2U0dmBn2EGAZXR2YGfYQUVotHZgZ9hBWWb0dmBn2EEFajR3YGfYQXtldHdgZ9hB/WS0d2Bn2EHrZfR3YGfYQZtoNHhgZ9hBu2d0eGBn2EGAZbR4YGfYQatl9HhgZ9hBv2Q0eWBn2EG5aXR5YGfYQcNmtHlgZ9hBB2P0eWBn2EFpZjR6YGfYQatkdHpgZ9hBmWe0emBn2EGnY/R6YGfYQcdjNHtgZ9hBm2N0e2Bn2EH7ZLR7YGfYQRtm9HtgZ9hBl2Q0fGBn2EGnZHR8YGfYQb1ntHxgZ9hBJ2X0fGBn2EGlZjR9YGfYQWVldH1gZ9hB+WS0fWBn2EFZY/R9YGfYQdtiNH5gZ9hBgGN0fmBn2EGAY7R+YGfYQftk9H5gZ9hBe2c0f2Bn2EFFZHR/YGfYQVdltH9gZ9hBG2T0f2Bn2EGVYzSAYGfYQZlkdIBgZ9hBa2S0gGBn2EErZ/SAYGfYQQFpNIFgZ9hBx2R0gWBn2EHFZLSBYGfYQatn9IFgZ9hB22Q0gmBn2EGHanSCYGfYQUVktIJgZ9hBh2X0gmBn2EGAZDSDYGfYQRtodINgZ9hBaWW0g2Bn2EG5aPSDYGfYQSVlNIRgZ9hBeWV0hGBn2EG7ZrSEYGfYQell9IRgZ9hB+WU0hWBn2EF/ZHSFYGfYQStjtIVgZ9hBqWf0hWBn2EGDZTSGYGfYQYdldIZgZ9hB/WS0hmBn2EE5ZfSGYGfYQcFlNIdgZ9hBgWR0h2Bn2EEHZrSHYGfYQcFk9IdgZ9hBF2M0iGBn2EG/ZHSIYGfYQVlktIhgZ9hBf2T0iGBn2EFlaDSJYGfYQYdmdIlgZ9hB5WS0iWBn2EHHZPSJYGfYQaVkNIpgZ9hB22N0imBn2EEVY7SKYGfYQWtl9IpgZ9hBWWU0i2Bn2EGZZ3SLYGfYQTlltItgZ9hBf2f0i2Bn2EF7ZDSMYGfYQQdmdIxgZ9hBK2S0jGBn2EGXZvSMYGfYQdliNI1gZ9hBpWN0jWBn2EF/ZLSNYGfYQUdj9I1gZ9hBQWU0jmBn2EHpZXSOYGfYQYNktI5gZ9hBxWf0jmBn2EG7ZDSPYGfYQQFndI9gZ9hBpWW0j2Bn2EGlZfSPYGfYQZllNJBgZ9hB/2N0kGBn2EGbaLSQYGfYQQNl9JBgZ9hBh2Y0kWBn2EFbZXSRYGfYQf9ktJFgZ9hBe2X0kWBn2EGZZDSSYGfYQUdldJJgZ9hBm2W0kmBn2EHVZfSSYGfYQatmNJNgZ9hB62N0k2Bn2EF/ZrSTYGfYQcNl9JNgZ9hBu2U0lGBn2EF5aHSUYGfYQeVitJRgZ9hBq2b0lGBn2EGDYzSVYGfYQWVndJVgZ9hBWWi0lWBn2EG/Y/SVYGfYQYBlNJZgZ9hBgWV0lmBn2EE5ZbSWYGfYQYdn9JZgZ9hB6WM0l2Bn2EFpZnSXYGfYQRtjtJdgZ9hBRWT0l2Bn2EF7ZDSYYGfYQbtndJhgZ9hBRWS0mGBn2EFrZPSYYGfYQUFjNJlgZ9hBBWR0mWBn2EFFZbSZYGfYQWVj9JlgZ9hBl2M0mmBn2EG5Y3SaYGfYQeljtJpgZ9hB52b0mmBn2EGAZTSbYGfYQVtkdJtgZ9hB42a0m2Bn2EG5Y/SbYGfYQadkNJxgZ9hB1WR0nGBn2EEFZ7ScYGfYQbtn9JxgZ9hBlWQ0nWBn2EG9ZXSdYGfYQcNmtJ1gZ9hBZ2T0nWBn2EGBYzSeYGfYQTlmdJ5gZ9hBh2W0nmBn2EFbY/SeYGfYQf1mNJ9gZ9hBq2R0n2Bn2EFnZLSfYGfYQVVj9J9gZ9hBFWc0oGBn2EG/ZnSgYGfYQbtjtKBgZ9hBe2f0oGBn2EEbZDShYGfYQUdkdKFgZ9hBV2e0oWBn2EFVZPShYGfYQT9lNKJgZ9hBqWR0omBn2EGHZLSiYGfYQblm9KJgZ9hBv2M0o2Bn2EFlZnSjYGfYQbtktKNgZ9hBw2X0o2Bn2EGHZTSkYGfYQRVkdKRgZ9hBBWW0pGBn2EErZPSkYGfYQaVnNKVgZ9hB+2Z0pWBn2EHBY7SlYGfYQell9KVgZ9hBRWM0pmBn2EGHZHSmYGfYQftltKZgZ9hB1Wb0pmBn2EFVYzSnYGfYQf9kdKdgZ9hBvWW0p2Bn2EFBZPSnYGfYQeljNKhgZ9hBgGN0qGBn2EF5ZLSoYGfYQUVl9KhgZ9hBm2M0qWBn2EHjZXSpYGfYQUFmtKlgZ9hBWWX0qWBn2EGlZzSqYGfYQcFjdKpgZ9hB5WW0qmBn2EHDZPSqYGfYQQdkNKtgZ9hB5WV0q2Bn2EE9ZbSrYGfYQZtl9KtgZ9hBp2Q0rGBn2EGDaHSsYGfYQRtptKxgZ9hBgGb0rGBn2EFlZzStYGfYQUdkdK1gZ9hBPWS0rWBn2EGHZfStYGfYQWtlNK5gZ9hBmWV0rmBn2EE9ZbSuYGfYQcVm9K5gZ9hBG2Y0r2Bn2EF/ZXSvYGfYQSdntK9gZ9hBh2P0r2Bn2EG9ZjSwYGfYQT1jdLBgZ9hBZWS0sGBn2EGHZfSwYGfYQatlNLFgZ9hBZWV0sWBn2EEnY7SxYGfYQWln9LFgZ9hBBWY0smBn2EEbZ3SyYGfYQdljtLJgZ9hBBWT0smBn2EHBZDSzYGfYQT1ldLNgZ9hBx2W0s2Bn2EF5ZfSzYGfYQUFlNLRgZ9hB5Wd0tGBn2EHZZLS0YGfYQZto9LRgZ9hBx2I0tWBn2EGrZXS1YGfYQftktLVgZ9hBOWT0tWBn2EFVZDS2YGfYQRVkdLZgZ9hBf2W0tmBn2EF/Y/S2YGfYQYBjNLdgZ9hBfWN0t2Bn2EGVZLS3YGfYQdlm9LdgZ9hBg2Y0uGBn2EHrZXS4YGfYQYdltLhgZ9hBmWP0uGBn2EGbZTS5YGfYQYdldLlgZ9hB22W0uWBn2EGHZvS5YGfYQSVjNLpgZ9hBA2Z0umBn2EF7ZLS6YGfYQUFl9LpgZ9hBf2g0u2Bn2EHBY3S7YGfYQdtltLtgZ9hBwWX0u2Bn2EEnZDS8YGfYQYFkdLxgZ9hBG2S0vGBn2EGAZvS8YGfYQYNjNL1gZ9hBe2R0vWBn2EGDZrS9YGfYQeNl9L1gZ9hBwWY0vmBn2EG5ZnS+YGfYQftmtL5gZ9hBuWb0vmBn2EFHZDS/YGfYQStndL9gZ9hBO2O0v2Bn2EEBZ/S/YGfYQQVmNMBgZ9hBpWh0wGBn2EG/ZrTAYGfYQcNl9MBgZ9hBq2Q0wWBn2EHDY3TBYGfYQetitMFgZ9hBJ2X0wWBn2EG5aDTCYGfYQcdldMJgZ9hBe2S0wmBn2EE/aPTCYGfYQZljNMNgZ9hBW2V0w2Bn2EF5ZrTDYGfYQalk9MNgZ9hBAWM0xGBn2EHDZXTEYGfYQYBmtMRgZ9hBgWb0xGBn2EGpZzTFYGfYQZlkdMVgZ9hBp2S0xWBn2EGbY/TFYGfYQcdnNMZgZ9hB/WN0xmBn2EEbY7TGYGfYQWVk9MZgZ9hBWWU0x2Bn2EGbZnTHYGfYQelltMdgZ9hBF2f0x2Bn2EG/YzTIYGfYQcNndMhgZ9hBWWS0yGBn2EGBZPTIYGfYQUFkNMlgZ9hBg2Z0yWBn2EHVZLTJYGfYQYBk9MlgZ9hBgWQ0ymBn2EF/ZHTKYGfYQUVntMpgZ9hBWWT0ymBn2EGXZDTLYGfYQVtkdMtgZ9hBZWO0y2Bn2EFZZfTLYGfYQdllNMxgZ9hBK2N0zGBn2EFrZLTMYGfYQT1l9MxgZ9hBeWU0zWBn2EEVZnTNYGfYQX9ltM1gZ9hBW2T0zWBn2EHjZDTOYGfYQYNkdM5gZ9hBa2S0zmBn2EE/ZvTOYGfYQSdkNM9gZ9hBVWR0z2Bn2EGDZLTPYGfYQQFm9M9gZ9hBe2Y00GBn2EHnaXTQYGfYQStjtNBgZ9hB5WT00GBn2EFFYzTRYGfYQXtkdNFgZ9hBJWO00WBn2EE9ZfTRYGfYQatjNNJgZ9hBq2R00mBn2EHbZbTSYGfYQWVl9NJgZ9hBB2M002Bn2EG5ZnTTYGfYQbljtNNgZ9hBf2f002Bn2EGZZDTUYGfYQWVkdNRgZ9hBPWS01GBn2EF9Y/TUYGfYQVdkNNVgZ9hBJWV01WBn2EF/ZbTVYGfYQYdm9NVgZ9hBAWg01mBn2EGZZXTWYGfYQcNjtNZgZ9hBpWf01mBn2EFZaDTXYGfYQaVmdNdgZ9hB22S012Bn2EElZPTXYGfYQQVlNNhgZ9hB1WN02GBn2EGbZbTYYGfYQVtn9NhgZ9hBRWQ02WBn2EHXZ3TZYGfYQXlmtNlgZ9hBQWb02WBn2EF7ZTTaYGfYQStndNpgZ9hB5WK02mBn2EG7ZfTaYGfYQbtjNNtgZ9hB22R022Bn2EFZaLTbYGfYQUVl9NtgZ9hBx2M03GBn2EFHaHTcYGfYQalktNxgZ9hBh2j03GBn2EGrZDTdYGfYQUBodN1gZ9hBa2S03WBn2EElZPTdYGfYQYdoNN5gZ9hBpWV03mBn2EFpZbTeYGfYQdtl9N5gZ9hB6WQ032Bn2EGHZXTfYGfYQf1itN9gZ9hBxWX032Bn2EG5ZzTgYGfYQeNndOBgZ9hB/2i04GBn2EHrZPTgYGfYQYNlNOFgZ9hBw2Z04WBn2EGraLThYGfYQf9j9OFgZ9hBHWM04mBn2EFBZHTiYGfYQYNmtOJgZ9hBh2X04mBn2EHraDTjYGfYQVlkdONgZ9hB/2a042Bn2EFXZPTjYGfYQednNORgZ9hBeWZ05GBn2EE5ZbTkYGfYQYFk9ORgZ9hBaWM05WBn2EGDaHTlYGfYQXtltOVgZ9hBf2j05WBn2EFnZjTmYGfYQb9jdOZgZ9hBZWW05mBn2EHjZvTmYGfYQXlmNOdgZ9hBm2d052Bn2EF5ZLTnYGfYQaVk9OdgZ9hBw2M06GBn2EGHZnToYGfYQYdltOhgZ9hB52b06GBn2EH9ZzTpYGfYQWVjdOlgZ9hBVWO06WBn2EG5ZfTpYGfYQWllNOpgZ9hBuWV06mBn2EEbaLTqYGfYQX9n9OpgZ9hBG2U062Bn2EF/aHTrYGfYQcFktOtgZ9hBZWj062Bn2EH/YjTsYGfYQftjdOxgZ9hBaWW07GBn2EFZZ/TsYGfYQQFmNO1gZ9hBv2R07WBn2EE5Y7TtYGfYQcFj9O1gZ9hBG2U07mBn2EEnY3TuYGfYQftitO5gZ9hBu2T07mBn2EG/ZDTvYGfYQSVndO9gZ9hBw2W072Bn2EH/ZPTvYGfYQflkNPBgZ9hBh2Z08GBn2EFBZ7TwYGfYQQNl9PBgZ9hBJ2M08WBn2EGpZHTxYGfYQWVjtPFgZ9hB22P08WBn2EH9ZDTyYGfYQZtkdPJgZ9hBmWS08mBn2EEbZPTyYGfYQUdkNPNgZ9hBpWN082Bn2EHVYrTzYGfYQSdk9PNgZ9hBgGM09GBn2EHZZHT0YGfYQf1jtPRgZ9hBgGX09GBn2EG7ZjT1YGfYQalldPVgZ9hBZ2e09WBn2EHlZPT1YGfYQSVkNPZgZ9hB2WV09mBn2EFBZbT2YGfYQXtm9PZgZ9hB6WM092Bn2EGAZnT3YGfYQf9ktPdgZ9hBa2X092Bn2EHBZDT4YGfYQUdodPhgZ9hBG2a0+GBn2EE5ZPT4YGfYQeVlNPlgZ9hBq2N0+WBn2EGHZbT5YGfYQYFo9PlgZ9hBG2c0+mBn2EGDZ3T6YGfYQX9ntPpgZ9hB52f0+mBn2EE5YzT7YGfYQftmdPtgZ9hBZ2a0+2Bn2EH/ZfT7YGfYQaVnNPxgZ9hBu2Z0/GBn2EHBZLT8YGfYQatl9PxgZ9hBl2U0/WBn2EFlZ3T9YGfYQUFltP1gZ9hBV2T0/WBn2EErZDT+YGfYQf1mdP5gZ9hB+WO0/mBn2EF/afT+YGfYQYBmNP9gZ9hBWWd0/2Bn2EGlZrT/YGfYQStj9P9gZ9hB/2I0AGFn2EFnY3QAYWfYQftntABhZ9hBR2f0AGFn2EFVaDQBYWfYQb1ldAFhZ9hBw2O0AWFn2EH5ZfQBYWfYQVtjNAJhZ9hBFWR0AmFn2EFZY7QCYWfYQQFo9AJhZ9hBeWc0A2Fn2EE5ZXQDYWfYQZlmtANhZ9hB1WT0A2Fn2EEBZjQEYWfYQWtmdARhZ9hBgGS0BGFn2EFrY/QEYWfYQQdmNAVhZ9hBa2d0BWFn2EFBY7QFYWfYQVlk9AVhZ9hB42Q0BmFn2EFrZXQGYWfYQWdmtAZhZ9hBP2f0BmFn2EE/ZzQHYWfYQVdjdAdhZ9hBQWO0B2Fn2EF5ZPQHYWfYQXtkNAhhZ9hBVWV0CGFn2EGrZbQIYWfYQRtn9AhhZ9hBwWU0CWFn2EEVZ3QJYWfYQeNjtAlhZ9hB/2P0CWFn2EGAYzQKYWfYQadjdAphZ9hBWWO0CmFn2EGXZfQKYWfYQSdlNAthZ9hBf2R0C2Fn2EGBZLQLYWfYQalk9AthZ9hBgWU0DGFn2EFpZHQMYWfYQStltAxhZ9hBOWb0DGFn2EFbZTQNYWfYQYBmdA1hZ9hBxWa0DWFn2EFlZfQNYWfYQSdpNA5hZ9hBQWV0DmFn2EHlZbQOYWfYQaVo9A5hZ9hBA2Q0D2Fn2EFrZXQPYWfYQSVmtA9hZ9hBa2f0D2Fn2EF/ZzQQYWfYQYFjdBBhZ9hBBWe0EGFn2EF/ZfQQYWfYQYFkNBFhZ9hBJWR0EWFn2EHbYrQRYWfYQdtk9BFhZ9hBPWM0EmFn2EFbZnQSYWfYQZVjtBJhZ9hBgGP0EmFn2EFVZTQTYWfYQRVndBNhZ9hB42a0E2Fn2EFnY/QTYWfYQftiNBRhZ9hBw2V0FGFn2EEVabQUYWfYQedo9BRhZ9hBQWU0FWFn2EEFZ3QVYWfYQcVktBVhZ9hB/Wf0FWFn2EFFZTQWYWfYQVdmdBZhZ9hBBWO0FmFn2EHjY/QWYWfYQRdmNBdhZ9hBZWd0F2Fn2EFraLQXYWfYQYBm9BdhZ9hBF2g0GGFn2EGAZnQYYWfYQUFjtBhhZ9hBQWP0GGFn2EHlZTQZYWfYQXtpdBlhZ9hBq2e0GWFn2EF5ZPQZYWfYQaVlNBphZ9hBJ2d0GmFn2EFZZbQaYWfYQWVl9BphZ9hBZWU0G2Fn2EHFZ3QbYWfYQaVltBthZ9hBpWf0G2Fn2EEXZjQcYWfYQSVmdBxhZ9hBeWa0HGFn2EFrZPQcYWfYQYBlNB1hZ9hBQWR0HWFn2EHbZbQdYWfYQUFk9B1hZ9hBBWM0HmFn2EE/ZXQeYWfYQalmtB5hZ9hBg2X0HmFn2EE=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1063]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1063]}},\"selected\":{\"id\":\"18080\"},\"selection_policy\":{\"id\":\"18079\"}},\"id\":\"16761\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"16737\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"Time in ms\",\"coordinates\":null,\"formatter\":{\"id\":\"18071\"},\"group\":null,\"major_label_policy\":{\"id\":\"18072\"},\"ticker\":{\"id\":\"16740\"}},\"id\":\"16739\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"16744\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"16740\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"Time in ms\",\"coordinates\":null,\"formatter\":{\"id\":\"18059\"},\"group\":null,\"major_label_policy\":{\"id\":\"18060\"},\"ticker\":{\"id\":\"16660\"}},\"id\":\"16659\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis\":{\"id\":\"16739\"},\"coordinates\":null,\"group\":null,\"ticker\":null,\"visible\":false},\"id\":\"16742\",\"type\":\"Grid\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"t2I0FWBn2EHcZXQVYGfYQWJltBVgZ9hBtmX0FWBn2EEkZDQWYGfYQTlkdBZgZ9hBF2a0FmBn2EFBZPQWYGfYQYxkNBdgZ9hBAmR0F2Bn2EFSZLQXYGfYQT1l9BdgZ9hBz2U0GGBn2EFWZXQYYGfYQapltBhgZ9hB2GX0GGBn2EE0ZjQZYGfYQdhkdBlgZ9hBnWS0GWBn2EFJZPQZYGfYQWNkNBpgZ9hBb2R0GmBn2EEKZbQaYGfYQf5i9BpgZ9hBJGQ0G2Bn2EHYZHQbYGfYQQ9jtBtgZ9hB5WP0G2Bn2EGNYzQcYGfYQQZjdBxgZ9hBzGK0HGBn2EHYY/QcYGfYQZ1lNB1gZ9hBhGR0HWBn2EFBZbQdYGfYQRNk9B1gZ9hBWmU0HmBn2EEoY3QeYGfYQVJltB5gZ9hBpWX0HmBn2EFeYzQfYGfYQb9ldB9gZ9hB3GW0H2Bn2EE0ZPQfYGfYQfFlNCBgZ9hBSWN0IGBn2EEfZLQgYGfYQeFi9CBgZ9hBUmM0IWBn2EFjZHQhYGfYQRdjtCFgZ9hBVmP0IWBn2EFFZTQiYGfYQQJldCJgZ9hB1GW0ImBn2EEXZfQiYGfYQXxlNCNgZ9hBWmV0I2Bn2EFnZbQjYGfYQShl9CNgZ9hBx2I0JGBn2EHTZnQkYGfYQdxltCRgZ9hB7WT0JGBn2EETZTQlYGfYQeBldCVgZ9hBy2W0JWBn2EGEZPQlYGfYQR9mNCZgZ9hBiGV0JmBn2EEXZLQmYGfYQapj9CZgZ9hB6WM0J2Bn2EFzY3QnYGfYQU5jtCdgZ9hB/mT0J2Bn2EHtYzQoYGfYQeVjdChgZ9hBPWS0KGBn2EGuZfQoYGfYQfpiNClgZ9hBQWR0KWBn2EFzZLQpYGfYQU1l9ClgZ9hBCmY0KmBn2EE0ZXQqYGfYQZlltCpgZ9hB6WL0KmBn2EFnZDQrYGfYQXxjdCtgZ9hB5WO0K2Bn2EFOY/QrYGfYQRNkNCxgZ9hBD2N0LGBn2EF7ZrQsYGfYQXxj9CxgZ9hBQWM0LWBn2EGEZXQtYGfYQXxktC1gZ9hBrmT0LWBn2EGRYjQuYGfYQQJkdC5gZ9hBqmS0LmBn2EECY/QuYGfYQaJjNC9gZ9hB4GR0L2Bn2EE0ZbQvYGfYQeli9C9gZ9hB4GM0MGBn2EEgY3QwYGfYQSxktDBgZ9hBVmP0MGBn2EGiYzQxYGfYQV5kdDFgZ9hB5GW0MWBn2EFeZPQxYGfYQTlkNDJgZ9hBJ2Z0MmBn2EFrZLQyYGfYQXdn9DJgZ9hBMGQ0M2Bn2EHkZXQzYGfYQSxktDNgZ9hB7WX0M2Bn2EEwZDQ0YGfYQSxkdDRgZ9hBx2W0NGBn2EEKZvQ0YGfYQR9kNDVgZ9hBlWV0NWBn2EHxYrQ1YGfYQSxk9DVgZ9hBI2U0NmBn2EEKZnQ2YGfYQV5ltDZgZ9hBc2X0NmBn2EGEZDQ3YGfYQTRmdDdgZ9hBNGa0N2Bn2EFOZPQ3YGfYQSRjNDhgZ9hBI2V0OGBn2EEGZrQ4YGfYQQpm9DhgZ9hB+WU0OWBn2EH1ZXQ5YGfYQQZmtDlgZ9hBE2X0OWBn2EEOZjQ6YGfYQdRldDpgZ9hBLGS0OmBn2EGAZvQ6YGfYQWdjNDtgZ9hBAmV0O2Bn2EEbZrQ7YGfYQU5k9DtgZ9hBTWU0PGBn2EGVZXQ8YGfYQfVltDxgZ9hBWmT0PGBn2EHxYjQ9YGfYQcNjdD1gZ9hBsmO0PWBn2EHcZPQ9YGfYQfVkND5gZ9hB8WV0PmBn2EFBZrQ+YGfYQYBl9D5gZ9hBC2M0P2Bn2EEwY3Q/YGfYQQJktD9gZ9hB6WL0P2Bn2EGuZTRAYGfYQRNjdEBgZ9hBY2S0QGBn2EEgY/RAYGfYQbZlNEFgZ9hBOWN0QWBn2EFNZbRBYGfYQUFk9EFgZ9hBt2I0QmBn2EFeY3RCYGfYQRtktEJgZ9hBgGP0QmBn2EEgYzRDYGfYQU1ldENgZ9hBiGS0Q2Bn2EHcZfRDYGfYQYhmNERgZ9hBOGZ0RGBn2EGqY7REYGfYQQpm9ERgZ9hB3GU0RWBn2EE4ZXRFYGfYQQJktEVgZ9hBRWP0RWBn2EG7YjRGYGfYQShkdEZgZ9hBRWS0RmBn2EGAZfRGYGfYQfFiNEdgZ9hBUmR0R2Bn2EEkZLRHYGfYQSxj9EdgZ9hBJGM0SGBn2EEoY3RIYGfYQZVltEhgZ9hBZ2T0SGBn2EEsYzRJYGfYQVpkdElgZ9hB3GK0SWBn2EFJZPRJYGfYQVJlNEpgZ9hBWmV0SmBn2EE5ZLRKYGfYQUlj9EpgZ9hBQWM0S2Bn2EEkZHRLYGfYQShjtEtgZ9hBumX0S2Bn2EHlZDRMYGfYQaFldExgZ9hBH2a0TGBn2EHcZfRMYGfYQU1mNE1gZ9hB5GV0TWBn2EFFZrRNYGfYQRdm9E1gZ9hBTWY0TmBn2EEsZnROYGfYQWNktE5gZ9hB+WX0TmBn2EFFZjRPYGfYQU1mdE9gZ9hBUWa0T2Bn2EEbZvRPYGfYQbZkNFBgZ9hBDmZ0UGBn2EE4ZrRQYGfYQW9m9FBgZ9hB9WQ0UWBn2EGhZXRRYGfYQXdmtFFgZ9hBPGb0UWBn2EEbZjRSYGfYQUlldFJgZ9hBF2S0UmBn2EH1ZPRSYGfYQe1lNFNgZ9hBkGV0U2Bn2EELY7RTYGfYQTlk9FNgZ9hBJGM0VGBn2EE1Y3RUYGfYQRtjtFRgZ9hBSWb0VGBn2EFzZDRVYGfYQR9mdFVgZ9hBVmS0VWBn2EFvZfRVYGfYQe1iNFZgZ9hBVmR0VmBn2EEwY7RWYGfYQSxk9FZgZ9hB5WM0V2Bn2EFOZHRXYGfYQVZktFdgZ9hB8WX0V2Bn2EEsZTRYYGfYQQ5mdFhgZ9hBSWW0WGBn2EEfZvRYYGfYQTBmNFlgZ9hBTmR0WWBn2EHYZbRZYGfYQUFj9FlgZ9hBjWM0WmBn2EFNZXRaYGfYQRdmtFpgZ9hB3GX0WmBn2EH+YjRbYGfYQRtldFtgZ9hB2GK0W2Bn2EEPZPRbYGfYQUVkNFxgZ9hBMGZ0XGBn2EEwZbRcYGfYQQ9k9FxgZ9hBnWY0XWBn2EEGZnRdYGfYQbJktF1gZ9hBCmb0XWBn2EHtZTReYGfYQfFjdF5gZ9hBRWO0XmBn2EHcZfReYGfYQf5iNF9gZ9hBjGR0X2Bn2EFJZLRfYGfYQUlj9F9gZ9hB9WM0YGBn2EHlYnRgYGfYQYRktGBgZ9hBRWX0YGBn2EEoZTRhYGfYQR9kdGFgZ9hBE2O0YWBn2EE9ZfRhYGfYQSxkNGJgZ9hBrmV0YmBn2EGAZLRiYGfYQfVk9GJgZ9hBWmU0Y2Bn2EEKZXRjYGfYQU5ktGNgZ9hBOGX0Y2Bn2EEOZjRkYGfYQdhjdGRgZ9hBMGW0ZGBn2EHLZfRkYGfYQYhkNGVgZ9hBNGZ0ZWBn2EEOZbRlYGfYQZ1k9GVgZ9hBE2M0ZmBn2EFWY3RmYGfYQVZjtGZgZ9hBAmP0ZmBn2EEoZTRnYGfYQeBkdGdgZ9hBC2O0Z2Bn2EHQZPRnYGfYQf5kNGhgZ9hBjGR0aGBn2EFnY7RoYGfYQUlm9GhgZ9hBUmM0aWBn2EEGZXRpYGfYQTBktGlgZ9hBUmT0aWBn2EHgZTRqYGfYQZlkdGpgZ9hBI2W0amBn2EFSY/RqYGfYQWtkNGtgZ9hBE2R0a2Bn2EEbZLRrYGfYQTRk9GtgZ9hBc2M0bGBn2EE5Y3RsYGfYQWNktGxgZ9hBIGP0bGBn2EFeZDRtYGfYQQJjdG1gZ9hBWmW0bWBn2EGEZPRtYGfYQXNlNG5gZ9hBRWR0bmBn2EFJY7RuYGfYQRdk9G5gZ9hBSWM0b2Bn2EHLZHRvYGfYQdhjtG9gZ9hBgGT0b2Bn2EHDZjRwYGfYQZlkdHBgZ9hB8WO0cGBn2EGMZPRwYGfYQQZmNHFgZ9hBOGV0cWBn2EG/ZLRxYGfYQf5l9HFgZ9hB9WQ0cmBn2EFWZXRyYGfYQWdktHJgZ9hBQWP0cmBn2EGuZTRzYGfYQRNldHNgZ9hBoWW0c2Bn2EEwZPRzYGfYQdxiNHRgZ9hB8WJ0dGBn2EGVZrR0YGfYQQJm9HRgZ9hBLGY0dWBn2EEKZXR1YGfYQWNktHVgZ9hBCmX0dWBn2EFzZTR2YGfYQVpkdHZgZ9hBRWW0dmBn2EFBZvR2YGfYQRdmNHdgZ9hBKGN0d2Bn2EHxZLR3YGfYQc9l9HdgZ9hBa2Q0eGBn2EE9ZHR4YGfYQXNltHhgZ9hBRWT0eGBn2EG7ZDR5YGfYQVpldHlgZ9hBJGS0eWBn2EECY/R5YGfYQVJkNHpgZ9hBXmR0emBn2EFeZbR6YGfYQU5j9HpgZ9hBF2M0e2Bn2EGZY3R7YGfYQQZltHtgZ9hBXmP0e2Bn2EE9YzR8YGfYQZ1kdHxgZ9hBmWO0fGBn2EGiY/R8YGfYQaJjNH1gZ9hBJGN0fWBn2EGIY7R9YGfYQUFj9H1gZ9hB4WI0fmBn2EEgY3R+YGfYQRNjtH5gZ9hB2GP0fmBn2EE9YzR/YGfYQaZjdH9gZ9hBD2S0f2Bn2EGNY/R/YGfYQZFjNIBgZ9hBjGR0gGBn2EEsY7SAYGfYQdhk9IBgZ9hBtmQ0gWBn2EHDZHSBYGfYQb9ktIFgZ9hBXmT0gWBn2EHUZDSCYGfYQTBmdIJgZ9hBc2O0gmBn2EFeY/SCYGfYQU5kNINgZ9hBUmR0g2Bn2EFrZbSDYGfYQTRl9INgZ9hBSWQ0hGBn2EFnZXSEYGfYQVJktIRgZ9hBPWT0hGBn2EFFYzSFYGfYQVZjdIVgZ9hBMGO0hWBn2EECZPSFYGfYQZlkNIZgZ9hB+WR0hmBn2EGAY7SGYGfYQThl9IZgZ9hBjGQ0h2Bn2EF3ZHSHYGfYQXdktIdgZ9hBu2P0h2Bn2EEbYzSIYGfYQYBkdIhgZ9hBTmS0iGBn2EFvZPSIYGfYQQZjNIlgZ9hBUmV0iWBn2EE5Y7SJYGfYQSxj9IlgZ9hBLGM0imBn2EE9Y3SKYGfYQRtjtIpgZ9hBPWT0imBn2EEsYzSLYGfYQfpjdItgZ9hBc2S0i2Bn2EFOZPSLYGfYQdRjNIxgZ9hB2GR0jGBn2EEKZLSMYGfYQYxk9IxgZ9hB3GI0jWBn2EH2YnSNYGfYQXdktI1gZ9hBRWP0jWBn2EEoZDSOYGfYQSxkdI5gZ9hBTmO0jmBn2EEwZPSOYGfYQeljNI9gZ9hB5WR0j2Bn2EH6YrSPYGfYQZll9I9gZ9hBjGU0kGBn2EEsY3SQYGfYQVJktJBgZ9hBD2T0kGBn2EE5YzSRYGfYQVJjdJFgZ9hBu2O0kWBn2EFnZfSRYGfYQTBjNJJgZ9hBMGV0kmBn2EGMZbSSYGfYQbtk9JJgZ9hBmWM0k2Bn2EEkY3STYGfYQWNktJNgZ9hBmWT0k2Bn2EGVZDSUYGfYQYRkdJRgZ9hB5WK0lGBn2EF8ZPSUYGfYQYhjNJVgZ9hBiGN0lWBn2EF8ZLSVYGfYQVpj9JVgZ9hBc2U0lmBn2EEsY3SWYGfYQTBltJZgZ9hBa2X0lmBn2EH+YzSXYGfYQXxldJdgZ9hBE2O0l2Bn2EE9ZPSXYGfYQUFjNJhgZ9hBLGR0mGBn2EE9ZLSYYGfYQRdj9JhgZ9hBOWM0mWBn2EFJY3SZYGfYQelitJlgZ9hBkWP0mWBn2EHpYjSaYGfYQSBjdJpgZ9hBLGO0mmBn2EGhZfSaYGfYQXNlNJtgZ9hBVmR0m2Bn2EGMZbSbYGfYQfFi9JtgZ9hBd2Q0nGBn2EHgY3ScYGfYQcNktJxgZ9hBhGT0nGBn2EETYzSdYGfYQbZldJ1gZ9hBXmS0nWBn2EEsY/SdYGfYQYhjNJ5gZ9hBE2N0nmBn2EFFZLSeYGfYQVZj9J5gZ9hBVmQ0n2Bn2EGVY3SfYGfYQV5ktJ9gZ9hBTmP0n2Bn2EEfZzSgYGfYQU5kdKBgZ9hBhGO0oGBn2EHDZPSgYGfYQRNkNKFgZ9hBRWR0oWBn2EHDZLShYGfYQVZj9KFgZ9hBu2M0omBn2EGhZHSiYGfYQapktKJgZ9hBsmP0omBn2EFBYzSjYGfYQYxkdKNgZ9hBJGO0o2Bn2EGVZPSjYGfYQYxkNKRgZ9hBD2N0pGBn2EECZbSkYGfYQTBk9KRgZ9hB0GM0pWBn2EFJY3SlYGfYQapjtKVgZ9hB1GP0pWBn2EFSYzSmYGfYQZFkdKZgZ9hBWmO0pmBn2EFeY/SmYGfYQTljNKdgZ9hBgGN0p2Bn2EGEZLSnYGfYQVZj9KdgZ9hBZ2M0qGBn2EEPY3SoYGfYQWdktKhgZ9hBZ2X0qGBn2EFWYzSpYGfYQbJkdKlgZ9hB6WS0qWBn2EGEZPSpYGfYQVZkNKpgZ9hBzGN0qmBn2EGqZLSqYGfYQbtk9KpgZ9hBE2Q0q2Bn2EEKZHSrYGfYQZVjtKtgZ9hBnWX0q2Bn2EGZZDSsYGfYQYxldKxgZ9hBb2W0rGBn2EEwZPSsYGfYQa5kNK1gZ9hBPWR0rWBn2EFBZLStYGfYQYxl9K1gZ9hBYmU0rmBn2EGQZXSuYGfYQXxjtK5gZ9hBfGX0rmBn2EFJZDSvYGfYQW9ldK9gZ9hBUmW0r2Bn2EE1Y/SvYGfYQR9kNLBgZ9hBKGN0sGBn2EFWZLSwYGfYQYxl9LBgZ9hBXmU0sWBn2EFaZXSxYGfYQQtjtLFgZ9hBKGT0sWBn2EFSZDSyYGfYQfFjdLJgZ9hB3GO0smBn2EECY/SyYGfYQcNkNLNgZ9hBOWN0s2Bn2EHHZbSzYGfYQT1l9LNgZ9hBSWU0tGBn2EEsZHS0YGfYQfFitLRgZ9hBpmT0tGBn2EHUYjS1YGfYQTVjdLVgZ9hB3GO0tWBn2EFOZPS1YGfYQf5iNLZgZ9hBZ2N0tmBn2EGAZbS2YGfYQRNj9LZgZ9hBfGM0t2Bn2EECY3S3YGfYQWNktLdgZ9hBOGX0t2Bn2EF8ZTS4YGfYQT1kdLhgZ9hBVmS0uGBn2EFeY/S4YGfYQVJlNLlgZ9hBUmV0uWBn2EETY7S5YGfYQZlm9LlgZ9hBAmM0umBn2EF3ZHS6YGfYQXNktLpgZ9hBPWX0umBn2EFrZTS7YGfYQTVjdLtgZ9hBlWW0u2Bn2EEPZPS7YGfYQShkNLxgZ9hBiGR0vGBn2EECY7S8YGfYQell9LxgZ9hBQWM0vWBn2EEoY3S9YGfYQTBjtL1gZ9hBPWT0vWBn2EFvZDS+YGfYQTBkdL5gZ9hBXmS0vmBn2EFOZPS+YGfYQVJkNL9gZ9hBjGV0v2Bn2EEXY7S/YGfYQWJl9L9gZ9hBXmQ0wGBn2EFBZXTAYGfYQaVltMBgZ9hBkGX0wGBn2EE5ZDTBYGfYQSBjdMFgZ9hB9mK0wWBn2EEsZPTBYGfYQVJlNMJgZ9hBQWR0wmBn2EETY7TCYGfYQTRk9MJgZ9hBiGM0w2Bn2EFiZXTDYGfYQUlktMNgZ9hBPWP0w2Bn2EH6YjTEYGfYQUFkdMRgZ9hBE2a0xGBn2EE9ZfTEYGfYQUlkNMVgZ9hBjGR0xWBn2EGyZLTFYGfYQVZj9MVgZ9hBiGQ0xmBn2EE1Y3TGYGfYQQ9jtMZgZ9hBVmT0xmBn2EFJZDTHYGfYQYhjdMdgZ9hBY2S0x2Bn2EGVZPTHYGfYQe1iNMhgZ9hBiGN0yGBn2EGNY7TIYGfYQYhj9MhgZ9hBBmM0yWBn2EFFY3TJYGfYQZ1jtMlgZ9hBZ2P0yWBn2EF8ZDTKYGfYQXNkdMpgZ9hBd2S0ymBn2EFeZPTKYGfYQVJjNMtgZ9hBVmR0y2Bn2EHhYrTLYGfYQTBj9MtgZ9hBgGQ0zGBn2EEgY3TMYGfYQZFktMxgZ9hBXmP0zGBn2EE5YzTNYGfYQU5jdM1gZ9hBd2S0zWBn2EFWZPTNYGfYQRtjNM5gZ9hBfGR0zmBn2EFaZLTOYGfYQZFk9M5gZ9hBc2M0z2Bn2EE5Y3TPYGfYQYBktM9gZ9hBmWT0z2Bn2EFnYzTQYGfYQWtjdNBgZ9hBG2O00GBn2EGqY/TQYGfYQRtjNNFgZ9hBd2R00WBn2EEPY7TRYGfYQQtj9NFgZ9hBE2M00mBn2EE1Y3TSYGfYQUljtNJgZ9hBa2P00mBn2EETYzTTYGfYQT1jdNNgZ9hBZ2O002Bn2EGMZPTTYGfYQWtkNNRgZ9hBRWN01GBn2EE9ZLTUYGfYQWtj9NRgZ9hBeGM01WBn2EFzY3TVYGfYQWtltNVgZ9hBgGT01WBn2EECZTTWYGfYQYRkdNZgZ9hB7WK01mBn2EGNY/TWYGfYQbJlNNdgZ9hB9WN012Bn2EH5ZLTXYGfYQWNj9NdgZ9hBXmM02GBn2EGAY3TYYGfYQaFktNhgZ9hBQWT02GBn2EE9ZDTZYGfYQeljdNlgZ9hB2GO02WBn2EEgY/TZYGfYQWtlNNpgZ9hBLGR02mBn2EHpYrTaYGfYQapj9NpgZ9hBt2M022Bn2EGAY3TbYGfYQWNktNtgZ9hBPWP022Bn2EFjYzTcYGfYQU5kdNxgZ9hBgGO03GBn2EFnZPTcYGfYQV5jNN1gZ9hBWmV03WBn2EFeZLTdYGfYQWtj9N1gZ9hBTWU03mBn2EGEZHTeYGfYQWJltN5gZ9hB2GX03mBn2EFSYzTfYGfYQZ1ldN9gZ9hB/mK032Bn2EGAZfTfYGfYQRtkNOBgZ9hBrmR04GBn2EGAZbTgYGfYQVpj9OBgZ9hBfGU04WBn2EGEZXThYGfYQYRltOFgZ9hBOWP04WBn2EEPYzTiYGfYQTlkdOJgZ9hBVmO04mBn2EGEZfTiYGfYQW9lNONgZ9hBLGN042Bn2EE5ZLTjYGfYQUVj9ONgZ9hBTWU05GBn2EGNY3TkYGfYQb9ktORgZ9hBgGT05GBn2EGIYzTlYGfYQaZkdOVgZ9hBE2O05WBn2EGIZPTlYGfYQUFkNOZgZ9hBKGN05mBn2EFWZbTmYGfYQUlj9OZgZ9hBRWM052Bn2EFFZHTnYGfYQT1ktOdgZ9hBpmP052Bn2EFOYzToYGfYQZBldOhgZ9hBhGS06GBn2EGAY/ToYGfYQRdkNOlgZ9hBVmN06WBn2EFWY7TpYGfYQXdk9OlgZ9hBMGU06mBn2EGMZHTqYGfYQeBjtOpgZ9hBgGP06mBn2EFaYzTrYGfYQYRkdOtgZ9hBfGO062Bn2EGAZPTrYGfYQQJjNOxgZ9hBOWN07GBn2EFnZbTsYGfYQXxk9OxgZ9hBgGQ07WBn2EGIZHTtYGfYQRNjtO1gZ9hBC2P07WBn2EGNYzTuYGfYQShjdO5gZ9hB/mK07mBn2EGIZPTuYGfYQaFkNO9gZ9hBZ2R072Bn2EFjY7TvYGfYQQ9k9O9gZ9hB7WQ08GBn2EFvY3TwYGfYQZVjtPBgZ9hB+WT08GBn2EEwYzTxYGfYQYBkdPFgZ9hBfGO08WBn2EGiY/TxYGfYQVJjNPJgZ9hBVmR08mBn2EFOZLTyYGfYQShk9PJgZ9hBOWQ082Bn2EEoY3TzYGfYQdhitPNgZ9hBD2T082Bn2EGAYzT0YGfYQYRkdPRgZ9hBZ2O09GBn2EFFZfT0YGfYQT1jNPVgZ9hBiGR09WBn2EF4Y7T1YGfYQQJl9PVgZ9hB/mI09mBn2EEKZHT2YGfYQa5jtPZgZ9hBu2P09mBn2EEKZDT3YGfYQW9jdPdgZ9hBt2O092Bn2EGiY/T3YGfYQbdjNPhgZ9hBqmN0+GBn2EFFY7T4YGfYQdxj9PhgZ9hBv2M0+WBn2EFjY3T5YGfYQQJktPlgZ9hBjWP0+WBn2EGRYzT6YGfYQbdjdPpgZ9hBu2O0+mBn2EHxY/T6YGfYQSxjNPtgZ9hBa2N0+2Bn2EHMY7T7YGfYQaFk9PtgZ9hB0GM0/GBn2EGdY3T8YGfYQW9jtPxgZ9hBRWP0/GBn2EGuZDT9YGfYQXNjdP1gZ9hBSWS0/WBn2EFOZPT9YGfYQUFjNP5gZ9hBiGV0/mBn2EETY7T+YGfYQYBl9P5gZ9hBa2U0/2Bn2EFrZHT/YGfYQXxktP9gZ9hBNWP0/2Bn2EH6YjQAYWfYQV5jdABhZ9hBgGS0AGFn2EGVZPQAYWfYQYhkNAFhZ9hBfGR0AWFn2EFzY7QBYWfYQYBl9AFhZ9hBUmM0AmFn2EEGY3QCYWfYQQZjtAJhZ9hBXmT0AmFn2EFzZDQDYWfYQUlkdANhZ9hBF2O0A2Fn2EEPY/QDYWfYQZlkNARhZ9hBY2N0BGFn2EFOZLQEYWfYQW9j9ARhZ9hBgGQ0BWFn2EFFZXQFYWfYQWNjtAVhZ9hBXmT0BWFn2EFvZDQGYWfYQU5kdAZhZ9hBUmW0BmFn2EEOZfQGYWfYQVpkNAdhZ9hBE2N0B2Fn2EH2YrQHYWfYQTlj9AdhZ9hBb2Q0CGFn2EE5ZHQIYWfYQXxktAhhZ9hBJGT0CGFn2EE5ZDQJYWfYQUFkdAlhZ9hBVmO0CWFn2EFSY/QJYWfYQRtjNAphZ9hBJGN0CmFn2EEbY7QKYWfYQa5j9AphZ9hBnWM0C2Fn2EF4Y3QLYWfYQYRktAthZ9hBVmP0C2Fn2EFWZDQMYWfYQUljdAxhZ9hBMGW0DGFn2EE5ZPQMYWfYQUllNA1hZ9hBSWV0DWFn2EEXZbQNYWfYQV5l9A1hZ9hBRWU0DmFn2EEwZXQOYWfYQVpjtA5hZ9hBG2T0DmFn2EEfZDQPYWfYQVJkdA9hZ9hBOWO0D2Fn2EEXZPQPYWfYQT1kNBBhZ9hBLGN0EGFn2EGQZbQQYWfYQWdk9BBhZ9hBRWM0EWFn2EFFY3QRYWfYQeFitBFhZ9hBOWT0EWFn2EEwYzQSYWfYQZVjdBJhZ9hBKGO0EmFn2EE1Y/QSYWfYQXxkNBNhZ9hBb2R0E2Fn2EFJZLQTYWfYQQZj9BNhZ9hB+mI0FGFn2EFFY3QUYWfYQW9ltBRhZ9hBgGX0FGFn2EEwZTQVYWfYQbpldBVhZ9hBQWO0FWFn2EFrZfQVYWfYQfFjNBZhZ9hBa2V0FmFn2EHHYrQWYWfYQShj9BZhZ9hBDmY0F2Fn2EGRZHQXYWfYQW9ltBdhZ9hB/mT0F2Fn2EE0ZTQYYWfYQRNldBhhZ9hBKGO0GGFn2EFOY/QYYWfYQeVkNBlhZ9hBWmV0GWFn2EGlZbQZYWfYQV5k9BlhZ9hBVmQ0GmFn2EGMZHQaYWfYQVJltBphZ9hBXmX0GmFn2EFWZTQbYWfYQXNldBthZ9hBAmS0G2Fn2EE5ZPQbYWfYQRtkNBxhZ9hBQWN0HGFn2EE5ZLQcYWfYQVJj9BxhZ9hBc2U0HWFn2EFJZHQdYWfYQRNktB1hZ9hBPWT0HWFn2EHtYjQeYWfYQQZldB5hZ9hBLGS0HmFn2EGEZfQeYWfYQQ==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1064]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA7QAAAAAAAsFJAAAAAAABAUkAAAAAAALBRQAAAAAAAIFJAAAAAAADgVEAAAAAAAKBUQAAAAAAAcFBAAAAAAACwUkAAAAAAABBWQAAAAAAA0FJAAAAAAACAVEAAAAAAAABTQAAAAAAAwFJAAAAAAACQUkAAAAAAAKBSQAAAAAAAEFZAAAAAAACgUkAAAAAAAEBSQAAAAAAAAFFAAAAAAADgU0AAAAAAACBWQAAAAAAA0FBAAAAAAABwUUAAAAAAAOBRQAAAAAAA8FJAAAAAAABAU0AAAAAAALBRQAAAAAAAAFNAAAAAAAAQUUAAAAAAAHBSQAAAAAAAkFJAAAAAAACQVEAAAAAAAGBUQAAAAAAAUFBAAAAAAACgUkAAAAAAAOBVQAAAAAAAEFNAAAAAAAAgVEAAAAAAAMBSQAAAAAAA8FJAAAAAAABQVEAAAAAAACBTQAAAAAAAAFZAAAAAAAAQU0AAAAAAAMBSQAAAAAAAkFBAAAAAAACQU0AAAAAAAOBVQAAAAAAAkFFAAAAAAACAU0AAAAAAAHBRQAAAAAAAAFNAAAAAAACwU0AAAAAAAGBSQAAAAAAAIFVAAAAAAADwUEAAAAAAACBSQAAAAAAAIFFAAAAAAADQU0AAAAAAAMBVQAAAAAAAIFFAAAAAAADAUUAAAAAAANBSQAAAAAAAUFRAAAAAAACAVEAAAAAAADBSQAAAAAAA8FNAAAAAAACgUEAAAAAAABBSQAAAAAAAsFJAAAAAAADwUkAAAAAAADBUQAAAAAAAMFFAAAAAAABgUUAAAAAAADBTQAAAAAAAkFRAAAAAAABwVEAAAAAAAOBQQAAAAAAAgFJAAAAAAADwUEAAAAAAAPBSQAAAAAAA0FNAAAAAAABAU0AAAAAAANBTQAAAAAAAcFBAAAAAAABAUkAAAAAAANBTQAAAAAAAQFRAAAAAAACQVEAAAAAAAPBQQAAAAAAAMFJAAAAAAAAgVUAAAAAAAHBSQAAAAAAAkFNAAAAAAACAUkAAAAAAAOBSQAAAAAAAkFBAAAAAAAAQUkAAAAAAACBTQAAAAAAAEFNAAAAAAABAVUAAAAAAAGBRQAAAAAAAkFFAAAAAAABgVEAAAAAAACBUQAAAAAAAYFRAAAAAAACgUkAAAAAAAKBSQAAAAAAAMFFAAAAAAAAAUkAAAAAAAGBTQAAAAAAAMFNAAAAAAAAAVEAAAAAAAIBRQAAAAAAAQFFAAAAAAAAQVEAAAAAAADBUQAAAAAAAcFRAAAAAAABQUUAAAAAAAOBSQAAAAAAAIFFAAAAAAACgUkAAAAAAAGBUQAAAAAAAcFNAAAAAAAAgVEAAAAAAABBQQAAAAAAAAFJAAAAAAAAAVEAAAAAAAFBUQAAAAAAAQFRAAAAAAABAUUAAAAAAAGBSQAAAAAAAYFVAAAAAAACwUkAAAAAAAEBUQAAAAAAAwFJAAAAAAACQUkAAAAAAAEBQQAAAAAAAIFJAAAAAAAAQVUAAAAAAAEBTQAAAAAAAkFRAAAAAAADgUEAAAAAAADBSQAAAAAAAUFVAAAAAAAAwU0AAAAAAAMBTQAAAAAAAoFJAAAAAAABAUkAAAAAAAPBRQAAAAAAAsFJAAAAAAABAVEAAAAAAAJBTQAAAAAAAwFJAAAAAAAAgUUAAAAAAAOBSQAAAAAAAAFVAAAAAAACQU0AAAAAAAABUQAAAAAAAYFBAAAAAAABgUkAAAAAAALBTQAAAAAAA8FJAAAAAAADAVEAAAAAAAMBSQAAAAAAAEFNAAAAAAAAQUUAAAAAAAOBSQAAAAAAA4FVAAAAAAACAUkAAAAAAAPBTQAAAAAAA0FBAAAAAAABgUkAAAAAAAPBUQAAAAAAAwFFAAAAAAAAQVUAAAAAAAHBSQAAAAAAAUFJAAAAAAAAwUUAAAAAAAGBTQAAAAAAAQFZAAAAAAACwUUAAAAAAAPBRQAAAAAAAYFBAAAAAAAAQU0AAAAAAAJBUQAAAAAAAwFFAAAAAAAAAUkAAAAAAADBSQAAAAAAAIFJAAAAAAAAQU0AAAAAAAOBSQAAAAAAAEFZAAAAAAAAgUkAAAAAAAOBRQAAAAAAAIFJAAAAAAACwU0AAAAAAAABVQAAAAAAA0FFAAAAAAABAUkAAAAAAAGBRQAAAAAAAsFNAAAAAAAAQU0AAAAAAADBTQAAAAAAAYFVAAAAAAADAUEAAAAAAAOBRQAAAAAAAQFJAAAAAAACwU0AAAAAAAFBVQAAAAAAAAFFAAAAAAADAUUAAAAAAABBRQAAAAAAAsFNAAAAAAACQVEAAAAAAAJBRQAAAAAAAUFVAAAAAAADgUEAAAAAAACBSQAAAAAAAYFNAAAAAAACwU0AAAAAAANBUQAAAAAAAIFFAAAAAAADgUUAAAAAAABBUQAAAAAAAwFNAAAAAAABQVEAAAAAAAJBRQAAAAAAAsFFAAAAAAACAVEAAAAAAACBSQAAAAAAAgFNAAAAAAABAU0AAAAAAADBTQAAAAAAAAFFAAAAAAADQUUAAAAAAABBVQAAAAAAA4FNAAAAAAAAwU0AAAAAAAMBQQAAAAAAAUFJAAAAAAADgVEAAAAAAAPBSQAAAAAAAQFRAAAAAAABwU0AAAAAAAIBSQAAAAAAAwFFAAAAAAADAUUAAAAAAAIBVQAAAAAAAUFNAAAAAAADAUkAAAAAAAKBQQAAAAAAA8FJAAAAAAABAVUAAAAAAAJBSQAAAAAAAwFNAAAAAAABgUkAAAAAAAJBSQAAAAAAAgFJAAAAAAAAAU0AAAAAAAFBWQAAAAAAAwFJAAAAAAABgUkAAAAAAAOBQQAAAAAAAMFNAAAAAAABwVUAAAAAAACBRQAAAAAAAYFNAAAAAAAAQUUAAAAAAAMBTQAAAAAAAcFNAAAAAAAAwU0AAAAAAAKBVQAAAAAAA4FBAAAAAAAAgUkAAAAAAAEBRQAAAAAAAcFNAAAAAAABQVUAAAAAAACBRQAAAAAAAcFFAAAAAAADAUkAAAAAAACBUQAAAAAAAYFRAAAAAAACQUUAAAAAAAHBSQAAAAAAAIFFAAAAAAAAwUkAAAAAAAKBSQAAAAAAAIFNAAAAAAADQU0AAAAAAAOBQQAAAAAAAYFFAAAAAAADgUkAAAAAAAIBUQAAAAAAAwFRAAAAAAACgUEAAAAAAAKBRQAAAAAAAAFNAAAAAAACwU0AAAAAAAPBSQAAAAAAAQFNAAAAAAADQU0AAAAAAAIBQQAAAAAAAAFJAAAAAAADgU0AAAAAAAEBUQAAAAAAA4FNAAAAAAAAwUEAAAAAAAABSQAAAAAAAIFZAAAAAAACAU0AAAAAAAEBTQAAAAAAAoFJAAAAAAAAAU0AAAAAAAJBRQAAAAAAAwFJAAAAAAAAAVUAAAAAAABBUQAAAAAAAQFNAAAAAAACAUEAAAAAAAJBSQAAAAAAAMFZAAAAAAADAUkAAAAAAAGBTQAAAAAAAoFFAAAAAAACgUkAAAAAAANBTQAAAAAAAsFJAAAAAAAAwVkAAAAAAACBTQAAAAAAA8FJAAAAAAAAwUEAAAAAAAJBSQAAAAAAAUFZAAAAAAACQUkAAAAAAAABSQAAAAAAAsFBAAAAAAAAQU0AAAAAAAABVQAAAAAAAgFJAAAAAAACAVEAAAAAAAMBTQAAAAAAAUFJAAAAAAACAUkAAAAAAAPBSQAAAAAAAQFZAAAAAAAAwU0AAAAAAAJBSQAAAAAAAUFBAAAAAAADAUkAAAAAAACBWQAAAAAAAAFJAAAAAAADwUUAAAAAAAOBSQAAAAAAAcFJAAAAAAADwU0AAAAAAAOBSQAAAAAAAYFZAAAAAAACgUkAAAAAAADBTQAAAAAAAkFBAAAAAAABQUkAAAAAAALBWQAAAAAAA0FJAAAAAAABwUkAAAAAAAJBQQAAAAAAAQFNAAAAAAACwU0AAAAAAAJBSQAAAAAAAQFVAAAAAAABgU0AAAAAAAJBSQAAAAAAAkFJAAAAAAAAQUkAAAAAAAIBWQAAAAAAAUFJAAAAAAABgUkAAAAAAAHBQQAAAAAAA8FJAAAAAAADAVUAAAAAAANBSQAAAAAAAMFVAAAAAAABQUkAAAAAAALBSQAAAAAAAcFJAAAAAAADAUkAAAAAAAFBWQAAAAAAAEFNAAAAAAADAUkAAAAAAAGBQQAAAAAAAoFJAAAAAAAAAVkAAAAAAAMBRQAAAAAAAcFNAAAAAAAAAU0AAAAAAAFBSQAAAAAAA4FNAAAAAAADgUkAAAAAAAOBVQAAAAAAAoFJAAAAAAADgUkAAAAAAAFBQQAAAAAAAQFJAAAAAAAAgVkAAAAAAAFBSQAAAAAAAQFJAAAAAAADQUEAAAAAAALBSQAAAAAAAgFNAAAAAAADQUkAAAAAAAKBUQAAAAAAA0FNAAAAAAADgUkAAAAAAACBSQAAAAAAAAFJAAAAAAAAwVUAAAAAAABBUQAAAAAAAMFNAAAAAAAAwUEAAAAAAABBSQAAAAAAAoFVAAAAAAABwU0AAAAAAANBSQAAAAAAAQFJAAAAAAABQUkAAAAAAANBRQAAAAAAA4FFAAAAAAADwUkAAAAAAAPBTQAAAAAAA0FVAAAAAAABAUUAAAAAAAIBRQAAAAAAAIFJAAAAAAABQVEAAAAAAAIBVQAAAAAAAoFBAAAAAAAAgU0AAAAAAAIBRQAAAAAAAsFJAAAAAAAAgVEAAAAAAAMBSQAAAAAAAwFVAAAAAAABQU0AAAAAAAMBSQAAAAAAAUFBAAAAAAABwUkAAAAAAAOBVQAAAAAAAsFJAAAAAAACAU0AAAAAAAKBSQAAAAAAAMFJAAAAAAABgUkAAAAAAAABSQAAAAAAAMFNAAAAAAAAQVEAAAAAAANBVQAAAAAAA4FBAAAAAAABwUUAAAAAAAOBSQAAAAAAAUFRAAAAAAAAQVUAAAAAAAIBQQAAAAAAA8FJAAAAAAACAUUAAAAAAAJBSQAAAAAAA8FNAAAAAAABwUkAAAAAAAABWQAAAAAAA4FJAAAAAAAAAU0AAAAAAAEBQQAAAAAAAIFJAAAAAAACQVUAAAAAAAMBTQAAAAAAAUFNAAAAAAABAUEAAAAAAAEBSQAAAAAAA4FJAAAAAAACwUkAAAAAAAPBSQAAAAAAA8FFAAAAAAABQVUAAAAAAACBRQAAAAAAAAFJAAAAAAACQUEAAAAAAAJBSQAAAAAAAcFZAAAAAAACwUkAAAAAAAHBSQAAAAAAAgFBAAAAAAACQUkAAAAAAAPBUQAAAAAAA8FJAAAAAAACgU0AAAAAAACBSQAAAAAAAEFRAAAAAAADwUEAAAAAAAIBRQAAAAAAA0FFAAAAAAACgU0AAAAAAAABWQAAAAAAAoFFAAAAAAADAUUAAAAAAAMBQQAAAAAAAwFJAAAAAAABgVUAAAAAAAPBSQAAAAAAA8FNAAAAAAABgUkAAAAAAAOBTQAAAAAAAMFFAAAAAAACQUUAAAAAAAEBRQAAAAAAAAFNAAAAAAAAgVkAAAAAAAHBSQAAAAAAA8FFAAAAAAACQUEAAAAAAANBRQAAAAAAAQFFAAAAAAABwUkAAAAAAAOBSQAAAAAAAQFJAAAAAAACgVUAAAAAAAMBSQAAAAAAAoFJAAAAAAABAUEAAAAAAAKBRQAAAAAAAQFRAAAAAAADAU0AAAAAAACBVQAAAAAAAEFFAAAAAAAAwU0AAAAAAAHBSQAAAAAAAQFJAAAAAAACQU0AAAAAAAKBRQAAAAAAAYFJAAAAAAADwUkAAAAAAAEBWQAAAAAAAkFJAAAAAAACgUkAAAAAAAGBQQAAAAAAAYFFAAAAAAADQU0AAAAAAAKBSQAAAAAAAcFVAAAAAAACwUkAAAAAAAKBTQAAAAAAAIFJAAAAAAABwVEAAAAAAADBRQAAAAAAAsFJAAAAAAAAgUEAAAAAAAOBQQAAAAAAAkFJAAAAAAABQU0AAAAAAAHBWQAAAAAAAUFJAAAAAAAAwUkAAAAAAAPBQQAAAAAAAMFJAAAAAAAAgUUAAAAAAALBSQAAAAAAAYFJAAAAAAABQUkAAAAAAAABWQAAAAAAAUFNAAAAAAADgUkAAAAAAADBQQAAAAAAAsFFAAAAAAABAVUAAAAAAABBUQAAAAAAAkFNAAAAAAADgUEAAAAAAANBRQAAAAAAAIFFAAAAAAADAUkAAAAAAACBSQAAAAAAAkFJAAAAAAACgVkAAAAAAAOBRQAAAAAAA4FFAAAAAAACAUUAAAAAAAJBTQAAAAAAAMFZAAAAAAAAAUkAAAAAAAHBTQAAAAAAAEFJAAAAAAACwUkAAAAAAAKBSQAAAAAAAQFJAAAAAAADgVUAAAAAAACBTQAAAAAAA8FJAAAAAAACAUEAAAAAAAHBSQAAAAAAAMFZAAAAAAACQUkAAAAAAABBSQAAAAAAA4FFAAAAAAADQUkAAAAAAAHBUQAAAAAAAoFJAAAAAAADQVEAAAAAAAEBTQAAAAAAAwFJAAAAAAABwUEAAAAAAACBSQAAAAAAAAFZAAAAAAAAAU0AAAAAAAGBSQAAAAAAAEFFAAAAAAACQU0AAAAAAAGBWQAAAAAAAUFJAAAAAAACgU0AAAAAAADBSQAAAAAAA8FJAAAAAAACQUkAAAAAAAGBSQAAAAAAA8FVAAAAAAABAU0AAAAAAAGBSQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1064]}},\"selected\":{\"id\":\"18074\"},\"selection_policy\":{\"id\":\"18073\"}},\"id\":\"16681\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"axis\":{\"id\":\"16743\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null,\"visible\":false},\"id\":\"16746\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"CPUUtilization-nodeid:algo-1_total\",\"coordinates\":null,\"formatter\":{\"id\":\"18068\"},\"group\":null,\"major_label_policy\":{\"id\":\"18069\"},\"ticker\":{\"id\":\"16744\"}},\"id\":\"16743\",\"type\":\"LinearAxis\"},{\"attributes\":{\"fill_alpha\":{\"value\":0},\"line_width\":{\"value\":0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"16764\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"16657\",\"type\":\"LinearScale\"},{\"attributes\":{\"args\":{\"div\":{\"id\":\"16649\"},\"s1\":{\"id\":\"16761\"}},\"code\":\"\\n console.log('Running CustomJS callback now.');\\n var inds = s1.selected.indices;\\n console.log(inds);\\n var line = \\\" Selected index range: [\\\" + Math.min.apply(Math,inds) + \\\",\\\" + Math.max.apply(Math,inds) + \\\"]\\\\n\\\";\\n console.log(line)\\n var text = div.text.concat(line);\\n var lines = text.split(\\\"\\\\n\\\")\\n if (lines.length > 35)\\n lines.shift();\\n div.text = lines.join(\\\"\\\\n\\\");\"},\"id\":\"16762\",\"type\":\"CustomJS\"},{\"attributes\":{\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"16763\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"16761\"}},\"id\":\"16768\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"16761\"}},\"id\":\"16766\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"18049\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"16747\",\"type\":\"CrosshairTool\"},{\"attributes\":{\"dimensions\":\"width\",\"overlay\":{\"id\":\"16753\"}},\"id\":\"16748\",\"type\":\"BoxSelectTool\"},{\"attributes\":{},\"id\":\"16749\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"16751\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"16750\",\"type\":\"ResetTool\"},{\"attributes\":{\"dimensions\":\"width\"},\"id\":\"16752\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"tools\":[{\"id\":\"16747\"},{\"id\":\"16748\"},{\"id\":\"16749\"},{\"id\":\"16750\"},{\"id\":\"16751\"},{\"id\":\"16752\"},{\"id\":\"16769\"}]},\"id\":\"16754\",\"type\":\"Toolbar\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"16761\"},\"glyph\":{\"id\":\"16764\"},\"group\":null,\"hover_glyph\":null,\"view\":{\"id\":\"16768\"}},\"id\":\"16767\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"16761\"},\"glyph\":{\"id\":\"16763\"},\"group\":null,\"hover_glyph\":null,\"view\":{\"id\":\"16766\"}},\"id\":\"16765\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"16753\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"children\":[{\"id\":\"16650\"},{\"id\":\"16691\"},{\"id\":\"16731\"}]},\"id\":\"16771\",\"type\":\"Column\"},{\"attributes\":{},\"id\":\"18057\",\"type\":\"AllLabels\"},{\"attributes\":{\"args\":{\"div\":{\"id\":\"16649\"},\"s1\":{\"id\":\"16681\"}},\"code\":\"\\n console.log('Running CustomJS callback now.');\\n var inds = s1.selected.indices;\\n console.log(inds);\\n var line = \\\" Selected index range: [\\\" + Math.min.apply(Math,inds) + \\\",\\\" + Math.max.apply(Math,inds) + \\\"]\\\\n\\\";\\n console.log(line)\\n var text = div.text.concat(line);\\n var lines = text.split(\\\"\\\\n\\\")\\n if (lines.length > 35)\\n lines.shift();\\n div.text = lines.join(\\\"\\\\n\\\");\"},\"id\":\"16682\",\"type\":\"CustomJS\"},{\"attributes\":{},\"id\":\"18056\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"fill_alpha\":{\"value\":0},\"line_width\":{\"value\":0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"16684\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"16655\",\"type\":\"LinearScale\"},{\"attributes\":{\"height\":100,\"height_policy\":\"fixed\",\"width\":250},\"id\":\"16649\",\"type\":\"Div\"},{\"attributes\":{},\"id\":\"18059\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"16767\"}],\"tooltips\":[[\"index\",\"$index\"],[\"(x,y)\",\"($x, $y)\"]]},\"id\":\"16769\",\"type\":\"HoverTool\"},{\"attributes\":{\"end\":1637713019.818696,\"start\":1637712020.818669},\"id\":\"16651\",\"type\":\"Range1d\"},{\"attributes\":{},\"id\":\"16660\",\"type\":\"BasicTicker\"},{\"attributes\":{\"end\":102},\"id\":\"16653\",\"type\":\"Range1d\"}],\"root_ids\":[\"16772\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.1\"}};\n", " const render_items = [{\"docid\":\"84596c25-2813-4cf0-acdb-602822c894d2\",\"notebook_comms_target\":\"18082\",\"root_ids\":[\"16772\"],\"roots\":{\"16772\":\"e5ea5e78-afee-4242-8857-4d69baafd325\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "16772" } }, "output_type": "display_data" } ], "source": [ "# create system plots\n", "\n", "from smdebug.profiler.analysis.notebook_utils.training_job import TrainingJob\n", "from smdebug.profiler.analysis.notebook_utils.timeline_charts import TimelineCharts\n", "tj = TrainingJob(training_job_name, region)\n", "tj.wait_for_sys_profiling_data_to_be_available()\n", "\n", "system_metrics_reader = tj.get_systems_metrics_reader()\n", "system_metrics_reader.refresh_event_file_list()\n", "\n", "view_timeline_charts = TimelineCharts(system_metrics_reader, \n", " framework_metrics_reader=None,\n", " select_dimensions=[\"CPU\", \"GPU\"], \n", " select_events=[\"total\"] # if you want to look specifically at gpu0 and gpu1, replace total with a list\n", " )" ] }, { "cell_type": "markdown", "id": "383116c1", "metadata": {}, "source": [ "### Create a heatmap\n", "\n", "This heatmap shows similar system utilization metrics but different" ] }, { "cell_type": "code", "execution_count": 25, "id": "abcba224", "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " const force = true;\n", "\n", " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", " root._bokeh_onload_callbacks = [];\n", " root._bokeh_is_loading = undefined;\n", " }\n", "\n", " const JS_MIME_TYPE = 'application/javascript';\n", " const HTML_MIME_TYPE = 'text/html';\n", " const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " const CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " const script = document.createElement(\"script\");\n", " node.appendChild(script);\n", " }\n", "\n", " /**\n", " * Handle when an output is cleared or removed\n", " */\n", " function handleClearOutput(event, handle) {\n", " const cell = handle.cell;\n", "\n", " const id = cell.output_area._bokeh_element_id;\n", " const server_id = cell.output_area._bokeh_server_id;\n", " // Clean up Bokeh references\n", " if (id != null && id in Bokeh.index) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", " cell.notebook.kernel.execute(cmd_clean, {\n", " iopub: {\n", " output: function(msg) {\n", " const id = msg.content.text.trim();\n", " if (id in Bokeh.index) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd_destroy);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " const output_area = handle.output_area;\n", " const output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", "\n", " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n", " // store reference to embed id on output_area\n", " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " }\n", " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " const bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " const script_attrs = bk_div.children[0].attributes;\n", " for (let i = 0; i < script_attrs.length; i++) {\n", " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", " }\n", "\n", " function register_renderer(events, OutputArea) {\n", "\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " const toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[toinsert.length - 1]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " /* Handle when an output is cleared or removed */\n", " events.on('clear_output.CodeCell', handleClearOutput);\n", " events.on('delete.Cell', handleClearOutput);\n", "\n", " /* Handle when a new output is added */\n", " events.on('output_added.OutputArea', handleAddOutput);\n", "\n", " /**\n", " * Register the mime type and append_mime function with output_area\n", " */\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " /* Is output safe? */\n", " safe: true,\n", " /* Index of renderer in `output_area.display_order` */\n", " index: 0\n", " });\n", " }\n", "\n", " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", " if (root.Jupyter !== undefined) {\n", " const events = require('base/js/events');\n", " const OutputArea = require('notebook/js/outputarea').OutputArea;\n", "\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " }\n", "\n", " \n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " const NB_LOAD_WARNING = {'data': {'text/html':\n", " \"
\\n\"+\n", " \"

\\n\"+\n", " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", " \"

\\n\"+\n", " \"\\n\"+\n", " \"\\n\"+\n", " \"from bokeh.resources import INLINE\\n\"+\n", " \"output_notebook(resources=INLINE)\\n\"+\n", " \"\\n\"+\n", " \"
\"}};\n", "\n", " function display_loaded() {\n", " const el = document.getElementById(null);\n", " if (el != null) {\n", " el.textContent = \"BokehJS is loading...\";\n", " }\n", " if (root.Bokeh !== undefined) {\n", " if (el != null) {\n", " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(display_loaded, 100)\n", " }\n", " }\n", "\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) {\n", " if (callback != null)\n", " callback();\n", " });\n", " } finally {\n", " delete root._bokeh_onload_callbacks\n", " }\n", " console.debug(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(css_urls, js_urls, callback) {\n", " if (css_urls == null) css_urls = [];\n", " if (js_urls == null) js_urls = [];\n", "\n", " root._bokeh_onload_callbacks.push(callback);\n", " if (root._bokeh_is_loading > 0) {\n", " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", " if (js_urls == null || js_urls.length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " root._bokeh_is_loading = css_urls.length + js_urls.length;\n", "\n", " function on_load() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", " run_callbacks()\n", " }\n", " }\n", "\n", " function on_error(url) {\n", " console.error(\"failed to load \" + url);\n", " }\n", "\n", " for (let i = 0; i < css_urls.length; i++) {\n", " const url = css_urls[i];\n", " const element = document.createElement(\"link\");\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.rel = \"stylesheet\";\n", " element.type = \"text/css\";\n", " element.href = url;\n", " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", " document.body.appendChild(element);\n", " }\n", "\n", " for (let i = 0; i < js_urls.length; i++) {\n", " const url = js_urls[i];\n", " const element = document.createElement('script');\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.async = false;\n", " element.src = url;\n", " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.head.appendChild(element);\n", " }\n", " };\n", "\n", " function inject_raw_css(css) {\n", " const element = document.createElement(\"style\");\n", " element.appendChild(document.createTextNode(css));\n", " document.body.appendChild(element);\n", " }\n", "\n", " \n", " const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.1.min.js\"];\n", " const css_urls = [];\n", " \n", "\n", " const inline_js = [\n", " function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", " function(Bokeh) {\n", " \n", " \n", " }\n", " ];\n", "\n", " function run_inline_js() {\n", " \n", " if (root.Bokeh !== undefined || force === true) {\n", " \n", " for (let i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " } else if (force !== true) {\n", " const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n", " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", " }\n", "\n", " }\n", "\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", " run_inline_js();\n", " } else {\n", " load_libs(css_urls, js_urls, function() {\n", " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", " run_inline_js();\n", " });\n", " }\n", "}(window));" ], "application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n \n\n \n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded() {\n const el = document.getElementById(null);\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n \n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.1.min.js\"];\n const css_urls = [];\n \n\n const inline_js = [\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n function(Bokeh) {\n \n \n }\n ];\n\n function run_inline_js() {\n \n if (root.Bokeh !== undefined || force === true) {\n \n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "select events:['total']\n", "select dimensions:['CPU', 'GPU', 'I/O']\n", "filtered_events:{'total'}\n", "filtered_dimensions:{'I/OWaitPercentage', 'GPUUtilization', 'GPUMemoryUtilization', 'CPUUtilization'}\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " const docs_json = {\"9e7f27a7-49df-4840-b9c0-be8440b79831\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"18257\"}],\"center\":[{\"id\":\"18260\"},{\"id\":\"18264\"}],\"height\":450,\"left\":[{\"id\":\"18261\"}],\"renderers\":[{\"id\":\"18279\"}],\"title\":{\"id\":\"19593\"},\"toolbar\":{\"id\":\"18269\"},\"width\":1000,\"x_range\":{\"id\":\"18249\"},\"x_scale\":{\"id\":\"18253\"},\"y_range\":{\"id\":\"18251\"},\"y_scale\":{\"id\":\"18255\"}},\"id\":\"18248\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"end\":1062,\"start\":62},\"id\":\"18249\",\"type\":\"Range1d\"},{\"attributes\":{},\"id\":\"19599\",\"type\":\"AllLabels\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"18276\"},\"glyph\":{\"id\":\"18277\"},\"group\":null,\"hover_glyph\":null,\"view\":{\"id\":\"18280\"}},\"id\":\"18279\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"18276\"}},\"id\":\"18280\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null,\"tooltips\":[[\"usage\",\"@image\"],[\"metric\",\"@metric\"],[\"index\",\"$x{10}\"]]},\"id\":\"18274\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"19596\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"18253\",\"type\":\"LinearScale\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"19593\",\"type\":\"Title\"},{\"attributes\":{\"axis\":{\"id\":\"18261\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null,\"visible\":false},\"id\":\"18264\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"18268\",\"type\":\"BoxEditTool\"},{\"attributes\":{},\"id\":\"19600\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"ticks\":[0,1,2,3,4,5,6,7]},\"id\":\"18282\",\"type\":\"FixedTicker\"},{\"attributes\":{\"color_mapper\":{\"id\":\"18275\"},\"dh\":{\"field\":\"dh\"},\"dw\":{\"field\":\"dw\"},\"image\":{\"field\":\"image\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"18277\",\"type\":\"Image\"},{\"attributes\":{},\"id\":\"19598\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"18266\",\"type\":\"ResetTool\"},{\"attributes\":{\"dimensions\":\"width\"},\"id\":\"18267\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"18265\",\"type\":\"CrosshairTool\"},{\"attributes\":{\"high\":100,\"low\":0,\"palette\":[\"#440154\",\"#440357\",\"#45085B\",\"#460B5E\",\"#470F62\",\"#471265\",\"#471669\",\"#481A6C\",\"#481D6F\",\"#482172\",\"#482374\",\"#472777\",\"#472A79\",\"#462D7C\",\"#46317E\",\"#45347F\",\"#443781\",\"#433A83\",\"#423D84\",\"#424085\",\"#404387\",\"#3F4788\",\"#3E4989\",\"#3D4C89\",\"#3C4E8A\",\"#3A528B\",\"#39548B\",\"#38578C\",\"#365A8C\",\"#355C8C\",\"#345F8D\",\"#33618D\",\"#31648D\",\"#30678D\",\"#2F698D\",\"#2E6C8E\",\"#2D6E8E\",\"#2C718E\",\"#2B738E\",\"#2A768E\",\"#29798E\",\"#287A8E\",\"#277D8E\",\"#267F8E\",\"#25828E\",\"#24848D\",\"#23878D\",\"#22898D\",\"#228B8D\",\"#218E8C\",\"#20908C\",\"#1F938B\",\"#1F958B\",\"#1E988A\",\"#1E9A89\",\"#1E9C89\",\"#1E9F88\",\"#1FA187\",\"#20A485\",\"#21A685\",\"#23A883\",\"#25AB81\",\"#27AD80\",\"#2AB07E\",\"#2CB17D\",\"#30B47A\",\"#35B778\",\"#38B976\",\"#3DBB74\",\"#40BD72\",\"#45BF6F\",\"#49C16D\",\"#4FC369\",\"#55C666\",\"#59C764\",\"#60C960\",\"#64CB5D\",\"#6BCD59\",\"#70CE56\",\"#77D052\",\"#7ED24E\",\"#83D34B\",\"#8BD546\",\"#90D643\",\"#97D83E\",\"#9DD93A\",\"#A5DA35\",\"#ADDC30\",\"#B2DD2C\",\"#BADE27\",\"#BFDF24\",\"#C7E01F\",\"#CDE01D\",\"#D4E11A\",\"#DCE218\",\"#E1E318\",\"#E9E419\",\"#EEE51B\",\"#F6E61F\",\"#FDE724\"]},\"id\":\"18275\",\"type\":\"LinearColorMapper\"},{\"attributes\":{\"axis_label\":\"Indices\",\"coordinates\":null,\"formatter\":{\"id\":\"19598\"},\"group\":null,\"major_label_policy\":{\"id\":\"19599\"},\"major_label_text_font_size\":\"0pt\",\"ticker\":{\"id\":\"18258\"}},\"id\":\"18257\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"19595\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data\":{\"dh\":[1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3],\"dw\":[1062,1062,1062,1062,1062,1062,1062,1062],\"image\":[{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA7QAAAAAAAsFJAAAAAAABAUkAAAAAAALBRQAAAAAAAIFJAAAAAAADgVEAAAAAAAKBUQAAAAAAAcFBAAAAAAACwUkAAAAAAABBWQAAAAAAA0FJAAAAAAACAVEAAAAAAAABTQAAAAAAAwFJAAAAAAACQUkAAAAAAAKBSQAAAAAAAEFZAAAAAAACgUkAAAAAAAEBSQAAAAAAAAFFAAAAAAADgU0AAAAAAACBWQAAAAAAA0FBAAAAAAABwUUAAAAAAAOBRQAAAAAAA8FJAAAAAAABAU0AAAAAAALBRQAAAAAAAAFNAAAAAAAAQUUAAAAAAAHBSQAAAAAAAkFJAAAAAAACQVEAAAAAAAGBUQAAAAAAAUFBAAAAAAACgUkAAAAAAAOBVQAAAAAAAEFNAAAAAAAAgVEAAAAAAAMBSQAAAAAAA8FJAAAAAAABQVEAAAAAAACBTQAAAAAAAAFZAAAAAAAAQU0AAAAAAAMBSQAAAAAAAkFBAAAAAAACQU0AAAAAAAOBVQAAAAAAAkFFAAAAAAACAU0AAAAAAAHBRQAAAAAAAAFNAAAAAAACwU0AAAAAAAGBSQAAAAAAAIFVAAAAAAADwUEAAAAAAACBSQAAAAAAAIFFAAAAAAADQU0AAAAAAAMBVQAAAAAAAIFFAAAAAAADAUUAAAAAAANBSQAAAAAAAUFRAAAAAAACAVEAAAAAAADBSQAAAAAAA8FNAAAAAAACgUEAAAAAAABBSQAAAAAAAsFJAAAAAAADwUkAAAAAAADBUQAAAAAAAMFFAAAAAAABgUUAAAAAAADBTQAAAAAAAkFRAAAAAAABwVEAAAAAAAOBQQAAAAAAAgFJAAAAAAADwUEAAAAAAAPBSQAAAAAAA0FNAAAAAAABAU0AAAAAAANBTQAAAAAAAcFBAAAAAAABAUkAAAAAAANBTQAAAAAAAQFRAAAAAAACQVEAAAAAAAPBQQAAAAAAAMFJAAAAAAAAgVUAAAAAAAHBSQAAAAAAAkFNAAAAAAACAUkAAAAAAAOBSQAAAAAAAkFBAAAAAAAAQUkAAAAAAACBTQAAAAAAAEFNAAAAAAABAVUAAAAAAAGBRQAAAAAAAkFFAAAAAAABgVEAAAAAAACBUQAAAAAAAYFRAAAAAAACgUkAAAAAAAKBSQAAAAAAAMFFAAAAAAAAAUkAAAAAAAGBTQAAAAAAAMFNAAAAAAAAAVEAAAAAAAIBRQAAAAAAAQFFAAAAAAAAQVEAAAAAAADBUQAAAAAAAcFRAAAAAAABQUUAAAAAAAOBSQAAAAAAAIFFAAAAAAACgUkAAAAAAAGBUQAAAAAAAcFNAAAAAAAAgVEAAAAAAABBQQAAAAAAAAFJAAAAAAAAAVEAAAAAAAFBUQAAAAAAAQFRAAAAAAABAUUAAAAAAAGBSQAAAAAAAYFVAAAAAAACwUkAAAAAAAEBUQAAAAAAAwFJAAAAAAACQUkAAAAAAAEBQQAAAAAAAIFJAAAAAAAAQVUAAAAAAAEBTQAAAAAAAkFRAAAAAAADgUEAAAAAAADBSQAAAAAAAUFVAAAAAAAAwU0AAAAAAAMBTQAAAAAAAoFJAAAAAAABAUkAAAAAAAPBRQAAAAAAAsFJAAAAAAABAVEAAAAAAAJBTQAAAAAAAwFJAAAAAAAAgUUAAAAAAAOBSQAAAAAAAAFVAAAAAAACQU0AAAAAAAABUQAAAAAAAYFBAAAAAAABgUkAAAAAAALBTQAAAAAAA8FJAAAAAAADAVEAAAAAAAMBSQAAAAAAAEFNAAAAAAAAQUUAAAAAAAOBSQAAAAAAA4FVAAAAAAACAUkAAAAAAAPBTQAAAAAAA0FBAAAAAAABgUkAAAAAAAPBUQAAAAAAAwFFAAAAAAAAQVUAAAAAAAHBSQAAAAAAAUFJAAAAAAAAwUUAAAAAAAGBTQAAAAAAAQFZAAAAAAACwUUAAAAAAAPBRQAAAAAAAYFBAAAAAAAAQU0AAAAAAAJBUQAAAAAAAwFFAAAAAAAAAUkAAAAAAADBSQAAAAAAAIFJAAAAAAAAQU0AAAAAAAOBSQAAAAAAAEFZAAAAAAAAgUkAAAAAAAOBRQAAAAAAAIFJAAAAAAACwU0AAAAAAAABVQAAAAAAA0FFAAAAAAABAUkAAAAAAAGBRQAAAAAAAsFNAAAAAAAAQU0AAAAAAADBTQAAAAAAAYFVAAAAAAADAUEAAAAAAAOBRQAAAAAAAQFJAAAAAAACwU0AAAAAAAFBVQAAAAAAAAFFAAAAAAADAUUAAAAAAABBRQAAAAAAAsFNAAAAAAACQVEAAAAAAAJBRQAAAAAAAUFVAAAAAAADgUEAAAAAAACBSQAAAAAAAYFNAAAAAAACwU0AAAAAAANBUQAAAAAAAIFFAAAAAAADgUUAAAAAAABBUQAAAAAAAwFNAAAAAAABQVEAAAAAAAJBRQAAAAAAAsFFAAAAAAACAVEAAAAAAACBSQAAAAAAAgFNAAAAAAABAU0AAAAAAADBTQAAAAAAAAFFAAAAAAADQUUAAAAAAABBVQAAAAAAA4FNAAAAAAAAwU0AAAAAAAMBQQAAAAAAAUFJAAAAAAADgVEAAAAAAAPBSQAAAAAAAQFRAAAAAAABwU0AAAAAAAIBSQAAAAAAAwFFAAAAAAADAUUAAAAAAAIBVQAAAAAAAUFNAAAAAAADAUkAAAAAAAKBQQAAAAAAA8FJAAAAAAABAVUAAAAAAAJBSQAAAAAAAwFNAAAAAAABgUkAAAAAAAJBSQAAAAAAAgFJAAAAAAAAAU0AAAAAAAFBWQAAAAAAAwFJAAAAAAABgUkAAAAAAAOBQQAAAAAAAMFNAAAAAAABwVUAAAAAAACBRQAAAAAAAYFNAAAAAAAAQUUAAAAAAAMBTQAAAAAAAcFNAAAAAAAAwU0AAAAAAAKBVQAAAAAAA4FBAAAAAAAAgUkAAAAAAAEBRQAAAAAAAcFNAAAAAAABQVUAAAAAAACBRQAAAAAAAcFFAAAAAAADAUkAAAAAAACBUQAAAAAAAYFRAAAAAAACQUUAAAAAAAHBSQAAAAAAAIFFAAAAAAAAwUkAAAAAAAKBSQAAAAAAAIFNAAAAAAADQU0AAAAAAAOBQQAAAAAAAYFFAAAAAAADgUkAAAAAAAIBUQAAAAAAAwFRAAAAAAACgUEAAAAAAAKBRQAAAAAAAAFNAAAAAAACwU0AAAAAAAPBSQAAAAAAAQFNAAAAAAADQU0AAAAAAAIBQQAAAAAAAAFJAAAAAAADgU0AAAAAAAEBUQAAAAAAA4FNAAAAAAAAwUEAAAAAAAABSQAAAAAAAIFZAAAAAAACAU0AAAAAAAEBTQAAAAAAAoFJAAAAAAAAAU0AAAAAAAJBRQAAAAAAAwFJAAAAAAAAAVUAAAAAAABBUQAAAAAAAQFNAAAAAAACAUEAAAAAAAJBSQAAAAAAAMFZAAAAAAADAUkAAAAAAAGBTQAAAAAAAoFFAAAAAAACgUkAAAAAAANBTQAAAAAAAsFJAAAAAAAAwVkAAAAAAACBTQAAAAAAA8FJAAAAAAAAwUEAAAAAAAJBSQAAAAAAAUFZAAAAAAACQUkAAAAAAAABSQAAAAAAAsFBAAAAAAAAQU0AAAAAAAABVQAAAAAAAgFJAAAAAAACAVEAAAAAAAMBTQAAAAAAAUFJAAAAAAACAUkAAAAAAAPBSQAAAAAAAQFZAAAAAAAAwU0AAAAAAAJBSQAAAAAAAUFBAAAAAAADAUkAAAAAAACBWQAAAAAAAAFJAAAAAAADwUUAAAAAAAOBSQAAAAAAAcFJAAAAAAADwU0AAAAAAAOBSQAAAAAAAYFZAAAAAAACgUkAAAAAAADBTQAAAAAAAkFBAAAAAAABQUkAAAAAAALBWQAAAAAAA0FJAAAAAAABwUkAAAAAAAJBQQAAAAAAAQFNAAAAAAACwU0AAAAAAAJBSQAAAAAAAQFVAAAAAAABgU0AAAAAAAJBSQAAAAAAAkFJAAAAAAAAQUkAAAAAAAIBWQAAAAAAAUFJAAAAAAABgUkAAAAAAAHBQQAAAAAAA8FJAAAAAAADAVUAAAAAAANBSQAAAAAAAMFVAAAAAAABQUkAAAAAAALBSQAAAAAAAcFJAAAAAAADAUkAAAAAAAFBWQAAAAAAAEFNAAAAAAADAUkAAAAAAAGBQQAAAAAAAoFJAAAAAAAAAVkAAAAAAAMBRQAAAAAAAcFNAAAAAAAAAU0AAAAAAAFBSQAAAAAAA4FNAAAAAAADgUkAAAAAAAOBVQAAAAAAAoFJAAAAAAADgUkAAAAAAAFBQQAAAAAAAQFJAAAAAAAAgVkAAAAAAAFBSQAAAAAAAQFJAAAAAAADQUEAAAAAAALBSQAAAAAAAgFNAAAAAAADQUkAAAAAAAKBUQAAAAAAA0FNAAAAAAADgUkAAAAAAACBSQAAAAAAAAFJAAAAAAAAwVUAAAAAAABBUQAAAAAAAMFNAAAAAAAAwUEAAAAAAABBSQAAAAAAAoFVAAAAAAABwU0AAAAAAANBSQAAAAAAAQFJAAAAAAABQUkAAAAAAANBRQAAAAAAA4FFAAAAAAADwUkAAAAAAAPBTQAAAAAAA0FVAAAAAAABAUUAAAAAAAIBRQAAAAAAAIFJAAAAAAABQVEAAAAAAAIBVQAAAAAAAoFBAAAAAAAAgU0AAAAAAAIBRQAAAAAAAsFJAAAAAAAAgVEAAAAAAAMBSQAAAAAAAwFVAAAAAAABQU0AAAAAAAMBSQAAAAAAAUFBAAAAAAABwUkAAAAAAAOBVQAAAAAAAsFJAAAAAAACAU0AAAAAAAKBSQAAAAAAAMFJAAAAAAABgUkAAAAAAAABSQAAAAAAAMFNAAAAAAAAQVEAAAAAAANBVQAAAAAAA4FBAAAAAAABwUUAAAAAAAOBSQAAAAAAAUFRAAAAAAAAQVUAAAAAAAIBQQAAAAAAA8FJAAAAAAACAUUAAAAAAAJBSQAAAAAAA8FNAAAAAAABwUkAAAAAAAABWQAAAAAAA4FJAAAAAAAAAU0AAAAAAAEBQQAAAAAAAIFJAAAAAAACQVUAAAAAAAMBTQAAAAAAAUFNAAAAAAABAUEAAAAAAAEBSQAAAAAAA4FJAAAAAAACwUkAAAAAAAPBSQAAAAAAA8FFAAAAAAABQVUAAAAAAACBRQAAAAAAAAFJAAAAAAACQUEAAAAAAAJBSQAAAAAAAcFZAAAAAAACwUkAAAAAAAHBSQAAAAAAAgFBAAAAAAACQUkAAAAAAAPBUQAAAAAAA8FJAAAAAAACgU0AAAAAAACBSQAAAAAAAEFRAAAAAAADwUEAAAAAAAIBRQAAAAAAA0FFAAAAAAACgU0AAAAAAAABWQAAAAAAAoFFAAAAAAADAUUAAAAAAAMBQQAAAAAAAwFJAAAAAAABgVUAAAAAAAPBSQAAAAAAA8FNAAAAAAABgUkAAAAAAAOBTQAAAAAAAMFFAAAAAAACQUUAAAAAAAEBRQAAAAAAAAFNAAAAAAAAgVkAAAAAAAHBSQAAAAAAA8FFAAAAAAACQUEAAAAAAANBRQAAAAAAAQFFAAAAAAABwUkAAAAAAAOBSQAAAAAAAQFJAAAAAAACgVUAAAAAAAMBSQAAAAAAAoFJAAAAAAABAUEAAAAAAAKBRQAAAAAAAQFRAAAAAAADAU0AAAAAAACBVQAAAAAAAEFFAAAAAAAAwU0AAAAAAAHBSQAAAAAAAQFJAAAAAAACQU0AAAAAAAKBRQAAAAAAAYFJAAAAAAADwUkAAAAAAAEBWQAAAAAAAkFJAAAAAAACgUkAAAAAAAGBQQAAAAAAAYFFAAAAAAADQU0AAAAAAAKBSQAAAAAAAcFVAAAAAAACwUkAAAAAAAKBTQAAAAAAAIFJAAAAAAABwVEAAAAAAADBRQAAAAAAAsFJAAAAAAAAgUEAAAAAAAOBQQAAAAAAAkFJAAAAAAABQU0AAAAAAAHBWQAAAAAAAUFJAAAAAAAAwUkAAAAAAAPBQQAAAAAAAMFJAAAAAAAAgUUAAAAAAALBSQAAAAAAAYFJAAAAAAABQUkAAAAAAAABWQAAAAAAAUFNAAAAAAADgUkAAAAAAADBQQAAAAAAAsFFAAAAAAABAVUAAAAAAABBUQAAAAAAAkFNAAAAAAADgUEAAAAAAANBRQAAAAAAAIFFAAAAAAADAUkAAAAAAACBSQAAAAAAAkFJAAAAAAACgVkAAAAAAAOBRQAAAAAAA4FFAAAAAAACAUUAAAAAAAJBTQAAAAAAAMFZAAAAAAAAAUkAAAAAAAHBTQAAAAAAAEFJAAAAAAACwUkAAAAAAAKBSQAAAAAAAQFJAAAAAAADgVUAAAAAAACBTQAAAAAAA8FJAAAAAAACAUEAAAAAAAHBSQAAAAAAAMFZAAAAAAACQUkAAAAAAABBSQAAAAAAA4FFAAAAAAADQUkAAAAAAAHBUQAAAAAAAoFJAAAAAAADQVEAAAAAAAEBTQAAAAAAAwFJAAAAAAABwUEAAAAAAACBSQAAAAAAAAFZAAAAAAAAAU0AAAAAAAGBSQAAAAAAAEFFAAAAAAACQU0AAAAAAAGBWQAAAAAAAUFJAAAAAAACgU0AAAAAAADBSQAAAAAAA8FJAAAAAAACQUkAAAAAAAGBSQAAAAAAA8FVA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,1062]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAAAEUAAAAAAAAASQAAAAAAAABVAAAAAAAAA8D8AAAAAAADgPwAAAAAAAAAAAAAAAAAAAAAAAAAAAIBDQAAAAAAAwFZAAAAAAADgV0AAAAAAAGBWQAAAAAAAoFdAAAAAAAAAWUAAAAAAAPBWQAAAAAAA8FZAAAAAAACgV0AAAAAAAFBYQAAAAAAAwFdAAAAAAACwV0AAAAAAAMBXQAAAAAAAgFdAAAAAAABgV0AAAAAAANBXQAAAAAAAIFhAAAAAAAAAWEAAAAAAAHBWQAAAAAAAwFZAAAAAAADAWEAAAAAAAIBXQAAAAAAAEFdAAAAAAACAVkAAAAAAAGBXQAAAAAAAoFdAAAAAAADgVkAAAAAAAPBXQAAAAAAAQFZAAAAAAADAVkAAAAAAAPBWQAAAAAAAwFdAAAAAAAAAWUAAAAAAAOBWQAAAAAAA4FZAAAAAAACgV0AAAAAAAFBYQAAAAAAA8FdAAAAAAACwV0AAAAAAAPBXQAAAAAAAEFdAAAAAAADgV0AAAAAAADBYQAAAAAAAMFhAAAAAAADgV0AAAAAAAGBWQAAAAAAA4FZAAAAAAABgWEAAAAAAALBXQAAAAAAAUFdAAAAAAADwVkAAAAAAAOBWQAAAAAAAoFdAAAAAAABQV0AAAAAAAPBXQAAAAAAAIFdAAAAAAAAwV0AAAAAAAABXQAAAAAAAMFdAAAAAAABgWEAAAAAAAKBXQAAAAAAAUFdAAAAAAABgVkAAAAAAANBXQAAAAAAA8FhAAAAAAAAwV0AAAAAAAABYQAAAAAAA0FZAAAAAAAAgV0AAAAAAABBXQAAAAAAAEFdAAAAAAACAWEAAAAAAANBWQAAAAAAAgFdAAAAAAABgVkAAAAAAAPBXQAAAAAAA4FhAAAAAAAAQV0AAAAAAANBWQAAAAAAA4FZAAAAAAABQV0AAAAAAAKBXQAAAAAAAYFdAAAAAAABwWEAAAAAAANBWQAAAAAAA4FZAAAAAAABgV0AAAAAAAABYQAAAAAAA4FhAAAAAAADwVkAAAAAAAMBWQAAAAAAAcFdAAAAAAABAWEAAAAAAALBXQAAAAAAAUFdAAAAAAADwV0AAAAAAAHBWQAAAAAAA4FZAAAAAAAAQV0AAAAAAAMBXQAAAAAAAgFhAAAAAAABwV0AAAAAAAGBXQAAAAAAAkFZAAAAAAAAAWEAAAAAAAKBYQAAAAAAAEFdAAAAAAADwV0AAAAAAAGBWQAAAAAAAgFdAAAAAAAAQV0AAAAAAAJBXQAAAAAAAgFhAAAAAAADQVkAAAAAAAIBXQAAAAAAAgFZAAAAAAADwV0AAAAAAALBYQAAAAAAAIFdAAAAAAAAQV0AAAAAAAIBWQAAAAAAAYFdAAAAAAACwV0AAAAAAAIBXQAAAAAAAgFhAAAAAAADwVkAAAAAAANBWQAAAAAAAQFdAAAAAAADwV0AAAAAAAMBYQAAAAAAAEFdAAAAAAAAAV0AAAAAAAMBXQAAAAAAAgFhAAAAAAACwV0AAAAAAAMBXQAAAAAAA8FdAAAAAAADwVkAAAAAAAOBWQAAAAAAAYFdAAAAAAADgV0AAAAAAADBYQAAAAAAAEFdAAAAAAADgVkAAAAAAAKBXQAAAAAAAcFhAAAAAAAAAWEAAAAAAAOBWQAAAAAAA8FdAAAAAAACQVkAAAAAAAFBXQAAAAAAAkFdAAAAAAADgV0AAAAAAAIBYQAAAAAAAQFZAAAAAAAAQV0AAAAAAACBYQAAAAAAAIFhAAAAAAADwV0AAAAAAABBXQAAAAAAA0FZAAAAAAADAV0AAAAAAANBXQAAAAAAAsFdAAAAAAADQV0AAAAAAAPBXQAAAAAAAYFZAAAAAAAAQV0AAAAAAACBYQAAAAAAAEFhAAAAAAABQV0AAAAAAABBXQAAAAAAAAFdAAAAAAADAV0AAAAAAAKBXQAAAAAAA8FdAAAAAAADAV0AAAAAAAPBXQAAAAAAAAFdAAAAAAAAwV0AAAAAAAFBYQAAAAAAAQFhAAAAAAACAV0AAAAAAANBWQAAAAAAA0FZAAAAAAABAWEAAAAAAAEBXQAAAAAAAoFdAAAAAAABAVkAAAAAAAFBXQAAAAAAAEFdAAAAAAACAV0AAAAAAAIBYQAAAAAAAMFhAAAAAAABgV0AAAAAAAHBWQAAAAAAAYFdAAAAAAACgWEAAAAAAAEBXQAAAAAAAsFdAAAAAAABwVkAAAAAAACBXQAAAAAAAYFhAAAAAAABwV0AAAAAAAHBYQAAAAAAAoFdAAAAAAACwVkAAAAAAAHBWQAAAAAAAMFdAAAAAAADAWEAAAAAAAABXQAAAAAAAMFdAAAAAAADQVkAAAAAAAOBWQAAAAAAAUFhAAAAAAABAV0AAAAAAAGBXQAAAAAAAsFdAAAAAAADAVkAAAAAAAABXQAAAAAAAYFdAAAAAAACwWEAAAAAAAABXQAAAAAAAIFdAAAAAAAAQV0AAAAAAAEBYQAAAAAAAgFhAAAAAAAAQV0AAAAAAAIBXQAAAAAAA4FZAAAAAAAAAWEAAAAAAADBXQAAAAAAAYFdAAAAAAABgWEAAAAAAAHBWQAAAAAAAAFdAAAAAAAAQV0AAAAAAAIBYQAAAAAAAgFhAAAAAAACQVkAAAAAAAABXQAAAAAAAsFdAAAAAAAAQWEAAAAAAAMBXQAAAAAAA0FdAAAAAAAAwWEAAAAAAAHBWQAAAAAAAcFdAAAAAAAAQV0AAAAAAAFBYQAAAAAAAYFhAAAAAAABwVkAAAAAAAPBWQAAAAAAAYFhAAAAAAABAWEAAAAAAALBXQAAAAAAAEFdAAAAAAABwV0AAAAAAAMBWQAAAAAAAgFdAAAAAAAAwWEAAAAAAAOBXQAAAAAAAYFdAAAAAAABwVkAAAAAAABBXQAAAAAAAUFhAAAAAAACQV0AAAAAAAHBXQAAAAAAAAFdAAAAAAADwVkAAAAAAAFBYQAAAAAAAQFdAAAAAAACAWEAAAAAAAKBXQAAAAAAAAFdAAAAAAAAAV0AAAAAAAFBXQAAAAAAAYFhAAAAAAABAV0AAAAAAAIBXQAAAAAAAYFZAAAAAAACQV0AAAAAAAABZQAAAAAAAIFdAAAAAAACAV0AAAAAAAGBWQAAAAAAAAFdAAAAAAAAAV0AAAAAAAEBXQAAAAAAAgFhAAAAAAACAVkAAAAAAAIBXQAAAAAAAUFZAAAAAAACgV0AAAAAAAPBYQAAAAAAAAFdAAAAAAAAAV0AAAAAAAPBWQAAAAAAAAFhAAAAAAABQWEAAAAAAABBXQAAAAAAAgFhAAAAAAACgVkAAAAAAACBXQAAAAAAAMFdAAAAAAAAQWEAAAAAAAMBYQAAAAAAAwFZAAAAAAAAAV0AAAAAAAHBXQAAAAAAAcFhAAAAAAADgV0AAAAAAAABXQAAAAAAAAFhAAAAAAABQVkAAAAAAAIBXQAAAAAAAoFdAAAAAAACAWEAAAAAAAIBYQAAAAAAAgFZAAAAAAAAAV0AAAAAAACBYQAAAAAAAIFhAAAAAAACgV0AAAAAAAABXQAAAAAAAgFdAAAAAAADwVkAAAAAAAOBXQAAAAAAA0FdAAAAAAABQWEAAAAAAAKBXQAAAAAAAIFZAAAAAAAAAV0AAAAAAAABYQAAAAAAAMFhAAAAAAADAV0AAAAAAAEBWQAAAAAAAAFdAAAAAAABQWEAAAAAAABBYQAAAAAAAQFdAAAAAAACgV0AAAAAAAGBYQAAAAAAAkFZAAAAAAACAV0AAAAAAABBYQAAAAAAAcFhAAAAAAAAAWEAAAAAAAFBWQAAAAAAAAFdAAAAAAABQWEAAAAAAAABYQAAAAAAAgFdAAAAAAABAVkAAAAAAAABYQAAAAAAAEFdAAAAAAACgV0AAAAAAAPBXQAAAAAAAUFhAAAAAAABwV0AAAAAAAFBWQAAAAAAA8FZAAAAAAADgV0AAAAAAAHBYQAAAAAAA4FdAAAAAAABAVkAAAAAAAABXQAAAAAAAUFhAAAAAAAAAWEAAAAAAALBXQAAAAAAAwFdAAAAAAAAAWEAAAAAAALBWQAAAAAAAgFdAAAAAAACwV0AAAAAAAFBYQAAAAAAAAFhAAAAAAABAVkAAAAAAALBWQAAAAAAAUFhAAAAAAACwV0AAAAAAAOBXQAAAAAAAsFdAAAAAAACgV0AAAAAAAMBWQAAAAAAAgFdAAAAAAADwV0AAAAAAAHBYQAAAAAAA8FdAAAAAAABAVkAAAAAAANBWQAAAAAAAEFhAAAAAAADgV0AAAAAAAKBXQAAAAAAAAFdAAAAAAAAAWEAAAAAAADBXQAAAAAAA0FdAAAAAAAAgWEAAAAAAAGBYQAAAAAAAgFdAAAAAAABgVkAAAAAAAMBWQAAAAAAA8FdAAAAAAAAgWEAAAAAAAPBXQAAAAAAAUFZAAAAAAAAAV0AAAAAAAKBXQAAAAAAAAFhAAAAAAACQV0AAAAAAAMBXQAAAAAAAcFhAAAAAAACAVkAAAAAAAIBXQAAAAAAAYFdAAAAAAAAwWEAAAAAAADBYQAAAAAAAMFZAAAAAAAAAV0AAAAAAAIBXQAAAAAAAgFhAAAAAAADQV0AAAAAAAIBWQAAAAAAAAFhAAAAAAABAVkAAAAAAAIBXQAAAAAAA4FZAAAAAAABgV0AAAAAAAOBYQAAAAAAAgFdAAAAAAABQV0AAAAAAAEBWQAAAAAAAoFdAAAAAAADwWEAAAAAAAEBXQAAAAAAAAFdAAAAAAADwVkAAAAAAABBXQAAAAAAAkFdAAAAAAACgV0AAAAAAANBXQAAAAAAAIFhAAAAAAAAAWEAAAAAAADBWQAAAAAAAAFdAAAAAAACwV0AAAAAAAEBYQAAAAAAAAFhAAAAAAADgVkAAAAAAAOBXQAAAAAAAUFZAAAAAAACwV0AAAAAAABBXQAAAAAAAgFdAAAAAAADwWEAAAAAAAIBXQAAAAAAAIFdAAAAAAABwVkAAAAAAANBXQAAAAAAAAFlAAAAAAAAwV0AAAAAAAPBWQAAAAAAA8FZAAAAAAAAAV0AAAAAAALBXQAAAAAAAgFdAAAAAAADwV0AAAAAAAFBYQAAAAAAAsFdAAAAAAABgVkAAAAAAAABXQAAAAAAAoFdAAAAAAABwWEAAAAAAAEBYQAAAAAAAcFZAAAAAAAAAV0AAAAAAANBWQAAAAAAA0FdAAAAAAACgV0AAAAAAAPBWQAAAAAAAAFhAAAAAAABgV0AAAAAAAFBXQAAAAAAAQFZAAAAAAAAAV0AAAAAAACBYQAAAAAAAUFhAAAAAAAAAWEAAAAAAAEBWQAAAAAAAAFdAAAAAAAAAWEAAAAAAACBYQAAAAAAAsFdAAAAAAABQV0AAAAAAAPBXQAAAAAAA4FZAAAAAAAAwV0AAAAAAAHBWQAAAAAAAgFdAAAAAAADQWEAAAAAAALBXQAAAAAAAgFdAAAAAAACAVkAAAAAAAABXQAAAAAAAUFhAAAAAAABAWEAAAAAAANBXQAAAAAAAgFdAAAAAAAAAWEAAAAAAAMBWQAAAAAAAIFdAAAAAAABQVkAAAAAAACBXQAAAAAAAkFhAAAAAAADgV0AAAAAAAOBXQAAAAAAAYFZAAAAAAAAAV0AAAAAAACBXQAAAAAAAgFdAAAAAAACwV0AAAAAAAOBWQAAAAAAAYFhAAAAAAACgV0AAAAAAAABYQAAAAAAAgFZAAAAAAAAAV0AAAAAAAJBXQAAAAAAAAFhAAAAAAADgWEAAAAAAADBXQAAAAAAAkFdAAAAAAAAgV0AAAAAAAIBXQAAAAAAAQFdAAAAAAAAAWEAAAAAAABBXQAAAAAAAYFdAAAAAAACQWEAAAAAAABBYQAAAAAAAAFhAAAAAAACAVkAAAAAAAABXQAAAAAAAUFdAAAAAAAAAWEAAAAAAAGBYQAAAAAAA4FdAAAAAAADQV0AAAAAAAHBXQAAAAAAA0FdAAAAAAABAV0AAAAAAAIBXQAAAAAAAgFZAAAAAAAAAV0AAAAAAAPBWQAAAAAAAsFdAAAAAAADgWEAAAAAAAABYQAAAAAAA4FdAAAAAAABwVkAAAAAAAIBXQAAAAAAA4FZAAAAAAABQV0AAAAAAAKBXQAAAAAAAUFdAAAAAAAAQWEAAAAAAAEBYQAAAAAAAIFhAAAAAAABgVkAAAAAAALBWQAAAAAAAYFdAAAAAAABwWEAAAAAAAIBYQAAAAAAAwFZAAAAAAACAV0AAAAAAAJBWQAAAAAAAQFdAAAAAAACwV0AAAAAAAABXQAAAAAAAMFhAAAAAAAAgWEAAAAAAALBXQAAAAAAAcFZAAAAAAABgV0AAAAAAAKBYQAAAAAAAoFdAAAAAAADAV0AAAAAAABBXQAAAAAAAYFdAAAAAAACgV0AAAAAAAIBXQAAAAAAA0FdAAAAAAABgWEAAAAAAAABYQAAAAAAAYFZAAAAAAAAAV0AAAAAAAPBXQAAAAAAAUFhAAAAAAADQV0AAAAAAAGBWQAAAAAAAUFdAAAAAAAAAWEAAAAAAAABYQAAAAAAA4FdAAAAAAADAV0AAAAAAAABYQAAAAAAAAFdAAAAAAAAAV0AAAAAAAMBXQAAAAAAAUFhAAAAAAAAAWEAAAAAAAGBWQAAAAAAAAFdAAAAAAABwWEAAAAAAAOBXQAAAAAAA8FdAAAAAAAAQV0AAAAAAAIBXQAAAAAAAoFdAAAAAAACAV0AAAAAAAMBXQAAAAAAAQFhA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,1062]},{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,1062]},{\"__ndarray__\":\"XY/C9ShMGUAb6LSBTjsMQHA9CtejEAdAlF8s+cWSD0AYS36x5LcNQNejcD0KV/M/HOi0gU4b6D/ziyW/WHL1P6RwPQrXY/M/k18s+cWS0j8AAAAAAADAP6gNdNpAp9Y/TxvotIFO1T+amZmZmZnSP4FOG+i0AeA/k18s+cWS2D8kv1jyi6XiP5f8Yskvlso/nTbQaQOd0j+PwvUoXI/gP1yPwvUoXOE/qA102kCn/j/t7u7u7u7uP3oUrkfhChRAP6cNdNrgC0DIL5b8YqkHQDXQaQOdtvU/Z2ZmZmYm+T+F61G4HoX0P5s20GkD3fc/BJ020GkD9D8wlvxiyW/5P22g0wY6bQdAFK5H4Xq0CUBLfrHkF4sJQAOdNtBpgwpAt4FOG+i0C0AjIiIiImIAQHd3d3d3d/M/3d3d3d3d8T/Xo3A9Chf1P8aSXyz5xfM/seQXS35RAkBlZmZmZkYPQOe0gU4b6BBAoNMGOm1ACEDPaQOdNvALQNBpA502MAZAtYFOG+jEEkDHkl8s+eUEQO/u7u7ubvc/RERERETE9D8pXI/C9Sj0Pz0K16Nw/fQ/393d3d0d8j+4HoXrUbj3Pya/WPKLZfQ/pw102kDn9D8b6LSBTlv0P0nhehSuh/M/16NwPQpX9T8+CtejcH3yP7y7u7u7e/4/4XoUrkch+D9soNMGOi3zP5020GkDnfI/S36x5BcL9j8b6LSBThvzP9BpA502EPI/frHkF0s+8j8b6LSBTlvzP3M9Ctej8Pg/XI/C9ShcCkBvoNMGOi0OQMeSXyz5xfE/j8L1KFwP9D9toNMGOq31PzMzMzMzc/Q/TH6x5BdL7D+oDXTaQAcIQEGnDXTa4ApAKL9Y8ovlDECBThvotMENQFO4HoXrUQpAdNpApw20CUDv7u7u7q4IQGdmZmZmZg9AL/nFkl9sD0AFnTbQaQMRQIuIiIiIqAtAKVyPwvWIC0CkcD0K1wMOQEVERERExA1AyS+W/GLJ9z/tUbgehWvwP+m0gU4bqPM/b6DTBjqt8T+9u7u7u7vyP+e0gU4b6ARAiYiIiIgI8z+MJb9Y8gvzP1VVVVVVVek/Xyz5xZLf6D/QaQOdNtAPQGEs+cWSn/w/0GkDnTbQ6D+lcD0K1wMCQO1RuB6FiwBAD3TaQKdNEEBwPQrXo1ASQEt+seQXKwpAddpApw1UCUDbQKcNdFoOQFnyiyW/uAhAU7gehesR+z+MJb9Y8gvsP4/C9Shcj+8/O22g0wa66D9TuB6F69HqP7kehetR+PM/7+7u7u7u7z8K16NwPUrwP6HTBjptIOw/f7HkF0t++D88CtejcL35PxdLfrHktwhAtIFOG+g0D0CoDXTaQEcOQL27u7u7uwlAmZmZmZm5DEAwlvxiye8LQMsvlvxiCQlA1AY6baAzCkDhehSuR2EJQE8b6LSBbgRArUfhehSu6D9UVVVVVdXsP0jhehSux+w/eHd3d3d37z8IOm2g0wbsP8WSXyz5BfA/yi+W/GIJ8D+BThvotIHrP8kvlvxiSes/PArXo3C99z/0iyW/WDIHQDCW/GLJrwhAtYFOG+jUBUAjIiIiIoIHQHPaQKcNdOM/5BdLfrFk6T/RaQOdNhDwP+/u7u7ubuU/3d3d3d1d/j8VrkfhehTsPx+F61G4Hug/VVVVVVVV6z+4HoXrUTjqPwg6baDTBu4/zczMzMzM7D+IiIiIiIjtP2As+cWSX+U/aQOdNtBp4T98FK5H4XroP0jhehSux+I/qKqqqqqq+D8EnTbQaQP2PzjQaQOd9vw/MJb8YskPD0Cw5BdLfjEIQIslv1jyOx5ADxERERFJIkBMfrHkFzMhQF8s+cWSvyBAZ2ZmZmYmGECoDXTaQL8iQGAs+cWSvxdATxvotIEOF0CpDXTaQEcXQFG4HoXr8RpAg04b6LRxF0AYS36x5LccQKgNdNpA1x5A9Shcj8JVH0BPG+i0gf4SQEGnDXTagBFA+cWSXyy5FkCnDXTaQAcUQBERERERYRZASOF6FK7XFUAL16NwPaoVQM3MzMzMLBZAoNMGOm0AFkA9CtejcD0UQD0K16NwvRVACDptoNMGHUA0MzMzM4MYQClcj8L1SBdAOW2g0wYaGEB5d3d3d3cYQPxiyS+WTBZAJ79Y8ot1F0DJL5b8YqkWQO/u7u7uXhdAj8L1KFxPGUDntIFOGygaQAvXo3A9qhdA7FG4HoUbFkATEREREaEWQOtRuB6FmxdArKqqqqpaGUBcj8L1KLwXQMSSXyz5hR5AbaDTBjrtHkAc6LSBThsdQFG4HoXrgRdAXI/C9SgEI0B12kCnDXwgQC2W/GLJrxNAlF8s+cUSEkC/WPKLJX8RQI/C9ShcPxFAq6qqqqqqEUC1gU4b6JQRQBERERERARdAYCz5xZJ/GUAwlvxiyb8ZQGAs+cWSvxlAoNMGOm2AGUC5HoXrUSgaQKDTBjptgBlAO22g0wbqGUDNzMzMzDwaQMP1KFyPQhVAddpApw1UGkC1gU4b6NQZQNQGOm2g0xlAtYFOG+jUGUBrA5020KkZQDCW/GLJ/xlAFa5H4XrUGUDlF0t+sdQZQHsUrkfhqhlAawOdNtDpGUDAWPKLJT8cQKuqqqqq6hlA20CnDXRqGUBgLPnFkv8ZQBWuR+F61BlABzptoNMGEUA/CtejcP0LQI3C9ShczxpAJb9Y8otVG0Amv1jyi30hQFRVVVVVpRpAbqDTBjo9EkBWVVVVVVURQJmZmZmZ2Q1AzMzMzMxsF0BxPQrXo4ATQNFpA5020BlAG+i0gU4bGEDRaQOdNtAaQEt+seQXyxhAuR6F61HAIEBhLPnFkq8dQOm0gU4bcCBAkML1KFy/EUDv7u7u7r4RQGPJL5b8UhFAD3TaQKd9EUBLfrHkF2sSQMBY8osl/xlAgLHkF0s+GkC0gU4b6AQfQPOLJb9Y2iBAfbHkF0uuGkA9CtejcP0DQGhmZmZmZgdAq0fhehRuD0Ac6LSBTgsZQDEzMzMz0xZANNBpA53GGUB02kCnDeQhQD8K16Nw/R9An9MGOm2gFUDZQKcNdNoIQKHTBjptAAtASOF6FK4nBEBz2kCnDdQBQC+W/GLJzwJAcD0K16PQCkCdNtBpA/0HQEfhehSuPy1AMJb8YsmvIED5xZJfLFkJQAc6baDTBvQ/baDTBjpVIUDMzMzMzHQhQOF6FK5HER9ArEfhehTuHkBF4XoUrrcbQNQGOm2gsxhAbaDTBjqdFkARERERETEWQIeIiIiI2BhAexSuR+F6FkBdj8L1KFwdQCEiIiIi0iBAOW2g0wb6FUBmZmZmZiYRQOUXS36xFBFAxZJfLPm1F0AYS36x5PcLQBWuR+F6VBFAkML1KFw/E0DrUbgehSsSQDCW/GLJvxFAexSuR+G6GEBVVVVVVRUZQCCF61G4vhlAIIXrUbi+GUDbQKcNdJoQQBVLfrHkpxpAFa5H4XoEHkBnZmZmZm4lQGZmZmZmXiJA1QY6baCjF0AHOm2g00YNQH2x5BdLfgJArKqqqqoqDUANdNpApy0DQIXrUbgexQJAl/xiyS/WDkDRaQOdNqATQJuZmZmZeRZAUbgehevRCUDNzMzMzIz+P6cNdNpAdxBAKVyPwvXoE0AMdNpAp20MQKHTBjptwBBAzczMzMyM+j8EOm2g00YPQAx02kCn7RdAULgehesxG0CIiIiIiNAgQA102kCnXSVAEBERERHRGUAL16NwPWoXQIFOG+i00SFAk18s+cXCHUCtR+F6FH4XQON6FK5HARhAfLHkF0veGEAb6LSBTksfQH2x5BdLhiJAR+F6FK7vIkAb6LSBTlsgQClcj8L1qBlAv1jyiyW/GUBZ8oslvwgUQG+g0wY6vRFAaQOdNtBpE0B4d3d3dzcaQGAs+cWSfxlACDptoNOGFkBPG+i0gX4RQMkvlvxiKRFA7+7u7u4+EUDJL5b8YikRQI/C9Shc/xBAv1jyiyU/EUD8YskvlhwOQON6FK5HYQ9A6bSBThtYEECYmZmZmZkKQEx+seQXawhAExERERGBE0DUBjptoNMZQF2PwvUoVCBAkV8s+cUSCEBVVVVVVVUCQGAs+cWS/wZAwFjyiyXfDUCPwvUoXI8DQB+F61G4Hv4/57SBThuo/j8AAAAAAIACQO/u7u7u7vA/Om2g0wY60T+QwvUoXI/CP4NOG+i0WS9AyS+W/GKJEkArXI/C9bgWQJNfLPnFchlA7+7u7u7uHECDThvotPkwQJ020GkD9SBAMJb8YslfIUBBpw102rggQGkDnTbQyR9AvLu7u7s7GUDHkl8s+eUTQA902kCnTRhAqA102kBfIEDZQKcNdCIhQClcj8L1mCJAw1jyiyXPG0ABAAAAAAABQDttoNMG6h1AAAAAAADIIEDXo3A9Cv8gQGAs+cWSHyFAtYFOG+iUIUD5xZJfLOkgQA502kCnnSFAyS+W/GIlNEDAWPKLJR8hQNejcD0KfyFA84slv1jiIEDbQKcNdOogQDCW/GLJ3yBAIyIiIiIKIUDAWPKLJV8hQF2PwvUoVCFABJ020GmjIkAEnTbQaYshQJ020GkD9SBAO22g0wYKIUA1MzMzM5MRQJuZmZmZ2RpAw/UoXI9KIEA7baDTBuogQI/C9ShcjyFADnTaQKdtIEAQERERERHePzMzMzMzM+s/v1jyiyUyU0A9CtejcL0nQOlRuB6Fmy9A3d3d3d21KEDptIFOG+guQGRmZmZmfilAL5b8Ysl3LUDd3d3d3cUvQMsvlvxisSlAV1VVVVWtLkB/seQXS1YpQIiIiIiIMC1Avbu7u7sDL0AghetRuEYpQEl+seQXmy9A/GLJL5ZEKUC7u7u7uzMuQAAAAAAA0C1AVLgehesRKkASERERER0wQHl3d3d3ZyhALPnFkl+sLkC7u7u7u5MtQJmZmZmZ0SpAZMkvlvzKLkBVVVVVVRUoQPtiyS+WwDBAf7HkF0teLEDRBjptoHMuQBOuR+F6oDBAmJmZmZmhL0AvlvxiyfcwQKuqqqqqoitAMTMzMzMrLUCPwvUoXG8uQAnXo3A90ihAVLgeheshL0A5baDTBhIqQMeSXyz5ZS1ATxvotIHuLUDv7u7u7lYpQI/C9Shc1y9ADXTaQKcdKUCrqqqqqqIuQON6FK5HSS1Af7HkF0v2KUDv7u7u7uYvQCW/WPKLJSlAy8zMzMwEL0DD9Shcj6otQBzotIFOoypAPArXo3CdLkBPG+i0gX4nQFuPwvUo1C9AxPUoXI8yK0BvoNMGOq0sQG+g0wY6TS9AA5020Gk7KEBLfrHkFy8wQLeBThvorChAn9MGOm3ILUCbmZmZmdktQIwlv1jyKylAbQOdNtCxL0CnDXTaQAcoQP//////Fy9A7O7u7u5WLECE61G4HkUrQGug0wY6ZS9AIyIiIiJCKECx5BdLftEuQFyPwvUoXCpAh+tRuB41LEB/seQXSw4wQBSuR+F6XClAZWZmZmb2LkDMzMzMzDwpQABjyS+WLC5AqA102kA3LkB7FK5H4YIqQIfrUbge1S9AS36x5BdDKEC/WPKLJc8uQOe0gU4b4CxAGEt+seRXK0CY/GLJL+YuQBzotIFOcypA43oUrkfpLkAYS36x5P8sQMkvlvxiATBA/WLJL5bgMkC8u7u7u3MsQJw20GkD1S5ASOF6FK5vKEARrkfheuQuQP//////PyxAWfKLJb94KkC9u7u7u7suQDCW/GLJDylAD3TaQKcNL0CpqqqqqiIqQLWBThvo7CxATxvotIEGLkBPG+i0gQYpQJ820GkDVS9ArKqqqqqKKEAK16NwPX4wQLcehetR2CxAV/KLJb94K0AL16NwPeouQCEiIiIi4ilASeF6FK43L0D9YskvlswqQI/C9ShcTyxAR0REREQkL0A5baDTBmooQO/u7u7uzi5A9Chcj8KFKEBsoNMGOh0uQM9pA502+C1AuB6F61FQKkBF4XoUrscuQPxiyS+WXChAbKDTBjr9LkATrkfherQsQICx5BdLvipAGEt+seSvL0D1KFyPwm0oQIwlv1jy0y5AONBpA50WK0DVBjptoLssQFyPwvUobC5ARURERESsKEDHL5b8YrkuQMsvlvxigSpAKL9Y8ostLkBcj8L1KGQtQHTaQKcN/ClA3ECnDXRaLkAREREREQkpQMBY8oslxy9AgU4b6LTpK0DIkl8s+e0rQGXJL5b8ei5AE65H4XrkKEAzMzMzM0svQL9Y8oslXylACdejcD0GMEAAAAAAAPgvQC+W/GLJ7ytALfnFkl8EM0CE61G4HqUrQHM9Ctej2C9Ao3A9CtczLED9YskvlgQsQHd3d3d3Fy9Ao3A9CtdTKEC8u7u7u8MuQGHJL5b86ipADHTaQKetLECbmZmZmWkvQGVmZmZmNihAzczMzMxkL0DNzMzMzAQpQOcXS36xZC5As4FOG+hsLUCUXyz5xeIpQB2F61G4Di9AnTbQaQPtJ0BVVVVVVV0vQD0K16Nw/SxAXI/C9SgcLUBgLPnFkt8uQD8K16Nw9SdAawOdNtBBL0Cx5BdLfuEqQCEiIiIi6ixARERERETkLkB7FK5H4UooQFS4HoXrQS9Al/xiyS/+KEDg3d3d3W0vQPQoXI/CnS1AS36x5BebKUDHkl8s+aUvQOF6FK5HCSlA02kDnTZQL0D1KFyPwp0rQE0b6LSBPitANdBpA53uLkCsqqqqqtooQJ020GkD1S5ADXTaQKf9KUDjF0t+sewtQBhLfrHkRy5A3d3d3d1FKkDVo3A9CvcuQEOnDXTaGChAv1jyiyXnLkA8CtejcDUsQCMiIiIiuipAWfKLJb8wMEDRaQOdNngoQAOdNtBpky9A0GkDnTbQKkD///////csQE8b6LSBVjBAAAAAAAAwKEAlv1jyi8EwQFnyiyW/MCtAkl8s+cWCMkCtR+F6FNIwQC35xZJfnClAtYFOG+h8LkBERERERMQnQI0lv1jyGy9Abz0K16MoLED9YskvlrwqQITrUbgexS5AmZmZmZnJJ0CX/GLJL4YuQLWBThvoXCpAaGZmZmZ+LUAPdNpApz0uQLu7u7u7GyhALPnFkl+8L0BQuB6F66EpQO/u7u7uzi1AR+F6FK4XLUBMfrHkF1spQBlLfrHkNy9AkML1KFzvJ0BpA5020CkwQFdVVVVV/StA2KNwPQo/KkCh0wY6bSgvQPUoXI/CdShA61G4HoVbL0AjIiIiIkoqQAzXo3A98itA5RdLfrGsLkBXVVVVVd0oQCCF61G4/i5AmZmZmZmZKEAt+cWSXxQuQIiIiIiIuC1AIyIiIiKSKUDTBjptoBMvQFVVVVVVNShA3ECnDXRaLkDXo3A9Cu8rQIwlv1jy2ypAD3TaQKcFL0CAseQXSxYoQGdmZmZmUjBAUbgehetBK0AzMzMzM7MsQL9Y8oslJy5AJb9Y8ou1KEA/CtejcCUvQGhmZmZmTilAz2kDnTYYLkAr+cWSX4QuQOi0gU4bACpAgU4b6LRRLkA0MzMzM9MoQNijcD0KezBAcT0K16M4LECoDXTaQHcrQIXrUbgeATFADXTaQKc1LUCW/GLJLzozQO1RuB6F6ypAmPxiyS/WK0DbQKcNdGouQBERERERaShAXyz5xZK3L0D0iyW/WDIpQIBOG+i0uS1AIyIiIiKaLUCdNtBpA00pQJiZmZmZWS9AqaqqqqrSJ0BJfrHkF0MvQMX1KFyPmixAKFyPwvVIK0CYmZmZmeEvQOF6FK5HGShA7+7u7u4mL0B4d3d3d88qQNzd3d3dRSxACdejcD0SL0Dd3d3d3T0pQEjhehSu3y5A4XoUrkc5KUBkZmZmZo4tQDCW/GLJ1y5AdNpApw1UKUCnDXTaQA8vQKyqqqqqOihAd3d3d3fnLkDhehSuR/EsQAEAAAAAOCpAH4XrUbjGLkBnZmZmZuYnQFAb6LSB5i5AnTbQaQNtK0ApXI/C9ZgrQKHTBjptqC5A6LSBThv4J0BFREREROQuQJuZmZmZwSlAw/UoXI+aLUAAAAAAALgtQOi0gU4bEClAkV8s+cWyL0AoXI/C9TgoQGkDnTbQgS5AzczMzMzELEBBpw102kgqQK9H4XoUti5AWfKLJb/oJ0CYmZmZmbEuQChcj8L1YCxAYCz5xZKvLEC/WPKLJScvQLHkF0t+aSlAMDMzMzPLL0D3KFyPwo0pQNMGOm2gbzBAcT0K16MQMUDGkl8s+XEwQChcj8L1aC9ABZ020GmDKEAfhetRuO4uQO1RuB6F+ytAg04b6LQRK0C5HoXrUWAvQE8b6LSB/idAi4iIiIiIL0At+cWSXyQpQDCW/GLJFy5Az2kDnTY4LkDkF0t+sTQpQLDkF0t+YS5AsEfhehS2J0BsoNMGOgUvQLy7u7u78yxACDptoNNuKkDpUbgehXMuQHh3d3d3hyhAtx6F61EQL0CZmZmZmdkqQOF6FK5HgS5A8+7u7u6WLkCY/GLJLz4oQClcj8L1GC9ADXTaQKddKUAslvxiyScuQF2PwvUoxCxA20CnDXSqKUBtoNMGOhUvQImIiIiIQChA1QY6baATL0BwPQrXo5ArQFG4HoXrOStAm5mZmZkxL0DHkl8s+WUoQDCW/GLJ5y5ANdBpA52WKUD5xZJfLDEtQDQzMzMz0y1A9Chcj8INKUAEnTbQaQsvQBWuR+F65ChAt4FOG+jkLkD8YskvlnQsQJRfLPnF6ipA9Shcj8K1LkDYo3A9CqcnQDMzMzMzyy5ARERERERkKkBQG+i0gf4sQCW/WPKLjS5A3d3d3d3dKUAwlvxiyX8uQLu7u7u7myhAMZb8Ysk/MEBPG+i0gW4tQMBY8osl1y1AiIiIiIgIMUAvlvxiyU8vQGAs+cWSzy5AdNpApw3cKkCdNtBpA4UrQAc6baDTti5Ayy+W/GLhJ0BZ8oslv+guQNBpA502GClAPArXo3C9LUCrqqqqqmotQAg6baDTFilA98WSXyypLkCQwvUoXJ8oQMT1KFyPei5Av1jyiyVPK0Dw7u7u7j4rQEfhehSuNy5A0GkDnTbIKEBFRERERMwuQBdLfrHknyhAnTbQaQOlLUD8YskvlrwsQK1H4XoUDipA8O7u7u4iMEDf3d3d3cUnQHTaQKcNVC9A3d3d3d1VK0Ar+cWSX5QsQMP1KFyPOi9AmZmZmZkhKEAwlvxiyU8vQOxRuB6F6yhAk18s+cWCLkD4xZJfLBktQMP1KFyPeilAgk4b6LQNMEC3gU4b6HwnQJNfLPnFai9A2KNwPQrPKkCH61G4HvUrQJX8YskvPi5AmJmZmZkhKECJiIiIiOAuQIwlv1jyQyhAERERERFpL0DZQKcNdFosQOi0gU4bWCpAbKDTBjrNLkAjIiIiIvonQFVVVVVVtS5AoNMGOm1QKUBoZmZmZo4tQJHC9ShcTy1AHYXrUbhGK0CoDXTaQA8vQC35xZJfbChA7+7u7u5uMECTXyz5xcopQNBpA502eDBANTMzMzOTMEA8CtejcJ0vQJ020GkDKTBAu7u7u7ubJ0A7baDTBiovQFG4HoXrGStAhOtRuB4dLED4xZJfLPEuQC35xZJfLChAkML1KFyXL0DMzMzMzOwoQLSBThvotC5A+cWSXyzhK0BUuB6F65kqQJ820GkDhS9AtYFOG+gMKEC5u7u7u3suQHl3d3d3TylA8yhcj8LtLEDotIFOG1AtQLHkF0t+cSlAG+i0gU7DLkBvoNMGOvUoQBvotIFOyy5A3d3d3d3VKkBEREREREQuQD+nDXTaCC5AkML1KFwfKUAghetRuPYuQHTaQKcNtChA5RdLfrGULkCIiIiIiBgrQCMiIiIiOitAnDbQaQNdLkCrqqqqqiIoQIFOG+i0sS5Av1jyiyV3J0Dw7u7u7mYuQDfQaQOdzitAkML1KFw/K0DkF0t+sUQuQMzMzMzMHChAexSuR+EqLkBFREREREwoQMP1KFyPsi9AlF8s+cUKLUAghetRuA4qQGEs+cWSZy5AcT0K16OoJ0D8xZJfLNkuQK9H4XoU3ihAu7u7u7sbLUD0KFyPwk0sQO/u7u7udilARERERERELkCX/GLJL1YpQOe0gU4bwC5AcD0K16PwKkCV/GLJL6YtQMcvlvxikS9A3d3d3d0lLUDB9Shcj9YyQAAAAAAAMChA20CnDXRyLkAgIiIiImInQCGF61G4pi5AV/KLJb/wK0AfhetRuEYqQASdNtBpYy5AK1yPwvX4J0BNfrHkF5MuQA102kCnnShASeF6FK4PL0DVBjptoFsqQLWBThvoNCxArKqqqqpaLUAoXI/C9RApQCS/WPKLlS5AaGZmZmaeJ0D//////+8uQCz5xZJf1ChAmJmZmZmBLUBDpw102rArQH2x5BdLXipAd3d3d3dXLkA9CtejcFUoQPUoXI/CpS9A2aNwPQpfJ0A10GkDnWYuQNBpA502kChAU7gehesRLUBFRERERGQsQEGnDXTa2ClAhetRuB4dLkAzMzMzM6snQE8b6LSBDi9AeRSuR+GqJ0Dc3d3d3a0uQHTaQKcNTClAWfKLJb+ALUDHkl8s+R0sQB+F61G4dipAJb9Y8osVLkDYo3A9CicpQF2PwvUoLC5A5RdLfrHsKUCdNtBpA40uQHXaQKcNLChA9Islv1iiL0DptIFOG6AqQF8s+cWSTyxABDptoNPWLUBZ8oslv5AoQLSBThvoXC5AY8kvlvyCJ0Bdj8L1KOQuQEGnDXTauCpAqA102kAvL0ANdNpAp+0sQGPJL5b8Mi1APArXo3DNMEDNzMzMzIQvQMeSXyz5HTBAeHd3d3dHKUDrUbgehYMtQGPJL5b80ixAJb9Y8oslKkDXo3A9Ci8uQKRwPQrXgyhAQ6cNdNrQLkDE9Shcj7opQJ020GkDHS1AZ2ZmZmaWLUA9CtejcH0pQM3MzMzMPC5AyJJfLPltKECMJb9Y8psuQAvXo3A9SitAZMkvlvyCKkCbmZmZmVkuQGEs+cWSJyhAmZmZmZm5LkCtqqqqquooQBhLfrHkJy1AQArXo3BtLUDg3d3d3R0qQMD1KFyPui9AxZJfLPmNJ0BnA5020EkuQFnyiyW/8CpAw/UoXI9iK0CzgU4b6NQuQAAAAAAAwCdA8O7u7u5OLkCMJb9Y8kspQGAs+cWSHy1AiyW/WPLjLUDv7u7u7lYpQHyx5BdL7i1A4XoUrke5J0DotIFOGxguQGsDnTbQSSxAW4/C9SgUKkDAWPKLJd8uQAOdNtBpayhAgLHkF0u2L0APdNpAp+0qQJmZmZmZcStApHA9CtcTL0Bbj8L1KHwnQERERERE5C5AMTMzMzMbKUAPdNpAp50tQGTJL5b8Oi1A\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,1062]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA7QAAAAAAAsFJAAAAAAABAUkAAAAAAALBRQAAAAAAAIFJAAAAAAADgVEAAAAAAAKBUQAAAAAAAcFBAAAAAAACwUkAAAAAAABBWQAAAAAAA0FJAAAAAAACAVEAAAAAAAABTQAAAAAAAwFJAAAAAAACQUkAAAAAAAKBSQAAAAAAAEFZAAAAAAACgUkAAAAAAAEBSQAAAAAAAAFFAAAAAAADgU0AAAAAAACBWQAAAAAAA0FBAAAAAAABwUUAAAAAAAOBRQAAAAAAA8FJAAAAAAABAU0AAAAAAALBRQAAAAAAAAFNAAAAAAAAQUUAAAAAAAHBSQAAAAAAAkFJAAAAAAACQVEAAAAAAAGBUQAAAAAAAUFBAAAAAAACgUkAAAAAAAOBVQAAAAAAAEFNAAAAAAAAgVEAAAAAAAMBSQAAAAAAA8FJAAAAAAABQVEAAAAAAACBTQAAAAAAAAFZAAAAAAAAQU0AAAAAAAMBSQAAAAAAAkFBAAAAAAACQU0AAAAAAAOBVQAAAAAAAkFFAAAAAAACAU0AAAAAAAHBRQAAAAAAAAFNAAAAAAACwU0AAAAAAAGBSQAAAAAAAIFVAAAAAAADwUEAAAAAAACBSQAAAAAAAIFFAAAAAAADQU0AAAAAAAMBVQAAAAAAAIFFAAAAAAADAUUAAAAAAANBSQAAAAAAAUFRAAAAAAACAVEAAAAAAADBSQAAAAAAA8FNAAAAAAACgUEAAAAAAABBSQAAAAAAAsFJAAAAAAADwUkAAAAAAADBUQAAAAAAAMFFAAAAAAABgUUAAAAAAADBTQAAAAAAAkFRAAAAAAABwVEAAAAAAAOBQQAAAAAAAgFJAAAAAAADwUEAAAAAAAPBSQAAAAAAA0FNAAAAAAABAU0AAAAAAANBTQAAAAAAAcFBAAAAAAABAUkAAAAAAANBTQAAAAAAAQFRAAAAAAACQVEAAAAAAAPBQQAAAAAAAMFJAAAAAAAAgVUAAAAAAAHBSQAAAAAAAkFNAAAAAAACAUkAAAAAAAOBSQAAAAAAAkFBAAAAAAAAQUkAAAAAAACBTQAAAAAAAEFNAAAAAAABAVUAAAAAAAGBRQAAAAAAAkFFAAAAAAABgVEAAAAAAACBUQAAAAAAAYFRAAAAAAACgUkAAAAAAAKBSQAAAAAAAMFFAAAAAAAAAUkAAAAAAAGBTQAAAAAAAMFNAAAAAAAAAVEAAAAAAAIBRQAAAAAAAQFFAAAAAAAAQVEAAAAAAADBUQAAAAAAAcFRAAAAAAABQUUAAAAAAAOBSQAAAAAAAIFFAAAAAAACgUkAAAAAAAGBUQAAAAAAAcFNAAAAAAAAgVEAAAAAAABBQQAAAAAAAAFJAAAAAAAAAVEAAAAAAAFBUQAAAAAAAQFRAAAAAAABAUUAAAAAAAGBSQAAAAAAAYFVAAAAAAACwUkAAAAAAAEBUQAAAAAAAwFJAAAAAAACQUkAAAAAAAEBQQAAAAAAAIFJAAAAAAAAQVUAAAAAAAEBTQAAAAAAAkFRAAAAAAADgUEAAAAAAADBSQAAAAAAAUFVAAAAAAAAwU0AAAAAAAMBTQAAAAAAAoFJAAAAAAABAUkAAAAAAAPBRQAAAAAAAsFJAAAAAAABAVEAAAAAAAJBTQAAAAAAAwFJAAAAAAAAgUUAAAAAAAOBSQAAAAAAAAFVAAAAAAACQU0AAAAAAAABUQAAAAAAAYFBAAAAAAABgUkAAAAAAALBTQAAAAAAA8FJAAAAAAADAVEAAAAAAAMBSQAAAAAAAEFNAAAAAAAAQUUAAAAAAAOBSQAAAAAAA4FVAAAAAAACAUkAAAAAAAPBTQAAAAAAA0FBAAAAAAABgUkAAAAAAAPBUQAAAAAAAwFFAAAAAAAAQVUAAAAAAAHBSQAAAAAAAUFJAAAAAAAAwUUAAAAAAAGBTQAAAAAAAQFZAAAAAAACwUUAAAAAAAPBRQAAAAAAAYFBAAAAAAAAQU0AAAAAAAJBUQAAAAAAAwFFAAAAAAAAAUkAAAAAAADBSQAAAAAAAIFJAAAAAAAAQU0AAAAAAAOBSQAAAAAAAEFZAAAAAAAAgUkAAAAAAAOBRQAAAAAAAIFJAAAAAAACwU0AAAAAAAABVQAAAAAAA0FFAAAAAAABAUkAAAAAAAGBRQAAAAAAAsFNAAAAAAAAQU0AAAAAAADBTQAAAAAAAYFVAAAAAAADAUEAAAAAAAOBRQAAAAAAAQFJAAAAAAACwU0AAAAAAAFBVQAAAAAAAAFFAAAAAAADAUUAAAAAAABBRQAAAAAAAsFNAAAAAAACQVEAAAAAAAJBRQAAAAAAAUFVAAAAAAADgUEAAAAAAACBSQAAAAAAAYFNAAAAAAACwU0AAAAAAANBUQAAAAAAAIFFAAAAAAADgUUAAAAAAABBUQAAAAAAAwFNAAAAAAABQVEAAAAAAAJBRQAAAAAAAsFFAAAAAAACAVEAAAAAAACBSQAAAAAAAgFNAAAAAAABAU0AAAAAAADBTQAAAAAAAAFFAAAAAAADQUUAAAAAAABBVQAAAAAAA4FNAAAAAAAAwU0AAAAAAAMBQQAAAAAAAUFJAAAAAAADgVEAAAAAAAPBSQAAAAAAAQFRAAAAAAABwU0AAAAAAAIBSQAAAAAAAwFFAAAAAAADAUUAAAAAAAIBVQAAAAAAAUFNAAAAAAADAUkAAAAAAAKBQQAAAAAAA8FJAAAAAAABAVUAAAAAAAJBSQAAAAAAAwFNAAAAAAABgUkAAAAAAAJBSQAAAAAAAgFJAAAAAAAAAU0AAAAAAAFBWQAAAAAAAwFJAAAAAAABgUkAAAAAAAOBQQAAAAAAAMFNAAAAAAABwVUAAAAAAACBRQAAAAAAAYFNAAAAAAAAQUUAAAAAAAMBTQAAAAAAAcFNAAAAAAAAwU0AAAAAAAKBVQAAAAAAA4FBAAAAAAAAgUkAAAAAAAEBRQAAAAAAAcFNAAAAAAABQVUAAAAAAACBRQAAAAAAAcFFAAAAAAADAUkAAAAAAACBUQAAAAAAAYFRAAAAAAACQUUAAAAAAAHBSQAAAAAAAIFFAAAAAAAAwUkAAAAAAAKBSQAAAAAAAIFNAAAAAAADQU0AAAAAAAOBQQAAAAAAAYFFAAAAAAADgUkAAAAAAAIBUQAAAAAAAwFRAAAAAAACgUEAAAAAAAKBRQAAAAAAAAFNAAAAAAACwU0AAAAAAAPBSQAAAAAAAQFNAAAAAAADQU0AAAAAAAIBQQAAAAAAAAFJAAAAAAADgU0AAAAAAAEBUQAAAAAAA4FNAAAAAAAAwUEAAAAAAAABSQAAAAAAAIFZAAAAAAACAU0AAAAAAAEBTQAAAAAAAoFJAAAAAAAAAU0AAAAAAAJBRQAAAAAAAwFJAAAAAAAAAVUAAAAAAABBUQAAAAAAAQFNAAAAAAACAUEAAAAAAAJBSQAAAAAAAMFZAAAAAAADAUkAAAAAAAGBTQAAAAAAAoFFAAAAAAACgUkAAAAAAANBTQAAAAAAAsFJAAAAAAAAwVkAAAAAAACBTQAAAAAAA8FJAAAAAAAAwUEAAAAAAAJBSQAAAAAAAUFZAAAAAAACQUkAAAAAAAABSQAAAAAAAsFBAAAAAAAAQU0AAAAAAAABVQAAAAAAAgFJAAAAAAACAVEAAAAAAAMBTQAAAAAAAUFJAAAAAAACAUkAAAAAAAPBSQAAAAAAAQFZAAAAAAAAwU0AAAAAAAJBSQAAAAAAAUFBAAAAAAADAUkAAAAAAACBWQAAAAAAAAFJAAAAAAADwUUAAAAAAAOBSQAAAAAAAcFJAAAAAAADwU0AAAAAAAOBSQAAAAAAAYFZAAAAAAACgUkAAAAAAADBTQAAAAAAAkFBAAAAAAABQUkAAAAAAALBWQAAAAAAA0FJAAAAAAABwUkAAAAAAAJBQQAAAAAAAQFNAAAAAAACwU0AAAAAAAJBSQAAAAAAAQFVAAAAAAABgU0AAAAAAAJBSQAAAAAAAkFJAAAAAAAAQUkAAAAAAAIBWQAAAAAAAUFJAAAAAAABgUkAAAAAAAHBQQAAAAAAA8FJAAAAAAADAVUAAAAAAANBSQAAAAAAAMFVAAAAAAABQUkAAAAAAALBSQAAAAAAAcFJAAAAAAADAUkAAAAAAAFBWQAAAAAAAEFNAAAAAAADAUkAAAAAAAGBQQAAAAAAAoFJAAAAAAAAAVkAAAAAAAMBRQAAAAAAAcFNAAAAAAAAAU0AAAAAAAFBSQAAAAAAA4FNAAAAAAADgUkAAAAAAAOBVQAAAAAAAoFJAAAAAAADgUkAAAAAAAFBQQAAAAAAAQFJAAAAAAAAgVkAAAAAAAFBSQAAAAAAAQFJAAAAAAADQUEAAAAAAALBSQAAAAAAAgFNAAAAAAADQUkAAAAAAAKBUQAAAAAAA0FNAAAAAAADgUkAAAAAAACBSQAAAAAAAAFJAAAAAAAAwVUAAAAAAABBUQAAAAAAAMFNAAAAAAAAwUEAAAAAAABBSQAAAAAAAoFVAAAAAAABwU0AAAAAAANBSQAAAAAAAQFJAAAAAAABQUkAAAAAAANBRQAAAAAAA4FFAAAAAAADwUkAAAAAAAPBTQAAAAAAA0FVAAAAAAABAUUAAAAAAAIBRQAAAAAAAIFJAAAAAAABQVEAAAAAAAIBVQAAAAAAAoFBAAAAAAAAgU0AAAAAAAIBRQAAAAAAAsFJAAAAAAAAgVEAAAAAAAMBSQAAAAAAAwFVAAAAAAABQU0AAAAAAAMBSQAAAAAAAUFBAAAAAAABwUkAAAAAAAOBVQAAAAAAAsFJAAAAAAACAU0AAAAAAAKBSQAAAAAAAMFJAAAAAAABgUkAAAAAAAABSQAAAAAAAMFNAAAAAAAAQVEAAAAAAANBVQAAAAAAA4FBAAAAAAABwUUAAAAAAAOBSQAAAAAAAUFRAAAAAAAAQVUAAAAAAAIBQQAAAAAAA8FJAAAAAAACAUUAAAAAAAJBSQAAAAAAA8FNAAAAAAABwUkAAAAAAAABWQAAAAAAA4FJAAAAAAAAAU0AAAAAAAEBQQAAAAAAAIFJAAAAAAACQVUAAAAAAAMBTQAAAAAAAUFNAAAAAAABAUEAAAAAAAEBSQAAAAAAA4FJAAAAAAACwUkAAAAAAAPBSQAAAAAAA8FFAAAAAAABQVUAAAAAAACBRQAAAAAAAAFJAAAAAAACQUEAAAAAAAJBSQAAAAAAAcFZAAAAAAACwUkAAAAAAAHBSQAAAAAAAgFBAAAAAAACQUkAAAAAAAPBUQAAAAAAA8FJAAAAAAACgU0AAAAAAACBSQAAAAAAAEFRAAAAAAADwUEAAAAAAAIBRQAAAAAAA0FFAAAAAAACgU0AAAAAAAABWQAAAAAAAoFFAAAAAAADAUUAAAAAAAMBQQAAAAAAAwFJAAAAAAABgVUAAAAAAAPBSQAAAAAAA8FNAAAAAAABgUkAAAAAAAOBTQAAAAAAAMFFAAAAAAACQUUAAAAAAAEBRQAAAAAAAAFNAAAAAAAAgVkAAAAAAAHBSQAAAAAAA8FFAAAAAAACQUEAAAAAAANBRQAAAAAAAQFFAAAAAAABwUkAAAAAAAOBSQAAAAAAAQFJAAAAAAACgVUAAAAAAAMBSQAAAAAAAoFJAAAAAAABAUEAAAAAAAKBRQAAAAAAAQFRAAAAAAADAU0AAAAAAACBVQAAAAAAAEFFAAAAAAAAwU0AAAAAAAHBSQAAAAAAAQFJAAAAAAACQU0AAAAAAAKBRQAAAAAAAYFJAAAAAAADwUkAAAAAAAEBWQAAAAAAAkFJAAAAAAACgUkAAAAAAAGBQQAAAAAAAYFFAAAAAAADQU0AAAAAAAKBSQAAAAAAAcFVAAAAAAACwUkAAAAAAAKBTQAAAAAAAIFJAAAAAAABwVEAAAAAAADBRQAAAAAAAsFJAAAAAAAAgUEAAAAAAAOBQQAAAAAAAkFJAAAAAAABQU0AAAAAAAHBWQAAAAAAAUFJAAAAAAAAwUkAAAAAAAPBQQAAAAAAAMFJAAAAAAAAgUUAAAAAAALBSQAAAAAAAYFJAAAAAAABQUkAAAAAAAABWQAAAAAAAUFNAAAAAAADgUkAAAAAAADBQQAAAAAAAsFFAAAAAAABAVUAAAAAAABBUQAAAAAAAkFNAAAAAAADgUEAAAAAAANBRQAAAAAAAIFFAAAAAAADAUkAAAAAAACBSQAAAAAAAkFJAAAAAAACgVkAAAAAAAOBRQAAAAAAA4FFAAAAAAACAUUAAAAAAAJBTQAAAAAAAMFZAAAAAAAAAUkAAAAAAAHBTQAAAAAAAEFJAAAAAAACwUkAAAAAAAKBSQAAAAAAAQFJAAAAAAADgVUAAAAAAACBTQAAAAAAA8FJAAAAAAACAUEAAAAAAAHBSQAAAAAAAMFZAAAAAAACQUkAAAAAAABBSQAAAAAAA4FFAAAAAAADQUkAAAAAAAHBUQAAAAAAAoFJAAAAAAADQVEAAAAAAAEBTQAAAAAAAwFJAAAAAAABwUEAAAAAAACBSQAAAAAAAAFZAAAAAAAAAU0AAAAAAAGBSQAAAAAAAEFFAAAAAAACQU0AAAAAAAGBWQAAAAAAAUFJAAAAAAACgU0AAAAAAADBSQAAAAAAA8FJAAAAAAACQUkAAAAAAAGBSQAAAAAAA8FVA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,1062]},{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAAAEUAAAAAAAAASQAAAAAAAABVAAAAAAAAA8D8AAAAAAADgPwAAAAAAAAAAAAAAAAAAAAAAAAAAAIBDQAAAAAAAwFZAAAAAAADgV0AAAAAAAGBWQAAAAAAAoFdAAAAAAAAAWUAAAAAAAPBWQAAAAAAA8FZAAAAAAACgV0AAAAAAAFBYQAAAAAAAwFdAAAAAAACwV0AAAAAAAMBXQAAAAAAAgFdAAAAAAABgV0AAAAAAANBXQAAAAAAAIFhAAAAAAAAAWEAAAAAAAHBWQAAAAAAAwFZAAAAAAADAWEAAAAAAAIBXQAAAAAAAEFdAAAAAAACAVkAAAAAAAGBXQAAAAAAAoFdAAAAAAADgVkAAAAAAAPBXQAAAAAAAQFZAAAAAAADAVkAAAAAAAPBWQAAAAAAAwFdAAAAAAAAAWUAAAAAAAOBWQAAAAAAA4FZAAAAAAACgV0AAAAAAAFBYQAAAAAAA8FdAAAAAAACwV0AAAAAAAPBXQAAAAAAAEFdAAAAAAADgV0AAAAAAADBYQAAAAAAAMFhAAAAAAADgV0AAAAAAAGBWQAAAAAAA4FZAAAAAAABgWEAAAAAAALBXQAAAAAAAUFdAAAAAAADwVkAAAAAAAOBWQAAAAAAAoFdAAAAAAABQV0AAAAAAAPBXQAAAAAAAIFdAAAAAAAAwV0AAAAAAAABXQAAAAAAAMFdAAAAAAABgWEAAAAAAAKBXQAAAAAAAUFdAAAAAAABgVkAAAAAAANBXQAAAAAAA8FhAAAAAAAAwV0AAAAAAAABYQAAAAAAA0FZAAAAAAAAgV0AAAAAAABBXQAAAAAAAEFdAAAAAAACAWEAAAAAAANBWQAAAAAAAgFdAAAAAAABgVkAAAAAAAPBXQAAAAAAA4FhAAAAAAAAQV0AAAAAAANBWQAAAAAAA4FZAAAAAAABQV0AAAAAAAKBXQAAAAAAAYFdAAAAAAABwWEAAAAAAANBWQAAAAAAA4FZAAAAAAABgV0AAAAAAAABYQAAAAAAA4FhAAAAAAADwVkAAAAAAAMBWQAAAAAAAcFdAAAAAAABAWEAAAAAAALBXQAAAAAAAUFdAAAAAAADwV0AAAAAAAHBWQAAAAAAA4FZAAAAAAAAQV0AAAAAAAMBXQAAAAAAAgFhAAAAAAABwV0AAAAAAAGBXQAAAAAAAkFZAAAAAAAAAWEAAAAAAAKBYQAAAAAAAEFdAAAAAAADwV0AAAAAAAGBWQAAAAAAAgFdAAAAAAAAQV0AAAAAAAJBXQAAAAAAAgFhAAAAAAADQVkAAAAAAAIBXQAAAAAAAgFZAAAAAAADwV0AAAAAAALBYQAAAAAAAIFdAAAAAAAAQV0AAAAAAAIBWQAAAAAAAYFdAAAAAAACwV0AAAAAAAIBXQAAAAAAAgFhAAAAAAADwVkAAAAAAANBWQAAAAAAAQFdAAAAAAADwV0AAAAAAAMBYQAAAAAAAEFdAAAAAAAAAV0AAAAAAAMBXQAAAAAAAgFhAAAAAAACwV0AAAAAAAMBXQAAAAAAA8FdAAAAAAADwVkAAAAAAAOBWQAAAAAAAYFdAAAAAAADgV0AAAAAAADBYQAAAAAAAEFdAAAAAAADgVkAAAAAAAKBXQAAAAAAAcFhAAAAAAAAAWEAAAAAAAOBWQAAAAAAA8FdAAAAAAACQVkAAAAAAAFBXQAAAAAAAkFdAAAAAAADgV0AAAAAAAIBYQAAAAAAAQFZAAAAAAAAQV0AAAAAAACBYQAAAAAAAIFhAAAAAAADwV0AAAAAAABBXQAAAAAAA0FZAAAAAAADAV0AAAAAAANBXQAAAAAAAsFdAAAAAAADQV0AAAAAAAPBXQAAAAAAAYFZAAAAAAAAQV0AAAAAAACBYQAAAAAAAEFhAAAAAAABQV0AAAAAAABBXQAAAAAAAAFdAAAAAAADAV0AAAAAAAKBXQAAAAAAA8FdAAAAAAADAV0AAAAAAAPBXQAAAAAAAAFdAAAAAAAAwV0AAAAAAAFBYQAAAAAAAQFhAAAAAAACAV0AAAAAAANBWQAAAAAAA0FZAAAAAAABAWEAAAAAAAEBXQAAAAAAAoFdAAAAAAABAVkAAAAAAAFBXQAAAAAAAEFdAAAAAAACAV0AAAAAAAIBYQAAAAAAAMFhAAAAAAABgV0AAAAAAAHBWQAAAAAAAYFdAAAAAAACgWEAAAAAAAEBXQAAAAAAAsFdAAAAAAABwVkAAAAAAACBXQAAAAAAAYFhAAAAAAABwV0AAAAAAAHBYQAAAAAAAoFdAAAAAAACwVkAAAAAAAHBWQAAAAAAAMFdAAAAAAADAWEAAAAAAAABXQAAAAAAAMFdAAAAAAADQVkAAAAAAAOBWQAAAAAAAUFhAAAAAAABAV0AAAAAAAGBXQAAAAAAAsFdAAAAAAADAVkAAAAAAAABXQAAAAAAAYFdAAAAAAACwWEAAAAAAAABXQAAAAAAAIFdAAAAAAAAQV0AAAAAAAEBYQAAAAAAAgFhAAAAAAAAQV0AAAAAAAIBXQAAAAAAA4FZAAAAAAAAAWEAAAAAAADBXQAAAAAAAYFdAAAAAAABgWEAAAAAAAHBWQAAAAAAAAFdAAAAAAAAQV0AAAAAAAIBYQAAAAAAAgFhAAAAAAACQVkAAAAAAAABXQAAAAAAAsFdAAAAAAAAQWEAAAAAAAMBXQAAAAAAA0FdAAAAAAAAwWEAAAAAAAHBWQAAAAAAAcFdAAAAAAAAQV0AAAAAAAFBYQAAAAAAAYFhAAAAAAABwVkAAAAAAAPBWQAAAAAAAYFhAAAAAAABAWEAAAAAAALBXQAAAAAAAEFdAAAAAAABwV0AAAAAAAMBWQAAAAAAAgFdAAAAAAAAwWEAAAAAAAOBXQAAAAAAAYFdAAAAAAABwVkAAAAAAABBXQAAAAAAAUFhAAAAAAACQV0AAAAAAAHBXQAAAAAAAAFdAAAAAAADwVkAAAAAAAFBYQAAAAAAAQFdAAAAAAACAWEAAAAAAAKBXQAAAAAAAAFdAAAAAAAAAV0AAAAAAAFBXQAAAAAAAYFhAAAAAAABAV0AAAAAAAIBXQAAAAAAAYFZAAAAAAACQV0AAAAAAAABZQAAAAAAAIFdAAAAAAACAV0AAAAAAAGBWQAAAAAAAAFdAAAAAAAAAV0AAAAAAAEBXQAAAAAAAgFhAAAAAAACAVkAAAAAAAIBXQAAAAAAAUFZAAAAAAACgV0AAAAAAAPBYQAAAAAAAAFdAAAAAAAAAV0AAAAAAAPBWQAAAAAAAAFhAAAAAAABQWEAAAAAAABBXQAAAAAAAgFhAAAAAAACgVkAAAAAAACBXQAAAAAAAMFdAAAAAAAAQWEAAAAAAAMBYQAAAAAAAwFZAAAAAAAAAV0AAAAAAAHBXQAAAAAAAcFhAAAAAAADgV0AAAAAAAABXQAAAAAAAAFhAAAAAAABQVkAAAAAAAIBXQAAAAAAAoFdAAAAAAACAWEAAAAAAAIBYQAAAAAAAgFZAAAAAAAAAV0AAAAAAACBYQAAAAAAAIFhAAAAAAACgV0AAAAAAAABXQAAAAAAAgFdAAAAAAADwVkAAAAAAAOBXQAAAAAAA0FdAAAAAAABQWEAAAAAAAKBXQAAAAAAAIFZAAAAAAAAAV0AAAAAAAABYQAAAAAAAMFhAAAAAAADAV0AAAAAAAEBWQAAAAAAAAFdAAAAAAABQWEAAAAAAABBYQAAAAAAAQFdAAAAAAACgV0AAAAAAAGBYQAAAAAAAkFZAAAAAAACAV0AAAAAAABBYQAAAAAAAcFhAAAAAAAAAWEAAAAAAAFBWQAAAAAAAAFdAAAAAAABQWEAAAAAAAABYQAAAAAAAgFdAAAAAAABAVkAAAAAAAABYQAAAAAAAEFdAAAAAAACgV0AAAAAAAPBXQAAAAAAAUFhAAAAAAABwV0AAAAAAAFBWQAAAAAAA8FZAAAAAAADgV0AAAAAAAHBYQAAAAAAA4FdAAAAAAABAVkAAAAAAAABXQAAAAAAAUFhAAAAAAAAAWEAAAAAAALBXQAAAAAAAwFdAAAAAAAAAWEAAAAAAALBWQAAAAAAAgFdAAAAAAACwV0AAAAAAAFBYQAAAAAAAAFhAAAAAAABAVkAAAAAAALBWQAAAAAAAUFhAAAAAAACwV0AAAAAAAOBXQAAAAAAAsFdAAAAAAACgV0AAAAAAAMBWQAAAAAAAgFdAAAAAAADwV0AAAAAAAHBYQAAAAAAA8FdAAAAAAABAVkAAAAAAANBWQAAAAAAAEFhAAAAAAADgV0AAAAAAAKBXQAAAAAAAAFdAAAAAAAAAWEAAAAAAADBXQAAAAAAA0FdAAAAAAAAgWEAAAAAAAGBYQAAAAAAAgFdAAAAAAABgVkAAAAAAAMBWQAAAAAAA8FdAAAAAAAAgWEAAAAAAAPBXQAAAAAAAUFZAAAAAAAAAV0AAAAAAAKBXQAAAAAAAAFhAAAAAAACQV0AAAAAAAMBXQAAAAAAAcFhAAAAAAACAVkAAAAAAAIBXQAAAAAAAYFdAAAAAAAAwWEAAAAAAADBYQAAAAAAAMFZAAAAAAAAAV0AAAAAAAIBXQAAAAAAAgFhAAAAAAADQV0AAAAAAAIBWQAAAAAAAAFhAAAAAAABAVkAAAAAAAIBXQAAAAAAA4FZAAAAAAABgV0AAAAAAAOBYQAAAAAAAgFdAAAAAAABQV0AAAAAAAEBWQAAAAAAAoFdAAAAAAADwWEAAAAAAAEBXQAAAAAAAAFdAAAAAAADwVkAAAAAAABBXQAAAAAAAkFdAAAAAAACgV0AAAAAAANBXQAAAAAAAIFhAAAAAAAAAWEAAAAAAADBWQAAAAAAAAFdAAAAAAACwV0AAAAAAAEBYQAAAAAAAAFhAAAAAAADgVkAAAAAAAOBXQAAAAAAAUFZAAAAAAACwV0AAAAAAABBXQAAAAAAAgFdAAAAAAADwWEAAAAAAAIBXQAAAAAAAIFdAAAAAAABwVkAAAAAAANBXQAAAAAAAAFlAAAAAAAAwV0AAAAAAAPBWQAAAAAAA8FZAAAAAAAAAV0AAAAAAALBXQAAAAAAAgFdAAAAAAADwV0AAAAAAAFBYQAAAAAAAsFdAAAAAAABgVkAAAAAAAABXQAAAAAAAoFdAAAAAAABwWEAAAAAAAEBYQAAAAAAAcFZAAAAAAAAAV0AAAAAAANBWQAAAAAAA0FdAAAAAAACgV0AAAAAAAPBWQAAAAAAAAFhAAAAAAABgV0AAAAAAAFBXQAAAAAAAQFZAAAAAAAAAV0AAAAAAACBYQAAAAAAAUFhAAAAAAAAAWEAAAAAAAEBWQAAAAAAAAFdAAAAAAAAAWEAAAAAAACBYQAAAAAAAsFdAAAAAAABQV0AAAAAAAPBXQAAAAAAA4FZAAAAAAAAwV0AAAAAAAHBWQAAAAAAAgFdAAAAAAADQWEAAAAAAALBXQAAAAAAAgFdAAAAAAACAVkAAAAAAAABXQAAAAAAAUFhAAAAAAABAWEAAAAAAANBXQAAAAAAAgFdAAAAAAAAAWEAAAAAAAMBWQAAAAAAAIFdAAAAAAABQVkAAAAAAACBXQAAAAAAAkFhAAAAAAADgV0AAAAAAAOBXQAAAAAAAYFZAAAAAAAAAV0AAAAAAACBXQAAAAAAAgFdAAAAAAACwV0AAAAAAAOBWQAAAAAAAYFhAAAAAAACgV0AAAAAAAABYQAAAAAAAgFZAAAAAAAAAV0AAAAAAAJBXQAAAAAAAAFhAAAAAAADgWEAAAAAAADBXQAAAAAAAkFdAAAAAAAAgV0AAAAAAAIBXQAAAAAAAQFdAAAAAAAAAWEAAAAAAABBXQAAAAAAAYFdAAAAAAACQWEAAAAAAABBYQAAAAAAAAFhAAAAAAACAVkAAAAAAAABXQAAAAAAAUFdAAAAAAAAAWEAAAAAAAGBYQAAAAAAA4FdAAAAAAADQV0AAAAAAAHBXQAAAAAAA0FdAAAAAAABAV0AAAAAAAIBXQAAAAAAAgFZAAAAAAAAAV0AAAAAAAPBWQAAAAAAAsFdAAAAAAADgWEAAAAAAAABYQAAAAAAA4FdAAAAAAABwVkAAAAAAAIBXQAAAAAAA4FZAAAAAAABQV0AAAAAAAKBXQAAAAAAAUFdAAAAAAAAQWEAAAAAAAEBYQAAAAAAAIFhAAAAAAABgVkAAAAAAALBWQAAAAAAAYFdAAAAAAABwWEAAAAAAAIBYQAAAAAAAwFZAAAAAAACAV0AAAAAAAJBWQAAAAAAAQFdAAAAAAACwV0AAAAAAAABXQAAAAAAAMFhAAAAAAAAgWEAAAAAAALBXQAAAAAAAcFZAAAAAAABgV0AAAAAAAKBYQAAAAAAAoFdAAAAAAADAV0AAAAAAABBXQAAAAAAAYFdAAAAAAACgV0AAAAAAAIBXQAAAAAAA0FdAAAAAAABgWEAAAAAAAABYQAAAAAAAYFZAAAAAAAAAV0AAAAAAAPBXQAAAAAAAUFhAAAAAAADQV0AAAAAAAGBWQAAAAAAAUFdAAAAAAAAAWEAAAAAAAABYQAAAAAAA4FdAAAAAAADAV0AAAAAAAABYQAAAAAAAAFdAAAAAAAAAV0AAAAAAAMBXQAAAAAAAUFhAAAAAAAAAWEAAAAAAAGBWQAAAAAAAAFdAAAAAAABwWEAAAAAAAOBXQAAAAAAA8FdAAAAAAAAQV0AAAAAAAIBXQAAAAAAAoFdAAAAAAACAV0AAAAAAAMBXQAAAAAAAQFhA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,1062]},{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,1062]},{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[1,1062]}],\"metric\":[\"GPUMemoryUtilization_total_algo-1\",\"GPUUtilization_total_algo-1\",\"I/OWaitPercentage_total_algo-1\",\"CPUUtilization_total_algo-1\",\"GPUMemoryUtilization_total_node_total\",\"GPUUtilization_total_node_total\",\"I/OWaitPercentage_total_node_total\",\"CPUUtilization_total_node_total\"],\"x\":[0,0,0,0,0,0,0,0],\"y\":[0,1,2,3,4,5,6,7]},\"selected\":{\"id\":\"19601\"},\"selection_policy\":{\"id\":\"19600\"}},\"id\":\"18276\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"18258\",\"type\":\"BasicTicker\"},{\"attributes\":{\"tools\":[{\"id\":\"18265\"},{\"id\":\"18266\"},{\"id\":\"18267\"},{\"id\":\"18268\"},{\"id\":\"18274\"}]},\"id\":\"18269\",\"type\":\"Toolbar\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"19595\"},\"group\":null,\"major_label_overrides\":{\"1\":\"GPUMemoryUtilization_total_algo-1\",\"2\":\"GPUUtilization_total_algo-1\",\"3\":\"I/OWaitPercentage_total_algo-1\",\"4\":\"CPUUtilization_total_algo-1\",\"5\":\"GPUMemoryUtilization_total_node_total\",\"6\":\"GPUUtilization_total_node_total\",\"7\":\"I/OWaitPercentage_total_node_total\",\"8\":\"\"},\"major_label_policy\":{\"id\":\"19596\"},\"major_label_text_font_size\":\"7pt\",\"ticker\":{\"id\":\"18282\"}},\"id\":\"18261\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"18255\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"19601\",\"type\":\"Selection\"},{\"attributes\":{\"axis\":{\"id\":\"18257\"},\"coordinates\":null,\"group\":null,\"ticker\":null,\"visible\":false},\"id\":\"18260\",\"type\":\"Grid\"},{\"attributes\":{\"end\":8},\"id\":\"18251\",\"type\":\"Range1d\"}],\"root_ids\":[\"18248\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.1\"}};\n", " const render_items = [{\"docid\":\"9e7f27a7-49df-4840-b9c0-be8440b79831\",\"notebook_comms_target\":\"19602\",\"root_ids\":[\"18248\"],\"roots\":{\"18248\":\"f9760520-5ce9-4b3b-82ab-f7c1b4bf1e41\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "18248" } }, "output_type": "display_data" } ], "source": [ "from smdebug.profiler.analysis.notebook_utils.heatmap import Heatmap\n", "\n", "view_heatmap = Heatmap(\n", " system_metrics_reader,\n", "# framework_metrics_reader, # can add back in\n", " select_dimensions=[\"CPU\", \"GPU\", \"I/O\"], # optional\n", " select_events=[\"total\"], # optional\n", " plot_height=450\n", ")" ] }, { "cell_type": "markdown", "id": "c96033c5", "metadata": {}, "source": [ "## Access system level metrics\n", "\n", "We can look at our system level metrics in depth by using our system metric reader and pulling the data." ] }, { "cell_type": "code", "execution_count": 26, "id": "184116e7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Found 119061 recorded system metric events. Latest recorded event: 2021-11-24 00:17:00\n" ] } ], "source": [ "# get system metrics\n", "\n", "system_metrics_reader.refresh_event_file_list()\n", "last_timestamp = system_metrics_reader.get_timestamp_of_latest_available_file()\n", "events = system_metrics_reader.get_events(0, last_timestamp) \n", "\n", "print(\"Found\", len(events), \"recorded system metric events. Latest recorded event:\", \n", " timestamp_to_utc(last_timestamp/1000000))" ] }, { "cell_type": "markdown", "id": "9e97d9d3", "metadata": {}, "source": [ "### Create system level metric dataframe\n", "\n", "We can create a dataframe with all of our system metrics for further exploration." ] }, { "cell_type": "code", "execution_count": 27, "id": "9fdfb8b8", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
dimensionnamenode_idtimestamptypevalue
0GPUMemoryUtilizationgpu2algo-11.637712e+09gpu0.0
1GPUUtilizationgpu0algo-11.637712e+09gpu0.0
2GPUMemoryUtilizationgpu0algo-11.637712e+09gpu0.0
3GPUUtilizationgpu1algo-11.637712e+09gpu0.0
4GPUMemoryUtilizationgpu1algo-11.637712e+09gpu0.0
\n", "
" ], "text/plain": [ " dimension name node_id timestamp type value\n", "0 GPUMemoryUtilization gpu2 algo-1 1.637712e+09 gpu 0.0\n", "1 GPUUtilization gpu0 algo-1 1.637712e+09 gpu 0.0\n", "2 GPUMemoryUtilization gpu0 algo-1 1.637712e+09 gpu 0.0\n", "3 GPUUtilization gpu1 algo-1 1.637712e+09 gpu 0.0\n", "4 GPUMemoryUtilization gpu1 algo-1 1.637712e+09 gpu 0.0" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dimensions = []\n", "names = []\n", "node_ids = []\n", "timestamps = []\n", "types = []\n", "values = []\n", "for event in events:\n", " dimensions.append(event.dimension)\n", " names.append(event.name)\n", " node_ids.append(event.node_id)\n", " timestamps.append(event.timestamp)\n", " types.append(event.type)\n", " values.append(event.value)\n", " \n", "system_df = pd.DataFrame.from_dict({\n", " \"dimension\":dimensions,\n", " \"name\":names,\n", " \"node_id\":node_ids,\n", " \"timestamp\":timestamps,\n", " \"type\":types,\n", " \"value\":values\n", "})\n", "\n", "system_df.head()" ] }, { "cell_type": "code", "execution_count": 28, "id": "5ada6365", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
timestampvalue
dimension
6.965191e+124.851225e+14
Algorithm3.478501e+122.308690e+03
CPUUtilization8.356264e+135.236855e+05
GPUMemoryUtilization6.970104e+121.891350e+05
GPUUtilization6.970104e+122.348290e+05
I/OWaitPercentage8.356264e+133.419810e+04
Platform3.478501e+121.116142e+10
\n", "
" ], "text/plain": [ " timestamp value\n", "dimension \n", " 6.965191e+12 4.851225e+14\n", "Algorithm 3.478501e+12 2.308690e+03\n", "CPUUtilization 8.356264e+13 5.236855e+05\n", "GPUMemoryUtilization 6.970104e+12 1.891350e+05\n", "GPUUtilization 6.970104e+12 2.348290e+05\n", "I/OWaitPercentage 8.356264e+13 3.419810e+04\n", "Platform 3.478501e+12 1.116142e+10" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "system_df.groupby(by='dimension').sum()" ] }, { "cell_type": "markdown", "id": "9e50fd6e", "metadata": {}, "source": [ "## View rule output\n", "\n", "Profiler also generates a html and iPython notebook that goes over the different rules your job triggered. These rules give you hints about where your job could improve." ] }, { "cell_type": "code", "execution_count": null, "id": "c501d6df", "metadata": {}, "outputs": [], "source": [ "rule_output_path = f\"s3://{bucket}/{prefix_output}/{training_job_name}/rule-output\"\n", "print(f\"You will find the profiler report in {rule_output_path}\")\n", "\n", "!aws s3 cp --recursive {rule_output_path} ." ] }, { "cell_type": "markdown", "id": "ec8b7b12", "metadata": {}, "source": [ "## Get experiment results\n", "\n", "Once our training job is complete, we want to evaluate the results of our training run. An easy way to do so is by using SageMaker Experiments. In addition to the UI in SageMaker Studio, SageMaker Experiments allows users to import their results as a dataframe so they can easily evaluate their training runs. The code below will associate our trial with our experiment we created above." ] }, { "cell_type": "code", "execution_count": 34, "id": "d3975575", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Found 1 trial components.\n", "Associating trial component 3dssd-pytorch-ml-g4dn-12xlarge-2021-11-23-23-56-46-899-aws-training-job with trial mm3d-demo-training-job-1637711804.\n" ] } ], "source": [ "from datetime import timezone\n", "from smexperiments.search_expression import Filter, Operator, SearchExpression\n", "\n", "# get the trial components derived from the training jobs\n", "\n", "creation_time = estimator.latest_training_job.describe()['CreationTime'] #most_recently_created_tuning_job[\"CreationTime\"]\n", "creation_time = creation_time.astimezone(timezone.utc)\n", "creation_time = creation_time.strftime(\"%Y-%m-%dT%H:%M:%SZ\")\n", "\n", "created_after_filter = Filter(\n", " name=\"CreationTime\",\n", " operator=Operator.GREATER_THAN_OR_EQUAL,\n", " value=str(creation_time),\n", ")\n", "\n", "# the training job names contain the tuning job name (and the training job name is in the source arn)\n", "source_arn_filter = Filter(\n", " name=\"TrialComponentName\", operator=Operator.CONTAINS, value=training_job_name\n", ")\n", "source_type_filter = Filter(\n", " name=\"Source.SourceType\", operator=Operator.EQUALS, value=\"SageMakerTrainingJob\"\n", ")\n", "\n", "search_expression = SearchExpression(\n", " filters=[created_after_filter, source_arn_filter, source_type_filter]\n", ")\n", "\n", "# search iterates over every page of results by default\n", "trial_component_search_results = list(\n", " TrialComponent.search(search_expression=search_expression, sagemaker_boto_client=sm)\n", ")\n", "print(f\"Found {len(trial_component_search_results)} trial components.\")\n", "trial_component_search_results\n", "\n", "# associate the trial components with the trial\n", "for tc in trial_component_search_results:\n", " print(f\"Associating trial component {tc.trial_component_name} with trial {mm3d_trial.trial_name}.\")\n", " mm3d_trial.add_trial_component(tc.trial_component_name)\n", " # sleep to avoid throttling\n", " time.sleep(0.5)" ] }, { "cell_type": "markdown", "id": "81c91ff2", "metadata": {}, "source": [ "### View experiments DataFrame\n", "\n", "Once we have associated our experiment trials, we can import them as a DataFrame. We can incorporate search expressions to narrow down training runs with specific attributes and sort our trials by specified metrics. The experiments will track all of your set hyperparameters, making it easier to evaluate the effects of changing them. " ] }, { "cell_type": "code", "execution_count": 35, "id": "6a881be7", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TrialComponentNameDisplayNameSourceArnSageMaker.ImageUriSageMaker.InstanceCountSageMaker.InstanceTypeSageMaker.VolumeSizeInGBbatch-sizeconfigdistributed...lr - Lastlr - Counttrain - MediaTypetrain - ValueSageMaker.DebugHookOutput - MediaTypeSageMaker.DebugHookOutput - ValueSageMaker.ModelArtifact - MediaTypeSageMaker.ModelArtifact - ValueTrialsExperiments
03dssd-pytorch-ml-g4dn-12xlarge-2021-11-23-23-5...Training-ml-g4dn-12xlargearn:aws:sagemaker:us-east-1:427894311213:train...427894311213.dkr.ecr.us-east-1.amazonaws.com/m...1.0ml.g4dn.12xlarge300.06.0\"/mmdetection3d/configs/3dssd/3dssd_4x4_a2d2-3...1.0...2.030None/qqq4tbmv/a2d2Nones3://sagemaker-us-east-1-427894311213/training...Nones3://sagemaker-us-east-1-427894311213/training...[mm3d-demo-training-job-1637711804][mm3d-a2d2-demo-1637711766]
\n", "

1 rows × 48 columns

\n", "
" ], "text/plain": [ " TrialComponentName \\\n", "0 3dssd-pytorch-ml-g4dn-12xlarge-2021-11-23-23-5... \n", "\n", " DisplayName \\\n", "0 Training-ml-g4dn-12xlarge \n", "\n", " SourceArn \\\n", "0 arn:aws:sagemaker:us-east-1:427894311213:train... \n", "\n", " SageMaker.ImageUri SageMaker.InstanceCount \\\n", "0 427894311213.dkr.ecr.us-east-1.amazonaws.com/m... 1.0 \n", "\n", " SageMaker.InstanceType SageMaker.VolumeSizeInGB batch-size \\\n", "0 ml.g4dn.12xlarge 300.0 6.0 \n", "\n", " config distributed ... \\\n", "0 \"/mmdetection3d/configs/3dssd/3dssd_4x4_a2d2-3... 1.0 ... \n", "\n", " lr - Last lr - Count train - MediaType train - Value \\\n", "0 2.0 30 None /qqq4tbmv/a2d2 \n", "\n", " SageMaker.DebugHookOutput - MediaType \\\n", "0 None \n", "\n", " SageMaker.DebugHookOutput - Value \\\n", "0 s3://sagemaker-us-east-1-427894311213/training... \n", "\n", " SageMaker.ModelArtifact - MediaType \\\n", "0 None \n", "\n", " SageMaker.ModelArtifact - Value \\\n", "0 s3://sagemaker-us-east-1-427894311213/training... \n", "\n", " Trials Experiments \n", "0 [mm3d-demo-training-job-1637711804] [mm3d-a2d2-demo-1637711766] \n", "\n", "[1 rows x 48 columns]" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "trial_component_analytics = ExperimentAnalytics(\n", " sagemaker_session=sagemaker_session, \n", " experiment_name=mm3d_experiment.experiment_name,\n", "# search_expression=search_expression,\n", " sort_by=\"metrics.test:accuracy.max\",\n", " sort_order=\"Descending\",\n", "# metric_names=['test:accuracy'],\n", ")\n", "\n", "trial_df = trial_component_analytics.dataframe()\n", "trial_df" ] }, { "cell_type": "markdown", "id": "2cfb761d", "metadata": {}, "source": [ "## Conclusion\n", "\n", "In this notebook we setup SageMaker Training with the MMDetection3D repository and FSx for Lustre as a data source. We trained our model on a multi-GPU instance and downloaded our model object. In the next notebook we will deploy the model we trained as an asynchronous SageMaker endpoint!" ] } ], "metadata": { "kernelspec": { "display_name": "conda_pytorch_latest_p36", "language": "python", "name": "conda_pytorch_latest_p36" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.13" } }, "nbformat": 4, "nbformat_minor": 5 }