{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# AdventureWorks - Predicting customer churn\n", "\n", "*NOTE: Due to featuretools' memory requirement, this notebook will not run on MyBinder.*\n", "\n", "In this notebook, we will demonstrate how getML can be used for a customer churn project using a synthetic dataset of a fictional company. We will also benchmark getML against featuretools.\n", "\n", "Summary:\n", "\n", "- Prediction type: __Classification model__\n", "- Domain: __Customer loyalty__\n", "- Prediction target: __churn__ \n", "- Population size: __19704__\n", "\n", "_Author: Dr. Patrick Urbanke_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Background\n", "\n", "[AdventureWorks](https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks) is a fictional company that sells bicycles. It is used by Microsoft to showcase how its MS SQL Server can be used to manage business data. Since this dataset resembles a real-world customer database and it is open-source, we will use it to showcase how getML can be used for a classic customer churn project (real customer databases are not easily available for the purposes of showcasing and benchmarking, for reasons of data privacy).\n", "\n", "The dataset has been downloaded from the [CTU Prague relational learning repository](https://relational.fit.cvut.cz/dataset/AdventureWorks) (Motl and Schulte, 2015).\n", "\n", "We will benchmark [getML](https://www.getml.com) 's feature learning algorithms against [featuretools](https://www.featuretools.com), an open-source implementation of the propositionalization algorithm, similar to getML's FastProp." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### A web frontend for getML\n", "\n", "The getML monitor is a frontend built to support your work with getML. The getML monitor displays information such as the imported data frames, trained pipelines and allows easy data and feature exploration. You can launch the getML monitor [here](http://localhost:1709)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Where is this running?\n", "\n", "Your getML live session is running inside a docker container on [mybinder.org](https://mybinder.org/), a service built by the Jupyter community and funded by Google Cloud, OVH, GESIS Notebooks and the Turing Institute. As it is a free service, this session will shut down after 10 minutes of inactivity." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Analysis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's get started with the analysis and set up your session:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "Connected to project 'adventure_works'\n" ] } ], "source": [ "import copy\n", "import os\n", "from urllib import request\n", "\n", "import numpy as np\n", "import pandas as pd\n", "from IPython.display import Image\n", "import matplotlib.pyplot as plt\n", "plt.style.use('seaborn')\n", "%matplotlib inline \n", "\n", "import featuretools\n", "import getml\n", "\n", "getml.set_project('adventure_works')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Loading data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.1 Download from source\n", "\n", "We begin by downloading the data:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Connection(conn_id='default',\n", " dbname='AdventureWorks2014',\n", " dialect='mysql',\n", " host='relational.fit.cvut.cz',\n", " port=3306)" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "conn = getml.database.connect_mariadb(\n", " host=\"relational.fit.cvut.cz\",\n", " dbname=\"AdventureWorks2014\",\n", " port=3306,\n", " user=\"guest\",\n", " password=\"relational\"\n", ")\n", "\n", "conn" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def load_if_needed(name):\n", " \"\"\"\n", " Loads the data from the relational learning\n", " repository, if the data frame has not already\n", " been loaded.\n", " \"\"\"\n", " if not getml.data.exists(name):\n", " data_frame = getml.DataFrame.from_db(\n", " name=name,\n", " table_name=name,\n", " conn=conn\n", " )\n", " data_frame.save()\n", " else:\n", " data_frame = getml.data.load_data_frame(name)\n", " return data_frame" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "product = load_if_needed(\"Product\")\n", "sales_order_detail = load_if_needed(\"SalesOrderDetail\")\n", "sales_order_header = load_if_needed(\"SalesOrderHeader\")\n", "sales_order_reason = load_if_needed(\"SalesOrderHeaderSalesReason\")\n", "special_offer = load_if_needed(\"SpecialOffer\")\n", "store = load_if_needed(\"Store\")" ] }, { "cell_type": "code", "execution_count": 5, "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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
name ProductID MakeFlagFinishedGoodsFlagSafetyStockLevelReorderPointDaysToManufactureProductSubcategoryIDProductModelIDName ProductNumberColor StandardCost ListPrice Size SizeUnitMeasureCodeWeightUnitMeasureCodeWeight ProductLine Class Style SellStartDate SellEndDate DiscontinuedDaterowguid ModifiedDate
roleunused_floatunused_float unused_float unused_floatunused_float unused_float unused_float unused_floatunused_string unused_stringunused_stringunused_stringunused_stringunused_stringunused_string unused_string unused_stringunused_stringunused_stringunused_stringunused_string unused_stringunused_string unused_string unused_string
0\n", " 1 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1000 \n", " \n", " 750 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " nan \n", " Adjustable RaceAR-5381NULL0.00000.0000NULLNULLNULLNULLNULLNULLNULL2008-04-30 00:00:00NULLNULL694215B7-08F7-4C0D-ACB1-D734BA44...2014-02-08 10:01:36
1\n", " 2 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1000 \n", " \n", " 750 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " nan \n", " Bearing BallBA-8327NULL0.00000.0000NULLNULLNULLNULLNULLNULLNULL2008-04-30 00:00:00NULLNULL58AE3C20-4F3A-4749-A7D4-D568806C...2014-02-08 10:01:36
2\n", " 3 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " 800 \n", " \n", " 600 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " BB Ball BearingBE-2349NULL0.00000.0000NULLNULLNULLNULLNULLNULLNULL2008-04-30 00:00:00NULLNULL9C21AED2-5BFA-4F18-BCB8-F11638DC...2014-02-08 10:01:36
3\n", " 4 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 800 \n", " \n", " 600 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " nan \n", " Headset Ball BearingsBE-2908NULL0.00000.0000NULLNULLNULLNULLNULLNULLNULL2008-04-30 00:00:00NULLNULLECFED6CB-51FF-49B5-B06C-7D8AC834...2014-02-08 10:01:36
4\n", " 316 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " 800 \n", " \n", " 600 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " BladeBL-2036NULL0.00000.0000NULLNULLNULLNULLNULLNULLNULL2008-04-30 00:00:00NULLNULLE73E9750-603B-4131-89F5-3DD15ED5...2014-02-08 10:01:36
\n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " ...................................................
499\n", " 995 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 500 \n", " \n", " 375 \n", " \n", " 1 \n", " \n", " 5 \n", " \n", " 96 \n", " ML Bottom BracketBB-8107NULL44.9506101.2400NULLNULLG168.00NULLMNULL2013-05-30 00:00:00NULLNULL71AB847F-D091-42D6-B735-7B0C2D82...2014-02-08 10:01:36
500\n", " 996 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 500 \n", " \n", " 375 \n", " \n", " 1 \n", " \n", " 5 \n", " \n", " 97 \n", " HL Bottom BracketBB-9108NULL53.9416121.4900NULLNULLG170.00NULLHNULL2013-05-30 00:00:00NULLNULL230C47C5-08B2-4CE3-B706-69C0BDD6...2014-02-08 10:01:36
501\n", " 997 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 100 \n", " \n", " 75 \n", " \n", " 4 \n", " \n", " 2 \n", " \n", " 31 \n", " Road-750 Black, 44BK-R19B-44Black343.6496539.990044CMLB19.77RLU2013-05-30 00:00:00NULLNULL44CE4802-409F-43AB-9B27-CA534218...2014-02-08 10:01:36
502\n", " 998 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 100 \n", " \n", " 75 \n", " \n", " 4 \n", " \n", " 2 \n", " \n", " 31 \n", " Road-750 Black, 48BK-R19B-48Black343.6496539.990048CMLB20.13RLU2013-05-30 00:00:00NULLNULL3DE9A212-1D49-40B6-B10A-F564D981...2014-02-08 10:01:36
503\n", " 999 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 100 \n", " \n", " 75 \n", " \n", " 4 \n", " \n", " 2 \n", " \n", " 31 \n", " Road-750 Black, 52BK-R19B-52Black343.6496539.990052CMLB20.42RLU2013-05-30 00:00:00NULLNULLAE638923-2B67-4679-B90E-ABBAB17D...2014-02-08 10:01:36
\n", "\n", "

\n", " 504 rows x 25 columns
\n", " memory usage: 0.19 MB
\n", " name: Product
\n", " type: getml.DataFrame
\n", " url: http://localhost:1709/#/getdataframe/adventure_works/Product/\n", "

\n" ], "text/plain": [ "name ProductID MakeFlag FinishedGoodsFlag SafetyStockLevel ... SellStartDate SellEndDate \n", "role unused_float unused_float unused_float unused_float ... unused_string unused_string\n", " 0 1 0 0 1000 ... 2008-04-30 00:00:00 NULL \n", " 1 2 0 0 1000 ... 2008-04-30 00:00:00 NULL \n", " 2 3 1 0 800 ... 2008-04-30 00:00:00 NULL \n", " 3 4 0 0 800 ... 2008-04-30 00:00:00 NULL \n", " 4 316 1 0 800 ... 2008-04-30 00:00:00 NULL \n", " ... ... ... ... ... ... \n", " 499 995 1 1 500 ... 2013-05-30 00:00:00 NULL \n", " 500 996 1 1 500 ... 2013-05-30 00:00:00 NULL \n", " 501 997 1 1 100 ... 2013-05-30 00:00:00 NULL \n", " 502 998 1 1 100 ... 2013-05-30 00:00:00 NULL \n", " 503 999 1 1 100 ... 2013-05-30 00:00:00 NULL \n", "\n", "name DiscontinuedDate rowguid ModifiedDate \n", "role unused_string unused_string unused_string \n", " 0 NULL 694215B7-08F7-4C0D-ACB1-D734BA44... 2014-02-08 10:01:36\n", " 1 NULL 58AE3C20-4F3A-4749-A7D4-D568806C... 2014-02-08 10:01:36\n", " 2 NULL 9C21AED2-5BFA-4F18-BCB8-F11638DC... 2014-02-08 10:01:36\n", " 3 NULL ECFED6CB-51FF-49B5-B06C-7D8AC834... 2014-02-08 10:01:36\n", " 4 NULL E73E9750-603B-4131-89F5-3DD15ED5... 2014-02-08 10:01:36\n", " ... ... ... \n", " 499 NULL 71AB847F-D091-42D6-B735-7B0C2D82... 2014-02-08 10:01:36\n", " 500 NULL 230C47C5-08B2-4CE3-B706-69C0BDD6... 2014-02-08 10:01:36\n", " 501 NULL 44CE4802-409F-43AB-9B27-CA534218... 2014-02-08 10:01:36\n", " 502 NULL 3DE9A212-1D49-40B6-B10A-F564D981... 2014-02-08 10:01:36\n", " 503 NULL AE638923-2B67-4679-B90E-ABBAB17D... 2014-02-08 10:01:36\n", "\n", "\n", "504 rows x 25 columns\n", "memory usage: 0.19 MB\n", "name: Product\n", "type: getml.DataFrame\n", "url: http://localhost:1709/#/getdataframe/adventure_works/Product/" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "product" ] }, { "cell_type": "code", "execution_count": 6, "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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nameSalesOrderIDSalesOrderDetailID OrderQty ProductIDSpecialOfferIDCarrierTrackingNumberUnitPrice UnitPriceDiscountLineTotal rowguid ModifiedDate
roleunused_float unused_floatunused_floatunused_float unused_floatunused_string unused_stringunused_string unused_stringunused_string unused_string
0\n", " 43659 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 776 \n", " \n", " 1 \n", " 4911-403C-982024.99400.00002024.994000B207C96D-D9E6-402B-8470-2CC176C4...2011-05-31 00:00:00
1\n", " 43659 \n", " \n", " 2 \n", " \n", " 3 \n", " \n", " 777 \n", " \n", " 1 \n", " 4911-403C-982024.99400.00006074.9820007ABB600D-1E77-41BE-9FE5-B9142CFC...2011-05-31 00:00:00
2\n", " 43659 \n", " \n", " 3 \n", " \n", " 1 \n", " \n", " 778 \n", " \n", " 1 \n", " 4911-403C-982024.99400.00002024.994000475CF8C6-49F6-486E-B0AD-AFC6A50C...2011-05-31 00:00:00
3\n", " 43659 \n", " \n", " 4 \n", " \n", " 1 \n", " \n", " 771 \n", " \n", " 1 \n", " 4911-403C-982039.99400.00002039.99400004C4DE91-5815-45D6-8670-F462719F...2011-05-31 00:00:00
4\n", " 43659 \n", " \n", " 5 \n", " \n", " 1 \n", " \n", " 772 \n", " \n", " 1 \n", " 4911-403C-982039.99400.00002039.9940005A74C7D2-E641-438E-A7AC-37BF2328...2011-05-31 00:00:00
\n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " ..................
121312\n", " 75122 \n", " \n", " 121313 \n", " \n", " 1 \n", " \n", " 878 \n", " \n", " 1 \n", " NULL21.98000.000021.9800008CAD6675-18CC-4F47-8287-97B41A8E...2014-06-30 00:00:00
121313\n", " 75122 \n", " \n", " 121314 \n", " \n", " 1 \n", " \n", " 712 \n", " \n", " 1 \n", " NULL8.99000.00008.99000084F1C363-1C50-4442-BE16-541C59B6...2014-06-30 00:00:00
121314\n", " 75123 \n", " \n", " 121315 \n", " \n", " 1 \n", " \n", " 878 \n", " \n", " 1 \n", " NULL21.98000.000021.980000C18B6476-429F-4BB1-828E-2BE5F82A...2014-06-30 00:00:00
121315\n", " 75123 \n", " \n", " 121316 \n", " \n", " 1 \n", " \n", " 879 \n", " \n", " 1 \n", " NULL159.00000.0000159.00000075A89C6A-C60A-47EA-8A52-B52A9C43...2014-06-30 00:00:00
121316\n", " 75123 \n", " \n", " 121317 \n", " \n", " 1 \n", " \n", " 712 \n", " \n", " 1 \n", " NULL8.99000.00008.99000073646D26-0461-450D-8019-2C6C8586...2014-06-30 00:00:00
\n", "\n", "

\n", " 121317 rows x 11 columns
\n", " memory usage: 21.84 MB
\n", " name: SalesOrderDetail
\n", " type: getml.DataFrame
\n", " url: http://localhost:1709/#/getdataframe/adventure_works/SalesOrderDetail/\n", "

\n" ], "text/plain": [ " name SalesOrderID SalesOrderDetailID OrderQty ProductID ... UnitPrice UnitPriceDiscount\n", " role unused_float unused_float unused_float unused_float ... unused_string unused_string \n", " 0 43659 1 1 776 ... 2024.9940 0.0000 \n", " 1 43659 2 3 777 ... 2024.9940 0.0000 \n", " 2 43659 3 1 778 ... 2024.9940 0.0000 \n", " 3 43659 4 1 771 ... 2039.9940 0.0000 \n", " 4 43659 5 1 772 ... 2039.9940 0.0000 \n", " ... ... ... ... ... ... \n", "121312 75122 121313 1 878 ... 21.9800 0.0000 \n", "121313 75122 121314 1 712 ... 8.9900 0.0000 \n", "121314 75123 121315 1 878 ... 21.9800 0.0000 \n", "121315 75123 121316 1 879 ... 159.0000 0.0000 \n", "121316 75123 121317 1 712 ... 8.9900 0.0000 \n", "\n", " name LineTotal rowguid ModifiedDate \n", " role unused_string unused_string unused_string \n", " 0 2024.994000 B207C96D-D9E6-402B-8470-2CC176C4... 2011-05-31 00:00:00\n", " 1 6074.982000 7ABB600D-1E77-41BE-9FE5-B9142CFC... 2011-05-31 00:00:00\n", " 2 2024.994000 475CF8C6-49F6-486E-B0AD-AFC6A50C... 2011-05-31 00:00:00\n", " 3 2039.994000 04C4DE91-5815-45D6-8670-F462719F... 2011-05-31 00:00:00\n", " 4 2039.994000 5A74C7D2-E641-438E-A7AC-37BF2328... 2011-05-31 00:00:00\n", " ... ... ... \n", "121312 21.980000 8CAD6675-18CC-4F47-8287-97B41A8E... 2014-06-30 00:00:00\n", "121313 8.990000 84F1C363-1C50-4442-BE16-541C59B6... 2014-06-30 00:00:00\n", "121314 21.980000 C18B6476-429F-4BB1-828E-2BE5F82A... 2014-06-30 00:00:00\n", "121315 159.000000 75A89C6A-C60A-47EA-8A52-B52A9C43... 2014-06-30 00:00:00\n", "121316 8.990000 73646D26-0461-450D-8019-2C6C8586... 2014-06-30 00:00:00\n", "\n", "\n", "121317 rows x 11 columns\n", "memory usage: 21.84 MB\n", "name: SalesOrderDetail\n", "type: getml.DataFrame\n", "url: http://localhost:1709/#/getdataframe/adventure_works/SalesOrderDetail/" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sales_order_detail" ] }, { "cell_type": "code", "execution_count": 7, "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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nameSalesOrderIDRevisionNumber StatusOnlineOrderFlag CustomerIDSalesPersonID TerritoryIDBillToAddressIDShipToAddressIDShipMethodIDCreditCardIDCurrencyRateIDOrderDate DueDate ShipDate SalesOrderNumberPurchaseOrderNumberAccountNumber CreditCardApprovalCodeSubTotal TaxAmt Freight TotalDue Comment rowguid ModifiedDate
roleunused_float unused_floatunused_float unused_floatunused_float unused_floatunused_float unused_float unused_floatunused_floatunused_float unused_floatunused_string unused_string unused_string unused_string unused_string unused_string unused_string unused_stringunused_stringunused_stringunused_stringunused_stringunused_string unused_string
0\n", " 43659 \n", " \n", " 8 \n", " \n", " 5 \n", " \n", " 0 \n", " \n", " 29825 \n", " \n", " 279 \n", " \n", " 5 \n", " \n", " 985 \n", " \n", " 985 \n", " \n", " 5 \n", " \n", " 16281 \n", " \n", " nan \n", " 2011-05-31 00:00:002011-06-12 00:00:002011-06-07 00:00:00SO43659PO52214578710-4020-000676105041Vi8418220565.62061971.5149616.098423153.2339NULL79B65321-39CA-4115-9CBA-8FE0903E...2011-06-07 00:00:00
1\n", " 43660 \n", " \n", " 8 \n", " \n", " 5 \n", " \n", " 0 \n", " \n", " 29672 \n", " \n", " 279 \n", " \n", " 5 \n", " \n", " 921 \n", " \n", " 921 \n", " \n", " 5 \n", " \n", " 5618 \n", " \n", " nan \n", " 2011-05-31 00:00:002011-06-12 00:00:002011-06-07 00:00:00SO43660PO1885012750010-4020-000117115213Vi294111294.2529124.248338.82761457.3288NULL738DC42D-D03B-48A1-9822-F95A67EA...2011-06-07 00:00:00
2\n", " 43661 \n", " \n", " 8 \n", " \n", " 5 \n", " \n", " 0 \n", " \n", " 29734 \n", " \n", " 282 \n", " \n", " 6 \n", " \n", " 517 \n", " \n", " 517 \n", " \n", " 5 \n", " \n", " 1346 \n", " \n", " 4 \n", " 2011-05-31 00:00:002011-06-12 00:00:002011-06-07 00:00:00SO43661PO1847318962010-4020-00044285274Vi685432726.47863153.7696985.553036865.8012NULLD91B9131-18A4-4A11-BC3A-90B6F53E...2011-06-07 00:00:00
3\n", " 43662 \n", " \n", " 8 \n", " \n", " 5 \n", " \n", " 0 \n", " \n", " 29994 \n", " \n", " 282 \n", " \n", " 6 \n", " \n", " 482 \n", " \n", " 482 \n", " \n", " 5 \n", " \n", " 10456 \n", " \n", " 4 \n", " 2011-05-31 00:00:002011-06-12 00:00:002011-06-07 00:00:00SO43662PO1844417404410-4020-000227125295Vi5393528832.52892775.1646867.238932474.9324NULL4A1ECFC0-CC3A-4740-B028-1C50BB48...2011-06-07 00:00:00
4\n", " 43663 \n", " \n", " 8 \n", " \n", " 5 \n", " \n", " 0 \n", " \n", " 29565 \n", " \n", " 276 \n", " \n", " 4 \n", " \n", " 1073 \n", " \n", " 1073 \n", " \n", " 5 \n", " \n", " 4322 \n", " \n", " nan \n", " 2011-05-31 00:00:002011-06-12 00:00:002011-06-07 00:00:00SO43663PO1800918647010-4020-00051045303Vi22691419.458940.268112.5838472.3108NULL9B1E7A40-6AE0-4AD3-811C-A6495185...2011-06-07 00:00:00
\n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " ..........................................
31460\n", " 75119 \n", " \n", " 8 \n", " \n", " 5 \n", " \n", " 1 \n", " \n", " 11981 \n", " \n", " nan \n", " \n", " 1 \n", " \n", " 17649 \n", " \n", " 17649 \n", " \n", " 1 \n", " \n", " 6761 \n", " \n", " nan \n", " 2014-06-30 00:00:002014-07-12 00:00:002014-07-07 00:00:00SO75119NULL10-4030-011981429826Vi3516642.28003.38241.057046.7194NULL9382F1C9-383A-435F-9449-0EECEA21...2014-07-07 00:00:00
31461\n", " 75120 \n", " \n", " 8 \n", " \n", " 5 \n", " \n", " 1 \n", " \n", " 18749 \n", " \n", " nan \n", " \n", " 6 \n", " \n", " 28374 \n", " \n", " 28374 \n", " \n", " 1 \n", " \n", " 8925 \n", " \n", " nan \n", " 2014-06-30 00:00:002014-07-12 00:00:002014-07-07 00:00:00SO75120NULL10-4030-018749929849Vi4600384.96006.79682.124093.8808NULLAE6A4FCF-FF73-4CD4-AF2C-5993D00D...2014-07-07 00:00:00
31462\n", " 75121 \n", " \n", " 8 \n", " \n", " 5 \n", " \n", " 1 \n", " \n", " 15251 \n", " \n", " nan \n", " \n", " 6 \n", " \n", " 26553 \n", " \n", " 26553 \n", " \n", " 1 \n", " \n", " 14220 \n", " \n", " nan \n", " 2014-06-30 00:00:002014-07-12 00:00:002014-07-07 00:00:00SO75121NULL10-4030-015251529864Vi7373874.98005.99841.874582.8529NULLD7395C0E-00CB-4BFA-A238-0D6A9F49...2014-07-07 00:00:00
31463\n", " 75122 \n", " \n", " 8 \n", " \n", " 5 \n", " \n", " 1 \n", " \n", " 15868 \n", " \n", " nan \n", " \n", " 6 \n", " \n", " 14616 \n", " \n", " 14616 \n", " \n", " 1 \n", " \n", " 18719 \n", " \n", " nan \n", " 2014-06-30 00:00:002014-07-12 00:00:002014-07-07 00:00:00SO75122NULL10-4030-015868330022Vi9731230.97002.47760.774334.2219NULL4221035A-4159-492F-AF40-4363A64F...2014-07-07 00:00:00
31464\n", " 75123 \n", " \n", " 8 \n", " \n", " 5 \n", " \n", " 1 \n", " \n", " 18759 \n", " \n", " nan \n", " \n", " 6 \n", " \n", " 14024 \n", " \n", " 14024 \n", " \n", " 1 \n", " \n", " 10084 \n", " \n", " nan \n", " 2014-06-30 00:00:002014-07-12 00:00:002014-07-07 00:00:00SO75123NULL10-4030-018759230370Vi51970189.970015.19764.7493209.9169NULLD54752FF-2B54-4BE5-95EA-3B72289C...2014-07-07 00:00:00
\n", "\n", "

\n", " 31465 rows x 26 columns
\n", " memory usage: 12.80 MB
\n", " name: SalesOrderHeader
\n", " type: getml.DataFrame
\n", " url: http://localhost:1709/#/getdataframe/adventure_works/SalesOrderHeader/\n", "

\n" ], "text/plain": [ " name SalesOrderID RevisionNumber Status OnlineOrderFlag ... Freight TotalDue Comment \n", " role unused_float unused_float unused_float unused_float ... unused_string unused_string unused_string\n", " 0 43659 8 5 0 ... 616.0984 23153.2339 NULL \n", " 1 43660 8 5 0 ... 38.8276 1457.3288 NULL \n", " 2 43661 8 5 0 ... 985.5530 36865.8012 NULL \n", " 3 43662 8 5 0 ... 867.2389 32474.9324 NULL \n", " 4 43663 8 5 0 ... 12.5838 472.3108 NULL \n", " ... ... ... ... ... ... ... \n", "31460 75119 8 5 1 ... 1.0570 46.7194 NULL \n", "31461 75120 8 5 1 ... 2.1240 93.8808 NULL \n", "31462 75121 8 5 1 ... 1.8745 82.8529 NULL \n", "31463 75122 8 5 1 ... 0.7743 34.2219 NULL \n", "31464 75123 8 5 1 ... 4.7493 209.9169 NULL \n", "\n", " name rowguid ModifiedDate \n", " role unused_string unused_string \n", " 0 79B65321-39CA-4115-9CBA-8FE0903E... 2011-06-07 00:00:00\n", " 1 738DC42D-D03B-48A1-9822-F95A67EA... 2011-06-07 00:00:00\n", " 2 D91B9131-18A4-4A11-BC3A-90B6F53E... 2011-06-07 00:00:00\n", " 3 4A1ECFC0-CC3A-4740-B028-1C50BB48... 2011-06-07 00:00:00\n", " 4 9B1E7A40-6AE0-4AD3-811C-A6495185... 2011-06-07 00:00:00\n", " ... ... \n", "31460 9382F1C9-383A-435F-9449-0EECEA21... 2014-07-07 00:00:00\n", "31461 AE6A4FCF-FF73-4CD4-AF2C-5993D00D... 2014-07-07 00:00:00\n", "31462 D7395C0E-00CB-4BFA-A238-0D6A9F49... 2014-07-07 00:00:00\n", "31463 4221035A-4159-492F-AF40-4363A64F... 2014-07-07 00:00:00\n", "31464 D54752FF-2B54-4BE5-95EA-3B72289C... 2014-07-07 00:00:00\n", "\n", "\n", "31465 rows x 26 columns\n", "memory usage: 12.80 MB\n", "name: SalesOrderHeader\n", "type: getml.DataFrame\n", "url: http://localhost:1709/#/getdataframe/adventure_works/SalesOrderHeader/" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sales_order_header" ] }, { "cell_type": "code", "execution_count": 8, "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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nameSalesOrderIDSalesReasonIDModifiedDate
roleunused_float unused_floatunused_string
0\n", " 43697 \n", " \n", " 5 \n", " 2011-05-31 00:00:00
1\n", " 43697 \n", " \n", " 9 \n", " 2011-05-31 00:00:00
2\n", " 43702 \n", " \n", " 5 \n", " 2011-06-01 00:00:00
3\n", " 43702 \n", " \n", " 9 \n", " 2011-06-01 00:00:00
4\n", " 43703 \n", " \n", " 5 \n", " 2011-06-01 00:00:00
\n", " ... \n", " \n", " ... \n", " ...
27642\n", " 75119 \n", " \n", " 1 \n", " 2014-06-30 00:00:00
27643\n", " 75120 \n", " \n", " 1 \n", " 2014-06-30 00:00:00
27644\n", " 75121 \n", " \n", " 1 \n", " 2014-06-30 00:00:00
27645\n", " 75122 \n", " \n", " 1 \n", " 2014-06-30 00:00:00
27646\n", " 75123 \n", " \n", " 1 \n", " 2014-06-30 00:00:00
\n", "\n", "

\n", " 27647 rows x 3 columns
\n", " memory usage: 1.22 MB
\n", " name: SalesOrderHeaderSalesReason
\n", " type: getml.DataFrame
\n", " url: http://localhost:1709/#/getdataframe/adventure_works/SalesOrderHeaderSalesReason/\n", "

\n" ], "text/plain": [ " name SalesOrderID SalesReasonID ModifiedDate \n", " role unused_float unused_float unused_string \n", " 0 43697 5 2011-05-31 00:00:00\n", " 1 43697 9 2011-05-31 00:00:00\n", " 2 43702 5 2011-06-01 00:00:00\n", " 3 43702 9 2011-06-01 00:00:00\n", " 4 43703 5 2011-06-01 00:00:00\n", " ... ... ... \n", "27642 75119 1 2014-06-30 00:00:00\n", "27643 75120 1 2014-06-30 00:00:00\n", "27644 75121 1 2014-06-30 00:00:00\n", "27645 75122 1 2014-06-30 00:00:00\n", "27646 75123 1 2014-06-30 00:00:00\n", "\n", "\n", "27647 rows x 3 columns\n", "memory usage: 1.22 MB\n", "name: SalesOrderHeaderSalesReason\n", "type: getml.DataFrame\n", "url: http://localhost:1709/#/getdataframe/adventure_works/SalesOrderHeaderSalesReason/" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sales_order_reason" ] }, { "cell_type": "code", "execution_count": 9, "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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", "
nameSpecialOfferID MinQty MaxQtyDescription DiscountPct Type Category StartDate EndDate rowguid ModifiedDate
role unused_floatunused_floatunused_floatunused_string unused_stringunused_string unused_stringunused_string unused_string unused_string unused_string
0\n", " 1 \n", " \n", " 0 \n", " \n", " nan \n", " No Discount0.0000No DiscountNo Discount2011-05-01 00:00:002014-11-30 00:00:000290C4F5-191F-4337-AB6B-0A2DDE03...2011-04-01 00:00:00
1\n", " 2 \n", " \n", " 11 \n", " \n", " 14 \n", " Volume Discount 11 to 140.0200Volume DiscountReseller2011-05-31 00:00:002014-05-30 00:00:00D7542EE7-15DB-4541-985C-5CC27AEF...2011-05-01 00:00:00
2\n", " 3 \n", " \n", " 15 \n", " \n", " 24 \n", " Volume Discount 15 to 240.0500Volume DiscountReseller2011-05-31 00:00:002014-05-30 00:00:004BDBCC01-8CF7-40A9-B643-40EC5B71...2011-05-01 00:00:00
3\n", " 4 \n", " \n", " 25 \n", " \n", " 40 \n", " Volume Discount 25 to 400.1000Volume DiscountReseller2011-05-31 00:00:002014-05-30 00:00:00504B5E85-8F3F-4EBC-9E1D-C1BC5DEA...2011-05-01 00:00:00
4\n", " 5 \n", " \n", " 41 \n", " \n", " 60 \n", " Volume Discount 41 to 600.1500Volume DiscountReseller2011-05-31 00:00:002014-05-30 00:00:00677E1D9D-944F-4E81-90E8-47EB0A82...2011-05-01 00:00:00
\n", " ... \n", " \n", " ... \n", " \n", " ... \n", " ........................
11\n", " 12 \n", " \n", " 0 \n", " \n", " nan \n", " LL Road Frame Sale0.3500Excess InventoryReseller2013-05-30 00:00:002013-07-14 00:00:00C0AF1C89-9722-4235-9248-3FBA4D9E...2013-04-30 00:00:00
12\n", " 13 \n", " \n", " 0 \n", " \n", " nan \n", " Touring-3000 Promotion0.1500New ProductReseller2013-05-30 00:00:002013-08-29 00:00:005061CCE4-E021-45A8-9A75-DFB36CBB...2013-04-30 00:00:00
13\n", " 14 \n", " \n", " 0 \n", " \n", " nan \n", " Touring-1000 Promotion0.2000New ProductReseller2013-05-30 00:00:002013-08-29 00:00:001AF84A9E-A98C-4BD9-B48F-DC2B8B6B...2013-04-30 00:00:00
14\n", " 15 \n", " \n", " 0 \n", " \n", " nan \n", " Half-Price Pedal Sale0.5000Seasonal DiscountCustomer2013-07-14 00:00:002013-08-14 00:00:0003E3594D-6EBB-46A6-B8EE-A9289C0C...2013-06-14 00:00:00
15\n", " 16 \n", " \n", " 0 \n", " \n", " nan \n", " Mountain-500 Silver Clearance Sa...0.4000Discontinued ProductReseller2014-03-31 00:00:002014-05-30 00:00:00EB7CB484-BCCF-4D2D-BF73-521B2001...2014-03-01 00:00:00
\n", "\n", "

\n", " 16 rows x 11 columns
\n", " memory usage: 0.00 MB
\n", " name: SpecialOffer
\n", " type: getml.DataFrame
\n", " url: http://localhost:1709/#/getdataframe/adventure_works/SpecialOffer/\n", "

\n" ], "text/plain": [ "name SpecialOfferID MinQty MaxQty Description ... Category \n", "role unused_float unused_float unused_float unused_string ... unused_string\n", " 0 1 0 nan No Discount ... No Discount \n", " 1 2 11 14 Volume Discount 11 to 14 ... Reseller \n", " 2 3 15 24 Volume Discount 15 to 24 ... Reseller \n", " 3 4 25 40 Volume Discount 25 to 40 ... Reseller \n", " 4 5 41 60 Volume Discount 41 to 60 ... Reseller \n", " ... ... ... ... ... \n", " 11 12 0 nan LL Road Frame Sale ... Reseller \n", " 12 13 0 nan Touring-3000 Promotion ... Reseller \n", " 13 14 0 nan Touring-1000 Promotion ... Reseller \n", " 14 15 0 nan Half-Price Pedal Sale ... Customer \n", " 15 16 0 nan Mountain-500 Silver Clearance Sa... ... Reseller \n", "\n", "name StartDate EndDate rowguid ModifiedDate \n", "role unused_string unused_string unused_string unused_string \n", " 0 2011-05-01 00:00:00 2014-11-30 00:00:00 0290C4F5-191F-4337-AB6B-0A2DDE03... 2011-04-01 00:00:00\n", " 1 2011-05-31 00:00:00 2014-05-30 00:00:00 D7542EE7-15DB-4541-985C-5CC27AEF... 2011-05-01 00:00:00\n", " 2 2011-05-31 00:00:00 2014-05-30 00:00:00 4BDBCC01-8CF7-40A9-B643-40EC5B71... 2011-05-01 00:00:00\n", " 3 2011-05-31 00:00:00 2014-05-30 00:00:00 504B5E85-8F3F-4EBC-9E1D-C1BC5DEA... 2011-05-01 00:00:00\n", " 4 2011-05-31 00:00:00 2014-05-30 00:00:00 677E1D9D-944F-4E81-90E8-47EB0A82... 2011-05-01 00:00:00\n", " ... ... ... ... \n", " 11 2013-05-30 00:00:00 2013-07-14 00:00:00 C0AF1C89-9722-4235-9248-3FBA4D9E... 2013-04-30 00:00:00\n", " 12 2013-05-30 00:00:00 2013-08-29 00:00:00 5061CCE4-E021-45A8-9A75-DFB36CBB... 2013-04-30 00:00:00\n", " 13 2013-05-30 00:00:00 2013-08-29 00:00:00 1AF84A9E-A98C-4BD9-B48F-DC2B8B6B... 2013-04-30 00:00:00\n", " 14 2013-07-14 00:00:00 2013-08-14 00:00:00 03E3594D-6EBB-46A6-B8EE-A9289C0C... 2013-06-14 00:00:00\n", " 15 2014-03-31 00:00:00 2014-05-30 00:00:00 EB7CB484-BCCF-4D2D-BF73-521B2001... 2014-03-01 00:00:00\n", "\n", "\n", "16 rows x 11 columns\n", "memory usage: 0.00 MB\n", "name: SpecialOffer\n", "type: getml.DataFrame\n", "url: http://localhost:1709/#/getdataframe/adventure_works/SpecialOffer/" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "special_offer" ] }, { "cell_type": "code", "execution_count": 10, "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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", "
nameBusinessEntityIDSalesPersonIDName Demographics rowguid ModifiedDate
role unused_float unused_floatunused_string unused_string unused_string unused_string
0\n", " 292 \n", " \n", " 279 \n", " Next-Door Bike Store<StoreSurvey xmlns="http://schem...A22517E3-848D-4EBE-B9D9-7437F343...2014-09-12 11:15:07
1\n", " 294 \n", " \n", " 276 \n", " Professional Sales and Service<StoreSurvey xmlns="http://schem...B50CA50B-C601-4A13-B07E-2C63862D...2014-09-12 11:15:07
2\n", " 296 \n", " \n", " 277 \n", " Riders Company<StoreSurvey xmlns="http://schem...337C3688-1339-4E1A-A08A-B54B2356...2014-09-12 11:15:07
3\n", " 298 \n", " \n", " 275 \n", " The Bike Mechanics<StoreSurvey xmlns="http://schem...7894F278-F0C8-4D16-BD75-213FDBF1...2014-09-12 11:15:07
4\n", " 300 \n", " \n", " 286 \n", " Nationwide Supply<StoreSurvey xmlns="http://schem...C3FC9705-A8C4-4F3A-9550-EB2FA4B7...2014-09-12 11:15:07
\n", " ... \n", " \n", " ... \n", " ............
696\n", " 1988 \n", " \n", " 282 \n", " Retreat Inn<StoreSurvey xmlns="http://schem...EA21EC81-1BFA-4A07-9B4D-73D9852A...2014-09-12 11:15:07
697\n", " 1990 \n", " \n", " 281 \n", " Technical Parts Manufacturing<StoreSurvey xmlns="http://schem...C8E3C4ED-8F58-4DB2-B600-E0CD11D9...2014-09-12 11:15:07
698\n", " 1992 \n", " \n", " 277 \n", " Totes & Baskets Company<StoreSurvey xmlns="http://schem...CE860B58-643C-4567-BFD8-06E97969...2014-09-12 11:15:07
699\n", " 1994 \n", " \n", " 277 \n", " World of Bikes<StoreSurvey xmlns="http://schem...0C10F2B6-A13A-440C-9C25-5B28D482...2014-09-12 11:15:07
700\n", " 2051 \n", " \n", " 275 \n", " A Bicycle Association<StoreSurvey xmlns="http://schem...82237172-D3FE-4A95-82EF-636F6552...2014-09-12 11:15:07
\n", "\n", "

\n", " 701 rows x 6 columns
\n", " memory usage: 0.38 MB
\n", " name: Store
\n", " type: getml.DataFrame
\n", " url: http://localhost:1709/#/getdataframe/adventure_works/Store/\n", "

\n" ], "text/plain": [ "name BusinessEntityID SalesPersonID Name Demographics \n", "role unused_float unused_float unused_string unused_string \n", " 0 292 279 Next-Door Bike Store \n", " table {\n", " font-family: Helvetica, sans-serif;\n", " }\n", "\n", " th {\n", " text-align: left !important;\n", " }\n", " td {\n", " text-align: left !important;\n", " }\n", " th:nth-child(1) {\n", " text-align: right !important;\n", " border-right: 1px solid LightGray;\n", " }\n", " th.sub-header {\n", " font-weight: normal;\n", " font-style: italic;\n", " }\n", " .join_key,\n", " .numerical,\n", " .target,\n", " .unused_float {\n", " text-align: right !important;\n", " }\n", "\n", " .char-align {\n", " text-align: right !important;\n", " }\n", " span.left {\n", " text-align: right;\n", " width: 3em;\n", " }\n", " span.right {\n", " float: right;\n", " text-align: left;\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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", "
nameProductIDMakeFlag ProductSubcategoryIDProductModelIDSafetyStockLevelReorderPointStandardCostListPriceFinishedGoodsFlagDaysToManufactureName ProductNumberColor Size SizeUnitMeasureCodeWeightUnitMeasureCodeWeight ProductLine Class Style SellStartDate SellEndDate DiscontinuedDaterowguid ModifiedDate
role join_keycategoricalcategorical categorical numerical numerical numericalnumerical unused_float unused_floatunused_string unused_stringunused_stringunused_stringunused_string unused_string unused_stringunused_stringunused_stringunused_stringunused_string unused_stringunused_string unused_string unused_string
010NULLNULL\n", " 1000 \n", " \n", " 750 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " Adjustable RaceAR-5381NULLNULLNULLNULLNULLNULLNULLNULL2008-04-30 00:00:00NULLNULL694215B7-08F7-4C0D-ACB1-D734BA44...2014-02-08 10:01:36
120NULLNULL\n", " 1000 \n", " \n", " 750 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " Bearing BallBA-8327NULLNULLNULLNULLNULLNULLNULLNULL2008-04-30 00:00:00NULLNULL58AE3C20-4F3A-4749-A7D4-D568806C...2014-02-08 10:01:36
231NULLNULL\n", " 800 \n", " \n", " 600 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1 \n", " BB Ball BearingBE-2349NULLNULLNULLNULLNULLNULLNULLNULL2008-04-30 00:00:00NULLNULL9C21AED2-5BFA-4F18-BCB8-F11638DC...2014-02-08 10:01:36
340NULLNULL\n", " 800 \n", " \n", " 600 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " Headset Ball BearingsBE-2908NULLNULLNULLNULLNULLNULLNULLNULL2008-04-30 00:00:00NULLNULLECFED6CB-51FF-49B5-B06C-7D8AC834...2014-02-08 10:01:36
43161NULLNULL\n", " 800 \n", " \n", " 600 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1 \n", " BladeBL-2036NULLNULLNULLNULLNULLNULLNULLNULL2008-04-30 00:00:00NULLNULLE73E9750-603B-4131-89F5-3DD15ED5...2014-02-08 10:01:36
............\n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " .............................................
4999951596\n", " 500 \n", " \n", " 375 \n", " \n", " 44.9506\n", " \n", " 101.24\n", " \n", " 1 \n", " \n", " 1 \n", " ML Bottom BracketBB-8107NULLNULLNULLG168.00NULLMNULL2013-05-30 00:00:00NULLNULL71AB847F-D091-42D6-B735-7B0C2D82...2014-02-08 10:01:36
5009961597\n", " 500 \n", " \n", " 375 \n", " \n", " 53.9416\n", " \n", " 121.49\n", " \n", " 1 \n", " \n", " 1 \n", " HL Bottom BracketBB-9108NULLNULLNULLG170.00NULLHNULL2013-05-30 00:00:00NULLNULL230C47C5-08B2-4CE3-B706-69C0BDD6...2014-02-08 10:01:36
5019971231\n", " 100 \n", " \n", " 75 \n", " \n", " 343.6496\n", " \n", " 539.99\n", " \n", " 1 \n", " \n", " 4 \n", " Road-750 Black, 44BK-R19B-44Black44CMLB19.77RLU2013-05-30 00:00:00NULLNULL44CE4802-409F-43AB-9B27-CA534218...2014-02-08 10:01:36
5029981231\n", " 100 \n", " \n", " 75 \n", " \n", " 343.6496\n", " \n", " 539.99\n", " \n", " 1 \n", " \n", " 4 \n", " Road-750 Black, 48BK-R19B-48Black48CMLB20.13RLU2013-05-30 00:00:00NULLNULL3DE9A212-1D49-40B6-B10A-F564D981...2014-02-08 10:01:36
5039991231\n", " 100 \n", " \n", " 75 \n", " \n", " 343.6496\n", " \n", " 539.99\n", " \n", " 1 \n", " \n", " 4 \n", " Road-750 Black, 52BK-R19B-52Black52CMLB20.42RLU2013-05-30 00:00:00NULLNULLAE638923-2B67-4679-B90E-ABBAB17D...2014-02-08 10:01:36
\n", "\n", "

\n", " 504 rows x 25 columns
\n", " memory usage: 0.17 MB
\n", " name: Product
\n", " type: getml.DataFrame
\n", " url: http://localhost:1709/#/getdataframe/adventure_works/Product/\n", "

\n" ], "text/plain": [ "name ProductID MakeFlag ProductSubcategoryID ProductModelID ... SellStartDate SellEndDate \n", "role join_key categorical categorical categorical ... unused_string unused_string\n", " 0 1 0 NULL NULL ... 2008-04-30 00:00:00 NULL \n", " 1 2 0 NULL NULL ... 2008-04-30 00:00:00 NULL \n", " 2 3 1 NULL NULL ... 2008-04-30 00:00:00 NULL \n", " 3 4 0 NULL NULL ... 2008-04-30 00:00:00 NULL \n", " 4 316 1 NULL NULL ... 2008-04-30 00:00:00 NULL \n", " ... ... ... ... ... ... \n", " 499 995 1 5 96 ... 2013-05-30 00:00:00 NULL \n", " 500 996 1 5 97 ... 2013-05-30 00:00:00 NULL \n", " 501 997 1 2 31 ... 2013-05-30 00:00:00 NULL \n", " 502 998 1 2 31 ... 2013-05-30 00:00:00 NULL \n", " 503 999 1 2 31 ... 2013-05-30 00:00:00 NULL \n", "\n", "name DiscontinuedDate rowguid ModifiedDate \n", "role unused_string unused_string unused_string \n", " 0 NULL 694215B7-08F7-4C0D-ACB1-D734BA44... 2014-02-08 10:01:36\n", " 1 NULL 58AE3C20-4F3A-4749-A7D4-D568806C... 2014-02-08 10:01:36\n", " 2 NULL 9C21AED2-5BFA-4F18-BCB8-F11638DC... 2014-02-08 10:01:36\n", " 3 NULL ECFED6CB-51FF-49B5-B06C-7D8AC834... 2014-02-08 10:01:36\n", " 4 NULL E73E9750-603B-4131-89F5-3DD15ED5... 2014-02-08 10:01:36\n", " ... ... ... \n", " 499 NULL 71AB847F-D091-42D6-B735-7B0C2D82... 2014-02-08 10:01:36\n", " 500 NULL 230C47C5-08B2-4CE3-B706-69C0BDD6... 2014-02-08 10:01:36\n", " 501 NULL 44CE4802-409F-43AB-9B27-CA534218... 2014-02-08 10:01:36\n", " 502 NULL 3DE9A212-1D49-40B6-B10A-F564D981... 2014-02-08 10:01:36\n", " 503 NULL AE638923-2B67-4679-B90E-ABBAB17D... 2014-02-08 10:01:36\n", "\n", "\n", "504 rows x 25 columns\n", "memory usage: 0.17 MB\n", "name: Product\n", "type: getml.DataFrame\n", "url: http://localhost:1709/#/getdataframe/adventure_works/Product/" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "product.set_role(\"ProductID\", getml.data.roles.join_key)\n", "product.set_role([\"MakeFlag\", \"ProductSubcategoryID\", \"ProductModelID\"], getml.data.roles.categorical)\n", "product.set_role([\"SafetyStockLevel\", \"ReorderPoint\", \"StandardCost\", \"ListPrice\"], getml.data.roles.numerical)\n", "\n", "product" ] }, { "cell_type": "code", "execution_count": 12, "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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", "
name ModifiedDateSalesOrderIDSalesOrderDetailIDProductIDSpecialOfferID OrderQtyUnitPriceUnitPriceDiscountLineTotalCarrierTrackingNumberrowguid
role time_stamp join_key join_key join_key join_keynumericalnumerical numericalnumericalunused_string unused_string
unittime stamp, comparison only
02011-05-314365917761\n", " 1 \n", " \n", " 2024.994\n", " \n", " 0 \n", " \n", " 2024.994\n", " 4911-403C-98B207C96D-D9E6-402B-8470-2CC176C4...
12011-05-314365927771\n", " 3 \n", " \n", " 2024.994\n", " \n", " 0 \n", " \n", " 6074.982\n", " 4911-403C-987ABB600D-1E77-41BE-9FE5-B9142CFC...
22011-05-314365937781\n", " 1 \n", " \n", " 2024.994\n", " \n", " 0 \n", " \n", " 2024.994\n", " 4911-403C-98475CF8C6-49F6-486E-B0AD-AFC6A50C...
32011-05-314365947711\n", " 1 \n", " \n", " 2039.994\n", " \n", " 0 \n", " \n", " 2039.994\n", " 4911-403C-9804C4DE91-5815-45D6-8670-F462719F...
42011-05-314365957721\n", " 1 \n", " \n", " 2039.994\n", " \n", " 0 \n", " \n", " 2039.994\n", " 4911-403C-985A74C7D2-E641-438E-A7AC-37BF2328...
...............\n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " ......
1213122014-06-30751221213138781\n", " 1 \n", " \n", " 21.98\n", " \n", " 0 \n", " \n", " 21.98\n", " NULL8CAD6675-18CC-4F47-8287-97B41A8E...
1213132014-06-30751221213147121\n", " 1 \n", " \n", " 8.99\n", " \n", " 0 \n", " \n", " 8.99\n", " NULL84F1C363-1C50-4442-BE16-541C59B6...
1213142014-06-30751231213158781\n", " 1 \n", " \n", " 21.98\n", " \n", " 0 \n", " \n", " 21.98\n", " NULLC18B6476-429F-4BB1-828E-2BE5F82A...
1213152014-06-30751231213168791\n", " 1 \n", " \n", " 159 \n", " \n", " 0 \n", " \n", " 159 \n", " NULL75A89C6A-C60A-47EA-8A52-B52A9C43...
1213162014-06-30751231213177121\n", " 1 \n", " \n", " 8.99\n", " \n", " 0 \n", " \n", " 8.99\n", " NULL73646D26-0461-450D-8019-2C6C8586...
\n", "\n", "

\n", " 121317 rows x 11 columns
\n", " memory usage: 14.32 MB
\n", " name: SalesOrderDetail
\n", " type: getml.DataFrame
\n", " url: http://localhost:1709/#/getdataframe/adventure_works/SalesOrderDetail/\n", "

\n" ], "text/plain": [ " name ModifiedDate SalesOrderID SalesOrderDetailID ProductID ... UnitPrice UnitPriceDiscount\n", " role time_stamp join_key join_key join_key ... numerical numerical\n", " unit time stamp, comparison only ... \n", " 0 2011-05-31 43659 1 776 ... 2024.994 0\n", " 1 2011-05-31 43659 2 777 ... 2024.994 0\n", " 2 2011-05-31 43659 3 778 ... 2024.994 0\n", " 3 2011-05-31 43659 4 771 ... 2039.994 0\n", " 4 2011-05-31 43659 5 772 ... 2039.994 0\n", " ... ... ... ... ... ...\n", "121312 2014-06-30 75122 121313 878 ... 21.98 0\n", "121313 2014-06-30 75122 121314 712 ... 8.99 0\n", "121314 2014-06-30 75123 121315 878 ... 21.98 0\n", "121315 2014-06-30 75123 121316 879 ... 159 0\n", "121316 2014-06-30 75123 121317 712 ... 8.99 0\n", "\n", " name LineTotal CarrierTrackingNumber rowguid \n", " role numerical unused_string unused_string \n", " unit \n", " 0 2024.994 4911-403C-98 B207C96D-D9E6-402B-8470-2CC176C4...\n", " 1 6074.982 4911-403C-98 7ABB600D-1E77-41BE-9FE5-B9142CFC...\n", " 2 2024.994 4911-403C-98 475CF8C6-49F6-486E-B0AD-AFC6A50C...\n", " 3 2039.994 4911-403C-98 04C4DE91-5815-45D6-8670-F462719F...\n", " 4 2039.994 4911-403C-98 5A74C7D2-E641-438E-A7AC-37BF2328...\n", " ... ... ... \n", "121312 21.98 NULL 8CAD6675-18CC-4F47-8287-97B41A8E...\n", "121313 8.99 NULL 84F1C363-1C50-4442-BE16-541C59B6...\n", "121314 21.98 NULL C18B6476-429F-4BB1-828E-2BE5F82A...\n", "121315 159 NULL 75A89C6A-C60A-47EA-8A52-B52A9C43...\n", "121316 8.99 NULL 73646D26-0461-450D-8019-2C6C8586...\n", "\n", "\n", "121317 rows x 11 columns\n", "memory usage: 14.32 MB\n", "name: SalesOrderDetail\n", "type: getml.DataFrame\n", "url: http://localhost:1709/#/getdataframe/adventure_works/SalesOrderDetail/" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sales_order_detail.set_role([\"SalesOrderID\", \"SalesOrderDetailID\", \"ProductID\", \"SpecialOfferID\"], getml.data.roles.join_key)\n", "sales_order_detail.set_role([\"OrderQty\", \"UnitPrice\", \"UnitPriceDiscount\", \"LineTotal\"], getml.data.roles.numerical)\n", "sales_order_detail.set_role(\"ModifiedDate\", getml.data.roles.time_stamp)\n", "\n", "sales_order_detail" ] }, { "cell_type": "code", "execution_count": 13, "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", " \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", " \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", " \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", "
nameSalesOrderIDSalesReasonIDModifiedDate
role join_keycategorical unused_string
04369752011-05-31 00:00:00
14369792011-05-31 00:00:00
24370252011-06-01 00:00:00
34370292011-06-01 00:00:00
44370352011-06-01 00:00:00
.........
276427511912014-06-30 00:00:00
276437512012014-06-30 00:00:00
276447512112014-06-30 00:00:00
276457512212014-06-30 00:00:00
276467512312014-06-30 00:00:00
\n", "\n", "

\n", " 27647 rows x 3 columns
\n", " memory usage: 1.00 MB
\n", " name: SalesOrderHeaderSalesReason
\n", " type: getml.DataFrame
\n", " url: http://localhost:1709/#/getdataframe/adventure_works/SalesOrderHeaderSalesReason/\n", "

\n" ], "text/plain": [ " name SalesOrderID SalesReasonID ModifiedDate \n", " role join_key categorical unused_string \n", " 0 43697 5 2011-05-31 00:00:00\n", " 1 43697 9 2011-05-31 00:00:00\n", " 2 43702 5 2011-06-01 00:00:00\n", " 3 43702 9 2011-06-01 00:00:00\n", " 4 43703 5 2011-06-01 00:00:00\n", " ... ... ... \n", "27642 75119 1 2014-06-30 00:00:00\n", "27643 75120 1 2014-06-30 00:00:00\n", "27644 75121 1 2014-06-30 00:00:00\n", "27645 75122 1 2014-06-30 00:00:00\n", "27646 75123 1 2014-06-30 00:00:00\n", "\n", "\n", "27647 rows x 3 columns\n", "memory usage: 1.00 MB\n", "name: SalesOrderHeaderSalesReason\n", "type: getml.DataFrame\n", "url: http://localhost:1709/#/getdataframe/adventure_works/SalesOrderHeaderSalesReason/" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sales_order_reason.set_role(\"SalesOrderID\", getml.data.roles.join_key)\n", "sales_order_reason.set_role(\"SalesReasonID\", getml.data.roles.categorical)\n", "\n", "sales_order_reason" ] }, { "cell_type": "code", "execution_count": 14, "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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", "
name StartDate EndDateSpecialOfferIDCategory Description Type MinQtyDiscountPct MaxQtyrowguid ModifiedDate
role time_stamp time_stamp join_keycategoricalcategorical categorical numerical numericalunused_floatunused_string unused_string
unittime stamp, comparison onlytime stamp, comparison only
02011-05-012014-11-301No DiscountNo DiscountNo Discount\n", " 0 \n", " \n", " 0 \n", " \n", " nan \n", " 0290C4F5-191F-4337-AB6B-0A2DDE03...2011-04-01 00:00:00
12011-05-312014-05-302ResellerVolume Discount 11 to 14Volume Discount\n", " 11 \n", " \n", " 0.02\n", " \n", " 14 \n", " D7542EE7-15DB-4541-985C-5CC27AEF...2011-05-01 00:00:00
22011-05-312014-05-303ResellerVolume Discount 15 to 24Volume Discount\n", " 15 \n", " \n", " 0.05\n", " \n", " 24 \n", " 4BDBCC01-8CF7-40A9-B643-40EC5B71...2011-05-01 00:00:00
32011-05-312014-05-304ResellerVolume Discount 25 to 40Volume Discount\n", " 25 \n", " \n", " 0.1\n", " \n", " 40 \n", " 504B5E85-8F3F-4EBC-9E1D-C1BC5DEA...2011-05-01 00:00:00
42011-05-312014-05-305ResellerVolume Discount 41 to 60Volume Discount\n", " 41 \n", " \n", " 0.15\n", " \n", " 60 \n", " 677E1D9D-944F-4E81-90E8-47EB0A82...2011-05-01 00:00:00
..................\n", " ... \n", " \n", " ... \n", " \n", " ... \n", " ......
112013-05-302013-07-1412ResellerLL Road Frame SaleExcess Inventory\n", " 0 \n", " \n", " 0.35\n", " \n", " nan \n", " C0AF1C89-9722-4235-9248-3FBA4D9E...2013-04-30 00:00:00
122013-05-302013-08-2913ResellerTouring-3000 PromotionNew Product\n", " 0 \n", " \n", " 0.15\n", " \n", " nan \n", " 5061CCE4-E021-45A8-9A75-DFB36CBB...2013-04-30 00:00:00
132013-05-302013-08-2914ResellerTouring-1000 PromotionNew Product\n", " 0 \n", " \n", " 0.2\n", " \n", " nan \n", " 1AF84A9E-A98C-4BD9-B48F-DC2B8B6B...2013-04-30 00:00:00
142013-07-142013-08-1415CustomerHalf-Price Pedal SaleSeasonal Discount\n", " 0 \n", " \n", " 0.5\n", " \n", " nan \n", " 03E3594D-6EBB-46A6-B8EE-A9289C0C...2013-06-14 00:00:00
152014-03-312014-05-3016ResellerMountain-500 Silver Clearance Sa...Discontinued Product\n", " 0 \n", " \n", " 0.4\n", " \n", " nan \n", " EB7CB484-BCCF-4D2D-BF73-521B2001...2014-03-01 00:00:00
\n", "\n", "

\n", " 16 rows x 11 columns
\n", " memory usage: 0.00 MB
\n", " name: SpecialOffer
\n", " type: getml.DataFrame
\n", " url: http://localhost:1709/#/getdataframe/adventure_works/SpecialOffer/\n", "

\n" ], "text/plain": [ "name StartDate EndDate SpecialOfferID Category ... MinQty\n", "role time_stamp time_stamp join_key categorical ... numerical\n", "unit time stamp, comparison only time stamp, comparison only ... \n", " 0 2011-05-01 2014-11-30 1 No Discount ... 0\n", " 1 2011-05-31 2014-05-30 2 Reseller ... 11\n", " 2 2011-05-31 2014-05-30 3 Reseller ... 15\n", " 3 2011-05-31 2014-05-30 4 Reseller ... 25\n", " 4 2011-05-31 2014-05-30 5 Reseller ... 41\n", " ... ... ... ... ...\n", " 11 2013-05-30 2013-07-14 12 Reseller ... 0\n", " 12 2013-05-30 2013-08-29 13 Reseller ... 0\n", " 13 2013-05-30 2013-08-29 14 Reseller ... 0\n", " 14 2013-07-14 2013-08-14 15 Customer ... 0\n", " 15 2014-03-31 2014-05-30 16 Reseller ... 0\n", "\n", "name DiscountPct MaxQty rowguid ModifiedDate \n", "role numerical unused_float unused_string unused_string \n", "unit \n", " 0 0 nan 0290C4F5-191F-4337-AB6B-0A2DDE03... 2011-04-01 00:00:00\n", " 1 0.02 14 D7542EE7-15DB-4541-985C-5CC27AEF... 2011-05-01 00:00:00\n", " 2 0.05 24 4BDBCC01-8CF7-40A9-B643-40EC5B71... 2011-05-01 00:00:00\n", " 3 0.1 40 504B5E85-8F3F-4EBC-9E1D-C1BC5DEA... 2011-05-01 00:00:00\n", " 4 0.15 60 677E1D9D-944F-4E81-90E8-47EB0A82... 2011-05-01 00:00:00\n", " ... ... ... ... \n", " 11 0.35 nan C0AF1C89-9722-4235-9248-3FBA4D9E... 2013-04-30 00:00:00\n", " 12 0.15 nan 5061CCE4-E021-45A8-9A75-DFB36CBB... 2013-04-30 00:00:00\n", " 13 0.2 nan 1AF84A9E-A98C-4BD9-B48F-DC2B8B6B... 2013-04-30 00:00:00\n", " 14 0.5 nan 03E3594D-6EBB-46A6-B8EE-A9289C0C... 2013-06-14 00:00:00\n", " 15 0.4 nan EB7CB484-BCCF-4D2D-BF73-521B2001... 2014-03-01 00:00:00\n", "\n", "\n", "16 rows x 11 columns\n", "memory usage: 0.00 MB\n", "name: SpecialOffer\n", "type: getml.DataFrame\n", "url: http://localhost:1709/#/getdataframe/adventure_works/SpecialOffer/" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "special_offer.set_role([\"SpecialOfferID\"], getml.data.roles.join_key)\n", "special_offer.set_role([\"MinQty\", \"DiscountPct\"], getml.data.roles.numerical)\n", "special_offer.set_role([\"Category\", \"Description\", \"Type\"], getml.data.roles.categorical)\n", "special_offer.set_role([\"StartDate\", \"EndDate\"], getml.data.roles.time_stamp)\n", "\n", "special_offer" ] }, { "cell_type": "code", "execution_count": 15, "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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", "
name testSalesPersonIDBusinessEntityIDName Demographics rowguid ModifiedDate
role time_stamp join_key unused_floatunused_string unused_string unused_string unused_string
unittime stamp, comparison only
02014-09-12 11:15:07279\n", " 292 \n", " Next-Door Bike Store<StoreSurvey xmlns="http://schem...A22517E3-848D-4EBE-B9D9-7437F343...2014-09-12 11:15:07
1NULL276\n", " 294 \n", " Professional Sales and Service<StoreSurvey xmlns="http://schem...B50CA50B-C601-4A13-B07E-2C63862D...2014-09-12 11:15:07
22014-09-12 11:15:07277\n", " 296 \n", " Riders Company<StoreSurvey xmlns="http://schem...337C3688-1339-4E1A-A08A-B54B2356...2014-09-12 11:15:07
3NULL275\n", " 298 \n", " The Bike Mechanics<StoreSurvey xmlns="http://schem...7894F278-F0C8-4D16-BD75-213FDBF1...2014-09-12 11:15:07
4NULL286\n", " 300 \n", " Nationwide Supply<StoreSurvey xmlns="http://schem...C3FC9705-A8C4-4F3A-9550-EB2FA4B7...2014-09-12 11:15:07
......\n", " ... \n", " ............
696NULL282\n", " 1988 \n", " Retreat Inn<StoreSurvey xmlns="http://schem...EA21EC81-1BFA-4A07-9B4D-73D9852A...2014-09-12 11:15:07
6972014-09-12 11:15:07281\n", " 1990 \n", " Technical Parts Manufacturing<StoreSurvey xmlns="http://schem...C8E3C4ED-8F58-4DB2-B600-E0CD11D9...2014-09-12 11:15:07
698NULL277\n", " 1992 \n", " Totes & Baskets Company<StoreSurvey xmlns="http://schem...CE860B58-643C-4567-BFD8-06E97969...2014-09-12 11:15:07
699NULL277\n", " 1994 \n", " World of Bikes<StoreSurvey xmlns="http://schem...0C10F2B6-A13A-440C-9C25-5B28D482...2014-09-12 11:15:07
7002014-09-12 11:15:07275\n", " 2051 \n", " A Bicycle Association<StoreSurvey xmlns="http://schem...82237172-D3FE-4A95-82EF-636F6552...2014-09-12 11:15:07
\n", "\n", "

\n", " 701 rows x 7 columns
\n", " memory usage: 0.38 MB
\n", " name: Store
\n", " type: getml.DataFrame
\n", " url: http://localhost:1709/#/getdataframe/adventure_works/Store/\n", "

\n" ], "text/plain": [ "name test SalesPersonID BusinessEntityID Name \n", "role time_stamp join_key unused_float unused_string \n", "unit time stamp, comparison only \n", " 0 2014-09-12 11:15:07 279 292 Next-Door Bike Store \n", " 1 NULL 276 294 Professional Sales and Service\n", " 2 2014-09-12 11:15:07 277 296 Riders Company \n", " 3 NULL 275 298 The Bike Mechanics \n", " 4 NULL 286 300 Nationwide Supply \n", " ... ... ... ... \n", " 696 NULL 282 1988 Retreat Inn \n", " 697 2014-09-12 11:15:07 281 1990 Technical Parts Manufacturing \n", " 698 NULL 277 1992 Totes & Baskets Company \n", " 699 NULL 277 1994 World of Bikes \n", " 700 2014-09-12 11:15:07 275 2051 A Bicycle Association \n", "\n", "name Demographics rowguid ModifiedDate \n", "role unused_string unused_string unused_string \n", "unit \n", " 0 0.5, \"NULL\")\n", "\n", "store.set_role([\"SalesPersonID\"], getml.data.roles.join_key)\n", "store.set_role([\"test\"], getml.data.roles.time_stamp)\n", "\n", "store" ] }, { "cell_type": "code", "execution_count": 16, "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", " \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", " \n", " \n", " \n", " \n", " \n", "
testSalesPersonIDBusinessEntityIDNameDemographicsrowguidModifiedDate
02014-09-12 11:15:07279292.0Next-Door Bike Store<StoreSurvey xmlns=\"http://schemas.microsoft.c...A22517E3-848D-4EBE-B9D9-7437F34323042014-09-12 11:15:07
1NaT276294.0Professional Sales and Service<StoreSurvey xmlns=\"http://schemas.microsoft.c...B50CA50B-C601-4A13-B07E-2C63862D71B42014-09-12 11:15:07
22014-09-12 11:15:07277296.0Riders Company<StoreSurvey xmlns=\"http://schemas.microsoft.c...337C3688-1339-4E1A-A08A-B54B23566E492014-09-12 11:15:07
3NaT275298.0The Bike Mechanics<StoreSurvey xmlns=\"http://schemas.microsoft.c...7894F278-F0C8-4D16-BD75-213FDBF130232014-09-12 11:15:07
4NaT286300.0Nationwide Supply<StoreSurvey xmlns=\"http://schemas.microsoft.c...C3FC9705-A8C4-4F3A-9550-EB2FA4B7B64D2014-09-12 11:15:07
........................
696NaT2821988.0Retreat Inn<StoreSurvey xmlns=\"http://schemas.microsoft.c...EA21EC81-1BFA-4A07-9B4D-73D9852AFCBF2014-09-12 11:15:07
6972014-09-12 11:15:072811990.0Technical Parts Manufacturing<StoreSurvey xmlns=\"http://schemas.microsoft.c...C8E3C4ED-8F58-4DB2-B600-E0CD11D9CFAD2014-09-12 11:15:07
698NaT2771992.0Totes & Baskets Company<StoreSurvey xmlns=\"http://schemas.microsoft.c...CE860B58-643C-4567-BFD8-06E97969CC672014-09-12 11:15:07
699NaT2771994.0World of Bikes<StoreSurvey xmlns=\"http://schemas.microsoft.c...0C10F2B6-A13A-440C-9C25-5B28D482872A2014-09-12 11:15:07
7002014-09-12 11:15:072752051.0A Bicycle Association<StoreSurvey xmlns=\"http://schemas.microsoft.c...82237172-D3FE-4A95-82EF-636F655240AD2014-09-12 11:15:07
\n", "

701 rows × 7 columns

\n", "
" ], "text/plain": [ " test SalesPersonID BusinessEntityID \\\n", "0 2014-09-12 11:15:07 279 292.0 \n", "1 NaT 276 294.0 \n", "2 2014-09-12 11:15:07 277 296.0 \n", "3 NaT 275 298.0 \n", "4 NaT 286 300.0 \n", ".. ... ... ... \n", "696 NaT 282 1988.0 \n", "697 2014-09-12 11:15:07 281 1990.0 \n", "698 NaT 277 1992.0 \n", "699 NaT 277 1994.0 \n", "700 2014-09-12 11:15:07 275 2051.0 \n", "\n", " Name \\\n", "0 Next-Door Bike Store \n", "1 Professional Sales and Service \n", "2 Riders Company \n", "3 The Bike Mechanics \n", "4 Nationwide Supply \n", ".. ... \n", "696 Retreat Inn \n", "697 Technical Parts Manufacturing \n", "698 Totes & Baskets Company \n", "699 World of Bikes \n", "700 A Bicycle Association \n", "\n", " Demographics \\\n", "0 \n", " table {\n", " font-family: Helvetica, sans-serif;\n", " }\n", "\n", " th {\n", " text-align: left !important;\n", " }\n", " td {\n", " text-align: left !important;\n", " }\n", " th:nth-child(1) {\n", " text-align: right !important;\n", " border-right: 1px solid LightGray;\n", " }\n", " th.sub-header {\n", " font-weight: normal;\n", " font-style: italic;\n", " }\n", " .join_key,\n", " .numerical,\n", " .target,\n", " .unused_float {\n", " text-align: right !important;\n", " }\n", "\n", " .char-align {\n", " text-align: right !important;\n", " }\n", " span.left {\n", " text-align: right;\n", " width: 3em;\n", " }\n", " span.right {\n", " float: right;\n", " text-align: left;\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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", "
name OrderDate DueDate ShipDate ModifiedDateCustomerIDSalesOrderIDSalesPersonIDTerritoryIDRevisionNumberOnlineOrderFlagSalesPersonIDCatTerritoryIDCatShipMethodID SubTotal TaxAmt Freight TotalDue StatusBillToAddressIDShipToAddressIDCreditCardIDCurrencyRateIDSalesOrderNumberPurchaseOrderNumberAccountNumber CreditCardApprovalCodeComment rowguid
role time_stamp time_stamp time_stamp time_stamp join_key join_key join_key join_keycategorical categorical categorical categorical categorical numericalnumericalnumerical numericalunused_float unused_float unused_floatunused_float unused_floatunused_string unused_string unused_string unused_string unused_stringunused_string
unittime stamp, comparison onlytime stamp, comparison onlytime stamp, comparison onlytime stamp, comparison only
02011-05-312011-06-122011-06-072011-06-07298254365927958027955\n", " 20565.6206\n", " \n", " 1971.5149\n", " \n", " 616.0984\n", " \n", " 23153.2339\n", " \n", " 5 \n", " \n", " 985 \n", " \n", " 985 \n", " \n", " 16281 \n", " \n", " nan \n", " SO43659PO52214578710-4020-000676105041Vi84182NULL79B65321-39CA-4115-9CBA-8FE0903E...
12011-05-312011-06-122011-06-072011-06-07296724366027958027955\n", " 1294.2529\n", " \n", " 124.2483\n", " \n", " 38.8276\n", " \n", " 1457.3288\n", " \n", " 5 \n", " \n", " 921 \n", " \n", " 921 \n", " \n", " 5618 \n", " \n", " nan \n", " SO43660PO1885012750010-4020-000117115213Vi29411NULL738DC42D-D03B-48A1-9822-F95A67EA...
22011-05-312011-06-122011-06-072011-06-07297344366128268028265\n", " 32726.4786\n", " \n", " 3153.7696\n", " \n", " 985.553\n", " \n", " 36865.8012\n", " \n", " 5 \n", " \n", " 517 \n", " \n", " 517 \n", " \n", " 1346 \n", " \n", " 4 \n", " SO43661PO1847318962010-4020-00044285274Vi6854NULLD91B9131-18A4-4A11-BC3A-90B6F53E...
32011-05-312011-06-122011-06-072011-06-07299944366228268028265\n", " 28832.5289\n", " \n", " 2775.1646\n", " \n", " 867.2389\n", " \n", " 32474.9324\n", " \n", " 5 \n", " \n", " 482 \n", " \n", " 482 \n", " \n", " 10456 \n", " \n", " 4 \n", " SO43662PO1844417404410-4020-000227125295Vi53935NULL4A1ECFC0-CC3A-4740-B028-1C50BB48...
42011-05-312011-06-122011-06-072011-06-07295654366327648027645\n", " 419.4589\n", " \n", " 40.2681\n", " \n", " 12.5838\n", " \n", " 472.3108\n", " \n", " 5 \n", " \n", " 1073 \n", " \n", " 1073 \n", " \n", " 4322 \n", " \n", " nan \n", " SO43663PO1800918647010-4020-00051045303Vi22691NULL9B1E7A40-6AE0-4AD3-811C-A6495185...
.......................................\n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " ..................
314602014-06-302014-07-122014-07-072014-07-071198175119NULL181NULL11\n", " 42.28\n", " \n", " 3.3824\n", " \n", " 1.057\n", " \n", " 46.7194\n", " \n", " 5 \n", " \n", " 17649 \n", " \n", " 17649 \n", " \n", " 6761 \n", " \n", " nan \n", " SO75119NULL10-4030-011981429826Vi35166NULL9382F1C9-383A-435F-9449-0EECEA21...
314612014-06-302014-07-122014-07-072014-07-071874975120NULL681NULL61\n", " 84.96\n", " \n", " 6.7968\n", " \n", " 2.124\n", " \n", " 93.8808\n", " \n", " 5 \n", " \n", " 28374 \n", " \n", " 28374 \n", " \n", " 8925 \n", " \n", " nan \n", " SO75120NULL10-4030-018749929849Vi46003NULLAE6A4FCF-FF73-4CD4-AF2C-5993D00D...
314622014-06-302014-07-122014-07-072014-07-071525175121NULL681NULL61\n", " 74.98\n", " \n", " 5.9984\n", " \n", " 1.8745\n", " \n", " 82.8529\n", " \n", " 5 \n", " \n", " 26553 \n", " \n", " 26553 \n", " \n", " 14220 \n", " \n", " nan \n", " SO75121NULL10-4030-015251529864Vi73738NULLD7395C0E-00CB-4BFA-A238-0D6A9F49...
314632014-06-302014-07-122014-07-072014-07-071586875122NULL681NULL61\n", " 30.97\n", " \n", " 2.4776\n", " \n", " 0.7743\n", " \n", " 34.2219\n", " \n", " 5 \n", " \n", " 14616 \n", " \n", " 14616 \n", " \n", " 18719 \n", " \n", " nan \n", " SO75122NULL10-4030-015868330022Vi97312NULL4221035A-4159-492F-AF40-4363A64F...
314642014-06-302014-07-122014-07-072014-07-071875975123NULL681NULL61\n", " 189.97\n", " \n", " 15.1976\n", " \n", " 4.7493\n", " \n", " 209.9169\n", " \n", " 5 \n", " \n", " 14024 \n", " \n", " 14024 \n", " \n", " 10084 \n", " \n", " nan \n", " SO75123NULL10-4030-018759230370Vi51970NULLD54752FF-2B54-4BE5-95EA-3B72289C...
\n", "\n", "

\n", " 31465 rows x 28 columns
\n", " memory usage: 8.58 MB
\n", " name: SalesOrderHeader
\n", " type: getml.DataFrame
\n", " url: http://localhost:1709/#/getdataframe/adventure_works/SalesOrderHeader/\n", "

\n" ], "text/plain": [ " name OrderDate DueDate ShipDate ModifiedDate\n", " role time_stamp time_stamp time_stamp time_stamp\n", " unit time stamp, comparison only time stamp, comparison only time stamp, comparison only time stamp, comparison only\n", " 0 2011-05-31 2011-06-12 2011-06-07 2011-06-07\n", " 1 2011-05-31 2011-06-12 2011-06-07 2011-06-07\n", " 2 2011-05-31 2011-06-12 2011-06-07 2011-06-07\n", " 3 2011-05-31 2011-06-12 2011-06-07 2011-06-07\n", " 4 2011-05-31 2011-06-12 2011-06-07 2011-06-07\n", " ... ... ... ...\n", "31460 2014-06-30 2014-07-12 2014-07-07 2014-07-07\n", "31461 2014-06-30 2014-07-12 2014-07-07 2014-07-07\n", "31462 2014-06-30 2014-07-12 2014-07-07 2014-07-07\n", "31463 2014-06-30 2014-07-12 2014-07-07 2014-07-07\n", "31464 2014-06-30 2014-07-12 2014-07-07 2014-07-07\n", "\n", " name ... PurchaseOrderNumber AccountNumber CreditCardApprovalCode Comment rowguid \n", " role ... unused_string unused_string unused_string unused_string unused_string \n", " unit ... \n", " 0 ... PO522145787 10-4020-000676 105041Vi84182 NULL \n", " 1 ... PO18850127500 10-4020-000117 115213Vi29411 NULL \n", " 2 ... PO18473189620 10-4020-000442 85274Vi6854 NULL \n", " 3 ... PO18444174044 10-4020-000227 125295Vi53935 NULL \n", " 4 ... PO18009186470 10-4020-000510 45303Vi22691 NULL \n", " ... ... ... ... ... \n", "31460 ... NULL 10-4030-011981 429826Vi35166 NULL \n", "31461 ... NULL 10-4030-018749 929849Vi46003 NULL \n", "31462 ... NULL 10-4030-015251 529864Vi73738 NULL \n", "31463 ... NULL 10-4030-015868 330022Vi97312 NULL \n", "31464 ... NULL 10-4030-018759 230370Vi51970 NULL \n", "\n", " 0 79B65321-39CA-4115-9CBA-8FE0903E...\n", " 1 738DC42D-D03B-48A1-9822-F95A67EA...\n", " 2 D91B9131-18A4-4A11-BC3A-90B6F53E...\n", " 3 4A1ECFC0-CC3A-4740-B028-1C50BB48...\n", " 4 9B1E7A40-6AE0-4AD3-811C-A6495185...\n", "31460 9382F1C9-383A-435F-9449-0EECEA21...\n", "31461 AE6A4FCF-FF73-4CD4-AF2C-5993D00D...\n", "31462 D7395C0E-00CB-4BFA-A238-0D6A9F49...\n", "31463 4221035A-4159-492F-AF40-4363A64F...\n", "31464 D54752FF-2B54-4BE5-95EA-3B72289C...\n", "\n", "\n", "31465 rows x 28 columns\n", "memory usage: 8.58 MB\n", "name: SalesOrderHeader\n", "type: getml.DataFrame\n", "url: http://localhost:1709/#/getdataframe/adventure_works/SalesOrderHeader/" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sales_order_header[\"SalesPersonIDCat\"] = sales_order_header[\"SalesPersonID\"]\n", "sales_order_header[\"TerritoryIDCat\"] = sales_order_header[\"TerritoryID\"]\n", "\n", "sales_order_header.set_role([\"CustomerID\", \"SalesOrderID\", \"SalesPersonID\", \"TerritoryID\"], getml.data.roles.join_key)\n", "sales_order_header.set_role(\n", " [\"RevisionNumber\", \"OnlineOrderFlag\", \"SalesPersonIDCat\", \"TerritoryIDCat\", \"ShipMethodID\"], \n", " getml.data.roles.categorical)\n", "sales_order_header.set_role([\"SubTotal\", \"TaxAmt\", \"Freight\", \"TotalDue\"], getml.data.roles.numerical)\n", "sales_order_header.set_role([\"OrderDate\", \"DueDate\", \"ShipDate\", \"ModifiedDate\"], getml.data.roles.time_stamp)\n", "\n", "sales_order_header" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We must also define customer churn. In this case, we define customer churn as a customer not making another purchase within 180 days of his or her last purchase.\n", "\n", "Thus, the churn variable is defined as follows:\n", "\n", "- 0, if another purchase by the same customer has been made within 180 days after `OrderDate`\n", "- 1, if no purchase by the same customer has been made within 180 days after `OrderDate`\n", "- NULL, if `max(OrderDate) - OrderDate <= 180 days`\n", "\n", "NULL targets can not be used in our analysis." ] }, { "cell_type": "code", "execution_count": 18, "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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
name OrderDate DueDate ShipDate ModifiedDateCustomerIDSalesOrderIDSalesPersonIDTerritoryID churnRevisionNumberOnlineOrderFlagSalesPersonIDCatTerritoryIDCatShipMethodID SubTotal TaxAmt Freight TotalDue StatusBillToAddressIDShipToAddressIDCreditCardIDCurrencyRateIDSalesOrderNumberPurchaseOrderNumberAccountNumber CreditCardApprovalCodeComment rowguid
role time_stamp time_stamp time_stamp time_stamp join_key join_key join_key join_keytargetcategorical categorical categorical categorical categorical numericalnumericalnumerical numericalunused_float unused_float unused_floatunused_float unused_floatunused_string unused_string unused_string unused_string unused_stringunused_string
unittime stamp, comparison onlytime stamp, comparison onlytime stamp, comparison onlytime stamp, comparison only
02011-05-312011-06-122011-06-072011-06-0729825436592795\n", " 0 \n", " 8027955\n", " 20565.6206\n", " \n", " 1971.5149\n", " \n", " 616.0984\n", " \n", " 23153.2339\n", " \n", " 5 \n", " \n", " 985 \n", " \n", " 985 \n", " \n", " 16281 \n", " \n", " nan \n", " SO43659PO52214578710-4020-000676105041Vi84182NULL79B65321-39CA-4115-9CBA-8FE0903E...
12011-05-312011-06-122011-06-072011-06-0729672436602795\n", " 0 \n", " 8027955\n", " 1294.2529\n", " \n", " 124.2483\n", " \n", " 38.8276\n", " \n", " 1457.3288\n", " \n", " 5 \n", " \n", " 921 \n", " \n", " 921 \n", " \n", " 5618 \n", " \n", " nan \n", " SO43660PO1885012750010-4020-000117115213Vi29411NULL738DC42D-D03B-48A1-9822-F95A67EA...
22011-05-312011-06-122011-06-072011-06-0729734436612826\n", " 0 \n", " 8028265\n", " 32726.4786\n", " \n", " 3153.7696\n", " \n", " 985.553\n", " \n", " 36865.8012\n", " \n", " 5 \n", " \n", " 517 \n", " \n", " 517 \n", " \n", " 1346 \n", " \n", " 4 \n", " SO43661PO1847318962010-4020-00044285274Vi6854NULLD91B9131-18A4-4A11-BC3A-90B6F53E...
32011-05-312011-06-122011-06-072011-06-0729994436622826\n", " 0 \n", " 8028265\n", " 28832.5289\n", " \n", " 2775.1646\n", " \n", " 867.2389\n", " \n", " 32474.9324\n", " \n", " 5 \n", " \n", " 482 \n", " \n", " 482 \n", " \n", " 10456 \n", " \n", " 4 \n", " SO43662PO1844417404410-4020-000227125295Vi53935NULL4A1ECFC0-CC3A-4740-B028-1C50BB48...
42011-05-312011-06-122011-06-072011-06-0729565436632764\n", " 0 \n", " 8027645\n", " 419.4589\n", " \n", " 40.2681\n", " \n", " 12.5838\n", " \n", " 472.3108\n", " \n", " 5 \n", " \n", " 1073 \n", " \n", " 1073 \n", " \n", " 4322 \n", " \n", " nan \n", " SO43663PO1800918647010-4020-00051045303Vi22691NULL9B1E7A40-6AE0-4AD3-811C-A6495185...
........................\n", " ... \n", " ...............\n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " ..................
196992013-12-312014-01-122014-01-072014-01-072082663358NULL7\n", " 1 \n", " 81NULL71\n", " 1173.96\n", " \n", " 93.9168\n", " \n", " 29.349\n", " \n", " 1297.2258\n", " \n", " 5 \n", " \n", " 24387 \n", " \n", " 24387 \n", " \n", " 3239 \n", " \n", " nan \n", " SO63358NULL10-4030-0208261142084Vi17039NULL41278FBB-3DD8-488B-AEA5-8BF4A6F1...
197002013-12-312014-01-122014-01-072014-01-072411463359NULL10\n", " 1 \n", " 81NULL101\n", " 1179.47\n", " \n", " 94.3576\n", " \n", " 29.4868\n", " \n", " 1303.3144\n", " \n", " 5 \n", " \n", " 29682 \n", " \n", " 29682 \n", " \n", " nan \n", " \n", " 10770 \n", " SO63359NULL10-4030-024114NULLNULL749532D4-BFF7-4FEC-9F77-396C4A96...
197012013-12-312014-01-122014-01-072014-01-071141763360NULL7\n", " 1 \n", " 81NULL71\n", " 548.98\n", " \n", " 43.9184\n", " \n", " 13.7245\n", " \n", " 606.6229\n", " \n", " 5 \n", " \n", " 21465 \n", " \n", " 21465 \n", " \n", " 6582 \n", " \n", " nan \n", " SO63360NULL10-4030-011417242387Vi34223NULLF92FA2A3-73E1-4DD0-987C-99D1C87E...
197022013-12-312014-01-122014-01-072014-01-071812563361NULL8\n", " 1 \n", " 81NULL81\n", " 2384.07\n", " \n", " 190.7256\n", " \n", " 59.6018\n", " \n", " 2634.3974\n", " \n", " 5 \n", " \n", " 26562 \n", " \n", " 26562 \n", " \n", " 11994 \n", " \n", " nan \n", " SO63361NULL10-4030-0181251242859Vi61993NULL3A3758BF-CDFA-4740-9104-87BD5A08...
197032013-12-312014-01-122014-01-072014-01-071569263362NULL10\n", " 1 \n", " 81NULL101\n", " 2419.06\n", " \n", " 193.5248\n", " \n", " 60.4765\n", " \n", " 2673.0613\n", " \n", " 5 \n", " \n", " 27090 \n", " \n", " 27090 \n", " \n", " 16083 \n", " \n", " 10770 \n", " SO63362NULL10-4030-015692242864Vi83167NULL3151D31F-4020-41B2-87F3-B6732869...
\n", "\n", "

\n", " 19704 rows x 29 columns
\n", " memory usage: 5.54 MB
\n", " name: SalesOrderHeaderRefined
\n", " type: getml.DataFrame
\n", " url: http://localhost:1709/#/getdataframe/adventure_works/SalesOrderHeaderRefined/\n", "

\n" ], "text/plain": [ " name OrderDate DueDate ShipDate ModifiedDate\n", " role time_stamp time_stamp time_stamp time_stamp\n", " unit time stamp, comparison only time stamp, comparison only time stamp, comparison only time stamp, comparison only\n", " 0 2011-05-31 2011-06-12 2011-06-07 2011-06-07\n", " 1 2011-05-31 2011-06-12 2011-06-07 2011-06-07\n", " 2 2011-05-31 2011-06-12 2011-06-07 2011-06-07\n", " 3 2011-05-31 2011-06-12 2011-06-07 2011-06-07\n", " 4 2011-05-31 2011-06-12 2011-06-07 2011-06-07\n", " ... ... ... ...\n", "19699 2013-12-31 2014-01-12 2014-01-07 2014-01-07\n", "19700 2013-12-31 2014-01-12 2014-01-07 2014-01-07\n", "19701 2013-12-31 2014-01-12 2014-01-07 2014-01-07\n", "19702 2013-12-31 2014-01-12 2014-01-07 2014-01-07\n", "19703 2013-12-31 2014-01-12 2014-01-07 2014-01-07\n", "\n", " name ... PurchaseOrderNumber AccountNumber CreditCardApprovalCode Comment rowguid \n", " role ... unused_string unused_string unused_string unused_string unused_string \n", " unit ... \n", " 0 ... PO522145787 10-4020-000676 105041Vi84182 NULL \n", " 1 ... PO18850127500 10-4020-000117 115213Vi29411 NULL \n", " 2 ... PO18473189620 10-4020-000442 85274Vi6854 NULL \n", " 3 ... PO18444174044 10-4020-000227 125295Vi53935 NULL \n", " 4 ... PO18009186470 10-4020-000510 45303Vi22691 NULL \n", " ... ... ... ... ... \n", "19699 ... NULL 10-4030-020826 1142084Vi17039 NULL \n", "19700 ... NULL 10-4030-024114 NULL NULL \n", "19701 ... NULL 10-4030-011417 242387Vi34223 NULL \n", "19702 ... NULL 10-4030-018125 1242859Vi61993 NULL \n", "19703 ... NULL 10-4030-015692 242864Vi83167 NULL \n", "\n", " 0 79B65321-39CA-4115-9CBA-8FE0903E...\n", " 1 738DC42D-D03B-48A1-9822-F95A67EA...\n", " 2 D91B9131-18A4-4A11-BC3A-90B6F53E...\n", " 3 4A1ECFC0-CC3A-4740-B028-1C50BB48...\n", " 4 9B1E7A40-6AE0-4AD3-811C-A6495185...\n", "19699 41278FBB-3DD8-488B-AEA5-8BF4A6F1...\n", "19700 749532D4-BFF7-4FEC-9F77-396C4A96...\n", "19701 F92FA2A3-73E1-4DD0-987C-99D1C87E...\n", "19702 3A3758BF-CDFA-4740-9104-87BD5A08...\n", "19703 3151D31F-4020-41B2-87F3-B6732869...\n", "\n", "\n", "19704 rows x 29 columns\n", "memory usage: 5.54 MB\n", "name: SalesOrderHeaderRefined\n", "type: getml.DataFrame\n", "url: http://localhost:1709/#/getdataframe/adventure_works/SalesOrderHeaderRefined/" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sales_order_header_pd = sales_order_header[[\"OrderDate\", \"CustomerID\", \"SalesOrderID\"]].to_pandas()\n", "\n", "repeat_purchases = sales_order_header_pd.merge(\n", " sales_order_header_pd[[\"OrderDate\", \"CustomerID\"]],\n", " on=\"CustomerID\",\n", " how=\"left\",\n", ")\n", "\n", "repeat_purchases = repeat_purchases[\n", " repeat_purchases[\"OrderDate_y\"] > repeat_purchases[\"OrderDate_x\"]\n", "]\n", "\n", "repeat_purchases = repeat_purchases[\n", " repeat_purchases[\"OrderDate_y\"] - repeat_purchases[\"OrderDate_x\"] > pd.Timedelta('180 days')\n", "]\n", "\n", "repeat_purchases.groupby(\"SalesOrderID\", as_index=False).aggregate({\"CustomerID\": \"max\"})\n", "\n", "repeat_purchase_ids = {sid: True for sid in repeat_purchases[\"SalesOrderID\"]}\n", "\n", "cut_off_date = max(sales_order_header_pd[\"OrderDate\"]) - pd.Timedelta('180 days')\n", "\n", "churn = np.asarray([\n", " np.nan if order_date >= cut_off_date else 0 if order_id in repeat_purchase_ids else 1 \n", " for (order_date, order_id) in zip(sales_order_header_pd[\"OrderDate\"], sales_order_header_pd[\"SalesOrderID\"])\n", "])\n", "\n", "sales_order_header[\"churn\"] = churn\n", "\n", "sales_order_header = sales_order_header[~sales_order_header.churn.is_nan()].to_df(\"SalesOrderHeaderRefined\")\n", "\n", "sales_order_header.set_role(\"churn\", getml.data.roles.target)\n", "\n", "sales_order_header" ] }, { "cell_type": "code", "execution_count": 19, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0train
1train
2train
3test
4train
...
\n", "\n", "

\n", " infinite number of rows
\n", " \n", " type: StringColumnView
\n", " \n", "

\n" ], "text/plain": [ " \n", " 0 train\n", " 1 train\n", " 2 train\n", " 3 test \n", " 4 train\n", " ... \n", "\n", "\n", "infinite number of rows\n", "type: StringColumnView" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "split = getml.data.split.random(train=0.8, test=0.2)\n", "split" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "

population

\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
subsetname rowstype
0testSalesOrderHeaderRefined3879View
1trainSalesOrderHeaderRefined15825View
\n", "
\n", "
\n", "

peripheral

\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", " \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", " \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", "
alias name rowstype
0productProduct504DataFrame
1sales_order_detailSalesOrderDetail121317DataFrame
2sales_order_headerSalesOrderHeaderRefined19704DataFrame
3sales_order_reasonSalesOrderHeaderSalesReason27647DataFrame
4special_offerSpecialOffer16DataFrame
5storeStore701DataFrame
\n", "
" ], "text/plain": [ "population\n", " subset name rows type\n", "0 test SalesOrderHeaderRefined 3879 View\n", "1 train SalesOrderHeaderRefined 15825 View\n", "\n", "peripheral\n", " alias name rows type \n", "0 product Product 504 DataFrame\n", "1 sales_order_detail SalesOrderDetail 121317 DataFrame\n", "2 sales_order_header SalesOrderHeaderRefined 19704 DataFrame\n", "3 sales_order_reason SalesOrderHeaderSalesReason 27647 DataFrame\n", "4 special_offer SpecialOffer 16 DataFrame\n", "5 store Store 701 DataFrame" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "container = getml.data.Container(population=sales_order_header, split=split)\n", "\n", "container.add(\n", " product=product,\n", " sales_order_detail=sales_order_detail, \n", " sales_order_header=sales_order_header, \n", " sales_order_reason=sales_order_reason,\n", " special_offer=special_offer,\n", " store=store,\n", ")\n", "\n", "container" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Predictive modeling\n", "\n", "We loaded the data and defined the roles and units. Next, we create a getML pipeline for relational learning." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.1 Define relational model" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "

diagram


sales_order_headerproductspecial_offersales_order_detailsales_order_reasonstorepopulationProductID = ProductIDRelationship: many-to-oneSpecialOfferID = SpecialOfferIDRelationship: many-to-oneCustomerID = CustomerIDOrderDate <= OrderDateHorizon: 1.0 daysLagged targets allowedSalesOrderID = SalesOrderIDSalesOrderID = SalesOrderIDSalesPersonID = SalesPersonID


staging

\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", " \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", "
data frames staging table
0populationPOPULATION__STAGING_TABLE_1
1sales_order_detail, product, special_offerSALES_ORDER_DETAIL__STAGING_TABLE_2
2sales_order_headerSALES_ORDER_HEADER__STAGING_TABLE_3
3sales_order_reasonSALES_ORDER_REASON__STAGING_TABLE_4
4storeSTORE__STAGING_TABLE_5
" ], "text/plain": [ "population:\n", " columns:\n", " - RevisionNumber: categorical\n", " - OnlineOrderFlag: categorical\n", " - SalesPersonIDCat: categorical\n", " - TerritoryIDCat: categorical\n", " - ShipMethodID: categorical\n", " - ...\n", "\n", " joins:\n", " - right: 'sales_order_header'\n", " on: (population.CustomerID, sales_order_header.CustomerID)\n", " time_stamps: (population.OrderDate, sales_order_header.OrderDate)\n", " relationship: 'many-to-many'\n", " horizon: 86400.0\n", " lagged_targets: True\n", " - right: 'sales_order_detail'\n", " on: (population.SalesOrderID, sales_order_detail.SalesOrderID)\n", " relationship: 'many-to-many'\n", " lagged_targets: False\n", " - right: 'sales_order_reason'\n", " on: (population.SalesOrderID, sales_order_reason.SalesOrderID)\n", " relationship: 'many-to-many'\n", " lagged_targets: False\n", " - right: 'store'\n", " on: (population.SalesPersonID, store.SalesPersonID)\n", " relationship: 'many-to-many'\n", " lagged_targets: False\n", "\n", "sales_order_header:\n", " columns:\n", " - RevisionNumber: categorical\n", " - OnlineOrderFlag: categorical\n", " - SalesPersonIDCat: categorical\n", " - TerritoryIDCat: categorical\n", " - ShipMethodID: categorical\n", " - ...\n", "\n", "sales_order_detail:\n", " columns:\n", " - SalesOrderID: join_key\n", " - SalesOrderDetailID: join_key\n", " - ProductID: join_key\n", " - SpecialOfferID: join_key\n", " - OrderQty: numerical\n", " - ...\n", "\n", " joins:\n", " - right: 'product'\n", " on: (sales_order_detail.ProductID, product.ProductID)\n", " relationship: 'many-to-one'\n", " lagged_targets: False\n", " - right: 'special_offer'\n", " on: (sales_order_detail.SpecialOfferID, special_offer.SpecialOfferID)\n", " relationship: 'many-to-one'\n", " lagged_targets: False\n", "\n", "product:\n", " columns:\n", " - MakeFlag: categorical\n", " - ProductSubcategoryID: categorical\n", " - ProductModelID: categorical\n", " - ProductID: join_key\n", " - SafetyStockLevel: numerical\n", " - ...\n", "\n", "special_offer:\n", " columns:\n", " - Category: categorical\n", " - Description: categorical\n", " - Type: categorical\n", " - SpecialOfferID: join_key\n", " - MinQty: numerical\n", " - ...\n", "\n", "sales_order_reason:\n", " columns:\n", " - SalesReasonID: categorical\n", " - SalesOrderID: join_key\n", " - ModifiedDate: unused_string\n", "\n", "store:\n", " columns:\n", " - SalesPersonID: join_key\n", " - test: time_stamp\n", " - BusinessEntityID: unused_float\n", " - Name: unused_string\n", " - Demographics: unused_string\n", " - ..." ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dm = getml.data.DataModel(sales_order_header.to_placeholder(\"population\"))\n", "\n", "dm.add(getml.data.to_placeholder(\n", " product=product,\n", " sales_order_detail=sales_order_detail, \n", " sales_order_header=sales_order_header, \n", " sales_order_reason=sales_order_reason,\n", " special_offer=special_offer,\n", " store=store,\n", "))\n", "\n", "\n", "dm.population.join(\n", " dm.sales_order_header,\n", " on=\"CustomerID\",\n", " time_stamps=\"OrderDate\",\n", " lagged_targets=True,\n", " horizon=getml.data.time.days(1),\n", ")\n", "\n", "dm.population.join(\n", " dm.sales_order_detail,\n", " on=\"SalesOrderID\",\n", ")\n", "\n", "dm.population.join(\n", " dm.sales_order_reason,\n", " on=\"SalesOrderID\", \n", ")\n", "\n", "dm.population.join(\n", " dm.store,\n", " on=\"SalesPersonID\", \n", ")\n", "\n", "dm.sales_order_detail.join(\n", " dm.product,\n", " on=\"ProductID\",\n", " relationship=getml.data.relationship.many_to_one,\n", ")\n", "\n", "dm.sales_order_detail.join(\n", " dm.special_offer,\n", " on=\"SpecialOfferID\",\n", " relationship=getml.data.relationship.many_to_one,\n", ")\n", "\n", "dm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.2 getML pipeline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "__Set-up the feature learner & predictor__" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "seasonal = getml.preprocessors.Seasonal()\n", "\n", "mapping = getml.preprocessors.Mapping()\n", "\n", "fast_prop = getml.feature_learning.FastProp(\n", " loss_function=getml.feature_learning.loss_functions.CrossEntropyLoss,\n", " num_threads=1, \n", " num_features=400,\n", ")\n", "\n", "relboost = getml.feature_learning.Relboost(\n", " loss_function=getml.feature_learning.loss_functions.CrossEntropyLoss,\n", " num_threads=1, \n", ")\n", "\n", "predictor = getml.predictors.XGBoostClassifier(n_jobs=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Build the pipeline__" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Pipeline(data_model='population',\n",
       "         feature_learners=['FastProp'],\n",
       "         feature_selectors=[],\n",
       "         include_categorical=True,\n",
       "         loss_function=None,\n",
       "         peripheral=['product', 'sales_order_detail', 'sales_order_header',\n",
       "                     'sales_order_reason', 'special_offer', 'store'],\n",
       "         predictors=['XGBoostClassifier'],\n",
       "         preprocessors=['Mapping'],\n",
       "         share_selected_features=0.5,\n",
       "         tags=['fast_prop'])
" ], "text/plain": [ "Pipeline(data_model='population',\n", " feature_learners=['FastProp'],\n", " feature_selectors=[],\n", " include_categorical=True,\n", " loss_function=None,\n", " peripheral=['product', 'sales_order_detail', 'sales_order_header',\n", " 'sales_order_reason', 'special_offer', 'store'],\n", " predictors=['XGBoostClassifier'],\n", " preprocessors=['Mapping'],\n", " share_selected_features=0.5,\n", " tags=['fast_prop'])" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipe1 = getml.Pipeline(\n", " tags=['fast_prop'],\n", " data_model=dm,\n", " preprocessors=[mapping],\n", " feature_learners=[fast_prop],\n", " predictors=[predictor],\n", " include_categorical=True,\n", ")\n", "\n", "pipe1" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Pipeline(data_model='population',\n",
       "         feature_learners=['Relboost'],\n",
       "         feature_selectors=[],\n",
       "         include_categorical=True,\n",
       "         loss_function=None,\n",
       "         peripheral=['product', 'sales_order_detail', 'sales_order_header',\n",
       "                     'sales_order_reason', 'special_offer', 'store'],\n",
       "         predictors=['XGBoostClassifier'],\n",
       "         preprocessors=['Seasonal', 'Mapping'],\n",
       "         share_selected_features=0.5,\n",
       "         tags=['relboost'])
" ], "text/plain": [ "Pipeline(data_model='population',\n", " feature_learners=['Relboost'],\n", " feature_selectors=[],\n", " include_categorical=True,\n", " loss_function=None,\n", " peripheral=['product', 'sales_order_detail', 'sales_order_header',\n", " 'sales_order_reason', 'special_offer', 'store'],\n", " predictors=['XGBoostClassifier'],\n", " preprocessors=['Seasonal', 'Mapping'],\n", " share_selected_features=0.5,\n", " tags=['relboost'])" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipe2 = getml.Pipeline(\n", " tags=['relboost'],\n", " data_model=dm,\n", " preprocessors=[seasonal, mapping],\n", " feature_learners=[relboost],\n", " predictors=[predictor],\n", " include_categorical=True,\n", ")\n", "\n", "pipe2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.3 Model training" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Checking data model...\n", "\n", "Staging...\n", "[========================================] 100%\n", "\n", "Preprocessing...\n", "[========================================] 100%\n", "[========================================] 100%\n", "\n", "Checking...\n", "[========================================] 100%\n", "\n", "\n", "INFO [FOREIGN KEYS NOT FOUND]: When joining POPULATION__STAGING_TABLE_1 and SALES_ORDER_REASON__STAGING_TABLE_4 over 'SalesOrderID' and 'SalesOrderID', there are no corresponding entries for 33.769352% of entries in 'SalesOrderID' in 'POPULATION__STAGING_TABLE_1'. You might want to double-check your join keys.\n", "INFO [FOREIGN KEYS NOT FOUND]: When joining POPULATION__STAGING_TABLE_1 and STORE__STAGING_TABLE_5 over 'SalesPersonID' and 'SalesPersonID', there are no corresponding entries for 84.941548% of entries in 'SalesPersonID' in 'POPULATION__STAGING_TABLE_1'. You might want to double-check your join keys.\n" ] } ], "source": [ "pipe1.check(container.train)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Checking data model...\n", "\n", "Staging...\n", "[========================================] 100%\n", "\n", "\n", "INFO [FOREIGN KEYS NOT FOUND]: When joining POPULATION__STAGING_TABLE_1 and SALES_ORDER_REASON__STAGING_TABLE_4 over 'SalesOrderID' and 'SalesOrderID', there are no corresponding entries for 33.769352% of entries in 'SalesOrderID' in 'POPULATION__STAGING_TABLE_1'. You might want to double-check your join keys.\n", "INFO [FOREIGN KEYS NOT FOUND]: When joining POPULATION__STAGING_TABLE_1 and STORE__STAGING_TABLE_5 over 'SalesPersonID' and 'SalesPersonID', there are no corresponding entries for 84.941548% of entries in 'SalesPersonID' in 'POPULATION__STAGING_TABLE_1'. You might want to double-check your join keys.\n", "\n", "Staging...\n", "[========================================] 100%\n", "\n", "Preprocessing...\n", "[========================================] 100%\n", "[========================================] 100%\n", "\n", "FastProp: Trying 710 features...\n", "[========================================] 100%\n", "\n", "FastProp: Building features...\n", "[========================================] 100%\n", "\n", "XGBoost: Training as predictor...\n", "[========================================] 100%\n", "\n", "\n", "Trained pipeline.\n", "Time taken: 0h:1m:7.794911\n", "\n" ] }, { "data": { "text/html": [ "
Pipeline(data_model='population',\n",
       "         feature_learners=['FastProp'],\n",
       "         feature_selectors=[],\n",
       "         include_categorical=True,\n",
       "         loss_function=None,\n",
       "         peripheral=['product', 'sales_order_detail', 'sales_order_header',\n",
       "                     'sales_order_reason', 'special_offer', 'store'],\n",
       "         predictors=['XGBoostClassifier'],\n",
       "         preprocessors=['Mapping'],\n",
       "         share_selected_features=0.5,\n",
       "         tags=['fast_prop', 'container-qlp0vY'])

url: http://localhost:1709/#/getpipeline/adventure_works/M49AEo/0/
" ], "text/plain": [ "Pipeline(data_model='population',\n", " feature_learners=['FastProp'],\n", " feature_selectors=[],\n", " include_categorical=True,\n", " loss_function=None,\n", " peripheral=['product', 'sales_order_detail', 'sales_order_header',\n", " 'sales_order_reason', 'special_offer', 'store'],\n", " predictors=['XGBoostClassifier'],\n", " preprocessors=['Mapping'],\n", " share_selected_features=0.5,\n", " tags=['fast_prop', 'container-qlp0vY'])\n", "\n", "url: http://localhost:1709/#/getpipeline/adventure_works/M49AEo/0/" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipe1.fit(container.train)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Checking data model...\n", "\n", "Staging...\n", "[========================================] 100%\n", "\n", "Preprocessing...\n", "[========================================] 100%\n", "[========================================] 100%\n", "\n", "Checking...\n", "[========================================] 100%\n", "\n", "\n", "INFO [FOREIGN KEYS NOT FOUND]: When joining POPULATION__STAGING_TABLE_1 and SALES_ORDER_REASON__STAGING_TABLE_4 over 'SalesOrderID' and 'SalesOrderID', there are no corresponding entries for 33.769352% of entries in 'SalesOrderID' in 'POPULATION__STAGING_TABLE_1'. You might want to double-check your join keys.\n", "INFO [FOREIGN KEYS NOT FOUND]: When joining POPULATION__STAGING_TABLE_1 and STORE__STAGING_TABLE_5 over 'SalesPersonID' and 'SalesPersonID', there are no corresponding entries for 84.941548% of entries in 'SalesPersonID' in 'POPULATION__STAGING_TABLE_1'. You might want to double-check your join keys.\n" ] } ], "source": [ "pipe2.check(container.train)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Checking data model...\n", "\n", "Staging...\n", "[========================================] 100%\n", "\n", "\n", "INFO [FOREIGN KEYS NOT FOUND]: When joining POPULATION__STAGING_TABLE_1 and SALES_ORDER_REASON__STAGING_TABLE_4 over 'SalesOrderID' and 'SalesOrderID', there are no corresponding entries for 33.769352% of entries in 'SalesOrderID' in 'POPULATION__STAGING_TABLE_1'. You might want to double-check your join keys.\n", "INFO [FOREIGN KEYS NOT FOUND]: When joining POPULATION__STAGING_TABLE_1 and STORE__STAGING_TABLE_5 over 'SalesPersonID' and 'SalesPersonID', there are no corresponding entries for 84.941548% of entries in 'SalesPersonID' in 'POPULATION__STAGING_TABLE_1'. You might want to double-check your join keys.\n", "\n", "Staging...\n", "[========================================] 100%\n", "\n", "Preprocessing...\n", "[========================================] 100%\n", "[========================================] 100%\n", "\n", "Relboost: Training features...\n", "[========================================] 100%\n", "\n", "Relboost: Building features...\n", "[========================================] 100%\n", "\n", "XGBoost: Training as predictor...\n", "[========================================] 100%\n", "\n", "\n", "Trained pipeline.\n", "Time taken: 0h:1m:53.175772\n", "\n" ] }, { "data": { "text/html": [ "
Pipeline(data_model='population',\n",
       "         feature_learners=['Relboost'],\n",
       "         feature_selectors=[],\n",
       "         include_categorical=True,\n",
       "         loss_function=None,\n",
       "         peripheral=['product', 'sales_order_detail', 'sales_order_header',\n",
       "                     'sales_order_reason', 'special_offer', 'store'],\n",
       "         predictors=['XGBoostClassifier'],\n",
       "         preprocessors=['Seasonal', 'Mapping'],\n",
       "         share_selected_features=0.5,\n",
       "         tags=['relboost', 'container-qlp0vY'])

url: http://localhost:1709/#/getpipeline/adventure_works/xkgbq9/0/
" ], "text/plain": [ "Pipeline(data_model='population',\n", " feature_learners=['Relboost'],\n", " feature_selectors=[],\n", " include_categorical=True,\n", " loss_function=None,\n", " peripheral=['product', 'sales_order_detail', 'sales_order_header',\n", " 'sales_order_reason', 'special_offer', 'store'],\n", " predictors=['XGBoostClassifier'],\n", " preprocessors=['Seasonal', 'Mapping'],\n", " share_selected_features=0.5,\n", " tags=['relboost', 'container-qlp0vY'])\n", "\n", "url: http://localhost:1709/#/getpipeline/adventure_works/xkgbq9/0/" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipe2.fit(container.train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.4 Model evaluation" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Staging...\n", "[========================================] 100%\n", "\n", "Preprocessing...\n", "[========================================] 100%\n", "[========================================] 100%\n", "\n", "FastProp: Building features...\n", "[========================================] 100%\n", "\n", "\n" ] }, { "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", " \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", "
date time set usedtargetaccuracy auccross entropy
02021-08-23 16:07:18trainchurn0.91510.97420.2148
12021-08-23 16:09:19testchurn0.91290.97120.2236
" ], "text/plain": [ " date time set used target accuracy auc cross entropy\n", "0 2021-08-23 16:07:18 train churn 0.9151 0.9742 0.2148\n", "1 2021-08-23 16:09:19 test churn 0.9129 0.9712 0.2236" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipe1.score(container.test)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Staging...\n", "[========================================] 100%\n", "\n", "Preprocessing...\n", "[========================================] 100%\n", "[========================================] 100%\n", "\n", "Relboost: Building features...\n", "[========================================] 100%\n", "\n", "\n" ] }, { "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", " \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", "
date time set usedtargetaccuracy auccross entropy
02021-08-23 16:09:16trainchurn0.93120.98320.1689
12021-08-23 16:09:23testchurn0.92730.97760.1929
" ], "text/plain": [ " date time set used target accuracy auc cross entropy\n", "0 2021-08-23 16:09:16 train churn 0.9312 0.9832 0.1689\n", "1 2021-08-23 16:09:23 test churn 0.9273 0.9776 0.1929" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipe2.score(container.test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.5 featuretools" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "population_train_pd = container.train.population.drop(container.train.population.roles.unused).to_pandas()\n", "population_test_pd = container.test.population.drop(container.train.population.roles.unused).to_pandas()" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "product_pd = product.drop(product.roles.unused).to_pandas()\n", "sales_order_detail_pd = sales_order_detail.drop(sales_order_detail.roles.unused).to_pandas()\n", "sales_order_header_pd = sales_order_header.drop(sales_order_header.roles.unused).to_pandas()\n", "sales_order_reason_pd = sales_order_reason.drop(sales_order_reason.roles.unused).to_pandas()\n", "special_offer_pd = special_offer.drop(special_offer.roles.unused).to_pandas()\n", "store_pd = store.drop(store.roles.unused).to_pandas()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "featuretools does not support many-to-one joins. Therefore, we must manually merge `sales_order_detail_pd`, `product_pd` and `special_offer_pd`." ] }, { "cell_type": "code", "execution_count": 33, "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", " \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", " \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", " \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", " \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", "
ModifiedDateSalesOrderIDOrderQtyUnitPriceUnitPriceDiscountLineTotalMakeFlagProductSubcategoryIDProductModelIDSafetyStockLevelReorderPointStandardCostListPriceStartDateEndDateCategoryDescriptionTypeMinQtyDiscountPct
02011-05-31436591.02024.9940.02024.9941119100.075.01898.09443374.992011-05-012014-11-30No DiscountNo DiscountNo Discount0.00.0
12011-05-31436593.02024.9940.06074.9821119100.075.01898.09443374.992011-05-012014-11-30No DiscountNo DiscountNo Discount0.00.0
22011-05-31436591.02024.9940.02024.9941119100.075.01898.09443374.992011-05-012014-11-30No DiscountNo DiscountNo Discount0.00.0
32011-05-31436591.02039.9940.02039.9941119100.075.01912.15443399.992011-05-012014-11-30No DiscountNo DiscountNo Discount0.00.0
42011-05-31436591.02039.9940.02039.9941119100.075.01912.15443399.992011-05-012014-11-30No DiscountNo DiscountNo Discount0.00.0
...............................................................
1213122014-06-30751221.021.9800.021.9800301214.03.08.220521.982011-05-012014-11-30No DiscountNo DiscountNo Discount0.00.0
1213132014-06-30751221.08.9900.08.99001924.03.06.92238.992011-05-012014-11-30No DiscountNo DiscountNo Discount0.00.0
1213142014-06-30751231.021.9800.021.9800301214.03.08.220521.982011-05-012014-11-30No DiscountNo DiscountNo Discount0.00.0
1213152014-06-30751231.0159.0000.0159.0000271224.03.059.4660159.002011-05-012014-11-30No DiscountNo DiscountNo Discount0.00.0
1213162014-06-30751231.08.9900.08.99001924.03.06.92238.992011-05-012014-11-30No DiscountNo DiscountNo Discount0.00.0
\n", "

121317 rows × 20 columns

\n", "
" ], "text/plain": [ " ModifiedDate SalesOrderID OrderQty UnitPrice UnitPriceDiscount \\\n", "0 2011-05-31 43659 1.0 2024.994 0.0 \n", "1 2011-05-31 43659 3.0 2024.994 0.0 \n", "2 2011-05-31 43659 1.0 2024.994 0.0 \n", "3 2011-05-31 43659 1.0 2039.994 0.0 \n", "4 2011-05-31 43659 1.0 2039.994 0.0 \n", "... ... ... ... ... ... \n", "121312 2014-06-30 75122 1.0 21.980 0.0 \n", "121313 2014-06-30 75122 1.0 8.990 0.0 \n", "121314 2014-06-30 75123 1.0 21.980 0.0 \n", "121315 2014-06-30 75123 1.0 159.000 0.0 \n", "121316 2014-06-30 75123 1.0 8.990 0.0 \n", "\n", " LineTotal MakeFlag ProductSubcategoryID ProductModelID \\\n", "0 2024.994 1 1 19 \n", "1 6074.982 1 1 19 \n", "2 2024.994 1 1 19 \n", "3 2039.994 1 1 19 \n", "4 2039.994 1 1 19 \n", "... ... ... ... ... \n", "121312 21.980 0 30 121 \n", "121313 8.990 0 19 2 \n", "121314 21.980 0 30 121 \n", "121315 159.000 0 27 122 \n", "121316 8.990 0 19 2 \n", "\n", " SafetyStockLevel ReorderPoint StandardCost ListPrice StartDate \\\n", "0 100.0 75.0 1898.0944 3374.99 2011-05-01 \n", "1 100.0 75.0 1898.0944 3374.99 2011-05-01 \n", "2 100.0 75.0 1898.0944 3374.99 2011-05-01 \n", "3 100.0 75.0 1912.1544 3399.99 2011-05-01 \n", "4 100.0 75.0 1912.1544 3399.99 2011-05-01 \n", "... ... ... ... ... ... \n", "121312 4.0 3.0 8.2205 21.98 2011-05-01 \n", "121313 4.0 3.0 6.9223 8.99 2011-05-01 \n", "121314 4.0 3.0 8.2205 21.98 2011-05-01 \n", "121315 4.0 3.0 59.4660 159.00 2011-05-01 \n", "121316 4.0 3.0 6.9223 8.99 2011-05-01 \n", "\n", " EndDate Category Description Type MinQty DiscountPct \n", "0 2014-11-30 No Discount No Discount No Discount 0.0 0.0 \n", "1 2014-11-30 No Discount No Discount No Discount 0.0 0.0 \n", "2 2014-11-30 No Discount No Discount No Discount 0.0 0.0 \n", "3 2014-11-30 No Discount No Discount No Discount 0.0 0.0 \n", "4 2014-11-30 No Discount No Discount No Discount 0.0 0.0 \n", "... ... ... ... ... ... ... \n", "121312 2014-11-30 No Discount No Discount No Discount 0.0 0.0 \n", "121313 2014-11-30 No Discount No Discount No Discount 0.0 0.0 \n", "121314 2014-11-30 No Discount No Discount No Discount 0.0 0.0 \n", "121315 2014-11-30 No Discount No Discount No Discount 0.0 0.0 \n", "121316 2014-11-30 No Discount No Discount No Discount 0.0 0.0 \n", "\n", "[121317 rows x 20 columns]" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sales_order_detail_pd = sales_order_detail_pd.merge(\n", " product_pd,\n", " on=\"ProductID\",\n", " how=\"left\",\n", ")\n", "\n", "sales_order_detail_pd = sales_order_detail_pd.merge(\n", " special_offer_pd,\n", " on=\"SpecialOfferID\",\n", " how=\"left\",\n", ")\n", "\n", "del sales_order_detail_pd[\"SalesOrderDetailID\"]\n", "del sales_order_detail_pd[\"ProductID\"]\n", "del sales_order_detail_pd[\"SpecialOfferID\"]\n", "\n", "sales_order_detail_pd" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "def prepare_sales_order_header(peripheral_pd, train_or_test):\n", " \"\"\"\n", " Helper function that imitates the behavior of \n", " the data model defined above.\n", " \"\"\"\n", " peripheral_new = peripheral_pd.merge(\n", " train_or_test[[\"CustomerID\", \"OrderDate\", \"SalesOrderID\"]],\n", " on=\"CustomerID\"\n", " )\n", "\n", " peripheral_new = peripheral_new[\n", " peripheral_new[\"OrderDate_x\"] < peripheral_new[\"OrderDate_y\"]\n", " ]\n", " \n", " del peripheral_new[\"SalesOrderID_x\"]\n", " del peripheral_new[\"OrderDate_y\"]\n", " del peripheral_new[\"CustomerID\"]\n", " del peripheral_new[\"SalesPersonIDCat\"]\n", " del peripheral_new[\"TerritoryIDCat\"]\n", "\n", " return peripheral_new.rename(columns={\"OrderDate_x\": \"OrderDate\", \"SalesOrderID_y\": \"SalesOrderID\"})" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "def prepare_store(peripheral_pd, train_or_test):\n", " \"\"\"\n", " Helper function that imitates the behavior of \n", " the data model defined above.\n", " \"\"\"\n", " peripheral_new = peripheral_pd.merge(\n", " train_or_test[[\"SalesPersonID\", \"SalesOrderID\"]],\n", " on=\"SalesPersonID\"\n", " )\n", " \n", " return peripheral_new" ] }, { "cell_type": "code", "execution_count": 36, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
testSalesPersonIDSalesOrderID
02014-09-12 11:15:0727943659
12014-09-12 11:15:0727943660
22014-09-12 11:15:0727943681
32014-09-12 11:15:0727943685
42014-09-12 11:15:0727943695
............
142427NaT29063216
142428NaT29063217
142429NaT29063223
142430NaT29063282
142431NaT29063284
\n", "

142432 rows × 3 columns

\n", "
" ], "text/plain": [ " test SalesPersonID SalesOrderID\n", "0 2014-09-12 11:15:07 279 43659\n", "1 2014-09-12 11:15:07 279 43660\n", "2 2014-09-12 11:15:07 279 43681\n", "3 2014-09-12 11:15:07 279 43685\n", "4 2014-09-12 11:15:07 279 43695\n", "... ... ... ...\n", "142427 NaT 290 63216\n", "142428 NaT 290 63217\n", "142429 NaT 290 63223\n", "142430 NaT 290 63282\n", "142431 NaT 290 63284\n", "\n", "[142432 rows x 3 columns]" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "store_train_pd = prepare_store(store_pd, population_train_pd)\n", "store_test_pd = prepare_store(store_pd, population_test_pd)\n", "store_train_pd" ] }, { "cell_type": "code", "execution_count": 37, "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", " \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", " \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", " \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", "
OrderDateDueDateShipDateModifiedDateSalesPersonIDTerritoryIDchurnRevisionNumberOnlineOrderFlagShipMethodIDSubTotalTaxAmtFreightTotalDueSalesOrderID
12011-05-312011-06-122011-06-072011-06-0727950.080520565.62061971.5149616.098423153.233944305
22011-05-312011-06-122011-06-072011-06-0727950.080520565.62061971.5149616.098423153.233945061
32011-05-312011-06-122011-06-072011-06-0727950.080520565.62061971.5149616.098423153.233945779
42011-05-312011-06-122011-06-072011-06-0727950.080520565.62061971.5149616.098423153.233946604
52011-05-312011-06-122011-06-072011-06-0727950.080520565.62061971.5149616.098423153.233947693
................................................
398942013-12-152013-12-272013-12-222013-12-22NULL61.081132.60002.60800.815036.023062799
399082013-12-132013-12-252013-12-202013-12-20NULL41.081142.28003.38241.057046.719462770
399522013-12-152013-12-272013-12-222013-12-22NULL11.081153.99004.31921.349859.659062796
400802013-12-192013-12-312013-12-262013-12-26NULL41.081135.00002.80000.875038.675062643
401012013-12-202014-01-012013-12-272013-12-27NULL101.081112.94001.03520.323514.298762914
\n", "

12271 rows × 15 columns

\n", "
" ], "text/plain": [ " OrderDate DueDate ShipDate ModifiedDate SalesPersonID TerritoryID \\\n", "1 2011-05-31 2011-06-12 2011-06-07 2011-06-07 279 5 \n", "2 2011-05-31 2011-06-12 2011-06-07 2011-06-07 279 5 \n", "3 2011-05-31 2011-06-12 2011-06-07 2011-06-07 279 5 \n", "4 2011-05-31 2011-06-12 2011-06-07 2011-06-07 279 5 \n", "5 2011-05-31 2011-06-12 2011-06-07 2011-06-07 279 5 \n", "... ... ... ... ... ... ... \n", "39894 2013-12-15 2013-12-27 2013-12-22 2013-12-22 NULL 6 \n", "39908 2013-12-13 2013-12-25 2013-12-20 2013-12-20 NULL 4 \n", "39952 2013-12-15 2013-12-27 2013-12-22 2013-12-22 NULL 1 \n", "40080 2013-12-19 2013-12-31 2013-12-26 2013-12-26 NULL 4 \n", "40101 2013-12-20 2014-01-01 2013-12-27 2013-12-27 NULL 10 \n", "\n", " churn RevisionNumber OnlineOrderFlag ShipMethodID SubTotal \\\n", "1 0.0 8 0 5 20565.6206 \n", "2 0.0 8 0 5 20565.6206 \n", "3 0.0 8 0 5 20565.6206 \n", "4 0.0 8 0 5 20565.6206 \n", "5 0.0 8 0 5 20565.6206 \n", "... ... ... ... ... ... \n", "39894 1.0 8 1 1 32.6000 \n", "39908 1.0 8 1 1 42.2800 \n", "39952 1.0 8 1 1 53.9900 \n", "40080 1.0 8 1 1 35.0000 \n", "40101 1.0 8 1 1 12.9400 \n", "\n", " TaxAmt Freight TotalDue SalesOrderID \n", "1 1971.5149 616.0984 23153.2339 44305 \n", "2 1971.5149 616.0984 23153.2339 45061 \n", "3 1971.5149 616.0984 23153.2339 45779 \n", "4 1971.5149 616.0984 23153.2339 46604 \n", "5 1971.5149 616.0984 23153.2339 47693 \n", "... ... ... ... ... \n", "39894 2.6080 0.8150 36.0230 62799 \n", "39908 3.3824 1.0570 46.7194 62770 \n", "39952 4.3192 1.3498 59.6590 62796 \n", "40080 2.8000 0.8750 38.6750 62643 \n", "40101 1.0352 0.3235 14.2987 62914 \n", "\n", "[12271 rows x 15 columns]" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sales_order_header_train_pd = prepare_sales_order_header(sales_order_header_pd, population_train_pd)\n", "sales_order_header_test_pd = prepare_sales_order_header(sales_order_header_pd, population_test_pd)\n", "sales_order_header_train_pd" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "del population_train_pd[\"CustomerID\"]\n", "del population_train_pd[\"SalesPersonIDCat\"]\n", "\n", "del population_test_pd[\"CustomerID\"]\n", "del population_test_pd[\"SalesPersonIDCat\"]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "featuretools's entities are similar for getML's container class." ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "entities_train = {\n", " \"population\" : (population_train_pd, \"SalesOrderID\"),\n", " \"sales_order_header\": (sales_order_header_train_pd, \"index\"),\n", " \"sales_order_detail\": (sales_order_detail_pd, \"index\"),\n", " \"sales_order_reason\": (sales_order_reason_pd, \"index\"),\n", " \"store\": (store_train_pd, \"index\"),\n", "}" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "entities_test = {\n", " \"population\" : (population_test_pd, \"SalesOrderID\"),\n", " \"sales_order_header\": (sales_order_header_test_pd, \"index\"),\n", " \"sales_order_detail\": (sales_order_detail_pd, \"index\"),\n", " \"sales_order_reason\": (sales_order_reason_pd, \"index\"),\n", " \"store\": (store_test_pd, \"index\"),\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "featuretools's relationships are similar for getML's data model." ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "relationships = [\n", " (\"population\", \"SalesOrderID\", \"sales_order_header\", \"SalesOrderID\"),\n", " (\"population\", \"SalesOrderID\", \"sales_order_detail\", \"SalesOrderID\"),\n", " (\"population\", \"SalesOrderID\", \"sales_order_reason\", \"SalesOrderID\"),\n", " (\"population\", \"SalesOrderID\", \"store\", \"SalesOrderID\"),\n", "]" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/patrick/.local/lib/python3.9/site-packages/featuretools/entityset/entity.py:462: UserWarning: index index not found in dataframe, creating new integer column\n", " warnings.warn(\"index {} not found in dataframe, creating new \"\n" ] } ], "source": [ "featuretools_train_pd = featuretools.dfs(\n", " entities=entities_train,\n", " relationships=relationships,\n", " target_entity=\"population\")[0]" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [], "source": [ "featuretools_test_pd = featuretools.dfs(\n", " entities=entities_test,\n", " relationships=relationships,\n", " target_entity=\"population\")[0]" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "featuretools_train = getml.data.DataFrame.from_pandas(featuretools_train_pd, \"featuretools_train\")\n", "featuretools_test = getml.data.DataFrame.from_pandas(featuretools_test_pd, \"featuretools_test\")" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "91.014218% of all entries of column 'SKEW(sales_order_header.Freight)' are NULL values.\n", "91.014218% of all entries of column 'SKEW(sales_order_header.SubTotal)' are NULL values.\n", "91.014218% of all entries of column 'SKEW(sales_order_header.TaxAmt)' are NULL values.\n", "91.014218% of all entries of column 'SKEW(sales_order_header.TotalDue)' are NULL values.\n", "91.014218% of all entries of column 'SKEW(sales_order_header.churn)' are NULL values.\n" ] }, { "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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", "
name churnSalesPersonIDTerritoryIDRevisionNumberOnlineOrderFlagTerritoryIDCatShipMethodIDMODE(sales_order_header.OnlineOrderFlag)MODE(sales_order_header.RevisionNumber)MODE(sales_order_header.SalesPersonID)MODE(sales_order_header.ShipMethodID)MODE(sales_order_header.TerritoryID)MODE(sales_order_detail.Category)MODE(sales_order_detail.Description)MODE(sales_order_detail.MakeFlag)MODE(sales_order_detail.ProductModelID)MODE(sales_order_detail.ProductSubcategoryID)MODE(sales_order_detail.Type)MODE(sales_order_reason.SalesReasonID)MODE(store.SalesPersonID) SubTotal TaxAmt Freight TotalDueCOUNT(sales_order_header)MAX(sales_order_header.Freight)MAX(sales_order_header.SubTotal)MAX(sales_order_header.TaxAmt)MAX(sales_order_header.TotalDue)MAX(sales_order_header.churn)MEAN(sales_order_header.Freight)MEAN(sales_order_header.SubTotal)MEAN(sales_order_header.TaxAmt)MEAN(sales_order_header.TotalDue)MEAN(sales_order_header.churn)MIN(sales_order_header.Freight)MIN(sales_order_header.SubTotal)MIN(sales_order_header.TaxAmt)MIN(sales_order_header.TotalDue)MIN(sales_order_header.churn)NUM_UNIQUE(sales_order_header.OnlineOrderFlag)NUM_UNIQUE(sales_order_header.RevisionNumber)NUM_UNIQUE(sales_order_header.SalesPersonID)NUM_UNIQUE(sales_order_header.ShipMethodID)NUM_UNIQUE(sales_order_header.TerritoryID)SKEW(sales_order_header.Freight)SKEW(sales_order_header.SubTotal)SKEW(sales_order_header.TaxAmt)SKEW(sales_order_header.TotalDue)SKEW(sales_order_header.churn)STD(sales_order_header.Freight)STD(sales_order_header.SubTotal)STD(sales_order_header.TaxAmt)STD(sales_order_header.TotalDue)STD(sales_order_header.churn)SUM(sales_order_header.Freight)SUM(sales_order_header.SubTotal)SUM(sales_order_header.TaxAmt)SUM(sales_order_header.TotalDue)SUM(sales_order_header.churn)COUNT(sales_order_detail)MAX(sales_order_detail.DiscountPct)MAX(sales_order_detail.LineTotal)MAX(sales_order_detail.ListPrice)MAX(sales_order_detail.MinQty)MAX(sales_order_detail.OrderQty)MAX(sales_order_detail.ReorderPoint)MAX(sales_order_detail.SafetyStockLevel)MAX(sales_order_detail.StandardCost)MAX(sales_order_detail.UnitPrice)MAX(sales_order_detail.UnitPriceDiscount)MEAN(sales_order_detail.DiscountPct)MEAN(sales_order_detail.LineTotal)MEAN(sales_order_detail.ListPrice)MEAN(sales_order_detail.MinQty)MEAN(sales_order_detail.OrderQty)MEAN(sales_order_detail.ReorderPoint)MEAN(sales_order_detail.SafetyStockLevel)MEAN(sales_order_detail.StandardCost)MEAN(sales_order_detail.UnitPrice)MEAN(sales_order_detail.UnitPriceDiscount)MIN(sales_order_detail.DiscountPct)MIN(sales_order_detail.LineTotal)MIN(sales_order_detail.ListPrice)MIN(sales_order_detail.MinQty)MIN(sales_order_detail.OrderQty)MIN(sales_order_detail.ReorderPoint)MIN(sales_order_detail.SafetyStockLevel)MIN(sales_order_detail.StandardCost)MIN(sales_order_detail.UnitPrice)MIN(sales_order_detail.UnitPriceDiscount)NUM_UNIQUE(sales_order_detail.Category)NUM_UNIQUE(sales_order_detail.Description)NUM_UNIQUE(sales_order_detail.MakeFlag)NUM_UNIQUE(sales_order_detail.ProductModelID)NUM_UNIQUE(sales_order_detail.ProductSubcategoryID)NUM_UNIQUE(sales_order_detail.Type)SKEW(sales_order_detail.DiscountPct)SKEW(sales_order_detail.LineTotal)SKEW(sales_order_detail.ListPrice)SKEW(sales_order_detail.MinQty)SKEW(sales_order_detail.OrderQty)SKEW(sales_order_detail.ReorderPoint)SKEW(sales_order_detail.SafetyStockLevel)SKEW(sales_order_detail.StandardCost)SKEW(sales_order_detail.UnitPrice)SKEW(sales_order_detail.UnitPriceDiscount)STD(sales_order_detail.DiscountPct)STD(sales_order_detail.LineTotal)STD(sales_order_detail.ListPrice)STD(sales_order_detail.MinQty)STD(sales_order_detail.OrderQty)STD(sales_order_detail.ReorderPoint)STD(sales_order_detail.SafetyStockLevel)STD(sales_order_detail.StandardCost)STD(sales_order_detail.UnitPrice)STD(sales_order_detail.UnitPriceDiscount)SUM(sales_order_detail.DiscountPct)SUM(sales_order_detail.LineTotal)SUM(sales_order_detail.ListPrice)SUM(sales_order_detail.MinQty)SUM(sales_order_detail.OrderQty)SUM(sales_order_detail.ReorderPoint)SUM(sales_order_detail.SafetyStockLevel)SUM(sales_order_detail.StandardCost)SUM(sales_order_detail.UnitPrice)SUM(sales_order_detail.UnitPriceDiscount)COUNT(sales_order_reason)NUM_UNIQUE(sales_order_reason.SalesReasonID)COUNT(store)NUM_UNIQUE(store.SalesPersonID)DAY(DueDate)DAY(ModifiedDate)DAY(OrderDate)DAY(ShipDate)MONTH(DueDate)MONTH(ModifiedDate)MONTH(OrderDate)MONTH(ShipDate)WEEKDAY(DueDate)WEEKDAY(ModifiedDate)WEEKDAY(OrderDate)WEEKDAY(ShipDate)YEAR(DueDate)YEAR(ModifiedDate)YEAR(OrderDate)YEAR(ShipDate)MODE(sales_order_header.DAY(DueDate))MODE(sales_order_header.DAY(ModifiedDate))MODE(sales_order_header.DAY(OrderDate))MODE(sales_order_header.DAY(ShipDate))MODE(sales_order_header.MONTH(DueDate))MODE(sales_order_header.MONTH(ModifiedDate))MODE(sales_order_header.MONTH(OrderDate))MODE(sales_order_header.MONTH(ShipDate))MODE(sales_order_header.WEEKDAY(DueDate))MODE(sales_order_header.WEEKDAY(ModifiedDate))MODE(sales_order_header.WEEKDAY(OrderDate))MODE(sales_order_header.WEEKDAY(ShipDate))MODE(sales_order_header.YEAR(DueDate))MODE(sales_order_header.YEAR(ModifiedDate))MODE(sales_order_header.YEAR(OrderDate))MODE(sales_order_header.YEAR(ShipDate))NUM_UNIQUE(sales_order_header.DAY(DueDate))NUM_UNIQUE(sales_order_header.DAY(ModifiedDate))NUM_UNIQUE(sales_order_header.DAY(OrderDate))NUM_UNIQUE(sales_order_header.DAY(ShipDate))NUM_UNIQUE(sales_order_header.MONTH(DueDate))NUM_UNIQUE(sales_order_header.MONTH(ModifiedDate))NUM_UNIQUE(sales_order_header.MONTH(OrderDate))NUM_UNIQUE(sales_order_header.MONTH(ShipDate))NUM_UNIQUE(sales_order_header.WEEKDAY(DueDate))NUM_UNIQUE(sales_order_header.WEEKDAY(ModifiedDate))NUM_UNIQUE(sales_order_header.WEEKDAY(OrderDate))NUM_UNIQUE(sales_order_header.WEEKDAY(ShipDate))NUM_UNIQUE(sales_order_header.YEAR(DueDate))NUM_UNIQUE(sales_order_header.YEAR(ModifiedDate))NUM_UNIQUE(sales_order_header.YEAR(OrderDate))NUM_UNIQUE(sales_order_header.YEAR(ShipDate))MODE(sales_order_detail.DAY(EndDate))MODE(sales_order_detail.DAY(ModifiedDate))MODE(sales_order_detail.DAY(StartDate))MODE(sales_order_detail.MONTH(EndDate))MODE(sales_order_detail.MONTH(ModifiedDate))MODE(sales_order_detail.MONTH(StartDate))MODE(sales_order_detail.WEEKDAY(EndDate))MODE(sales_order_detail.WEEKDAY(ModifiedDate))MODE(sales_order_detail.WEEKDAY(StartDate))MODE(sales_order_detail.YEAR(EndDate))MODE(sales_order_detail.YEAR(ModifiedDate))MODE(sales_order_detail.YEAR(StartDate))NUM_UNIQUE(sales_order_detail.DAY(EndDate))NUM_UNIQUE(sales_order_detail.DAY(ModifiedDate))NUM_UNIQUE(sales_order_detail.DAY(StartDate))NUM_UNIQUE(sales_order_detail.MONTH(EndDate))NUM_UNIQUE(sales_order_detail.MONTH(ModifiedDate))NUM_UNIQUE(sales_order_detail.MONTH(StartDate))NUM_UNIQUE(sales_order_detail.WEEKDAY(EndDate))NUM_UNIQUE(sales_order_detail.WEEKDAY(ModifiedDate))NUM_UNIQUE(sales_order_detail.WEEKDAY(StartDate))NUM_UNIQUE(sales_order_detail.YEAR(EndDate))NUM_UNIQUE(sales_order_detail.YEAR(ModifiedDate))NUM_UNIQUE(sales_order_detail.YEAR(StartDate))MODE(store.DAY(test))MODE(store.MONTH(test))MODE(store.WEEKDAY(test))MODE(store.YEAR(test))NUM_UNIQUE(store.DAY(test))NUM_UNIQUE(store.MONTH(test))NUM_UNIQUE(store.WEEKDAY(test))NUM_UNIQUE(store.YEAR(test))
roletargetcategorical categoricalcategorical categorical categorical categorical categorical categorical categorical categorical categorical categorical categorical categorical categorical categorical categorical categorical categorical numericalnumericalnumerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical
0\n", " 0 \n", " 27958055NULLNULLNULLNULLNULLNo DiscountNo Discount1191No DiscountNULL279\n", " 20565.6206\n", " \n", " 1971.5149\n", " \n", " 616.0984\n", " \n", " 23153.2339\n", " \n", " 0 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 12 \n", " \n", " 0 \n", " \n", " 6074.982\n", " \n", " 3399.99\n", " \n", " 0 \n", " \n", " 6 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 1912.1544\n", " \n", " 2039.994\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1713.8017\n", " \n", " 1989.8658\n", " \n", " 0 \n", " \n", " 2.1667\n", " \n", " 45 \n", " \n", " 60 \n", " \n", " 1120.2742\n", " \n", " 1193.6427\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 10.373\n", " \n", " 8.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 3 \n", " \n", " 4 \n", " \n", " 3.3963\n", " \n", " 5.1865\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 5 \n", " \n", " 5 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " 1.1963\n", " \n", " -0.3885\n", " \n", " 0 \n", " \n", " 1.4799\n", " \n", " -0.3884\n", " \n", " -0.3884\n", " \n", " -0.3887\n", " \n", " -0.3885\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1883.1394\n", " \n", " 1729.5034\n", " \n", " 0 \n", " \n", " 1.5859\n", " \n", " 37.0749\n", " \n", " 49.4332\n", " \n", " 971.2526\n", " \n", " 1038.0419\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 20565.6206\n", " \n", " 23878.39\n", " \n", " 0 \n", " \n", " 26 \n", " \n", " 540 \n", " \n", " 720 \n", " \n", " 13443.2903\n", " \n", " 14323.7118\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 80 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 5 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 9 \n", " \n", " 4 \n", " \n", " 2014 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", "
1\n", " 0 \n", " 27958055NULLNULLNULLNULLNULLNo DiscountNo Discount1282No DiscountNULL279\n", " 1294.2529\n", " \n", " 124.2483\n", " \n", " 38.8276\n", " \n", " 1457.3288\n", " \n", " 0 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 2 \n", " \n", " 0 \n", " \n", " 874.794\n", " \n", " 1457.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 884.7083\n", " \n", " 874.794\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 647.1264\n", " \n", " 1120.49\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 685.7074\n", " \n", " 647.1264\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 419.4589\n", " \n", " 782.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 486.7066\n", " \n", " 419.4589\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 321.9705\n", " \n", " 477.2971\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 281.4297\n", " \n", " 321.9705\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1294.2529\n", " \n", " 2240.98\n", " \n", " 0 \n", " \n", " 2 \n", " \n", " 150 \n", " \n", " 200 \n", " \n", " 1371.4149\n", " \n", " 1294.2529\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 80 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 5 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 9 \n", " \n", " 4 \n", " \n", " 2014 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", "
2\n", " 0 \n", " 28268065NULLNULLNULLNULLNULLNo DiscountNo Discount1191No DiscountNULL282\n", " 32726.4786\n", " \n", " 3153.7696\n", " \n", " 985.553\n", " \n", " 36865.8012\n", " \n", " 0 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 15 \n", " \n", " 0 \n", " \n", " 8099.976\n", " \n", " 3399.99\n", " \n", " 0 \n", " \n", " 5 \n", " \n", " 375 \n", " \n", " 500 \n", " \n", " 1912.1544\n", " \n", " 2039.994\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 2181.7652\n", " \n", " 1590.4467\n", " \n", " 0 \n", " \n", " 2.5333\n", " \n", " 151 \n", " \n", " 201.3333\n", " \n", " 883.0532\n", " \n", " 934.9116\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 20.746\n", " \n", " 8.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 3 \n", " \n", " 4 \n", " \n", " 6.9223\n", " \n", " 5.1865\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 5 \n", " \n", " 5 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " 1.2022\n", " \n", " 0.2799\n", " \n", " 0 \n", " \n", " 0.7955\n", " \n", " 0.6718\n", " \n", " 0.6718\n", " \n", " 0.3285\n", " \n", " 0.348\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 2515.2803\n", " \n", " 1423.6488\n", " \n", " 0 \n", " \n", " 1.1872\n", " \n", " 166.7505\n", " \n", " 222.3339\n", " \n", " 802.3616\n", " \n", " 858.7914\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 32726.4786\n", " \n", " 23856.7\n", " \n", " 0 \n", " \n", " 38 \n", " \n", " 2265 \n", " \n", " 3020 \n", " \n", " 13245.7975\n", " \n", " 14023.6738\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 74 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 5 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 9 \n", " \n", " 4 \n", " \n", " 2014 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", "
3\n", " 0 \n", " 27648045NULLNULLNULLNULLNULLNo DiscountNo Discount1302No DiscountNULL276\n", " 419.4589\n", " \n", " 40.2681\n", " \n", " 12.5838\n", " \n", " 472.3108\n", " \n", " 0 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " 419.4589\n", " \n", " 782.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 486.7066\n", " \n", " 419.4589\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 419.4589\n", " \n", " 782.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 486.7066\n", " \n", " 419.4589\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 419.4589\n", " \n", " 782.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 486.7066\n", " \n", " 419.4589\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 419.4589\n", " \n", " 782.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 486.7066\n", " \n", " 419.4589\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 39 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 5 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 9 \n", " \n", " 4 \n", " \n", " 2014 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", "
4\n", " 0 \n", " 28018015NULLNULLNULLNULLNULLNo DiscountNo Discount1191No DiscountNULL280\n", " 24432.6088\n", " \n", " 2344.9921\n", " \n", " 732.81\n", " \n", " 27510.4109\n", " \n", " 0 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 8 \n", " \n", " 0 \n", " \n", " 8099.976\n", " \n", " 3399.99\n", " \n", " 0 \n", " \n", " 4 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 1912.1544\n", " \n", " 2039.994\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 3054.0761\n", " \n", " 2553.115\n", " \n", " 0 \n", " \n", " 1.75\n", " \n", " 57 \n", " \n", " 76 \n", " \n", " 1438.4664\n", " \n", " 1531.5806\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 28.8404\n", " \n", " 49.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 3 \n", " \n", " 4 \n", " \n", " 38.4923\n", " \n", " 28.8404\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " 0.8117\n", " \n", " -1.4399\n", " \n", " 0 \n", " \n", " 1.3554\n", " \n", " -1.4402\n", " \n", " -1.4402\n", " \n", " -1.4399\n", " \n", " -1.4399\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 2860.3836\n", " \n", " 1545.0056\n", " \n", " 0 \n", " \n", " 1.165\n", " \n", " 33.3295\n", " \n", " 44.4394\n", " \n", " 864.1073\n", " \n", " 927.5374\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 24432.6088\n", " \n", " 20424.92\n", " \n", " 0 \n", " \n", " 14 \n", " \n", " 456 \n", " \n", " 608 \n", " \n", " 11507.731\n", " \n", " 12252.6448\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 38 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 5 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 9 \n", " \n", " 4 \n", " \n", " 2014 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \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", " \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", " ... \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", " \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", " ... \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", " \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", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", "
15820\n", " 1 \n", " NULL78171NULLNULLNULLNULLNULLNo DiscountNo Discount02937No Discount1NULL\n", " 1173.96\n", " \n", " 93.9168\n", " \n", " 29.349\n", " \n", " 1297.2258\n", " \n", " 0 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 4 \n", " \n", " 0 \n", " \n", " 1120.49\n", " \n", " 1120.49\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 375 \n", " \n", " 500 \n", " \n", " 713.0798\n", " \n", " 1120.49\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 293.49\n", " \n", " 293.49\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 207 \n", " \n", " 276 \n", " \n", " 183.2694\n", " \n", " 293.49\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 3.99\n", " \n", " 3.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 3 \n", " \n", " 4 \n", " \n", " 1.4923\n", " \n", " 3.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 4 \n", " \n", " 3 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " 1.9981\n", " \n", " 1.9981\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " -0.1153\n", " \n", " -0.1153\n", " \n", " 1.9994\n", " \n", " 1.9981\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 551.4201\n", " \n", " 551.4201\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 196.204\n", " \n", " 261.6053\n", " \n", " 353.2259\n", " \n", " 551.4201\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1173.96\n", " \n", " 1173.96\n", " \n", " 0 \n", " \n", " 4 \n", " \n", " 828 \n", " \n", " 1104 \n", " \n", " 733.0777\n", " \n", " 1173.96\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2014 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2014 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 12 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", "
15821\n", " 1 \n", " NULL1081101NULLNULLNULLNULLNULLNo DiscountNo Discount01119No Discount1NULL\n", " 1179.47\n", " \n", " 94.3576\n", " \n", " 29.4868\n", " \n", " 1303.3144\n", " \n", " 0 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 3 \n", " \n", " 0 \n", " \n", " 1120.49\n", " \n", " 1120.49\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 713.0798\n", " \n", " 1120.49\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 393.1567\n", " \n", " 393.1567\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 27 \n", " \n", " 36 \n", " \n", " 252.8315\n", " \n", " 393.1567\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 8.99\n", " \n", " 8.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 3 \n", " \n", " 4 \n", " \n", " 6.9223\n", " \n", " 8.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 3 \n", " \n", " 3 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " 1.7238\n", " \n", " 1.7238\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1.7321\n", " \n", " 1.7321\n", " \n", " 1.7199\n", " \n", " 1.7238\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 630.2226\n", " \n", " 630.2226\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 41.5692\n", " \n", " 55.4256\n", " \n", " 398.8992\n", " \n", " 630.2226\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1179.47\n", " \n", " 1179.47\n", " \n", " 0 \n", " \n", " 3 \n", " \n", " 81 \n", " \n", " 108 \n", " \n", " 758.4944\n", " \n", " 1179.47\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2014 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2014 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 12 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", "
15822\n", " 1 \n", " NULL7817118NULL17No DiscountNo Discount01132No Discount1NULL\n", " 548.98\n", " \n", " 43.9184\n", " \n", " 13.7245\n", " \n", " 606.6229\n", " \n", " 3 \n", " \n", " 61.5493\n", " \n", " 2461.97\n", " \n", " 196.9576\n", " \n", " 2720.4769\n", " \n", " 0 \n", " \n", " 42.5419\n", " \n", " 1701.6761\n", " \n", " 136.1341\n", " \n", " 1880.3521\n", " \n", " 0 \n", " \n", " 14.849\n", " \n", " 593.96\n", " \n", " 47.5168\n", " \n", " 656.3258\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " -1.3935\n", " \n", " -1.3935\n", " \n", " -1.3935\n", " \n", " -1.3935\n", " \n", " 0 \n", " \n", " 24.5318\n", " \n", " 981.2706\n", " \n", " 78.5017\n", " \n", " 1084.304\n", " \n", " 0 \n", " \n", " 127.6258\n", " \n", " 5105.0282\n", " \n", " 408.4023\n", " \n", " 5641.0563\n", " \n", " 0 \n", " \n", " 2 \n", " \n", " 0 \n", " \n", " 539.99\n", " \n", " 539.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 343.6496\n", " \n", " 539.99\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 274.49\n", " \n", " 274.49\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 39 \n", " \n", " 52 \n", " \n", " 173.506\n", " \n", " 274.49\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 8.99\n", " \n", " 8.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 3 \n", " \n", " 4 \n", " \n", " 3.3623\n", " \n", " 8.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 375.4737\n", " \n", " 375.4737\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 50.9117\n", " \n", " 67.8823\n", " \n", " 240.6195\n", " \n", " 375.4737\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 548.98\n", " \n", " 548.98\n", " \n", " 0 \n", " \n", " 2 \n", " \n", " 78 \n", " \n", " 104 \n", " \n", " 347.0119\n", " \n", " 548.98\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2014 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2014 \n", " \n", " 14 \n", " \n", " 9 \n", " \n", " 2 \n", " \n", " 9 \n", " \n", " 4 \n", " \n", " 4 \n", " \n", " 4 \n", " \n", " 4 \n", " \n", " 3 \n", " \n", " 5 \n", " \n", " 5 \n", " \n", " 5 \n", " \n", " 2013 \n", " \n", " 2013 \n", " \n", " 2013 \n", " \n", " 2013 \n", " \n", " 3 \n", " \n", " 3 \n", " \n", " 3 \n", " \n", " 3 \n", " \n", " 3 \n", " \n", " 3 \n", " \n", " 3 \n", " \n", " 3 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 12 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", "
15823\n", " 1 \n", " NULL8818118NULL18No DiscountNo Discount1343No Discount5NULL\n", " 2384.07\n", " \n", " 190.7256\n", " \n", " 59.6018\n", " \n", " 2634.3974\n", " \n", " 1 \n", " \n", " 25.0109\n", " \n", " 1000.4375\n", " \n", " 80.035\n", " \n", " 1105.4834\n", " \n", " 0 \n", " \n", " 25.0109\n", " \n", " 1000.4375\n", " \n", " 80.035\n", " \n", " 1105.4834\n", " \n", " 0 \n", " \n", " 25.0109\n", " \n", " 1000.4375\n", " \n", " 80.035\n", " \n", " 1105.4834\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 25.0109\n", " \n", " 1000.4375\n", " \n", " 80.035\n", " \n", " 1105.4834\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " 2384.07\n", " \n", " 2384.07\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 1481.9379\n", " \n", " 2384.07\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 2384.07\n", " \n", " 2384.07\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 1481.9379\n", " \n", " 2384.07\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 2384.07\n", " \n", " 2384.07\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 1481.9379\n", " \n", " 2384.07\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 2384.07\n", " \n", " 2384.07\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 1481.9379\n", " \n", " 2384.07\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2014 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2014 \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 3 \n", " \n", " 3 \n", " \n", " 3 \n", " \n", " 2012 \n", " \n", " 2012 \n", " \n", " 2012 \n", " \n", " 2012 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 12 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", "
15824\n", " 1 \n", " NULL108110118NULL110No DiscountNo Discount0333No DiscountNULLNULL\n", " 2419.06\n", " \n", " 193.5248\n", " \n", " 60.4765\n", " \n", " 2673.0613\n", " \n", " 2 \n", " \n", " 89.4568\n", " \n", " 3578.27\n", " \n", " 286.2616\n", " \n", " 3953.9884\n", " \n", " 1 \n", " \n", " 74.6655\n", " \n", " 2986.62\n", " \n", " 238.9296\n", " \n", " 3300.2151\n", " \n", " 0.5\n", " \n", " 59.8743\n", " \n", " 2394.97\n", " \n", " 191.5976\n", " \n", " 2646.4419\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 20.918\n", " \n", " 836.7195\n", " \n", " 66.9376\n", " \n", " 924.575\n", " \n", " 0.7071\n", " \n", " 149.3311\n", " \n", " 5973.24\n", " \n", " 477.8592\n", " \n", " 6600.4303\n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 0 \n", " \n", " 2384.07\n", " \n", " 2384.07\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 1481.9379\n", " \n", " 2384.07\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1209.53\n", " \n", " 1209.53\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 39 \n", " \n", " 52 \n", " \n", " 747.5121\n", " \n", " 1209.53\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 34.99\n", " \n", " 34.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 3 \n", " \n", " 4 \n", " \n", " 13.0863\n", " \n", " 34.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 1661.0504\n", " \n", " 1661.0504\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 50.9117\n", " \n", " 67.8823\n", " \n", " 1038.6349\n", " \n", " 1661.0504\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 2419.06\n", " \n", " 2419.06\n", " \n", " 0 \n", " \n", " 2 \n", " \n", " 78 \n", " \n", " 104 \n", " \n", " 1495.0242\n", " \n", " 2419.06\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2014 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2014 \n", " \n", " 13 \n", " \n", " 8 \n", " \n", " 1 \n", " \n", " 8 \n", " \n", " 5 \n", " \n", " 5 \n", " \n", " 5 \n", " \n", " 5 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2012 \n", " \n", " 2012 \n", " \n", " 2012 \n", " \n", " 2012 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 12 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", "
\n", "\n", "

\n", " 15825 rows x 211 columns
\n", " memory usage: 25.51 MB
\n", " name: featuretools_train
\n", " type: getml.DataFrame
\n", " url: http://localhost:1709/#/getdataframe/adventure_works/featuretools_train/\n", "

\n" ], "text/plain": [ " name churn SalesPersonID TerritoryID RevisionNumber ... MODE(store.YEAR(test)) NUM_UNIQUE(store.DAY(test))\n", " role target categorical categorical categorical ... numerical numerical\n", " 0 0 279 5 8 ... 2014 1 \n", " 1 0 279 5 8 ... 2014 1 \n", " 2 0 282 6 8 ... 2014 1 \n", " 3 0 276 4 8 ... 2014 1 \n", " 4 0 280 1 8 ... 2014 1 \n", " ... ... ... ... ... ...\n", "15820 1 NULL 7 8 ... nan nan \n", "15821 1 NULL 10 8 ... nan nan \n", "15822 1 NULL 7 8 ... nan nan \n", "15823 1 NULL 8 8 ... nan nan \n", "15824 1 NULL 10 8 ... nan nan \n", "\n", " name NUM_UNIQUE(store.MONTH(test)) NUM_UNIQUE(store.WEEKDAY(test)) NUM_UNIQUE(store.YEAR(test))\n", " role numerical numerical numerical\n", " 0 1 1 1 \n", " 1 1 1 1 \n", " 2 1 1 1 \n", " 3 1 1 1 \n", " 4 1 1 1 \n", " ... ... ...\n", "15820 nan nan nan \n", "15821 nan nan nan \n", "15822 nan nan nan \n", "15823 nan nan nan \n", "15824 nan nan nan \n", "\n", "\n", "15825 rows x 211 columns\n", "memory usage: 25.51 MB\n", "name: featuretools_train\n", "type: getml.DataFrame\n", "url: http://localhost:1709/#/getdataframe/adventure_works/featuretools_train/" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "featuretools_train.set_role(\"churn\", getml.data.roles.target)\n", "featuretools_train.set_role(featuretools_train.roles.unused_float, getml.data.roles.numerical)\n", "featuretools_train.set_role(featuretools_train.roles.unused_string, getml.data.roles.categorical)\n", "\n", "featuretools_train" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "90.848157% of all entries of column 'SKEW(sales_order_header.Freight)' are NULL values.\n", "90.848157% of all entries of column 'SKEW(sales_order_header.SubTotal)' are NULL values.\n", "90.848157% of all entries of column 'SKEW(sales_order_header.TaxAmt)' are NULL values.\n", "90.848157% of all entries of column 'SKEW(sales_order_header.TotalDue)' are NULL values.\n", "90.848157% of all entries of column 'SKEW(sales_order_header.churn)' are NULL values.\n" ] }, { "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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", "
name churnSalesPersonIDTerritoryIDRevisionNumberOnlineOrderFlagTerritoryIDCatShipMethodIDMODE(sales_order_header.OnlineOrderFlag)MODE(sales_order_header.RevisionNumber)MODE(sales_order_header.SalesPersonID)MODE(sales_order_header.ShipMethodID)MODE(sales_order_header.TerritoryID)MODE(sales_order_detail.Category)MODE(sales_order_detail.Description)MODE(sales_order_detail.MakeFlag)MODE(sales_order_detail.ProductModelID)MODE(sales_order_detail.ProductSubcategoryID)MODE(sales_order_detail.Type)MODE(sales_order_reason.SalesReasonID)MODE(store.SalesPersonID) SubTotal TaxAmt Freight TotalDueCOUNT(sales_order_header)MAX(sales_order_header.Freight)MAX(sales_order_header.SubTotal)MAX(sales_order_header.TaxAmt)MAX(sales_order_header.TotalDue)MAX(sales_order_header.churn)MEAN(sales_order_header.Freight)MEAN(sales_order_header.SubTotal)MEAN(sales_order_header.TaxAmt)MEAN(sales_order_header.TotalDue)MEAN(sales_order_header.churn)MIN(sales_order_header.Freight)MIN(sales_order_header.SubTotal)MIN(sales_order_header.TaxAmt)MIN(sales_order_header.TotalDue)MIN(sales_order_header.churn)NUM_UNIQUE(sales_order_header.OnlineOrderFlag)NUM_UNIQUE(sales_order_header.RevisionNumber)NUM_UNIQUE(sales_order_header.SalesPersonID)NUM_UNIQUE(sales_order_header.ShipMethodID)NUM_UNIQUE(sales_order_header.TerritoryID)SKEW(sales_order_header.Freight)SKEW(sales_order_header.SubTotal)SKEW(sales_order_header.TaxAmt)SKEW(sales_order_header.TotalDue)SKEW(sales_order_header.churn)STD(sales_order_header.Freight)STD(sales_order_header.SubTotal)STD(sales_order_header.TaxAmt)STD(sales_order_header.TotalDue)STD(sales_order_header.churn)SUM(sales_order_header.Freight)SUM(sales_order_header.SubTotal)SUM(sales_order_header.TaxAmt)SUM(sales_order_header.TotalDue)SUM(sales_order_header.churn)COUNT(sales_order_detail)MAX(sales_order_detail.DiscountPct)MAX(sales_order_detail.LineTotal)MAX(sales_order_detail.ListPrice)MAX(sales_order_detail.MinQty)MAX(sales_order_detail.OrderQty)MAX(sales_order_detail.ReorderPoint)MAX(sales_order_detail.SafetyStockLevel)MAX(sales_order_detail.StandardCost)MAX(sales_order_detail.UnitPrice)MAX(sales_order_detail.UnitPriceDiscount)MEAN(sales_order_detail.DiscountPct)MEAN(sales_order_detail.LineTotal)MEAN(sales_order_detail.ListPrice)MEAN(sales_order_detail.MinQty)MEAN(sales_order_detail.OrderQty)MEAN(sales_order_detail.ReorderPoint)MEAN(sales_order_detail.SafetyStockLevel)MEAN(sales_order_detail.StandardCost)MEAN(sales_order_detail.UnitPrice)MEAN(sales_order_detail.UnitPriceDiscount)MIN(sales_order_detail.DiscountPct)MIN(sales_order_detail.LineTotal)MIN(sales_order_detail.ListPrice)MIN(sales_order_detail.MinQty)MIN(sales_order_detail.OrderQty)MIN(sales_order_detail.ReorderPoint)MIN(sales_order_detail.SafetyStockLevel)MIN(sales_order_detail.StandardCost)MIN(sales_order_detail.UnitPrice)MIN(sales_order_detail.UnitPriceDiscount)NUM_UNIQUE(sales_order_detail.Category)NUM_UNIQUE(sales_order_detail.Description)NUM_UNIQUE(sales_order_detail.MakeFlag)NUM_UNIQUE(sales_order_detail.ProductModelID)NUM_UNIQUE(sales_order_detail.ProductSubcategoryID)NUM_UNIQUE(sales_order_detail.Type)SKEW(sales_order_detail.DiscountPct)SKEW(sales_order_detail.LineTotal)SKEW(sales_order_detail.ListPrice)SKEW(sales_order_detail.MinQty)SKEW(sales_order_detail.OrderQty)SKEW(sales_order_detail.ReorderPoint)SKEW(sales_order_detail.SafetyStockLevel)SKEW(sales_order_detail.StandardCost)SKEW(sales_order_detail.UnitPrice)SKEW(sales_order_detail.UnitPriceDiscount)STD(sales_order_detail.DiscountPct)STD(sales_order_detail.LineTotal)STD(sales_order_detail.ListPrice)STD(sales_order_detail.MinQty)STD(sales_order_detail.OrderQty)STD(sales_order_detail.ReorderPoint)STD(sales_order_detail.SafetyStockLevel)STD(sales_order_detail.StandardCost)STD(sales_order_detail.UnitPrice)STD(sales_order_detail.UnitPriceDiscount)SUM(sales_order_detail.DiscountPct)SUM(sales_order_detail.LineTotal)SUM(sales_order_detail.ListPrice)SUM(sales_order_detail.MinQty)SUM(sales_order_detail.OrderQty)SUM(sales_order_detail.ReorderPoint)SUM(sales_order_detail.SafetyStockLevel)SUM(sales_order_detail.StandardCost)SUM(sales_order_detail.UnitPrice)SUM(sales_order_detail.UnitPriceDiscount)COUNT(sales_order_reason)NUM_UNIQUE(sales_order_reason.SalesReasonID)COUNT(store)NUM_UNIQUE(store.SalesPersonID)DAY(DueDate)DAY(ModifiedDate)DAY(OrderDate)DAY(ShipDate)MONTH(DueDate)MONTH(ModifiedDate)MONTH(OrderDate)MONTH(ShipDate)WEEKDAY(DueDate)WEEKDAY(ModifiedDate)WEEKDAY(OrderDate)WEEKDAY(ShipDate)YEAR(DueDate)YEAR(ModifiedDate)YEAR(OrderDate)YEAR(ShipDate)MODE(sales_order_header.DAY(DueDate))MODE(sales_order_header.DAY(ModifiedDate))MODE(sales_order_header.DAY(OrderDate))MODE(sales_order_header.DAY(ShipDate))MODE(sales_order_header.MONTH(DueDate))MODE(sales_order_header.MONTH(ModifiedDate))MODE(sales_order_header.MONTH(OrderDate))MODE(sales_order_header.MONTH(ShipDate))MODE(sales_order_header.WEEKDAY(DueDate))MODE(sales_order_header.WEEKDAY(ModifiedDate))MODE(sales_order_header.WEEKDAY(OrderDate))MODE(sales_order_header.WEEKDAY(ShipDate))MODE(sales_order_header.YEAR(DueDate))MODE(sales_order_header.YEAR(ModifiedDate))MODE(sales_order_header.YEAR(OrderDate))MODE(sales_order_header.YEAR(ShipDate))NUM_UNIQUE(sales_order_header.DAY(DueDate))NUM_UNIQUE(sales_order_header.DAY(ModifiedDate))NUM_UNIQUE(sales_order_header.DAY(OrderDate))NUM_UNIQUE(sales_order_header.DAY(ShipDate))NUM_UNIQUE(sales_order_header.MONTH(DueDate))NUM_UNIQUE(sales_order_header.MONTH(ModifiedDate))NUM_UNIQUE(sales_order_header.MONTH(OrderDate))NUM_UNIQUE(sales_order_header.MONTH(ShipDate))NUM_UNIQUE(sales_order_header.WEEKDAY(DueDate))NUM_UNIQUE(sales_order_header.WEEKDAY(ModifiedDate))NUM_UNIQUE(sales_order_header.WEEKDAY(OrderDate))NUM_UNIQUE(sales_order_header.WEEKDAY(ShipDate))NUM_UNIQUE(sales_order_header.YEAR(DueDate))NUM_UNIQUE(sales_order_header.YEAR(ModifiedDate))NUM_UNIQUE(sales_order_header.YEAR(OrderDate))NUM_UNIQUE(sales_order_header.YEAR(ShipDate))MODE(sales_order_detail.DAY(EndDate))MODE(sales_order_detail.DAY(ModifiedDate))MODE(sales_order_detail.DAY(StartDate))MODE(sales_order_detail.MONTH(EndDate))MODE(sales_order_detail.MONTH(ModifiedDate))MODE(sales_order_detail.MONTH(StartDate))MODE(sales_order_detail.WEEKDAY(EndDate))MODE(sales_order_detail.WEEKDAY(ModifiedDate))MODE(sales_order_detail.WEEKDAY(StartDate))MODE(sales_order_detail.YEAR(EndDate))MODE(sales_order_detail.YEAR(ModifiedDate))MODE(sales_order_detail.YEAR(StartDate))NUM_UNIQUE(sales_order_detail.DAY(EndDate))NUM_UNIQUE(sales_order_detail.DAY(ModifiedDate))NUM_UNIQUE(sales_order_detail.DAY(StartDate))NUM_UNIQUE(sales_order_detail.MONTH(EndDate))NUM_UNIQUE(sales_order_detail.MONTH(ModifiedDate))NUM_UNIQUE(sales_order_detail.MONTH(StartDate))NUM_UNIQUE(sales_order_detail.WEEKDAY(EndDate))NUM_UNIQUE(sales_order_detail.WEEKDAY(ModifiedDate))NUM_UNIQUE(sales_order_detail.WEEKDAY(StartDate))NUM_UNIQUE(sales_order_detail.YEAR(EndDate))NUM_UNIQUE(sales_order_detail.YEAR(ModifiedDate))NUM_UNIQUE(sales_order_detail.YEAR(StartDate))MODE(store.DAY(test))MODE(store.MONTH(test))MODE(store.WEEKDAY(test))MODE(store.YEAR(test))NUM_UNIQUE(store.DAY(test))NUM_UNIQUE(store.MONTH(test))NUM_UNIQUE(store.WEEKDAY(test))NUM_UNIQUE(store.YEAR(test))
roletargetcategorical categoricalcategorical categorical categorical categorical categorical categorical categorical categorical categorical categorical categorical categorical categorical categorical categorical categorical categorical numericalnumericalnumerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical numerical
0\n", " 0 \n", " 28268065NULLNULLNULLNULLNULLNo DiscountNo Discount1302No DiscountNULL282\n", " 28832.5289\n", " \n", " 2775.1646\n", " \n", " 867.2389\n", " \n", " 32474.9324\n", " \n", " 0 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 22 \n", " \n", " 0 \n", " \n", " 5248.764\n", " \n", " 3578.27\n", " \n", " 0 \n", " \n", " 6 \n", " \n", " 375 \n", " \n", " 500 \n", " \n", " 2171.2942\n", " \n", " 2146.962\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1310.5695\n", " \n", " 1021.1545\n", " \n", " 0 \n", " \n", " 2.4545\n", " \n", " 184.0909\n", " \n", " 245.4545\n", " \n", " 619.8742\n", " \n", " 588.8855\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 178.5808\n", " \n", " 337.22\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 187.1571\n", " \n", " 178.5808\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 5 \n", " \n", " 2 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " 1.8938\n", " \n", " 2.1819\n", " \n", " 0 \n", " \n", " 0.7899\n", " \n", " 0.6093\n", " \n", " 0.6093\n", " \n", " 2.1479\n", " \n", " 2.1812\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1219.991\n", " \n", " 911.954\n", " \n", " 0 \n", " \n", " 1.5346\n", " \n", " 147.7098\n", " \n", " 196.9464\n", " \n", " 555.2103\n", " \n", " 556.8657\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 28832.5289\n", " \n", " 22465.4\n", " \n", " 0 \n", " \n", " 54 \n", " \n", " 4050 \n", " \n", " 5400 \n", " \n", " 13637.2318\n", " \n", " 12955.4816\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 74 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 5 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 9 \n", " \n", " 4 \n", " \n", " 2014 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", "
1\n", " 0 \n", " 28318015NULLNULLNULLNULLNULLNo DiscountNo Discount0191No DiscountNULL283\n", " 14352.7713\n", " \n", " 1375.9427\n", " \n", " 429.9821\n", " \n", " 16158.6961\n", " \n", " 0 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 10 \n", " \n", " 0 \n", " \n", " 4049.988\n", " \n", " 3399.99\n", " \n", " 0 \n", " \n", " 6 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 1912.1544\n", " \n", " 2039.994\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1435.2771\n", " \n", " 1703.841\n", " \n", " 0 \n", " \n", " 2 \n", " \n", " 39 \n", " \n", " 52 \n", " \n", " 957.9515\n", " \n", " 1022.007\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 10.373\n", " \n", " 8.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 3 \n", " \n", " 4 \n", " \n", " 3.3963\n", " \n", " 5.1865\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 5 \n", " \n", " 5 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " 0.695\n", " \n", " -9.915e-05\n", " \n", " 0 \n", " \n", " 2.5156\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " -0.0002387\n", " \n", " -8.522e-05\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1652.4063\n", " \n", " 1766.8723\n", " \n", " 0 \n", " \n", " 1.4907\n", " \n", " 37.9473\n", " \n", " 50.5964\n", " \n", " 994.013\n", " \n", " 1060.435\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 14352.7713\n", " \n", " 17038.41\n", " \n", " 0 \n", " \n", " 20 \n", " \n", " 390 \n", " \n", " 520 \n", " \n", " 9579.5155\n", " \n", " 10220.0699\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 38 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 5 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 9 \n", " \n", " 4 \n", " \n", " 2014 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", "
2\n", " 0 \n", " 28318015NULLNULLNULLNULLNULLNo DiscountNo Discount1512No DiscountNULL283\n", " 714.7043\n", " \n", " 70.5175\n", " \n", " 22.0367\n", " \n", " 807.2585\n", " \n", " 0 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " 714.7043\n", " \n", " 1349.6\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 375 \n", " \n", " 500 \n", " \n", " 739.041\n", " \n", " 714.7043\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 714.7043\n", " \n", " 1349.6\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 375 \n", " \n", " 500 \n", " \n", " 739.041\n", " \n", " 714.7043\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 714.7043\n", " \n", " 1349.6\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 375 \n", " \n", " 500 \n", " \n", " 739.041\n", " \n", " 714.7043\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 714.7043\n", " \n", " 1349.6\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 375 \n", " \n", " 500 \n", " \n", " 739.041\n", " \n", " 714.7043\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 38 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 5 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 9 \n", " \n", " 4 \n", " \n", " 2014 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", "
3\n", " 0 \n", " 27958055NULLNULLNULLNULLNULLNo DiscountNo Discount1302No DiscountNULL279\n", " 5596.4705\n", " \n", " 537.2612\n", " \n", " 167.8941\n", " \n", " 6301.6258\n", " \n", " 0 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 6 \n", " \n", " 0 \n", " \n", " 1749.588\n", " \n", " 1457.99\n", " \n", " 0 \n", " \n", " 2 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 884.7083\n", " \n", " 874.794\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 932.7451\n", " \n", " 1007.99\n", " \n", " 0 \n", " \n", " 1.5\n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 619.3738\n", " \n", " 571.2373\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 419.4589\n", " \n", " 782.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 486.7066\n", " \n", " 419.4589\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " 0.7356\n", " \n", " 0.9682\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0.9682\n", " \n", " 0.9682\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 653.2467\n", " \n", " 348.5685\n", " \n", " 0 \n", " \n", " 0.5477\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 205.5272\n", " \n", " 235.134\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 5596.4705\n", " \n", " 6047.94\n", " \n", " 0 \n", " \n", " 9 \n", " \n", " 450 \n", " \n", " 600 \n", " \n", " 3716.243\n", " \n", " 3427.4236\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 80 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 5 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 9 \n", " \n", " 4 \n", " \n", " 2014 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", "
4\n", " 0 \n", " 27748045NULLNULLNULLNULLNULLNo DiscountNo Discount1282No DiscountNULL277\n", " 874.794\n", " \n", " 83.9802\n", " \n", " 26.2438\n", " \n", " 985.018\n", " \n", " 0 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " 874.794\n", " \n", " 1457.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 884.7083\n", " \n", " 874.794\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 874.794\n", " \n", " 1457.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 884.7083\n", " \n", " 874.794\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 874.794\n", " \n", " 1457.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 884.7083\n", " \n", " 874.794\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 874.794\n", " \n", " 1457.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 884.7083\n", " \n", " 874.794\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 76 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 5 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 9 \n", " \n", " 4 \n", " \n", " 2014 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \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", " \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", " ... \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", " \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", " ... \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", " \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", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", " \n", " ... \n", "
3874\n", " 1 \n", " NULL9819118NULL19No DiscountNo Discount0272No Discount1NULL\n", " 1725.98\n", " \n", " 138.0784\n", " \n", " 43.1495\n", " \n", " 1907.2079\n", " \n", " 1 \n", " \n", " 51.7855\n", " \n", " 2071.4196\n", " \n", " 165.7136\n", " \n", " 2288.9187\n", " \n", " 0 \n", " \n", " 51.7855\n", " \n", " 2071.4196\n", " \n", " 165.7136\n", " \n", " 2288.9187\n", " \n", " 0 \n", " \n", " 51.7855\n", " \n", " 2071.4196\n", " \n", " 165.7136\n", " \n", " 2288.9187\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 51.7855\n", " \n", " 2071.4196\n", " \n", " 165.7136\n", " \n", " 2288.9187\n", " \n", " 0 \n", " \n", " 2 \n", " \n", " 0 \n", " \n", " 1700.99\n", " \n", " 1700.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 375 \n", " \n", " 500 \n", " \n", " 1082.51\n", " \n", " 1700.99\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 862.99\n", " \n", " 862.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 225 \n", " \n", " 300 \n", " \n", " 545.9281\n", " \n", " 862.99\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 24.99\n", " \n", " 24.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 9.3463\n", " \n", " 24.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 1185.111\n", " \n", " 1185.111\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 212.132\n", " \n", " 282.8427\n", " \n", " 758.8413\n", " \n", " 1185.111\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1725.98\n", " \n", " 1725.98\n", " \n", " 0 \n", " \n", " 2 \n", " \n", " 450 \n", " \n", " 600 \n", " \n", " 1091.8563\n", " \n", " 1725.98\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2014 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2014 \n", " \n", " 8 \n", " \n", " 3 \n", " \n", " 27 \n", " \n", " 3 \n", " \n", " 4 \n", " \n", " 4 \n", " \n", " 3 \n", " \n", " 4 \n", " \n", " 0 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2013 \n", " \n", " 2013 \n", " \n", " 2013 \n", " \n", " 2013 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 12 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", "
3875\n", " 1 \n", " NULL9819118NULL19No DiscountNo Discount02437No Discount1NULL\n", " 2488.93\n", " \n", " 199.1144\n", " \n", " 62.2233\n", " \n", " 2750.2677\n", " \n", " 1 \n", " \n", " 89.4568\n", " \n", " 3578.27\n", " \n", " 286.2616\n", " \n", " 3953.9884\n", " \n", " 0 \n", " \n", " 89.4568\n", " \n", " 3578.27\n", " \n", " 286.2616\n", " \n", " 3953.9884\n", " \n", " 0 \n", " \n", " 89.4568\n", " \n", " 3578.27\n", " \n", " 286.2616\n", " \n", " 3953.9884\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 89.4568\n", " \n", " 3578.27\n", " \n", " 286.2616\n", " \n", " 3953.9884\n", " \n", " 0 \n", " \n", " 4 \n", " \n", " 0 \n", " \n", " 2443.35\n", " \n", " 2443.35\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 375 \n", " \n", " 500 \n", " \n", " 1554.9479\n", " \n", " 2443.35\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 622.2325\n", " \n", " 622.2325\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 207 \n", " \n", " 276 \n", " \n", " 392.9987\n", " \n", " 622.2325\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 3.99\n", " \n", " 3.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 3 \n", " \n", " 4 \n", " \n", " 1.4923\n", " \n", " 3.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 4 \n", " \n", " 3 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " 1.9994\n", " \n", " 1.9994\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " -0.1153\n", " \n", " -0.1153\n", " \n", " 1.9998\n", " \n", " 1.9994\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1214.1424\n", " \n", " 1214.1424\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 196.204\n", " \n", " 261.6053\n", " \n", " 774.6468\n", " \n", " 1214.1424\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 2488.93\n", " \n", " 2488.93\n", " \n", " 0 \n", " \n", " 4 \n", " \n", " 828 \n", " \n", " 1104 \n", " \n", " 1571.9949\n", " \n", " 2488.93\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2014 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2014 \n", " \n", " 24 \n", " \n", " 19 \n", " \n", " 12 \n", " \n", " 19 \n", " \n", " 10 \n", " \n", " 10 \n", " \n", " 10 \n", " \n", " 10 \n", " \n", " 0 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 12 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", "
3876\n", " 1 \n", " NULL1811118NULL11No DiscountNo Discount03537No Discount1NULL\n", " 1248.83\n", " \n", " 99.9064\n", " \n", " 31.2208\n", " \n", " 1379.9572\n", " \n", " 1 \n", " \n", " 84.3748\n", " \n", " 3374.99\n", " \n", " 269.9992\n", " \n", " 3729.364\n", " \n", " 0 \n", " \n", " 84.3748\n", " \n", " 3374.99\n", " \n", " 269.9992\n", " \n", " 3729.364\n", " \n", " 0 \n", " \n", " 84.3748\n", " \n", " 3374.99\n", " \n", " 269.9992\n", " \n", " 3729.364\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 84.3748\n", " \n", " 3374.99\n", " \n", " 269.9992\n", " \n", " 3729.364\n", " \n", " 0 \n", " \n", " 3 \n", " \n", " 0.02\n", " \n", " 1214.85\n", " \n", " 1214.85\n", " \n", " 11 \n", " \n", " 1 \n", " \n", " 375 \n", " \n", " 500 \n", " \n", " 755.1508\n", " \n", " 1214.85\n", " \n", " 0 \n", " \n", " 0.006667\n", " \n", " 416.2767\n", " \n", " 416.2767\n", " \n", " 3.6667\n", " \n", " 1 \n", " \n", " 275 \n", " \n", " 366.6667\n", " \n", " 255.9531\n", " \n", " 416.2767\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 4.99\n", " \n", " 4.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 1.8663\n", " \n", " 4.99\n", " \n", " 0 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 3 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 1.7321\n", " \n", " 1.7297\n", " \n", " 1.7297\n", " \n", " 1.7321\n", " \n", " 0 \n", " \n", " -1.7321\n", " \n", " -1.7321\n", " \n", " 1.7312\n", " \n", " 1.7297\n", " \n", " 0 \n", " \n", " 0.01155\n", " \n", " 691.6889\n", " \n", " 691.6889\n", " \n", " 6.3509\n", " \n", " 0 \n", " \n", " 173.2051\n", " \n", " 230.9401\n", " \n", " 432.3412\n", " \n", " 691.6889\n", " \n", " 0 \n", " \n", " 0.02\n", " \n", " 1248.83\n", " \n", " 1248.83\n", " \n", " 11 \n", " \n", " 3 \n", " \n", " 825 \n", " \n", " 1100 \n", " \n", " 767.8594\n", " \n", " 1248.83\n", " \n", " 0 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2014 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2014 \n", " \n", " 21 \n", " \n", " 16 \n", " \n", " 9 \n", " \n", " 16 \n", " \n", " 8 \n", " \n", " 8 \n", " \n", " 8 \n", " \n", " 8 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 12 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", "
3877\n", " 1 \n", " NULL4814118NULL14No DiscountNo Discount010728No Discount1NULL\n", " 2453.04\n", " \n", " 196.2432\n", " \n", " 61.326\n", " \n", " 2710.6092\n", " \n", " 1 \n", " \n", " 84.3748\n", " \n", " 3374.99\n", " \n", " 269.9992\n", " \n", " 3729.364\n", " \n", " 0 \n", " \n", " 84.3748\n", " \n", " 3374.99\n", " \n", " 269.9992\n", " \n", " 3729.364\n", " \n", " 0 \n", " \n", " 84.3748\n", " \n", " 3374.99\n", " \n", " 269.9992\n", " \n", " 3729.364\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 84.3748\n", " \n", " 3374.99\n", " \n", " 269.9992\n", " \n", " 3729.364\n", " \n", " 0 \n", " \n", " 4 \n", " \n", " 0 \n", " \n", " 2384.07\n", " \n", " 2384.07\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 1481.9379\n", " \n", " 2384.07\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 613.26\n", " \n", " 613.26\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 21 \n", " \n", " 28 \n", " \n", " 376.9332\n", " \n", " 613.26\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 4.99\n", " \n", " 4.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 3 \n", " \n", " 4 \n", " \n", " 1.8663\n", " \n", " 4.99\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 4 \n", " \n", " 3 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " 1.9978\n", " \n", " 1.9978\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 2.\n", " \n", " 2.\n", " \n", " 1.9992\n", " \n", " 1.9978\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 1180.758\n", " \n", " 1180.758\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 36 \n", " \n", " 48 \n", " \n", " 736.7187\n", " \n", " 1180.758\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 2453.04\n", " \n", " 2453.04\n", " \n", " 0 \n", " \n", " 4 \n", " \n", " 84 \n", " \n", " 112 \n", " \n", " 1507.7328\n", " \n", " 2453.04\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2014 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2014 \n", " \n", " 24 \n", " \n", " 19 \n", " \n", " 12 \n", " \n", " 19 \n", " \n", " 4 \n", " \n", " 4 \n", " \n", " 4 \n", " \n", " 4 \n", " \n", " 1 \n", " \n", " 3 \n", " \n", " 3 \n", " \n", " 3 \n", " \n", " 2012 \n", " \n", " 2012 \n", " \n", " 2012 \n", " \n", " 2012 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 12 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", "
3878\n", " 1 \n", " NULL18111NULLNULLNULLNULLNULLNo DiscountNo Discount0292No Discount1NULL\n", " 1179.97\n", " \n", " 94.3976\n", " \n", " 29.4993\n", " \n", " 1303.8669\n", " \n", " 0 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 3 \n", " \n", " 0.02\n", " \n", " 1120.49\n", " \n", " 1120.49\n", " \n", " 11 \n", " \n", " 1 \n", " \n", " 75 \n", " \n", " 100 \n", " \n", " 713.0798\n", " \n", " 1120.49\n", " \n", " 0 \n", " \n", " 0.006667\n", " \n", " 393.3233\n", " \n", " 393.3233\n", " \n", " 3.6667\n", " \n", " 1 \n", " \n", " 27 \n", " \n", " 36 \n", " \n", " 245.1085\n", " \n", " 393.3233\n", " \n", " 0 \n", " \n", " 0 \n", " \n", " 24.49\n", " \n", " 24.49\n", " \n", " 0 \n", " \n", " 1 \n", " \n", " 3 \n", " \n", " 4 \n", " \n", " 9.1593\n", " \n", " 24.49\n", " \n", " 0 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 3 \n", " \n", " 3 \n", " \n", " 2 \n", " \n", " 1.7321\n", " \n", " 1.7315\n", " \n", " 1.7315\n", " \n", " 1.7321\n", " \n", " 0 \n", " \n", " 1.7321\n", " \n", " 1.7321\n", " \n", " 1.7319\n", " \n", " 1.7315\n", " \n", " 0 \n", " \n", " 0.01155\n", " \n", " 629.7667\n", " \n", " 629.7667\n", " \n", " 6.3509\n", " \n", " 0 \n", " \n", " 41.5692\n", " \n", " 55.4256\n", " \n", " 405.2798\n", " \n", " 629.7667\n", " \n", " 0 \n", " \n", " 0.02\n", " \n", " 1179.97\n", " \n", " 1179.97\n", " \n", " 11 \n", " \n", " 3 \n", " \n", " 81 \n", " \n", " 108 \n", " \n", " 735.3254\n", " \n", " 1179.97\n", " \n", " 0 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 0 \n", " \n", " nan \n", " \n", " 12 \n", " \n", " 7 \n", " \n", " 31 \n", " \n", " 7 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 12 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2014 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2014 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " 30 \n", " \n", " 31 \n", " \n", " 1 \n", " \n", " 11 \n", " \n", " 12 \n", " \n", " 5 \n", " \n", " 6 \n", " \n", " 1 \n", " \n", " 6 \n", " \n", " 2014 \n", " \n", " 2013 \n", " \n", " 2011 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 2 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 1 \n", " \n", " 2 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " 1 \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", " \n", " nan \n", "
\n", "\n", "

\n", " 3879 rows x 211 columns
\n", " memory usage: 6.25 MB
\n", " name: featuretools_test
\n", " type: getml.DataFrame
\n", " url: http://localhost:1709/#/getdataframe/adventure_works/featuretools_test/\n", "

\n" ], "text/plain": [ "name churn SalesPersonID TerritoryID RevisionNumber ... MODE(store.YEAR(test)) NUM_UNIQUE(store.DAY(test))\n", "role target categorical categorical categorical ... numerical numerical\n", " 0 0 282 6 8 ... 2014 1 \n", " 1 0 283 1 8 ... 2014 1 \n", " 2 0 283 1 8 ... 2014 1 \n", " 3 0 279 5 8 ... 2014 1 \n", " 4 0 277 4 8 ... 2014 1 \n", " ... ... ... ... ... ...\n", "3874 1 NULL 9 8 ... nan nan \n", "3875 1 NULL 9 8 ... nan nan \n", "3876 1 NULL 1 8 ... nan nan \n", "3877 1 NULL 4 8 ... nan nan \n", "3878 1 NULL 1 8 ... nan nan \n", "\n", "name NUM_UNIQUE(store.MONTH(test)) NUM_UNIQUE(store.WEEKDAY(test)) NUM_UNIQUE(store.YEAR(test))\n", "role numerical numerical numerical\n", " 0 1 1 1 \n", " 1 1 1 1 \n", " 2 1 1 1 \n", " 3 1 1 1 \n", " 4 1 1 1 \n", " ... ... ...\n", "3874 nan nan nan \n", "3875 nan nan nan \n", "3876 nan nan nan \n", "3877 nan nan nan \n", "3878 nan nan nan \n", "\n", "\n", "3879 rows x 211 columns\n", "memory usage: 6.25 MB\n", "name: featuretools_test\n", "type: getml.DataFrame\n", "url: http://localhost:1709/#/getdataframe/adventure_works/featuretools_test/" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "featuretools_test.set_role(\"churn\", getml.data.roles.target)\n", "featuretools_test.set_role(featuretools_test.roles.unused_float, getml.data.roles.numerical)\n", "featuretools_test.set_role(featuretools_test.roles.unused_string, getml.data.roles.categorical)\n", "\n", "featuretools_test" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We train an untuned XGBoostRegressor on top of featuretools' features, just like we have done for getML's features.\n", "\n", "Since some of featuretools features are categorical, we allow the pipeline to include these features as well. Other features contain NaN values, which is why we also apply getML's Imputation preprocessor." ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Pipeline(data_model='population',\n",
       "         feature_learners=[],\n",
       "         feature_selectors=[],\n",
       "         include_categorical=True,\n",
       "         loss_function=None,\n",
       "         peripheral=[],\n",
       "         predictors=['XGBoostClassifier'],\n",
       "         preprocessors=['Imputation'],\n",
       "         share_selected_features=0.5,\n",
       "         tags=['featuretools'])
" ], "text/plain": [ "Pipeline(data_model='population',\n", " feature_learners=[],\n", " feature_selectors=[],\n", " include_categorical=True,\n", " loss_function=None,\n", " peripheral=[],\n", " predictors=['XGBoostClassifier'],\n", " preprocessors=['Imputation'],\n", " share_selected_features=0.5,\n", " tags=['featuretools'])" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "imputation = getml.preprocessors.Imputation()\n", "\n", "predictor = getml.predictors.XGBoostClassifier(n_jobs=1)\n", "\n", "pipe3 = getml.Pipeline(\n", " tags=['featuretools'],\n", " preprocessors=[imputation],\n", " predictors=[predictor],\n", " include_categorical=True,\n", ")\n", "\n", "pipe3" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Checking data model...\n", "\n", "Staging...\n", "[========================================] 100%\n", "\n", "Preprocessing...\n", "[========================================] 100%\n", "\n", "Checking...\n", "[========================================] 100%\n", "\n", "\n", "WARNING [COLUMN SHOULD BE UNUSED]: All non-NULL entries in column 'COALESCE( num_unique(sales_order_header.onlineorderflag), 1.000000 )' in POPULATION__STAGING_TABLE_1 are equal to each other. You should consider setting its role to unused_float or using it for comparison only (you can do the latter by setting a unit that contains 'comparison only').\n", "WARNING [COLUMN SHOULD BE UNUSED]: All non-NULL entries in column 'COALESCE( num_unique(sales_order_header.shipmethodid), 1.000000 )' in POPULATION__STAGING_TABLE_1 are equal to each other. You should consider setting its role to unused_float or using it for comparison only (you can do the latter by setting a unit that contains 'comparison only').\n", "WARNING [COLUMN SHOULD BE UNUSED]: All non-NULL entries in column 'COALESCE( num_unique(sales_order_header.territoryid), 1.000000 )' in POPULATION__STAGING_TABLE_1 are equal to each other. You should consider setting its role to unused_float or using it for comparison only (you can do the latter by setting a unit that contains 'comparison only').\n", "WARNING [COLUMN SHOULD BE UNUSED]: All non-NULL entries in column 'COALESCE( num_unique(store.salespersonid), 1.000000 )' in POPULATION__STAGING_TABLE_1 are equal to each other. You should consider setting its role to unused_float or using it for comparison only (you can do the latter by setting a unit that contains 'comparison only').\n", "WARNING [COLUMN SHOULD BE UNUSED]: All non-NULL entries in column 'COALESCE( num_unique(sales_order_detail.day(modifieddate)), 1.000000 )' in POPULATION__STAGING_TABLE_1 are equal to each other. You should consider setting its role to unused_float or using it for comparison only (you can do the latter by setting a unit that contains 'comparison only').\n", "WARNING [COLUMN SHOULD BE UNUSED]: All non-NULL entries in column 'COALESCE( num_unique(sales_order_detail.month(modifieddate)), 1.000000 )' in POPULATION__STAGING_TABLE_1 are equal to each other. You should consider setting its role to unused_float or using it for comparison only (you can do the latter by setting a unit that contains 'comparison only').\n", "WARNING [COLUMN SHOULD BE UNUSED]: All non-NULL entries in column 'COALESCE( num_unique(sales_order_detail.weekday(modifieddate)), 1.000000 )' in POPULATION__STAGING_TABLE_1 are equal to each other. You should consider setting its role to unused_float or using it for comparison only (you can do the latter by setting a unit that contains 'comparison only').\n", "WARNING [COLUMN SHOULD BE UNUSED]: All non-NULL entries in column 'COALESCE( num_unique(sales_order_detail.year(modifieddate)), 1.000000 )' in POPULATION__STAGING_TABLE_1 are equal to each other. You should consider setting its role to unused_float or using it for comparison only (you can do the latter by setting a unit that contains 'comparison only').\n", "WARNING [COLUMN SHOULD BE UNUSED]: All non-NULL entries in column 'COALESCE( mode(store.day(test)), 12.000000 )' in POPULATION__STAGING_TABLE_1 are equal to each other. You should consider setting its role to unused_float or using it for comparison only (you can do the latter by setting a unit that contains 'comparison only').\n", "WARNING [COLUMN SHOULD BE UNUSED]: All non-NULL entries in column 'COALESCE( mode(store.month(test)), 9.000000 )' in POPULATION__STAGING_TABLE_1 are equal to each other. You should consider setting its role to unused_float or using it for comparison only (you can do the latter by setting a unit that contains 'comparison only').\n", "WARNING [COLUMN SHOULD BE UNUSED]: All non-NULL entries in column 'COALESCE( mode(store.weekday(test)), 4.000000 )' in POPULATION__STAGING_TABLE_1 are equal to each other. You should consider setting its role to unused_float or using it for comparison only (you can do the latter by setting a unit that contains 'comparison only').\n", "WARNING [COLUMN SHOULD BE UNUSED]: All non-NULL entries in column 'COALESCE( mode(store.year(test)), 2014.000000 )' in POPULATION__STAGING_TABLE_1 are equal to each other. You should consider setting its role to unused_float or using it for comparison only (you can do the latter by setting a unit that contains 'comparison only').\n", "WARNING [COLUMN SHOULD BE UNUSED]: All non-NULL entries in column 'COALESCE( num_unique(store.day(test)), 1.000000 )' in POPULATION__STAGING_TABLE_1 are equal to each other. You should consider setting its role to unused_float or using it for comparison only (you can do the latter by setting a unit that contains 'comparison only').\n", "WARNING [COLUMN SHOULD BE UNUSED]: All non-NULL entries in column 'COALESCE( num_unique(store.month(test)), 1.000000 )' in POPULATION__STAGING_TABLE_1 are equal to each other. You should consider setting its role to unused_float or using it for comparison only (you can do the latter by setting a unit that contains 'comparison only').\n", "WARNING [COLUMN SHOULD BE UNUSED]: All non-NULL entries in column 'COALESCE( num_unique(store.weekday(test)), 1.000000 )' in POPULATION__STAGING_TABLE_1 are equal to each other. You should consider setting its role to unused_float or using it for comparison only (you can do the latter by setting a unit that contains 'comparison only').\n", "WARNING [COLUMN SHOULD BE UNUSED]: All non-NULL entries in column 'COALESCE( num_unique(store.year(test)), 1.000000 )' in POPULATION__STAGING_TABLE_1 are equal to each other. You should consider setting its role to unused_float or using it for comparison only (you can do the latter by setting a unit that contains 'comparison only').\n", "\n", "Staging...\n", "[========================================] 100%\n", "\n", "Preprocessing...\n", "[========================================] 100%\n", "\n", "XGBoost: Training as predictor...\n", "[========================================] 100%\n", "\n", "\n", "Trained pipeline.\n", "Time taken: 0h:0m:9.291978\n", "\n" ] }, { "data": { "text/html": [ "
Pipeline(data_model='population',\n",
       "         feature_learners=[],\n",
       "         feature_selectors=[],\n",
       "         include_categorical=True,\n",
       "         loss_function=None,\n",
       "         peripheral=[],\n",
       "         predictors=['XGBoostClassifier'],\n",
       "         preprocessors=['Imputation'],\n",
       "         share_selected_features=0.5,\n",
       "         tags=['featuretools'])

url: http://localhost:1709/#/getpipeline/adventure_works/1xNSbT/0/
" ], "text/plain": [ "Pipeline(data_model='population',\n", " feature_learners=[],\n", " feature_selectors=[],\n", " include_categorical=True,\n", " loss_function=None,\n", " peripheral=[],\n", " predictors=['XGBoostClassifier'],\n", " preprocessors=['Imputation'],\n", " share_selected_features=0.5,\n", " tags=['featuretools'])\n", "\n", "url: http://localhost:1709/#/getpipeline/adventure_works/1xNSbT/0/" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipe3.fit(featuretools_train)" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Staging...\n", "[========================================] 100%\n", "\n", "Preprocessing...\n", "[========================================] 100%\n", "\n", "\n" ] }, { "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", " \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", "
date time set used targetaccuracy auccross entropy
02021-08-23 16:13:35featuretools_trainchurn0.91590.9720.2248
12021-08-23 16:13:35featuretools_testchurn0.910.96770.2374
" ], "text/plain": [ " date time set used target accuracy auc cross entropy\n", "0 2021-08-23 16:13:35 featuretools_train churn 0.9159 0.972 0.2248\n", "1 2021-08-23 16:13:35 featuretools_test churn 0.91 0.9677 0.2374" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipe3.score(featuretools_test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.6 Productionization\n", "\n", "It is possible to productionize the pipeline by transpiling the features into production-ready SQL code. Please also refer to getML's `sqlite3` module.\n" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "# Creates a folder named adventure_works containing\n", "# the SQL code.\n", "pipe2.features.to_sql().save(\"adventure_works\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.7 Discussion\n", "\n", "For a more convenient overview, we summarize our results into a table.\n", "\n", "Name | Accuracy | AUC | Cross entropy\n", "-------------------- | ---------- | -------| -------------\n", "getML: FastProp | 91.26% | 0.9711 | 0.2217\n", "getML: Relboost | 92.96% | 0.9798 | 0.1832\n", "featuretools | 91.00% | 0.9677 | 0.2374\n", "\n", "The picture we get is very consistent: Relboost outperforms FastProp and FastProp outperforms featuretools for all three measures.\n", "\n", "These results also clearly demonstrate that this is a synthetic dataset - in the real-world, customer churn can not be predicted at this level of accuracy." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. Conclusion\n", "\n", "We demonstrated how getML can be used for a classic customer churn project. We have also benchmarked against featuretools. We found that getML outperforms featuretools." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## References\n", "\n", "Motl, Jan, and Oliver Schulte. \"The CTU prague relational learning repository.\" arXiv preprint arXiv:1511.03086 (2015)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Next Steps\n", "\n", "This tutorial benchmarked getML against academic state-of-the-art algorithms from relational learning literature and getML's qualities with respect to categorical data.\n", "\n", "If you are interested in further real-world applications of getML, head back to the [notebook overview](welcome.md) and choose one of the remaining examples.\n", "\n", "Here is some additional material from our [documentation](https://docs.getml.com/latest/) if you want to learn more about getML:\n", "* [Feature learning with Multirel](https://docs.getml.com/latest/user_guide/feature_engineering/feature_engineering.html#multirel)\n", "* [Feature learning with Relboost](https://docs.getml.com/latest/user_guide/feature_engineering/feature_engineering.html#relboost)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Get in contact\n", "\n", "If you have any question schedule a [call with Alex](https://go.getml.com/meetings/alexander-uhlig/getml-demo), the co-founder of getML, or write us an [email](team@getml.com). Prefer a private demo of getML? Just contact us to make an appointment." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "jupytext": { "encoding": "# -*- coding: utf-8 -*-", "formats": "ipynb,py:percent,md" }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "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.9.5" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": false, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 4 }