From 920219caef4be78d1a440fbe7bf7c8b76d8d3ba8 Mon Sep 17 00:00:00 2001
From: xzdandy
Date: Wed, 4 Oct 2023 02:48:28 -0400
Subject: [PATCH 01/50] Remove empty evadb.db file.
---
evadb.db | 0
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 evadb.db
diff --git a/evadb.db b/evadb.db
deleted file mode 100644
index e69de29bb2..0000000000
From 2b5ba6a5cfc0b1465289f6d7b2206fa667d0b552 Mon Sep 17 00:00:00 2001
From: xzdandy
Date: Wed, 4 Oct 2023 02:49:40 -0400
Subject: [PATCH 02/50] Move github test into long intergration test so they
are run on the circle ci.
---
.../long}/test_github_datasource.py | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename test/{third_party_tests => integration_tests/long}/test_github_datasource.py (100%)
diff --git a/test/third_party_tests/test_github_datasource.py b/test/integration_tests/long/test_github_datasource.py
similarity index 100%
rename from test/third_party_tests/test_github_datasource.py
rename to test/integration_tests/long/test_github_datasource.py
From 45af91efb6d74c068eb4436f4ec0cdc98a588ab9 Mon Sep 17 00:00:00 2001
From: xzdandy
Date: Wed, 4 Oct 2023 03:03:31 -0400
Subject: [PATCH 03/50] Clean up test_relational_api.py
---
.../long/interfaces/relational/test_relational_api.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/test/integration_tests/long/interfaces/relational/test_relational_api.py b/test/integration_tests/long/interfaces/relational/test_relational_api.py
index 773607960b..fee4029e2a 100644
--- a/test/integration_tests/long/interfaces/relational/test_relational_api.py
+++ b/test/integration_tests/long/interfaces/relational/test_relational_api.py
@@ -57,6 +57,7 @@ def tearDown(self):
# todo: move these to relational apis as well
execute_query_fetch_all(self.evadb, """DROP TABLE IF EXISTS mnist_video;""")
execute_query_fetch_all(self.evadb, """DROP TABLE IF EXISTS meme_images;""")
+ execute_query_fetch_all(self.evadb, """DROP TABLE IF EXISTS dummy_table;""")
def test_relation_apis(self):
cursor = self.conn.cursor()
From 9d2227e452e978464c6f05887f1f65446b3909f6 Mon Sep 17 00:00:00 2001
From: xzdandy
Date: Wed, 4 Oct 2023 03:06:35 -0400
Subject: [PATCH 04/50] Update link in the github data source documentation
---
docs/source/reference/databases/github.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/source/reference/databases/github.rst b/docs/source/reference/databases/github.rst
index 6674e6575f..fcbd5f62e3 100644
--- a/docs/source/reference/databases/github.rst
+++ b/docs/source/reference/databases/github.rst
@@ -34,7 +34,7 @@ Create Connection
Supported Tables
----------------
-* ``stargazers``: Lists the people that have starred the repository. Check `evadb/third_party/databases/github/table_column_info.py` for all the available columns in the table.
+* ``stargazers``: Lists the people that have starred the repository. Check `table_column_info.py`_ for all the available columns in the table.
.. code-block:: sql
@@ -54,4 +54,4 @@ Here is the query output:
.. note::
- Looking for another table from Github? You can add a table mapping in `evadb/third_party/databases/github/github_handler.py`, or simply raise a `Feature Request `_.
+ Looking for another table from Github? You can add a table mapping in `github_handler.py`_, or simply raise a `Feature Request `_.
From c322adaa0b645f208c2bc80aa613fb12d31e2c8a Mon Sep 17 00:00:00 2001
From: xzdandy
Date: Wed, 4 Oct 2023 03:09:15 -0400
Subject: [PATCH 05/50] Fix doc links
---
docs/source/reference/databases/github.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/source/reference/databases/github.rst b/docs/source/reference/databases/github.rst
index fcbd5f62e3..00e706d49a 100644
--- a/docs/source/reference/databases/github.rst
+++ b/docs/source/reference/databases/github.rst
@@ -34,7 +34,7 @@ Create Connection
Supported Tables
----------------
-* ``stargazers``: Lists the people that have starred the repository. Check `table_column_info.py`_ for all the available columns in the table.
+* ``stargazers``: Lists the people that have starred the repository. Check `table_column_info.py `_ for all the available columns in the table.
.. code-block:: sql
@@ -54,4 +54,4 @@ Here is the query output:
.. note::
- Looking for another table from Github? You can add a table mapping in `github_handler.py`_, or simply raise a `Feature Request `_.
+ Looking for another table from Github? You can add a table mapping in `github_handler.py `_, or simply raise a `Feature Request `_.
From c637a714c1e68abb5530b20e3ac0d723fe1da3a4 Mon Sep 17 00:00:00 2001
From: K S Lohith <32676813+kslohith@users.noreply.github.com>
Date: Fri, 20 Oct 2023 11:10:57 -0400
Subject: [PATCH 06/50] SnowFlake Integration for EvaDB (#1289)
Please suggest if this feature needs more test cases
---------
Co-authored-by: Lohith K S
---
docs/_toc.yml | 1 +
docs/source/reference/databases/snowflake.rst | 47 +++++
evadb/third_party/databases/interface.py | 2 +
.../databases/snowflake/__init__.py | 15 ++
.../databases/snowflake/requirements.txt | 3 +
.../databases/snowflake/snowflake_handler.py | 184 ++++++++++++++++++
.../third_party_tests/test_native_executor.py | 22 +++
.../test_snowflake_native_storage_engine.py | 144 ++++++++++++++
8 files changed, 418 insertions(+)
create mode 100644 docs/source/reference/databases/snowflake.rst
create mode 100644 evadb/third_party/databases/snowflake/__init__.py
create mode 100644 evadb/third_party/databases/snowflake/requirements.txt
create mode 100644 evadb/third_party/databases/snowflake/snowflake_handler.py
create mode 100644 test/unit_tests/storage/test_snowflake_native_storage_engine.py
diff --git a/docs/_toc.yml b/docs/_toc.yml
index 6a37f98261..6739643319 100644
--- a/docs/_toc.yml
+++ b/docs/_toc.yml
@@ -71,6 +71,7 @@ parts:
- file: source/reference/databases/mariadb
- file: source/reference/databases/clickhouse
- file: source/reference/databases/github
+ - file: source/reference/databases/snowflake
- file: source/reference/vector_databases/index
title: Vector Databases
diff --git a/docs/source/reference/databases/snowflake.rst b/docs/source/reference/databases/snowflake.rst
new file mode 100644
index 0000000000..239389e186
--- /dev/null
+++ b/docs/source/reference/databases/snowflake.rst
@@ -0,0 +1,47 @@
+Snowflake
+==========
+
+The connection to Snowflake is based on the `snowflake-connector-python `_ library.
+
+Dependency
+----------
+
+* snowflake-connector-python
+
+Parameters
+----------
+
+Required:
+
+* `user` is the database user.
+* `password` is the snowflake account password.
+* `database` is the database name.
+* `warehouse` is the snowflake warehouse name.
+* `account` is the snowflake account number ( can be found in the url ).
+* `schema` is the schema name.
+
+
+.. warning::
+
+ Provide the parameters of an already running ``Snowflake`` Data Warehouse. EvaDB only connects to an existing ``Snowflake`` Data Warehouse.
+
+Create Connection
+-----------------
+
+.. code-block:: text
+
+ CREATE DATABASE snowflake_data WITH ENGINE = 'snowflake', PARAMETERS = {
+ "user": "",
+ "password": ""
+ "account": "",
+ "database": "EVADB",
+ "warehouse": "COMPUTE_WH",
+ "schema": "SAMPLE_DATA"
+ };
+
+.. warning::
+
+ | In Snowflake Terminology, ``Database`` and ``Schema`` refer to the following.
+ | A database is a logical grouping of schemas. Each database belongs to a single Snowflake account.
+ | A schema is a logical grouping of database objects (tables, views, etc.). Each schema belongs to a single database.
+
diff --git a/evadb/third_party/databases/interface.py b/evadb/third_party/databases/interface.py
index 5e30dc8220..e4cd86151c 100644
--- a/evadb/third_party/databases/interface.py
+++ b/evadb/third_party/databases/interface.py
@@ -44,6 +44,8 @@ def _get_database_handler(engine: str, **kwargs):
return mod.MariaDbHandler(engine, **kwargs)
elif engine == "clickhouse":
return mod.ClickHouseHandler(engine, **kwargs)
+ elif engine == "snowflake":
+ return mod.SnowFlakeDbHandler(engine, **kwargs)
elif engine == "github":
return mod.GithubHandler(engine, **kwargs)
else:
diff --git a/evadb/third_party/databases/snowflake/__init__.py b/evadb/third_party/databases/snowflake/__init__.py
new file mode 100644
index 0000000000..c881047fe1
--- /dev/null
+++ b/evadb/third_party/databases/snowflake/__init__.py
@@ -0,0 +1,15 @@
+# coding=utf-8
+# Copyright 2018-2023 EvaDB
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""snowflake integrations"""
diff --git a/evadb/third_party/databases/snowflake/requirements.txt b/evadb/third_party/databases/snowflake/requirements.txt
new file mode 100644
index 0000000000..c366baf101
--- /dev/null
+++ b/evadb/third_party/databases/snowflake/requirements.txt
@@ -0,0 +1,3 @@
+snowflake-connector-python
+pyarrow
+pandas
\ No newline at end of file
diff --git a/evadb/third_party/databases/snowflake/snowflake_handler.py b/evadb/third_party/databases/snowflake/snowflake_handler.py
new file mode 100644
index 0000000000..0b5ba4553d
--- /dev/null
+++ b/evadb/third_party/databases/snowflake/snowflake_handler.py
@@ -0,0 +1,184 @@
+# coding=utf-8
+# Copyright 2018-2023 EvaDB
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+import datetime
+
+import pandas as pd
+import snowflake.connector
+
+from evadb.third_party.databases.types import (
+ DBHandler,
+ DBHandlerResponse,
+ DBHandlerStatus,
+)
+
+
+class SnowFlakeDbHandler(DBHandler):
+
+ """
+ Class for implementing the SnowFlake DB handler as a backend store for
+ EvaDB.
+ """
+
+ def __init__(self, name: str, **kwargs):
+ """
+ Initialize the handler.
+ Args:
+ name (str): name of the DB handler instance
+ **kwargs: arbitrary keyword arguments for establishing the connection.
+ """
+ super().__init__(name)
+ self.user = kwargs.get("user")
+ self.password = kwargs.get("password")
+ self.database = kwargs.get("database")
+ self.warehouse = kwargs.get("warehouse")
+ self.account = kwargs.get("account")
+ self.schema = kwargs.get("schema")
+
+ def connect(self):
+ """
+ Establish connection to the database.
+ Returns:
+ DBHandlerStatus
+ """
+ try:
+ self.connection = snowflake.connector.connect(
+ user=self.user,
+ password=self.password,
+ database=self.database,
+ warehouse=self.warehouse,
+ schema=self.schema,
+ account=self.account,
+ )
+ # Auto commit is off by default.
+ self.connection.autocommit = True
+ return DBHandlerStatus(status=True)
+ except snowflake.connector.errors.Error as e:
+ return DBHandlerStatus(status=False, error=str(e))
+
+ def disconnect(self):
+ """
+ Disconnect from the database.
+ """
+ if self.connection:
+ self.connection.close()
+
+ def check_connection(self) -> DBHandlerStatus:
+ """
+ Method for checking the status of database connection.
+ Returns:
+ DBHandlerStatus
+ """
+ if self.connection:
+ return DBHandlerStatus(status=True)
+ else:
+ return DBHandlerStatus(status=False, error="Not connected to the database.")
+
+ def get_tables(self) -> DBHandlerResponse:
+ """
+ Method to get the list of tables from database.
+ Returns:
+ DBHandlerStatus
+ """
+ if not self.connection:
+ return DBHandlerResponse(data=None, error="Not connected to the database.")
+
+ try:
+ query = f"SELECT table_name as table_name FROM information_schema.tables WHERE table_schema='{self.schema}'"
+ cursor = self.connection.cursor()
+ cursor.execute(query)
+ tables_df = self._fetch_results_as_df(cursor)
+ return DBHandlerResponse(data=tables_df)
+ except snowflake.connector.errors.Error as e:
+ return DBHandlerResponse(data=None, error=str(e))
+
+ def get_columns(self, table_name: str) -> DBHandlerResponse:
+ """
+ Method to retrieve the columns of the specified table from the database.
+ Args:
+ table_name (str): name of the table whose columns are to be retrieved.
+ Returns:
+ DBHandlerStatus
+ """
+ if not self.connection:
+ return DBHandlerResponse(data=None, error="Not connected to the database.")
+
+ try:
+ query = f"SELECT column_name as name, data_type as dtype FROM information_schema.columns WHERE table_name='{table_name}'"
+ cursor = self.connection.cursor()
+ cursor.execute(query)
+ columns_df = self._fetch_results_as_df(cursor)
+ columns_df["dtype"] = columns_df["dtype"].apply(
+ self._snowflake_to_python_types
+ )
+ return DBHandlerResponse(data=columns_df)
+ except snowflake.connector.errors.Error as e:
+ return DBHandlerResponse(data=None, error=str(e))
+
+ def _fetch_results_as_df(self, cursor):
+ """
+ Fetch results from the cursor for the executed query and return the
+ query results as dataframe.
+ """
+ try:
+ res = cursor.fetchall()
+ res_df = pd.DataFrame(
+ res, columns=[desc[0].lower() for desc in cursor.description]
+ )
+ return res_df
+ except snowflake.connector.errors.ProgrammingError as e:
+ if str(e) == "no results to fetch":
+ return pd.DataFrame({"status": ["success"]})
+ raise e
+
+ def execute_native_query(self, query_string: str) -> DBHandlerResponse:
+ """
+ Executes the native query on the database.
+ Args:
+ query_string (str): query in native format
+ Returns:
+ DBHandlerResponse
+ """
+ if not self.connection:
+ return DBHandlerResponse(data=None, error="Not connected to the database.")
+
+ try:
+ cursor = self.connection.cursor()
+ cursor.execute(query_string)
+ return DBHandlerResponse(data=self._fetch_results_as_df(cursor))
+ except snowflake.connector.errors.Error as e:
+ return DBHandlerResponse(data=None, error=str(e))
+
+ def _snowflake_to_python_types(self, snowflake_type: str):
+ mapping = {
+ "TEXT": str,
+ "NUMBER": int,
+ "INT": int,
+ "DECIMAL": float,
+ "STRING": str,
+ "CHAR": str,
+ "BOOLEAN": bool,
+ "BINARY": bytes,
+ "DATE": datetime.date,
+ "TIME": datetime.time,
+ "TIMESTAMP": datetime.datetime
+ # Add more mappings as needed
+ }
+
+ if snowflake_type in mapping:
+ return mapping[snowflake_type]
+ else:
+ raise Exception(
+ f"Unsupported column {snowflake_type} encountered in the snowflake. Please raise a feature request!"
+ )
diff --git a/test/third_party_tests/test_native_executor.py b/test/third_party_tests/test_native_executor.py
index 7eaf27cb85..879435f866 100644
--- a/test/third_party_tests/test_native_executor.py
+++ b/test/third_party_tests/test_native_executor.py
@@ -228,6 +228,28 @@ def test_should_run_query_in_clickhouse(self):
self._execute_native_query()
self._execute_evadb_query()
+ @pytest.mark.skip(
+ reason="Snowflake does not come with a free version of account, so integration test is not feasible"
+ )
+ def test_should_run_query_in_snowflake(self):
+ # Create database.
+ params = {
+ "user": "eva",
+ "password": "password",
+ "account": "account_number",
+ "database": "EVADB",
+ "schema": "SAMPLE_DATA",
+ "warehouse": "warehouse",
+ }
+ query = f"""CREATE DATABASE test_data_source
+ WITH ENGINE = "snowflake",
+ PARAMETERS = {params};"""
+ execute_query_fetch_all(self.evadb, query)
+
+ # Test executions.
+ self._execute_native_query()
+ self._execute_evadb_query()
+
def test_should_run_query_in_sqlite(self):
# Create database.
import os
diff --git a/test/unit_tests/storage/test_snowflake_native_storage_engine.py b/test/unit_tests/storage/test_snowflake_native_storage_engine.py
new file mode 100644
index 0000000000..50fcea23b3
--- /dev/null
+++ b/test/unit_tests/storage/test_snowflake_native_storage_engine.py
@@ -0,0 +1,144 @@
+# coding=utf-8
+# Copyright 2018-2023 EvaDB
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import sys
+import unittest
+from test.util import get_evadb_for_testing
+from unittest.mock import MagicMock, patch
+
+import pytest
+
+from evadb.catalog.models.utils import DatabaseCatalogEntry
+from evadb.server.command_handler import execute_query_fetch_all
+
+sys.modules["snowflake"] = MagicMock()
+sys.modules["snowflake.connector"] = MagicMock()
+
+
+class NativeQueryResponse:
+ def __init__(self):
+ self.error = None
+ self.data = None
+
+
+@pytest.mark.notparallel
+class SnowFlakeNativeStorageEngineTest(unittest.TestCase):
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+
+ def get_snowflake_params(self):
+ return {
+ "database": "evadb.db",
+ }
+
+ def setUp(self):
+ connection_params = self.get_snowflake_params()
+ self.evadb = get_evadb_for_testing()
+
+ # Create all class level patches
+ self.get_database_catalog_entry_patcher = patch(
+ "evadb.catalog.catalog_manager.CatalogManager.get_database_catalog_entry"
+ )
+ self.get_database_catalog_entry_mock = (
+ self.get_database_catalog_entry_patcher.start()
+ )
+
+ self.execute_native_query_patcher = patch(
+ "evadb.third_party.databases.snowflake.snowflake_handler.SnowFlakeDbHandler.execute_native_query"
+ )
+ self.execute_native_query_mock = self.execute_native_query_patcher.start()
+
+ self.connect_patcher = patch(
+ "evadb.third_party.databases.snowflake.snowflake_handler.SnowFlakeDbHandler.connect"
+ )
+ self.connect_mock = self.connect_patcher.start()
+
+ self.disconnect_patcher = patch(
+ "evadb.third_party.databases.snowflake.snowflake_handler.SnowFlakeDbHandler.disconnect"
+ )
+ self.disconnect_mock = self.disconnect_patcher.start()
+
+ # set return values
+ self.execute_native_query_mock.return_value = NativeQueryResponse()
+ self.get_database_catalog_entry_mock.return_value = DatabaseCatalogEntry(
+ name="test_data_source",
+ engine="snowflake",
+ params=connection_params,
+ row_id=1,
+ )
+
+ def tearDown(self):
+ self.get_database_catalog_entry_patcher.stop()
+ self.execute_native_query_patcher.stop()
+ self.connect_patcher.stop()
+ self.disconnect_patcher.stop()
+
+ def test_execute_snowflake_select_query(self):
+ execute_query_fetch_all(
+ self.evadb,
+ """USE test_data_source {
+ SELECT * FROM test_table
+ }""",
+ )
+
+ self.connect_mock.assert_called_once()
+ self.execute_native_query_mock.assert_called_once()
+ self.get_database_catalog_entry_mock.assert_called_once()
+ self.disconnect_mock.assert_called_once()
+
+ def test_execute_snowflake_insert_query(self):
+ execute_query_fetch_all(
+ self.evadb,
+ """USE test_data_source {
+ INSERT INTO test_table (
+ name, age, comment
+ ) VALUES (
+ 'val', 5, 'testing'
+ )
+ }""",
+ )
+ self.connect_mock.assert_called_once()
+ self.execute_native_query_mock.assert_called_once()
+ self.get_database_catalog_entry_mock.assert_called_once()
+ self.disconnect_mock.assert_called_once()
+
+ def test_execute_snowflake_update_query(self):
+ execute_query_fetch_all(
+ self.evadb,
+ """USE test_data_source {
+ UPDATE test_table
+ SET comment = 'update'
+ WHERE age > 5
+ }""",
+ )
+
+ self.connect_mock.assert_called_once()
+ self.execute_native_query_mock.assert_called_once()
+ self.get_database_catalog_entry_mock.assert_called_once()
+ self.disconnect_mock.assert_called_once()
+
+ def test_execute_snowflake_delete_query(self):
+ execute_query_fetch_all(
+ self.evadb,
+ """USE test_data_source {
+ DELETE FROM test_table
+ WHERE age < 5
+ }""",
+ )
+
+ self.connect_mock.assert_called_once()
+ self.execute_native_query_mock.assert_called_once()
+ self.get_database_catalog_entry_mock.assert_called_once()
+ self.disconnect_mock.assert_called_once()
From 0f2d1d4531ccf7548fb9b39d7ecc23126efb2a18 Mon Sep 17 00:00:00 2001
From: Ankith Reddy Chitti
Date: Sun, 22 Oct 2023 18:51:55 -0400
Subject: [PATCH 07/50] add documentation
---
docs/source/overview/connect-to-data-sources.rst | 8 +++++++-
docs/source/reference/evaql.rst | 2 ++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/docs/source/overview/connect-to-data-sources.rst b/docs/source/overview/connect-to-data-sources.rst
index 4651a11e2b..8f7526ae36 100644
--- a/docs/source/overview/connect-to-data-sources.rst
+++ b/docs/source/overview/connect-to-data-sources.rst
@@ -6,6 +6,12 @@ EvaDB supports a wide range of data sources including SQL database systems, obje
Connect to an Existing SQL Database System
------------------------------------------
+.. note::
+
+ Connecting to an existing SQL database is unnecessary for inserting or querying data in Eva. This step is only required if
+ users intend to work with data already present in some SQL DB. Eva has native storage support for SQLite, which can be utilized without
+ establishing any connection. Refer to :ref:`EvaQL` page for more details.
+
1. Use the :ref:`CREATE DATABASE` statement to connect to an **existing** SQL database.
.. code-block::
@@ -82,6 +88,6 @@ You can use the ``CREATE INDEX`` statement to connect to an existing vector data
.. note::
- Go over the :ref:`CREATE INDEX` statement for more details. The :ref:`Vector Databases` page lists all the vector database systems that EvaDB currently supports.
+ Go over the :ref:`CREATE INDEX` statement for more details. The :ref:`Vector Databases` page lists all the vector database systems that EvaDB currently supports.
.. include:: ../shared/designs/design3.rst
\ No newline at end of file
diff --git a/docs/source/reference/evaql.rst b/docs/source/reference/evaql.rst
index 04dda09fd9..d30a4c5318 100644
--- a/docs/source/reference/evaql.rst
+++ b/docs/source/reference/evaql.rst
@@ -1,3 +1,5 @@
+.. _evaql:
+
EvaDB Query Language (EvaQL)
============================
From e0264603b69d9267d75c5dfbe62ab5a2fe1dd8cc Mon Sep 17 00:00:00 2001
From: Jineet Desai
Date: Wed, 18 Oct 2023 23:52:21 -0400
Subject: [PATCH 08/50] Starting the changes for XGBoost classification
integration.
---
data/classification/Employee.csv | 4654 +++++++++++++++++
evadb/configuration/constants.py | 1 +
evadb/executor/create_function_executor.py | 3 +-
.../long/test_model_train.py | 43 +-
4 files changed, 4699 insertions(+), 2 deletions(-)
create mode 100644 data/classification/Employee.csv
diff --git a/data/classification/Employee.csv b/data/classification/Employee.csv
new file mode 100644
index 0000000000..4c5a75240f
--- /dev/null
+++ b/data/classification/Employee.csv
@@ -0,0 +1,4654 @@
+education,joining_year,city,payment_tier,age,gender,ever_benched,experience_in_current_domain,leave_or_not
+Bachelors,2017,Bangalore,3,34,Male,No,0,0
+Bachelors,2013,Pune,1,28,Female,No,3,1
+Bachelors,2014,New Delhi,3,38,Female,No,2,0
+Masters,2016,Bangalore,3,27,Male,No,5,1
+Masters,2017,Pune,3,24,Male,Yes,2,1
+Bachelors,2016,Bangalore,3,22,Male,No,0,0
+Bachelors,2015,New Delhi,3,38,Male,No,0,0
+Bachelors,2016,Bangalore,3,34,Female,No,2,1
+Bachelors,2016,Pune,3,23,Male,No,1,0
+Masters,2017,New Delhi,2,37,Male,No,2,0
+Masters,2012,Bangalore,3,27,Male,No,5,1
+Bachelors,2016,Pune,3,34,Male,No,3,0
+Bachelors,2018,Pune,3,32,Male,Yes,5,1
+Bachelors,2016,Bangalore,3,39,Male,No,2,0
+Bachelors,2012,Bangalore,3,37,Male,No,4,0
+Bachelors,2017,Bangalore,1,29,Male,No,3,0
+Bachelors,2014,Bangalore,3,34,Female,No,2,0
+Bachelors,2014,Pune,3,34,Male,No,4,0
+Bachelors,2015,Pune,2,30,Female,No,0,1
+Bachelors,2016,New Delhi,2,22,Female,No,0,1
+Bachelors,2012,Bangalore,3,37,Male,No,0,0
+Masters,2017,New Delhi,2,28,Male,No,4,0
+Bachelors,2017,New Delhi,2,36,Male,No,3,0
+Bachelors,2015,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2017,Bangalore,3,29,Male,No,4,0
+Bachelors,2013,Bangalore,3,22,Female,Yes,0,0
+Bachelors,2016,Bangalore,3,37,Male,No,2,0
+Bachelors,2015,Bangalore,3,23,Male,No,1,0
+Bachelors,2013,Pune,2,31,Female,No,2,1
+Masters,2017,New Delhi,2,30,Female,No,2,0
+PHD,2013,New Delhi,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,23,Male,No,1,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2016,Bangalore,3,40,Male,No,5,0
+Bachelors,2017,Pune,2,37,Female,No,0,1
+Bachelors,2014,Bangalore,1,30,Female,No,3,0
+Bachelors,2012,New Delhi,3,29,Male,No,3,0
+Bachelors,2018,New Delhi,2,34,Female,No,0,1
+Bachelors,2017,Pune,2,29,Female,No,2,1
+Bachelors,2014,Pune,3,30,Male,Yes,4,0
+Bachelors,2015,Bangalore,3,36,Male,No,1,0
+Masters,2017,New Delhi,2,23,Male,No,1,0
+Bachelors,2013,Bangalore,3,30,Male,No,3,1
+Bachelors,2014,Bangalore,3,36,Male,No,0,0
+Bachelors,2015,Pune,3,39,Male,No,4,0
+Bachelors,2014,Bangalore,3,23,Female,No,1,0
+PHD,2012,New Delhi,3,27,Male,No,5,0
+Masters,2013,New Delhi,3,35,Male,No,2,0
+Masters,2017,New Delhi,2,34,Male,No,0,0
+Bachelors,2013,Bangalore,3,30,Female,No,1,0
+PHD,2017,New Delhi,3,34,Male,No,2,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2016,Bangalore,3,34,Female,No,0,0
+Bachelors,2014,Bangalore,3,31,Female,Yes,5,0
+Bachelors,2017,New Delhi,3,31,Female,Yes,5,0
+PHD,2013,New Delhi,3,28,Male,No,2,0
+Bachelors,2016,Bangalore,3,38,Male,No,2,0
+Masters,2014,Pune,3,39,Female,No,2,0
+Bachelors,2013,Pune,3,32,Male,No,4,0
+Masters,2017,Pune,2,36,Male,No,2,1
+Masters,2013,New Delhi,3,29,Male,No,3,0
+Bachelors,2015,Bangalore,3,30,Male,No,5,0
+PHD,2013,Bangalore,2,25,Male,No,3,1
+Bachelors,2014,Pune,1,22,Female,No,0,1
+Bachelors,2016,Bangalore,3,34,Male,No,4,0
+Bachelors,2018,Bangalore,3,40,Male,No,1,1
+PHD,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,New Delhi,3,28,Male,No,0,0
+Bachelors,2015,Bangalore,3,24,Female,No,2,0
+Masters,2017,Bangalore,3,40,Female,No,2,1
+Bachelors,2018,Bangalore,3,23,Female,No,1,1
+Masters,2017,Bangalore,3,31,Male,No,4,0
+Bachelors,2014,Pune,3,25,Female,No,3,0
+Bachelors,2014,Bangalore,1,27,Male,No,5,0
+Masters,2017,New Delhi,2,25,Female,No,3,1
+Bachelors,2015,Bangalore,3,40,Male,No,0,1
+Bachelors,2014,Bangalore,1,23,Female,No,1,0
+Bachelors,2017,Bangalore,3,23,Female,No,1,0
+Bachelors,2012,Bangalore,3,39,Male,No,1,0
+PHD,2015,New Delhi,1,37,Male,No,1,0
+Bachelors,2017,Pune,3,38,Male,No,2,0
+Bachelors,2013,Bangalore,3,31,Female,No,0,1
+Bachelors,2016,Bangalore,3,38,Male,No,5,0
+Bachelors,2017,Bangalore,3,25,Female,No,3,0
+Bachelors,2015,Bangalore,3,27,Female,Yes,5,1
+Bachelors,2016,Pune,2,36,Male,No,0,1
+Bachelors,2017,Pune,2,27,Female,No,5,1
+Masters,2015,Pune,2,32,Female,No,4,0
+Bachelors,2014,Bangalore,3,28,Male,No,4,0
+Masters,2012,New Delhi,3,32,Male,No,2,0
+Bachelors,2018,Bangalore,3,30,Male,No,0,1
+Bachelors,2015,New Delhi,3,22,Male,No,0,0
+Bachelors,2017,New Delhi,2,34,Female,No,5,0
+Masters,2013,New Delhi,3,36,Male,No,2,0
+Bachelors,2014,Bangalore,3,39,Male,No,3,1
+PHD,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2016,Bangalore,3,31,Female,No,0,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,29,Female,No,0,0
+Bachelors,2015,Bangalore,3,24,Female,No,2,1
+Masters,2012,Pune,3,25,Male,No,3,1
+Bachelors,2013,Pune,3,25,Male,No,3,0
+Masters,2017,New Delhi,3,26,Female,No,4,1
+Bachelors,2015,Pune,2,28,Female,Yes,1,1
+Bachelors,2017,New Delhi,3,28,Male,No,2,0
+Masters,2015,Pune,1,28,Female,No,3,1
+Masters,2015,New Delhi,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,28,Male,No,1,0
+Masters,2013,Pune,3,25,Male,No,3,0
+Bachelors,2015,Bangalore,2,25,Female,No,3,1
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Bachelors,2017,Pune,2,27,Female,No,5,1
+Bachelors,2013,Bangalore,3,27,Male,No,5,1
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Masters,2017,New Delhi,2,28,Male,No,2,0
+Bachelors,2014,Pune,1,26,Female,No,4,1
+Bachelors,2015,Bangalore,3,28,Male,No,2,0
+Masters,2013,New Delhi,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,26,Female,No,4,0
+Bachelors,2017,New Delhi,2,25,Male,No,3,0
+Bachelors,2012,Bangalore,1,28,Female,No,3,0
+PHD,2015,New Delhi,3,26,Male,No,4,0
+Bachelors,2015,New Delhi,3,25,Female,No,3,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,1
+Bachelors,2014,Bangalore,3,28,Female,No,3,0
+Masters,2014,Pune,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Male,No,1,0
+Bachelors,2015,Pune,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Masters,2013,Pune,1,24,Male,No,2,1
+Bachelors,2017,Bangalore,3,26,Female,No,4,0
+Bachelors,2013,Bangalore,3,28,Male,No,1,1
+Masters,2016,New Delhi,3,27,Male,No,5,0
+Masters,2017,Bangalore,3,26,Male,No,4,0
+Masters,2017,New Delhi,2,24,Male,No,2,0
+Masters,2018,New Delhi,3,26,Male,No,4,1
+Masters,2017,New Delhi,1,25,Female,No,3,1
+Bachelors,2012,Pune,3,28,Male,No,2,0
+Bachelors,2017,New Delhi,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Masters,2013,New Delhi,3,27,Male,No,5,1
+Bachelors,2017,Pune,2,24,Female,No,2,1
+Bachelors,2017,New Delhi,3,28,Female,No,2,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,27,Female,No,5,0
+Masters,2015,Pune,2,28,Female,No,3,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2016,Pune,3,28,Male,No,1,0
+Masters,2013,Bangalore,1,25,Male,No,3,1
+Bachelors,2015,Pune,3,26,Male,No,4,0
+Bachelors,2018,New Delhi,3,27,Female,No,5,1
+Bachelors,2016,Bangalore,3,24,Male,No,2,1
+Bachelors,2012,Pune,2,24,Female,No,2,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Pune,2,24,Female,No,2,1
+Masters,2012,New Delhi,3,26,Female,No,4,0
+Bachelors,2013,Bangalore,3,28,Female,No,3,0
+Bachelors,2012,Bangalore,3,24,Male,No,2,1
+Bachelors,2015,Bangalore,3,25,Male,No,3,1
+Bachelors,2016,Bangalore,3,28,Male,No,3,0
+Bachelors,2014,Bangalore,3,28,Female,No,3,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2017,New Delhi,3,24,Female,No,2,1
+Bachelors,2016,Bangalore,3,25,Male,No,3,1
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2015,Bangalore,3,28,Male,No,3,0
+Masters,2015,New Delhi,3,26,Male,No,4,1
+Bachelors,2014,New Delhi,3,28,Female,No,1,0
+Bachelors,2015,Pune,3,25,Male,No,3,0
+Masters,2015,Pune,2,28,Female,No,2,0
+Bachelors,2014,Bangalore,3,27,Female,No,5,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,New Delhi,3,24,Female,No,2,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,1
+Masters,2017,New Delhi,3,27,Male,No,5,1
+Bachelors,2015,Pune,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Masters,2017,New Delhi,3,27,Male,No,5,1
+Masters,2017,New Delhi,2,28,Female,No,1,1
+Masters,2017,Pune,2,24,Male,No,2,1
+Masters,2016,New Delhi,3,25,Female,No,3,1
+PHD,2015,New Delhi,3,28,Female,No,1,0
+Bachelors,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2013,Bangalore,2,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,28,Male,No,1,0
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Bachelors,2013,New Delhi,3,25,Female,No,3,0
+Bachelors,2013,Pune,3,28,Male,No,1,0
+Bachelors,2017,Pune,3,24,Male,No,2,0
+Bachelors,2013,New Delhi,3,27,Female,No,5,0
+Bachelors,2015,Bangalore,3,28,Male,Yes,2,0
+Bachelors,2015,Pune,3,28,Male,No,3,0
+Bachelors,2014,Pune,2,25,Female,No,3,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Pune,2,26,Female,No,4,1
+PHD,2013,New Delhi,3,24,Male,No,2,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Masters,2013,Pune,2,27,Male,No,5,1
+Masters,2017,Bangalore,3,28,Male,No,2,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Masters,2017,Pune,2,27,Female,No,5,0
+Masters,2013,Bangalore,2,28,Female,No,2,1
+Masters,2017,Pune,3,28,Male,No,1,1
+Bachelors,2018,Bangalore,3,27,Female,No,5,1
+Bachelors,2014,New Delhi,3,25,Female,No,3,0
+Masters,2017,New Delhi,3,27,Male,No,5,1
+Masters,2013,New Delhi,3,26,Male,No,4,1
+Bachelors,2013,Pune,2,25,Female,No,3,1
+Masters,2012,New Delhi,3,26,Male,No,4,1
+Bachelors,2016,Bangalore,3,25,Male,No,3,1
+Bachelors,2013,Pune,2,26,Male,No,4,0
+Bachelors,2018,Bangalore,3,28,Female,No,2,1
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Pune,1,24,Female,Yes,2,1
+Bachelors,2013,Pune,3,28,Male,No,2,0
+Bachelors,2015,Pune,2,27,Female,Yes,5,1
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Bachelors,2014,Pune,2,27,Female,No,5,1
+Bachelors,2013,Pune,3,24,Male,No,2,0
+Bachelors,2014,Pune,3,24,Male,No,2,0
+PHD,2015,New Delhi,2,25,Female,No,3,0
+Bachelors,2014,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Masters,2015,Pune,2,25,Female,No,3,0
+Bachelors,2015,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,New Delhi,3,24,Female,No,2,0
+Masters,2017,Bangalore,2,26,Female,No,4,1
+Bachelors,2012,New Delhi,3,28,Male,No,1,0
+Masters,2017,Pune,2,26,Female,No,4,0
+Bachelors,2016,Pune,3,25,Male,No,3,0
+Bachelors,2017,New Delhi,3,24,Male,No,2,1
+Bachelors,2013,Pune,2,28,Female,No,3,1
+Bachelors,2014,Bangalore,3,25,Female,No,3,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Pune,2,24,Female,No,2,1
+Bachelors,2015,Bangalore,3,28,Male,No,2,1
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Masters,2015,New Delhi,3,26,Female,No,4,1
+Bachelors,2016,Bangalore,1,28,Female,No,2,0
+Bachelors,2014,Bangalore,3,25,Male,Yes,3,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,28,Male,No,2,0
+Masters,2018,New Delhi,3,24,Female,Yes,2,1
+Bachelors,2017,Pune,2,25,Male,No,3,0
+Bachelors,2018,Pune,2,24,Female,No,2,1
+Masters,2017,New Delhi,2,28,Female,No,1,0
+Bachelors,2013,New Delhi,1,27,Female,No,5,0
+Bachelors,2017,New Delhi,2,27,Female,No,5,0
+Bachelors,2017,Bangalore,3,28,Male,No,1,0
+Bachelors,2016,Pune,2,27,Female,No,5,1
+Masters,2018,Bangalore,3,24,Male,No,2,1
+Bachelors,2012,Pune,1,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Masters,2016,New Delhi,1,27,Male,No,5,0
+Bachelors,2015,New Delhi,3,26,Female,No,4,0
+Bachelors,2012,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2013,Bangalore,3,24,Male,Yes,2,1
+Bachelors,2018,Bangalore,3,26,Female,No,4,1
+Masters,2017,Pune,2,26,Female,No,4,1
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Bachelors,2013,Pune,3,28,Male,No,1,0
+Masters,2013,New Delhi,3,25,Male,No,3,0
+Bachelors,2018,Bangalore,3,28,Female,Yes,1,1
+Bachelors,2013,Pune,3,27,Female,No,5,1
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,28,Male,No,1,0
+Bachelors,2017,New Delhi,3,28,Female,No,3,0
+Masters,2017,New Delhi,2,28,Male,Yes,2,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Masters,2017,New Delhi,3,26,Male,No,4,0
+Bachelors,2015,Pune,1,25,Female,No,3,1
+Masters,2013,New Delhi,3,27,Male,No,5,0
+PHD,2014,Bangalore,3,24,Female,No,2,0
+Masters,2017,New Delhi,2,27,Female,No,5,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Masters,2015,Pune,3,27,Female,No,5,1
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Masters,2017,New Delhi,2,25,Female,No,3,0
+Bachelors,2017,New Delhi,2,28,Male,No,1,0
+Bachelors,2012,New Delhi,3,27,Female,No,5,0
+Masters,2013,New Delhi,3,26,Male,No,4,1
+Bachelors,2015,Bangalore,3,26,Female,Yes,4,1
+Bachelors,2014,Pune,3,28,Male,No,2,0
+Bachelors,2016,Bangalore,3,24,Female,No,2,1
+Bachelors,2012,Bangalore,3,28,Male,No,3,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,New Delhi,3,28,Female,No,1,0
+Bachelors,2014,New Delhi,3,27,Female,Yes,5,0
+Bachelors,2015,Pune,3,26,Female,Yes,4,1
+Masters,2014,New Delhi,3,26,Male,No,4,1
+PHD,2015,New Delhi,3,25,Female,No,3,0
+Masters,2015,New Delhi,3,25,Male,No,3,0
+Bachelors,2012,Pune,3,27,Male,No,5,0
+Masters,2017,New Delhi,2,24,Female,No,2,0
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Masters,2015,Pune,3,28,Female,No,2,0
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Bachelors,2017,Pune,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,1,25,Male,No,3,0
+Masters,2015,Pune,3,28,Female,No,2,0
+Bachelors,2017,Pune,3,26,Male,No,4,0
+Bachelors,2014,Pune,3,24,Male,No,2,0
+Bachelors,2014,Pune,3,25,Female,No,3,1
+Bachelors,2018,Pune,3,26,Female,No,4,1
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,28,Female,No,2,0
+Bachelors,2012,Pune,3,28,Male,No,2,0
+Masters,2012,New Delhi,3,24,Female,No,2,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,New Delhi,3,26,Female,Yes,4,0
+Bachelors,2017,Bangalore,3,28,Male,No,1,0
+Bachelors,2018,Pune,3,25,Male,Yes,3,1
+Masters,2017,New Delhi,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Male,No,2,1
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Masters,2017,New Delhi,2,25,Female,No,3,1
+Bachelors,2013,Pune,2,28,Female,No,1,1
+Bachelors,2015,Bangalore,3,24,Female,No,2,0
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Bachelors,2015,New Delhi,2,27,Female,No,5,1
+Bachelors,2018,Bangalore,3,24,Female,No,2,1
+Bachelors,2013,Bangalore,3,27,Female,No,5,0
+Bachelors,2013,Bangalore,3,24,Male,Yes,2,0
+Bachelors,2013,Bangalore,3,24,Female,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,26,Female,No,4,0
+Bachelors,2015,Bangalore,3,24,Female,No,2,0
+Bachelors,2012,Pune,3,24,Female,No,2,1
+Bachelors,2016,Bangalore,3,24,Male,Yes,2,1
+Bachelors,2012,Bangalore,3,28,Male,No,3,0
+Bachelors,2017,New Delhi,2,27,Male,No,5,0
+Bachelors,2012,Pune,2,27,Female,No,5,1
+Masters,2017,Pune,2,27,Male,No,5,0
+Bachelors,2017,Pune,2,24,Male,No,2,1
+Bachelors,2016,Pune,1,26,Female,No,4,1
+Bachelors,2015,Pune,3,26,Female,No,4,1
+Bachelors,2016,Bangalore,3,25,Male,No,3,1
+Bachelors,2012,Pune,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,28,Male,No,2,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,25,Female,Yes,3,0
+Masters,2017,Pune,2,26,Male,No,4,0
+Masters,2017,Pune,3,28,Male,No,1,1
+Masters,2015,Pune,2,25,Female,No,3,1
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,3,27,Female,No,5,0
+Bachelors,2015,New Delhi,3,24,Female,No,2,0
+Masters,2017,Bangalore,1,26,Female,No,4,1
+Bachelors,2017,New Delhi,1,28,Female,No,2,0
+Bachelors,2015,Bangalore,3,24,Male,No,2,0
+Masters,2015,Pune,2,25,Female,No,3,1
+Bachelors,2014,Bangalore,3,25,Female,No,3,0
+Bachelors,2014,Bangalore,3,28,Male,No,2,0
+Bachelors,2017,Bangalore,3,28,Male,No,3,0
+Masters,2015,New Delhi,1,27,Male,No,5,0
+Bachelors,2014,Pune,1,26,Female,No,4,1
+Masters,2018,Bangalore,3,25,Male,Yes,3,1
+Bachelors,2016,Bangalore,3,28,Female,No,3,0
+Bachelors,2018,New Delhi,3,26,Female,Yes,4,1
+Bachelors,2015,Pune,2,24,Female,No,2,1
+Bachelors,2017,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,28,Male,No,2,0
+Bachelors,2015,Pune,2,25,Female,No,3,1
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,28,Male,No,3,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,26,Female,Yes,4,1
+Bachelors,2015,Pune,3,28,Male,No,2,0
+Bachelors,2014,New Delhi,2,24,Female,No,2,1
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2018,Bangalore,3,28,Male,Yes,3,1
+Bachelors,2015,Pune,3,27,Male,No,5,0
+Bachelors,2014,Pune,2,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,1
+PHD,2013,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,New Delhi,2,28,Female,No,1,0
+Bachelors,2015,Pune,1,26,Female,No,4,1
+Masters,2017,New Delhi,3,26,Male,Yes,4,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,New Delhi,3,24,Female,No,2,0
+Bachelors,2017,New Delhi,2,24,Male,No,2,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Bachelors,2015,Bangalore,3,24,Male,No,2,0
+Masters,2014,Pune,3,25,Male,No,3,0
+Bachelors,2015,Bangalore,3,28,Male,No,2,0
+Bachelors,2016,Pune,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,26,Female,No,4,0
+Bachelors,2015,Pune,2,25,Female,Yes,3,1
+Masters,2013,New Delhi,2,25,Male,No,3,1
+Bachelors,2017,Pune,3,25,Male,No,3,0
+Bachelors,2015,Pune,2,26,Female,Yes,4,1
+Masters,2015,Bangalore,2,26,Female,No,4,1
+Bachelors,2012,Pune,3,27,Female,No,5,0
+Masters,2017,New Delhi,3,28,Male,Yes,2,0
+Bachelors,2016,Pune,3,25,Male,No,3,0
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,Pune,3,28,Male,No,1,0
+Bachelors,2013,New Delhi,3,27,Female,Yes,5,0
+Bachelors,2015,New Delhi,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Pune,2,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+PHD,2018,New Delhi,3,25,Male,No,3,1
+Bachelors,2014,Pune,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2017,Pune,2,24,Female,No,2,1
+PHD,2016,New Delhi,2,28,Male,No,3,1
+Masters,2014,New Delhi,3,26,Male,No,4,1
+Masters,2017,New Delhi,2,27,Male,Yes,5,1
+PHD,2013,New Delhi,3,27,Male,No,5,0
+Masters,2014,New Delhi,3,28,Female,No,1,0
+Bachelors,2017,Pune,3,27,Male,No,5,0
+Bachelors,2015,Pune,3,26,Female,Yes,4,1
+Masters,2014,Bangalore,3,26,Male,No,4,1
+Masters,2012,Pune,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Masters,2017,Pune,2,27,Male,No,5,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,1
+Bachelors,2016,Pune,3,27,Male,Yes,5,0
+Bachelors,2014,Pune,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,28,Male,No,1,0
+Masters,2012,Pune,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,25,Male,Yes,3,0
+Bachelors,2013,Pune,2,25,Male,No,3,1
+Bachelors,2012,Pune,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,25,Female,No,3,0
+Bachelors,2015,New Delhi,3,25,Male,No,3,0
+PHD,2012,Pune,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Masters,2015,New Delhi,3,24,Female,No,2,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Pune,3,24,Male,No,2,0
+Masters,2017,New Delhi,3,24,Male,No,2,1
+Bachelors,2014,Bangalore,1,25,Male,Yes,3,0
+Bachelors,2018,Bangalore,3,28,Male,No,1,1
+Bachelors,2017,Bangalore,3,28,Male,Yes,3,0
+Masters,2013,Bangalore,3,28,Female,Yes,2,1
+Bachelors,2013,Bangalore,3,26,Male,Yes,4,0
+Masters,2018,New Delhi,1,24,Male,Yes,2,1
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+PHD,2013,New Delhi,2,27,Female,No,5,0
+Masters,2018,New Delhi,3,28,Male,Yes,2,1
+Bachelors,2014,Bangalore,3,28,Male,No,3,1
+Bachelors,2014,Pune,3,27,Male,No,5,0
+Bachelors,2013,New Delhi,3,24,Female,No,2,1
+Bachelors,2015,Pune,2,28,Female,No,1,1
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2017,New Delhi,2,28,Female,No,3,0
+Masters,2012,Pune,3,27,Female,No,5,1
+Masters,2017,Pune,3,25,Female,Yes,3,1
+Masters,2013,New Delhi,2,25,Male,No,3,1
+Masters,2017,New Delhi,2,27,Male,No,5,1
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,Pune,2,24,Female,No,2,1
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Bachelors,2012,Bangalore,3,24,Male,No,2,1
+Masters,2017,Pune,2,24,Male,No,2,0
+Bachelors,2015,Pune,2,25,Female,Yes,3,1
+Bachelors,2015,New Delhi,3,26,Female,Yes,4,0
+Bachelors,2013,Pune,2,24,Male,Yes,2,1
+Bachelors,2013,Pune,3,25,Male,No,3,0
+PHD,2015,New Delhi,2,28,Female,No,1,0
+Bachelors,2016,Pune,3,24,Male,No,2,0
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,25,Female,No,3,0
+Masters,2014,New Delhi,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,28,Female,No,3,0
+Bachelors,2018,Pune,3,25,Male,No,3,1
+Bachelors,2013,Bangalore,3,26,Male,Yes,4,1
+Bachelors,2015,New Delhi,3,25,Male,No,3,1
+Bachelors,2017,New Delhi,2,25,Female,No,3,1
+Bachelors,2012,Bangalore,3,25,Male,Yes,3,0
+Bachelors,2014,New Delhi,3,28,Female,No,2,0
+Bachelors,2017,New Delhi,2,27,Female,No,5,0
+Bachelors,2018,Pune,3,26,Male,No,4,1
+Masters,2014,New Delhi,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,1
+Masters,2017,Pune,3,25,Male,No,3,1
+Bachelors,2018,Bangalore,3,28,Male,No,2,1
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,24,Male,Yes,2,0
+Bachelors,2015,Bangalore,3,28,Female,No,1,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2016,New Delhi,3,24,Female,No,2,0
+Bachelors,2012,Bangalore,3,25,Female,No,3,0
+Bachelors,2012,Pune,3,28,Male,No,3,0
+Bachelors,2018,Pune,3,25,Male,Yes,3,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,1
+Bachelors,2016,Bangalore,3,27,Female,No,5,0
+Masters,2015,Pune,2,24,Female,No,2,0
+Masters,2014,Bangalore,3,24,Female,No,2,1
+Bachelors,2013,Bangalore,3,25,Male,No,3,0
+Masters,2017,New Delhi,3,24,Male,No,2,0
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,New Delhi,2,28,Male,No,3,0
+Bachelors,2016,Bangalore,3,28,Male,No,2,0
+PHD,2014,New Delhi,3,24,Male,No,2,0
+Masters,2017,New Delhi,2,26,Female,No,4,0
+Masters,2018,New Delhi,3,25,Male,No,3,1
+Bachelors,2014,Bangalore,3,28,Male,No,3,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,1
+Bachelors,2018,New Delhi,3,28,Female,No,3,1
+Masters,2017,New Delhi,2,25,Male,Yes,3,1
+Masters,2013,New Delhi,3,28,Male,No,2,0
+Bachelors,2014,Bangalore,3,26,Male,Yes,4,0
+Masters,2017,New Delhi,2,25,Female,No,3,1
+Masters,2013,New Delhi,3,25,Female,No,3,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,0
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Masters,2017,New Delhi,2,26,Male,Yes,4,1
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Male,No,2,0
+Masters,2015,Pune,3,28,Female,Yes,2,0
+Bachelors,2015,Pune,2,27,Female,Yes,5,1
+Masters,2014,Pune,2,27,Female,No,5,0
+Bachelors,2017,New Delhi,2,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Masters,2015,Pune,1,27,Female,No,5,0
+Bachelors,2013,Bangalore,1,28,Male,No,3,1
+Bachelors,2012,Pune,2,26,Female,No,4,1
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Masters,2017,New Delhi,2,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,New Delhi,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,28,Female,No,1,1
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2015,Pune,2,28,Female,No,3,1
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Bachelors,2016,Bangalore,3,27,Female,No,5,1
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Masters,2018,Pune,3,25,Male,No,3,1
+Bachelors,2015,Pune,3,26,Male,No,4,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+PHD,2017,New Delhi,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,New Delhi,3,28,Female,No,2,0
+Bachelors,2014,Pune,3,25,Female,No,3,0
+Bachelors,2013,Bangalore,3,28,Male,Yes,3,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Pune,2,25,Female,No,3,1
+Bachelors,2017,Pune,2,26,Female,No,4,1
+Bachelors,2015,Pune,3,28,Male,No,3,0
+Masters,2017,Pune,2,26,Male,No,4,1
+Masters,2015,New Delhi,3,28,Female,Yes,2,0
+Bachelors,2012,New Delhi,2,25,Male,No,3,1
+Bachelors,2016,Bangalore,3,25,Female,No,3,0
+Masters,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,1
+PHD,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Masters,2012,Pune,2,26,Female,No,4,0
+Masters,2016,New Delhi,3,27,Male,No,5,1
+PHD,2017,Bangalore,3,28,Male,No,1,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Pune,3,26,Male,No,4,1
+Bachelors,2018,Bangalore,1,27,Male,No,5,0
+Bachelors,2016,Pune,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,28,Male,No,2,0
+Bachelors,2017,New Delhi,2,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,25,Male,No,3,0
+Bachelors,2013,Bangalore,3,28,Male,No,1,0
+Bachelors,2018,Bangalore,3,28,Female,No,3,1
+Bachelors,2016,Bangalore,3,27,Male,Yes,5,0
+Masters,2015,Pune,2,28,Female,No,3,0
+Masters,2015,New Delhi,3,24,Female,No,2,1
+Bachelors,2017,New Delhi,3,24,Male,No,2,0
+Bachelors,2015,Pune,2,24,Female,No,2,1
+Masters,2013,Pune,3,28,Male,No,2,1
+Bachelors,2017,Pune,3,27,Female,No,5,1
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Pune,1,26,Female,No,4,1
+Bachelors,2015,Pune,3,28,Male,No,3,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,New Delhi,2,26,Male,No,4,0
+Masters,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,1
+Bachelors,2013,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2014,Bangalore,3,28,Male,No,3,1
+Bachelors,2014,New Delhi,3,28,Female,No,3,0
+Bachelors,2014,Pune,3,25,Female,No,3,1
+Bachelors,2016,Pune,3,28,Male,No,3,0
+Masters,2017,Bangalore,3,27,Male,No,5,1
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Pune,3,27,Male,No,5,0
+Bachelors,2012,Pune,3,28,Male,No,3,0
+Masters,2017,Pune,3,26,Male,No,4,1
+Bachelors,2013,Bangalore,3,25,Male,Yes,3,0
+Bachelors,2015,Pune,2,28,Female,No,2,1
+PHD,2013,Bangalore,1,26,Male,No,4,0
+Masters,2012,Pune,3,27,Male,No,5,1
+Bachelors,2016,Bangalore,1,28,Male,No,2,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Masters,2017,New Delhi,2,24,Female,Yes,2,1
+Bachelors,2015,Bangalore,1,25,Female,Yes,3,0
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2015,Pune,2,24,Female,No,2,1
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2016,Bangalore,3,27,Female,No,5,0
+Masters,2016,New Delhi,3,25,Female,No,3,1
+Masters,2018,New Delhi,3,26,Male,No,4,1
+Bachelors,2018,Bangalore,3,24,Female,No,2,1
+Bachelors,2017,New Delhi,2,28,Male,No,3,0
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,0
+Bachelors,2013,Pune,3,25,Male,No,3,0
+Bachelors,2015,Pune,3,25,Female,No,3,1
+Bachelors,2014,Bangalore,3,28,Female,No,3,0
+Bachelors,2015,Pune,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,26,Female,No,4,0
+Bachelors,2018,Bangalore,1,25,Male,Yes,3,0
+Masters,2017,Pune,2,28,Female,No,1,0
+Bachelors,2014,Pune,2,25,Female,No,3,1
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2016,Bangalore,3,28,Female,No,3,0
+Bachelors,2014,Bangalore,3,28,Female,No,2,0
+Masters,2017,New Delhi,2,28,Male,No,2,0
+Bachelors,2017,New Delhi,2,24,Female,No,2,0
+PHD,2013,New Delhi,2,25,Male,No,3,1
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,Bangalore,3,26,Female,No,4,0
+Bachelors,2015,Bangalore,1,25,Male,No,3,0
+Bachelors,2016,Bangalore,3,26,Female,No,4,0
+PHD,2014,New Delhi,3,28,Male,No,2,1
+Masters,2018,New Delhi,3,27,Female,No,5,1
+Bachelors,2016,New Delhi,3,27,Female,No,5,0
+Masters,2017,New Delhi,2,25,Male,No,3,1
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,New Delhi,3,27,Female,Yes,5,0
+Bachelors,2017,Pune,2,25,Female,No,3,1
+Bachelors,2018,Pune,3,28,Female,No,1,1
+Bachelors,2014,Bangalore,3,25,Female,No,3,1
+Bachelors,2018,Pune,3,28,Male,No,1,1
+Bachelors,2017,Bangalore,1,26,Female,No,4,0
+Bachelors,2013,Bangalore,3,24,Male,No,2,1
+Bachelors,2012,New Delhi,3,26,Female,No,4,0
+Bachelors,2012,Pune,3,25,Male,No,3,0
+Masters,2013,New Delhi,2,24,Male,No,2,1
+Bachelors,2018,Pune,3,26,Male,No,4,1
+Bachelors,2016,New Delhi,3,28,Female,No,2,0
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Masters,2014,New Delhi,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Pune,2,26,Female,No,4,1
+Bachelors,2014,Pune,3,25,Male,No,3,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2015,Bangalore,3,25,Female,No,3,1
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Masters,2017,Pune,2,26,Female,No,4,0
+Bachelors,2017,New Delhi,3,27,Female,Yes,5,0
+Masters,2017,Pune,1,24,Male,No,2,0
+Masters,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2015,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Masters,2017,Pune,2,24,Male,No,2,1
+Bachelors,2017,Bangalore,3,26,Female,No,4,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,28,Male,Yes,1,1
+Masters,2017,New Delhi,2,24,Male,No,2,0
+Bachelors,2013,Pune,2,25,Female,No,3,1
+Masters,2013,Bangalore,3,27,Male,No,5,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,New Delhi,2,28,Female,Yes,2,1
+Bachelors,2014,Pune,2,24,Female,No,2,1
+Bachelors,2016,Pune,2,27,Female,No,5,1
+Bachelors,2017,Bangalore,3,27,Female,No,5,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2018,Bangalore,3,27,Male,Yes,5,1
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,New Delhi,2,24,Female,No,2,1
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Bachelors,2015,Pune,2,28,Female,Yes,2,1
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2016,Bangalore,3,24,Female,No,2,0
+Masters,2017,Pune,3,24,Male,No,2,1
+Masters,2016,Pune,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Male,Yes,1,1
+Bachelors,2015,Bangalore,1,28,Female,No,1,0
+PHD,2018,Bangalore,3,24,Female,No,2,1
+Bachelors,2016,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,25,Male,No,3,1
+Masters,2016,New Delhi,3,24,Male,No,2,1
+Bachelors,2017,New Delhi,1,25,Female,No,3,0
+Bachelors,2013,Bangalore,3,28,Male,No,3,0
+Bachelors,2018,Bangalore,3,28,Male,No,1,1
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Masters,2014,New Delhi,3,24,Male,No,2,1
+PHD,2012,New Delhi,3,24,Male,No,2,0
+Bachelors,2017,Bangalore,3,25,Female,No,3,0
+Masters,2014,New Delhi,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Bachelors,2014,Pune,3,25,Male,No,3,1
+Bachelors,2012,Bangalore,3,28,Male,No,3,0
+Bachelors,2012,Bangalore,3,25,Female,No,3,0
+Bachelors,2015,Bangalore,3,24,Female,No,2,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Bachelors,2012,Pune,2,26,Male,No,4,0
+Masters,2017,Bangalore,3,28,Female,No,3,1
+Bachelors,2015,Bangalore,3,25,Male,No,3,1
+Bachelors,2012,Bangalore,3,28,Female,No,2,0
+Bachelors,2017,Pune,2,26,Female,No,4,1
+Bachelors,2012,Bangalore,3,27,Female,No,5,0
+Masters,2016,New Delhi,3,28,Male,No,1,0
+Bachelors,2015,Pune,2,28,Female,No,1,1
+Masters,2017,Pune,3,24,Male,No,2,1
+Bachelors,2015,Pune,2,25,Female,No,3,1
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,28,Male,No,3,0
+Bachelors,2016,New Delhi,3,25,Female,Yes,3,0
+Masters,2015,New Delhi,3,26,Male,No,4,1
+Masters,2015,New Delhi,3,28,Female,No,3,0
+Bachelors,2013,New Delhi,1,24,Female,No,2,1
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,New Delhi,3,25,Female,No,3,1
+Bachelors,2017,New Delhi,3,28,Male,No,2,0
+Bachelors,2016,Pune,1,25,Female,No,3,1
+Masters,2013,New Delhi,3,25,Male,Yes,3,1
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Masters,2013,New Delhi,3,25,Female,No,3,1
+Bachelors,2013,Bangalore,1,28,Female,No,2,0
+Masters,2014,Bangalore,3,27,Female,No,5,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,0
+Bachelors,2015,Pune,2,26,Female,Yes,4,1
+Bachelors,2017,New Delhi,3,25,Male,No,3,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Pune,2,27,Male,Yes,5,0
+Bachelors,2015,Pune,2,25,Female,No,3,1
+Bachelors,2016,Bangalore,3,25,Male,Yes,3,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,1
+Bachelors,2016,Pune,3,28,Male,No,1,0
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Masters,2015,Pune,3,28,Female,No,3,0
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Masters,2017,Pune,2,26,Male,No,4,1
+Bachelors,2017,New Delhi,2,27,Female,No,5,0
+Bachelors,2013,Pune,2,26,Female,No,4,1
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,New Delhi,3,28,Female,Yes,3,0
+Masters,2015,Pune,2,24,Female,No,2,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,0
+Masters,2017,New Delhi,2,25,Male,No,3,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2012,Pune,2,25,Male,No,3,1
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,Bangalore,3,27,Female,No,5,1
+Bachelors,2017,New Delhi,3,27,Female,No,5,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2015,Pune,2,24,Female,Yes,2,1
+Bachelors,2017,Bangalore,3,24,Female,Yes,2,0
+PHD,2015,New Delhi,3,28,Female,No,1,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Bachelors,2017,New Delhi,2,25,Female,No,3,0
+Bachelors,2014,Pune,2,25,Female,No,3,1
+Bachelors,2016,New Delhi,3,28,Female,Yes,3,0
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Masters,2017,Pune,2,25,Male,No,3,1
+Masters,2017,Bangalore,2,25,Female,Yes,3,1
+Bachelors,2017,Bangalore,3,24,Female,No,2,1
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Bachelors,2018,Bangalore,3,24,Male,Yes,2,1
+Bachelors,2016,New Delhi,3,28,Male,No,1,0
+Masters,2017,New Delhi,2,24,Male,No,2,1
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,1
+Masters,2014,New Delhi,3,25,Female,No,3,1
+Bachelors,2012,Bangalore,3,27,Female,No,5,0
+Bachelors,2012,New Delhi,3,27,Female,No,5,0
+Bachelors,2017,Bangalore,3,28,Male,No,2,1
+Bachelors,2012,Bangalore,3,28,Male,Yes,3,1
+Bachelors,2012,Pune,3,28,Female,No,2,0
+Bachelors,2018,Bangalore,3,24,Female,No,2,1
+PHD,2016,New Delhi,3,24,Female,No,2,0
+Masters,2017,New Delhi,2,27,Female,No,5,1
+Masters,2013,New Delhi,2,27,Female,No,5,1
+Bachelors,2015,Bangalore,3,26,Female,No,4,0
+Masters,2015,New Delhi,3,28,Female,No,1,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,New Delhi,3,25,Female,No,3,0
+Bachelors,2015,Bangalore,3,26,Female,No,4,1
+Bachelors,2012,Pune,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Masters,2015,Pune,2,25,Female,No,3,1
+Bachelors,2013,New Delhi,3,24,Male,No,2,0
+Masters,2017,New Delhi,2,27,Female,No,5,0
+Masters,2017,Pune,2,26,Male,No,4,0
+Bachelors,2014,Pune,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Bachelors,2014,Bangalore,3,25,Female,No,3,0
+Bachelors,2013,Pune,2,27,Female,No,5,1
+Bachelors,2015,Pune,3,26,Male,No,4,0
+Bachelors,2017,Pune,2,24,Male,No,2,1
+Masters,2017,New Delhi,2,26,Male,No,4,1
+Bachelors,2013,Pune,2,25,Male,Yes,3,1
+Masters,2017,New Delhi,2,25,Female,No,3,1
+Bachelors,2013,Pune,3,26,Female,Yes,4,0
+Bachelors,2014,Pune,3,28,Male,No,2,0
+Bachelors,2016,New Delhi,3,27,Female,No,5,0
+Bachelors,2017,New Delhi,2,28,Male,No,1,0
+Masters,2014,New Delhi,3,27,Male,No,5,0
+Bachelors,2014,New Delhi,3,28,Female,No,1,0
+Bachelors,2015,Bangalore,3,27,Male,No,5,1
+Bachelors,2015,Bangalore,3,24,Male,No,2,1
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,28,Female,No,2,0
+Masters,2017,Pune,2,26,Male,No,4,0
+Masters,2017,New Delhi,2,25,Male,No,3,1
+Bachelors,2016,New Delhi,3,27,Female,No,5,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Pune,3,25,Male,No,3,0
+Bachelors,2012,New Delhi,3,26,Female,Yes,4,0
+Masters,2014,Bangalore,3,27,Male,No,5,1
+Masters,2017,New Delhi,2,26,Male,No,4,0
+Masters,2012,New Delhi,3,26,Male,No,4,1
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Masters,2014,New Delhi,3,25,Male,No,3,0
+Bachelors,2015,Bangalore,3,28,Male,Yes,2,0
+Masters,2012,Pune,3,27,Male,No,5,1
+Bachelors,2017,Bangalore,2,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,1
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Bachelors,2017,Bangalore,3,28,Male,No,1,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,1
+Bachelors,2018,Bangalore,3,28,Female,No,3,1
+Bachelors,2014,New Delhi,3,24,Female,No,2,0
+Bachelors,2017,Bangalore,1,27,Male,No,5,0
+Bachelors,2015,New Delhi,3,24,Female,No,2,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Pune,3,28,Male,No,3,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,25,Female,No,3,0
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Bachelors,2013,Bangalore,3,28,Female,No,3,0
+Bachelors,2017,New Delhi,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Masters,2017,New Delhi,2,26,Female,No,4,1
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,Pune,3,27,Male,No,5,0
+Bachelors,2012,Pune,3,27,Male,No,5,0
+Bachelors,2017,Pune,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,28,Male,No,3,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Masters,2017,Bangalore,3,28,Male,No,1,1
+Bachelors,2018,Bangalore,3,27,Male,Yes,5,1
+Bachelors,2017,Bangalore,3,28,Male,Yes,1,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,0
+Bachelors,2013,Pune,3,24,Female,No,2,0
+Bachelors,2018,New Delhi,3,25,Female,No,3,1
+Bachelors,2014,Bangalore,3,24,Female,No,2,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Masters,2013,New Delhi,1,24,Female,No,2,0
+Masters,2013,New Delhi,1,24,Male,Yes,2,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,2,25,Male,No,3,0
+Bachelors,2015,Bangalore,3,28,Female,No,1,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+PHD,2018,New Delhi,3,24,Female,No,2,1
+Bachelors,2015,Pune,3,28,Male,No,1,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+PHD,2015,Pune,2,28,Female,No,1,0
+Bachelors,2018,Bangalore,3,25,Male,Yes,3,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,27,Female,No,5,1
+Bachelors,2017,Pune,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Masters,2012,New Delhi,3,28,Male,No,2,0
+Bachelors,2012,Bangalore,3,28,Male,No,3,0
+Bachelors,2012,Pune,2,27,Female,No,5,1
+Bachelors,2012,New Delhi,2,27,Female,No,5,1
+Masters,2012,Bangalore,3,27,Male,No,5,1
+Bachelors,2018,Bangalore,3,25,Female,No,3,1
+Masters,2018,Pune,3,27,Male,No,5,1
+Masters,2017,New Delhi,2,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Masters,2017,Bangalore,2,28,Male,Yes,2,1
+Bachelors,2017,Pune,3,27,Male,No,5,0
+Bachelors,2017,Pune,3,28,Female,No,1,0
+Bachelors,2016,Bangalore,3,28,Male,No,3,0
+Bachelors,2014,New Delhi,3,26,Female,No,4,0
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Bachelors,2017,New Delhi,3,26,Female,No,4,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2017,New Delhi,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,25,Female,Yes,3,0
+Bachelors,2017,Bangalore,3,25,Male,Yes,3,0
+Bachelors,2013,Bangalore,3,28,Female,No,1,1
+Bachelors,2013,Pune,3,24,Female,No,2,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Masters,2017,New Delhi,3,25,Male,No,3,1
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Masters,2017,Pune,2,28,Male,No,3,0
+Masters,2017,New Delhi,3,26,Male,No,4,0
+Masters,2017,Pune,2,24,Female,No,2,0
+Masters,2015,Pune,1,26,Female,No,4,0
+Masters,2013,Pune,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Pune,3,24,Male,No,2,0
+PHD,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Bachelors,2014,Pune,3,25,Male,No,3,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,28,Male,No,3,0
+Bachelors,2014,Pune,3,25,Male,No,3,0
+Masters,2018,New Delhi,3,25,Female,No,3,1
+Bachelors,2013,Pune,2,25,Female,No,3,1
+PHD,2013,New Delhi,3,26,Male,No,4,0
+Bachelors,2015,New Delhi,3,28,Female,No,3,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Masters,2018,New Delhi,1,26,Female,No,4,1
+Bachelors,2013,Pune,2,24,Female,No,2,1
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+PHD,2016,Pune,1,25,Female,No,3,1
+Bachelors,2014,Pune,3,26,Male,No,4,1
+Masters,2015,Pune,1,27,Female,No,5,0
+Bachelors,2013,Pune,3,28,Female,No,2,1
+Bachelors,2016,Bangalore,1,27,Female,No,5,0
+Bachelors,2014,New Delhi,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2015,Pune,3,25,Female,No,3,1
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2015,Bangalore,3,25,Female,No,3,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Masters,2016,Bangalore,3,26,Female,No,4,1
+Bachelors,2018,Bangalore,3,27,Female,No,5,1
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Bachelors,2014,New Delhi,3,24,Female,No,2,0
+Bachelors,2013,Pune,3,26,Male,Yes,4,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Pune,2,26,Female,No,4,1
+Bachelors,2016,New Delhi,3,28,Female,No,5,0
+Bachelors,2015,Bangalore,3,28,Male,No,5,0
+Bachelors,2012,Pune,2,26,Female,No,4,1
+Bachelors,2013,New Delhi,3,26,Female,No,4,0
+Bachelors,2013,Pune,3,24,Male,No,2,0
+Masters,2017,New Delhi,3,28,Female,No,3,0
+Bachelors,2012,New Delhi,3,27,Female,No,5,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2012,New Delhi,3,24,Female,No,2,1
+Masters,2015,Pune,1,24,Male,No,2,0
+Masters,2013,New Delhi,3,27,Male,No,5,1
+Bachelors,2017,New Delhi,3,24,Female,No,2,1
+Bachelors,2014,Bangalore,3,28,Male,No,1,1
+Bachelors,2015,Bangalore,3,28,Female,No,1,0
+Masters,2013,New Delhi,3,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Masters,2015,New Delhi,3,24,Male,No,2,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,25,Female,No,3,0
+Bachelors,2017,Bangalore,1,24,Male,No,2,0
+Bachelors,2014,New Delhi,3,27,Female,No,5,1
+Bachelors,2013,Bangalore,3,27,Female,No,5,0
+Bachelors,2012,Bangalore,3,28,Female,No,2,0
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Pune,1,27,Female,No,5,1
+Bachelors,2014,New Delhi,3,27,Female,Yes,5,0
+Bachelors,2014,Bangalore,3,28,Male,No,4,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,28,Female,No,1,0
+Masters,2018,New Delhi,3,25,Female,No,3,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,24,Male,Yes,2,1
+Masters,2017,Pune,2,25,Female,No,3,1
+Bachelors,2017,New Delhi,2,27,Female,No,5,0
+Bachelors,2016,Bangalore,3,28,Male,No,3,1
+Bachelors,2015,Pune,2,25,Female,Yes,3,1
+Masters,2017,New Delhi,3,24,Male,No,2,0
+Bachelors,2015,Bangalore,3,28,Male,No,4,0
+Masters,2014,Pune,3,26,Male,No,4,1
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Masters,2013,New Delhi,1,24,Female,No,2,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2013,Bangalore,3,28,Male,No,1,0
+Bachelors,2016,Pune,2,28,Female,No,4,1
+Bachelors,2012,Bangalore,3,28,Male,No,1,0
+Bachelors,2017,New Delhi,3,25,Female,No,3,0
+Bachelors,2018,Bangalore,3,25,Male,Yes,3,1
+Bachelors,2012,Pune,1,27,Female,No,5,1
+Masters,2017,New Delhi,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,25,Female,No,3,1
+Bachelors,2017,Bangalore,3,28,Male,No,2,0
+Bachelors,2015,Pune,3,25,Female,No,3,1
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2018,Bangalore,3,24,Male,Yes,2,1
+Bachelors,2016,Bangalore,3,28,Male,Yes,4,0
+Bachelors,2014,Bangalore,3,26,Female,No,4,0
+Bachelors,2017,Bangalore,3,28,Male,No,1,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,New Delhi,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,27,Female,No,5,0
+Bachelors,2014,Bangalore,3,27,Female,Yes,5,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+PHD,2015,New Delhi,2,24,Female,No,2,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2017,New Delhi,2,24,Female,No,2,0
+PHD,2015,Pune,1,25,Female,No,3,1
+Bachelors,2017,New Delhi,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,25,Female,No,3,0
+Bachelors,2014,Bangalore,3,24,Male,Yes,2,0
+Masters,2018,New Delhi,3,26,Male,Yes,4,1
+Bachelors,2015,Bangalore,2,25,Female,No,3,1
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Masters,2012,New Delhi,3,28,Male,Yes,2,0
+Bachelors,2015,Bangalore,3,24,Female,No,2,0
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+PHD,2018,New Delhi,3,27,Female,No,5,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2012,Bangalore,3,28,Male,No,5,0
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2013,Bangalore,3,25,Male,No,3,0
+Masters,2018,Pune,3,24,Male,No,2,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,New Delhi,3,28,Female,No,2,0
+Masters,2017,New Delhi,2,27,Male,Yes,5,1
+Bachelors,2018,Pune,2,27,Female,No,5,1
+Masters,2014,New Delhi,3,28,Female,No,4,0
+Masters,2017,New Delhi,3,25,Female,No,3,0
+Masters,2017,Bangalore,3,26,Female,No,4,0
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Bachelors,2013,New Delhi,3,27,Female,No,5,0
+Masters,2017,New Delhi,1,26,Female,No,4,0
+Bachelors,2013,New Delhi,3,27,Female,No,5,0
+Bachelors,2012,New Delhi,3,28,Male,No,3,0
+Masters,2017,Pune,2,27,Male,No,5,1
+Bachelors,2017,New Delhi,3,26,Female,No,4,0
+Bachelors,2013,Bangalore,3,28,Female,No,4,1
+Masters,2012,New Delhi,3,27,Male,Yes,5,1
+Bachelors,2017,Pune,2,24,Male,No,2,0
+Masters,2017,New Delhi,3,25,Female,No,3,1
+Bachelors,2018,Bangalore,3,25,Female,Yes,3,1
+Bachelors,2016,Bangalore,3,28,Male,Yes,4,0
+Masters,2017,New Delhi,3,28,Male,No,2,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2014,Pune,3,24,Female,No,2,1
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Bachelors,2017,Bangalore,1,26,Female,No,4,0
+Bachelors,2015,Bangalore,3,28,Female,No,3,0
+Bachelors,2013,Bangalore,3,28,Male,No,3,1
+Bachelors,2012,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2013,New Delhi,2,27,Female,No,5,1
+Bachelors,2016,New Delhi,3,24,Female,No,2,0
+Bachelors,2015,Pune,2,28,Female,No,2,1
+Bachelors,2015,New Delhi,2,25,Female,No,3,1
+Bachelors,2014,Pune,3,24,Male,No,2,0
+Bachelors,2017,New Delhi,3,27,Female,No,5,0
+Bachelors,2012,New Delhi,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,28,Male,No,0,0
+Bachelors,2012,Pune,3,28,Male,No,5,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2016,Bangalore,1,26,Male,No,4,0
+Masters,2017,New Delhi,2,28,Female,Yes,2,1
+Masters,2017,New Delhi,2,25,Male,No,3,1
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Male,No,0,0
+Bachelors,2014,Pune,3,27,Male,No,5,1
+Bachelors,2016,Pune,2,26,Female,No,4,1
+Bachelors,2018,Bangalore,3,27,Female,Yes,5,1
+Bachelors,2012,Pune,3,28,Male,No,4,0
+Bachelors,2013,Pune,2,26,Female,No,4,1
+Bachelors,2014,Bangalore,3,28,Female,No,3,0
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Bachelors,2012,New Delhi,1,27,Female,No,5,0
+Bachelors,2017,New Delhi,2,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Masters,2012,New Delhi,3,24,Male,No,2,0
+Bachelors,2013,New Delhi,2,25,Female,No,3,1
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Masters,2013,Pune,3,25,Male,Yes,3,1
+Bachelors,2013,Pune,3,24,Female,No,2,0
+Bachelors,2015,Pune,3,24,Female,No,2,1
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Masters,2012,New Delhi,3,26,Female,No,4,1
+Bachelors,2015,Pune,3,25,Male,No,3,0
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2013,Bangalore,3,28,Male,No,3,0
+Bachelors,2016,Pune,2,28,Female,No,0,1
+Bachelors,2012,New Delhi,3,24,Male,No,2,0
+Bachelors,2015,New Delhi,3,28,Male,No,1,0
+Bachelors,2017,Bangalore,1,24,Male,No,2,0
+Masters,2017,Pune,2,28,Female,No,4,0
+Bachelors,2017,Pune,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,27,Female,No,5,0
+Bachelors,2015,Pune,3,28,Male,No,2,0
+Bachelors,2016,Bangalore,3,28,Female,No,5,0
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Bachelors,2015,Bangalore,3,28,Female,No,5,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,1,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,27,Female,No,5,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,1
+Bachelors,2015,Pune,3,28,Female,No,4,1
+Masters,2017,Bangalore,2,24,Female,Yes,2,1
+Bachelors,2014,Bangalore,3,28,Male,No,2,0
+Masters,2017,Pune,2,24,Female,No,2,1
+Bachelors,2014,New Delhi,3,26,Female,No,4,1
+Bachelors,2015,Pune,2,28,Female,No,3,1
+Masters,2013,Pune,2,28,Male,No,5,1
+Bachelors,2013,New Delhi,1,28,Female,No,5,1
+Bachelors,2015,Pune,2,26,Female,Yes,4,1
+Masters,2015,New Delhi,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,28,Male,No,2,1
+Bachelors,2012,Pune,3,28,Male,No,2,0
+Bachelors,2014,Pune,3,27,Female,No,5,1
+Masters,2018,New Delhi,3,24,Male,No,2,1
+Bachelors,2018,Bangalore,3,25,Male,Yes,3,1
+Bachelors,2017,New Delhi,2,25,Male,No,3,0
+Bachelors,2014,Pune,3,24,Female,No,2,1
+Bachelors,2012,New Delhi,3,26,Female,No,4,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,28,Male,No,4,0
+Bachelors,2018,Bangalore,3,26,Male,Yes,4,1
+Bachelors,2013,Pune,2,26,Male,No,4,0
+Bachelors,2013,Pune,2,25,Female,No,3,1
+Bachelors,2018,Pune,3,25,Male,Yes,3,1
+Bachelors,2013,Bangalore,3,25,Female,No,3,0
+Bachelors,2014,Bangalore,3,28,Male,No,4,0
+Masters,2017,New Delhi,3,24,Female,No,2,0
+Masters,2017,Pune,2,27,Female,No,5,0
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,Pune,3,27,Female,No,5,1
+Masters,2017,New Delhi,2,28,Male,No,4,0
+Bachelors,2017,New Delhi,2,25,Male,No,3,0
+Bachelors,2017,Pune,3,25,Male,Yes,3,1
+Masters,2017,Pune,2,24,Female,No,2,1
+Bachelors,2013,Pune,3,27,Male,Yes,5,1
+Bachelors,2016,Bangalore,3,26,Female,No,4,1
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,1
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Pune,2,27,Female,No,5,1
+Masters,2017,Bangalore,2,28,Male,No,2,0
+Masters,2017,New Delhi,3,24,Female,No,2,1
+Bachelors,2017,Pune,3,24,Male,No,2,0
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Masters,2017,New Delhi,2,28,Male,No,3,0
+Bachelors,2015,Bangalore,3,26,Female,Yes,4,0
+Bachelors,2018,Pune,3,26,Female,No,4,1
+Bachelors,2013,Bangalore,3,25,Male,Yes,3,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Masters,2018,Pune,3,28,Male,No,2,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,27,Female,No,5,0
+PHD,2016,New Delhi,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,2,25,Male,No,3,0
+Bachelors,2015,New Delhi,3,28,Female,No,2,0
+Bachelors,2013,Pune,2,26,Female,No,4,1
+Bachelors,2017,Bangalore,3,27,Female,No,5,0
+Bachelors,2015,Pune,2,24,Female,No,2,1
+Bachelors,2017,Bangalore,3,27,Female,No,5,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,1
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Pune,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,1,25,Male,No,3,0
+Masters,2017,New Delhi,2,25,Female,No,3,0
+PHD,2015,Pune,3,28,Male,No,0,0
+Bachelors,2015,Bangalore,3,28,Male,No,3,0
+Bachelors,2016,Bangalore,3,28,Male,No,5,0
+PHD,2013,New Delhi,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2015,Pune,2,26,Female,Yes,4,1
+Bachelors,2017,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2014,New Delhi,3,26,Male,No,4,0
+Masters,2013,Bangalore,3,27,Male,No,5,1
+Bachelors,2016,Pune,3,24,Male,Yes,2,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Pune,2,28,Female,No,2,1
+Masters,2017,Bangalore,2,24,Male,No,2,1
+Masters,2017,New Delhi,2,24,Male,No,2,1
+Masters,2015,Pune,2,24,Female,No,2,1
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2016,Pune,2,27,Female,No,5,1
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Masters,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2016,Bangalore,1,25,Female,No,3,0
+PHD,2014,Bangalore,1,25,Female,No,3,0
+Bachelors,2013,Bangalore,3,25,Female,No,3,0
+Bachelors,2014,New Delhi,3,24,Male,No,2,0
+Bachelors,2015,Pune,2,28,Female,Yes,2,1
+Bachelors,2014,New Delhi,3,28,Male,No,5,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2018,Pune,3,26,Male,No,4,1
+Masters,2015,Pune,2,28,Female,No,2,0
+Masters,2013,New Delhi,3,28,Male,No,2,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Masters,2015,New Delhi,2,26,Female,No,4,0
+Bachelors,2016,New Delhi,3,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,24,Female,No,2,0
+Masters,2017,Pune,3,24,Female,No,2,0
+Bachelors,2014,Pune,3,25,Female,No,3,1
+Bachelors,2015,Pune,3,27,Female,No,5,1
+Bachelors,2017,New Delhi,2,28,Male,No,0,0
+Bachelors,2017,New Delhi,3,25,Female,No,3,0
+Bachelors,2012,Pune,3,24,Male,No,2,1
+Masters,2016,New Delhi,3,25,Male,No,3,1
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Masters,2014,New Delhi,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,24,Female,No,2,1
+Bachelors,2014,New Delhi,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,New Delhi,3,24,Female,No,2,1
+Bachelors,2012,Bangalore,3,28,Male,No,1,0
+Bachelors,2014,Bangalore,1,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,28,Male,Yes,3,0
+Bachelors,2015,Pune,1,25,Female,No,3,1
+Bachelors,2015,Pune,2,24,Female,Yes,2,1
+Bachelors,2017,Pune,2,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,28,Male,No,0,0
+Bachelors,2016,Bangalore,3,28,Male,No,2,0
+Bachelors,2013,Pune,3,28,Female,Yes,3,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Masters,2015,New Delhi,3,25,Male,No,3,0
+Bachelors,2012,New Delhi,3,28,Female,No,4,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Masters,2017,New Delhi,3,25,Male,No,3,1
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Bachelors,2017,Bangalore,3,26,Female,No,4,0
+Masters,2017,New Delhi,2,25,Male,Yes,3,1
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Bachelors,2017,Pune,3,25,Female,No,3,1
+Bachelors,2014,New Delhi,3,28,Female,Yes,2,0
+Bachelors,2016,Bangalore,3,27,Female,No,5,0
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Bachelors,2012,Bangalore,3,27,Female,Yes,5,0
+Bachelors,2017,New Delhi,3,27,Female,No,5,0
+Bachelors,2016,Bangalore,2,25,Male,No,3,1
+Bachelors,2016,Bangalore,3,28,Female,No,4,0
+Bachelors,2017,New Delhi,2,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,24,Female,No,2,0
+Bachelors,2013,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,New Delhi,2,25,Female,No,3,0
+Bachelors,2015,Pune,3,24,Male,No,2,0
+Bachelors,2012,New Delhi,3,25,Female,No,3,0
+PHD,2017,New Delhi,3,27,Female,No,5,0
+Bachelors,2014,Bangalore,3,25,Female,No,3,1
+Masters,2017,Bangalore,3,28,Male,No,2,0
+Bachelors,2016,Pune,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,25,Male,Yes,3,0
+Bachelors,2012,New Delhi,3,27,Male,No,5,0
+Bachelors,2012,Pune,3,25,Female,No,3,1
+Masters,2015,New Delhi,3,27,Female,No,5,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,1
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2018,New Delhi,3,26,Female,No,4,1
+Bachelors,2017,Pune,2,26,Female,No,4,1
+Bachelors,2014,Pune,2,24,Female,No,2,1
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,2,27,Male,No,5,0
+PHD,2012,New Delhi,3,28,Female,No,1,0
+Masters,2012,New Delhi,3,26,Female,No,4,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,28,Female,No,0,1
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2016,Pune,2,24,Female,No,2,1
+Bachelors,2015,Bangalore,1,24,Female,No,2,1
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Masters,2014,Pune,3,27,Male,No,5,0
+Masters,2017,New Delhi,2,27,Male,No,5,1
+Masters,2017,New Delhi,1,25,Female,No,3,0
+Masters,2012,Pune,3,28,Male,No,0,1
+Masters,2012,New Delhi,3,28,Male,No,2,1
+Masters,2013,New Delhi,2,24,Male,No,2,1
+Bachelors,2015,Pune,3,25,Female,No,3,1
+Masters,2017,New Delhi,3,28,Male,No,5,0
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Masters,2015,Bangalore,3,28,Male,No,1,1
+Bachelors,2018,Bangalore,3,27,Female,Yes,5,1
+Bachelors,2015,Bangalore,3,24,Male,No,2,1
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2013,New Delhi,3,25,Female,No,3,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2018,New Delhi,3,28,Female,No,0,1
+Bachelors,2013,Bangalore,3,25,Female,No,3,0
+PHD,2012,Pune,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Female,No,3,0
+Bachelors,2015,Pune,3,24,Male,No,2,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2012,New Delhi,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,26,Female,Yes,4,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,24,Female,No,2,1
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+PHD,2018,Bangalore,3,27,Female,No,5,1
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,New Delhi,1,26,Female,No,4,1
+Bachelors,2015,Pune,2,24,Female,No,2,1
+Bachelors,2013,Pune,3,27,Male,No,5,0
+PHD,2016,New Delhi,3,24,Female,No,2,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,28,Male,No,5,0
+Bachelors,2015,Bangalore,3,26,Female,No,4,0
+Bachelors,2016,Bangalore,3,27,Female,No,5,0
+Bachelors,2017,Pune,3,25,Female,No,3,1
+Masters,2017,New Delhi,2,26,Male,No,4,1
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,26,Female,No,4,1
+Bachelors,2015,Pune,2,25,Female,No,3,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Pune,2,28,Male,No,1,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+PHD,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,New Delhi,3,25,Female,Yes,3,1
+Bachelors,2017,Bangalore,1,28,Female,No,3,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,New Delhi,3,27,Male,No,5,0
+Masters,2013,Pune,2,28,Male,No,2,1
+Bachelors,2013,New Delhi,3,25,Female,Yes,3,1
+Masters,2017,New Delhi,2,26,Male,No,4,0
+Masters,2016,New Delhi,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,28,Female,Yes,5,0
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Bachelors,2012,Bangalore,1,27,Male,No,5,1
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2016,Bangalore,3,24,Female,No,2,0
+Bachelors,2017,Pune,3,26,Male,No,4,0
+Bachelors,2017,New Delhi,3,25,Female,No,3,0
+Bachelors,2015,Pune,3,28,Female,Yes,5,1
+Bachelors,2015,Bangalore,3,26,Male,No,4,1
+Masters,2015,Pune,2,26,Female,Yes,4,1
+Masters,2015,Pune,3,25,Male,No,3,1
+Bachelors,2016,Pune,3,27,Female,No,5,1
+Bachelors,2013,Bangalore,3,25,Male,No,3,0
+Bachelors,2018,Pune,3,26,Male,Yes,4,1
+Bachelors,2014,Bangalore,3,27,Female,No,5,0
+Bachelors,2017,Bangalore,1,25,Male,No,3,0
+Bachelors,2015,New Delhi,3,26,Male,No,4,0
+Bachelors,2015,Pune,3,24,Female,No,2,1
+Bachelors,2015,Bangalore,3,28,Male,No,2,0
+Bachelors,2014,Pune,2,26,Female,No,4,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2018,New Delhi,3,28,Female,No,5,1
+Bachelors,2015,Bangalore,3,28,Male,No,0,1
+Bachelors,2016,New Delhi,3,28,Female,No,3,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2015,Pune,3,24,Female,No,2,1
+Masters,2018,New Delhi,3,28,Male,No,2,1
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,1
+Bachelors,2017,New Delhi,2,28,Female,No,0,0
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2012,Bangalore,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,1,24,Male,No,2,0
+Bachelors,2016,Pune,3,27,Male,No,5,0
+Bachelors,2013,Pune,3,24,Male,No,2,0
+Masters,2017,Pune,2,26,Female,No,4,1
+Bachelors,2017,New Delhi,3,26,Male,No,4,0
+Bachelors,2018,Pune,3,25,Female,No,3,1
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Bachelors,2015,Pune,3,24,Male,Yes,2,0
+Bachelors,2013,Bangalore,3,24,Female,No,2,1
+Bachelors,2013,Pune,2,28,Male,Yes,0,1
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,28,Female,No,5,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,26,Female,No,4,0
+Masters,2017,Bangalore,2,28,Male,No,2,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,27,Female,No,5,0
+Masters,2018,Bangalore,3,28,Male,No,2,1
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2012,Pune,3,24,Male,No,2,0
+Bachelors,2016,New Delhi,3,28,Male,No,0,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,1
+Bachelors,2012,Bangalore,1,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,28,Female,No,5,0
+Bachelors,2014,Pune,3,25,Male,No,3,0
+Bachelors,2015,Pune,3,25,Male,No,3,0
+Bachelors,2017,Pune,2,28,Male,No,0,1
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Bachelors,2015,Pune,3,26,Female,No,4,1
+Bachelors,2015,Bangalore,2,28,Female,No,3,1
+Bachelors,2012,Pune,3,25,Male,No,3,0
+Bachelors,2013,Bangalore,3,25,Male,Yes,3,1
+Bachelors,2016,New Delhi,3,26,Male,No,4,0
+PHD,2018,New Delhi,3,24,Female,No,2,1
+Bachelors,2014,Bangalore,3,27,Female,No,5,0
+Masters,2017,New Delhi,2,26,Male,Yes,4,1
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Masters,2017,Pune,2,25,Female,No,3,0
+Bachelors,2017,New Delhi,3,28,Female,No,2,0
+Bachelors,2014,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+Bachelors,2018,Pune,3,24,Male,No,2,1
+Bachelors,2015,Bangalore,3,27,Female,Yes,5,1
+Bachelors,2015,New Delhi,3,28,Female,No,3,0
+Bachelors,2015,Pune,3,27,Female,No,5,1
+Bachelors,2015,Bangalore,3,28,Male,No,5,0
+Bachelors,2015,New Delhi,2,27,Female,Yes,5,1
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Masters,2017,New Delhi,3,27,Female,No,5,1
+Bachelors,2017,Pune,2,26,Female,No,4,1
+Bachelors,2015,Pune,3,27,Female,No,5,1
+Bachelors,2018,Pune,3,27,Female,No,5,1
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+PHD,2013,New Delhi,3,27,Female,No,5,1
+Bachelors,2016,Bangalore,3,28,Male,No,2,0
+Bachelors,2012,Bangalore,3,25,Female,Yes,3,0
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Pune,2,24,Female,No,2,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,1
+Bachelors,2014,Pune,3,27,Male,Yes,5,0
+Bachelors,2013,Bangalore,3,24,Male,Yes,2,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,1
+Bachelors,2017,Pune,2,24,Female,No,2,1
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Masters,2013,Bangalore,3,26,Female,No,4,1
+Bachelors,2012,Pune,3,25,Female,No,3,1
+Bachelors,2015,New Delhi,3,28,Female,No,2,0
+Masters,2017,New Delhi,2,24,Female,No,2,0
+Masters,2013,New Delhi,3,26,Male,No,4,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+PHD,2016,New Delhi,3,24,Female,No,2,0
+Bachelors,2017,New Delhi,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,3,28,Female,No,0,0
+PHD,2016,New Delhi,3,27,Female,No,5,0
+Masters,2014,Bangalore,3,28,Female,No,4,1
+Bachelors,2014,Bangalore,3,28,Female,No,2,0
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Masters,2015,New Delhi,3,28,Male,No,0,0
+Bachelors,2015,Pune,2,25,Female,No,3,1
+Masters,2017,Pune,2,27,Male,No,5,1
+Bachelors,2014,Pune,2,25,Female,No,3,1
+Bachelors,2015,Pune,2,28,Female,Yes,2,1
+Bachelors,2013,Pune,3,25,Male,No,3,0
+Bachelors,2013,Pune,1,26,Female,No,4,1
+Bachelors,2012,Pune,2,27,Female,No,5,1
+Masters,2017,New Delhi,3,28,Male,No,0,0
+Bachelors,2012,Bangalore,3,28,Female,No,1,0
+Bachelors,2015,Pune,2,25,Female,Yes,3,1
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,24,Female,No,2,0
+Bachelors,2018,New Delhi,3,24,Female,No,2,1
+Bachelors,2017,New Delhi,3,27,Female,Yes,5,0
+PHD,2012,Pune,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,25,Male,No,3,1
+Bachelors,2015,New Delhi,3,24,Female,No,2,0
+Bachelors,2013,Pune,3,24,Female,No,2,0
+Bachelors,2016,Pune,3,24,Male,No,2,0
+Bachelors,2018,Pune,3,24,Male,Yes,2,1
+Bachelors,2015,Bangalore,3,27,Female,Yes,5,1
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2012,Pune,3,24,Female,No,2,1
+Masters,2017,New Delhi,3,27,Male,No,5,1
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,New Delhi,3,25,Female,No,3,0
+Bachelors,2018,Bangalore,3,24,Female,No,2,1
+Bachelors,2014,Bangalore,3,28,Male,No,4,0
+Bachelors,2013,Pune,1,26,Female,No,4,1
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,1
+Bachelors,2013,Bangalore,3,25,Female,No,3,1
+Bachelors,2016,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2017,Pune,3,26,Male,No,4,0
+Bachelors,2018,Pune,2,28,Female,No,5,1
+Masters,2017,Pune,2,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,25,Female,No,3,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,New Delhi,2,25,Female,No,3,0
+Bachelors,2018,Pune,3,27,Female,No,5,1
+Bachelors,2016,Pune,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,1,24,Male,No,2,0
+Bachelors,2012,Bangalore,1,28,Male,No,3,0
+Bachelors,2016,Pune,2,28,Female,No,3,1
+Bachelors,2016,Pune,3,24,Male,No,2,0
+Bachelors,2017,Bangalore,3,28,Male,No,3,0
+Bachelors,2017,Pune,2,28,Male,No,3,0
+Bachelors,2017,Bangalore,3,25,Female,No,3,1
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Masters,2013,New Delhi,3,25,Male,No,3,1
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2013,Pune,2,24,Female,No,2,1
+Bachelors,2017,Bangalore,3,28,Male,No,1,1
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2015,Pune,1,24,Female,No,2,1
+Masters,2013,New Delhi,3,24,Female,Yes,2,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Masters,2013,New Delhi,3,25,Male,No,3,1
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Pune,2,28,Female,No,3,1
+Masters,2015,New Delhi,3,28,Male,No,2,0
+Bachelors,2015,Bangalore,3,28,Male,No,5,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Pune,3,27,Male,No,5,0
+Bachelors,2015,Pune,2,28,Female,No,5,1
+Masters,2017,New Delhi,2,26,Female,No,4,1
+Bachelors,2016,New Delhi,3,26,Female,No,4,0
+Bachelors,2016,Bangalore,3,26,Female,No,4,0
+Bachelors,2013,New Delhi,3,27,Female,No,5,0
+Bachelors,2014,Bangalore,3,28,Male,No,3,0
+Bachelors,2017,New Delhi,3,25,Male,No,3,0
+Bachelors,2015,Bangalore,1,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,24,Female,No,2,0
+Bachelors,2014,Pune,2,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,24,Male,No,2,1
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2012,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2012,Bangalore,3,28,Male,No,1,0
+Masters,2017,New Delhi,2,25,Female,No,3,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2016,Pune,2,27,Female,No,5,1
+Bachelors,2017,Pune,3,28,Male,No,3,0
+Masters,2017,New Delhi,3,28,Male,No,2,0
+PHD,2018,Pune,3,26,Male,No,4,1
+Masters,2017,New Delhi,2,24,Male,No,2,1
+Bachelors,2014,Bangalore,3,28,Male,No,0,0
+Masters,2015,Pune,3,26,Female,No,4,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,1
+Bachelors,2016,New Delhi,3,28,Female,No,4,0
+Bachelors,2012,Pune,3,26,Male,No,4,0
+Masters,2015,Bangalore,2,27,Female,No,5,1
+Masters,2017,Pune,1,28,Male,No,0,0
+Masters,2015,New Delhi,3,28,Female,No,2,0
+Bachelors,2017,Bangalore,3,26,Male,No,4,1
+Bachelors,2017,Pune,3,28,Female,No,4,1
+Bachelors,2015,Pune,3,25,Male,No,3,0
+Masters,2017,New Delhi,2,27,Female,No,5,0
+Masters,2015,Pune,2,27,Female,No,5,0
+Bachelors,2015,Bangalore,3,25,Male,No,3,1
+Bachelors,2013,Bangalore,3,28,Female,No,1,0
+Bachelors,2015,Pune,3,25,Female,No,3,1
+Bachelors,2012,Bangalore,3,28,Female,No,2,1
+Bachelors,2016,Pune,3,27,Female,No,5,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+PHD,2018,New Delhi,3,26,Male,No,4,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Pune,3,28,Male,No,2,1
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,New Delhi,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,28,Male,Yes,1,0
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Bachelors,2016,Bangalore,1,24,Male,No,2,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Pune,2,27,Female,No,5,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,3,27,Male,No,5,0
+Masters,2018,New Delhi,3,24,Male,No,2,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,1
+Bachelors,2017,Bangalore,3,28,Male,Yes,3,0
+Bachelors,2017,New Delhi,3,26,Female,No,4,0
+Bachelors,2016,Pune,3,28,Male,No,3,0
+Bachelors,2015,New Delhi,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,1
+Bachelors,2017,Pune,2,24,Female,No,2,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,1
+PHD,2016,New Delhi,1,26,Male,No,4,0
+Bachelors,2018,Bangalore,3,24,Female,No,2,1
+Bachelors,2017,Bangalore,2,28,Female,No,1,0
+Bachelors,2013,Bangalore,3,24,Female,No,2,0
+Masters,2014,New Delhi,3,25,Female,No,3,0
+Bachelors,2012,Pune,1,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,28,Male,No,5,0
+Bachelors,2013,Bangalore,3,28,Male,No,2,1
+Masters,2017,Pune,2,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,28,Male,Yes,0,0
+Bachelors,2014,New Delhi,3,25,Male,No,3,0
+Bachelors,2013,Bangalore,3,25,Female,No,3,1
+Bachelors,2017,Bangalore,3,24,Female,No,2,1
+Bachelors,2015,Bangalore,3,26,Female,No,4,0
+Bachelors,2014,Bangalore,3,28,Male,No,4,0
+Bachelors,2017,New Delhi,2,28,Male,No,0,0
+Masters,2017,New Delhi,3,24,Female,No,2,0
+PHD,2017,Pune,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,28,Female,No,5,0
+Bachelors,2017,New Delhi,3,25,Female,No,3,0
+Masters,2017,Bangalore,3,25,Male,No,3,0
+Masters,2017,Bangalore,1,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,1
+Bachelors,2016,Bangalore,3,27,Male,No,5,1
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Pune,3,25,Male,No,3,1
+Bachelors,2018,Bangalore,3,25,Female,No,3,1
+Masters,2012,Pune,3,26,Male,No,4,1
+PHD,2016,Bangalore,3,25,Male,No,3,0
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,New Delhi,2,25,Male,No,3,1
+Bachelors,2015,New Delhi,3,27,Female,No,5,0
+Bachelors,2017,Pune,3,26,Male,No,4,0
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Masters,2018,New Delhi,3,25,Female,No,3,1
+Masters,2017,Pune,2,25,Male,No,3,0
+Masters,2014,Bangalore,3,24,Female,No,2,0
+Bachelors,2014,Pune,3,28,Female,No,2,1
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Pune,3,26,Male,No,4,0
+Bachelors,2014,Pune,2,28,Female,No,0,1
+Bachelors,2017,New Delhi,3,25,Female,Yes,3,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,26,Female,No,4,0
+Masters,2017,Bangalore,2,26,Male,No,4,1
+Bachelors,2017,New Delhi,3,25,Female,No,3,0
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Bachelors,2014,New Delhi,3,27,Female,No,5,0
+Bachelors,2017,Bangalore,3,28,Male,No,5,0
+Bachelors,2015,Bangalore,1,24,Female,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,1
+Bachelors,2018,Bangalore,3,26,Female,No,4,1
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Bachelors,2016,Pune,3,28,Female,No,4,1
+Bachelors,2016,Bangalore,3,25,Male,No,3,0
+Bachelors,2015,Pune,3,27,Female,Yes,5,1
+Bachelors,2015,Bangalore,3,26,Male,No,4,1
+Bachelors,2015,Pune,3,28,Female,Yes,5,1
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Masters,2017,Pune,2,25,Male,No,3,0
+Bachelors,2015,Pune,2,25,Female,Yes,3,1
+Bachelors,2015,Pune,2,24,Female,No,2,1
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Bachelors,2014,New Delhi,3,24,Female,No,2,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,1
+Bachelors,2015,Pune,2,28,Female,No,5,1
+Bachelors,2015,New Delhi,2,27,Female,No,5,1
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Masters,2016,New Delhi,3,25,Female,No,3,0
+Bachelors,2012,Pune,3,24,Male,Yes,2,0
+Bachelors,2015,New Delhi,3,24,Female,No,2,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Masters,2017,Pune,2,27,Female,No,5,0
+Bachelors,2013,Bangalore,1,24,Female,No,2,1
+PHD,2017,Pune,3,28,Male,No,1,0
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Bachelors,2015,Pune,2,24,Female,No,2,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,New Delhi,3,28,Male,No,4,0
+Masters,2017,New Delhi,2,28,Female,No,2,0
+PHD,2014,New Delhi,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2014,New Delhi,3,24,Male,No,2,0
+Bachelors,2013,New Delhi,3,24,Female,No,2,0
+Masters,2017,New Delhi,3,26,Male,No,4,1
+Bachelors,2014,Pune,2,27,Male,No,5,0
+Masters,2013,Bangalore,3,25,Male,No,3,1
+Masters,2012,New Delhi,3,27,Female,No,5,1
+Masters,2017,Bangalore,2,25,Male,No,3,0
+Bachelors,2012,New Delhi,3,28,Male,No,5,0
+Bachelors,2014,Bangalore,3,28,Male,No,0,0
+Bachelors,2017,New Delhi,3,28,Female,No,4,0
+Bachelors,2016,Pune,3,27,Male,No,5,1
+Bachelors,2017,New Delhi,2,27,Female,No,5,0
+PHD,2014,Bangalore,3,28,Female,No,0,0
+Bachelors,2013,Pune,2,25,Male,No,3,1
+Bachelors,2017,Pune,3,28,Male,No,3,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,2,24,Female,No,2,1
+Masters,2017,New Delhi,2,25,Male,No,3,0
+Bachelors,2014,Pune,3,24,Male,No,2,0
+Bachelors,2013,New Delhi,1,25,Female,No,3,1
+Bachelors,2015,Pune,3,28,Male,No,2,0
+Masters,2017,New Delhi,3,28,Male,No,1,1
+Bachelors,2017,New Delhi,2,27,Female,No,5,0
+Bachelors,2018,Pune,3,24,Male,No,2,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,27,Female,Yes,5,0
+Masters,2017,New Delhi,1,26,Female,No,4,1
+Masters,2017,Bangalore,2,26,Female,No,4,0
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Masters,2014,New Delhi,1,25,Female,No,3,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,28,Female,No,5,0
+Masters,2012,New Delhi,3,25,Male,No,3,1
+Bachelors,2013,Bangalore,3,28,Male,No,2,1
+Bachelors,2014,Bangalore,1,25,Male,No,3,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2013,Pune,3,28,Male,No,0,0
+Bachelors,2015,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2014,Pune,1,28,Female,No,3,1
+Masters,2017,Pune,2,25,Female,No,3,1
+Masters,2013,New Delhi,3,28,Female,No,2,0
+Masters,2017,Bangalore,2,27,Female,No,5,1
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,New Delhi,3,26,Female,No,4,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2017,New Delhi,2,28,Female,No,3,0
+Bachelors,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2013,Pune,2,27,Female,No,5,1
+Masters,2015,Bangalore,3,27,Female,No,5,0
+Masters,2017,Pune,3,27,Female,No,5,1
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,25,Female,No,3,0
+Bachelors,2016,Bangalore,3,26,Female,No,4,0
+Bachelors,2016,Bangalore,3,26,Female,No,4,0
+Bachelors,2014,New Delhi,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,28,Male,No,3,0
+Bachelors,2012,Pune,3,25,Male,No,3,0
+Masters,2014,Bangalore,3,28,Female,No,3,1
+Bachelors,2016,New Delhi,3,26,Male,No,4,0
+Bachelors,2012,New Delhi,3,24,Female,No,2,0
+Bachelors,2015,Pune,2,28,Female,No,4,1
+Bachelors,2017,New Delhi,2,24,Male,No,2,0
+Bachelors,2015,New Delhi,3,25,Male,No,3,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,28,Female,No,3,1
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Masters,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2016,Bangalore,3,25,Male,Yes,3,1
+Bachelors,2016,Bangalore,3,26,Male,Yes,4,0
+Masters,2017,Bangalore,2,24,Female,No,2,0
+Bachelors,2017,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2014,Pune,2,27,Female,No,5,1
+Masters,2017,New Delhi,1,24,Female,No,2,0
+Bachelors,2014,Bangalore,3,28,Male,No,1,0
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Bachelors,2014,Pune,3,28,Male,No,0,0
+Masters,2013,New Delhi,3,28,Male,No,1,0
+Masters,2017,Pune,2,27,Female,No,5,0
+Bachelors,2017,Pune,3,28,Male,No,1,0
+Bachelors,2016,New Delhi,3,26,Female,No,4,0
+PHD,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2013,Pune,3,25,Male,No,3,0
+Masters,2017,Pune,3,25,Male,No,3,0
+Bachelors,2017,Pune,2,24,Female,No,2,1
+Bachelors,2017,New Delhi,3,24,Female,No,2,0
+PHD,2014,Pune,3,24,Male,No,2,0
+PHD,2017,Bangalore,3,24,Female,No,2,0
+Masters,2017,New Delhi,2,26,Male,No,4,1
+Bachelors,2013,Pune,2,24,Male,Yes,2,1
+PHD,2016,New Delhi,3,27,Female,No,5,0
+Masters,2017,New Delhi,2,25,Female,Yes,3,1
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2017,New Delhi,3,25,Female,No,3,0
+Bachelors,2012,Bangalore,3,27,Female,No,5,0
+Bachelors,2016,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,27,Female,Yes,5,1
+Bachelors,2016,Pune,3,28,Female,No,2,1
+Masters,2017,New Delhi,2,27,Female,No,5,1
+Bachelors,2018,Bangalore,3,25,Female,No,3,1
+Bachelors,2014,Pune,3,27,Male,Yes,5,0
+Bachelors,2014,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2015,New Delhi,3,25,Female,No,3,0
+Masters,2017,Bangalore,3,26,Female,No,4,0
+Masters,2018,New Delhi,3,25,Male,No,3,1
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Bachelors,2014,Bangalore,3,28,Male,No,1,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Female,No,3,0
+Bachelors,2015,Pune,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,New Delhi,3,25,Female,No,3,0
+Masters,2017,New Delhi,1,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,25,Female,No,3,0
+Bachelors,2013,Pune,2,26,Male,Yes,4,0
+Bachelors,2018,Pune,1,26,Male,Yes,4,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,24,Female,No,2,0
+PHD,2017,New Delhi,3,28,Male,No,3,0
+Bachelors,2017,New Delhi,2,24,Female,No,2,1
+Bachelors,2015,Bangalore,3,25,Female,No,3,0
+Bachelors,2015,Pune,3,26,Male,No,4,0
+Masters,2014,Bangalore,3,27,Male,No,5,1
+Bachelors,2012,Pune,3,24,Female,No,2,1
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2013,Bangalore,3,24,Female,No,2,0
+Bachelors,2017,Bangalore,3,26,Female,No,4,0
+Masters,2017,New Delhi,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2015,Pune,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,24,Male,Yes,2,0
+Masters,2015,Pune,2,28,Female,No,0,0
+Bachelors,2017,Pune,3,26,Male,Yes,4,0
+Bachelors,2018,Bangalore,3,27,Female,No,5,1
+Masters,2017,Pune,3,27,Male,No,5,1
+Bachelors,2013,Bangalore,1,27,Female,No,5,0
+Bachelors,2016,Bangalore,3,27,Female,No,5,0
+Bachelors,2013,Pune,3,28,Male,No,1,0
+Bachelors,2017,Pune,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,25,Female,No,3,0
+Bachelors,2015,Pune,3,24,Female,No,2,1
+Bachelors,2014,New Delhi,3,28,Male,No,1,0
+Bachelors,2017,New Delhi,2,28,Female,No,2,0
+Masters,2015,New Delhi,3,26,Male,No,4,1
+PHD,2014,New Delhi,3,25,Male,No,3,0
+Bachelors,2013,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2013,New Delhi,2,24,Female,No,2,1
+Bachelors,2014,Pune,3,25,Male,No,3,0
+Bachelors,2017,New Delhi,3,25,Female,No,3,0
+Masters,2017,New Delhi,2,24,Male,Yes,2,1
+Bachelors,2015,New Delhi,3,28,Female,No,2,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,1
+Bachelors,2015,Pune,3,26,Male,No,4,0
+Bachelors,2017,Pune,2,27,Female,No,5,1
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,2,26,Female,No,4,1
+Masters,2017,New Delhi,2,25,Female,No,3,0
+Bachelors,2012,New Delhi,3,25,Female,No,3,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,25,Female,No,3,1
+Bachelors,2016,Pune,3,27,Female,No,5,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Pune,2,28,Female,No,1,1
+Bachelors,2017,Bangalore,2,28,Female,No,2,1
+Bachelors,2017,New Delhi,2,26,Female,No,4,1
+Bachelors,2013,Pune,2,27,Female,No,5,1
+Bachelors,2012,Bangalore,3,24,Female,No,2,0
+Masters,2017,Pune,2,27,Female,No,5,0
+Bachelors,2015,New Delhi,3,24,Male,No,2,0
+Bachelors,2013,New Delhi,3,28,Female,Yes,2,0
+Bachelors,2016,New Delhi,3,28,Male,No,0,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2018,Bangalore,3,27,Male,Yes,5,1
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2018,Pune,3,24,Male,Yes,2,1
+Bachelors,2017,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,26,Male,Yes,4,0
+Masters,2017,Bangalore,2,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,25,Female,No,3,0
+Masters,2013,Pune,3,25,Male,No,3,0
+Masters,2016,New Delhi,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,28,Female,No,1,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+PHD,2013,Bangalore,2,25,Male,No,3,1
+Bachelors,2017,New Delhi,3,25,Male,No,3,0
+Bachelors,2015,Bangalore,3,24,Male,No,2,0
+Masters,2015,Bangalore,3,26,Female,No,4,1
+Bachelors,2013,Bangalore,3,25,Female,No,3,0
+Bachelors,2015,New Delhi,2,24,Female,No,2,1
+Masters,2015,New Delhi,2,27,Female,No,5,1
+Bachelors,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,25,Male,No,3,0
+PHD,2017,New Delhi,3,24,Male,No,2,0
+Masters,2015,Bangalore,3,27,Male,No,5,1
+Bachelors,2015,New Delhi,2,28,Female,No,1,1
+Bachelors,2014,Bangalore,3,28,Male,No,2,1
+Bachelors,2014,Bangalore,3,25,Male,Yes,3,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Masters,2017,New Delhi,1,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Male,No,0,0
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,28,Female,No,1,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Masters,2017,New Delhi,2,28,Male,No,3,0
+Bachelors,2013,Pune,3,24,Female,No,2,1
+Masters,2017,New Delhi,2,24,Male,No,2,1
+Bachelors,2014,Bangalore,3,28,Female,No,1,1
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Masters,2012,New Delhi,3,27,Female,No,5,0
+Masters,2014,New Delhi,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,28,Male,No,5,0
+Bachelors,2017,Pune,3,28,Female,No,1,0
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,New Delhi,3,24,Male,Yes,2,0
+Masters,2018,New Delhi,3,28,Male,Yes,2,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Masters,2013,New Delhi,3,25,Male,No,3,1
+Masters,2017,Bangalore,3,28,Female,No,0,1
+PHD,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2017,Bangalore,1,24,Male,No,2,0
+Bachelors,2017,New Delhi,2,25,Male,No,3,0
+Masters,2015,Pune,2,28,Female,No,0,0
+Bachelors,2014,Pune,2,27,Female,No,5,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Pune,3,27,Male,Yes,5,0
+Bachelors,2017,Bangalore,3,28,Male,No,2,0
+Bachelors,2014,Bangalore,3,28,Male,No,1,0
+Bachelors,2014,New Delhi,3,28,Female,No,3,0
+Bachelors,2015,New Delhi,2,29,Female,No,1,1
+Bachelors,2012,Bangalore,3,29,Male,No,1,0
+Bachelors,2017,Pune,2,26,Male,No,4,0
+Bachelors,2015,Pune,3,28,Female,No,2,1
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Masters,2017,New Delhi,3,26,Female,No,4,0
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,28,Male,No,1,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Pune,3,28,Female,Yes,2,1
+Bachelors,2017,New Delhi,3,28,Female,No,1,0
+Bachelors,2016,New Delhi,3,27,Female,Yes,5,0
+Bachelors,2018,Pune,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,29,Male,Yes,2,0
+Bachelors,2015,Pune,2,28,Female,No,2,1
+Bachelors,2017,Pune,3,26,Female,No,4,1
+Masters,2017,New Delhi,3,28,Male,No,2,0
+Bachelors,2017,Pune,3,26,Male,No,4,0
+Bachelors,2017,Pune,3,26,Female,No,4,1
+Bachelors,2018,Bangalore,3,26,Female,Yes,4,1
+Bachelors,2014,Pune,3,30,Male,No,2,0
+Masters,2017,New Delhi,3,29,Male,No,2,1
+Masters,2017,Pune,2,26,Female,No,4,0
+Masters,2015,New Delhi,3,28,Female,No,2,0
+Bachelors,2016,Bangalore,3,30,Female,No,2,1
+Bachelors,2012,Bangalore,3,26,Female,No,4,1
+Bachelors,2014,Bangalore,3,29,Male,No,1,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2018,Bangalore,3,26,Male,Yes,4,1
+PHD,2018,New Delhi,2,29,Female,No,1,1
+Masters,2013,New Delhi,3,26,Male,No,4,1
+Masters,2015,Pune,3,30,Female,No,2,0
+Bachelors,2018,Pune,3,26,Male,No,4,1
+Masters,2013,New Delhi,2,29,Female,No,2,1
+Bachelors,2016,Bangalore,3,29,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Male,Yes,1,0
+Bachelors,2017,Pune,2,26,Female,No,4,1
+Masters,2017,Pune,2,30,Female,No,2,0
+Bachelors,2015,Pune,2,30,Female,Yes,1,1
+Masters,2017,New Delhi,2,29,Female,No,2,1
+Bachelors,2015,Bangalore,3,30,Male,No,2,0
+Bachelors,2015,Bangalore,3,27,Female,No,5,1
+Bachelors,2017,Pune,3,27,Female,No,5,1
+Bachelors,2014,Bangalore,3,30,Male,No,2,0
+Bachelors,2014,Bangalore,3,26,Female,No,4,0
+Masters,2013,New Delhi,3,26,Male,No,4,0
+Bachelors,2013,New Delhi,3,29,Female,No,1,1
+Bachelors,2018,New Delhi,3,27,Female,No,5,1
+Bachelors,2014,Bangalore,3,29,Male,No,1,0
+Bachelors,2017,Pune,3,26,Female,No,4,1
+Masters,2015,Bangalore,2,27,Female,Yes,5,1
+Masters,2017,New Delhi,2,29,Female,No,2,0
+Masters,2017,Bangalore,3,26,Female,No,4,0
+Bachelors,2015,Bangalore,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,1
+Bachelors,2014,New Delhi,3,28,Female,No,2,0
+Bachelors,2012,Bangalore,3,29,Male,No,1,1
+Bachelors,2016,New Delhi,3,28,Female,No,2,0
+Masters,2012,New Delhi,3,26,Female,No,4,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Pune,3,28,Male,No,2,0
+Bachelors,2012,Bangalore,2,27,Female,No,5,1
+Bachelors,2018,Bangalore,3,28,Male,No,1,1
+Bachelors,2015,Pune,2,26,Female,No,4,1
+PHD,2016,Bangalore,3,29,Female,No,1,0
+Masters,2018,Bangalore,3,30,Female,No,2,1
+Bachelors,2014,Bangalore,3,28,Female,No,2,0
+Masters,2017,New Delhi,2,30,Male,No,2,0
+Bachelors,2012,Bangalore,3,30,Male,No,1,0
+Masters,2017,New Delhi,2,30,Male,No,2,0
+Bachelors,2017,New Delhi,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,28,Female,No,2,0
+Masters,2013,New Delhi,3,26,Female,No,4,0
+PHD,2015,New Delhi,1,29,Male,No,2,0
+Masters,2017,New Delhi,2,27,Female,No,5,1
+Bachelors,2016,Pune,3,30,Male,No,1,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,1
+Bachelors,2014,Pune,2,29,Female,No,2,1
+Bachelors,2016,Bangalore,3,30,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Female,No,5,0
+PHD,2015,New Delhi,2,29,Female,Yes,1,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,30,Male,No,2,1
+Masters,2017,Pune,2,29,Female,No,2,0
+Masters,2016,Bangalore,3,29,Female,No,2,0
+Bachelors,2017,Bangalore,3,27,Female,No,5,1
+Bachelors,2017,Bangalore,3,28,Male,No,2,0
+Bachelors,2017,Bangalore,3,27,Female,No,5,0
+Bachelors,2012,New Delhi,3,29,Male,No,1,0
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,28,Female,No,1,1
+Bachelors,2013,Pune,2,29,Female,No,1,1
+Bachelors,2015,Bangalore,1,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,30,Male,No,1,0
+Bachelors,2013,New Delhi,3,30,Female,No,1,0
+Masters,2017,Pune,2,27,Male,No,5,1
+Masters,2017,Pune,2,29,Male,No,2,0
+Bachelors,2016,New Delhi,3,29,Female,No,1,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,New Delhi,3,28,Female,Yes,1,0
+Bachelors,2013,Pune,2,28,Female,No,1,1
+Bachelors,2016,Bangalore,3,27,Female,Yes,5,0
+Bachelors,2017,Bangalore,3,26,Male,No,4,1
+Bachelors,2014,New Delhi,3,30,Male,No,2,1
+Bachelors,2015,Pune,2,30,Male,No,2,1
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Pune,3,26,Female,No,4,1
+Bachelors,2014,New Delhi,3,30,Male,No,1,0
+Masters,2017,Pune,2,26,Male,No,4,1
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+PHD,2017,Pune,3,28,Male,No,1,0
+Bachelors,2015,New Delhi,3,30,Female,No,2,0
+Bachelors,2016,Bangalore,3,29,Male,No,2,0
+Bachelors,2012,Bangalore,3,28,Male,No,2,0
+Bachelors,2014,Bangalore,1,30,Male,Yes,2,1
+Bachelors,2013,Bangalore,3,27,Male,No,5,1
+Masters,2017,Pune,2,30,Male,No,2,0
+Bachelors,2012,Bangalore,3,30,Male,No,2,0
+Masters,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2014,Pune,2,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,29,Female,No,1,1
+Bachelors,2015,Pune,3,29,Female,No,2,1
+Bachelors,2013,Bangalore,3,28,Female,No,1,0
+Masters,2016,Bangalore,3,29,Male,No,1,0
+Masters,2016,New Delhi,3,26,Female,No,4,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Masters,2015,New Delhi,1,27,Male,Yes,5,1
+Bachelors,2012,Bangalore,3,28,Male,No,1,1
+Masters,2017,Pune,2,27,Male,No,5,0
+Masters,2015,Pune,2,29,Female,No,2,0
+Bachelors,2012,Bangalore,3,28,Male,No,2,0
+Bachelors,2012,Pune,2,28,Male,No,2,1
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Masters,2017,Pune,2,29,Female,No,1,0
+Bachelors,2014,Pune,2,28,Female,No,1,1
+Masters,2012,New Delhi,1,29,Female,No,1,0
+Bachelors,2015,Bangalore,3,30,Female,No,2,0
+Masters,2017,Bangalore,2,26,Male,Yes,4,1
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,1,30,Male,No,1,0
+Masters,2017,New Delhi,3,30,Male,Yes,2,0
+Bachelors,2015,Pune,2,27,Female,Yes,5,1
+Bachelors,2016,Bangalore,3,28,Male,No,2,1
+Bachelors,2017,Pune,2,26,Female,No,4,1
+Masters,2015,New Delhi,2,26,Female,No,4,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+PHD,2013,New Delhi,3,27,Female,Yes,5,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,1
+Bachelors,2013,New Delhi,3,29,Female,No,1,0
+Masters,2017,Pune,3,29,Male,No,2,0
+Bachelors,2016,Pune,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,29,Male,No,1,0
+Bachelors,2016,Pune,3,29,Male,No,2,0
+Masters,2016,New Delhi,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,30,Female,No,1,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,27,Female,No,5,0
+Bachelors,2016,Bangalore,3,29,Male,No,2,0
+Bachelors,2016,Bangalore,3,29,Male,No,1,0
+Masters,2014,New Delhi,3,29,Male,No,1,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,1,27,Female,No,5,0
+Bachelors,2015,New Delhi,3,26,Female,No,4,0
+Bachelors,2015,Pune,1,28,Female,No,2,1
+Bachelors,2015,Pune,2,28,Female,No,1,1
+Bachelors,2018,Pune,2,28,Female,No,2,1
+Bachelors,2015,Pune,3,28,Female,Yes,1,1
+Bachelors,2015,Pune,3,29,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Pune,2,27,Female,No,5,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,1
+Bachelors,2016,Bangalore,3,30,Male,Yes,1,0
+PHD,2015,New Delhi,3,28,Male,No,2,1
+Bachelors,2014,Pune,3,29,Male,No,2,0
+Bachelors,2015,Bangalore,3,29,Male,No,1,0
+Bachelors,2013,Pune,3,30,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Male,Yes,1,0
+Bachelors,2015,Pune,2,29,Female,No,2,1
+Bachelors,2017,Bangalore,3,30,Male,No,1,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Masters,2017,New Delhi,2,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,29,Male,No,1,1
+Masters,2012,New Delhi,1,30,Female,No,2,1
+Masters,2016,New Delhi,3,28,Female,No,2,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,28,Female,No,1,0
+Bachelors,2018,Pune,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,29,Female,No,2,0
+PHD,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,29,Male,No,2,0
+Bachelors,2014,Bangalore,3,28,Male,No,2,0
+Bachelors,2014,Bangalore,3,26,Female,No,4,0
+Bachelors,2012,Bangalore,3,28,Male,No,2,0
+Masters,2018,Bangalore,3,28,Female,No,2,1
+Bachelors,2017,Bangalore,3,28,Female,No,1,0
+Bachelors,2015,Bangalore,3,28,Male,No,1,0
+Bachelors,2014,New Delhi,3,29,Female,No,1,0
+Masters,2017,New Delhi,3,28,Male,No,2,0
+Masters,2017,New Delhi,3,29,Male,No,1,0
+Bachelors,2014,Pune,2,29,Male,No,2,1
+Masters,2013,New Delhi,3,26,Male,No,4,1
+Bachelors,2014,Bangalore,3,30,Male,No,1,0
+Bachelors,2013,New Delhi,3,26,Female,No,4,0
+Bachelors,2014,Bangalore,1,29,Male,No,2,0
+Masters,2016,Pune,3,29,Male,No,2,0
+PHD,2016,Pune,1,28,Male,No,2,0
+PHD,2015,Bangalore,3,29,Male,No,2,0
+Bachelors,2014,Bangalore,3,28,Male,No,1,0
+Bachelors,2015,Pune,2,26,Female,Yes,4,1
+Bachelors,2015,Bangalore,3,28,Female,No,1,0
+Bachelors,2015,Pune,3,28,Male,Yes,2,0
+Bachelors,2016,New Delhi,3,26,Female,No,4,0
+Bachelors,2014,Bangalore,3,29,Male,No,1,1
+Bachelors,2013,Bangalore,2,30,Female,No,1,1
+Bachelors,2015,Bangalore,3,29,Male,Yes,1,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+PHD,2017,New Delhi,3,29,Male,No,1,0
+Masters,2017,New Delhi,3,29,Male,No,2,0
+Bachelors,2015,Pune,2,30,Female,Yes,1,1
+Bachelors,2012,New Delhi,3,26,Female,No,4,0
+Bachelors,2013,Pune,3,30,Male,No,1,0
+Bachelors,2012,Bangalore,3,30,Female,No,1,1
+Bachelors,2015,New Delhi,3,26,Female,No,4,0
+Bachelors,2015,Pune,3,28,Female,Yes,2,1
+Bachelors,2014,Bangalore,3,29,Male,No,1,0
+Bachelors,2013,Pune,2,28,Female,No,1,1
+Bachelors,2016,Bangalore,3,28,Female,No,1,0
+Masters,2018,New Delhi,3,30,Female,No,2,1
+Bachelors,2018,Pune,3,29,Male,Yes,1,1
+Bachelors,2016,Bangalore,3,30,Female,Yes,2,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Masters,2017,Pune,2,27,Male,Yes,5,1
+Masters,2017,Pune,2,26,Female,No,4,1
+Masters,2017,New Delhi,3,26,Male,No,4,1
+Bachelors,2017,Pune,2,30,Female,No,2,1
+Bachelors,2012,Bangalore,3,28,Male,No,1,0
+Bachelors,2014,Bangalore,3,28,Male,No,2,0
+PHD,2015,Bangalore,3,29,Female,No,1,0
+Masters,2015,New Delhi,3,26,Male,No,4,1
+Bachelors,2017,Pune,3,30,Male,No,2,0
+Bachelors,2014,New Delhi,3,28,Female,No,1,0
+Bachelors,2013,Bangalore,1,30,Male,No,1,0
+Bachelors,2016,Bangalore,3,27,Female,No,5,1
+Bachelors,2014,Pune,1,28,Male,No,1,0
+Bachelors,2015,Bangalore,3,30,Male,No,1,0
+Bachelors,2013,New Delhi,3,27,Male,No,5,0
+Bachelors,2017,Pune,2,27,Male,No,5,0
+Masters,2017,New Delhi,2,28,Male,No,1,1
+Masters,2017,New Delhi,2,27,Male,No,5,1
+Masters,2014,New Delhi,3,27,Male,No,5,0
+PHD,2014,New Delhi,2,27,Female,No,5,0
+Bachelors,2015,Bangalore,3,29,Male,No,2,0
+Bachelors,2012,Pune,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,30,Male,No,2,0
+Bachelors,2014,Bangalore,1,27,Female,No,5,0
+Bachelors,2014,Pune,1,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,29,Male,Yes,2,0
+Bachelors,2012,New Delhi,3,30,Male,No,1,0
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Masters,2017,New Delhi,2,30,Female,No,2,0
+Masters,2018,New Delhi,3,29,Male,No,2,1
+Bachelors,2015,Bangalore,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2016,New Delhi,3,27,Male,Yes,5,1
+Bachelors,2014,Pune,1,26,Female,No,4,1
+Bachelors,2017,Pune,3,27,Male,Yes,5,0
+PHD,2013,New Delhi,3,30,Male,No,1,0
+Masters,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,New Delhi,3,26,Female,No,4,0
+Bachelors,2016,Pune,3,29,Male,No,2,0
+Bachelors,2018,Bangalore,3,29,Female,Yes,2,1
+Bachelors,2016,Bangalore,3,28,Male,No,1,0
+Masters,2012,Pune,3,30,Male,No,1,0
+Bachelors,2014,Bangalore,3,30,Female,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,29,Female,No,1,0
+Bachelors,2013,Pune,3,28,Male,No,2,0
+Bachelors,2014,Pune,3,29,Male,No,2,0
+Bachelors,2012,Bangalore,1,30,Female,No,2,0
+Bachelors,2018,Pune,3,28,Male,No,2,1
+Bachelors,2012,Bangalore,3,30,Female,Yes,2,0
+Masters,2017,New Delhi,2,30,Male,No,1,0
+Bachelors,2014,New Delhi,3,27,Female,No,5,0
+Masters,2014,New Delhi,3,29,Male,No,2,0
+Bachelors,2016,Bangalore,3,29,Male,No,2,0
+Bachelors,2014,Pune,2,28,Female,No,2,1
+Bachelors,2017,New Delhi,3,26,Male,No,4,0
+Bachelors,2018,Pune,3,28,Male,No,1,1
+Bachelors,2016,Pune,3,29,Male,No,1,0
+Bachelors,2015,Pune,3,26,Female,Yes,4,1
+Masters,2017,Bangalore,3,27,Male,No,5,1
+Masters,2017,New Delhi,2,26,Male,No,4,0
+Masters,2013,New Delhi,3,26,Female,No,4,1
+Bachelors,2017,Bangalore,3,29,Male,No,1,0
+Masters,2013,New Delhi,3,27,Female,No,5,0
+Bachelors,2012,Pune,2,30,Female,No,2,1
+Bachelors,2013,New Delhi,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,28,Female,No,1,1
+Bachelors,2013,New Delhi,3,27,Male,No,5,0
+Bachelors,2015,Pune,2,29,Female,Yes,2,1
+Bachelors,2012,Bangalore,1,27,Female,No,5,0
+Bachelors,2012,Bangalore,3,28,Male,No,2,0
+Bachelors,2015,New Delhi,3,26,Male,No,4,0
+Bachelors,2017,New Delhi,3,28,Female,No,1,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Masters,2014,Bangalore,3,28,Male,No,1,1
+Bachelors,2015,Bangalore,3,29,Male,No,1,0
+Bachelors,2017,New Delhi,3,27,Female,No,5,0
+Bachelors,2012,Bangalore,3,27,Male,Yes,5,0
+Masters,2017,New Delhi,2,30,Male,No,2,0
+Bachelors,2015,Bangalore,3,28,Female,No,2,0
+Masters,2017,Bangalore,1,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,27,Male,Yes,5,1
+Masters,2017,Pune,2,30,Male,No,1,0
+Bachelors,2013,Pune,3,29,Male,No,2,0
+Bachelors,2013,Pune,3,29,Male,No,2,0
+Bachelors,2012,Pune,3,27,Male,Yes,5,0
+Bachelors,2015,Pune,3,30,Female,No,1,1
+Bachelors,2015,Pune,2,29,Female,No,2,1
+Masters,2018,Pune,3,26,Male,No,4,1
+Masters,2013,Bangalore,2,29,Female,No,2,1
+Bachelors,2014,Bangalore,1,28,Male,No,2,1
+Bachelors,2015,Bangalore,3,30,Male,No,1,0
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Bachelors,2014,Bangalore,3,28,Female,Yes,1,0
+Masters,2015,New Delhi,3,27,Male,No,5,0
+Masters,2017,New Delhi,2,26,Male,No,4,1
+Bachelors,2018,Bangalore,3,28,Male,No,1,1
+Bachelors,2015,New Delhi,3,28,Female,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Pune,1,26,Female,No,4,1
+Masters,2017,New Delhi,2,30,Male,Yes,2,0
+Bachelors,2015,Bangalore,3,28,Female,No,1,0
+Bachelors,2013,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,1
+Bachelors,2018,Bangalore,3,28,Male,No,2,1
+Masters,2017,New Delhi,2,28,Male,No,2,0
+Bachelors,2015,Bangalore,3,29,Male,No,2,0
+Bachelors,2012,New Delhi,3,30,Male,No,1,1
+Masters,2016,Pune,3,30,Male,No,1,0
+Bachelors,2014,Pune,3,30,Male,No,1,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Masters,2017,Bangalore,3,26,Male,No,4,1
+Bachelors,2012,New Delhi,3,27,Female,No,5,0
+Bachelors,2018,Bangalore,3,26,Female,Yes,4,1
+PHD,2014,Bangalore,3,27,Male,No,5,0
+Masters,2017,New Delhi,2,26,Male,Yes,4,1
+Bachelors,2013,Bangalore,3,30,Female,No,1,1
+Bachelors,2012,Bangalore,3,30,Female,No,2,0
+Masters,2018,New Delhi,3,26,Male,Yes,4,1
+Bachelors,2013,Bangalore,1,28,Female,No,1,0
+Bachelors,2017,Bangalore,3,30,Male,No,1,0
+Masters,2017,Pune,2,30,Female,No,2,1
+PHD,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,New Delhi,3,28,Female,No,2,0
+Bachelors,2015,Pune,2,29,Female,No,1,1
+Bachelors,2013,Bangalore,3,27,Female,No,5,0
+Masters,2014,Pune,3,27,Male,No,5,0
+Masters,2017,New Delhi,2,26,Female,Yes,4,1
+Masters,2017,New Delhi,2,30,Female,No,1,0
+Masters,2018,New Delhi,3,27,Female,No,5,1
+Bachelors,2017,Pune,2,29,Male,No,1,0
+Masters,2014,New Delhi,1,29,Male,No,1,0
+Bachelors,2015,Pune,2,30,Female,No,2,1
+Bachelors,2014,Bangalore,3,30,Male,No,2,1
+Masters,2018,New Delhi,1,30,Female,No,2,0
+Bachelors,2017,Bangalore,3,29,Male,No,1,0
+Bachelors,2016,Pune,3,28,Male,No,2,0
+Bachelors,2018,Bangalore,3,26,Female,No,4,1
+Bachelors,2014,Bangalore,1,28,Female,No,2,0
+Masters,2017,New Delhi,2,29,Female,No,2,0
+Masters,2013,New Delhi,3,26,Male,No,4,1
+Bachelors,2017,New Delhi,2,28,Female,No,1,0
+Bachelors,2016,Bangalore,3,30,Female,No,1,0
+PHD,2015,Pune,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,29,Male,No,2,0
+Bachelors,2014,Pune,2,28,Female,No,2,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Masters,2017,New Delhi,2,30,Female,Yes,2,0
+PHD,2013,New Delhi,3,30,Female,No,2,0
+Bachelors,2015,Bangalore,3,29,Male,No,2,0
+Bachelors,2017,Bangalore,3,28,Male,No,2,0
+Bachelors,2015,Bangalore,3,29,Male,No,2,1
+Bachelors,2015,Pune,1,26,Female,No,4,1
+Bachelors,2013,Bangalore,3,28,Male,No,1,0
+Bachelors,2015,Pune,2,29,Female,No,2,1
+Bachelors,2013,Bangalore,3,26,Male,Yes,4,0
+Masters,2014,Pune,3,30,Male,No,2,0
+Masters,2017,Pune,2,30,Male,Yes,2,0
+Bachelors,2017,Pune,3,27,Male,No,5,0
+Bachelors,2014,New Delhi,3,28,Female,Yes,2,0
+Bachelors,2014,New Delhi,3,27,Female,No,5,0
+Bachelors,2015,Pune,2,29,Female,Yes,1,1
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Bachelors,2014,New Delhi,3,30,Male,No,1,0
+Bachelors,2013,Pune,2,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Masters,2017,New Delhi,2,27,Male,No,5,1
+Bachelors,2017,Pune,2,29,Female,No,1,1
+Masters,2017,New Delhi,2,28,Female,No,1,1
+Bachelors,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,29,Female,No,1,1
+Bachelors,2012,Bangalore,3,28,Male,No,1,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,28,Female,No,1,0
+Masters,2015,Pune,2,30,Female,No,2,1
+Masters,2017,New Delhi,2,28,Male,No,2,0
+Masters,2015,Pune,2,29,Female,No,1,0
+Masters,2015,Bangalore,3,26,Male,No,4,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,29,Female,No,1,0
+Bachelors,2017,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2014,New Delhi,3,29,Female,No,2,0
+Bachelors,2017,New Delhi,3,27,Female,No,5,0
+Masters,2017,Pune,2,28,Female,No,2,0
+Masters,2013,New Delhi,3,27,Female,No,5,1
+Masters,2017,New Delhi,3,27,Male,Yes,5,1
+Bachelors,2013,Bangalore,3,30,Male,No,2,0
+Bachelors,2015,Pune,2,27,Female,Yes,5,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,2,27,Female,No,5,1
+Bachelors,2015,Bangalore,3,30,Male,No,2,1
+Masters,2017,Bangalore,2,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,30,Male,No,2,1
+Bachelors,2016,Pune,2,30,Female,No,2,1
+Masters,2016,Pune,1,27,Female,No,5,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Pune,3,29,Female,No,2,1
+Bachelors,2013,New Delhi,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,29,Female,No,2,1
+Bachelors,2013,Pune,3,28,Male,No,2,0
+Bachelors,2013,Pune,2,27,Male,No,5,1
+Masters,2014,New Delhi,3,28,Male,No,1,1
+Bachelors,2016,New Delhi,3,27,Female,No,5,1
+Bachelors,2016,New Delhi,3,29,Female,Yes,2,0
+Masters,2018,New Delhi,1,26,Female,No,4,1
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Bachelors,2013,Pune,2,27,Female,No,5,1
+Bachelors,2014,New Delhi,3,28,Female,No,2,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,29,Female,No,1,0
+Bachelors,2012,Bangalore,3,29,Female,No,1,0
+Bachelors,2018,Bangalore,3,29,Male,Yes,2,1
+Bachelors,2012,Pune,3,30,Male,No,1,0
+Bachelors,2013,Bangalore,3,30,Male,Yes,1,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,New Delhi,3,29,Female,Yes,1,0
+Bachelors,2014,Bangalore,3,30,Female,No,1,0
+Bachelors,2014,Pune,1,28,Male,No,2,0
+Bachelors,2015,Pune,3,27,Female,No,5,0
+Bachelors,2016,Bangalore,3,30,Male,No,1,1
+Bachelors,2016,Pune,3,26,Female,No,4,1
+Bachelors,2018,New Delhi,3,27,Female,Yes,5,1
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Masters,2017,New Delhi,2,27,Male,No,5,1
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Pune,3,26,Female,No,4,1
+Bachelors,2012,Pune,1,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+PHD,2017,Bangalore,3,28,Female,No,1,0
+Bachelors,2015,Pune,3,29,Female,No,1,1
+Masters,2014,New Delhi,3,30,Male,Yes,2,0
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Pune,3,28,Male,No,1,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,New Delhi,3,26,Male,No,4,0
+Masters,2012,New Delhi,3,30,Male,No,2,0
+PHD,2013,New Delhi,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,30,Male,Yes,1,1
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Masters,2017,New Delhi,3,29,Female,No,2,0
+Bachelors,2014,Bangalore,3,29,Male,No,2,0
+Bachelors,2017,New Delhi,3,28,Male,No,1,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2018,Bangalore,3,27,Female,No,5,1
+Bachelors,2014,Bangalore,1,28,Male,No,1,0
+Bachelors,2016,Bangalore,3,28,Male,No,1,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2012,Pune,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,28,Male,No,2,0
+Bachelors,2014,Bangalore,3,28,Male,No,1,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+PHD,2012,New Delhi,1,29,Female,No,2,0
+Bachelors,2013,Bangalore,3,30,Female,No,2,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Pune,3,28,Male,No,1,0
+Masters,2013,New Delhi,2,26,Male,No,4,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Pune,3,27,Female,No,5,0
+PHD,2015,New Delhi,3,28,Male,No,2,0
+Masters,2017,Pune,2,28,Male,No,2,0
+Bachelors,2014,Pune,3,28,Male,No,4,0
+Bachelors,2016,Bangalore,3,29,Female,No,1,1
+Bachelors,2017,Bangalore,3,26,Female,No,4,1
+Bachelors,2015,Bangalore,3,30,Male,No,0,0
+Masters,2012,New Delhi,3,30,Male,No,2,0
+Bachelors,2012,Bangalore,1,30,Female,No,0,0
+Bachelors,2014,New Delhi,3,27,Female,No,5,0
+Bachelors,2017,New Delhi,2,28,Female,No,0,0
+Bachelors,2012,Pune,3,26,Male,No,4,0
+Bachelors,2015,Pune,3,29,Female,No,3,1
+Masters,2017,Pune,2,30,Male,No,0,1
+Bachelors,2013,New Delhi,3,26,Male,No,4,0
+Masters,2014,Pune,3,30,Male,No,0,1
+Bachelors,2013,Pune,3,29,Male,Yes,2,0
+Bachelors,2017,Bangalore,3,28,Male,No,3,0
+Masters,2018,New Delhi,3,27,Male,Yes,5,1
+Masters,2017,New Delhi,2,26,Female,Yes,4,1
+Bachelors,2012,Bangalore,3,30,Female,No,0,1
+Bachelors,2012,Bangalore,3,29,Female,No,4,0
+Bachelors,2014,Bangalore,3,29,Male,No,1,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,28,Male,Yes,4,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Pune,3,29,Male,No,5,0
+Bachelors,2014,Bangalore,3,29,Male,No,0,0
+Masters,2013,Bangalore,3,30,Male,No,5,1
+Bachelors,2017,New Delhi,3,30,Female,Yes,3,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+PHD,2015,Pune,2,30,Female,No,4,0
+Masters,2014,Bangalore,3,30,Male,No,4,1
+Masters,2017,New Delhi,2,27,Male,No,5,1
+Bachelors,2013,Pune,3,30,Male,No,0,0
+Masters,2017,Pune,2,30,Male,No,0,0
+Masters,2017,New Delhi,2,29,Female,No,2,0
+Masters,2017,New Delhi,2,29,Male,No,2,0
+Bachelors,2014,Bangalore,1,27,Male,No,5,1
+Bachelors,2012,Bangalore,3,27,Female,No,5,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Masters,2018,New Delhi,3,30,Female,No,4,1
+Bachelors,2015,Bangalore,3,29,Female,No,1,0
+Bachelors,2014,Pune,3,26,Female,No,4,1
+Masters,2016,Pune,3,28,Male,No,2,0
+Bachelors,2015,New Delhi,3,28,Female,No,4,0
+Bachelors,2015,Bangalore,3,30,Male,No,0,0
+Bachelors,2014,Bangalore,3,28,Female,No,3,0
+Bachelors,2017,Bangalore,3,28,Male,No,4,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,28,Female,No,0,0
+Bachelors,2015,Pune,2,28,Female,No,2,1
+Masters,2013,Pune,3,27,Female,Yes,5,1
+Bachelors,2016,Bangalore,3,27,Male,No,5,1
+Bachelors,2012,Pune,3,29,Male,No,1,0
+Bachelors,2015,Pune,2,28,Female,No,0,1
+Bachelors,2018,Pune,3,30,Male,Yes,3,1
+Bachelors,2016,Bangalore,3,29,Male,No,5,0
+Masters,2013,New Delhi,2,27,Female,No,5,1
+Masters,2017,New Delhi,2,30,Male,No,2,0
+Bachelors,2012,New Delhi,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,30,Male,No,2,1
+Bachelors,2017,New Delhi,2,29,Male,No,3,1
+Bachelors,2017,Pune,2,28,Male,No,3,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,29,Male,Yes,4,0
+Bachelors,2013,Bangalore,3,30,Male,No,5,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2012,Bangalore,3,29,Male,Yes,2,1
+Masters,2015,Bangalore,3,28,Male,No,0,1
+Bachelors,2014,New Delhi,3,29,Female,No,2,0
+Masters,2015,Pune,3,29,Female,No,4,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Pune,3,27,Female,No,5,1
+Bachelors,2017,Bangalore,3,30,Male,No,1,1
+Masters,2014,Pune,3,30,Male,No,2,0
+Bachelors,2015,New Delhi,3,28,Female,No,4,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Bachelors,2014,Bangalore,3,28,Male,No,5,0
+Bachelors,2017,Bangalore,1,28,Female,No,0,1
+Bachelors,2016,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2013,Bangalore,3,28,Male,No,5,0
+Masters,2013,New Delhi,3,30,Male,No,2,1
+Masters,2013,New Delhi,1,29,Female,No,2,1
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Pune,3,28,Male,No,3,0
+Bachelors,2013,Bangalore,3,29,Male,No,2,0
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Masters,2017,New Delhi,2,30,Female,No,2,0
+PHD,2013,New Delhi,3,27,Female,No,5,0
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2016,Bangalore,3,28,Female,No,1,1
+Bachelors,2017,Pune,2,27,Female,No,5,1
+Bachelors,2012,Bangalore,3,27,Female,No,5,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,1
+Bachelors,2016,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Bachelors,2015,Pune,3,29,Male,No,1,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Bachelors,2017,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2015,Pune,3,30,Female,No,0,1
+Bachelors,2017,Bangalore,3,30,Male,No,3,0
+PHD,2012,New Delhi,3,29,Male,No,5,0
+Bachelors,2016,Pune,3,29,Male,No,5,0
+Bachelors,2014,Bangalore,3,26,Female,Yes,4,0
+PHD,2014,New Delhi,3,28,Female,No,0,0
+Bachelors,2018,Bangalore,3,28,Male,No,1,1
+Bachelors,2013,New Delhi,3,27,Female,Yes,5,0
+Bachelors,2013,Bangalore,3,28,Male,No,2,0
+Bachelors,2018,Bangalore,3,29,Male,No,0,1
+Bachelors,2016,Bangalore,3,29,Male,No,3,0
+Bachelors,2018,Pune,3,30,Female,No,2,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Pune,3,29,Male,No,3,0
+Bachelors,2013,Pune,3,30,Male,No,4,0
+Masters,2015,New Delhi,3,29,Male,No,2,0
+Bachelors,2018,Pune,3,27,Male,No,5,1
+Bachelors,2016,Bangalore,3,28,Male,No,2,0
+Bachelors,2015,Bangalore,3,29,Male,No,1,0
+Bachelors,2016,Bangalore,3,30,Male,No,0,0
+Bachelors,2016,Bangalore,3,28,Female,No,1,0
+Bachelors,2017,New Delhi,3,26,Female,No,4,0
+Bachelors,2014,Pune,2,29,Female,No,1,1
+PHD,2013,New Delhi,3,30,Female,No,2,0
+Bachelors,2016,Bangalore,3,28,Male,Yes,3,0
+Bachelors,2015,Bangalore,3,28,Male,No,1,0
+Bachelors,2016,Pune,3,28,Male,No,5,0
+Bachelors,2017,Pune,2,28,Female,No,1,1
+Bachelors,2015,Bangalore,3,30,Male,No,4,0
+Masters,2012,New Delhi,3,27,Male,No,5,0
+Masters,2017,New Delhi,3,29,Female,Yes,2,0
+Bachelors,2018,New Delhi,3,29,Female,No,2,1
+Bachelors,2018,Bangalore,3,29,Male,No,0,1
+Bachelors,2012,Bangalore,3,28,Female,No,0,0
+Bachelors,2015,Pune,2,28,Female,No,0,1
+Masters,2017,New Delhi,2,27,Female,No,5,1
+Bachelors,2018,Pune,3,28,Female,No,5,1
+Bachelors,2016,Pune,3,28,Male,No,1,0
+Bachelors,2014,Bangalore,1,26,Male,No,4,1
+Bachelors,2014,New Delhi,2,29,Female,No,3,1
+Masters,2014,Pune,3,26,Male,No,4,1
+Bachelors,2017,Pune,3,27,Male,No,5,0
+Bachelors,2013,Pune,3,30,Male,No,4,1
+Bachelors,2015,Bangalore,3,30,Male,No,3,0
+Bachelors,2012,Bangalore,3,29,Male,No,2,1
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2017,New Delhi,2,30,Female,No,2,1
+Bachelors,2012,Pune,3,29,Male,No,0,0
+Bachelors,2015,Pune,1,30,Female,No,0,1
+Bachelors,2017,Bangalore,3,28,Male,No,3,0
+Bachelors,2013,Bangalore,3,28,Male,No,5,0
+Bachelors,2017,Pune,2,30,Female,No,4,1
+Bachelors,2017,Pune,2,28,Male,No,5,0
+Bachelors,2014,New Delhi,3,27,Female,No,5,1
+Bachelors,2012,Bangalore,3,28,Female,No,2,0
+Bachelors,2013,Bangalore,3,29,Female,No,5,0
+Bachelors,2012,Bangalore,3,27,Female,No,5,1
+Bachelors,2017,Pune,2,28,Female,No,3,1
+Bachelors,2015,Bangalore,1,29,Male,No,4,0
+Bachelors,2013,Bangalore,2,30,Male,No,0,1
+PHD,2018,Bangalore,3,28,Male,No,2,1
+Bachelors,2015,Pune,3,28,Female,No,3,1
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,30,Female,No,3,1
+Bachelors,2012,Bangalore,3,29,Male,No,5,0
+Bachelors,2012,Bangalore,3,27,Female,No,5,0
+Bachelors,2015,Bangalore,3,26,Female,No,4,0
+Bachelors,2016,Pune,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,27,Female,No,5,0
+Bachelors,2013,Pune,3,28,Male,No,0,0
+Bachelors,2014,Pune,3,29,Male,No,1,0
+Bachelors,2017,New Delhi,2,27,Male,No,5,0
+Bachelors,2013,New Delhi,3,27,Female,No,5,0
+Bachelors,2017,Pune,3,30,Male,No,5,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2012,New Delhi,3,30,Female,Yes,3,0
+Bachelors,2013,Pune,2,30,Male,No,1,1
+PHD,2015,New Delhi,3,27,Female,No,5,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,27,Female,Yes,5,1
+Masters,2017,New Delhi,2,29,Male,No,1,0
+Bachelors,2013,New Delhi,3,28,Female,No,3,0
+Masters,2012,Pune,3,29,Male,No,4,1
+Bachelors,2014,New Delhi,3,28,Female,No,3,0
+Bachelors,2018,Bangalore,3,27,Male,Yes,5,1
+Bachelors,2012,Bangalore,3,29,Male,No,1,0
+Bachelors,2017,Pune,2,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,30,Male,No,2,1
+Bachelors,2014,New Delhi,3,29,Male,No,4,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2014,Bangalore,3,27,Female,No,5,0
+Masters,2013,New Delhi,2,26,Male,No,4,1
+Bachelors,2013,New Delhi,3,29,Female,No,2,0
+Bachelors,2016,Bangalore,2,30,Female,No,4,1
+Bachelors,2017,New Delhi,3,29,Female,No,0,0
+Bachelors,2018,Bangalore,3,28,Male,No,3,1
+Bachelors,2014,Bangalore,3,29,Male,No,4,0
+Masters,2017,New Delhi,2,30,Female,No,2,0
+Bachelors,2018,Bangalore,3,29,Male,Yes,2,1
+Bachelors,2017,New Delhi,2,28,Female,No,1,0
+Bachelors,2013,Bangalore,2,27,Female,No,5,1
+Bachelors,2015,Bangalore,3,30,Male,No,4,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Masters,2017,Bangalore,2,30,Male,No,3,0
+Masters,2017,New Delhi,2,29,Male,No,4,0
+Bachelors,2014,Bangalore,3,28,Male,No,3,0
+Masters,2017,New Delhi,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,3,27,Male,No,5,0
+Bachelors,2016,Pune,3,30,Male,No,0,0
+Bachelors,2015,Bangalore,3,29,Female,No,0,0
+Bachelors,2015,Pune,2,27,Female,Yes,5,1
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Bachelors,2015,New Delhi,3,29,Male,No,1,0
+Bachelors,2017,Bangalore,3,30,Male,No,4,0
+PHD,2017,New Delhi,3,27,Male,No,5,0
+PHD,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,28,Male,Yes,1,1
+Bachelors,2013,Bangalore,3,29,Male,No,1,0
+Masters,2017,Pune,2,29,Female,Yes,2,1
+Bachelors,2015,Pune,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,27,Female,No,5,0
+Masters,2018,Pune,3,26,Male,No,4,1
+Bachelors,2012,New Delhi,1,27,Female,No,5,1
+Masters,2017,Pune,2,27,Male,Yes,5,1
+Bachelors,2015,Pune,1,28,Female,No,0,1
+Bachelors,2014,Bangalore,3,29,Male,No,4,1
+Bachelors,2017,New Delhi,3,29,Female,No,3,0
+PHD,2015,Pune,2,26,Female,No,4,0
+Bachelors,2017,Bangalore,3,30,Female,No,5,0
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Masters,2013,Pune,3,26,Male,No,4,1
+Bachelors,2012,Pune,2,29,Female,No,2,1
+Bachelors,2018,Bangalore,3,30,Male,Yes,2,1
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2018,Bangalore,2,28,Female,No,3,1
+Bachelors,2012,Bangalore,3,28,Male,No,0,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,28,Female,Yes,0,0
+Masters,2014,New Delhi,3,28,Male,No,2,0
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Bachelors,2015,Pune,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,28,Male,Yes,2,0
+Bachelors,2018,Pune,3,29,Male,Yes,3,1
+Bachelors,2014,New Delhi,3,29,Male,Yes,4,0
+Bachelors,2015,Bangalore,3,29,Male,No,1,0
+Masters,2018,Bangalore,3,27,Male,Yes,5,1
+Bachelors,2014,Bangalore,3,28,Male,No,5,0
+Masters,2017,Pune,2,27,Male,No,5,0
+Bachelors,2017,Pune,2,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,28,Male,No,4,0
+Bachelors,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2017,Pune,3,29,Female,No,0,1
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2017,Pune,2,26,Female,No,4,1
+Bachelors,2014,Bangalore,3,30,Male,No,1,0
+Bachelors,2018,Bangalore,3,29,Male,No,2,1
+Masters,2013,Bangalore,3,30,Male,No,2,1
+Bachelors,2016,Bangalore,3,27,Female,No,5,0
+Bachelors,2016,New Delhi,3,26,Female,No,4,0
+Bachelors,2017,Bangalore,1,30,Male,No,1,0
+Bachelors,2015,New Delhi,3,30,Female,Yes,1,0
+Bachelors,2013,Pune,3,30,Male,No,0,0
+Bachelors,2015,Pune,3,27,Male,No,5,0
+Bachelors,2017,Pune,3,30,Female,No,1,1
+PHD,2018,New Delhi,3,30,Male,No,2,1
+Bachelors,2018,Bangalore,3,29,Male,Yes,1,1
+Bachelors,2013,Bangalore,3,30,Male,Yes,0,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,1
+Bachelors,2016,New Delhi,3,29,Female,Yes,2,0
+Bachelors,2013,Pune,3,28,Male,No,5,0
+Bachelors,2014,New Delhi,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,30,Female,No,1,1
+Masters,2013,New Delhi,2,26,Male,No,4,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Masters,2012,Pune,3,27,Male,Yes,5,1
+Bachelors,2017,Bangalore,3,27,Female,No,5,0
+Bachelors,2013,Bangalore,3,30,Male,No,1,0
+Bachelors,2014,New Delhi,3,27,Male,No,5,0
+Masters,2013,Bangalore,3,30,Male,No,1,1
+Bachelors,2016,Bangalore,3,29,Male,No,2,1
+Bachelors,2016,Bangalore,3,28,Male,No,3,0
+Masters,2017,New Delhi,3,29,Female,No,2,0
+Bachelors,2014,New Delhi,3,26,Male,No,4,0
+Masters,2018,New Delhi,3,30,Male,No,2,1
+Masters,2014,Pune,3,27,Female,No,5,1
+Bachelors,2017,Pune,3,29,Male,No,0,0
+Masters,2016,New Delhi,3,30,Male,No,2,0
+Masters,2017,New Delhi,3,30,Male,No,3,1
+Bachelors,2013,Pune,2,30,Female,No,1,1
+Masters,2014,New Delhi,3,28,Female,No,3,0
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,1,30,Male,No,2,0
+Bachelors,2016,Bangalore,3,28,Male,Yes,3,0
+Bachelors,2013,Pune,1,30,Female,Yes,1,1
+Bachelors,2013,Bangalore,3,30,Female,No,5,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Pune,3,27,Male,No,5,0
+Masters,2012,New Delhi,3,26,Female,No,4,0
+Bachelors,2013,Pune,2,26,Male,Yes,4,0
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+PHD,2018,New Delhi,2,30,Female,No,4,1
+Bachelors,2017,Bangalore,3,29,Male,No,3,0
+Bachelors,2013,Bangalore,3,28,Male,No,1,0
+Bachelors,2012,Bangalore,3,28,Male,Yes,2,0
+Masters,2017,New Delhi,1,30,Male,No,2,0
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Masters,2013,Bangalore,1,29,Female,No,2,1
+Bachelors,2012,Pune,3,29,Male,No,5,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,29,Male,No,4,0
+Bachelors,2014,Bangalore,3,29,Male,No,3,1
+Bachelors,2018,Bangalore,3,28,Male,No,0,1
+Bachelors,2012,Bangalore,3,27,Male,No,5,1
+Bachelors,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2014,Pune,2,29,Female,No,1,1
+Bachelors,2017,Bangalore,3,29,Male,No,4,0
+Bachelors,2015,Pune,2,28,Female,No,3,1
+Bachelors,2017,Bangalore,3,28,Male,No,5,0
+Bachelors,2017,Bangalore,3,29,Male,No,0,0
+Bachelors,2017,Bangalore,3,30,Male,No,2,0
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Masters,2017,New Delhi,2,30,Female,No,2,0
+Bachelors,2015,Pune,2,29,Female,No,4,1
+Bachelors,2014,Pune,3,29,Female,No,1,1
+Bachelors,2012,Bangalore,3,28,Male,No,2,0
+Bachelors,2012,Bangalore,3,28,Female,No,4,0
+Bachelors,2017,Bangalore,3,29,Female,No,5,0
+Bachelors,2015,Bangalore,3,30,Male,Yes,3,0
+Masters,2012,Pune,3,26,Male,No,4,1
+Bachelors,2018,Bangalore,3,28,Male,No,5,1
+Bachelors,2017,New Delhi,3,30,Male,No,5,0
+Bachelors,2012,New Delhi,3,27,Female,No,5,0
+Bachelors,2017,New Delhi,3,26,Female,No,4,0
+Bachelors,2014,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2014,Bangalore,3,30,Male,No,0,0
+Bachelors,2014,New Delhi,3,30,Female,No,2,0
+Bachelors,2012,New Delhi,3,29,Female,No,5,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Pune,2,29,Female,No,4,1
+Masters,2016,Pune,3,29,Male,No,4,1
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Masters,2017,New Delhi,3,26,Female,No,4,0
+Masters,2012,New Delhi,3,29,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Pune,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,28,Female,No,2,1
+Bachelors,2013,New Delhi,3,30,Female,No,3,1
+Masters,2017,Pune,2,26,Female,No,4,1
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Bachelors,2017,New Delhi,2,27,Male,No,5,0
+PHD,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2013,Bangalore,3,30,Female,No,1,0
+Masters,2013,New Delhi,3,30,Male,No,0,1
+Masters,2018,New Delhi,3,26,Female,No,4,1
+Masters,2015,New Delhi,3,30,Male,No,2,0
+Bachelors,2012,Bangalore,3,29,Male,No,4,0
+Bachelors,2018,Bangalore,3,27,Male,Yes,5,1
+Masters,2017,Pune,2,28,Male,No,5,0
+Bachelors,2016,Pune,2,29,Male,No,3,1
+Bachelors,2015,Pune,2,27,Female,Yes,5,1
+Bachelors,2014,Bangalore,3,29,Male,No,4,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Pune,3,28,Male,No,5,1
+Bachelors,2012,Bangalore,3,28,Female,No,0,0
+Masters,2017,Pune,2,28,Male,No,2,0
+Masters,2015,Pune,2,27,Female,No,5,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Bachelors,2014,Pune,3,29,Female,No,4,1
+Masters,2016,New Delhi,3,30,Male,No,3,0
+Bachelors,2014,Pune,1,26,Female,No,4,1
+Bachelors,2012,Pune,2,27,Female,No,5,1
+Bachelors,2017,Pune,3,30,Male,No,0,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,2,30,Male,No,4,0
+Bachelors,2017,New Delhi,2,28,Female,No,4,0
+PHD,2016,Bangalore,3,30,Female,No,5,0
+Bachelors,2018,Bangalore,3,28,Male,No,1,1
+Bachelors,2017,Pune,2,29,Male,No,3,0
+Bachelors,2017,New Delhi,2,30,Male,No,1,1
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Pune,3,30,Male,No,0,0
+Bachelors,2018,Bangalore,3,26,Male,Yes,4,1
+Bachelors,2015,New Delhi,3,28,Female,No,3,0
+Masters,2017,New Delhi,2,26,Female,Yes,4,1
+Bachelors,2016,Pune,2,30,Female,No,1,1
+Masters,2014,New Delhi,3,28,Male,No,0,0
+Bachelors,2015,Bangalore,3,28,Male,No,2,0
+Masters,2015,Pune,2,30,Female,No,1,0
+Masters,2017,New Delhi,2,27,Female,No,5,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,30,Male,No,1,1
+Masters,2017,New Delhi,3,29,Male,No,2,0
+Bachelors,2012,Bangalore,3,30,Female,No,1,0
+Bachelors,2018,Bangalore,3,29,Male,No,3,1
+Masters,2018,Pune,3,29,Male,No,2,1
+Bachelors,2016,Bangalore,3,27,Female,No,5,0
+Bachelors,2017,New Delhi,2,28,Male,No,2,0
+Bachelors,2016,Bangalore,3,29,Female,No,0,1
+Bachelors,2016,New Delhi,1,29,Female,No,1,0
+Bachelors,2015,Pune,2,28,Female,No,0,1
+Bachelors,2012,Bangalore,3,29,Male,Yes,2,0
+PHD,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2018,Bangalore,3,29,Female,No,3,1
+Masters,2017,New Delhi,2,30,Male,No,2,0
+Masters,2016,New Delhi,3,29,Female,No,1,1
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Pune,3,28,Male,No,5,0
+Bachelors,2017,New Delhi,2,29,Female,No,5,0
+Bachelors,2014,Bangalore,3,30,Male,No,0,0
+Bachelors,2017,Bangalore,3,30,Male,No,0,0
+Bachelors,2014,Pune,3,28,Male,No,2,0
+Bachelors,2013,New Delhi,3,28,Female,No,1,0
+Bachelors,2016,New Delhi,3,26,Female,No,4,0
+Bachelors,2012,New Delhi,3,28,Female,No,0,0
+Bachelors,2017,Bangalore,3,29,Male,No,0,0
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+Masters,2017,New Delhi,2,26,Male,No,4,1
+Bachelors,2017,New Delhi,3,26,Female,No,4,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Pune,2,29,Female,No,0,1
+Bachelors,2013,Pune,2,28,Female,No,4,1
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,28,Female,No,0,1
+Bachelors,2017,Bangalore,3,29,Male,No,1,0
+Bachelors,2013,Bangalore,3,29,Female,No,3,0
+Bachelors,2015,Bangalore,3,29,Male,No,5,0
+Bachelors,2017,New Delhi,3,30,Female,No,3,0
+Bachelors,2015,Pune,3,29,Male,No,0,0
+Bachelors,2013,Bangalore,3,27,Female,Yes,5,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,1
+Bachelors,2012,Bangalore,3,28,Male,No,2,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,29,Male,No,0,1
+Bachelors,2017,Bangalore,1,29,Female,No,5,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Masters,2017,Bangalore,2,27,Male,No,5,1
+Masters,2014,New Delhi,3,28,Female,No,2,0
+Bachelors,2012,New Delhi,3,27,Female,No,5,1
+Bachelors,2012,Bangalore,3,28,Male,No,0,0
+Masters,2017,Pune,2,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,New Delhi,3,27,Female,No,5,1
+Bachelors,2013,Bangalore,2,26,Female,No,4,1
+Bachelors,2012,Pune,2,27,Female,No,5,1
+Bachelors,2016,Pune,3,26,Female,No,4,1
+Bachelors,2017,New Delhi,2,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,28,Female,No,3,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Masters,2017,New Delhi,3,27,Male,No,5,0
+Bachelors,2013,Pune,2,30,Female,No,5,1
+Bachelors,2013,Pune,3,28,Male,No,0,0
+Bachelors,2012,Pune,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,28,Male,No,3,1
+Masters,2015,Pune,3,26,Male,No,4,1
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Masters,2017,Bangalore,2,26,Male,No,4,1
+Bachelors,2014,Bangalore,3,30,Female,No,2,0
+Bachelors,2014,Bangalore,3,29,Female,No,2,0
+Bachelors,2017,Pune,3,26,Male,Yes,4,0
+Bachelors,2013,Bangalore,3,28,Male,No,0,0
+Bachelors,2018,Bangalore,3,29,Male,No,1,1
+Bachelors,2016,Bangalore,3,30,Female,No,3,0
+Bachelors,2017,Bangalore,3,30,Male,No,0,1
+PHD,2015,New Delhi,3,29,Male,No,4,0
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Bachelors,2014,Bangalore,1,28,Female,No,5,0
+Bachelors,2014,Pune,3,30,Male,No,0,0
+Masters,2012,Bangalore,3,26,Female,No,4,1
+Bachelors,2013,New Delhi,2,26,Female,No,4,1
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,New Delhi,3,29,Female,No,0,0
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Masters,2018,New Delhi,3,28,Female,No,2,1
+PHD,2015,New Delhi,2,27,Female,No,5,0
+Masters,2013,Pune,1,30,Male,No,1,0
+Bachelors,2012,Pune,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,26,Female,Yes,4,1
+Bachelors,2018,New Delhi,3,30,Female,Yes,3,1
+PHD,2013,New Delhi,3,30,Male,No,5,0
+Bachelors,2013,Bangalore,3,28,Male,No,0,0
+Masters,2014,New Delhi,3,26,Male,Yes,4,1
+Bachelors,2017,Bangalore,3,29,Male,No,1,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2012,Pune,3,26,Male,No,4,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2015,Pune,3,29,Male,No,0,0
+Bachelors,2014,Bangalore,1,26,Male,No,4,0
+Bachelors,2018,Bangalore,3,36,Male,No,2,1
+Bachelors,2018,Bangalore,3,37,Male,No,4,1
+Bachelors,2015,Pune,3,35,Female,No,0,1
+Bachelors,2013,Pune,2,32,Female,No,4,1
+Bachelors,2013,Pune,1,39,Female,No,0,1
+Bachelors,2018,Pune,3,32,Male,No,1,1
+PHD,2012,New Delhi,3,37,Female,No,5,0
+Bachelors,2012,Pune,3,31,Male,No,4,0
+Bachelors,2018,Pune,3,31,Male,No,1,1
+Bachelors,2017,Bangalore,3,33,Male,No,2,0
+Masters,2017,Pune,2,37,Male,No,2,0
+Bachelors,2014,Pune,3,31,Male,Yes,1,0
+Masters,2017,Bangalore,3,40,Female,No,4,0
+Bachelors,2017,New Delhi,2,32,Male,No,0,0
+Bachelors,2016,Bangalore,3,41,Male,No,0,0
+Bachelors,2018,Bangalore,3,35,Female,Yes,5,1
+Bachelors,2014,Pune,3,34,Male,No,3,0
+Bachelors,2017,Bangalore,3,31,Male,No,0,0
+Masters,2017,Bangalore,3,41,Female,No,2,1
+Bachelors,2015,Pune,3,41,Male,No,5,0
+Bachelors,2016,Bangalore,3,37,Female,No,0,0
+Bachelors,2018,Bangalore,3,32,Female,No,3,1
+Bachelors,2015,Bangalore,3,37,Male,Yes,3,0
+Bachelors,2016,Bangalore,3,32,Male,No,1,0
+Masters,2017,New Delhi,3,36,Female,No,5,0
+Bachelors,2014,Bangalore,3,36,Male,No,3,0
+Bachelors,2015,Bangalore,3,36,Male,No,5,0
+Bachelors,2017,Bangalore,3,41,Male,Yes,3,0
+Bachelors,2015,Pune,3,39,Male,No,3,0
+Bachelors,2013,Pune,3,37,Male,No,0,0
+Bachelors,2013,Bangalore,3,32,Male,No,1,0
+Bachelors,2012,Bangalore,3,36,Male,No,2,0
+Bachelors,2013,Bangalore,3,36,Male,No,4,0
+Bachelors,2014,Bangalore,3,36,Male,No,1,0
+Bachelors,2018,Bangalore,3,32,Female,Yes,2,1
+Bachelors,2018,Bangalore,3,34,Male,No,3,1
+Bachelors,2018,Bangalore,3,37,Male,Yes,5,1
+Bachelors,2018,Pune,3,40,Male,Yes,3,1
+Bachelors,2014,Pune,2,36,Female,No,3,1
+Bachelors,2017,Pune,2,38,Female,No,0,0
+Masters,2017,New Delhi,2,31,Female,No,0,1
+Bachelors,2013,New Delhi,3,41,Female,No,4,0
+Masters,2012,Bangalore,2,32,Male,No,3,1
+Bachelors,2017,New Delhi,2,41,Female,No,3,0
+Bachelors,2013,Pune,3,40,Male,No,5,0
+Bachelors,2014,Bangalore,3,38,Female,No,2,1
+Masters,2017,New Delhi,2,36,Male,No,5,0
+Bachelors,2013,New Delhi,3,33,Female,No,1,0
+Bachelors,2014,Bangalore,3,39,Male,Yes,0,0
+Bachelors,2013,Bangalore,3,39,Male,No,0,0
+Bachelors,2014,Bangalore,3,33,Male,No,4,0
+Bachelors,2017,Pune,3,32,Male,No,5,0
+Bachelors,2014,Bangalore,3,35,Female,No,2,1
+Bachelors,2014,Bangalore,3,36,Male,No,5,0
+Bachelors,2018,Pune,2,39,Female,No,0,1
+Bachelors,2013,Bangalore,3,37,Female,No,5,0
+Masters,2017,New Delhi,2,35,Female,No,2,1
+Bachelors,2017,Bangalore,3,36,Male,No,5,0
+Masters,2013,New Delhi,3,41,Male,No,0,0
+Bachelors,2017,Bangalore,3,33,Male,No,2,0
+Bachelors,2018,Bangalore,3,38,Male,No,2,1
+Bachelors,2015,Bangalore,3,34,Male,No,5,0
+Bachelors,2012,Bangalore,3,34,Male,No,1,0
+Bachelors,2015,Pune,3,35,Male,Yes,5,0
+Bachelors,2012,Bangalore,3,39,Female,No,2,0
+Bachelors,2012,Bangalore,3,41,Male,No,3,0
+Bachelors,2018,Bangalore,3,34,Male,Yes,2,1
+Masters,2015,Pune,2,35,Female,No,1,0
+Bachelors,2012,Bangalore,3,33,Male,No,2,0
+Bachelors,2015,Bangalore,3,39,Male,No,3,0
+Masters,2017,New Delhi,2,35,Male,Yes,2,0
+Bachelors,2017,New Delhi,2,31,Female,No,0,0
+Bachelors,2016,Bangalore,3,34,Male,Yes,4,0
+Bachelors,2013,Bangalore,3,40,Female,Yes,5,0
+Bachelors,2016,New Delhi,3,31,Female,No,4,0
+Bachelors,2016,Pune,3,33,Male,No,3,0
+Bachelors,2013,Bangalore,3,32,Male,No,5,0
+Masters,2017,New Delhi,2,31,Male,No,4,1
+Bachelors,2014,Bangalore,3,39,Male,No,2,0
+Bachelors,2016,Bangalore,3,33,Male,No,1,1
+Bachelors,2014,Bangalore,3,40,Female,No,4,0
+Bachelors,2016,Bangalore,3,39,Male,No,0,1
+Bachelors,2017,Bangalore,3,35,Male,Yes,2,0
+Bachelors,2017,Bangalore,3,32,Male,No,1,0
+Bachelors,2015,Pune,2,34,Female,No,5,1
+Bachelors,2017,Bangalore,3,40,Female,No,4,0
+Masters,2017,Pune,3,33,Male,No,4,1
+Bachelors,2015,Pune,2,36,Female,No,0,1
+Masters,2018,Bangalore,3,39,Male,No,3,1
+Bachelors,2012,Bangalore,3,37,Female,No,5,1
+Bachelors,2018,Bangalore,3,36,Male,No,1,1
+Bachelors,2017,New Delhi,2,39,Male,No,2,0
+Bachelors,2015,Pune,2,35,Female,Yes,4,1
+Masters,2018,New Delhi,3,41,Male,No,2,1
+Bachelors,2012,Pune,3,31,Male,No,5,0
+Bachelors,2015,Pune,2,36,Female,Yes,0,1
+Bachelors,2016,Bangalore,3,32,Male,No,1,0
+Bachelors,2017,Bangalore,3,37,Male,No,2,1
+Bachelors,2015,Pune,2,39,Female,No,4,1
+Bachelors,2012,Pune,3,34,Male,No,2,0
+Bachelors,2012,Bangalore,3,35,Female,No,1,0
+Bachelors,2015,Bangalore,3,40,Female,No,2,0
+Bachelors,2016,Bangalore,3,39,Female,No,1,0
+Bachelors,2017,Bangalore,3,39,Female,No,1,0
+Bachelors,2015,Pune,3,41,Female,No,3,1
+Bachelors,2012,Pune,3,40,Male,No,2,0
+Bachelors,2012,Bangalore,1,36,Male,No,3,0
+Bachelors,2017,New Delhi,2,33,Female,No,2,0
+Masters,2014,New Delhi,3,33,Male,No,2,0
+Masters,2018,New Delhi,3,40,Male,No,2,1
+Bachelors,2015,Pune,2,34,Female,No,2,1
+Bachelors,2014,Bangalore,3,33,Female,No,1,0
+Masters,2015,New Delhi,1,34,Male,No,5,1
+Masters,2017,New Delhi,1,40,Male,No,5,0
+Bachelors,2014,Bangalore,3,32,Male,No,4,0
+Bachelors,2017,New Delhi,3,38,Male,No,2,0
+Bachelors,2015,Bangalore,3,38,Male,No,4,0
+Bachelors,2015,Bangalore,3,32,Male,No,2,0
+Bachelors,2013,Bangalore,3,31,Female,Yes,3,1
+Bachelors,2015,Bangalore,3,39,Female,No,0,0
+Masters,2017,Pune,2,41,Male,Yes,2,0
+Bachelors,2015,Pune,2,35,Female,Yes,2,1
+Bachelors,2016,Pune,3,39,Male,No,5,0
+Bachelors,2014,Bangalore,3,40,Female,No,0,0
+Bachelors,2016,Bangalore,3,41,Male,No,1,0
+Masters,2015,Pune,2,34,Female,No,1,0
+Bachelors,2016,Pune,2,37,Female,No,5,1
+Bachelors,2017,New Delhi,2,36,Male,No,2,0
+Bachelors,2015,Pune,3,37,Male,No,1,0
+Masters,2015,Pune,1,40,Female,No,1,0
+Bachelors,2018,New Delhi,3,39,Female,Yes,0,1
+Bachelors,2017,New Delhi,2,36,Female,No,5,0
+Bachelors,2015,Bangalore,2,32,Female,No,2,1
+PHD,2015,Pune,3,31,Female,No,1,0
+Bachelors,2012,Bangalore,3,31,Male,No,4,0
+Bachelors,2013,New Delhi,3,36,Female,No,5,0
+Bachelors,2014,Bangalore,3,35,Male,No,3,0
+Masters,2013,New Delhi,2,33,Female,No,2,1
+Bachelors,2014,Bangalore,3,39,Male,Yes,1,0
+Bachelors,2015,Pune,3,35,Female,No,1,1
+Bachelors,2013,Bangalore,3,38,Female,No,4,0
+Masters,2017,Bangalore,3,39,Female,No,4,1
+Bachelors,2012,Bangalore,3,41,Male,No,3,0
+Bachelors,2014,Pune,2,35,Male,No,2,1
+Bachelors,2016,Pune,3,31,Male,No,1,0
+Bachelors,2017,New Delhi,2,32,Female,No,4,1
+Bachelors,2016,New Delhi,3,34,Male,No,1,0
+Bachelors,2014,Bangalore,3,34,Male,Yes,3,0
+Masters,2014,New Delhi,3,36,Male,No,1,1
+Masters,2017,Bangalore,2,41,Male,No,4,0
+Masters,2017,Pune,2,39,Female,No,3,0
+Masters,2017,New Delhi,2,38,Male,No,5,0
+Bachelors,2012,Bangalore,3,37,Male,No,4,0
+Bachelors,2015,Bangalore,3,38,Male,No,3,1
+Bachelors,2014,Bangalore,3,37,Male,No,4,0
+Bachelors,2017,Bangalore,3,34,Male,No,5,0
+Bachelors,2014,Bangalore,1,39,Male,No,5,0
+Masters,2017,New Delhi,2,38,Female,No,2,1
+Masters,2017,New Delhi,3,33,Male,No,5,0
+Bachelors,2012,Bangalore,3,33,Female,No,5,0
+Bachelors,2012,Bangalore,3,34,Male,No,4,0
+Bachelors,2016,Pune,2,32,Female,No,0,1
+Bachelors,2012,Bangalore,3,33,Female,Yes,0,0
+Masters,2013,Pune,3,37,Male,No,2,0
+Masters,2015,New Delhi,3,37,Male,No,2,1
+Bachelors,2013,New Delhi,3,37,Male,No,2,0
+Bachelors,2017,Bangalore,3,40,Male,Yes,1,0
+Masters,2016,New Delhi,3,32,Male,No,1,0
+Bachelors,2016,Bangalore,3,36,Female,No,5,1
+Bachelors,2014,Bangalore,3,36,Male,No,4,0
+Bachelors,2014,Bangalore,3,36,Female,No,1,1
+Masters,2017,New Delhi,3,31,Male,No,1,1
+Bachelors,2015,Bangalore,3,38,Male,Yes,4,0
+Masters,2017,New Delhi,3,38,Male,No,2,0
+Bachelors,2012,Pune,3,39,Male,No,2,0
+Bachelors,2014,Bangalore,1,37,Male,No,5,0
+Bachelors,2015,Pune,2,36,Female,No,1,1
+Bachelors,2013,Bangalore,3,35,Male,No,2,1
+Bachelors,2013,Pune,3,40,Female,No,5,1
+Bachelors,2014,Pune,3,40,Male,No,5,0
+Bachelors,2017,Bangalore,3,35,Female,No,3,0
+Bachelors,2012,Bangalore,3,41,Female,No,5,0
+Bachelors,2015,Bangalore,3,32,Male,No,4,0
+Bachelors,2013,Bangalore,3,41,Male,No,2,0
+Bachelors,2016,New Delhi,3,40,Female,No,1,1
+Bachelors,2017,Pune,3,40,Male,No,3,0
+Bachelors,2017,Bangalore,3,34,Male,No,3,1
+Masters,2017,New Delhi,2,36,Male,Yes,2,0
+Bachelors,2017,New Delhi,3,33,Female,No,2,0
+Bachelors,2014,Pune,3,41,Male,No,2,0
+Bachelors,2014,Bangalore,3,40,Female,No,3,0
+Bachelors,2016,Bangalore,3,31,Male,No,1,1
+Masters,2015,Bangalore,3,32,Female,No,2,1
+Bachelors,2017,Pune,3,34,Female,No,1,1
+Bachelors,2016,New Delhi,3,32,Male,No,4,0
+Bachelors,2013,Bangalore,3,32,Female,No,4,0
+Bachelors,2014,Bangalore,3,38,Male,No,2,0
+Masters,2017,New Delhi,3,32,Male,No,1,1
+Bachelors,2015,New Delhi,3,40,Male,No,2,0
+Bachelors,2017,New Delhi,1,38,Female,No,1,1
+Bachelors,2017,Pune,3,37,Male,No,0,0
+PHD,2014,Bangalore,3,31,Male,No,1,0
+Bachelors,2014,Pune,3,34,Male,No,0,0
+Masters,2017,New Delhi,2,34,Female,No,2,1
+Bachelors,2013,Pune,2,37,Female,No,0,1
+Masters,2017,New Delhi,2,31,Male,No,1,0
+Bachelors,2017,Bangalore,3,35,Male,No,5,0
+PHD,2015,New Delhi,3,34,Female,No,4,0
+Bachelors,2012,Bangalore,1,32,Male,No,1,1
+Bachelors,2017,Pune,3,31,Male,Yes,0,0
+Bachelors,2015,Bangalore,3,36,Female,No,5,0
+Masters,2017,New Delhi,3,38,Female,No,2,0
+Bachelors,2015,Pune,3,34,Male,No,4,0
+Bachelors,2013,Bangalore,1,39,Female,No,1,1
+PHD,2013,Pune,3,35,Male,No,0,0
+Masters,2015,Pune,2,33,Male,No,4,1
+Masters,2014,Bangalore,3,35,Female,No,2,1
+Masters,2015,New Delhi,3,40,Male,No,2,0
+Bachelors,2015,Pune,2,32,Female,No,0,1
+Bachelors,2013,Bangalore,3,38,Male,No,1,0
+Bachelors,2012,Bangalore,3,32,Female,No,1,1
+Bachelors,2018,Bangalore,3,36,Male,No,3,1
+Bachelors,2012,Bangalore,3,35,Male,No,1,0
+Bachelors,2013,New Delhi,3,37,Female,No,0,0
+Bachelors,2015,Pune,2,35,Male,No,3,1
+Masters,2017,Pune,2,37,Female,No,1,0
+Masters,2017,Pune,2,39,Male,No,4,0
+Masters,2014,Pune,3,40,Male,No,4,1
+Bachelors,2012,Pune,2,41,Female,No,1,1
+Bachelors,2018,Pune,3,41,Male,Yes,0,1
+Masters,2017,Pune,2,39,Female,No,2,0
+Bachelors,2012,Bangalore,3,38,Female,No,5,0
+Bachelors,2013,Bangalore,3,33,Male,No,3,0
+Bachelors,2014,Bangalore,3,36,Female,No,3,0
+Bachelors,2017,Bangalore,3,41,Male,No,5,0
+PHD,2012,New Delhi,3,40,Female,No,5,0
+Bachelors,2013,Bangalore,3,31,Female,No,4,1
+Bachelors,2012,Bangalore,3,33,Female,No,1,0
+Bachelors,2015,Bangalore,3,39,Male,Yes,2,0
+Masters,2014,Pune,2,33,Female,No,5,0
+Bachelors,2015,Bangalore,3,35,Male,No,0,0
+Masters,2012,New Delhi,3,38,Male,No,2,0
+Bachelors,2016,Bangalore,3,36,Female,No,0,0
+Bachelors,2014,Pune,2,36,Female,No,2,1
+Bachelors,2015,Bangalore,1,35,Male,No,5,0
+Bachelors,2017,Pune,2,34,Female,No,5,1
+Bachelors,2015,Pune,2,41,Female,No,3,1
+Bachelors,2016,Pune,3,32,Female,No,3,1
+Bachelors,2017,Pune,2,41,Female,No,2,1
+Bachelors,2016,Bangalore,3,36,Male,No,0,0
+Bachelors,2017,Pune,2,39,Male,No,3,0
+Bachelors,2015,Bangalore,3,38,Male,Yes,2,0
+Bachelors,2014,Bangalore,3,34,Male,No,3,1
+Bachelors,2012,Bangalore,3,39,Female,No,5,0
+Bachelors,2017,Pune,3,36,Male,No,1,0
+Bachelors,2014,Bangalore,3,35,Male,No,1,0
+Masters,2018,Bangalore,3,31,Male,No,2,1
+Bachelors,2012,Bangalore,3,41,Female,No,4,0
+Bachelors,2017,Bangalore,3,35,Female,No,4,0
+Bachelors,2015,Bangalore,1,40,Male,No,2,0
+Bachelors,2018,Bangalore,3,33,Female,No,4,1
+Bachelors,2016,Bangalore,3,37,Female,No,0,0
+PHD,2018,Bangalore,3,36,Female,No,3,1
+Bachelors,2012,Bangalore,3,40,Male,No,0,0
+Bachelors,2017,New Delhi,2,36,Male,No,0,0
+Masters,2015,New Delhi,3,38,Female,No,0,0
+Bachelors,2014,New Delhi,2,31,Female,No,4,1
+Bachelors,2016,Pune,3,40,Male,No,4,0
+Bachelors,2017,Bangalore,3,37,Female,No,4,0
+Bachelors,2015,New Delhi,3,38,Female,No,0,0
+Masters,2017,New Delhi,2,35,Female,No,2,0
+PHD,2018,New Delhi,3,35,Female,No,0,1
+Bachelors,2012,Bangalore,3,38,Female,No,3,0
+Bachelors,2012,Pune,3,31,Female,No,5,0
+Masters,2016,New Delhi,3,33,Female,No,1,0
+Bachelors,2013,Pune,2,32,Female,No,1,1
+Bachelors,2017,Bangalore,1,39,Male,No,0,0
+Bachelors,2018,New Delhi,3,35,Female,No,2,1
+Bachelors,2014,New Delhi,3,38,Female,No,5,0
+Bachelors,2015,Bangalore,3,32,Male,No,0,0
+Bachelors,2017,Bangalore,3,34,Female,No,2,0
+Bachelors,2017,Bangalore,3,41,Male,No,1,0
+Masters,2012,Bangalore,3,40,Female,No,5,0
+Bachelors,2012,Pune,2,32,Male,No,1,1
+Bachelors,2013,Bangalore,3,35,Male,No,0,0
+PHD,2013,New Delhi,1,36,Female,No,3,0
+Bachelors,2013,Bangalore,3,40,Female,No,4,0
+Bachelors,2018,Pune,2,35,Female,No,2,1
+Masters,2017,New Delhi,2,37,Female,No,4,0
+Bachelors,2017,Bangalore,3,34,Male,No,3,0
+Bachelors,2012,Pune,3,36,Male,No,1,0
+Bachelors,2015,New Delhi,3,37,Male,No,4,0
+Bachelors,2014,Bangalore,3,39,Male,No,5,0
+Bachelors,2017,New Delhi,2,39,Female,No,0,0
+Masters,2018,New Delhi,3,38,Male,No,2,1
+Bachelors,2013,New Delhi,3,37,Female,No,1,0
+Bachelors,2012,New Delhi,2,33,Female,No,0,1
+PHD,2014,Bangalore,3,38,Female,No,3,0
+Masters,2017,New Delhi,2,40,Female,No,2,1
+Bachelors,2012,Bangalore,3,41,Male,No,5,0
+Bachelors,2013,Bangalore,2,38,Female,No,1,1
+Bachelors,2012,Bangalore,3,37,Male,No,4,0
+Bachelors,2014,Bangalore,3,39,Male,No,5,1
+Bachelors,2018,Bangalore,3,35,Male,No,1,1
+Masters,2017,New Delhi,3,39,Female,No,5,1
+Bachelors,2015,Pune,2,31,Female,No,1,1
+Bachelors,2012,Pune,3,33,Male,No,2,0
+Bachelors,2017,Pune,3,33,Male,No,2,0
+Bachelors,2013,Pune,3,32,Male,No,2,0
+Bachelors,2015,Pune,2,40,Female,No,4,1
+Bachelors,2013,New Delhi,3,38,Female,No,4,0
+Bachelors,2016,Bangalore,3,34,Male,Yes,2,0
+Bachelors,2016,Bangalore,1,39,Male,No,2,0
+Bachelors,2012,Bangalore,3,38,Male,No,2,0
+Masters,2017,New Delhi,2,31,Female,No,2,1
+Bachelors,2017,Bangalore,3,35,Female,No,5,0
+Bachelors,2013,Bangalore,3,31,Male,No,2,0
+Bachelors,2012,Pune,3,33,Male,No,1,0
+Bachelors,2015,Pune,2,37,Female,No,3,1
+Masters,2018,New Delhi,3,40,Female,No,2,1
+Bachelors,2014,Bangalore,3,38,Male,No,0,0
+Bachelors,2012,Bangalore,3,31,Male,Yes,5,0
+PHD,2014,Bangalore,3,39,Male,No,1,0
+Bachelors,2016,New Delhi,3,40,Male,No,0,0
+Bachelors,2017,Pune,3,36,Female,No,0,1
+Bachelors,2015,Bangalore,3,39,Female,No,3,1
+Bachelors,2012,Bangalore,3,39,Male,No,0,0
+Bachelors,2013,Bangalore,3,35,Female,No,0,0
+Masters,2013,New Delhi,3,35,Male,No,2,0
+Bachelors,2013,Bangalore,3,35,Male,No,5,0
+Masters,2017,Bangalore,3,34,Female,No,4,0
+Bachelors,2014,Bangalore,3,41,Male,No,4,0
+Bachelors,2017,Bangalore,3,35,Male,No,5,0
+Bachelors,2013,Bangalore,3,40,Male,No,1,0
+Masters,2017,Pune,3,31,Male,No,3,1
+Masters,2014,New Delhi,3,33,Male,No,3,0
+Bachelors,2017,Pune,2,33,Female,No,2,1
+Bachelors,2016,Bangalore,3,39,Female,No,5,0
+Bachelors,2016,Bangalore,3,41,Male,No,1,1
+Bachelors,2017,Bangalore,3,32,Male,No,5,0
+Bachelors,2014,Pune,2,39,Female,No,5,1
+Bachelors,2014,Bangalore,3,31,Male,No,1,0
+Bachelors,2012,Bangalore,3,40,Male,No,3,0
+Masters,2018,New Delhi,3,34,Male,No,2,1
+Bachelors,2018,New Delhi,3,37,Male,No,4,1
+Bachelors,2016,Bangalore,3,37,Female,No,0,0
+Bachelors,2014,Bangalore,3,36,Female,No,3,0
+Bachelors,2015,Bangalore,2,39,Female,No,0,1
+Bachelors,2014,Pune,3,37,Male,No,1,0
+Masters,2014,New Delhi,3,37,Male,No,2,0
+Masters,2017,New Delhi,3,32,Male,No,2,0
+Bachelors,2014,New Delhi,3,37,Male,No,3,0
+Bachelors,2017,Bangalore,3,36,Female,No,3,0
+Bachelors,2015,Pune,2,40,Female,No,2,1
+Bachelors,2014,Bangalore,3,40,Male,No,0,0
+Bachelors,2012,Pune,3,32,Male,No,3,0
+Bachelors,2012,Bangalore,3,37,Male,No,3,1
+Bachelors,2017,Pune,3,40,Female,No,1,1
+Bachelors,2014,Pune,3,40,Male,No,5,0
+Bachelors,2017,Bangalore,3,34,Female,Yes,0,0
+Bachelors,2012,Bangalore,3,37,Male,No,3,0
+Bachelors,2017,Bangalore,3,35,Male,No,3,0
+Bachelors,2017,Pune,3,37,Female,No,2,0
+Bachelors,2012,New Delhi,3,35,Female,No,2,0
+Bachelors,2014,Bangalore,3,31,Male,No,0,1
+Bachelors,2016,Bangalore,3,41,Male,No,4,0
+Masters,2017,New Delhi,3,37,Female,No,3,0
+Bachelors,2018,Pune,3,40,Male,No,0,1
+Bachelors,2018,Bangalore,1,36,Male,Yes,1,0
+PHD,2018,New Delhi,3,37,Female,No,2,1
+Bachelors,2014,Bangalore,3,40,Female,No,0,0
+Bachelors,2017,Bangalore,3,34,Male,No,3,0
+Bachelors,2018,Pune,3,37,Male,No,5,1
+Bachelors,2016,Pune,3,38,Male,No,0,0
+Bachelors,2017,Bangalore,2,37,Male,No,2,1
+Bachelors,2016,Pune,3,32,Male,No,1,1
+Bachelors,2016,Bangalore,3,31,Male,No,3,0
+Bachelors,2013,Bangalore,1,40,Male,No,2,0
+Bachelors,2017,Bangalore,3,40,Female,No,4,0
+Bachelors,2015,Bangalore,3,31,Male,No,1,0
+Masters,2017,Pune,2,36,Male,No,2,0
+Bachelors,2017,Bangalore,3,38,Male,Yes,2,0
+Bachelors,2014,Pune,3,37,Female,No,5,1
+Bachelors,2014,Pune,3,34,Female,No,2,1
+Bachelors,2013,Bangalore,3,41,Male,Yes,2,1
+Bachelors,2015,Pune,2,32,Female,No,3,1
+Bachelors,2015,Pune,3,34,Male,No,5,0
+PHD,2013,Bangalore,3,39,Male,No,2,1
+Masters,2013,New Delhi,2,32,Male,No,2,1
+Bachelors,2012,Bangalore,3,31,Female,No,3,0
+PHD,2016,New Delhi,3,40,Male,No,1,0
+Bachelors,2015,Bangalore,3,37,Female,No,0,0
+Masters,2017,New Delhi,3,40,Female,No,0,0
+Bachelors,2013,Bangalore,3,31,Male,No,1,0
+Bachelors,2017,Bangalore,3,32,Male,No,2,0
+Bachelors,2017,Bangalore,3,34,Female,Yes,1,0
+Masters,2013,Pune,2,41,Male,No,2,1
+Masters,2015,New Delhi,3,37,Male,No,2,0
+Bachelors,2015,Bangalore,3,40,Female,No,1,0
+Masters,2017,Pune,2,35,Male,No,2,0
+Bachelors,2012,Bangalore,3,39,Male,No,3,0
+Bachelors,2017,Pune,3,41,Male,No,4,0
+Bachelors,2015,Bangalore,3,36,Male,No,4,0
+Bachelors,2014,Bangalore,3,32,Male,No,5,0
+Bachelors,2013,Bangalore,3,41,Male,No,2,0
+Bachelors,2013,Bangalore,3,32,Male,No,0,0
+Bachelors,2017,Bangalore,3,36,Male,No,2,0
+Bachelors,2013,Bangalore,3,40,Male,No,4,0
+Bachelors,2018,Bangalore,3,32,Male,Yes,1,1
+Bachelors,2016,Bangalore,3,38,Male,No,1,0
+Bachelors,2018,Bangalore,3,41,Male,No,4,1
+Masters,2017,Pune,2,35,Male,No,3,1
+Bachelors,2016,Bangalore,3,36,Female,No,1,0
+Bachelors,2014,Bangalore,3,35,Female,No,4,0
+Bachelors,2016,Bangalore,3,31,Male,No,2,0
+PHD,2015,Pune,3,37,Male,No,2,0
+Bachelors,2013,Bangalore,3,41,Female,No,4,0
+Bachelors,2013,Bangalore,3,31,Male,No,0,0
+Bachelors,2017,New Delhi,2,36,Male,No,2,0
+Bachelors,2015,New Delhi,3,32,Male,No,1,0
+Bachelors,2017,Bangalore,3,34,Male,No,0,0
+Bachelors,2015,Bangalore,3,39,Female,No,0,0
+Bachelors,2014,Bangalore,3,33,Male,No,1,1
+Bachelors,2017,New Delhi,2,36,Male,No,3,0
+Bachelors,2016,Bangalore,1,34,Male,Yes,2,1
+Bachelors,2017,Pune,2,33,Male,No,1,0
+Bachelors,2012,Bangalore,3,38,Female,No,4,1
+Bachelors,2013,Bangalore,3,35,Male,No,3,1
+Bachelors,2017,Pune,3,31,Male,No,1,0
+Bachelors,2013,Pune,3,37,Male,No,2,0
+Bachelors,2012,Bangalore,3,32,Female,No,2,1
+Bachelors,2013,Pune,3,34,Male,Yes,5,0
+PHD,2013,Bangalore,2,41,Male,No,2,1
+Masters,2015,New Delhi,3,32,Male,No,0,1
+Bachelors,2013,Bangalore,3,39,Male,No,2,0
+Bachelors,2012,Bangalore,3,31,Male,Yes,0,1
+Bachelors,2017,New Delhi,2,41,Male,No,1,0
+Bachelors,2016,Bangalore,3,36,Male,No,2,0
+Bachelors,2017,Bangalore,2,38,Female,No,5,1
+Bachelors,2012,Bangalore,3,32,Male,No,5,0
+Bachelors,2018,Pune,3,35,Female,No,3,1
+Bachelors,2017,Bangalore,3,39,Male,No,2,0
+Masters,2017,New Delhi,2,36,Male,Yes,2,0
+Bachelors,2013,Pune,3,33,Male,No,4,0
+Bachelors,2013,Pune,3,32,Male,Yes,5,0
+Bachelors,2017,Bangalore,3,35,Male,No,1,1
+Bachelors,2015,Bangalore,3,36,Male,No,1,0
+Masters,2014,Pune,3,39,Male,No,4,0
+Bachelors,2016,Bangalore,3,40,Male,No,0,1
+Bachelors,2012,Bangalore,3,37,Male,No,3,0
+Masters,2015,Pune,1,38,Female,No,0,0
+Bachelors,2017,New Delhi,3,40,Male,No,1,0
+Bachelors,2013,Bangalore,3,34,Female,No,2,0
+Bachelors,2013,Bangalore,3,31,Male,Yes,4,0
+Bachelors,2014,New Delhi,3,40,Female,No,3,1
+Bachelors,2013,Bangalore,3,37,Male,No,2,0
+Bachelors,2012,New Delhi,3,33,Male,No,3,0
+Bachelors,2015,Bangalore,3,36,Male,Yes,4,0
+Bachelors,2014,Bangalore,3,35,Female,No,4,0
+Bachelors,2014,Bangalore,3,34,Male,No,5,0
+Bachelors,2013,Bangalore,3,35,Male,No,0,1
+Masters,2014,New Delhi,3,39,Male,No,2,0
+Bachelors,2015,Pune,3,35,Female,No,1,1
+Masters,2014,New Delhi,3,34,Male,No,5,0
+Bachelors,2017,Pune,2,32,Female,No,2,1
+Bachelors,2015,New Delhi,3,32,Female,No,2,0
+Bachelors,2014,Bangalore,3,33,Male,No,5,1
+Masters,2017,New Delhi,2,34,Male,No,2,1
+Masters,2016,Bangalore,3,35,Female,No,1,1
+Masters,2017,New Delhi,3,35,Male,Yes,2,0
+Bachelors,2014,Pune,2,38,Female,No,3,1
+Bachelors,2016,Bangalore,3,37,Male,No,0,0
+Bachelors,2013,Bangalore,3,38,Female,No,4,0
+Bachelors,2015,Bangalore,3,41,Male,No,0,0
+Masters,2017,Bangalore,3,40,Male,No,4,1
+Bachelors,2017,Bangalore,3,39,Female,No,3,0
+Bachelors,2017,Pune,2,32,Male,No,2,0
+Bachelors,2018,New Delhi,3,40,Male,Yes,4,1
+Bachelors,2016,Bangalore,3,40,Male,No,0,0
+Bachelors,2016,Bangalore,3,41,Female,No,1,1
+Bachelors,2015,Bangalore,3,38,Male,Yes,4,0
+Masters,2017,Pune,1,38,Male,No,0,1
+Bachelors,2018,Bangalore,3,41,Female,No,2,1
+Bachelors,2015,New Delhi,2,33,Female,No,4,1
+Bachelors,2012,Bangalore,3,41,Male,Yes,0,0
+Bachelors,2017,New Delhi,2,35,Female,No,5,0
+Bachelors,2013,Bangalore,3,36,Male,No,5,0
+Bachelors,2013,Pune,3,37,Male,No,1,0
+Bachelors,2013,New Delhi,1,37,Female,No,1,0
+Bachelors,2014,Bangalore,3,39,Male,No,5,0
+Bachelors,2017,Bangalore,3,38,Female,No,2,0
+Bachelors,2013,Pune,2,34,Female,No,1,1
+Bachelors,2017,Pune,2,33,Female,No,4,1
+Bachelors,2013,Bangalore,3,32,Female,No,1,0
+Masters,2014,Bangalore,3,38,Female,No,4,1
+Bachelors,2017,Bangalore,3,32,Male,No,5,0
+Masters,2016,New Delhi,3,41,Male,No,5,1
+Masters,2014,Pune,3,36,Female,No,2,0
+Bachelors,2017,New Delhi,3,34,Female,No,2,1
+Bachelors,2017,Bangalore,3,34,Male,Yes,0,0
+Bachelors,2016,Bangalore,3,35,Male,No,4,0
+Masters,2015,New Delhi,3,38,Male,No,1,0
+Bachelors,2016,Bangalore,3,32,Male,Yes,5,0
+Bachelors,2015,Pune,3,37,Female,No,2,1
+Bachelors,2017,Bangalore,2,32,Female,No,2,1
+Masters,2017,New Delhi,2,36,Male,No,3,0
+Bachelors,2012,Bangalore,3,41,Male,No,3,0
+Bachelors,2017,Pune,3,37,Female,No,5,0
+Bachelors,2018,Bangalore,3,34,Female,No,3,1
+Bachelors,2016,Pune,3,31,Male,No,0,1
+Bachelors,2017,Bangalore,3,41,Male,No,1,0
+Bachelors,2015,New Delhi,3,35,Female,No,3,0
+Bachelors,2015,Bangalore,3,37,Female,No,5,0
+Bachelors,2016,Bangalore,3,34,Male,No,4,0
+Masters,2017,Bangalore,2,40,Female,Yes,2,0
+Bachelors,2015,Bangalore,3,39,Male,No,5,1
+Bachelors,2013,Pune,3,37,Male,No,2,0
+Bachelors,2015,Pune,2,36,Female,Yes,1,1
+Bachelors,2014,Bangalore,3,35,Female,No,2,0
+Masters,2013,Bangalore,3,37,Female,No,3,1
+Bachelors,2013,New Delhi,3,41,Female,No,1,0
+Masters,2017,New Delhi,2,40,Male,No,2,0
+Bachelors,2016,Bangalore,3,37,Male,No,2,0
+Masters,2013,New Delhi,3,40,Female,No,2,1
+Bachelors,2015,Bangalore,3,39,Male,No,5,0
+Masters,2015,Pune,2,33,Female,No,4,0
+Bachelors,2012,Bangalore,3,36,Male,No,1,1
+Bachelors,2012,Bangalore,3,36,Male,No,5,0
+Bachelors,2015,Bangalore,3,38,Male,No,3,0
+Bachelors,2017,New Delhi,2,37,Female,No,5,0
+Masters,2017,New Delhi,3,34,Female,No,2,0
+Bachelors,2013,Bangalore,3,31,Male,No,2,1
+Bachelors,2013,Bangalore,3,38,Male,No,5,0
+Bachelors,2017,Bangalore,3,36,Male,No,3,0
+Bachelors,2012,Bangalore,3,40,Male,No,1,0
+Bachelors,2017,Bangalore,3,41,Male,No,5,1
+Bachelors,2015,Bangalore,3,31,Female,No,4,0
+Bachelors,2017,New Delhi,3,41,Male,No,2,0
+Bachelors,2015,New Delhi,3,31,Female,No,3,0
+Bachelors,2017,Pune,3,31,Female,No,0,1
+Bachelors,2017,New Delhi,2,37,Male,No,0,0
+Bachelors,2012,Pune,3,39,Male,No,0,0
+Bachelors,2014,Bangalore,3,38,Male,No,3,0
+Bachelors,2013,Pune,3,40,Female,No,2,1
+Bachelors,2013,Pune,3,36,Male,No,1,0
+Bachelors,2016,Bangalore,3,41,Male,No,3,0
+Bachelors,2018,Bangalore,3,32,Female,No,2,1
+Masters,2018,Bangalore,3,40,Female,No,3,1
+Bachelors,2012,Bangalore,3,39,Female,No,2,0
+Bachelors,2014,New Delhi,3,33,Male,No,3,0
+Bachelors,2012,Bangalore,3,32,Male,No,4,0
+Bachelors,2018,Bangalore,3,41,Male,No,5,1
+Bachelors,2016,Bangalore,3,36,Male,No,2,0
+Bachelors,2016,Bangalore,3,31,Male,No,0,0
+Bachelors,2014,Bangalore,3,37,Male,No,4,0
+Bachelors,2014,Bangalore,3,33,Male,No,5,1
+Masters,2018,Pune,3,31,Male,No,2,1
+Bachelors,2017,New Delhi,3,35,Female,No,5,0
+Bachelors,2015,Pune,1,32,Female,No,5,1
+Masters,2017,New Delhi,3,41,Female,No,2,0
+Masters,2017,New Delhi,2,36,Female,No,1,0
+Masters,2017,Pune,3,35,Male,No,1,0
+Masters,2017,New Delhi,3,35,Male,No,1,1
+Bachelors,2015,New Delhi,3,33,Male,No,1,0
+Bachelors,2014,Bangalore,3,38,Female,No,4,0
+Bachelors,2015,New Delhi,2,33,Female,No,3,1
+Masters,2018,New Delhi,3,31,Female,Yes,2,1
+PHD,2015,Bangalore,3,31,Male,No,3,0
+Bachelors,2013,Bangalore,3,37,Male,No,5,0
+Bachelors,2014,Bangalore,3,32,Male,No,1,0
+Bachelors,2017,Bangalore,3,33,Male,No,3,0
+Bachelors,2014,Bangalore,3,37,Male,No,5,0
+Bachelors,2012,Bangalore,3,32,Male,No,3,0
+Bachelors,2015,Pune,3,40,Female,Yes,2,1
+Bachelors,2014,Pune,1,40,Female,No,1,1
+Masters,2013,New Delhi,2,32,Male,No,2,1
+Masters,2017,Bangalore,2,39,Female,No,2,1
+PHD,2016,New Delhi,3,41,Male,No,1,0
+PHD,2014,New Delhi,3,32,Female,No,0,0
+Bachelors,2017,Bangalore,3,38,Male,No,0,1
+Masters,2017,New Delhi,2,31,Female,Yes,2,0
+Bachelors,2018,Bangalore,3,38,Male,Yes,3,1
+Bachelors,2016,Bangalore,3,32,Male,No,4,0
+Bachelors,2017,Pune,2,35,Female,No,5,1
+Bachelors,2013,Bangalore,3,34,Male,No,5,0
+Bachelors,2018,Bangalore,3,38,Male,Yes,1,1
+Bachelors,2014,Pune,1,36,Female,No,1,1
+Bachelors,2015,Bangalore,3,34,Female,Yes,2,0
+Masters,2015,New Delhi,3,39,Female,No,2,0
+Masters,2017,New Delhi,1,40,Female,No,0,0
+Bachelors,2016,Bangalore,3,38,Male,Yes,1,0
+Bachelors,2015,Pune,3,35,Male,No,3,0
+Bachelors,2014,Pune,2,31,Male,No,3,1
+Bachelors,2017,Pune,3,41,Male,No,2,0
+Bachelors,2017,Bangalore,3,35,Female,No,3,0
+Bachelors,2018,Bangalore,3,33,Male,No,5,1
+Bachelors,2017,New Delhi,2,33,Male,No,5,0
+Bachelors,2016,New Delhi,3,31,Female,Yes,4,0
+Masters,2013,New Delhi,3,35,Male,No,4,0
+Bachelors,2016,Bangalore,3,37,Female,No,1,0
+Bachelors,2015,Bangalore,3,31,Male,No,5,0
+Bachelors,2012,Bangalore,3,35,Male,No,1,1
+Bachelors,2014,Bangalore,3,32,Male,No,3,0
+Bachelors,2015,Bangalore,3,32,Female,No,0,0
+Bachelors,2017,Bangalore,3,40,Female,No,5,0
+Bachelors,2012,Bangalore,3,34,Male,No,5,0
+Bachelors,2014,Pune,3,37,Male,No,4,0
+PHD,2015,Bangalore,3,40,Male,No,3,0
+Masters,2017,New Delhi,2,34,Female,No,2,1
+Bachelors,2015,Pune,2,32,Female,No,3,1
+Bachelors,2013,Bangalore,3,33,Male,No,1,0
+Bachelors,2015,Bangalore,3,38,Male,No,3,1
+Masters,2017,New Delhi,2,41,Male,No,3,1
+Masters,2017,New Delhi,1,36,Female,No,0,0
+Bachelors,2016,Bangalore,3,33,Male,No,1,0
+Bachelors,2014,Pune,3,31,Male,No,5,0
+Bachelors,2013,Pune,2,34,Female,No,3,1
+Bachelors,2017,Bangalore,3,31,Male,No,1,0
+Bachelors,2016,New Delhi,2,36,Female,No,4,1
+Bachelors,2013,Bangalore,3,38,Male,No,5,0
+Bachelors,2015,Pune,2,39,Female,Yes,1,1
+Bachelors,2014,Pune,3,31,Male,No,3,0
+Bachelors,2015,New Delhi,3,40,Male,No,3,1
+Bachelors,2013,Bangalore,3,39,Male,No,0,0
+Bachelors,2015,Bangalore,3,32,Female,No,4,0
+Bachelors,2014,Bangalore,3,34,Male,No,1,0
+Masters,2015,New Delhi,3,38,Male,No,1,0
+Bachelors,2014,Bangalore,1,39,Male,No,2,0
+Bachelors,2014,Bangalore,3,39,Male,No,5,0
+Bachelors,2016,Bangalore,3,33,Male,No,1,0
+Bachelors,2018,Pune,2,34,Female,No,4,1
+Bachelors,2017,Pune,3,38,Male,Yes,1,0
+Masters,2017,New Delhi,2,33,Male,No,2,0
+Bachelors,2014,Bangalore,3,41,Male,No,5,0
+Masters,2017,Pune,1,39,Male,No,0,0
+Masters,2013,Pune,3,39,Male,No,2,0
+Bachelors,2014,Bangalore,3,41,Male,No,5,0
+Bachelors,2012,Bangalore,3,40,Male,No,4,0
+Bachelors,2014,Bangalore,3,36,Male,No,0,0
+Bachelors,2015,Bangalore,3,34,Male,No,0,0
+Bachelors,2013,Bangalore,3,32,Male,No,5,1
+Bachelors,2015,Bangalore,3,31,Male,No,4,0
+Bachelors,2012,Bangalore,3,36,Male,Yes,0,0
+Masters,2017,Pune,2,35,Male,No,1,1
+Bachelors,2017,Bangalore,3,32,Male,No,2,0
+Bachelors,2017,Pune,3,33,Male,Yes,5,0
+Bachelors,2016,Bangalore,3,34,Male,No,2,0
+Bachelors,2017,Bangalore,3,39,Male,No,3,0
+Bachelors,2018,Bangalore,3,38,Male,No,0,1
+Bachelors,2012,Pune,2,35,Female,No,1,1
+Bachelors,2015,Pune,2,40,Female,Yes,5,1
+Bachelors,2017,Pune,3,41,Male,No,3,0
+Bachelors,2016,Bangalore,1,33,Female,Yes,3,0
+Masters,2017,New Delhi,1,40,Male,No,0,0
+Bachelors,2018,Bangalore,3,33,Female,No,3,1
+Bachelors,2015,Bangalore,3,38,Male,No,1,1
+Masters,2017,Bangalore,2,32,Male,No,2,0
+Bachelors,2014,Pune,3,32,Male,Yes,2,0
+Bachelors,2015,New Delhi,3,32,Female,No,2,0
+Bachelors,2016,Pune,2,37,Female,No,2,1
+Bachelors,2015,Bangalore,3,40,Male,No,5,0
+Bachelors,2016,Bangalore,3,38,Male,No,1,0
+PHD,2018,New Delhi,3,33,Female,No,4,1
+Masters,2017,New Delhi,2,40,Male,No,4,0
+Masters,2017,New Delhi,2,35,Male,No,2,0
+Bachelors,2016,Bangalore,3,33,Male,No,3,0
+Bachelors,2017,Bangalore,3,37,Male,No,4,0
+Bachelors,2013,Bangalore,3,38,Male,No,0,0
+Bachelors,2018,Bangalore,3,32,Male,No,2,1
+Bachelors,2017,Bangalore,3,40,Female,No,2,0
+Bachelors,2015,New Delhi,3,33,Female,No,2,0
+Bachelors,2016,Bangalore,3,38,Male,No,2,1
+Bachelors,2013,Bangalore,3,34,Male,No,5,0
+Bachelors,2017,New Delhi,3,38,Female,No,4,0
+Bachelors,2018,Pune,2,31,Female,No,3,1
+Bachelors,2014,Pune,3,32,Female,No,4,0
+Bachelors,2013,Bangalore,3,35,Male,Yes,1,0
+Bachelors,2014,Bangalore,3,35,Male,No,0,1
+Bachelors,2012,Bangalore,3,33,Female,No,4,0
+Bachelors,2012,New Delhi,3,41,Female,No,0,0
+Bachelors,2015,Pune,1,31,Female,No,3,1
+Bachelors,2016,Bangalore,3,34,Male,No,3,0
+Masters,2017,New Delhi,2,40,Female,No,2,0
+Masters,2016,Bangalore,3,32,Male,No,1,1
+Bachelors,2012,Bangalore,3,36,Male,No,5,0
+Bachelors,2014,Pune,2,40,Female,No,3,1
+Bachelors,2012,Pune,3,31,Male,No,3,0
+Bachelors,2014,Bangalore,1,34,Female,No,5,0
+Masters,2013,New Delhi,3,41,Female,Yes,2,1
+Masters,2017,New Delhi,2,32,Male,No,2,0
+Bachelors,2016,Bangalore,3,41,Male,No,2,0
+Masters,2014,New Delhi,3,33,Male,No,3,0
+Bachelors,2013,Bangalore,3,33,Female,No,0,1
+Bachelors,2013,Pune,3,39,Female,No,2,0
+Masters,2018,Pune,3,40,Male,No,2,1
+Bachelors,2017,New Delhi,3,34,Male,No,3,0
+Bachelors,2016,Pune,3,41,Male,Yes,5,0
+Bachelors,2015,Pune,3,37,Male,No,5,1
+Masters,2017,Bangalore,3,32,Female,No,4,1
+Bachelors,2017,Bangalore,3,41,Male,No,3,0
+Bachelors,2018,Bangalore,3,34,Female,Yes,2,1
+Masters,2017,Bangalore,3,38,Male,No,5,1
+Bachelors,2017,Bangalore,3,40,Female,No,3,0
+Masters,2017,Pune,3,35,Male,No,2,0
+Bachelors,2015,Pune,3,31,Male,No,1,0
+Bachelors,2016,Pune,3,39,Male,No,4,0
+Bachelors,2018,Bangalore,3,39,Male,No,1,1
+Bachelors,2018,Bangalore,3,32,Male,No,3,1
+Bachelors,2015,Bangalore,3,38,Male,No,5,0
+Bachelors,2015,Bangalore,3,35,Male,No,3,0
+Bachelors,2013,Bangalore,1,38,Male,No,4,0
+Bachelors,2012,New Delhi,3,32,Male,No,1,1
+Bachelors,2014,Pune,2,37,Female,No,5,1
+Bachelors,2015,Pune,3,35,Male,No,0,0
+Bachelors,2017,Pune,3,41,Female,No,4,1
+Masters,2015,Bangalore,3,36,Male,No,0,0
+Bachelors,2017,Bangalore,3,35,Male,No,2,0
+Masters,2017,New Delhi,2,36,Male,No,2,1
+Masters,2017,Bangalore,1,34,Male,No,1,0
+Bachelors,2015,Bangalore,3,36,Male,No,3,0
+Bachelors,2017,Pune,2,33,Male,No,3,0
+Masters,2018,New Delhi,3,38,Male,No,2,1
+PHD,2013,New Delhi,3,35,Female,Yes,3,1
+Bachelors,2015,New Delhi,2,37,Female,No,3,1
+Bachelors,2017,Bangalore,3,31,Male,No,0,0
+Bachelors,2017,Pune,2,40,Female,No,2,1
+Bachelors,2015,Pune,3,32,Female,No,3,1
+Bachelors,2015,Bangalore,3,35,Male,Yes,2,0
+Bachelors,2012,Bangalore,3,38,Male,Yes,0,0
+Bachelors,2015,Pune,2,36,Female,No,0,1
+Masters,2015,Pune,3,36,Male,No,3,0
+Masters,2014,New Delhi,3,32,Female,No,5,0
+Bachelors,2018,Pune,2,37,Female,No,0,1
+Bachelors,2018,Pune,3,35,Female,No,0,1
+Bachelors,2015,Pune,1,36,Female,No,4,1
+Bachelors,2015,New Delhi,2,34,Female,No,5,1
+Masters,2017,New Delhi,2,35,Female,No,0,0
+Masters,2017,New Delhi,2,38,Female,No,5,0
+Bachelors,2015,Pune,2,39,Female,No,5,1
+Bachelors,2012,Pune,2,32,Female,No,5,1
+Bachelors,2015,Bangalore,3,39,Male,No,2,0
+Bachelors,2015,Bangalore,3,39,Male,No,2,1
+Masters,2017,Pune,2,37,Male,No,2,0
+Bachelors,2015,Bangalore,3,32,Female,No,5,0
+Bachelors,2017,New Delhi,2,38,Male,No,0,0
+Bachelors,2012,Pune,2,36,Female,No,5,1
+Masters,2016,Bangalore,1,37,Male,No,2,1
+Bachelors,2017,Pune,3,32,Male,No,4,0
+Masters,2017,New Delhi,3,37,Male,No,2,0
+Bachelors,2016,New Delhi,3,33,Male,No,2,0
+Bachelors,2016,Bangalore,3,39,Male,No,4,0
+Bachelors,2012,Bangalore,3,35,Male,No,1,1
+Masters,2015,Pune,3,39,Male,No,5,0
+Bachelors,2015,Bangalore,3,34,Male,No,0,0
+Masters,2017,New Delhi,2,33,Male,No,4,0
+Bachelors,2012,Bangalore,3,33,Male,No,1,0
+Bachelors,2015,New Delhi,3,31,Male,No,0,0
+PHD,2016,Pune,3,31,Female,No,4,0
+Bachelors,2015,Bangalore,3,37,Female,No,4,0
+Bachelors,2012,Bangalore,3,33,Male,No,0,0
+Bachelors,2017,Pune,3,31,Male,No,0,0
+Bachelors,2017,Bangalore,3,41,Female,No,2,0
+Masters,2017,Pune,2,39,Male,No,2,0
+Masters,2013,New Delhi,3,32,Male,No,2,0
+Bachelors,2016,Pune,3,37,Male,No,3,0
+Bachelors,2014,Bangalore,3,37,Male,No,1,0
+Bachelors,2017,Pune,2,34,Female,No,3,1
+Bachelors,2017,New Delhi,2,31,Male,No,2,0
+Bachelors,2014,Pune,2,34,Female,Yes,1,1
+Bachelors,2012,Bangalore,3,38,Female,No,5,0
+Bachelors,2013,Bangalore,3,37,Female,No,1,0
+Bachelors,2015,Pune,1,34,Female,No,3,1
+Bachelors,2015,Bangalore,3,33,Male,No,2,0
+Bachelors,2016,Bangalore,3,37,Male,No,4,0
+Bachelors,2016,Bangalore,3,41,Male,No,4,0
+Bachelors,2012,Bangalore,1,38,Female,No,1,0
+Bachelors,2016,Pune,3,40,Male,No,5,0
+Bachelors,2017,New Delhi,3,33,Female,No,1,1
+Bachelors,2016,New Delhi,3,33,Male,No,1,0
+Masters,2013,New Delhi,3,37,Male,Yes,2,0
+Bachelors,2017,New Delhi,2,36,Female,No,2,0
+Bachelors,2012,Bangalore,3,36,Female,No,5,0
+Bachelors,2015,Bangalore,3,41,Male,No,1,0
+Masters,2014,New Delhi,3,40,Male,No,5,0
+Bachelors,2016,Bangalore,3,36,Female,No,0,0
+Masters,2017,Bangalore,2,41,Male,Yes,2,1
+Bachelors,2015,Pune,3,33,Male,No,5,0
+Masters,2017,New Delhi,2,37,Female,No,2,0
+Bachelors,2017,New Delhi,2,33,Male,No,0,0
+Bachelors,2014,Bangalore,3,40,Female,No,4,0
+Masters,2018,New Delhi,3,36,Male,No,2,1
+Bachelors,2018,Bangalore,3,40,Male,Yes,3,1
+Masters,2018,Bangalore,3,40,Male,No,2,1
+Bachelors,2014,Bangalore,3,34,Male,No,3,0
+Bachelors,2012,Pune,3,39,Male,No,5,0
+Bachelors,2017,Pune,2,33,Male,No,1,1
+Bachelors,2016,Bangalore,3,37,Male,No,2,0
+Bachelors,2012,New Delhi,3,40,Male,No,3,0
+Bachelors,2018,Bangalore,3,38,Male,No,1,1
+Bachelors,2016,Bangalore,3,40,Male,Yes,1,0
+Bachelors,2014,New Delhi,3,38,Female,No,0,0
+Bachelors,2016,Bangalore,3,34,Male,Yes,1,0
+Masters,2016,New Delhi,3,37,Female,No,3,1
+Bachelors,2015,Bangalore,3,40,Male,No,5,0
+Bachelors,2015,New Delhi,3,40,Female,No,1,0
+Masters,2016,Bangalore,3,37,Male,No,2,1
+Bachelors,2016,Pune,2,37,Female,No,3,1
+Bachelors,2013,Pune,3,32,Male,No,1,0
+Masters,2017,New Delhi,1,35,Male,No,5,0
+Bachelors,2016,Bangalore,1,38,Male,No,3,0
+Bachelors,2017,Pune,3,34,Female,No,1,0
+Bachelors,2014,Bangalore,3,32,Male,No,2,1
+Bachelors,2013,Bangalore,3,37,Male,No,5,0
+Bachelors,2017,New Delhi,2,37,Male,No,4,0
+Bachelors,2014,Bangalore,3,35,Male,No,2,0
+Bachelors,2016,Bangalore,3,40,Male,No,0,0
+Bachelors,2012,Bangalore,3,40,Male,Yes,2,0
+Bachelors,2015,Bangalore,3,39,Female,No,3,1
+Masters,2013,New Delhi,3,41,Female,No,2,0
+Bachelors,2015,Bangalore,3,34,Female,No,4,0
+Bachelors,2012,New Delhi,3,34,Female,No,4,0
+Bachelors,2013,Pune,2,36,Male,No,2,1
+Masters,2016,New Delhi,3,39,Female,No,1,0
+Bachelors,2014,New Delhi,3,41,Male,No,5,0
+Bachelors,2015,Bangalore,3,40,Male,No,0,0
+Bachelors,2017,Bangalore,3,34,Female,No,5,0
+Bachelors,2013,Bangalore,3,31,Male,No,2,0
+Bachelors,2012,Pune,3,40,Male,No,3,0
+Bachelors,2013,Pune,3,32,Male,No,5,0
+Bachelors,2018,Pune,3,38,Male,No,3,1
+Bachelors,2016,Bangalore,3,40,Male,No,3,0
+PHD,2013,Bangalore,3,41,Male,No,4,0
+Bachelors,2014,Bangalore,3,36,Female,No,0,0
+Bachelors,2015,Pune,2,33,Female,Yes,3,1
+Bachelors,2016,New Delhi,3,37,Male,No,3,0
+Bachelors,2015,Pune,3,38,Male,No,4,0
+Bachelors,2017,Bangalore,3,32,Male,No,4,0
+Bachelors,2017,Pune,3,33,Male,No,1,0
+Bachelors,2015,Bangalore,3,38,Male,No,5,0
+Bachelors,2015,Pune,3,40,Female,No,5,1
+Bachelors,2014,Bangalore,3,35,Male,Yes,0,0
+Masters,2016,New Delhi,3,37,Female,No,5,0
+Bachelors,2016,Bangalore,3,37,Male,Yes,2,0
+Bachelors,2015,Bangalore,3,36,Male,No,2,0
+Bachelors,2017,Bangalore,3,33,Female,No,4,1
+Bachelors,2014,Pune,2,36,Female,No,3,1
+Bachelors,2016,Pune,3,32,Male,No,3,0
+Bachelors,2017,Bangalore,3,35,Female,No,1,1
+Bachelors,2014,Pune,2,34,Female,No,2,1
+Masters,2017,Pune,2,40,Male,No,5,0
+Bachelors,2016,Bangalore,3,37,Female,No,4,0
+Bachelors,2015,Bangalore,1,36,Male,No,1,0
+Bachelors,2012,Pune,3,41,Female,No,1,0
+Bachelors,2016,Pune,3,36,Male,No,0,0
+Bachelors,2017,Bangalore,3,31,Female,No,2,0
+Bachelors,2017,Pune,3,31,Male,No,3,0
+Bachelors,2014,Pune,3,33,Male,No,2,0
+Bachelors,2017,Bangalore,3,35,Male,Yes,0,0
+PHD,2016,New Delhi,3,34,Male,No,1,0
+Bachelors,2014,Bangalore,3,39,Female,No,4,0
+Masters,2015,Bangalore,3,31,Male,No,1,1
+Bachelors,2015,Pune,3,32,Female,No,0,1
+Bachelors,2017,Bangalore,3,33,Male,No,0,1
+Bachelors,2014,Bangalore,3,34,Male,Yes,1,0
+Masters,2014,Pune,3,39,Male,No,2,0
+Bachelors,2017,New Delhi,2,41,Female,No,2,1
+Bachelors,2017,New Delhi,2,34,Male,No,2,0
+Bachelors,2013,Bangalore,3,36,Female,No,5,0
+Bachelors,2015,Pune,2,39,Female,No,5,1
+Bachelors,2012,Pune,3,37,Male,No,5,0
+Bachelors,2016,Bangalore,3,36,Male,No,4,0
+Bachelors,2014,New Delhi,3,38,Female,No,1,0
+Bachelors,2017,Bangalore,3,38,Female,No,3,0
+Masters,2016,New Delhi,3,37,Female,No,2,1
+Bachelors,2012,Bangalore,3,34,Male,No,2,0
+Bachelors,2015,Bangalore,3,31,Male,No,2,0
+Bachelors,2015,Pune,2,32,Female,No,2,1
+Masters,2018,New Delhi,3,35,Male,No,2,1
+Bachelors,2017,Bangalore,3,31,Male,Yes,2,0
+Bachelors,2015,Bangalore,1,32,Male,Yes,0,1
+Bachelors,2015,Bangalore,3,31,Female,No,5,0
+Bachelors,2018,Bangalore,3,37,Male,No,5,1
+PHD,2018,New Delhi,3,40,Male,No,3,1
+Bachelors,2015,Bangalore,1,41,Male,No,1,0
+Bachelors,2017,Pune,3,34,Male,No,5,0
+Bachelors,2014,Bangalore,3,36,Male,Yes,3,0
+Bachelors,2013,Pune,3,35,Male,No,1,0
+Masters,2017,New Delhi,3,38,Female,No,3,0
+Bachelors,2017,Bangalore,3,33,Male,No,1,0
+Bachelors,2014,Bangalore,3,38,Female,No,2,0
+Bachelors,2018,Bangalore,3,38,Male,No,1,1
+Bachelors,2017,Pune,2,40,Male,No,4,0
+Bachelors,2013,New Delhi,3,39,Male,No,5,0
+Bachelors,2014,New Delhi,3,33,Female,No,4,0
+Bachelors,2015,Pune,3,32,Female,No,3,1
+Bachelors,2013,Bangalore,3,39,Male,No,2,0
+Bachelors,2015,Bangalore,3,38,Female,No,4,0
+Bachelors,2013,Bangalore,3,38,Male,No,2,0
+Bachelors,2017,Bangalore,3,35,Male,No,0,0
+Bachelors,2017,Pune,3,31,Female,No,0,1
+Bachelors,2017,Bangalore,3,41,Male,No,5,0
+Bachelors,2013,New Delhi,3,38,Female,No,4,1
+Bachelors,2016,Bangalore,3,40,Male,Yes,1,0
+Bachelors,2018,Bangalore,3,36,Female,No,2,1
+PHD,2013,New Delhi,3,36,Male,No,3,1
+Bachelors,2014,Pune,3,41,Male,No,4,0
+Bachelors,2014,Bangalore,3,35,Male,Yes,1,0
+Bachelors,2017,Bangalore,3,38,Male,No,5,0
+Bachelors,2017,New Delhi,2,41,Female,No,0,0
+Bachelors,2012,Bangalore,1,34,Male,No,0,0
+Bachelors,2016,Bangalore,3,39,Female,No,3,1
+Bachelors,2014,Bangalore,3,37,Male,No,5,0
+Bachelors,2015,Pune,2,39,Female,Yes,0,1
+Bachelors,2013,Bangalore,3,31,Male,No,2,1
+Masters,2012,New Delhi,3,34,Female,No,3,0
+Bachelors,2015,Bangalore,3,39,Male,No,1,0
+Bachelors,2014,Pune,2,38,Female,No,3,1
+Bachelors,2012,Bangalore,3,34,Male,No,1,0
+Bachelors,2016,Bangalore,3,31,Female,No,2,0
+Bachelors,2016,Bangalore,3,39,Female,No,0,0
+Bachelors,2013,Bangalore,3,31,Female,No,1,0
+Bachelors,2012,Bangalore,3,36,Male,No,1,0
+Bachelors,2017,New Delhi,3,37,Male,No,0,0
+Bachelors,2015,Pune,1,38,Female,No,1,1
+PHD,2017,Pune,3,41,Male,No,2,0
+Bachelors,2018,Bangalore,3,32,Male,No,4,1
+Bachelors,2018,Pune,3,35,Male,No,0,1
+Bachelors,2017,Bangalore,3,35,Male,No,1,0
+Bachelors,2013,Bangalore,3,32,Male,No,1,0
+Bachelors,2015,Bangalore,3,31,Male,No,1,1
+Bachelors,2015,Bangalore,3,41,Male,No,4,0
+Bachelors,2012,Bangalore,3,33,Male,Yes,0,0
+Bachelors,2012,New Delhi,2,38,Female,No,1,1
+Masters,2012,Bangalore,3,39,Female,No,3,1
+Bachelors,2015,Bangalore,1,36,Female,No,2,0
+Masters,2017,Bangalore,2,31,Male,No,5,0
+Masters,2017,New Delhi,2,39,Female,No,2,1
+Masters,2017,New Delhi,3,41,Male,No,3,1
+PHD,2018,New Delhi,3,33,Female,No,0,1
+Bachelors,2015,Bangalore,3,38,Male,No,1,0
+Bachelors,2017,Pune,2,31,Male,No,0,0
+Bachelors,2014,Bangalore,3,34,Male,No,4,0
+Bachelors,2017,Bangalore,3,40,Male,No,2,0
+Bachelors,2012,Bangalore,3,36,Male,No,1,0
+Bachelors,2015,Bangalore,3,36,Female,No,2,0
+Bachelors,2017,New Delhi,2,41,Female,No,4,0
+Bachelors,2017,Bangalore,3,37,Male,No,3,0
+Bachelors,2017,New Delhi,3,33,Male,No,5,0
+Bachelors,2017,New Delhi,3,41,Female,No,4,0
+Bachelors,2017,Bangalore,3,37,Female,No,2,0
+Bachelors,2017,Pune,3,38,Male,Yes,5,0
+Bachelors,2015,Bangalore,3,34,Male,No,2,1
+Bachelors,2017,Pune,3,37,Female,No,0,0
+Bachelors,2014,Bangalore,3,34,Male,No,0,1
+Bachelors,2012,Pune,3,32,Male,No,1,0
+Masters,2012,New Delhi,3,35,Female,No,4,1
+Bachelors,2013,Pune,3,36,Male,No,3,0
+Bachelors,2015,Bangalore,3,34,Female,No,2,0
+Bachelors,2014,Bangalore,3,37,Female,No,3,0
+Bachelors,2016,Bangalore,3,40,Female,Yes,4,0
+Bachelors,2014,Pune,3,33,Male,No,4,0
+Bachelors,2016,Bangalore,3,39,Female,No,4,0
+Bachelors,2012,Bangalore,3,40,Male,No,4,0
+Bachelors,2013,Bangalore,1,34,Male,No,4,1
+Bachelors,2016,Pune,3,40,Male,No,5,0
+PHD,2013,Bangalore,3,32,Male,No,5,0
+Bachelors,2012,Bangalore,3,33,Male,No,1,0
+Bachelors,2017,New Delhi,1,31,Female,No,4,1
+Masters,2016,New Delhi,3,41,Female,No,4,0
+Bachelors,2016,Bangalore,3,34,Male,No,4,0
+Bachelors,2016,Bangalore,3,39,Male,No,7,0
+Bachelors,2014,Bangalore,3,35,Male,No,5,0
+Bachelors,2016,Pune,3,38,Female,No,7,0
+Bachelors,2016,Bangalore,3,33,Male,No,6,0
+Bachelors,2014,Pune,3,33,Male,No,6,0
+Bachelors,2012,Bangalore,3,35,Male,No,5,0
+PHD,2013,New Delhi,3,40,Male,No,5,0
+Bachelors,2012,Bangalore,3,40,Female,No,5,0
+Bachelors,2017,Bangalore,3,39,Male,No,5,0
+Bachelors,2017,Bangalore,3,33,Female,No,6,0
+Bachelors,2014,Bangalore,3,32,Female,No,5,0
+Masters,2014,Bangalore,3,40,Female,No,7,1
+Bachelors,2017,New Delhi,2,33,Male,No,6,0
+Masters,2016,New Delhi,1,31,Female,No,5,1
+Bachelors,2013,Bangalore,3,35,Female,No,5,0
+Bachelors,2014,Bangalore,3,39,Male,No,7,1
+Masters,2018,Bangalore,3,39,Female,No,6,1
+Masters,2017,Pune,2,38,Female,No,2,0
+Bachelors,2012,Bangalore,3,38,Male,No,7,1
+Masters,2017,New Delhi,2,40,Female,Yes,2,0
+Bachelors,2018,Bangalore,3,38,Male,No,6,1
+Bachelors,2013,Bangalore,3,34,Male,No,6,0
+Bachelors,2012,Bangalore,1,35,Male,No,7,0
+Masters,2013,New Delhi,1,41,Male,No,5,0
+PHD,2014,New Delhi,2,37,Female,No,5,0
+Bachelors,2015,Pune,3,34,Male,Yes,7,0
+Bachelors,2014,Bangalore,3,35,Male,Yes,5,0
+Bachelors,2013,Bangalore,1,38,Male,No,6,0
+Bachelors,2016,Bangalore,3,38,Female,No,7,0
+Bachelors,2015,Pune,2,41,Female,No,7,0
+Bachelors,2018,Bangalore,3,34,Male,No,5,1
+Bachelors,2017,Pune,2,22,Male,No,0,0
+Bachelors,2018,Bangalore,2,26,Female,No,4,1
+Bachelors,2012,Bangalore,3,22,Male,No,0,0
+Bachelors,2017,New Delhi,3,25,Female,No,3,0
+Bachelors,2016,Bangalore,3,29,Male,No,0,0
+Bachelors,2017,New Delhi,3,36,Female,No,0,0
+Bachelors,2014,Bangalore,3,37,Female,No,1,0
+Bachelors,2013,New Delhi,2,34,Female,No,4,1
+Bachelors,2012,Pune,3,34,Female,No,2,1
+Bachelors,2012,Bangalore,3,25,Female,No,3,1
+Bachelors,2012,Bangalore,3,31,Male,No,0,0
+Bachelors,2015,New Delhi,3,36,Female,No,2,0
+Bachelors,2016,Bangalore,3,31,Male,Yes,5,0
+Bachelors,2015,Bangalore,3,34,Male,No,4,0
+Masters,2014,New Delhi,3,28,Male,Yes,2,1
+Bachelors,2014,Bangalore,3,28,Male,No,2,0
+Bachelors,2015,Bangalore,3,31,Male,No,1,0
+Bachelors,2017,Bangalore,3,35,Male,No,5,0
+Bachelors,2012,Bangalore,1,28,Female,Yes,1,0
+Bachelors,2018,Bangalore,3,32,Female,No,2,1
+Bachelors,2013,Bangalore,3,23,Male,Yes,1,1
+Masters,2018,Pune,3,27,Male,No,5,1
+Bachelors,2017,Pune,3,25,Male,No,3,0
+Masters,2017,New Delhi,2,31,Female,No,2,0
+PHD,2018,New Delhi,3,34,Male,No,0,1
+Bachelors,2016,Bangalore,3,36,Female,No,2,0
+PHD,2017,New Delhi,3,40,Male,No,3,0
+Masters,2012,New Delhi,3,34,Female,No,2,0
+Bachelors,2018,Bangalore,3,37,Male,No,2,1
+Bachelors,2012,Bangalore,3,38,Male,No,3,0
+Bachelors,2017,New Delhi,2,22,Female,No,0,0
+Bachelors,2016,Pune,2,36,Female,No,0,1
+Bachelors,2013,New Delhi,2,35,Female,No,1,1
+Bachelors,2012,New Delhi,3,22,Female,No,0,0
+Bachelors,2016,Bangalore,3,22,Male,No,0,0
+Bachelors,2012,Bangalore,3,29,Male,No,4,0
+Bachelors,2017,Bangalore,3,34,Male,No,5,0
+Bachelors,2017,Bangalore,2,23,Male,No,1,0
+Bachelors,2014,Pune,2,32,Male,No,3,1
+Bachelors,2012,Pune,2,26,Female,No,4,1
+Masters,2017,Bangalore,3,38,Male,No,2,0
+Bachelors,2014,Pune,3,37,Male,No,4,0
+Bachelors,2017,New Delhi,2,25,Female,No,3,0
+Bachelors,2018,Pune,2,36,Female,No,5,1
+Bachelors,2016,Bangalore,3,26,Female,No,4,0
+Bachelors,2018,Pune,2,39,Female,No,4,1
+Bachelors,2016,Bangalore,3,24,Male,No,2,1
+Masters,2018,Pune,3,39,Male,No,2,1
+Masters,2018,New Delhi,3,39,Female,No,2,1
+Bachelors,2017,New Delhi,2,27,Female,No,5,0
+Bachelors,2013,Bangalore,3,36,Male,No,5,1
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,Bangalore,3,28,Female,No,3,0
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,3,23,Male,No,1,0
+Bachelors,2013,Bangalore,3,30,Female,No,5,0
+Bachelors,2014,Bangalore,3,22,Male,No,0,0
+Bachelors,2014,Pune,3,27,Male,No,5,0
+Masters,2017,New Delhi,3,32,Male,No,2,0
+Masters,2014,Pune,1,33,Female,No,1,0
+Masters,2017,New Delhi,3,26,Male,No,4,1
+Bachelors,2013,Pune,3,25,Female,Yes,3,1
+Masters,2017,New Delhi,2,23,Male,No,1,1
+Bachelors,2012,Pune,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,33,Male,No,5,0
+Masters,2018,Bangalore,3,30,Male,Yes,2,1
+Masters,2017,New Delhi,2,27,Female,No,5,0
+Bachelors,2012,Pune,2,31,Female,No,5,1
+Masters,2018,New Delhi,3,23,Female,No,1,1
+Bachelors,2015,Bangalore,3,30,Male,No,2,0
+Bachelors,2015,Pune,2,32,Female,No,2,1
+Bachelors,2013,New Delhi,3,26,Female,Yes,4,0
+Masters,2017,New Delhi,2,35,Male,No,2,0
+Bachelors,2016,Bangalore,1,30,Male,No,4,1
+Bachelors,2012,Bangalore,3,37,Male,No,4,1
+Bachelors,2017,Bangalore,1,34,Male,Yes,0,0
+Bachelors,2012,Bangalore,3,38,Female,No,0,0
+Masters,2013,New Delhi,2,22,Male,Yes,0,1
+Bachelors,2015,Pune,1,22,Female,No,0,1
+Masters,2015,Pune,2,33,Female,No,2,1
+Bachelors,2015,Bangalore,3,32,Male,No,1,0
+Masters,2015,Pune,2,34,Female,No,2,0
+Bachelors,2017,Bangalore,3,36,Female,No,1,0
+Bachelors,2015,Bangalore,3,32,Male,No,1,0
+Bachelors,2017,Bangalore,3,28,Male,Yes,3,0
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2013,Pune,3,35,Male,No,1,0
+Bachelors,2014,Pune,3,33,Male,No,4,0
+Masters,2013,Pune,3,22,Female,Yes,0,1
+Bachelors,2014,Pune,3,27,Male,No,5,1
+Masters,2018,New Delhi,3,23,Female,No,1,1
+Bachelors,2013,Bangalore,3,34,Female,Yes,2,0
+Masters,2017,Pune,2,23,Male,No,1,1
+Bachelors,2012,Pune,3,36,Male,No,4,0
+PHD,2018,New Delhi,3,28,Male,No,4,1
+PHD,2013,Bangalore,3,28,Male,No,4,0
+Bachelors,2016,Bangalore,3,33,Female,No,4,0
+Bachelors,2013,Bangalore,3,39,Male,No,3,0
+Bachelors,2015,New Delhi,3,25,Female,Yes,3,0
+Bachelors,2014,Pune,3,32,Male,No,2,0
+Bachelors,2015,Pune,3,23,Female,No,1,1
+Masters,2018,New Delhi,3,29,Male,No,2,1
+Bachelors,2013,Pune,2,24,Male,No,2,1
+Bachelors,2012,Bangalore,3,36,Female,No,2,1
+Bachelors,2018,Bangalore,3,40,Male,No,4,1
+Bachelors,2012,New Delhi,3,38,Female,No,1,0
+Bachelors,2014,Bangalore,3,22,Male,No,0,0
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Bachelors,2012,Bangalore,3,37,Male,No,5,0
+Bachelors,2018,Pune,3,40,Male,No,3,1
+Bachelors,2018,Bangalore,3,32,Male,Yes,0,1
+Bachelors,2012,New Delhi,3,28,Female,No,1,0
+Bachelors,2016,Pune,3,29,Male,Yes,5,0
+Bachelors,2013,Pune,3,25,Male,No,3,0
+PHD,2013,Bangalore,3,35,Male,No,3,1
+Bachelors,2015,Bangalore,3,28,Male,No,0,1
+Bachelors,2012,Bangalore,3,39,Male,No,3,0
+Bachelors,2012,Pune,1,35,Male,No,1,0
+Bachelors,2017,Bangalore,3,37,Male,No,2,0
+Masters,2018,Pune,3,40,Female,No,2,1
+Bachelors,2018,Bangalore,3,23,Male,No,1,1
+Bachelors,2013,Pune,3,32,Male,No,2,0
+PHD,2018,New Delhi,3,37,Male,No,3,1
+Bachelors,2015,Bangalore,3,23,Female,No,1,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,36,Female,No,3,1
+Bachelors,2013,Bangalore,3,40,Female,No,3,0
+Bachelors,2015,New Delhi,3,22,Male,No,0,0
+Bachelors,2015,Bangalore,3,30,Male,No,0,0
+Bachelors,2014,Bangalore,3,30,Male,No,1,0
+Bachelors,2015,Pune,1,34,Female,No,3,1
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2013,Bangalore,1,27,Female,No,5,0
+Bachelors,2017,Pune,2,27,Female,No,5,1
+Bachelors,2015,Bangalore,3,35,Female,No,1,1
+Bachelors,2014,New Delhi,3,33,Female,Yes,4,0
+Bachelors,2012,Bangalore,3,37,Male,No,4,0
+Bachelors,2014,New Delhi,3,40,Female,No,3,0
+Bachelors,2015,Pune,2,25,Female,No,3,1
+Bachelors,2017,Pune,2,34,Male,No,2,0
+Bachelors,2017,New Delhi,3,40,Male,No,1,0
+Masters,2018,New Delhi,3,34,Male,No,2,1
+Bachelors,2013,Pune,3,33,Male,No,5,0
+Bachelors,2016,Bangalore,3,22,Female,No,0,0
+Bachelors,2015,Pune,2,36,Female,No,1,1
+Bachelors,2012,Bangalore,3,38,Male,No,2,1
+Bachelors,2013,Pune,3,25,Female,No,3,0
+Bachelors,2017,Bangalore,3,37,Male,No,3,1
+Bachelors,2016,Bangalore,3,25,Female,No,3,0
+Bachelors,2015,Pune,2,40,Female,Yes,0,1
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2015,Pune,1,23,Female,No,1,0
+Bachelors,2014,Bangalore,3,22,Male,No,0,1
+Masters,2017,New Delhi,2,34,Male,Yes,2,0
+Masters,2017,New Delhi,3,35,Female,No,2,0
+Bachelors,2014,Pune,3,23,Male,No,1,0
+Bachelors,2015,Bangalore,3,29,Male,No,2,1
+Bachelors,2015,Pune,3,32,Female,No,1,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,28,Male,No,3,0
+Masters,2015,Pune,2,24,Female,No,2,0
+Bachelors,2017,Bangalore,3,33,Male,No,4,0
+PHD,2016,New Delhi,3,22,Male,No,0,0
+Masters,2015,Pune,2,39,Female,No,2,0
+Masters,2018,New Delhi,3,30,Female,Yes,2,1
+Bachelors,2014,Bangalore,3,38,Female,No,5,1
+Bachelors,2012,New Delhi,3,36,Female,No,4,0
+Bachelors,2012,Pune,2,38,Male,No,5,0
+Bachelors,2013,Bangalore,3,24,Male,Yes,2,0
+Bachelors,2016,Bangalore,3,28,Male,No,1,0
+Bachelors,2015,Bangalore,3,35,Female,No,0,1
+Bachelors,2013,New Delhi,3,23,Female,No,1,0
+Masters,2017,New Delhi,2,23,Female,No,1,1
+Bachelors,2013,Bangalore,3,37,Male,No,5,0
+Masters,2016,New Delhi,3,24,Male,No,2,1
+Bachelors,2014,Pune,3,33,Male,Yes,4,0
+Bachelors,2015,Bangalore,3,38,Female,No,5,0
+Bachelors,2015,Pune,3,40,Male,Yes,0,0
+Bachelors,2014,Bangalore,3,34,Male,No,4,0
+Masters,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2016,Pune,3,25,Male,No,3,0
+Bachelors,2016,Pune,3,24,Female,No,2,0
+Bachelors,2018,Bangalore,3,35,Male,Yes,5,1
+PHD,2013,New Delhi,3,27,Male,No,5,0
+Masters,2013,New Delhi,3,30,Female,No,3,0
+Bachelors,2015,Bangalore,3,26,Female,No,4,1
+Bachelors,2017,Bangalore,3,40,Male,No,0,0
+Masters,2017,Pune,2,27,Female,No,5,1
+Bachelors,2016,Pune,3,38,Male,Yes,0,0
+Bachelors,2014,New Delhi,3,34,Female,No,5,0
+Masters,2017,Pune,2,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,38,Male,No,4,0
+Bachelors,2014,Pune,1,37,Male,No,1,0
+Bachelors,2015,Bangalore,3,22,Male,No,0,0
+Bachelors,2014,New Delhi,3,29,Female,No,2,1
+Bachelors,2014,Pune,1,37,Female,No,4,1
+Bachelors,2016,Pune,3,23,Male,No,1,0
+Bachelors,2012,New Delhi,3,34,Female,No,2,0
+Bachelors,2017,Bangalore,3,28,Male,No,2,0
+Bachelors,2012,Pune,3,24,Male,Yes,2,0
+Masters,2017,Bangalore,2,35,Female,No,0,0
+Bachelors,2015,Bangalore,3,30,Male,No,2,0
+Bachelors,2018,Bangalore,3,33,Male,No,4,1
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Bachelors,2016,Bangalore,3,32,Male,No,4,0
+Bachelors,2014,Pune,3,36,Female,No,5,0
+Bachelors,2012,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2012,Bangalore,1,35,Male,No,4,0
+PHD,2012,New Delhi,3,25,Male,No,3,0
+Masters,2013,Bangalore,2,29,Male,No,1,1
+Bachelors,2012,Bangalore,3,36,Female,No,3,0
+Bachelors,2013,Bangalore,3,30,Male,No,1,0
+Bachelors,2017,Pune,2,37,Female,No,4,1
+Bachelors,2016,Bangalore,3,40,Male,No,0,1
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,32,Male,No,4,0
+Bachelors,2018,Pune,3,34,Male,No,0,1
+Bachelors,2014,Pune,3,29,Male,No,3,0
+Bachelors,2012,Bangalore,3,23,Female,No,1,1
+Bachelors,2017,Pune,3,23,Male,No,1,0
+Bachelors,2013,Bangalore,3,25,Female,No,3,0
+Bachelors,2012,New Delhi,1,31,Female,No,3,0
+Masters,2017,New Delhi,2,23,Male,No,1,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+PHD,2015,New Delhi,2,39,Female,No,5,0
+Bachelors,2016,Bangalore,3,33,Female,No,1,1
+Bachelors,2013,Bangalore,3,23,Male,No,1,0
+Masters,2017,New Delhi,2,34,Female,No,4,0
+Bachelors,2015,Pune,2,37,Female,No,1,1
+Bachelors,2012,Bangalore,3,23,Male,No,1,0
+Bachelors,2017,New Delhi,3,27,Male,No,5,0
+Masters,2017,Pune,2,38,Female,No,2,0
+Bachelors,2014,Bangalore,3,27,Female,No,5,0
+Bachelors,2016,Bangalore,3,22,Male,No,0,0
+Masters,2015,Pune,2,26,Female,No,4,1
+Bachelors,2012,Bangalore,3,40,Male,No,3,0
+Bachelors,2016,Bangalore,3,33,Female,No,3,0
+Bachelors,2014,Bangalore,3,31,Male,No,0,0
+Bachelors,2017,Pune,3,33,Male,No,4,0
+Bachelors,2015,New Delhi,3,30,Male,No,5,0
+Bachelors,2015,New Delhi,3,33,Female,No,5,1
+Masters,2017,New Delhi,3,33,Female,No,0,1
+Bachelors,2016,Pune,3,22,Male,No,0,0
+Bachelors,2012,Pune,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,36,Male,No,4,0
+Bachelors,2017,New Delhi,2,36,Female,No,1,0
+Bachelors,2014,Pune,3,31,Female,No,2,0
+Bachelors,2013,Bangalore,2,25,Male,No,3,1
+Bachelors,2012,Pune,1,31,Male,No,4,0
+Masters,2015,Pune,2,39,Female,No,0,0
+Masters,2015,Bangalore,3,26,Male,No,4,1
+Bachelors,2017,Bangalore,2,25,Female,No,3,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,New Delhi,3,35,Female,No,0,0
+Bachelors,2013,Pune,2,28,Male,No,5,0
+Bachelors,2012,Bangalore,3,32,Female,No,0,0
+Masters,2017,New Delhi,2,22,Male,No,0,1
+Bachelors,2014,Pune,3,36,Female,No,5,1
+Bachelors,2015,Bangalore,3,38,Male,No,1,0
+Bachelors,2014,Bangalore,3,39,Female,No,1,0
+Masters,2017,New Delhi,2,25,Female,No,3,1
+Bachelors,2016,Pune,3,27,Male,No,5,0
+Masters,2014,Pune,3,38,Male,Yes,2,0
+Bachelors,2012,New Delhi,3,22,Female,No,0,0
+Bachelors,2013,Bangalore,3,33,Male,No,2,0
+Bachelors,2013,Pune,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,37,Male,No,5,0
+Bachelors,2018,Pune,3,28,Male,Yes,0,1
+Masters,2017,Pune,3,32,Male,Yes,2,0
+PHD,2016,New Delhi,3,33,Male,No,0,1
+Bachelors,2014,New Delhi,3,32,Male,No,5,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,1
+Bachelors,2016,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2012,Pune,2,35,Female,No,2,1
+PHD,2013,Bangalore,3,40,Male,No,1,0
+Bachelors,2017,New Delhi,2,34,Female,No,4,0
+Bachelors,2016,New Delhi,3,39,Female,No,0,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Masters,2015,Pune,2,29,Female,No,2,0
+Bachelors,2013,Bangalore,3,29,Male,No,4,0
+Bachelors,2015,Pune,2,23,Female,Yes,1,1
+Bachelors,2015,Pune,3,32,Male,No,0,0
+Bachelors,2014,Pune,3,28,Male,Yes,4,0
+Masters,2013,New Delhi,2,32,Male,Yes,2,1
+Bachelors,2012,New Delhi,3,32,Female,No,0,0
+Bachelors,2013,Bangalore,3,38,Male,No,0,0
+PHD,2017,Pune,3,30,Male,No,5,0
+PHD,2015,New Delhi,3,31,Male,No,3,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,1
+Bachelors,2013,Bangalore,3,37,Female,No,4,0
+Masters,2017,New Delhi,2,27,Male,No,5,1
+Bachelors,2013,New Delhi,3,25,Female,No,3,0
+Bachelors,2015,Pune,2,22,Female,No,0,1
+Bachelors,2018,Bangalore,3,38,Male,No,2,1
+Bachelors,2015,New Delhi,3,22,Male,No,0,0
+Bachelors,2017,Pune,3,38,Male,No,2,0
+PHD,2015,New Delhi,1,38,Male,No,5,0
+Bachelors,2016,New Delhi,2,26,Female,No,4,1
+Masters,2017,New Delhi,2,31,Male,No,4,0
+Masters,2014,New Delhi,3,28,Male,No,5,0
+PHD,2017,New Delhi,3,34,Female,No,3,0
+Masters,2013,Bangalore,3,31,Male,No,2,0
+Bachelors,2014,New Delhi,3,26,Female,No,4,0
+Bachelors,2013,Pune,3,40,Female,No,1,1
+Bachelors,2016,Bangalore,3,31,Male,No,0,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Bachelors,2018,Pune,3,32,Female,No,1,1
+Bachelors,2012,Bangalore,3,33,Female,No,5,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,40,Male,No,0,0
+Masters,2013,New Delhi,3,31,Male,No,2,1
+Bachelors,2015,Bangalore,3,36,Male,No,1,0
+Bachelors,2014,Bangalore,3,31,Male,No,5,0
+Bachelors,2015,Pune,3,22,Male,No,0,0
+Bachelors,2016,Bangalore,3,34,Female,No,0,0
+PHD,2018,New Delhi,3,38,Female,No,5,1
+Bachelors,2015,Bangalore,3,23,Male,Yes,1,0
+PHD,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,34,Male,No,1,0
+Bachelors,2012,Bangalore,3,39,Male,No,3,0
+Bachelors,2018,Bangalore,3,24,Male,Yes,2,1
+Bachelors,2015,Pune,3,37,Female,No,1,1
+PHD,2013,New Delhi,3,23,Male,No,1,0
+Bachelors,2018,Bangalore,3,36,Male,No,3,1
+Bachelors,2014,New Delhi,3,23,Male,No,1,0
+Bachelors,2012,Pune,3,31,Male,No,3,0
+Bachelors,2015,Bangalore,3,22,Male,No,0,0
+Bachelors,2015,Pune,2,24,Female,No,2,1
+Bachelors,2018,Pune,2,28,Female,No,4,1
+Bachelors,2014,Pune,3,33,Male,No,3,0
+Bachelors,2018,Bangalore,3,35,Female,No,2,1
+Bachelors,2012,New Delhi,3,30,Female,Yes,1,0
+Bachelors,2014,Bangalore,3,28,Female,No,3,0
+Bachelors,2015,Bangalore,3,22,Male,Yes,0,0
+Bachelors,2014,Bangalore,3,38,Male,No,3,0
+Bachelors,2014,Pune,3,39,Male,No,4,0
+PHD,2012,Bangalore,1,38,Male,No,5,0
+Bachelors,2014,Bangalore,3,22,Female,No,0,1
+Bachelors,2014,New Delhi,3,36,Female,No,5,0
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Pune,1,32,Male,No,2,0
+Bachelors,2017,New Delhi,2,39,Female,No,2,0
+Bachelors,2015,Pune,2,36,Male,No,5,0
+Bachelors,2018,Bangalore,3,34,Male,Yes,5,1
+Bachelors,2015,Bangalore,3,28,Male,No,1,0
+Bachelors,2018,Bangalore,3,36,Female,Yes,1,1
+PHD,2015,New Delhi,3,22,Female,No,0,0
+Bachelors,2014,New Delhi,1,28,Female,No,5,0
+Bachelors,2016,Pune,2,27,Female,No,5,1
+Bachelors,2014,Bangalore,1,39,Female,No,4,0
+Bachelors,2012,Bangalore,3,31,Male,No,0,0
+Bachelors,2013,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2012,Bangalore,3,31,Male,No,3,0
+Bachelors,2015,Pune,2,33,Female,No,2,1
+Bachelors,2017,Pune,2,38,Female,No,1,1
+Bachelors,2014,Pune,3,38,Male,No,2,0
+Bachelors,2012,Pune,3,32,Male,No,3,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Masters,2017,Pune,2,33,Female,No,2,0
+Bachelors,2015,Bangalore,3,34,Female,No,2,0
+Bachelors,2018,Pune,3,36,Male,Yes,1,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Masters,2017,Pune,2,27,Male,No,5,0
+Bachelors,2017,New Delhi,2,40,Female,No,5,0
+Masters,2012,Bangalore,3,31,Female,No,4,0
+Bachelors,2014,Bangalore,3,22,Male,No,0,0
+Masters,2017,New Delhi,2,22,Male,No,0,1
+Bachelors,2016,New Delhi,3,26,Female,No,4,0
+Bachelors,2017,New Delhi,3,28,Female,No,1,1
+Bachelors,2014,Bangalore,3,38,Male,Yes,5,0
+Masters,2015,Pune,3,31,Male,No,0,0
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2015,Pune,2,25,Male,No,3,1
+PHD,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,40,Male,No,1,0
+Bachelors,2018,Pune,2,34,Female,No,4,1
+Bachelors,2016,Bangalore,3,32,Male,No,0,0
+Bachelors,2014,Pune,3,37,Male,No,1,0
+Bachelors,2015,Bangalore,3,33,Male,No,3,1
+Bachelors,2016,Pune,3,27,Male,No,5,0
+Bachelors,2012,New Delhi,3,36,Male,No,3,0
+Bachelors,2013,Bangalore,3,30,Female,No,4,0
+Masters,2017,Pune,2,26,Female,No,4,0
+Bachelors,2012,Bangalore,3,23,Male,Yes,1,0
+Masters,2015,Pune,2,31,Female,No,2,0
+Bachelors,2013,Bangalore,3,22,Male,Yes,0,0
+Masters,2017,New Delhi,2,24,Female,No,2,1
+Bachelors,2016,Bangalore,3,37,Female,Yes,4,0
+Masters,2018,New Delhi,3,35,Male,No,2,1
+Bachelors,2013,Bangalore,3,22,Male,No,0,1
+Bachelors,2012,Pune,3,35,Male,No,5,0
+Bachelors,2014,New Delhi,3,30,Female,No,3,0
+Bachelors,2014,Bangalore,3,30,Male,No,0,0
+Bachelors,2014,Pune,3,29,Male,No,3,0
+Masters,2017,Bangalore,3,36,Male,No,4,1
+Bachelors,2014,Bangalore,3,37,Male,No,4,0
+Bachelors,2016,Pune,3,40,Male,No,2,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Masters,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2017,Bangalore,3,38,Male,No,3,0
+Bachelors,2014,Bangalore,3,31,Male,No,3,1
+Bachelors,2014,Bangalore,3,22,Female,No,0,0
+Bachelors,2012,Pune,3,34,Male,No,0,0
+Bachelors,2015,New Delhi,3,31,Female,No,0,0
+Bachelors,2012,Bangalore,3,39,Female,No,3,0
+Masters,2018,New Delhi,3,33,Female,No,2,1
+Bachelors,2015,Bangalore,3,33,Male,No,4,0
+Bachelors,2012,Bangalore,3,38,Male,No,4,0
+Bachelors,2017,Pune,2,22,Female,No,0,1
+Bachelors,2014,Pune,2,32,Female,No,0,1
+Bachelors,2014,Pune,3,34,Male,No,5,0
+Bachelors,2014,Bangalore,1,31,Female,No,5,0
+Bachelors,2016,Bangalore,3,23,Male,No,1,0
+Bachelors,2013,Pune,2,39,Female,No,1,1
+Bachelors,2017,New Delhi,3,26,Male,No,4,0
+Bachelors,2013,Pune,2,33,Female,Yes,4,1
+Bachelors,2013,Bangalore,3,27,Female,No,5,0
+PHD,2018,New Delhi,3,24,Male,No,2,1
+Bachelors,2017,Bangalore,3,38,Male,No,1,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,27,Female,No,5,0
+Bachelors,2015,Bangalore,3,23,Male,No,1,0
+Bachelors,2014,New Delhi,3,26,Female,No,4,0
+Bachelors,2016,Bangalore,3,31,Male,No,5,0
+Bachelors,2017,Bangalore,3,32,Female,No,3,0
+Bachelors,2015,Pune,2,36,Female,No,3,1
+Bachelors,2017,Bangalore,3,28,Male,No,0,0
+Bachelors,2017,New Delhi,2,31,Male,No,3,0
+Masters,2017,New Delhi,2,36,Female,No,3,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,1
+Bachelors,2017,Bangalore,3,28,Male,No,3,1
+Bachelors,2015,Pune,3,39,Female,No,2,1
+Bachelors,2013,Bangalore,3,23,Female,No,1,0
+Bachelors,2014,Bangalore,3,32,Male,No,1,0
+Masters,2013,New Delhi,3,33,Female,No,2,0
+Bachelors,2017,New Delhi,3,39,Female,No,4,0
+Masters,2017,Bangalore,2,24,Female,No,2,0
+Bachelors,2016,Pune,3,33,Male,No,2,0
+Bachelors,2016,Pune,2,29,Female,No,4,1
+Masters,2017,Pune,3,24,Female,No,2,1
+Masters,2015,Pune,3,27,Female,No,5,1
+Masters,2013,New Delhi,2,35,Female,No,2,1
+Bachelors,2015,Pune,2,28,Female,No,2,1
+Bachelors,2016,Bangalore,3,22,Male,No,0,0
+Bachelors,2013,Bangalore,3,39,Male,No,5,1
+Bachelors,2014,Bangalore,3,36,Female,No,3,1
+Bachelors,2017,New Delhi,2,40,Female,No,3,0
+Bachelors,2012,New Delhi,3,35,Female,No,5,0
+Bachelors,2016,Bangalore,3,33,Male,No,4,0
+PHD,2018,Bangalore,3,33,Male,No,2,1
+Bachelors,2012,Bangalore,3,23,Male,No,1,0
+Bachelors,2014,Bangalore,3,28,Male,No,2,1
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,26,Female,No,4,0
+Bachelors,2014,Bangalore,3,33,Male,No,3,0
+Bachelors,2016,Bangalore,3,35,Male,No,3,0
+Bachelors,2013,Bangalore,3,33,Male,No,3,1
+Bachelors,2013,Pune,3,36,Female,No,0,1
+Bachelors,2015,New Delhi,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,39,Female,No,5,0
+Bachelors,2013,Bangalore,3,28,Male,No,5,0
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Bachelors,2012,Bangalore,3,36,Female,No,4,0
+Bachelors,2016,Bangalore,3,33,Male,No,0,0
+Bachelors,2013,Pune,1,33,Female,No,0,1
+Masters,2017,Pune,2,30,Male,Yes,2,1
+Masters,2012,New Delhi,3,27,Male,No,5,1
+Bachelors,2015,Bangalore,3,33,Male,Yes,4,0
+Bachelors,2016,Pune,2,35,Female,No,4,1
+Bachelors,2014,Pune,2,40,Female,No,0,1
+Bachelors,2017,Pune,2,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,38,Male,No,2,0
+Bachelors,2017,New Delhi,2,40,Male,No,5,0
+Bachelors,2014,Bangalore,3,29,Male,Yes,0,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,40,Male,No,4,0
+Masters,2017,New Delhi,2,25,Female,No,3,1
+Bachelors,2016,Pune,2,39,Female,No,3,1
+Bachelors,2017,New Delhi,2,22,Male,No,0,1
+PHD,2015,Pune,2,35,Female,No,0,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,New Delhi,2,25,Female,No,3,1
+Bachelors,2015,Bangalore,3,29,Female,No,1,0
+Masters,2017,New Delhi,1,37,Male,No,0,0
+Bachelors,2014,Bangalore,3,35,Male,No,1,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Masters,2018,New Delhi,3,26,Male,No,4,1
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,31,Male,No,0,0
+Bachelors,2014,Bangalore,3,34,Male,No,5,0
+Masters,2018,New Delhi,3,27,Female,Yes,5,1
+Bachelors,2016,Pune,3,35,Male,No,1,0
+Bachelors,2017,Pune,3,27,Male,No,5,0
+Masters,2017,New Delhi,3,34,Male,No,1,1
+Bachelors,2018,Bangalore,3,40,Female,No,4,1
+Bachelors,2012,Pune,3,39,Male,No,4,0
+Bachelors,2013,Pune,1,39,Female,Yes,0,1
+Bachelors,2015,Bangalore,3,22,Male,No,0,1
+Masters,2017,Pune,2,33,Male,Yes,2,0
+Bachelors,2014,Bangalore,3,39,Male,No,0,0
+Bachelors,2017,Bangalore,3,39,Male,No,3,0
+Bachelors,2017,Bangalore,3,40,Female,No,3,0
+Bachelors,2014,Bangalore,3,38,Female,No,1,0
+Bachelors,2018,New Delhi,3,36,Female,Yes,2,1
+Bachelors,2013,Pune,2,37,Male,Yes,5,0
+Bachelors,2017,Pune,2,33,Female,No,2,1
+Bachelors,2013,Bangalore,3,37,Female,No,2,1
+Bachelors,2013,Pune,3,34,Male,No,5,0
+Bachelors,2015,Bangalore,3,28,Male,No,2,0
+Bachelors,2018,Bangalore,3,31,Male,Yes,0,1
+Masters,2012,New Delhi,3,37,Male,No,4,0
+Bachelors,2018,Pune,3,26,Male,No,4,1
+Masters,2014,New Delhi,3,34,Female,No,1,1
+Bachelors,2015,Pune,3,39,Male,No,1,0
+Bachelors,2017,Pune,2,23,Female,No,1,1
+Bachelors,2013,Bangalore,3,35,Female,No,4,0
+Bachelors,2015,Pune,3,25,Male,No,3,0
+Bachelors,2013,Pune,2,38,Male,No,0,1
+Masters,2017,New Delhi,1,23,Male,No,1,0
+Masters,2017,New Delhi,3,26,Male,No,4,1
+Masters,2018,New Delhi,3,33,Female,No,2,1
+Bachelors,2015,Pune,2,37,Female,No,4,1
+Bachelors,2013,Bangalore,3,35,Male,No,5,0
+Bachelors,2013,Bangalore,3,23,Female,Yes,1,0
+Bachelors,2013,Pune,3,31,Male,No,2,0
+Bachelors,2017,Bangalore,3,24,Male,Yes,2,0
+Bachelors,2015,Bangalore,3,28,Male,No,3,0
+Bachelors,2013,Pune,2,37,Female,No,0,1
+Bachelors,2012,Bangalore,3,36,Female,No,1,0
+Bachelors,2015,Bangalore,3,28,Male,No,1,1
+Bachelors,2017,New Delhi,2,30,Male,No,5,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Masters,2015,Pune,2,29,Female,No,1,0
+Masters,2018,New Delhi,3,39,Female,No,2,1
+Bachelors,2013,Pune,2,36,Male,No,4,0
+Bachelors,2015,Pune,3,36,Male,No,3,0
+Bachelors,2012,Bangalore,3,22,Male,No,0,1
+Masters,2017,New Delhi,3,31,Male,No,2,0
+PHD,2017,New Delhi,3,29,Male,No,3,0
+Bachelors,2014,Pune,3,37,Female,No,4,1
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+Bachelors,2015,Pune,2,28,Female,Yes,2,1
+PHD,2016,New Delhi,3,22,Male,No,0,0
+Bachelors,2015,Bangalore,3,31,Male,No,2,1
+Bachelors,2013,Pune,2,28,Female,No,3,1
+Bachelors,2014,Bangalore,3,22,Female,No,0,0
+Bachelors,2016,Bangalore,3,23,Male,No,1,0
+Bachelors,2016,New Delhi,1,25,Female,Yes,3,0
+Bachelors,2013,Pune,1,23,Female,No,1,1
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2015,Pune,2,22,Female,No,0,1
+Bachelors,2015,Bangalore,3,38,Female,No,2,0
+Bachelors,2017,Bangalore,3,25,Female,No,3,0
+Bachelors,2017,New Delhi,3,37,Female,No,1,1
+PHD,2012,New Delhi,3,30,Male,No,4,0
+Bachelors,2012,Bangalore,3,35,Female,No,2,0
+PHD,2014,Bangalore,3,23,Male,No,1,0
+Masters,2017,New Delhi,2,25,Female,No,3,0
+Bachelors,2015,Bangalore,3,39,Female,No,0,0
+PHD,2013,Pune,1,32,Female,No,0,1
+Bachelors,2015,Pune,3,28,Female,No,1,1
+Bachelors,2015,New Delhi,3,23,Female,No,1,0
+PHD,2014,Bangalore,1,34,Female,No,3,0
+Bachelors,2014,Bangalore,1,36,Female,No,1,0
+Bachelors,2017,Bangalore,3,40,Male,No,5,0
+Bachelors,2016,Bangalore,3,40,Male,No,3,0
+Bachelors,2015,Bangalore,3,25,Female,No,3,1
+Bachelors,2013,Bangalore,3,22,Male,No,0,1
+Bachelors,2015,Bangalore,3,34,Male,No,4,0
+Bachelors,2017,Bangalore,3,23,Male,No,1,0
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Bachelors,2015,Bangalore,1,35,Male,No,3,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,Pune,3,28,Male,No,3,0
+Masters,2017,New Delhi,2,39,Female,No,4,0
+PHD,2017,New Delhi,3,31,Female,No,5,0
+Bachelors,2014,Bangalore,3,32,Male,No,2,0
+Bachelors,2017,New Delhi,2,37,Female,No,3,0
+Bachelors,2014,Pune,1,22,Female,No,0,1
+Bachelors,2015,Bangalore,3,32,Female,No,4,0
+Bachelors,2016,Bangalore,3,37,Male,No,2,0
+Bachelors,2014,Bangalore,3,36,Male,No,3,0
+Bachelors,2013,Pune,3,24,Male,Yes,2,0
+Masters,2017,New Delhi,3,40,Male,No,2,0
+Bachelors,2014,Bangalore,3,39,Male,No,3,0
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2017,New Delhi,2,33,Male,No,3,0
+Bachelors,2016,Pune,3,36,Male,Yes,3,0
+Bachelors,2015,Pune,1,39,Male,No,1,1
+Bachelors,2014,Bangalore,3,34,Male,No,4,0
+Bachelors,2014,New Delhi,2,23,Female,No,1,1
+Bachelors,2014,Pune,1,33,Female,No,2,1
+Bachelors,2013,Bangalore,3,31,Male,No,3,0
+Bachelors,2015,Bangalore,3,39,Female,No,0,0
+Bachelors,2017,Bangalore,3,36,Male,No,4,1
+Bachelors,2015,Bangalore,3,28,Male,No,1,0
+Bachelors,2013,New Delhi,3,28,Female,No,0,1
+Masters,2017,New Delhi,2,24,Male,No,2,1
+Bachelors,2013,Bangalore,3,36,Female,No,0,1
+Bachelors,2014,Bangalore,3,30,Male,No,1,1
+Bachelors,2018,New Delhi,3,27,Female,No,5,1
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2018,Bangalore,3,31,Male,No,0,1
+Bachelors,2013,Bangalore,3,36,Male,No,0,0
+Bachelors,2017,New Delhi,2,31,Male,No,1,0
+Bachelors,2016,Bangalore,3,37,Male,No,2,0
+Bachelors,2015,Bangalore,3,39,Male,No,2,0
+Bachelors,2014,Bangalore,3,28,Male,No,4,0
+Bachelors,2015,Pune,2,38,Male,No,2,1
+Masters,2017,New Delhi,3,40,Female,No,1,0
+Masters,2015,Bangalore,3,38,Female,No,1,0
+PHD,2014,New Delhi,3,23,Male,No,1,0
+Bachelors,2015,Bangalore,3,39,Male,No,2,0
+Bachelors,2014,Pune,1,22,Female,No,0,1
+Bachelors,2015,Pune,3,24,Female,No,2,1
+Masters,2014,New Delhi,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,23,Female,No,1,1
+Bachelors,2014,Bangalore,3,30,Male,No,4,0
+Bachelors,2016,New Delhi,3,25,Female,No,3,0
+Bachelors,2013,Bangalore,3,34,Male,No,4,0
+Masters,2015,New Delhi,3,40,Female,No,5,0
+Bachelors,2012,Bangalore,3,39,Female,No,1,0
+Masters,2017,New Delhi,3,38,Female,No,2,1
+Bachelors,2016,Pune,3,38,Male,No,2,0
+Bachelors,2015,Pune,2,38,Female,No,4,1
+Bachelors,2015,Bangalore,3,31,Male,No,5,0
+Bachelors,2017,Pune,1,30,Male,No,4,0
+PHD,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,Bangalore,3,38,Male,No,3,0
+Bachelors,2013,Pune,3,37,Male,No,3,0
+Bachelors,2016,Bangalore,3,22,Male,No,0,0
+PHD,2012,Bangalore,3,30,Female,No,4,0
+Bachelors,2013,Bangalore,3,39,Female,No,5,0
+Bachelors,2017,Bangalore,2,35,Male,No,0,0
+Bachelors,2012,Pune,3,25,Female,No,3,1
+Bachelors,2018,Bangalore,3,32,Male,Yes,1,1
+Bachelors,2018,Bangalore,3,31,Female,No,2,1
+Bachelors,2016,Bangalore,3,37,Male,No,2,0
+Bachelors,2016,New Delhi,1,38,Female,No,2,1
+Bachelors,2014,Bangalore,3,22,Female,No,0,0
+Masters,2014,New Delhi,3,37,Female,No,0,1
+Bachelors,2018,Bangalore,3,32,Male,Yes,2,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,28,Male,No,0,1
+Bachelors,2015,Bangalore,3,35,Male,No,0,0
+Bachelors,2016,Bangalore,1,33,Female,No,0,1
+Bachelors,2012,Bangalore,3,36,Female,No,4,0
+Bachelors,2013,Bangalore,3,31,Female,No,5,0
+Bachelors,2015,Pune,3,32,Female,Yes,1,1
+Masters,2017,Pune,2,31,Female,No,2,0
+Bachelors,2013,Bangalore,3,25,Female,No,3,0
+Bachelors,2016,Pune,3,30,Male,No,2,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2013,Pune,2,37,Male,No,2,1
+Masters,2018,New Delhi,3,27,Male,No,5,1
+Bachelors,2012,Bangalore,3,30,Male,Yes,2,0
+Bachelors,2015,Bangalore,3,33,Male,Yes,4,0
diff --git a/evadb/configuration/constants.py b/evadb/configuration/constants.py
index 18a1331f83..3665a28727 100644
--- a/evadb/configuration/constants.py
+++ b/evadb/configuration/constants.py
@@ -35,3 +35,4 @@
DEFAULT_DOCUMENT_CHUNK_SIZE = 4000
DEFAULT_DOCUMENT_CHUNK_OVERLAP = 200
DEFAULT_TRAIN_REGRESSION_METRIC = "rmse"
+DEFAULT_XGBOOST_TASK = "regression"
diff --git a/evadb/executor/create_function_executor.py b/evadb/executor/create_function_executor.py
index d045205a65..9f5d46e8be 100644
--- a/evadb/executor/create_function_executor.py
+++ b/evadb/executor/create_function_executor.py
@@ -30,6 +30,7 @@
from evadb.configuration.constants import (
DEFAULT_TRAIN_REGRESSION_METRIC,
DEFAULT_TRAIN_TIME_LIMIT,
+ DEFAULT_XGBOOST_TASK,
EvaDB_INSTALLATION_DIR,
)
from evadb.database import EvaDBDatabase
@@ -238,7 +239,7 @@ def handle_xgboost_function(self):
"time_budget": arg_map.get("time_limit", DEFAULT_TRAIN_TIME_LIMIT),
"metric": arg_map.get("metric", DEFAULT_TRAIN_REGRESSION_METRIC),
"estimator_list": ["xgboost"],
- "task": "regression",
+ "task": arg_map.get("task", DEFAULT_XGBOOST_TASK),
}
model.fit(
dataframe=aggregated_batch.frames, label=arg_map["predict"], **settings
diff --git a/test/integration_tests/long/test_model_train.py b/test/integration_tests/long/test_model_train.py
index 85e508f4d1..d1e9de11e8 100644
--- a/test/integration_tests/long/test_model_train.py
+++ b/test/integration_tests/long/test_model_train.py
@@ -47,6 +47,25 @@ def setUpClass(cls):
load_query = f"LOAD CSV '{path}' INTO HomeRentals;"
execute_query_fetch_all(cls.evadb, load_query)
+ # Load data for classification tasks.
+ create_table_query = """
+ CREATE TABLE IF NOT EXISTS Employee (
+ education TEXT(128),
+ joining_year INTEGER,
+ city TEXT(128),
+ payment_tier INTEGER,
+ age INTEGER,
+ gender TEXT(128),
+ ever_benched TEXT(128),
+ experience_in_current_domain INTEGER,
+ leave_or_not INTEGER
+ );"""
+ execute_query_fetch_all(cls.evadb, create_table_query)
+
+ path = f"{EvaDB_ROOT_DIR}/data/classification/Employee.csv"
+ load_query = f"LOAD CSV '{path}' INTO Employee;"
+ execute_query_fetch_all(cls.evadb, load_query)
+
@classmethod
def tearDownClass(cls):
shutdown_ray()
@@ -103,7 +122,8 @@ def test_xgboost_regression(self):
TYPE XGBoost
PREDICT 'rental_price'
TIME_LIMIT 180
- METRIC 'r2';
+ METRIC 'r2'
+ TASK 'regression';
"""
execute_query_fetch_all(self.evadb, create_predict_function)
@@ -114,6 +134,27 @@ def test_xgboost_regression(self):
self.assertEqual(len(result.columns), 1)
self.assertEqual(len(result), 10)
+ @xgboost_skip_marker
+ def test_xgboost_classification(self):
+ create_predict_function = """
+ CREATE FUNCTION IF NOT EXISTS PredictEmployee FROM
+ ( SELECT payment_tier, age, gender, experience_in_current_domain, leave_or_not FROM Employee )
+ TYPE XGBoost
+ PREDICT 'leave_or_not'
+ TIME_LIMIT 180
+ METRIC 'accuracy'
+ TASK 'classification';
+ """
+ execute_query_fetch_all(self.evadb, create_predict_function)
+
+ predict_query = """
+ SELECT PredictEmployee(payment_tier, age, gender, experience_in_current_domain, leave_or_not) FROM Employee LIMIT 10;
+ """
+ result = execute_query_fetch_all(self.evadb, predict_query)
+ print(result)
+ self.assertEqual(len(result.columns), 1)
+ self.assertEqual(len(result), 10)
+
if __name__ == "__main__":
unittest.main()
From 0ab5ff85dcb545f395be5f04e7bf84b0e7e2e26a Mon Sep 17 00:00:00 2001
From: Jineet Desai
Date: Thu, 19 Oct 2023 16:48:59 -0400
Subject: [PATCH 09/50] Adding doc changes
---
.../reference/ai/model-train-xgboost.rst | 40 ++++++++++++++++++-
.../long/test_model_train.py | 1 -
2 files changed, 39 insertions(+), 2 deletions(-)
diff --git a/docs/source/reference/ai/model-train-xgboost.rst b/docs/source/reference/ai/model-train-xgboost.rst
index b53c87d489..4f2c18ddde 100644
--- a/docs/source/reference/ai/model-train-xgboost.rst
+++ b/docs/source/reference/ai/model-train-xgboost.rst
@@ -23,4 +23,42 @@ To use the `Flaml XGBoost AutoML framework
Date: Mon, 23 Oct 2023 19:58:01 -0400
Subject: [PATCH 10/50] Added note
---
docs/source/overview/connect-to-data-sources.rst | 4 +---
docs/source/reference/databases/sqlite.rst | 4 +++-
docs/source/usecases/classification.rst | 4 ++++
docs/source/usecases/forecasting.rst | 4 ++++
docs/source/usecases/sentiment-analysis.rst | 4 ++++
5 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/docs/source/overview/connect-to-data-sources.rst b/docs/source/overview/connect-to-data-sources.rst
index 8f7526ae36..e89adcfeec 100644
--- a/docs/source/overview/connect-to-data-sources.rst
+++ b/docs/source/overview/connect-to-data-sources.rst
@@ -8,9 +8,7 @@ Connect to an Existing SQL Database System
.. note::
- Connecting to an existing SQL database is unnecessary for inserting or querying data in Eva. This step is only required if
- users intend to work with data already present in some SQL DB. Eva has native storage support for SQLite, which can be utilized without
- establishing any connection. Refer to :ref:`EvaQL` page for more details.
+ For prototyping, users can opt to establish a connection to :ref:`SQLite`.
1. Use the :ref:`CREATE DATABASE` statement to connect to an **existing** SQL database.
diff --git a/docs/source/reference/databases/sqlite.rst b/docs/source/reference/databases/sqlite.rst
index af90051009..49fc63d187 100644
--- a/docs/source/reference/databases/sqlite.rst
+++ b/docs/source/reference/databases/sqlite.rst
@@ -1,3 +1,5 @@
+.. _sqlite:
+
SQLite
==========
@@ -16,7 +18,7 @@ Required:
* `database` is the path to the database file to be opened. You can pass ":memory:" to create an SQLite database existing only in memory, and open a connection to it.
-.. warning::
+.. note::
If the ``database`` parameter is specified, EvaDB connects to the already existing ``sqlite`` database specified. Otherwise, it automatically creates a new ``sqlite`` database named ``evadb.db``.
diff --git a/docs/source/usecases/classification.rst b/docs/source/usecases/classification.rst
index a1fb192d92..1fbb2823d9 100644
--- a/docs/source/usecases/classification.rst
+++ b/docs/source/usecases/classification.rst
@@ -31,6 +31,10 @@ In this tutorial, we present how to to create and train a machine learning model
We will assume that the input data is loaded into a ``PostgreSQL`` database.
To load the home rental data into your database, see the complete `home rental prediction notebook on Colab `_.
+.. note::
+
+ For prototyping, users can opt to establish a connection to :ref:`SQLite`.
+
Preview the Home Rental Price Data
----------------------------------
diff --git a/docs/source/usecases/forecasting.rst b/docs/source/usecases/forecasting.rst
index 8f7bb8575b..d6f1b62bc4 100644
--- a/docs/source/usecases/forecasting.rst
+++ b/docs/source/usecases/forecasting.rst
@@ -31,6 +31,10 @@ In this tutorial, we present how to create and train a machine learning model fo
We will assume that the input data is loaded into a ``PostgreSQL`` database.
To load the home sales dataset into your database, see the complete `home sale forecasting notebook on Colab `_.
+.. note::
+
+ For prototyping, users can opt to establish a connection to :ref:`SQLite`.
+
Preview the Home Sale Price Data
--------------------------------
diff --git a/docs/source/usecases/sentiment-analysis.rst b/docs/source/usecases/sentiment-analysis.rst
index a7dfeb2d98..74d6eade77 100644
--- a/docs/source/usecases/sentiment-analysis.rst
+++ b/docs/source/usecases/sentiment-analysis.rst
@@ -31,6 +31,10 @@ To load the food review data into your database, see the complete `sentiment ana
.. include:: ../shared/postgresql.rst
+.. note::
+
+ For prototyping, users can opt to establish a connection to :ref:`SQLite`.
+
Sentiment Analysis of Reviews using ChatGPT
-------------------------------------------
From d25b22876e28b78c45b95351b5708d7505213a50 Mon Sep 17 00:00:00 2001
From: Ankith Reddy Chitti
Date: Mon, 23 Oct 2023 19:59:12 -0400
Subject: [PATCH 11/50] Minor Fix
---
docs/source/overview/connect-to-data-sources.rst | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/source/overview/connect-to-data-sources.rst b/docs/source/overview/connect-to-data-sources.rst
index e89adcfeec..e3ae055683 100644
--- a/docs/source/overview/connect-to-data-sources.rst
+++ b/docs/source/overview/connect-to-data-sources.rst
@@ -6,10 +6,6 @@ EvaDB supports a wide range of data sources including SQL database systems, obje
Connect to an Existing SQL Database System
------------------------------------------
-.. note::
-
- For prototyping, users can opt to establish a connection to :ref:`SQLite`.
-
1. Use the :ref:`CREATE DATABASE` statement to connect to an **existing** SQL database.
.. code-block::
@@ -28,6 +24,10 @@ Connect to an Existing SQL Database System
Go over the :ref:`CREATE DATABASE` statement for more details. The :ref:`Databases` page lists all the database systems that EvaDB currently supports.
+.. note::
+
+ For prototyping, users can opt to establish a connection to :ref:`SQLite`.
+
2. Preview the data using ``SELECT``
You can now preview the data stored in the ``food_review`` table in the ``restaurant_reviews`` database with a :ref:`SELECT` statement.
From 81ab7a37e5429cce57995279ab34319a5dd06de8 Mon Sep 17 00:00:00 2001
From: Jineet Desai
Date: Mon, 23 Oct 2023 22:54:04 -0400
Subject: [PATCH 12/50] Make the config related changes
---
evadb/executor/create_function_executor.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/evadb/executor/create_function_executor.py b/evadb/executor/create_function_executor.py
index 9f5d46e8be..52a3f17c9f 100644
--- a/evadb/executor/create_function_executor.py
+++ b/evadb/executor/create_function_executor.py
@@ -245,7 +245,8 @@ def handle_xgboost_function(self):
dataframe=aggregated_batch.frames, label=arg_map["predict"], **settings
)
model_path = os.path.join(
- self.db.config.get_value("storage", "model_dir"), self.node.name
+ self.db.catalog().get_configuration_catalog_value("model_dir"),
+ self.node.name,
)
pickle.dump(model, open(model_path, "wb"))
self.node.metadata.append(
From d3405482dcc72bd3212361e6680ce8956429f012 Mon Sep 17 00:00:00 2001
From: Joy Arulraj
Date: Mon, 23 Oct 2023 23:09:49 -0400
Subject: [PATCH 13/50] checkpoint
---
docs/source/overview/connect-to-data-sources.rst | 15 +++++++++++----
docs/source/reference/databases/postgres.rst | 2 ++
docs/source/shared/postgresql.rst | 7 ++++++-
docs/source/usecases/classification.rst | 4 ----
docs/source/usecases/forecasting.rst | 4 ----
docs/source/usecases/sentiment-analysis.rst | 4 ----
6 files changed, 19 insertions(+), 17 deletions(-)
diff --git a/docs/source/overview/connect-to-data-sources.rst b/docs/source/overview/connect-to-data-sources.rst
index e3ae055683..6f32281c25 100644
--- a/docs/source/overview/connect-to-data-sources.rst
+++ b/docs/source/overview/connect-to-data-sources.rst
@@ -6,7 +6,7 @@ EvaDB supports a wide range of data sources including SQL database systems, obje
Connect to an Existing SQL Database System
------------------------------------------
-1. Use the :ref:`CREATE DATABASE` statement to connect to an **existing** SQL database.
+1. Use the :ref:`CREATE DATABASE` statement to connect to an **existing** SQL database server. For example, here is the SQL command to connect EvaDB with a locally running :ref:`PostgreSQL` database server running on port ``5432``.
.. code-block::
@@ -20,13 +20,20 @@ Connect to an Existing SQL Database System
"database": "restaurant_reviews"
};
-.. note::
+For quick prototyping, you can use an embedded :ref:`SQLite` database. Here, the SQLite database file is called ``evadb.db``.
- Go over the :ref:`CREATE DATABASE` statement for more details. The :ref:`Databases` page lists all the database systems that EvaDB currently supports.
+.. code-block::
+
+ CREATE DATABASE restaurant_reviews
+ WITH ENGINE = 'sqlite',
+ PARAMETERS = {
+ "database": "evadb.db"
+ };
.. note::
- For prototyping, users can opt to establish a connection to :ref:`SQLite`.
+ Go over the :ref:`CREATE DATABASE` statement for more details. The :ref:`Databases` page lists all the database systems that EvaDB currently supports.
+
2. Preview the data using ``SELECT``
diff --git a/docs/source/reference/databases/postgres.rst b/docs/source/reference/databases/postgres.rst
index 5c1309b7d8..de5a130a0b 100644
--- a/docs/source/reference/databases/postgres.rst
+++ b/docs/source/reference/databases/postgres.rst
@@ -1,3 +1,5 @@
+.. _postgresql:
+
PostgreSQL
==========
diff --git a/docs/source/shared/postgresql.rst b/docs/source/shared/postgresql.rst
index 3af309e67a..049cb0ea3f 100644
--- a/docs/source/shared/postgresql.rst
+++ b/docs/source/shared/postgresql.rst
@@ -1,7 +1,12 @@
Connect EvaDB to PostgreSQL Database Server
-------------------------------------------
-We will assume that you have a ``PostgreSQL`` database server running locally that contains the data needed for analysis. Follow these instructions to install `PostgreSQL `_.
+We will assume that you have a :ref:`PostgreSQL` database running locally that contains the data needed for analysis. Follow these instructions to install `PostgreSQL `_.
+
+.. note::
+ If find it challenging to install the ``PostgreSQL`` database on your machine, here is an alternative for quick prototyping.
+
+ You can use an embedded :ref:`SQLite` database. If you go with the ``sqlite`` database, alter the SQL commands in this tutorial to use the ``sqlite`` engine and the ``evadb.db`` SQLite database file as explained in the :ref:`SQLite` page.
EvaDB lets you connect to your favorite databases, data warehouses, data lakes, etc., via the ``CREATE DATABASE`` statement. In this query, we connect EvaDB to an existing ``PostgreSQL`` server:
diff --git a/docs/source/usecases/classification.rst b/docs/source/usecases/classification.rst
index 1fbb2823d9..a1fb192d92 100644
--- a/docs/source/usecases/classification.rst
+++ b/docs/source/usecases/classification.rst
@@ -31,10 +31,6 @@ In this tutorial, we present how to to create and train a machine learning model
We will assume that the input data is loaded into a ``PostgreSQL`` database.
To load the home rental data into your database, see the complete `home rental prediction notebook on Colab `_.
-.. note::
-
- For prototyping, users can opt to establish a connection to :ref:`SQLite`.
-
Preview the Home Rental Price Data
----------------------------------
diff --git a/docs/source/usecases/forecasting.rst b/docs/source/usecases/forecasting.rst
index d6f1b62bc4..8f7bb8575b 100644
--- a/docs/source/usecases/forecasting.rst
+++ b/docs/source/usecases/forecasting.rst
@@ -31,10 +31,6 @@ In this tutorial, we present how to create and train a machine learning model fo
We will assume that the input data is loaded into a ``PostgreSQL`` database.
To load the home sales dataset into your database, see the complete `home sale forecasting notebook on Colab `_.
-.. note::
-
- For prototyping, users can opt to establish a connection to :ref:`SQLite`.
-
Preview the Home Sale Price Data
--------------------------------
diff --git a/docs/source/usecases/sentiment-analysis.rst b/docs/source/usecases/sentiment-analysis.rst
index 74d6eade77..a7dfeb2d98 100644
--- a/docs/source/usecases/sentiment-analysis.rst
+++ b/docs/source/usecases/sentiment-analysis.rst
@@ -31,10 +31,6 @@ To load the food review data into your database, see the complete `sentiment ana
.. include:: ../shared/postgresql.rst
-.. note::
-
- For prototyping, users can opt to establish a connection to :ref:`SQLite`.
-
Sentiment Analysis of Reviews using ChatGPT
-------------------------------------------
From c6970bdcd462bb7fadee7917ef5115154e9cd249 Mon Sep 17 00:00:00 2001
From: Andy Xu
Date: Tue, 24 Oct 2023 00:32:23 -0400
Subject: [PATCH 14/50] Skip long running model train test.
---
.../long/test_model_train.py | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/test/integration_tests/long/test_model_train.py b/test/integration_tests/long/test_model_train.py
index 20ed0c5c52..1c7c185079 100644
--- a/test/integration_tests/long/test_model_train.py
+++ b/test/integration_tests/long/test_model_train.py
@@ -72,13 +72,21 @@ def tearDownClass(cls):
# clean up
execute_query_fetch_all(cls.evadb, "DROP TABLE IF EXISTS HomeRentals;")
+ execute_query_fetch_all(cls.evadb, "DROP TABLE IF EXISTS Employee;")
execute_query_fetch_all(
cls.evadb, "DROP FUNCTION IF EXISTS PredictHouseRentLudwig;"
)
execute_query_fetch_all(
cls.evadb, "DROP FUNCTION IF EXISTS PredictHouseRentSklearn;"
)
+ execute_query_fetch_all(
+ cls.evadb, "DROP FUNCTION IF EXISTS PredictRentXgboost;"
+ )
+ execute_query_fetch_all(
+ cls.evadb, "DROP FUNCTION IF EXISTS PredictEmployeeXgboost;"
+ )
+ @pytest.marker.skip(reason="Model training intergration test takes too long to complete.")
@ludwig_skip_marker
def test_ludwig_automl(self):
create_predict_function = """
@@ -97,6 +105,8 @@ def test_ludwig_automl(self):
self.assertEqual(len(result.columns), 1)
self.assertEqual(len(result), 10)
+
+ @pytest.marker.skip(reason="Model training intergration test takes too long to complete.")
@sklearn_skip_marker
def test_sklearn_regression(self):
create_predict_function = """
@@ -114,10 +124,11 @@ def test_sklearn_regression(self):
self.assertEqual(len(result.columns), 1)
self.assertEqual(len(result), 10)
+
@xgboost_skip_marker
def test_xgboost_regression(self):
create_predict_function = """
- CREATE FUNCTION IF NOT EXISTS PredictRent FROM
+ CREATE OR REPLACE FUNCTION PredictRentXgboost FROM
( SELECT number_of_rooms, number_of_bathrooms, days_on_market, rental_price FROM HomeRentals )
TYPE XGBoost
PREDICT 'rental_price'
@@ -128,7 +139,7 @@ def test_xgboost_regression(self):
execute_query_fetch_all(self.evadb, create_predict_function)
predict_query = """
- SELECT PredictRent(number_of_rooms, number_of_bathrooms, days_on_market, rental_price) FROM HomeRentals LIMIT 10;
+ SELECT PredictRentXgboost(number_of_rooms, number_of_bathrooms, days_on_market, rental_price) FROM HomeRentals LIMIT 10;
"""
result = execute_query_fetch_all(self.evadb, predict_query)
self.assertEqual(len(result.columns), 1)
@@ -137,7 +148,7 @@ def test_xgboost_regression(self):
@xgboost_skip_marker
def test_xgboost_classification(self):
create_predict_function = """
- CREATE FUNCTION IF NOT EXISTS PredictEmployee FROM
+ CREATE OR REPLACE FUNCTION PredictEmployeeXgboost FROM
( SELECT payment_tier, age, gender, experience_in_current_domain, leave_or_not FROM Employee )
TYPE XGBoost
PREDICT 'leave_or_not'
@@ -148,7 +159,7 @@ def test_xgboost_classification(self):
execute_query_fetch_all(self.evadb, create_predict_function)
predict_query = """
- SELECT PredictEmployee(payment_tier, age, gender, experience_in_current_domain, leave_or_not) FROM Employee LIMIT 10;
+ SELECT PredictEmployeeXgboost(payment_tier, age, gender, experience_in_current_domain, leave_or_not) FROM Employee LIMIT 10;
"""
result = execute_query_fetch_all(self.evadb, predict_query)
self.assertEqual(len(result.columns), 1)
From d8f4a1b948dca622b3cb33fd945269d684d13b1f Mon Sep 17 00:00:00 2001
From: Andy Xu
Date: Tue, 24 Oct 2023 00:33:10 -0400
Subject: [PATCH 15/50] Linter
---
test/integration_tests/long/test_model_train.py | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/test/integration_tests/long/test_model_train.py b/test/integration_tests/long/test_model_train.py
index 1c7c185079..ea4d4b1747 100644
--- a/test/integration_tests/long/test_model_train.py
+++ b/test/integration_tests/long/test_model_train.py
@@ -86,7 +86,9 @@ def tearDownClass(cls):
cls.evadb, "DROP FUNCTION IF EXISTS PredictEmployeeXgboost;"
)
- @pytest.marker.skip(reason="Model training intergration test takes too long to complete.")
+ @pytest.marker.skip(
+ reason="Model training intergration test takes too long to complete."
+ )
@ludwig_skip_marker
def test_ludwig_automl(self):
create_predict_function = """
@@ -105,8 +107,9 @@ def test_ludwig_automl(self):
self.assertEqual(len(result.columns), 1)
self.assertEqual(len(result), 10)
-
- @pytest.marker.skip(reason="Model training intergration test takes too long to complete.")
+ @pytest.marker.skip(
+ reason="Model training intergration test takes too long to complete."
+ )
@sklearn_skip_marker
def test_sklearn_regression(self):
create_predict_function = """
@@ -124,7 +127,6 @@ def test_sklearn_regression(self):
self.assertEqual(len(result.columns), 1)
self.assertEqual(len(result), 10)
-
@xgboost_skip_marker
def test_xgboost_regression(self):
create_predict_function = """
From 3f0d829ecefd93bc72f1a1a4e91992a7812b1d06 Mon Sep 17 00:00:00 2001
From: Andy Xu
Date: Tue, 24 Oct 2023 00:38:44 -0400
Subject: [PATCH 16/50] Fix typo
---
test/integration_tests/long/test_model_train.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/test/integration_tests/long/test_model_train.py b/test/integration_tests/long/test_model_train.py
index ea4d4b1747..b1afe562d9 100644
--- a/test/integration_tests/long/test_model_train.py
+++ b/test/integration_tests/long/test_model_train.py
@@ -86,7 +86,7 @@ def tearDownClass(cls):
cls.evadb, "DROP FUNCTION IF EXISTS PredictEmployeeXgboost;"
)
- @pytest.marker.skip(
+ @pytest.mark.skip(
reason="Model training intergration test takes too long to complete."
)
@ludwig_skip_marker
@@ -107,7 +107,7 @@ def test_ludwig_automl(self):
self.assertEqual(len(result.columns), 1)
self.assertEqual(len(result), 10)
- @pytest.marker.skip(
+ @pytest.mark.skip(
reason="Model training intergration test takes too long to complete."
)
@sklearn_skip_marker
From 703dc9460e499a693ee83bfefe9fe49918499159 Mon Sep 17 00:00:00 2001
From: jineetd <35962652+jineetd@users.noreply.github.com>
Date: Tue, 24 Oct 2023 01:05:55 -0400
Subject: [PATCH 17/50] Starting the changes for XGBoost classification
integration. (#1305)
We shall add XGBoost classification support in EVADB.
---------
Co-authored-by: Jineet Desai
Co-authored-by: Andy Xu
---
data/classification/Employee.csv | 4654 +++++++++++++++++
.../reference/ai/model-train-xgboost.rst | 40 +-
evadb/configuration/constants.py | 1 +
evadb/executor/create_function_executor.py | 6 +-
.../long/test_model_train.py | 59 +-
5 files changed, 4754 insertions(+), 6 deletions(-)
create mode 100644 data/classification/Employee.csv
diff --git a/data/classification/Employee.csv b/data/classification/Employee.csv
new file mode 100644
index 0000000000..4c5a75240f
--- /dev/null
+++ b/data/classification/Employee.csv
@@ -0,0 +1,4654 @@
+education,joining_year,city,payment_tier,age,gender,ever_benched,experience_in_current_domain,leave_or_not
+Bachelors,2017,Bangalore,3,34,Male,No,0,0
+Bachelors,2013,Pune,1,28,Female,No,3,1
+Bachelors,2014,New Delhi,3,38,Female,No,2,0
+Masters,2016,Bangalore,3,27,Male,No,5,1
+Masters,2017,Pune,3,24,Male,Yes,2,1
+Bachelors,2016,Bangalore,3,22,Male,No,0,0
+Bachelors,2015,New Delhi,3,38,Male,No,0,0
+Bachelors,2016,Bangalore,3,34,Female,No,2,1
+Bachelors,2016,Pune,3,23,Male,No,1,0
+Masters,2017,New Delhi,2,37,Male,No,2,0
+Masters,2012,Bangalore,3,27,Male,No,5,1
+Bachelors,2016,Pune,3,34,Male,No,3,0
+Bachelors,2018,Pune,3,32,Male,Yes,5,1
+Bachelors,2016,Bangalore,3,39,Male,No,2,0
+Bachelors,2012,Bangalore,3,37,Male,No,4,0
+Bachelors,2017,Bangalore,1,29,Male,No,3,0
+Bachelors,2014,Bangalore,3,34,Female,No,2,0
+Bachelors,2014,Pune,3,34,Male,No,4,0
+Bachelors,2015,Pune,2,30,Female,No,0,1
+Bachelors,2016,New Delhi,2,22,Female,No,0,1
+Bachelors,2012,Bangalore,3,37,Male,No,0,0
+Masters,2017,New Delhi,2,28,Male,No,4,0
+Bachelors,2017,New Delhi,2,36,Male,No,3,0
+Bachelors,2015,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2017,Bangalore,3,29,Male,No,4,0
+Bachelors,2013,Bangalore,3,22,Female,Yes,0,0
+Bachelors,2016,Bangalore,3,37,Male,No,2,0
+Bachelors,2015,Bangalore,3,23,Male,No,1,0
+Bachelors,2013,Pune,2,31,Female,No,2,1
+Masters,2017,New Delhi,2,30,Female,No,2,0
+PHD,2013,New Delhi,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,23,Male,No,1,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2016,Bangalore,3,40,Male,No,5,0
+Bachelors,2017,Pune,2,37,Female,No,0,1
+Bachelors,2014,Bangalore,1,30,Female,No,3,0
+Bachelors,2012,New Delhi,3,29,Male,No,3,0
+Bachelors,2018,New Delhi,2,34,Female,No,0,1
+Bachelors,2017,Pune,2,29,Female,No,2,1
+Bachelors,2014,Pune,3,30,Male,Yes,4,0
+Bachelors,2015,Bangalore,3,36,Male,No,1,0
+Masters,2017,New Delhi,2,23,Male,No,1,0
+Bachelors,2013,Bangalore,3,30,Male,No,3,1
+Bachelors,2014,Bangalore,3,36,Male,No,0,0
+Bachelors,2015,Pune,3,39,Male,No,4,0
+Bachelors,2014,Bangalore,3,23,Female,No,1,0
+PHD,2012,New Delhi,3,27,Male,No,5,0
+Masters,2013,New Delhi,3,35,Male,No,2,0
+Masters,2017,New Delhi,2,34,Male,No,0,0
+Bachelors,2013,Bangalore,3,30,Female,No,1,0
+PHD,2017,New Delhi,3,34,Male,No,2,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2016,Bangalore,3,34,Female,No,0,0
+Bachelors,2014,Bangalore,3,31,Female,Yes,5,0
+Bachelors,2017,New Delhi,3,31,Female,Yes,5,0
+PHD,2013,New Delhi,3,28,Male,No,2,0
+Bachelors,2016,Bangalore,3,38,Male,No,2,0
+Masters,2014,Pune,3,39,Female,No,2,0
+Bachelors,2013,Pune,3,32,Male,No,4,0
+Masters,2017,Pune,2,36,Male,No,2,1
+Masters,2013,New Delhi,3,29,Male,No,3,0
+Bachelors,2015,Bangalore,3,30,Male,No,5,0
+PHD,2013,Bangalore,2,25,Male,No,3,1
+Bachelors,2014,Pune,1,22,Female,No,0,1
+Bachelors,2016,Bangalore,3,34,Male,No,4,0
+Bachelors,2018,Bangalore,3,40,Male,No,1,1
+PHD,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,New Delhi,3,28,Male,No,0,0
+Bachelors,2015,Bangalore,3,24,Female,No,2,0
+Masters,2017,Bangalore,3,40,Female,No,2,1
+Bachelors,2018,Bangalore,3,23,Female,No,1,1
+Masters,2017,Bangalore,3,31,Male,No,4,0
+Bachelors,2014,Pune,3,25,Female,No,3,0
+Bachelors,2014,Bangalore,1,27,Male,No,5,0
+Masters,2017,New Delhi,2,25,Female,No,3,1
+Bachelors,2015,Bangalore,3,40,Male,No,0,1
+Bachelors,2014,Bangalore,1,23,Female,No,1,0
+Bachelors,2017,Bangalore,3,23,Female,No,1,0
+Bachelors,2012,Bangalore,3,39,Male,No,1,0
+PHD,2015,New Delhi,1,37,Male,No,1,0
+Bachelors,2017,Pune,3,38,Male,No,2,0
+Bachelors,2013,Bangalore,3,31,Female,No,0,1
+Bachelors,2016,Bangalore,3,38,Male,No,5,0
+Bachelors,2017,Bangalore,3,25,Female,No,3,0
+Bachelors,2015,Bangalore,3,27,Female,Yes,5,1
+Bachelors,2016,Pune,2,36,Male,No,0,1
+Bachelors,2017,Pune,2,27,Female,No,5,1
+Masters,2015,Pune,2,32,Female,No,4,0
+Bachelors,2014,Bangalore,3,28,Male,No,4,0
+Masters,2012,New Delhi,3,32,Male,No,2,0
+Bachelors,2018,Bangalore,3,30,Male,No,0,1
+Bachelors,2015,New Delhi,3,22,Male,No,0,0
+Bachelors,2017,New Delhi,2,34,Female,No,5,0
+Masters,2013,New Delhi,3,36,Male,No,2,0
+Bachelors,2014,Bangalore,3,39,Male,No,3,1
+PHD,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2016,Bangalore,3,31,Female,No,0,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,29,Female,No,0,0
+Bachelors,2015,Bangalore,3,24,Female,No,2,1
+Masters,2012,Pune,3,25,Male,No,3,1
+Bachelors,2013,Pune,3,25,Male,No,3,0
+Masters,2017,New Delhi,3,26,Female,No,4,1
+Bachelors,2015,Pune,2,28,Female,Yes,1,1
+Bachelors,2017,New Delhi,3,28,Male,No,2,0
+Masters,2015,Pune,1,28,Female,No,3,1
+Masters,2015,New Delhi,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,28,Male,No,1,0
+Masters,2013,Pune,3,25,Male,No,3,0
+Bachelors,2015,Bangalore,2,25,Female,No,3,1
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Bachelors,2017,Pune,2,27,Female,No,5,1
+Bachelors,2013,Bangalore,3,27,Male,No,5,1
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Masters,2017,New Delhi,2,28,Male,No,2,0
+Bachelors,2014,Pune,1,26,Female,No,4,1
+Bachelors,2015,Bangalore,3,28,Male,No,2,0
+Masters,2013,New Delhi,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,26,Female,No,4,0
+Bachelors,2017,New Delhi,2,25,Male,No,3,0
+Bachelors,2012,Bangalore,1,28,Female,No,3,0
+PHD,2015,New Delhi,3,26,Male,No,4,0
+Bachelors,2015,New Delhi,3,25,Female,No,3,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,1
+Bachelors,2014,Bangalore,3,28,Female,No,3,0
+Masters,2014,Pune,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Male,No,1,0
+Bachelors,2015,Pune,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Masters,2013,Pune,1,24,Male,No,2,1
+Bachelors,2017,Bangalore,3,26,Female,No,4,0
+Bachelors,2013,Bangalore,3,28,Male,No,1,1
+Masters,2016,New Delhi,3,27,Male,No,5,0
+Masters,2017,Bangalore,3,26,Male,No,4,0
+Masters,2017,New Delhi,2,24,Male,No,2,0
+Masters,2018,New Delhi,3,26,Male,No,4,1
+Masters,2017,New Delhi,1,25,Female,No,3,1
+Bachelors,2012,Pune,3,28,Male,No,2,0
+Bachelors,2017,New Delhi,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Masters,2013,New Delhi,3,27,Male,No,5,1
+Bachelors,2017,Pune,2,24,Female,No,2,1
+Bachelors,2017,New Delhi,3,28,Female,No,2,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,27,Female,No,5,0
+Masters,2015,Pune,2,28,Female,No,3,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2016,Pune,3,28,Male,No,1,0
+Masters,2013,Bangalore,1,25,Male,No,3,1
+Bachelors,2015,Pune,3,26,Male,No,4,0
+Bachelors,2018,New Delhi,3,27,Female,No,5,1
+Bachelors,2016,Bangalore,3,24,Male,No,2,1
+Bachelors,2012,Pune,2,24,Female,No,2,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Pune,2,24,Female,No,2,1
+Masters,2012,New Delhi,3,26,Female,No,4,0
+Bachelors,2013,Bangalore,3,28,Female,No,3,0
+Bachelors,2012,Bangalore,3,24,Male,No,2,1
+Bachelors,2015,Bangalore,3,25,Male,No,3,1
+Bachelors,2016,Bangalore,3,28,Male,No,3,0
+Bachelors,2014,Bangalore,3,28,Female,No,3,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2017,New Delhi,3,24,Female,No,2,1
+Bachelors,2016,Bangalore,3,25,Male,No,3,1
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2015,Bangalore,3,28,Male,No,3,0
+Masters,2015,New Delhi,3,26,Male,No,4,1
+Bachelors,2014,New Delhi,3,28,Female,No,1,0
+Bachelors,2015,Pune,3,25,Male,No,3,0
+Masters,2015,Pune,2,28,Female,No,2,0
+Bachelors,2014,Bangalore,3,27,Female,No,5,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,New Delhi,3,24,Female,No,2,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,1
+Masters,2017,New Delhi,3,27,Male,No,5,1
+Bachelors,2015,Pune,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Masters,2017,New Delhi,3,27,Male,No,5,1
+Masters,2017,New Delhi,2,28,Female,No,1,1
+Masters,2017,Pune,2,24,Male,No,2,1
+Masters,2016,New Delhi,3,25,Female,No,3,1
+PHD,2015,New Delhi,3,28,Female,No,1,0
+Bachelors,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2013,Bangalore,2,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,28,Male,No,1,0
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Bachelors,2013,New Delhi,3,25,Female,No,3,0
+Bachelors,2013,Pune,3,28,Male,No,1,0
+Bachelors,2017,Pune,3,24,Male,No,2,0
+Bachelors,2013,New Delhi,3,27,Female,No,5,0
+Bachelors,2015,Bangalore,3,28,Male,Yes,2,0
+Bachelors,2015,Pune,3,28,Male,No,3,0
+Bachelors,2014,Pune,2,25,Female,No,3,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Pune,2,26,Female,No,4,1
+PHD,2013,New Delhi,3,24,Male,No,2,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Masters,2013,Pune,2,27,Male,No,5,1
+Masters,2017,Bangalore,3,28,Male,No,2,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Masters,2017,Pune,2,27,Female,No,5,0
+Masters,2013,Bangalore,2,28,Female,No,2,1
+Masters,2017,Pune,3,28,Male,No,1,1
+Bachelors,2018,Bangalore,3,27,Female,No,5,1
+Bachelors,2014,New Delhi,3,25,Female,No,3,0
+Masters,2017,New Delhi,3,27,Male,No,5,1
+Masters,2013,New Delhi,3,26,Male,No,4,1
+Bachelors,2013,Pune,2,25,Female,No,3,1
+Masters,2012,New Delhi,3,26,Male,No,4,1
+Bachelors,2016,Bangalore,3,25,Male,No,3,1
+Bachelors,2013,Pune,2,26,Male,No,4,0
+Bachelors,2018,Bangalore,3,28,Female,No,2,1
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Pune,1,24,Female,Yes,2,1
+Bachelors,2013,Pune,3,28,Male,No,2,0
+Bachelors,2015,Pune,2,27,Female,Yes,5,1
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Bachelors,2014,Pune,2,27,Female,No,5,1
+Bachelors,2013,Pune,3,24,Male,No,2,0
+Bachelors,2014,Pune,3,24,Male,No,2,0
+PHD,2015,New Delhi,2,25,Female,No,3,0
+Bachelors,2014,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Masters,2015,Pune,2,25,Female,No,3,0
+Bachelors,2015,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,New Delhi,3,24,Female,No,2,0
+Masters,2017,Bangalore,2,26,Female,No,4,1
+Bachelors,2012,New Delhi,3,28,Male,No,1,0
+Masters,2017,Pune,2,26,Female,No,4,0
+Bachelors,2016,Pune,3,25,Male,No,3,0
+Bachelors,2017,New Delhi,3,24,Male,No,2,1
+Bachelors,2013,Pune,2,28,Female,No,3,1
+Bachelors,2014,Bangalore,3,25,Female,No,3,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Pune,2,24,Female,No,2,1
+Bachelors,2015,Bangalore,3,28,Male,No,2,1
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Masters,2015,New Delhi,3,26,Female,No,4,1
+Bachelors,2016,Bangalore,1,28,Female,No,2,0
+Bachelors,2014,Bangalore,3,25,Male,Yes,3,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,28,Male,No,2,0
+Masters,2018,New Delhi,3,24,Female,Yes,2,1
+Bachelors,2017,Pune,2,25,Male,No,3,0
+Bachelors,2018,Pune,2,24,Female,No,2,1
+Masters,2017,New Delhi,2,28,Female,No,1,0
+Bachelors,2013,New Delhi,1,27,Female,No,5,0
+Bachelors,2017,New Delhi,2,27,Female,No,5,0
+Bachelors,2017,Bangalore,3,28,Male,No,1,0
+Bachelors,2016,Pune,2,27,Female,No,5,1
+Masters,2018,Bangalore,3,24,Male,No,2,1
+Bachelors,2012,Pune,1,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Masters,2016,New Delhi,1,27,Male,No,5,0
+Bachelors,2015,New Delhi,3,26,Female,No,4,0
+Bachelors,2012,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2013,Bangalore,3,24,Male,Yes,2,1
+Bachelors,2018,Bangalore,3,26,Female,No,4,1
+Masters,2017,Pune,2,26,Female,No,4,1
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Bachelors,2013,Pune,3,28,Male,No,1,0
+Masters,2013,New Delhi,3,25,Male,No,3,0
+Bachelors,2018,Bangalore,3,28,Female,Yes,1,1
+Bachelors,2013,Pune,3,27,Female,No,5,1
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,28,Male,No,1,0
+Bachelors,2017,New Delhi,3,28,Female,No,3,0
+Masters,2017,New Delhi,2,28,Male,Yes,2,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Masters,2017,New Delhi,3,26,Male,No,4,0
+Bachelors,2015,Pune,1,25,Female,No,3,1
+Masters,2013,New Delhi,3,27,Male,No,5,0
+PHD,2014,Bangalore,3,24,Female,No,2,0
+Masters,2017,New Delhi,2,27,Female,No,5,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Masters,2015,Pune,3,27,Female,No,5,1
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Masters,2017,New Delhi,2,25,Female,No,3,0
+Bachelors,2017,New Delhi,2,28,Male,No,1,0
+Bachelors,2012,New Delhi,3,27,Female,No,5,0
+Masters,2013,New Delhi,3,26,Male,No,4,1
+Bachelors,2015,Bangalore,3,26,Female,Yes,4,1
+Bachelors,2014,Pune,3,28,Male,No,2,0
+Bachelors,2016,Bangalore,3,24,Female,No,2,1
+Bachelors,2012,Bangalore,3,28,Male,No,3,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,New Delhi,3,28,Female,No,1,0
+Bachelors,2014,New Delhi,3,27,Female,Yes,5,0
+Bachelors,2015,Pune,3,26,Female,Yes,4,1
+Masters,2014,New Delhi,3,26,Male,No,4,1
+PHD,2015,New Delhi,3,25,Female,No,3,0
+Masters,2015,New Delhi,3,25,Male,No,3,0
+Bachelors,2012,Pune,3,27,Male,No,5,0
+Masters,2017,New Delhi,2,24,Female,No,2,0
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Masters,2015,Pune,3,28,Female,No,2,0
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Bachelors,2017,Pune,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,1,25,Male,No,3,0
+Masters,2015,Pune,3,28,Female,No,2,0
+Bachelors,2017,Pune,3,26,Male,No,4,0
+Bachelors,2014,Pune,3,24,Male,No,2,0
+Bachelors,2014,Pune,3,25,Female,No,3,1
+Bachelors,2018,Pune,3,26,Female,No,4,1
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,28,Female,No,2,0
+Bachelors,2012,Pune,3,28,Male,No,2,0
+Masters,2012,New Delhi,3,24,Female,No,2,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,New Delhi,3,26,Female,Yes,4,0
+Bachelors,2017,Bangalore,3,28,Male,No,1,0
+Bachelors,2018,Pune,3,25,Male,Yes,3,1
+Masters,2017,New Delhi,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Male,No,2,1
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Masters,2017,New Delhi,2,25,Female,No,3,1
+Bachelors,2013,Pune,2,28,Female,No,1,1
+Bachelors,2015,Bangalore,3,24,Female,No,2,0
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Bachelors,2015,New Delhi,2,27,Female,No,5,1
+Bachelors,2018,Bangalore,3,24,Female,No,2,1
+Bachelors,2013,Bangalore,3,27,Female,No,5,0
+Bachelors,2013,Bangalore,3,24,Male,Yes,2,0
+Bachelors,2013,Bangalore,3,24,Female,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,26,Female,No,4,0
+Bachelors,2015,Bangalore,3,24,Female,No,2,0
+Bachelors,2012,Pune,3,24,Female,No,2,1
+Bachelors,2016,Bangalore,3,24,Male,Yes,2,1
+Bachelors,2012,Bangalore,3,28,Male,No,3,0
+Bachelors,2017,New Delhi,2,27,Male,No,5,0
+Bachelors,2012,Pune,2,27,Female,No,5,1
+Masters,2017,Pune,2,27,Male,No,5,0
+Bachelors,2017,Pune,2,24,Male,No,2,1
+Bachelors,2016,Pune,1,26,Female,No,4,1
+Bachelors,2015,Pune,3,26,Female,No,4,1
+Bachelors,2016,Bangalore,3,25,Male,No,3,1
+Bachelors,2012,Pune,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,28,Male,No,2,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,25,Female,Yes,3,0
+Masters,2017,Pune,2,26,Male,No,4,0
+Masters,2017,Pune,3,28,Male,No,1,1
+Masters,2015,Pune,2,25,Female,No,3,1
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,3,27,Female,No,5,0
+Bachelors,2015,New Delhi,3,24,Female,No,2,0
+Masters,2017,Bangalore,1,26,Female,No,4,1
+Bachelors,2017,New Delhi,1,28,Female,No,2,0
+Bachelors,2015,Bangalore,3,24,Male,No,2,0
+Masters,2015,Pune,2,25,Female,No,3,1
+Bachelors,2014,Bangalore,3,25,Female,No,3,0
+Bachelors,2014,Bangalore,3,28,Male,No,2,0
+Bachelors,2017,Bangalore,3,28,Male,No,3,0
+Masters,2015,New Delhi,1,27,Male,No,5,0
+Bachelors,2014,Pune,1,26,Female,No,4,1
+Masters,2018,Bangalore,3,25,Male,Yes,3,1
+Bachelors,2016,Bangalore,3,28,Female,No,3,0
+Bachelors,2018,New Delhi,3,26,Female,Yes,4,1
+Bachelors,2015,Pune,2,24,Female,No,2,1
+Bachelors,2017,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,28,Male,No,2,0
+Bachelors,2015,Pune,2,25,Female,No,3,1
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,28,Male,No,3,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,26,Female,Yes,4,1
+Bachelors,2015,Pune,3,28,Male,No,2,0
+Bachelors,2014,New Delhi,2,24,Female,No,2,1
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2018,Bangalore,3,28,Male,Yes,3,1
+Bachelors,2015,Pune,3,27,Male,No,5,0
+Bachelors,2014,Pune,2,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,1
+PHD,2013,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,New Delhi,2,28,Female,No,1,0
+Bachelors,2015,Pune,1,26,Female,No,4,1
+Masters,2017,New Delhi,3,26,Male,Yes,4,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,New Delhi,3,24,Female,No,2,0
+Bachelors,2017,New Delhi,2,24,Male,No,2,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Bachelors,2015,Bangalore,3,24,Male,No,2,0
+Masters,2014,Pune,3,25,Male,No,3,0
+Bachelors,2015,Bangalore,3,28,Male,No,2,0
+Bachelors,2016,Pune,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,26,Female,No,4,0
+Bachelors,2015,Pune,2,25,Female,Yes,3,1
+Masters,2013,New Delhi,2,25,Male,No,3,1
+Bachelors,2017,Pune,3,25,Male,No,3,0
+Bachelors,2015,Pune,2,26,Female,Yes,4,1
+Masters,2015,Bangalore,2,26,Female,No,4,1
+Bachelors,2012,Pune,3,27,Female,No,5,0
+Masters,2017,New Delhi,3,28,Male,Yes,2,0
+Bachelors,2016,Pune,3,25,Male,No,3,0
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,Pune,3,28,Male,No,1,0
+Bachelors,2013,New Delhi,3,27,Female,Yes,5,0
+Bachelors,2015,New Delhi,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Pune,2,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+PHD,2018,New Delhi,3,25,Male,No,3,1
+Bachelors,2014,Pune,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2017,Pune,2,24,Female,No,2,1
+PHD,2016,New Delhi,2,28,Male,No,3,1
+Masters,2014,New Delhi,3,26,Male,No,4,1
+Masters,2017,New Delhi,2,27,Male,Yes,5,1
+PHD,2013,New Delhi,3,27,Male,No,5,0
+Masters,2014,New Delhi,3,28,Female,No,1,0
+Bachelors,2017,Pune,3,27,Male,No,5,0
+Bachelors,2015,Pune,3,26,Female,Yes,4,1
+Masters,2014,Bangalore,3,26,Male,No,4,1
+Masters,2012,Pune,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Masters,2017,Pune,2,27,Male,No,5,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,1
+Bachelors,2016,Pune,3,27,Male,Yes,5,0
+Bachelors,2014,Pune,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,28,Male,No,1,0
+Masters,2012,Pune,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,25,Male,Yes,3,0
+Bachelors,2013,Pune,2,25,Male,No,3,1
+Bachelors,2012,Pune,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,25,Female,No,3,0
+Bachelors,2015,New Delhi,3,25,Male,No,3,0
+PHD,2012,Pune,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Masters,2015,New Delhi,3,24,Female,No,2,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Pune,3,24,Male,No,2,0
+Masters,2017,New Delhi,3,24,Male,No,2,1
+Bachelors,2014,Bangalore,1,25,Male,Yes,3,0
+Bachelors,2018,Bangalore,3,28,Male,No,1,1
+Bachelors,2017,Bangalore,3,28,Male,Yes,3,0
+Masters,2013,Bangalore,3,28,Female,Yes,2,1
+Bachelors,2013,Bangalore,3,26,Male,Yes,4,0
+Masters,2018,New Delhi,1,24,Male,Yes,2,1
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+PHD,2013,New Delhi,2,27,Female,No,5,0
+Masters,2018,New Delhi,3,28,Male,Yes,2,1
+Bachelors,2014,Bangalore,3,28,Male,No,3,1
+Bachelors,2014,Pune,3,27,Male,No,5,0
+Bachelors,2013,New Delhi,3,24,Female,No,2,1
+Bachelors,2015,Pune,2,28,Female,No,1,1
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2017,New Delhi,2,28,Female,No,3,0
+Masters,2012,Pune,3,27,Female,No,5,1
+Masters,2017,Pune,3,25,Female,Yes,3,1
+Masters,2013,New Delhi,2,25,Male,No,3,1
+Masters,2017,New Delhi,2,27,Male,No,5,1
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,Pune,2,24,Female,No,2,1
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Bachelors,2012,Bangalore,3,24,Male,No,2,1
+Masters,2017,Pune,2,24,Male,No,2,0
+Bachelors,2015,Pune,2,25,Female,Yes,3,1
+Bachelors,2015,New Delhi,3,26,Female,Yes,4,0
+Bachelors,2013,Pune,2,24,Male,Yes,2,1
+Bachelors,2013,Pune,3,25,Male,No,3,0
+PHD,2015,New Delhi,2,28,Female,No,1,0
+Bachelors,2016,Pune,3,24,Male,No,2,0
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,25,Female,No,3,0
+Masters,2014,New Delhi,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,28,Female,No,3,0
+Bachelors,2018,Pune,3,25,Male,No,3,1
+Bachelors,2013,Bangalore,3,26,Male,Yes,4,1
+Bachelors,2015,New Delhi,3,25,Male,No,3,1
+Bachelors,2017,New Delhi,2,25,Female,No,3,1
+Bachelors,2012,Bangalore,3,25,Male,Yes,3,0
+Bachelors,2014,New Delhi,3,28,Female,No,2,0
+Bachelors,2017,New Delhi,2,27,Female,No,5,0
+Bachelors,2018,Pune,3,26,Male,No,4,1
+Masters,2014,New Delhi,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,1
+Masters,2017,Pune,3,25,Male,No,3,1
+Bachelors,2018,Bangalore,3,28,Male,No,2,1
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,24,Male,Yes,2,0
+Bachelors,2015,Bangalore,3,28,Female,No,1,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2016,New Delhi,3,24,Female,No,2,0
+Bachelors,2012,Bangalore,3,25,Female,No,3,0
+Bachelors,2012,Pune,3,28,Male,No,3,0
+Bachelors,2018,Pune,3,25,Male,Yes,3,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,1
+Bachelors,2016,Bangalore,3,27,Female,No,5,0
+Masters,2015,Pune,2,24,Female,No,2,0
+Masters,2014,Bangalore,3,24,Female,No,2,1
+Bachelors,2013,Bangalore,3,25,Male,No,3,0
+Masters,2017,New Delhi,3,24,Male,No,2,0
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,New Delhi,2,28,Male,No,3,0
+Bachelors,2016,Bangalore,3,28,Male,No,2,0
+PHD,2014,New Delhi,3,24,Male,No,2,0
+Masters,2017,New Delhi,2,26,Female,No,4,0
+Masters,2018,New Delhi,3,25,Male,No,3,1
+Bachelors,2014,Bangalore,3,28,Male,No,3,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,1
+Bachelors,2018,New Delhi,3,28,Female,No,3,1
+Masters,2017,New Delhi,2,25,Male,Yes,3,1
+Masters,2013,New Delhi,3,28,Male,No,2,0
+Bachelors,2014,Bangalore,3,26,Male,Yes,4,0
+Masters,2017,New Delhi,2,25,Female,No,3,1
+Masters,2013,New Delhi,3,25,Female,No,3,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,0
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Masters,2017,New Delhi,2,26,Male,Yes,4,1
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Male,No,2,0
+Masters,2015,Pune,3,28,Female,Yes,2,0
+Bachelors,2015,Pune,2,27,Female,Yes,5,1
+Masters,2014,Pune,2,27,Female,No,5,0
+Bachelors,2017,New Delhi,2,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Masters,2015,Pune,1,27,Female,No,5,0
+Bachelors,2013,Bangalore,1,28,Male,No,3,1
+Bachelors,2012,Pune,2,26,Female,No,4,1
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Masters,2017,New Delhi,2,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,New Delhi,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,28,Female,No,1,1
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2015,Pune,2,28,Female,No,3,1
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Bachelors,2016,Bangalore,3,27,Female,No,5,1
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Masters,2018,Pune,3,25,Male,No,3,1
+Bachelors,2015,Pune,3,26,Male,No,4,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+PHD,2017,New Delhi,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,New Delhi,3,28,Female,No,2,0
+Bachelors,2014,Pune,3,25,Female,No,3,0
+Bachelors,2013,Bangalore,3,28,Male,Yes,3,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Pune,2,25,Female,No,3,1
+Bachelors,2017,Pune,2,26,Female,No,4,1
+Bachelors,2015,Pune,3,28,Male,No,3,0
+Masters,2017,Pune,2,26,Male,No,4,1
+Masters,2015,New Delhi,3,28,Female,Yes,2,0
+Bachelors,2012,New Delhi,2,25,Male,No,3,1
+Bachelors,2016,Bangalore,3,25,Female,No,3,0
+Masters,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,1
+PHD,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Masters,2012,Pune,2,26,Female,No,4,0
+Masters,2016,New Delhi,3,27,Male,No,5,1
+PHD,2017,Bangalore,3,28,Male,No,1,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Pune,3,26,Male,No,4,1
+Bachelors,2018,Bangalore,1,27,Male,No,5,0
+Bachelors,2016,Pune,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,28,Male,No,2,0
+Bachelors,2017,New Delhi,2,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,25,Male,No,3,0
+Bachelors,2013,Bangalore,3,28,Male,No,1,0
+Bachelors,2018,Bangalore,3,28,Female,No,3,1
+Bachelors,2016,Bangalore,3,27,Male,Yes,5,0
+Masters,2015,Pune,2,28,Female,No,3,0
+Masters,2015,New Delhi,3,24,Female,No,2,1
+Bachelors,2017,New Delhi,3,24,Male,No,2,0
+Bachelors,2015,Pune,2,24,Female,No,2,1
+Masters,2013,Pune,3,28,Male,No,2,1
+Bachelors,2017,Pune,3,27,Female,No,5,1
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Pune,1,26,Female,No,4,1
+Bachelors,2015,Pune,3,28,Male,No,3,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,New Delhi,2,26,Male,No,4,0
+Masters,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,1
+Bachelors,2013,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2014,Bangalore,3,28,Male,No,3,1
+Bachelors,2014,New Delhi,3,28,Female,No,3,0
+Bachelors,2014,Pune,3,25,Female,No,3,1
+Bachelors,2016,Pune,3,28,Male,No,3,0
+Masters,2017,Bangalore,3,27,Male,No,5,1
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Pune,3,27,Male,No,5,0
+Bachelors,2012,Pune,3,28,Male,No,3,0
+Masters,2017,Pune,3,26,Male,No,4,1
+Bachelors,2013,Bangalore,3,25,Male,Yes,3,0
+Bachelors,2015,Pune,2,28,Female,No,2,1
+PHD,2013,Bangalore,1,26,Male,No,4,0
+Masters,2012,Pune,3,27,Male,No,5,1
+Bachelors,2016,Bangalore,1,28,Male,No,2,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Masters,2017,New Delhi,2,24,Female,Yes,2,1
+Bachelors,2015,Bangalore,1,25,Female,Yes,3,0
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2015,Pune,2,24,Female,No,2,1
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2016,Bangalore,3,27,Female,No,5,0
+Masters,2016,New Delhi,3,25,Female,No,3,1
+Masters,2018,New Delhi,3,26,Male,No,4,1
+Bachelors,2018,Bangalore,3,24,Female,No,2,1
+Bachelors,2017,New Delhi,2,28,Male,No,3,0
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,0
+Bachelors,2013,Pune,3,25,Male,No,3,0
+Bachelors,2015,Pune,3,25,Female,No,3,1
+Bachelors,2014,Bangalore,3,28,Female,No,3,0
+Bachelors,2015,Pune,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,26,Female,No,4,0
+Bachelors,2018,Bangalore,1,25,Male,Yes,3,0
+Masters,2017,Pune,2,28,Female,No,1,0
+Bachelors,2014,Pune,2,25,Female,No,3,1
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2016,Bangalore,3,28,Female,No,3,0
+Bachelors,2014,Bangalore,3,28,Female,No,2,0
+Masters,2017,New Delhi,2,28,Male,No,2,0
+Bachelors,2017,New Delhi,2,24,Female,No,2,0
+PHD,2013,New Delhi,2,25,Male,No,3,1
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,Bangalore,3,26,Female,No,4,0
+Bachelors,2015,Bangalore,1,25,Male,No,3,0
+Bachelors,2016,Bangalore,3,26,Female,No,4,0
+PHD,2014,New Delhi,3,28,Male,No,2,1
+Masters,2018,New Delhi,3,27,Female,No,5,1
+Bachelors,2016,New Delhi,3,27,Female,No,5,0
+Masters,2017,New Delhi,2,25,Male,No,3,1
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,New Delhi,3,27,Female,Yes,5,0
+Bachelors,2017,Pune,2,25,Female,No,3,1
+Bachelors,2018,Pune,3,28,Female,No,1,1
+Bachelors,2014,Bangalore,3,25,Female,No,3,1
+Bachelors,2018,Pune,3,28,Male,No,1,1
+Bachelors,2017,Bangalore,1,26,Female,No,4,0
+Bachelors,2013,Bangalore,3,24,Male,No,2,1
+Bachelors,2012,New Delhi,3,26,Female,No,4,0
+Bachelors,2012,Pune,3,25,Male,No,3,0
+Masters,2013,New Delhi,2,24,Male,No,2,1
+Bachelors,2018,Pune,3,26,Male,No,4,1
+Bachelors,2016,New Delhi,3,28,Female,No,2,0
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Masters,2014,New Delhi,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Pune,2,26,Female,No,4,1
+Bachelors,2014,Pune,3,25,Male,No,3,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2015,Bangalore,3,25,Female,No,3,1
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Masters,2017,Pune,2,26,Female,No,4,0
+Bachelors,2017,New Delhi,3,27,Female,Yes,5,0
+Masters,2017,Pune,1,24,Male,No,2,0
+Masters,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2015,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Masters,2017,Pune,2,24,Male,No,2,1
+Bachelors,2017,Bangalore,3,26,Female,No,4,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,28,Male,Yes,1,1
+Masters,2017,New Delhi,2,24,Male,No,2,0
+Bachelors,2013,Pune,2,25,Female,No,3,1
+Masters,2013,Bangalore,3,27,Male,No,5,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,New Delhi,2,28,Female,Yes,2,1
+Bachelors,2014,Pune,2,24,Female,No,2,1
+Bachelors,2016,Pune,2,27,Female,No,5,1
+Bachelors,2017,Bangalore,3,27,Female,No,5,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2018,Bangalore,3,27,Male,Yes,5,1
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,New Delhi,2,24,Female,No,2,1
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Bachelors,2015,Pune,2,28,Female,Yes,2,1
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2016,Bangalore,3,24,Female,No,2,0
+Masters,2017,Pune,3,24,Male,No,2,1
+Masters,2016,Pune,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Male,Yes,1,1
+Bachelors,2015,Bangalore,1,28,Female,No,1,0
+PHD,2018,Bangalore,3,24,Female,No,2,1
+Bachelors,2016,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,25,Male,No,3,1
+Masters,2016,New Delhi,3,24,Male,No,2,1
+Bachelors,2017,New Delhi,1,25,Female,No,3,0
+Bachelors,2013,Bangalore,3,28,Male,No,3,0
+Bachelors,2018,Bangalore,3,28,Male,No,1,1
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Masters,2014,New Delhi,3,24,Male,No,2,1
+PHD,2012,New Delhi,3,24,Male,No,2,0
+Bachelors,2017,Bangalore,3,25,Female,No,3,0
+Masters,2014,New Delhi,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Bachelors,2014,Pune,3,25,Male,No,3,1
+Bachelors,2012,Bangalore,3,28,Male,No,3,0
+Bachelors,2012,Bangalore,3,25,Female,No,3,0
+Bachelors,2015,Bangalore,3,24,Female,No,2,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Bachelors,2012,Pune,2,26,Male,No,4,0
+Masters,2017,Bangalore,3,28,Female,No,3,1
+Bachelors,2015,Bangalore,3,25,Male,No,3,1
+Bachelors,2012,Bangalore,3,28,Female,No,2,0
+Bachelors,2017,Pune,2,26,Female,No,4,1
+Bachelors,2012,Bangalore,3,27,Female,No,5,0
+Masters,2016,New Delhi,3,28,Male,No,1,0
+Bachelors,2015,Pune,2,28,Female,No,1,1
+Masters,2017,Pune,3,24,Male,No,2,1
+Bachelors,2015,Pune,2,25,Female,No,3,1
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,28,Male,No,3,0
+Bachelors,2016,New Delhi,3,25,Female,Yes,3,0
+Masters,2015,New Delhi,3,26,Male,No,4,1
+Masters,2015,New Delhi,3,28,Female,No,3,0
+Bachelors,2013,New Delhi,1,24,Female,No,2,1
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,New Delhi,3,25,Female,No,3,1
+Bachelors,2017,New Delhi,3,28,Male,No,2,0
+Bachelors,2016,Pune,1,25,Female,No,3,1
+Masters,2013,New Delhi,3,25,Male,Yes,3,1
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Masters,2013,New Delhi,3,25,Female,No,3,1
+Bachelors,2013,Bangalore,1,28,Female,No,2,0
+Masters,2014,Bangalore,3,27,Female,No,5,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,0
+Bachelors,2015,Pune,2,26,Female,Yes,4,1
+Bachelors,2017,New Delhi,3,25,Male,No,3,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Pune,2,27,Male,Yes,5,0
+Bachelors,2015,Pune,2,25,Female,No,3,1
+Bachelors,2016,Bangalore,3,25,Male,Yes,3,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,1
+Bachelors,2016,Pune,3,28,Male,No,1,0
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Masters,2015,Pune,3,28,Female,No,3,0
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Masters,2017,Pune,2,26,Male,No,4,1
+Bachelors,2017,New Delhi,2,27,Female,No,5,0
+Bachelors,2013,Pune,2,26,Female,No,4,1
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,New Delhi,3,28,Female,Yes,3,0
+Masters,2015,Pune,2,24,Female,No,2,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,0
+Masters,2017,New Delhi,2,25,Male,No,3,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2012,Pune,2,25,Male,No,3,1
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,Bangalore,3,27,Female,No,5,1
+Bachelors,2017,New Delhi,3,27,Female,No,5,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2015,Pune,2,24,Female,Yes,2,1
+Bachelors,2017,Bangalore,3,24,Female,Yes,2,0
+PHD,2015,New Delhi,3,28,Female,No,1,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Bachelors,2017,New Delhi,2,25,Female,No,3,0
+Bachelors,2014,Pune,2,25,Female,No,3,1
+Bachelors,2016,New Delhi,3,28,Female,Yes,3,0
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Masters,2017,Pune,2,25,Male,No,3,1
+Masters,2017,Bangalore,2,25,Female,Yes,3,1
+Bachelors,2017,Bangalore,3,24,Female,No,2,1
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Bachelors,2018,Bangalore,3,24,Male,Yes,2,1
+Bachelors,2016,New Delhi,3,28,Male,No,1,0
+Masters,2017,New Delhi,2,24,Male,No,2,1
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,1
+Masters,2014,New Delhi,3,25,Female,No,3,1
+Bachelors,2012,Bangalore,3,27,Female,No,5,0
+Bachelors,2012,New Delhi,3,27,Female,No,5,0
+Bachelors,2017,Bangalore,3,28,Male,No,2,1
+Bachelors,2012,Bangalore,3,28,Male,Yes,3,1
+Bachelors,2012,Pune,3,28,Female,No,2,0
+Bachelors,2018,Bangalore,3,24,Female,No,2,1
+PHD,2016,New Delhi,3,24,Female,No,2,0
+Masters,2017,New Delhi,2,27,Female,No,5,1
+Masters,2013,New Delhi,2,27,Female,No,5,1
+Bachelors,2015,Bangalore,3,26,Female,No,4,0
+Masters,2015,New Delhi,3,28,Female,No,1,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,New Delhi,3,25,Female,No,3,0
+Bachelors,2015,Bangalore,3,26,Female,No,4,1
+Bachelors,2012,Pune,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Masters,2015,Pune,2,25,Female,No,3,1
+Bachelors,2013,New Delhi,3,24,Male,No,2,0
+Masters,2017,New Delhi,2,27,Female,No,5,0
+Masters,2017,Pune,2,26,Male,No,4,0
+Bachelors,2014,Pune,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Bachelors,2014,Bangalore,3,25,Female,No,3,0
+Bachelors,2013,Pune,2,27,Female,No,5,1
+Bachelors,2015,Pune,3,26,Male,No,4,0
+Bachelors,2017,Pune,2,24,Male,No,2,1
+Masters,2017,New Delhi,2,26,Male,No,4,1
+Bachelors,2013,Pune,2,25,Male,Yes,3,1
+Masters,2017,New Delhi,2,25,Female,No,3,1
+Bachelors,2013,Pune,3,26,Female,Yes,4,0
+Bachelors,2014,Pune,3,28,Male,No,2,0
+Bachelors,2016,New Delhi,3,27,Female,No,5,0
+Bachelors,2017,New Delhi,2,28,Male,No,1,0
+Masters,2014,New Delhi,3,27,Male,No,5,0
+Bachelors,2014,New Delhi,3,28,Female,No,1,0
+Bachelors,2015,Bangalore,3,27,Male,No,5,1
+Bachelors,2015,Bangalore,3,24,Male,No,2,1
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,28,Female,No,2,0
+Masters,2017,Pune,2,26,Male,No,4,0
+Masters,2017,New Delhi,2,25,Male,No,3,1
+Bachelors,2016,New Delhi,3,27,Female,No,5,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Pune,3,25,Male,No,3,0
+Bachelors,2012,New Delhi,3,26,Female,Yes,4,0
+Masters,2014,Bangalore,3,27,Male,No,5,1
+Masters,2017,New Delhi,2,26,Male,No,4,0
+Masters,2012,New Delhi,3,26,Male,No,4,1
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Masters,2014,New Delhi,3,25,Male,No,3,0
+Bachelors,2015,Bangalore,3,28,Male,Yes,2,0
+Masters,2012,Pune,3,27,Male,No,5,1
+Bachelors,2017,Bangalore,2,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,1
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Bachelors,2017,Bangalore,3,28,Male,No,1,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,1
+Bachelors,2018,Bangalore,3,28,Female,No,3,1
+Bachelors,2014,New Delhi,3,24,Female,No,2,0
+Bachelors,2017,Bangalore,1,27,Male,No,5,0
+Bachelors,2015,New Delhi,3,24,Female,No,2,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Pune,3,28,Male,No,3,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,25,Female,No,3,0
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Bachelors,2013,Bangalore,3,28,Female,No,3,0
+Bachelors,2017,New Delhi,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Masters,2017,New Delhi,2,26,Female,No,4,1
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,Pune,3,27,Male,No,5,0
+Bachelors,2012,Pune,3,27,Male,No,5,0
+Bachelors,2017,Pune,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,28,Male,No,3,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Masters,2017,Bangalore,3,28,Male,No,1,1
+Bachelors,2018,Bangalore,3,27,Male,Yes,5,1
+Bachelors,2017,Bangalore,3,28,Male,Yes,1,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,0
+Bachelors,2013,Pune,3,24,Female,No,2,0
+Bachelors,2018,New Delhi,3,25,Female,No,3,1
+Bachelors,2014,Bangalore,3,24,Female,No,2,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Masters,2013,New Delhi,1,24,Female,No,2,0
+Masters,2013,New Delhi,1,24,Male,Yes,2,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,2,25,Male,No,3,0
+Bachelors,2015,Bangalore,3,28,Female,No,1,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+PHD,2018,New Delhi,3,24,Female,No,2,1
+Bachelors,2015,Pune,3,28,Male,No,1,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+PHD,2015,Pune,2,28,Female,No,1,0
+Bachelors,2018,Bangalore,3,25,Male,Yes,3,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,27,Female,No,5,1
+Bachelors,2017,Pune,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Masters,2012,New Delhi,3,28,Male,No,2,0
+Bachelors,2012,Bangalore,3,28,Male,No,3,0
+Bachelors,2012,Pune,2,27,Female,No,5,1
+Bachelors,2012,New Delhi,2,27,Female,No,5,1
+Masters,2012,Bangalore,3,27,Male,No,5,1
+Bachelors,2018,Bangalore,3,25,Female,No,3,1
+Masters,2018,Pune,3,27,Male,No,5,1
+Masters,2017,New Delhi,2,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Masters,2017,Bangalore,2,28,Male,Yes,2,1
+Bachelors,2017,Pune,3,27,Male,No,5,0
+Bachelors,2017,Pune,3,28,Female,No,1,0
+Bachelors,2016,Bangalore,3,28,Male,No,3,0
+Bachelors,2014,New Delhi,3,26,Female,No,4,0
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Bachelors,2017,New Delhi,3,26,Female,No,4,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2017,New Delhi,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,25,Female,Yes,3,0
+Bachelors,2017,Bangalore,3,25,Male,Yes,3,0
+Bachelors,2013,Bangalore,3,28,Female,No,1,1
+Bachelors,2013,Pune,3,24,Female,No,2,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Masters,2017,New Delhi,3,25,Male,No,3,1
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Masters,2017,Pune,2,28,Male,No,3,0
+Masters,2017,New Delhi,3,26,Male,No,4,0
+Masters,2017,Pune,2,24,Female,No,2,0
+Masters,2015,Pune,1,26,Female,No,4,0
+Masters,2013,Pune,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Pune,3,24,Male,No,2,0
+PHD,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Bachelors,2014,Pune,3,25,Male,No,3,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,28,Male,No,3,0
+Bachelors,2014,Pune,3,25,Male,No,3,0
+Masters,2018,New Delhi,3,25,Female,No,3,1
+Bachelors,2013,Pune,2,25,Female,No,3,1
+PHD,2013,New Delhi,3,26,Male,No,4,0
+Bachelors,2015,New Delhi,3,28,Female,No,3,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Masters,2018,New Delhi,1,26,Female,No,4,1
+Bachelors,2013,Pune,2,24,Female,No,2,1
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+PHD,2016,Pune,1,25,Female,No,3,1
+Bachelors,2014,Pune,3,26,Male,No,4,1
+Masters,2015,Pune,1,27,Female,No,5,0
+Bachelors,2013,Pune,3,28,Female,No,2,1
+Bachelors,2016,Bangalore,1,27,Female,No,5,0
+Bachelors,2014,New Delhi,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2015,Pune,3,25,Female,No,3,1
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2015,Bangalore,3,25,Female,No,3,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Masters,2016,Bangalore,3,26,Female,No,4,1
+Bachelors,2018,Bangalore,3,27,Female,No,5,1
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Bachelors,2014,New Delhi,3,24,Female,No,2,0
+Bachelors,2013,Pune,3,26,Male,Yes,4,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Pune,2,26,Female,No,4,1
+Bachelors,2016,New Delhi,3,28,Female,No,5,0
+Bachelors,2015,Bangalore,3,28,Male,No,5,0
+Bachelors,2012,Pune,2,26,Female,No,4,1
+Bachelors,2013,New Delhi,3,26,Female,No,4,0
+Bachelors,2013,Pune,3,24,Male,No,2,0
+Masters,2017,New Delhi,3,28,Female,No,3,0
+Bachelors,2012,New Delhi,3,27,Female,No,5,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2012,New Delhi,3,24,Female,No,2,1
+Masters,2015,Pune,1,24,Male,No,2,0
+Masters,2013,New Delhi,3,27,Male,No,5,1
+Bachelors,2017,New Delhi,3,24,Female,No,2,1
+Bachelors,2014,Bangalore,3,28,Male,No,1,1
+Bachelors,2015,Bangalore,3,28,Female,No,1,0
+Masters,2013,New Delhi,3,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Masters,2015,New Delhi,3,24,Male,No,2,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,25,Female,No,3,0
+Bachelors,2017,Bangalore,1,24,Male,No,2,0
+Bachelors,2014,New Delhi,3,27,Female,No,5,1
+Bachelors,2013,Bangalore,3,27,Female,No,5,0
+Bachelors,2012,Bangalore,3,28,Female,No,2,0
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Pune,1,27,Female,No,5,1
+Bachelors,2014,New Delhi,3,27,Female,Yes,5,0
+Bachelors,2014,Bangalore,3,28,Male,No,4,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,28,Female,No,1,0
+Masters,2018,New Delhi,3,25,Female,No,3,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,24,Male,Yes,2,1
+Masters,2017,Pune,2,25,Female,No,3,1
+Bachelors,2017,New Delhi,2,27,Female,No,5,0
+Bachelors,2016,Bangalore,3,28,Male,No,3,1
+Bachelors,2015,Pune,2,25,Female,Yes,3,1
+Masters,2017,New Delhi,3,24,Male,No,2,0
+Bachelors,2015,Bangalore,3,28,Male,No,4,0
+Masters,2014,Pune,3,26,Male,No,4,1
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Masters,2013,New Delhi,1,24,Female,No,2,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2013,Bangalore,3,28,Male,No,1,0
+Bachelors,2016,Pune,2,28,Female,No,4,1
+Bachelors,2012,Bangalore,3,28,Male,No,1,0
+Bachelors,2017,New Delhi,3,25,Female,No,3,0
+Bachelors,2018,Bangalore,3,25,Male,Yes,3,1
+Bachelors,2012,Pune,1,27,Female,No,5,1
+Masters,2017,New Delhi,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,25,Female,No,3,1
+Bachelors,2017,Bangalore,3,28,Male,No,2,0
+Bachelors,2015,Pune,3,25,Female,No,3,1
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2018,Bangalore,3,24,Male,Yes,2,1
+Bachelors,2016,Bangalore,3,28,Male,Yes,4,0
+Bachelors,2014,Bangalore,3,26,Female,No,4,0
+Bachelors,2017,Bangalore,3,28,Male,No,1,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,New Delhi,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,27,Female,No,5,0
+Bachelors,2014,Bangalore,3,27,Female,Yes,5,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+PHD,2015,New Delhi,2,24,Female,No,2,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2017,New Delhi,2,24,Female,No,2,0
+PHD,2015,Pune,1,25,Female,No,3,1
+Bachelors,2017,New Delhi,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,25,Female,No,3,0
+Bachelors,2014,Bangalore,3,24,Male,Yes,2,0
+Masters,2018,New Delhi,3,26,Male,Yes,4,1
+Bachelors,2015,Bangalore,2,25,Female,No,3,1
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Masters,2012,New Delhi,3,28,Male,Yes,2,0
+Bachelors,2015,Bangalore,3,24,Female,No,2,0
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+PHD,2018,New Delhi,3,27,Female,No,5,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2012,Bangalore,3,28,Male,No,5,0
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2013,Bangalore,3,25,Male,No,3,0
+Masters,2018,Pune,3,24,Male,No,2,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,New Delhi,3,28,Female,No,2,0
+Masters,2017,New Delhi,2,27,Male,Yes,5,1
+Bachelors,2018,Pune,2,27,Female,No,5,1
+Masters,2014,New Delhi,3,28,Female,No,4,0
+Masters,2017,New Delhi,3,25,Female,No,3,0
+Masters,2017,Bangalore,3,26,Female,No,4,0
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Bachelors,2013,New Delhi,3,27,Female,No,5,0
+Masters,2017,New Delhi,1,26,Female,No,4,0
+Bachelors,2013,New Delhi,3,27,Female,No,5,0
+Bachelors,2012,New Delhi,3,28,Male,No,3,0
+Masters,2017,Pune,2,27,Male,No,5,1
+Bachelors,2017,New Delhi,3,26,Female,No,4,0
+Bachelors,2013,Bangalore,3,28,Female,No,4,1
+Masters,2012,New Delhi,3,27,Male,Yes,5,1
+Bachelors,2017,Pune,2,24,Male,No,2,0
+Masters,2017,New Delhi,3,25,Female,No,3,1
+Bachelors,2018,Bangalore,3,25,Female,Yes,3,1
+Bachelors,2016,Bangalore,3,28,Male,Yes,4,0
+Masters,2017,New Delhi,3,28,Male,No,2,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2014,Pune,3,24,Female,No,2,1
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Bachelors,2017,Bangalore,1,26,Female,No,4,0
+Bachelors,2015,Bangalore,3,28,Female,No,3,0
+Bachelors,2013,Bangalore,3,28,Male,No,3,1
+Bachelors,2012,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2013,New Delhi,2,27,Female,No,5,1
+Bachelors,2016,New Delhi,3,24,Female,No,2,0
+Bachelors,2015,Pune,2,28,Female,No,2,1
+Bachelors,2015,New Delhi,2,25,Female,No,3,1
+Bachelors,2014,Pune,3,24,Male,No,2,0
+Bachelors,2017,New Delhi,3,27,Female,No,5,0
+Bachelors,2012,New Delhi,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,28,Male,No,0,0
+Bachelors,2012,Pune,3,28,Male,No,5,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2016,Bangalore,1,26,Male,No,4,0
+Masters,2017,New Delhi,2,28,Female,Yes,2,1
+Masters,2017,New Delhi,2,25,Male,No,3,1
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Male,No,0,0
+Bachelors,2014,Pune,3,27,Male,No,5,1
+Bachelors,2016,Pune,2,26,Female,No,4,1
+Bachelors,2018,Bangalore,3,27,Female,Yes,5,1
+Bachelors,2012,Pune,3,28,Male,No,4,0
+Bachelors,2013,Pune,2,26,Female,No,4,1
+Bachelors,2014,Bangalore,3,28,Female,No,3,0
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Bachelors,2012,New Delhi,1,27,Female,No,5,0
+Bachelors,2017,New Delhi,2,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Masters,2012,New Delhi,3,24,Male,No,2,0
+Bachelors,2013,New Delhi,2,25,Female,No,3,1
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Masters,2013,Pune,3,25,Male,Yes,3,1
+Bachelors,2013,Pune,3,24,Female,No,2,0
+Bachelors,2015,Pune,3,24,Female,No,2,1
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Masters,2012,New Delhi,3,26,Female,No,4,1
+Bachelors,2015,Pune,3,25,Male,No,3,0
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2013,Bangalore,3,28,Male,No,3,0
+Bachelors,2016,Pune,2,28,Female,No,0,1
+Bachelors,2012,New Delhi,3,24,Male,No,2,0
+Bachelors,2015,New Delhi,3,28,Male,No,1,0
+Bachelors,2017,Bangalore,1,24,Male,No,2,0
+Masters,2017,Pune,2,28,Female,No,4,0
+Bachelors,2017,Pune,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,27,Female,No,5,0
+Bachelors,2015,Pune,3,28,Male,No,2,0
+Bachelors,2016,Bangalore,3,28,Female,No,5,0
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Bachelors,2015,Bangalore,3,28,Female,No,5,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,1,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,27,Female,No,5,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,1
+Bachelors,2015,Pune,3,28,Female,No,4,1
+Masters,2017,Bangalore,2,24,Female,Yes,2,1
+Bachelors,2014,Bangalore,3,28,Male,No,2,0
+Masters,2017,Pune,2,24,Female,No,2,1
+Bachelors,2014,New Delhi,3,26,Female,No,4,1
+Bachelors,2015,Pune,2,28,Female,No,3,1
+Masters,2013,Pune,2,28,Male,No,5,1
+Bachelors,2013,New Delhi,1,28,Female,No,5,1
+Bachelors,2015,Pune,2,26,Female,Yes,4,1
+Masters,2015,New Delhi,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,28,Male,No,2,1
+Bachelors,2012,Pune,3,28,Male,No,2,0
+Bachelors,2014,Pune,3,27,Female,No,5,1
+Masters,2018,New Delhi,3,24,Male,No,2,1
+Bachelors,2018,Bangalore,3,25,Male,Yes,3,1
+Bachelors,2017,New Delhi,2,25,Male,No,3,0
+Bachelors,2014,Pune,3,24,Female,No,2,1
+Bachelors,2012,New Delhi,3,26,Female,No,4,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,28,Male,No,4,0
+Bachelors,2018,Bangalore,3,26,Male,Yes,4,1
+Bachelors,2013,Pune,2,26,Male,No,4,0
+Bachelors,2013,Pune,2,25,Female,No,3,1
+Bachelors,2018,Pune,3,25,Male,Yes,3,1
+Bachelors,2013,Bangalore,3,25,Female,No,3,0
+Bachelors,2014,Bangalore,3,28,Male,No,4,0
+Masters,2017,New Delhi,3,24,Female,No,2,0
+Masters,2017,Pune,2,27,Female,No,5,0
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,Pune,3,27,Female,No,5,1
+Masters,2017,New Delhi,2,28,Male,No,4,0
+Bachelors,2017,New Delhi,2,25,Male,No,3,0
+Bachelors,2017,Pune,3,25,Male,Yes,3,1
+Masters,2017,Pune,2,24,Female,No,2,1
+Bachelors,2013,Pune,3,27,Male,Yes,5,1
+Bachelors,2016,Bangalore,3,26,Female,No,4,1
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,1
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Pune,2,27,Female,No,5,1
+Masters,2017,Bangalore,2,28,Male,No,2,0
+Masters,2017,New Delhi,3,24,Female,No,2,1
+Bachelors,2017,Pune,3,24,Male,No,2,0
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Masters,2017,New Delhi,2,28,Male,No,3,0
+Bachelors,2015,Bangalore,3,26,Female,Yes,4,0
+Bachelors,2018,Pune,3,26,Female,No,4,1
+Bachelors,2013,Bangalore,3,25,Male,Yes,3,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Masters,2018,Pune,3,28,Male,No,2,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,27,Female,No,5,0
+PHD,2016,New Delhi,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,2,25,Male,No,3,0
+Bachelors,2015,New Delhi,3,28,Female,No,2,0
+Bachelors,2013,Pune,2,26,Female,No,4,1
+Bachelors,2017,Bangalore,3,27,Female,No,5,0
+Bachelors,2015,Pune,2,24,Female,No,2,1
+Bachelors,2017,Bangalore,3,27,Female,No,5,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,1
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Pune,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,1,25,Male,No,3,0
+Masters,2017,New Delhi,2,25,Female,No,3,0
+PHD,2015,Pune,3,28,Male,No,0,0
+Bachelors,2015,Bangalore,3,28,Male,No,3,0
+Bachelors,2016,Bangalore,3,28,Male,No,5,0
+PHD,2013,New Delhi,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2015,Pune,2,26,Female,Yes,4,1
+Bachelors,2017,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2014,New Delhi,3,26,Male,No,4,0
+Masters,2013,Bangalore,3,27,Male,No,5,1
+Bachelors,2016,Pune,3,24,Male,Yes,2,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Pune,2,28,Female,No,2,1
+Masters,2017,Bangalore,2,24,Male,No,2,1
+Masters,2017,New Delhi,2,24,Male,No,2,1
+Masters,2015,Pune,2,24,Female,No,2,1
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2016,Pune,2,27,Female,No,5,1
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Masters,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2016,Bangalore,1,25,Female,No,3,0
+PHD,2014,Bangalore,1,25,Female,No,3,0
+Bachelors,2013,Bangalore,3,25,Female,No,3,0
+Bachelors,2014,New Delhi,3,24,Male,No,2,0
+Bachelors,2015,Pune,2,28,Female,Yes,2,1
+Bachelors,2014,New Delhi,3,28,Male,No,5,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2018,Pune,3,26,Male,No,4,1
+Masters,2015,Pune,2,28,Female,No,2,0
+Masters,2013,New Delhi,3,28,Male,No,2,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Masters,2015,New Delhi,2,26,Female,No,4,0
+Bachelors,2016,New Delhi,3,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,24,Female,No,2,0
+Masters,2017,Pune,3,24,Female,No,2,0
+Bachelors,2014,Pune,3,25,Female,No,3,1
+Bachelors,2015,Pune,3,27,Female,No,5,1
+Bachelors,2017,New Delhi,2,28,Male,No,0,0
+Bachelors,2017,New Delhi,3,25,Female,No,3,0
+Bachelors,2012,Pune,3,24,Male,No,2,1
+Masters,2016,New Delhi,3,25,Male,No,3,1
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Masters,2014,New Delhi,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,24,Female,No,2,1
+Bachelors,2014,New Delhi,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,New Delhi,3,24,Female,No,2,1
+Bachelors,2012,Bangalore,3,28,Male,No,1,0
+Bachelors,2014,Bangalore,1,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,28,Male,Yes,3,0
+Bachelors,2015,Pune,1,25,Female,No,3,1
+Bachelors,2015,Pune,2,24,Female,Yes,2,1
+Bachelors,2017,Pune,2,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,28,Male,No,0,0
+Bachelors,2016,Bangalore,3,28,Male,No,2,0
+Bachelors,2013,Pune,3,28,Female,Yes,3,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Masters,2015,New Delhi,3,25,Male,No,3,0
+Bachelors,2012,New Delhi,3,28,Female,No,4,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Masters,2017,New Delhi,3,25,Male,No,3,1
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Bachelors,2017,Bangalore,3,26,Female,No,4,0
+Masters,2017,New Delhi,2,25,Male,Yes,3,1
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Bachelors,2017,Pune,3,25,Female,No,3,1
+Bachelors,2014,New Delhi,3,28,Female,Yes,2,0
+Bachelors,2016,Bangalore,3,27,Female,No,5,0
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Bachelors,2012,Bangalore,3,27,Female,Yes,5,0
+Bachelors,2017,New Delhi,3,27,Female,No,5,0
+Bachelors,2016,Bangalore,2,25,Male,No,3,1
+Bachelors,2016,Bangalore,3,28,Female,No,4,0
+Bachelors,2017,New Delhi,2,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,24,Female,No,2,0
+Bachelors,2013,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,New Delhi,2,25,Female,No,3,0
+Bachelors,2015,Pune,3,24,Male,No,2,0
+Bachelors,2012,New Delhi,3,25,Female,No,3,0
+PHD,2017,New Delhi,3,27,Female,No,5,0
+Bachelors,2014,Bangalore,3,25,Female,No,3,1
+Masters,2017,Bangalore,3,28,Male,No,2,0
+Bachelors,2016,Pune,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,25,Male,Yes,3,0
+Bachelors,2012,New Delhi,3,27,Male,No,5,0
+Bachelors,2012,Pune,3,25,Female,No,3,1
+Masters,2015,New Delhi,3,27,Female,No,5,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,1
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2018,New Delhi,3,26,Female,No,4,1
+Bachelors,2017,Pune,2,26,Female,No,4,1
+Bachelors,2014,Pune,2,24,Female,No,2,1
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,2,27,Male,No,5,0
+PHD,2012,New Delhi,3,28,Female,No,1,0
+Masters,2012,New Delhi,3,26,Female,No,4,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,28,Female,No,0,1
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2016,Pune,2,24,Female,No,2,1
+Bachelors,2015,Bangalore,1,24,Female,No,2,1
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Masters,2014,Pune,3,27,Male,No,5,0
+Masters,2017,New Delhi,2,27,Male,No,5,1
+Masters,2017,New Delhi,1,25,Female,No,3,0
+Masters,2012,Pune,3,28,Male,No,0,1
+Masters,2012,New Delhi,3,28,Male,No,2,1
+Masters,2013,New Delhi,2,24,Male,No,2,1
+Bachelors,2015,Pune,3,25,Female,No,3,1
+Masters,2017,New Delhi,3,28,Male,No,5,0
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Masters,2015,Bangalore,3,28,Male,No,1,1
+Bachelors,2018,Bangalore,3,27,Female,Yes,5,1
+Bachelors,2015,Bangalore,3,24,Male,No,2,1
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2013,New Delhi,3,25,Female,No,3,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2018,New Delhi,3,28,Female,No,0,1
+Bachelors,2013,Bangalore,3,25,Female,No,3,0
+PHD,2012,Pune,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Female,No,3,0
+Bachelors,2015,Pune,3,24,Male,No,2,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2012,New Delhi,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,26,Female,Yes,4,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,24,Female,No,2,1
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+PHD,2018,Bangalore,3,27,Female,No,5,1
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,New Delhi,1,26,Female,No,4,1
+Bachelors,2015,Pune,2,24,Female,No,2,1
+Bachelors,2013,Pune,3,27,Male,No,5,0
+PHD,2016,New Delhi,3,24,Female,No,2,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,28,Male,No,5,0
+Bachelors,2015,Bangalore,3,26,Female,No,4,0
+Bachelors,2016,Bangalore,3,27,Female,No,5,0
+Bachelors,2017,Pune,3,25,Female,No,3,1
+Masters,2017,New Delhi,2,26,Male,No,4,1
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,26,Female,No,4,1
+Bachelors,2015,Pune,2,25,Female,No,3,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Pune,2,28,Male,No,1,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+PHD,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,New Delhi,3,25,Female,Yes,3,1
+Bachelors,2017,Bangalore,1,28,Female,No,3,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,New Delhi,3,27,Male,No,5,0
+Masters,2013,Pune,2,28,Male,No,2,1
+Bachelors,2013,New Delhi,3,25,Female,Yes,3,1
+Masters,2017,New Delhi,2,26,Male,No,4,0
+Masters,2016,New Delhi,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,28,Female,Yes,5,0
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Bachelors,2012,Bangalore,1,27,Male,No,5,1
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2016,Bangalore,3,24,Female,No,2,0
+Bachelors,2017,Pune,3,26,Male,No,4,0
+Bachelors,2017,New Delhi,3,25,Female,No,3,0
+Bachelors,2015,Pune,3,28,Female,Yes,5,1
+Bachelors,2015,Bangalore,3,26,Male,No,4,1
+Masters,2015,Pune,2,26,Female,Yes,4,1
+Masters,2015,Pune,3,25,Male,No,3,1
+Bachelors,2016,Pune,3,27,Female,No,5,1
+Bachelors,2013,Bangalore,3,25,Male,No,3,0
+Bachelors,2018,Pune,3,26,Male,Yes,4,1
+Bachelors,2014,Bangalore,3,27,Female,No,5,0
+Bachelors,2017,Bangalore,1,25,Male,No,3,0
+Bachelors,2015,New Delhi,3,26,Male,No,4,0
+Bachelors,2015,Pune,3,24,Female,No,2,1
+Bachelors,2015,Bangalore,3,28,Male,No,2,0
+Bachelors,2014,Pune,2,26,Female,No,4,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2018,New Delhi,3,28,Female,No,5,1
+Bachelors,2015,Bangalore,3,28,Male,No,0,1
+Bachelors,2016,New Delhi,3,28,Female,No,3,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2015,Pune,3,24,Female,No,2,1
+Masters,2018,New Delhi,3,28,Male,No,2,1
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,1
+Bachelors,2017,New Delhi,2,28,Female,No,0,0
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2012,Bangalore,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,1,24,Male,No,2,0
+Bachelors,2016,Pune,3,27,Male,No,5,0
+Bachelors,2013,Pune,3,24,Male,No,2,0
+Masters,2017,Pune,2,26,Female,No,4,1
+Bachelors,2017,New Delhi,3,26,Male,No,4,0
+Bachelors,2018,Pune,3,25,Female,No,3,1
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Bachelors,2015,Pune,3,24,Male,Yes,2,0
+Bachelors,2013,Bangalore,3,24,Female,No,2,1
+Bachelors,2013,Pune,2,28,Male,Yes,0,1
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,28,Female,No,5,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,26,Female,No,4,0
+Masters,2017,Bangalore,2,28,Male,No,2,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,27,Female,No,5,0
+Masters,2018,Bangalore,3,28,Male,No,2,1
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2012,Pune,3,24,Male,No,2,0
+Bachelors,2016,New Delhi,3,28,Male,No,0,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,1
+Bachelors,2012,Bangalore,1,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,28,Female,No,5,0
+Bachelors,2014,Pune,3,25,Male,No,3,0
+Bachelors,2015,Pune,3,25,Male,No,3,0
+Bachelors,2017,Pune,2,28,Male,No,0,1
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Bachelors,2015,Pune,3,26,Female,No,4,1
+Bachelors,2015,Bangalore,2,28,Female,No,3,1
+Bachelors,2012,Pune,3,25,Male,No,3,0
+Bachelors,2013,Bangalore,3,25,Male,Yes,3,1
+Bachelors,2016,New Delhi,3,26,Male,No,4,0
+PHD,2018,New Delhi,3,24,Female,No,2,1
+Bachelors,2014,Bangalore,3,27,Female,No,5,0
+Masters,2017,New Delhi,2,26,Male,Yes,4,1
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Masters,2017,Pune,2,25,Female,No,3,0
+Bachelors,2017,New Delhi,3,28,Female,No,2,0
+Bachelors,2014,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+Bachelors,2018,Pune,3,24,Male,No,2,1
+Bachelors,2015,Bangalore,3,27,Female,Yes,5,1
+Bachelors,2015,New Delhi,3,28,Female,No,3,0
+Bachelors,2015,Pune,3,27,Female,No,5,1
+Bachelors,2015,Bangalore,3,28,Male,No,5,0
+Bachelors,2015,New Delhi,2,27,Female,Yes,5,1
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Masters,2017,New Delhi,3,27,Female,No,5,1
+Bachelors,2017,Pune,2,26,Female,No,4,1
+Bachelors,2015,Pune,3,27,Female,No,5,1
+Bachelors,2018,Pune,3,27,Female,No,5,1
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+PHD,2013,New Delhi,3,27,Female,No,5,1
+Bachelors,2016,Bangalore,3,28,Male,No,2,0
+Bachelors,2012,Bangalore,3,25,Female,Yes,3,0
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Pune,2,24,Female,No,2,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,1
+Bachelors,2014,Pune,3,27,Male,Yes,5,0
+Bachelors,2013,Bangalore,3,24,Male,Yes,2,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,1
+Bachelors,2017,Pune,2,24,Female,No,2,1
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Masters,2013,Bangalore,3,26,Female,No,4,1
+Bachelors,2012,Pune,3,25,Female,No,3,1
+Bachelors,2015,New Delhi,3,28,Female,No,2,0
+Masters,2017,New Delhi,2,24,Female,No,2,0
+Masters,2013,New Delhi,3,26,Male,No,4,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+PHD,2016,New Delhi,3,24,Female,No,2,0
+Bachelors,2017,New Delhi,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,3,28,Female,No,0,0
+PHD,2016,New Delhi,3,27,Female,No,5,0
+Masters,2014,Bangalore,3,28,Female,No,4,1
+Bachelors,2014,Bangalore,3,28,Female,No,2,0
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Masters,2015,New Delhi,3,28,Male,No,0,0
+Bachelors,2015,Pune,2,25,Female,No,3,1
+Masters,2017,Pune,2,27,Male,No,5,1
+Bachelors,2014,Pune,2,25,Female,No,3,1
+Bachelors,2015,Pune,2,28,Female,Yes,2,1
+Bachelors,2013,Pune,3,25,Male,No,3,0
+Bachelors,2013,Pune,1,26,Female,No,4,1
+Bachelors,2012,Pune,2,27,Female,No,5,1
+Masters,2017,New Delhi,3,28,Male,No,0,0
+Bachelors,2012,Bangalore,3,28,Female,No,1,0
+Bachelors,2015,Pune,2,25,Female,Yes,3,1
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,24,Female,No,2,0
+Bachelors,2018,New Delhi,3,24,Female,No,2,1
+Bachelors,2017,New Delhi,3,27,Female,Yes,5,0
+PHD,2012,Pune,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,25,Male,No,3,1
+Bachelors,2015,New Delhi,3,24,Female,No,2,0
+Bachelors,2013,Pune,3,24,Female,No,2,0
+Bachelors,2016,Pune,3,24,Male,No,2,0
+Bachelors,2018,Pune,3,24,Male,Yes,2,1
+Bachelors,2015,Bangalore,3,27,Female,Yes,5,1
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2012,Pune,3,24,Female,No,2,1
+Masters,2017,New Delhi,3,27,Male,No,5,1
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,New Delhi,3,25,Female,No,3,0
+Bachelors,2018,Bangalore,3,24,Female,No,2,1
+Bachelors,2014,Bangalore,3,28,Male,No,4,0
+Bachelors,2013,Pune,1,26,Female,No,4,1
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,1
+Bachelors,2013,Bangalore,3,25,Female,No,3,1
+Bachelors,2016,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2017,Pune,3,26,Male,No,4,0
+Bachelors,2018,Pune,2,28,Female,No,5,1
+Masters,2017,Pune,2,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,25,Female,No,3,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,New Delhi,2,25,Female,No,3,0
+Bachelors,2018,Pune,3,27,Female,No,5,1
+Bachelors,2016,Pune,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,1,24,Male,No,2,0
+Bachelors,2012,Bangalore,1,28,Male,No,3,0
+Bachelors,2016,Pune,2,28,Female,No,3,1
+Bachelors,2016,Pune,3,24,Male,No,2,0
+Bachelors,2017,Bangalore,3,28,Male,No,3,0
+Bachelors,2017,Pune,2,28,Male,No,3,0
+Bachelors,2017,Bangalore,3,25,Female,No,3,1
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Masters,2013,New Delhi,3,25,Male,No,3,1
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2013,Pune,2,24,Female,No,2,1
+Bachelors,2017,Bangalore,3,28,Male,No,1,1
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2015,Pune,1,24,Female,No,2,1
+Masters,2013,New Delhi,3,24,Female,Yes,2,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Masters,2013,New Delhi,3,25,Male,No,3,1
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Pune,2,28,Female,No,3,1
+Masters,2015,New Delhi,3,28,Male,No,2,0
+Bachelors,2015,Bangalore,3,28,Male,No,5,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Pune,3,27,Male,No,5,0
+Bachelors,2015,Pune,2,28,Female,No,5,1
+Masters,2017,New Delhi,2,26,Female,No,4,1
+Bachelors,2016,New Delhi,3,26,Female,No,4,0
+Bachelors,2016,Bangalore,3,26,Female,No,4,0
+Bachelors,2013,New Delhi,3,27,Female,No,5,0
+Bachelors,2014,Bangalore,3,28,Male,No,3,0
+Bachelors,2017,New Delhi,3,25,Male,No,3,0
+Bachelors,2015,Bangalore,1,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,24,Female,No,2,0
+Bachelors,2014,Pune,2,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,24,Male,No,2,1
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2012,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2012,Bangalore,3,28,Male,No,1,0
+Masters,2017,New Delhi,2,25,Female,No,3,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2016,Pune,2,27,Female,No,5,1
+Bachelors,2017,Pune,3,28,Male,No,3,0
+Masters,2017,New Delhi,3,28,Male,No,2,0
+PHD,2018,Pune,3,26,Male,No,4,1
+Masters,2017,New Delhi,2,24,Male,No,2,1
+Bachelors,2014,Bangalore,3,28,Male,No,0,0
+Masters,2015,Pune,3,26,Female,No,4,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,1
+Bachelors,2016,New Delhi,3,28,Female,No,4,0
+Bachelors,2012,Pune,3,26,Male,No,4,0
+Masters,2015,Bangalore,2,27,Female,No,5,1
+Masters,2017,Pune,1,28,Male,No,0,0
+Masters,2015,New Delhi,3,28,Female,No,2,0
+Bachelors,2017,Bangalore,3,26,Male,No,4,1
+Bachelors,2017,Pune,3,28,Female,No,4,1
+Bachelors,2015,Pune,3,25,Male,No,3,0
+Masters,2017,New Delhi,2,27,Female,No,5,0
+Masters,2015,Pune,2,27,Female,No,5,0
+Bachelors,2015,Bangalore,3,25,Male,No,3,1
+Bachelors,2013,Bangalore,3,28,Female,No,1,0
+Bachelors,2015,Pune,3,25,Female,No,3,1
+Bachelors,2012,Bangalore,3,28,Female,No,2,1
+Bachelors,2016,Pune,3,27,Female,No,5,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+PHD,2018,New Delhi,3,26,Male,No,4,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Pune,3,28,Male,No,2,1
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,New Delhi,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,28,Male,Yes,1,0
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Bachelors,2016,Bangalore,1,24,Male,No,2,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Pune,2,27,Female,No,5,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,3,27,Male,No,5,0
+Masters,2018,New Delhi,3,24,Male,No,2,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,1
+Bachelors,2017,Bangalore,3,28,Male,Yes,3,0
+Bachelors,2017,New Delhi,3,26,Female,No,4,0
+Bachelors,2016,Pune,3,28,Male,No,3,0
+Bachelors,2015,New Delhi,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,1
+Bachelors,2017,Pune,2,24,Female,No,2,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,1
+PHD,2016,New Delhi,1,26,Male,No,4,0
+Bachelors,2018,Bangalore,3,24,Female,No,2,1
+Bachelors,2017,Bangalore,2,28,Female,No,1,0
+Bachelors,2013,Bangalore,3,24,Female,No,2,0
+Masters,2014,New Delhi,3,25,Female,No,3,0
+Bachelors,2012,Pune,1,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,28,Male,No,5,0
+Bachelors,2013,Bangalore,3,28,Male,No,2,1
+Masters,2017,Pune,2,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,28,Male,Yes,0,0
+Bachelors,2014,New Delhi,3,25,Male,No,3,0
+Bachelors,2013,Bangalore,3,25,Female,No,3,1
+Bachelors,2017,Bangalore,3,24,Female,No,2,1
+Bachelors,2015,Bangalore,3,26,Female,No,4,0
+Bachelors,2014,Bangalore,3,28,Male,No,4,0
+Bachelors,2017,New Delhi,2,28,Male,No,0,0
+Masters,2017,New Delhi,3,24,Female,No,2,0
+PHD,2017,Pune,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,28,Female,No,5,0
+Bachelors,2017,New Delhi,3,25,Female,No,3,0
+Masters,2017,Bangalore,3,25,Male,No,3,0
+Masters,2017,Bangalore,1,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,1
+Bachelors,2016,Bangalore,3,27,Male,No,5,1
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Pune,3,25,Male,No,3,1
+Bachelors,2018,Bangalore,3,25,Female,No,3,1
+Masters,2012,Pune,3,26,Male,No,4,1
+PHD,2016,Bangalore,3,25,Male,No,3,0
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,New Delhi,2,25,Male,No,3,1
+Bachelors,2015,New Delhi,3,27,Female,No,5,0
+Bachelors,2017,Pune,3,26,Male,No,4,0
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Masters,2018,New Delhi,3,25,Female,No,3,1
+Masters,2017,Pune,2,25,Male,No,3,0
+Masters,2014,Bangalore,3,24,Female,No,2,0
+Bachelors,2014,Pune,3,28,Female,No,2,1
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Pune,3,26,Male,No,4,0
+Bachelors,2014,Pune,2,28,Female,No,0,1
+Bachelors,2017,New Delhi,3,25,Female,Yes,3,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,26,Female,No,4,0
+Masters,2017,Bangalore,2,26,Male,No,4,1
+Bachelors,2017,New Delhi,3,25,Female,No,3,0
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Bachelors,2014,New Delhi,3,27,Female,No,5,0
+Bachelors,2017,Bangalore,3,28,Male,No,5,0
+Bachelors,2015,Bangalore,1,24,Female,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,1
+Bachelors,2018,Bangalore,3,26,Female,No,4,1
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Bachelors,2016,Pune,3,28,Female,No,4,1
+Bachelors,2016,Bangalore,3,25,Male,No,3,0
+Bachelors,2015,Pune,3,27,Female,Yes,5,1
+Bachelors,2015,Bangalore,3,26,Male,No,4,1
+Bachelors,2015,Pune,3,28,Female,Yes,5,1
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Masters,2017,Pune,2,25,Male,No,3,0
+Bachelors,2015,Pune,2,25,Female,Yes,3,1
+Bachelors,2015,Pune,2,24,Female,No,2,1
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Bachelors,2014,New Delhi,3,24,Female,No,2,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,1
+Bachelors,2015,Pune,2,28,Female,No,5,1
+Bachelors,2015,New Delhi,2,27,Female,No,5,1
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Masters,2016,New Delhi,3,25,Female,No,3,0
+Bachelors,2012,Pune,3,24,Male,Yes,2,0
+Bachelors,2015,New Delhi,3,24,Female,No,2,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Masters,2017,Pune,2,27,Female,No,5,0
+Bachelors,2013,Bangalore,1,24,Female,No,2,1
+PHD,2017,Pune,3,28,Male,No,1,0
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Bachelors,2015,Pune,2,24,Female,No,2,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,New Delhi,3,28,Male,No,4,0
+Masters,2017,New Delhi,2,28,Female,No,2,0
+PHD,2014,New Delhi,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2014,New Delhi,3,24,Male,No,2,0
+Bachelors,2013,New Delhi,3,24,Female,No,2,0
+Masters,2017,New Delhi,3,26,Male,No,4,1
+Bachelors,2014,Pune,2,27,Male,No,5,0
+Masters,2013,Bangalore,3,25,Male,No,3,1
+Masters,2012,New Delhi,3,27,Female,No,5,1
+Masters,2017,Bangalore,2,25,Male,No,3,0
+Bachelors,2012,New Delhi,3,28,Male,No,5,0
+Bachelors,2014,Bangalore,3,28,Male,No,0,0
+Bachelors,2017,New Delhi,3,28,Female,No,4,0
+Bachelors,2016,Pune,3,27,Male,No,5,1
+Bachelors,2017,New Delhi,2,27,Female,No,5,0
+PHD,2014,Bangalore,3,28,Female,No,0,0
+Bachelors,2013,Pune,2,25,Male,No,3,1
+Bachelors,2017,Pune,3,28,Male,No,3,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,2,24,Female,No,2,1
+Masters,2017,New Delhi,2,25,Male,No,3,0
+Bachelors,2014,Pune,3,24,Male,No,2,0
+Bachelors,2013,New Delhi,1,25,Female,No,3,1
+Bachelors,2015,Pune,3,28,Male,No,2,0
+Masters,2017,New Delhi,3,28,Male,No,1,1
+Bachelors,2017,New Delhi,2,27,Female,No,5,0
+Bachelors,2018,Pune,3,24,Male,No,2,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,27,Female,Yes,5,0
+Masters,2017,New Delhi,1,26,Female,No,4,1
+Masters,2017,Bangalore,2,26,Female,No,4,0
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Masters,2014,New Delhi,1,25,Female,No,3,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,28,Female,No,5,0
+Masters,2012,New Delhi,3,25,Male,No,3,1
+Bachelors,2013,Bangalore,3,28,Male,No,2,1
+Bachelors,2014,Bangalore,1,25,Male,No,3,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2013,Pune,3,28,Male,No,0,0
+Bachelors,2015,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2014,Pune,1,28,Female,No,3,1
+Masters,2017,Pune,2,25,Female,No,3,1
+Masters,2013,New Delhi,3,28,Female,No,2,0
+Masters,2017,Bangalore,2,27,Female,No,5,1
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,New Delhi,3,26,Female,No,4,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2017,New Delhi,2,28,Female,No,3,0
+Bachelors,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2013,Pune,2,27,Female,No,5,1
+Masters,2015,Bangalore,3,27,Female,No,5,0
+Masters,2017,Pune,3,27,Female,No,5,1
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,25,Female,No,3,0
+Bachelors,2016,Bangalore,3,26,Female,No,4,0
+Bachelors,2016,Bangalore,3,26,Female,No,4,0
+Bachelors,2014,New Delhi,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,28,Male,No,3,0
+Bachelors,2012,Pune,3,25,Male,No,3,0
+Masters,2014,Bangalore,3,28,Female,No,3,1
+Bachelors,2016,New Delhi,3,26,Male,No,4,0
+Bachelors,2012,New Delhi,3,24,Female,No,2,0
+Bachelors,2015,Pune,2,28,Female,No,4,1
+Bachelors,2017,New Delhi,2,24,Male,No,2,0
+Bachelors,2015,New Delhi,3,25,Male,No,3,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,28,Female,No,3,1
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Masters,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2016,Bangalore,3,25,Male,Yes,3,1
+Bachelors,2016,Bangalore,3,26,Male,Yes,4,0
+Masters,2017,Bangalore,2,24,Female,No,2,0
+Bachelors,2017,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2014,Pune,2,27,Female,No,5,1
+Masters,2017,New Delhi,1,24,Female,No,2,0
+Bachelors,2014,Bangalore,3,28,Male,No,1,0
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Bachelors,2014,Pune,3,28,Male,No,0,0
+Masters,2013,New Delhi,3,28,Male,No,1,0
+Masters,2017,Pune,2,27,Female,No,5,0
+Bachelors,2017,Pune,3,28,Male,No,1,0
+Bachelors,2016,New Delhi,3,26,Female,No,4,0
+PHD,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2013,Pune,3,25,Male,No,3,0
+Masters,2017,Pune,3,25,Male,No,3,0
+Bachelors,2017,Pune,2,24,Female,No,2,1
+Bachelors,2017,New Delhi,3,24,Female,No,2,0
+PHD,2014,Pune,3,24,Male,No,2,0
+PHD,2017,Bangalore,3,24,Female,No,2,0
+Masters,2017,New Delhi,2,26,Male,No,4,1
+Bachelors,2013,Pune,2,24,Male,Yes,2,1
+PHD,2016,New Delhi,3,27,Female,No,5,0
+Masters,2017,New Delhi,2,25,Female,Yes,3,1
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2017,New Delhi,3,25,Female,No,3,0
+Bachelors,2012,Bangalore,3,27,Female,No,5,0
+Bachelors,2016,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,27,Female,Yes,5,1
+Bachelors,2016,Pune,3,28,Female,No,2,1
+Masters,2017,New Delhi,2,27,Female,No,5,1
+Bachelors,2018,Bangalore,3,25,Female,No,3,1
+Bachelors,2014,Pune,3,27,Male,Yes,5,0
+Bachelors,2014,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2015,New Delhi,3,25,Female,No,3,0
+Masters,2017,Bangalore,3,26,Female,No,4,0
+Masters,2018,New Delhi,3,25,Male,No,3,1
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Bachelors,2014,Bangalore,3,28,Male,No,1,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Female,No,3,0
+Bachelors,2015,Pune,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,New Delhi,3,25,Female,No,3,0
+Masters,2017,New Delhi,1,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,25,Female,No,3,0
+Bachelors,2013,Pune,2,26,Male,Yes,4,0
+Bachelors,2018,Pune,1,26,Male,Yes,4,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,24,Female,No,2,0
+PHD,2017,New Delhi,3,28,Male,No,3,0
+Bachelors,2017,New Delhi,2,24,Female,No,2,1
+Bachelors,2015,Bangalore,3,25,Female,No,3,0
+Bachelors,2015,Pune,3,26,Male,No,4,0
+Masters,2014,Bangalore,3,27,Male,No,5,1
+Bachelors,2012,Pune,3,24,Female,No,2,1
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2013,Bangalore,3,24,Female,No,2,0
+Bachelors,2017,Bangalore,3,26,Female,No,4,0
+Masters,2017,New Delhi,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2015,Pune,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,24,Male,Yes,2,0
+Masters,2015,Pune,2,28,Female,No,0,0
+Bachelors,2017,Pune,3,26,Male,Yes,4,0
+Bachelors,2018,Bangalore,3,27,Female,No,5,1
+Masters,2017,Pune,3,27,Male,No,5,1
+Bachelors,2013,Bangalore,1,27,Female,No,5,0
+Bachelors,2016,Bangalore,3,27,Female,No,5,0
+Bachelors,2013,Pune,3,28,Male,No,1,0
+Bachelors,2017,Pune,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,25,Female,No,3,0
+Bachelors,2015,Pune,3,24,Female,No,2,1
+Bachelors,2014,New Delhi,3,28,Male,No,1,0
+Bachelors,2017,New Delhi,2,28,Female,No,2,0
+Masters,2015,New Delhi,3,26,Male,No,4,1
+PHD,2014,New Delhi,3,25,Male,No,3,0
+Bachelors,2013,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2013,New Delhi,2,24,Female,No,2,1
+Bachelors,2014,Pune,3,25,Male,No,3,0
+Bachelors,2017,New Delhi,3,25,Female,No,3,0
+Masters,2017,New Delhi,2,24,Male,Yes,2,1
+Bachelors,2015,New Delhi,3,28,Female,No,2,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,1
+Bachelors,2015,Pune,3,26,Male,No,4,0
+Bachelors,2017,Pune,2,27,Female,No,5,1
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,2,26,Female,No,4,1
+Masters,2017,New Delhi,2,25,Female,No,3,0
+Bachelors,2012,New Delhi,3,25,Female,No,3,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,25,Female,No,3,1
+Bachelors,2016,Pune,3,27,Female,No,5,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Pune,2,28,Female,No,1,1
+Bachelors,2017,Bangalore,2,28,Female,No,2,1
+Bachelors,2017,New Delhi,2,26,Female,No,4,1
+Bachelors,2013,Pune,2,27,Female,No,5,1
+Bachelors,2012,Bangalore,3,24,Female,No,2,0
+Masters,2017,Pune,2,27,Female,No,5,0
+Bachelors,2015,New Delhi,3,24,Male,No,2,0
+Bachelors,2013,New Delhi,3,28,Female,Yes,2,0
+Bachelors,2016,New Delhi,3,28,Male,No,0,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2018,Bangalore,3,27,Male,Yes,5,1
+Bachelors,2015,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2018,Pune,3,24,Male,Yes,2,1
+Bachelors,2017,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,26,Male,Yes,4,0
+Masters,2017,Bangalore,2,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,25,Female,No,3,0
+Masters,2013,Pune,3,25,Male,No,3,0
+Masters,2016,New Delhi,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,28,Female,No,1,0
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+PHD,2013,Bangalore,2,25,Male,No,3,1
+Bachelors,2017,New Delhi,3,25,Male,No,3,0
+Bachelors,2015,Bangalore,3,24,Male,No,2,0
+Masters,2015,Bangalore,3,26,Female,No,4,1
+Bachelors,2013,Bangalore,3,25,Female,No,3,0
+Bachelors,2015,New Delhi,2,24,Female,No,2,1
+Masters,2015,New Delhi,2,27,Female,No,5,1
+Bachelors,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,25,Male,No,3,0
+PHD,2017,New Delhi,3,24,Male,No,2,0
+Masters,2015,Bangalore,3,27,Male,No,5,1
+Bachelors,2015,New Delhi,2,28,Female,No,1,1
+Bachelors,2014,Bangalore,3,28,Male,No,2,1
+Bachelors,2014,Bangalore,3,25,Male,Yes,3,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Masters,2017,New Delhi,1,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Male,No,0,0
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,28,Female,No,1,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Masters,2017,New Delhi,2,28,Male,No,3,0
+Bachelors,2013,Pune,3,24,Female,No,2,1
+Masters,2017,New Delhi,2,24,Male,No,2,1
+Bachelors,2014,Bangalore,3,28,Female,No,1,1
+Bachelors,2018,Bangalore,3,25,Male,No,3,1
+Masters,2012,New Delhi,3,27,Female,No,5,0
+Masters,2014,New Delhi,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,28,Male,No,5,0
+Bachelors,2017,Pune,3,28,Female,No,1,0
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,New Delhi,3,24,Male,Yes,2,0
+Masters,2018,New Delhi,3,28,Male,Yes,2,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Masters,2013,New Delhi,3,25,Male,No,3,1
+Masters,2017,Bangalore,3,28,Female,No,0,1
+PHD,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2017,Bangalore,1,24,Male,No,2,0
+Bachelors,2017,New Delhi,2,25,Male,No,3,0
+Masters,2015,Pune,2,28,Female,No,0,0
+Bachelors,2014,Pune,2,27,Female,No,5,1
+Bachelors,2014,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Pune,3,27,Male,Yes,5,0
+Bachelors,2017,Bangalore,3,28,Male,No,2,0
+Bachelors,2014,Bangalore,3,28,Male,No,1,0
+Bachelors,2014,New Delhi,3,28,Female,No,3,0
+Bachelors,2015,New Delhi,2,29,Female,No,1,1
+Bachelors,2012,Bangalore,3,29,Male,No,1,0
+Bachelors,2017,Pune,2,26,Male,No,4,0
+Bachelors,2015,Pune,3,28,Female,No,2,1
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Masters,2017,New Delhi,3,26,Female,No,4,0
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,28,Male,No,1,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Pune,3,28,Female,Yes,2,1
+Bachelors,2017,New Delhi,3,28,Female,No,1,0
+Bachelors,2016,New Delhi,3,27,Female,Yes,5,0
+Bachelors,2018,Pune,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,29,Male,Yes,2,0
+Bachelors,2015,Pune,2,28,Female,No,2,1
+Bachelors,2017,Pune,3,26,Female,No,4,1
+Masters,2017,New Delhi,3,28,Male,No,2,0
+Bachelors,2017,Pune,3,26,Male,No,4,0
+Bachelors,2017,Pune,3,26,Female,No,4,1
+Bachelors,2018,Bangalore,3,26,Female,Yes,4,1
+Bachelors,2014,Pune,3,30,Male,No,2,0
+Masters,2017,New Delhi,3,29,Male,No,2,1
+Masters,2017,Pune,2,26,Female,No,4,0
+Masters,2015,New Delhi,3,28,Female,No,2,0
+Bachelors,2016,Bangalore,3,30,Female,No,2,1
+Bachelors,2012,Bangalore,3,26,Female,No,4,1
+Bachelors,2014,Bangalore,3,29,Male,No,1,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2018,Bangalore,3,26,Male,Yes,4,1
+PHD,2018,New Delhi,2,29,Female,No,1,1
+Masters,2013,New Delhi,3,26,Male,No,4,1
+Masters,2015,Pune,3,30,Female,No,2,0
+Bachelors,2018,Pune,3,26,Male,No,4,1
+Masters,2013,New Delhi,2,29,Female,No,2,1
+Bachelors,2016,Bangalore,3,29,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Male,Yes,1,0
+Bachelors,2017,Pune,2,26,Female,No,4,1
+Masters,2017,Pune,2,30,Female,No,2,0
+Bachelors,2015,Pune,2,30,Female,Yes,1,1
+Masters,2017,New Delhi,2,29,Female,No,2,1
+Bachelors,2015,Bangalore,3,30,Male,No,2,0
+Bachelors,2015,Bangalore,3,27,Female,No,5,1
+Bachelors,2017,Pune,3,27,Female,No,5,1
+Bachelors,2014,Bangalore,3,30,Male,No,2,0
+Bachelors,2014,Bangalore,3,26,Female,No,4,0
+Masters,2013,New Delhi,3,26,Male,No,4,0
+Bachelors,2013,New Delhi,3,29,Female,No,1,1
+Bachelors,2018,New Delhi,3,27,Female,No,5,1
+Bachelors,2014,Bangalore,3,29,Male,No,1,0
+Bachelors,2017,Pune,3,26,Female,No,4,1
+Masters,2015,Bangalore,2,27,Female,Yes,5,1
+Masters,2017,New Delhi,2,29,Female,No,2,0
+Masters,2017,Bangalore,3,26,Female,No,4,0
+Bachelors,2015,Bangalore,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,1
+Bachelors,2014,New Delhi,3,28,Female,No,2,0
+Bachelors,2012,Bangalore,3,29,Male,No,1,1
+Bachelors,2016,New Delhi,3,28,Female,No,2,0
+Masters,2012,New Delhi,3,26,Female,No,4,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Pune,3,28,Male,No,2,0
+Bachelors,2012,Bangalore,2,27,Female,No,5,1
+Bachelors,2018,Bangalore,3,28,Male,No,1,1
+Bachelors,2015,Pune,2,26,Female,No,4,1
+PHD,2016,Bangalore,3,29,Female,No,1,0
+Masters,2018,Bangalore,3,30,Female,No,2,1
+Bachelors,2014,Bangalore,3,28,Female,No,2,0
+Masters,2017,New Delhi,2,30,Male,No,2,0
+Bachelors,2012,Bangalore,3,30,Male,No,1,0
+Masters,2017,New Delhi,2,30,Male,No,2,0
+Bachelors,2017,New Delhi,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,28,Female,No,2,0
+Masters,2013,New Delhi,3,26,Female,No,4,0
+PHD,2015,New Delhi,1,29,Male,No,2,0
+Masters,2017,New Delhi,2,27,Female,No,5,1
+Bachelors,2016,Pune,3,30,Male,No,1,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,1
+Bachelors,2014,Pune,2,29,Female,No,2,1
+Bachelors,2016,Bangalore,3,30,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Female,No,5,0
+PHD,2015,New Delhi,2,29,Female,Yes,1,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,30,Male,No,2,1
+Masters,2017,Pune,2,29,Female,No,2,0
+Masters,2016,Bangalore,3,29,Female,No,2,0
+Bachelors,2017,Bangalore,3,27,Female,No,5,1
+Bachelors,2017,Bangalore,3,28,Male,No,2,0
+Bachelors,2017,Bangalore,3,27,Female,No,5,0
+Bachelors,2012,New Delhi,3,29,Male,No,1,0
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,28,Female,No,1,1
+Bachelors,2013,Pune,2,29,Female,No,1,1
+Bachelors,2015,Bangalore,1,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,30,Male,No,1,0
+Bachelors,2013,New Delhi,3,30,Female,No,1,0
+Masters,2017,Pune,2,27,Male,No,5,1
+Masters,2017,Pune,2,29,Male,No,2,0
+Bachelors,2016,New Delhi,3,29,Female,No,1,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,New Delhi,3,28,Female,Yes,1,0
+Bachelors,2013,Pune,2,28,Female,No,1,1
+Bachelors,2016,Bangalore,3,27,Female,Yes,5,0
+Bachelors,2017,Bangalore,3,26,Male,No,4,1
+Bachelors,2014,New Delhi,3,30,Male,No,2,1
+Bachelors,2015,Pune,2,30,Male,No,2,1
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Pune,3,26,Female,No,4,1
+Bachelors,2014,New Delhi,3,30,Male,No,1,0
+Masters,2017,Pune,2,26,Male,No,4,1
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+PHD,2017,Pune,3,28,Male,No,1,0
+Bachelors,2015,New Delhi,3,30,Female,No,2,0
+Bachelors,2016,Bangalore,3,29,Male,No,2,0
+Bachelors,2012,Bangalore,3,28,Male,No,2,0
+Bachelors,2014,Bangalore,1,30,Male,Yes,2,1
+Bachelors,2013,Bangalore,3,27,Male,No,5,1
+Masters,2017,Pune,2,30,Male,No,2,0
+Bachelors,2012,Bangalore,3,30,Male,No,2,0
+Masters,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2014,Pune,2,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,29,Female,No,1,1
+Bachelors,2015,Pune,3,29,Female,No,2,1
+Bachelors,2013,Bangalore,3,28,Female,No,1,0
+Masters,2016,Bangalore,3,29,Male,No,1,0
+Masters,2016,New Delhi,3,26,Female,No,4,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Masters,2015,New Delhi,1,27,Male,Yes,5,1
+Bachelors,2012,Bangalore,3,28,Male,No,1,1
+Masters,2017,Pune,2,27,Male,No,5,0
+Masters,2015,Pune,2,29,Female,No,2,0
+Bachelors,2012,Bangalore,3,28,Male,No,2,0
+Bachelors,2012,Pune,2,28,Male,No,2,1
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Masters,2017,Pune,2,29,Female,No,1,0
+Bachelors,2014,Pune,2,28,Female,No,1,1
+Masters,2012,New Delhi,1,29,Female,No,1,0
+Bachelors,2015,Bangalore,3,30,Female,No,2,0
+Masters,2017,Bangalore,2,26,Male,Yes,4,1
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,1,30,Male,No,1,0
+Masters,2017,New Delhi,3,30,Male,Yes,2,0
+Bachelors,2015,Pune,2,27,Female,Yes,5,1
+Bachelors,2016,Bangalore,3,28,Male,No,2,1
+Bachelors,2017,Pune,2,26,Female,No,4,1
+Masters,2015,New Delhi,2,26,Female,No,4,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+PHD,2013,New Delhi,3,27,Female,Yes,5,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,1
+Bachelors,2013,New Delhi,3,29,Female,No,1,0
+Masters,2017,Pune,3,29,Male,No,2,0
+Bachelors,2016,Pune,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,29,Male,No,1,0
+Bachelors,2016,Pune,3,29,Male,No,2,0
+Masters,2016,New Delhi,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,30,Female,No,1,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,27,Female,No,5,0
+Bachelors,2016,Bangalore,3,29,Male,No,2,0
+Bachelors,2016,Bangalore,3,29,Male,No,1,0
+Masters,2014,New Delhi,3,29,Male,No,1,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,1,27,Female,No,5,0
+Bachelors,2015,New Delhi,3,26,Female,No,4,0
+Bachelors,2015,Pune,1,28,Female,No,2,1
+Bachelors,2015,Pune,2,28,Female,No,1,1
+Bachelors,2018,Pune,2,28,Female,No,2,1
+Bachelors,2015,Pune,3,28,Female,Yes,1,1
+Bachelors,2015,Pune,3,29,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Pune,2,27,Female,No,5,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,1
+Bachelors,2016,Bangalore,3,30,Male,Yes,1,0
+PHD,2015,New Delhi,3,28,Male,No,2,1
+Bachelors,2014,Pune,3,29,Male,No,2,0
+Bachelors,2015,Bangalore,3,29,Male,No,1,0
+Bachelors,2013,Pune,3,30,Male,No,2,0
+Bachelors,2013,Bangalore,3,28,Male,Yes,1,0
+Bachelors,2015,Pune,2,29,Female,No,2,1
+Bachelors,2017,Bangalore,3,30,Male,No,1,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Masters,2017,New Delhi,2,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,29,Male,No,1,1
+Masters,2012,New Delhi,1,30,Female,No,2,1
+Masters,2016,New Delhi,3,28,Female,No,2,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,28,Female,No,1,0
+Bachelors,2018,Pune,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,29,Female,No,2,0
+PHD,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,29,Male,No,2,0
+Bachelors,2014,Bangalore,3,28,Male,No,2,0
+Bachelors,2014,Bangalore,3,26,Female,No,4,0
+Bachelors,2012,Bangalore,3,28,Male,No,2,0
+Masters,2018,Bangalore,3,28,Female,No,2,1
+Bachelors,2017,Bangalore,3,28,Female,No,1,0
+Bachelors,2015,Bangalore,3,28,Male,No,1,0
+Bachelors,2014,New Delhi,3,29,Female,No,1,0
+Masters,2017,New Delhi,3,28,Male,No,2,0
+Masters,2017,New Delhi,3,29,Male,No,1,0
+Bachelors,2014,Pune,2,29,Male,No,2,1
+Masters,2013,New Delhi,3,26,Male,No,4,1
+Bachelors,2014,Bangalore,3,30,Male,No,1,0
+Bachelors,2013,New Delhi,3,26,Female,No,4,0
+Bachelors,2014,Bangalore,1,29,Male,No,2,0
+Masters,2016,Pune,3,29,Male,No,2,0
+PHD,2016,Pune,1,28,Male,No,2,0
+PHD,2015,Bangalore,3,29,Male,No,2,0
+Bachelors,2014,Bangalore,3,28,Male,No,1,0
+Bachelors,2015,Pune,2,26,Female,Yes,4,1
+Bachelors,2015,Bangalore,3,28,Female,No,1,0
+Bachelors,2015,Pune,3,28,Male,Yes,2,0
+Bachelors,2016,New Delhi,3,26,Female,No,4,0
+Bachelors,2014,Bangalore,3,29,Male,No,1,1
+Bachelors,2013,Bangalore,2,30,Female,No,1,1
+Bachelors,2015,Bangalore,3,29,Male,Yes,1,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+PHD,2017,New Delhi,3,29,Male,No,1,0
+Masters,2017,New Delhi,3,29,Male,No,2,0
+Bachelors,2015,Pune,2,30,Female,Yes,1,1
+Bachelors,2012,New Delhi,3,26,Female,No,4,0
+Bachelors,2013,Pune,3,30,Male,No,1,0
+Bachelors,2012,Bangalore,3,30,Female,No,1,1
+Bachelors,2015,New Delhi,3,26,Female,No,4,0
+Bachelors,2015,Pune,3,28,Female,Yes,2,1
+Bachelors,2014,Bangalore,3,29,Male,No,1,0
+Bachelors,2013,Pune,2,28,Female,No,1,1
+Bachelors,2016,Bangalore,3,28,Female,No,1,0
+Masters,2018,New Delhi,3,30,Female,No,2,1
+Bachelors,2018,Pune,3,29,Male,Yes,1,1
+Bachelors,2016,Bangalore,3,30,Female,Yes,2,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Masters,2017,Pune,2,27,Male,Yes,5,1
+Masters,2017,Pune,2,26,Female,No,4,1
+Masters,2017,New Delhi,3,26,Male,No,4,1
+Bachelors,2017,Pune,2,30,Female,No,2,1
+Bachelors,2012,Bangalore,3,28,Male,No,1,0
+Bachelors,2014,Bangalore,3,28,Male,No,2,0
+PHD,2015,Bangalore,3,29,Female,No,1,0
+Masters,2015,New Delhi,3,26,Male,No,4,1
+Bachelors,2017,Pune,3,30,Male,No,2,0
+Bachelors,2014,New Delhi,3,28,Female,No,1,0
+Bachelors,2013,Bangalore,1,30,Male,No,1,0
+Bachelors,2016,Bangalore,3,27,Female,No,5,1
+Bachelors,2014,Pune,1,28,Male,No,1,0
+Bachelors,2015,Bangalore,3,30,Male,No,1,0
+Bachelors,2013,New Delhi,3,27,Male,No,5,0
+Bachelors,2017,Pune,2,27,Male,No,5,0
+Masters,2017,New Delhi,2,28,Male,No,1,1
+Masters,2017,New Delhi,2,27,Male,No,5,1
+Masters,2014,New Delhi,3,27,Male,No,5,0
+PHD,2014,New Delhi,2,27,Female,No,5,0
+Bachelors,2015,Bangalore,3,29,Male,No,2,0
+Bachelors,2012,Pune,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,30,Male,No,2,0
+Bachelors,2014,Bangalore,1,27,Female,No,5,0
+Bachelors,2014,Pune,1,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,29,Male,Yes,2,0
+Bachelors,2012,New Delhi,3,30,Male,No,1,0
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Masters,2017,New Delhi,2,30,Female,No,2,0
+Masters,2018,New Delhi,3,29,Male,No,2,1
+Bachelors,2015,Bangalore,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2016,New Delhi,3,27,Male,Yes,5,1
+Bachelors,2014,Pune,1,26,Female,No,4,1
+Bachelors,2017,Pune,3,27,Male,Yes,5,0
+PHD,2013,New Delhi,3,30,Male,No,1,0
+Masters,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,New Delhi,3,26,Female,No,4,0
+Bachelors,2016,Pune,3,29,Male,No,2,0
+Bachelors,2018,Bangalore,3,29,Female,Yes,2,1
+Bachelors,2016,Bangalore,3,28,Male,No,1,0
+Masters,2012,Pune,3,30,Male,No,1,0
+Bachelors,2014,Bangalore,3,30,Female,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,29,Female,No,1,0
+Bachelors,2013,Pune,3,28,Male,No,2,0
+Bachelors,2014,Pune,3,29,Male,No,2,0
+Bachelors,2012,Bangalore,1,30,Female,No,2,0
+Bachelors,2018,Pune,3,28,Male,No,2,1
+Bachelors,2012,Bangalore,3,30,Female,Yes,2,0
+Masters,2017,New Delhi,2,30,Male,No,1,0
+Bachelors,2014,New Delhi,3,27,Female,No,5,0
+Masters,2014,New Delhi,3,29,Male,No,2,0
+Bachelors,2016,Bangalore,3,29,Male,No,2,0
+Bachelors,2014,Pune,2,28,Female,No,2,1
+Bachelors,2017,New Delhi,3,26,Male,No,4,0
+Bachelors,2018,Pune,3,28,Male,No,1,1
+Bachelors,2016,Pune,3,29,Male,No,1,0
+Bachelors,2015,Pune,3,26,Female,Yes,4,1
+Masters,2017,Bangalore,3,27,Male,No,5,1
+Masters,2017,New Delhi,2,26,Male,No,4,0
+Masters,2013,New Delhi,3,26,Female,No,4,1
+Bachelors,2017,Bangalore,3,29,Male,No,1,0
+Masters,2013,New Delhi,3,27,Female,No,5,0
+Bachelors,2012,Pune,2,30,Female,No,2,1
+Bachelors,2013,New Delhi,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,28,Female,No,1,1
+Bachelors,2013,New Delhi,3,27,Male,No,5,0
+Bachelors,2015,Pune,2,29,Female,Yes,2,1
+Bachelors,2012,Bangalore,1,27,Female,No,5,0
+Bachelors,2012,Bangalore,3,28,Male,No,2,0
+Bachelors,2015,New Delhi,3,26,Male,No,4,0
+Bachelors,2017,New Delhi,3,28,Female,No,1,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Masters,2014,Bangalore,3,28,Male,No,1,1
+Bachelors,2015,Bangalore,3,29,Male,No,1,0
+Bachelors,2017,New Delhi,3,27,Female,No,5,0
+Bachelors,2012,Bangalore,3,27,Male,Yes,5,0
+Masters,2017,New Delhi,2,30,Male,No,2,0
+Bachelors,2015,Bangalore,3,28,Female,No,2,0
+Masters,2017,Bangalore,1,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,27,Male,Yes,5,1
+Masters,2017,Pune,2,30,Male,No,1,0
+Bachelors,2013,Pune,3,29,Male,No,2,0
+Bachelors,2013,Pune,3,29,Male,No,2,0
+Bachelors,2012,Pune,3,27,Male,Yes,5,0
+Bachelors,2015,Pune,3,30,Female,No,1,1
+Bachelors,2015,Pune,2,29,Female,No,2,1
+Masters,2018,Pune,3,26,Male,No,4,1
+Masters,2013,Bangalore,2,29,Female,No,2,1
+Bachelors,2014,Bangalore,1,28,Male,No,2,1
+Bachelors,2015,Bangalore,3,30,Male,No,1,0
+Bachelors,2015,Pune,2,27,Female,No,5,1
+Bachelors,2014,Bangalore,3,28,Female,Yes,1,0
+Masters,2015,New Delhi,3,27,Male,No,5,0
+Masters,2017,New Delhi,2,26,Male,No,4,1
+Bachelors,2018,Bangalore,3,28,Male,No,1,1
+Bachelors,2015,New Delhi,3,28,Female,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Pune,1,26,Female,No,4,1
+Masters,2017,New Delhi,2,30,Male,Yes,2,0
+Bachelors,2015,Bangalore,3,28,Female,No,1,0
+Bachelors,2013,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,1
+Bachelors,2018,Bangalore,3,28,Male,No,2,1
+Masters,2017,New Delhi,2,28,Male,No,2,0
+Bachelors,2015,Bangalore,3,29,Male,No,2,0
+Bachelors,2012,New Delhi,3,30,Male,No,1,1
+Masters,2016,Pune,3,30,Male,No,1,0
+Bachelors,2014,Pune,3,30,Male,No,1,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Masters,2017,Bangalore,3,26,Male,No,4,1
+Bachelors,2012,New Delhi,3,27,Female,No,5,0
+Bachelors,2018,Bangalore,3,26,Female,Yes,4,1
+PHD,2014,Bangalore,3,27,Male,No,5,0
+Masters,2017,New Delhi,2,26,Male,Yes,4,1
+Bachelors,2013,Bangalore,3,30,Female,No,1,1
+Bachelors,2012,Bangalore,3,30,Female,No,2,0
+Masters,2018,New Delhi,3,26,Male,Yes,4,1
+Bachelors,2013,Bangalore,1,28,Female,No,1,0
+Bachelors,2017,Bangalore,3,30,Male,No,1,0
+Masters,2017,Pune,2,30,Female,No,2,1
+PHD,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,New Delhi,3,28,Female,No,2,0
+Bachelors,2015,Pune,2,29,Female,No,1,1
+Bachelors,2013,Bangalore,3,27,Female,No,5,0
+Masters,2014,Pune,3,27,Male,No,5,0
+Masters,2017,New Delhi,2,26,Female,Yes,4,1
+Masters,2017,New Delhi,2,30,Female,No,1,0
+Masters,2018,New Delhi,3,27,Female,No,5,1
+Bachelors,2017,Pune,2,29,Male,No,1,0
+Masters,2014,New Delhi,1,29,Male,No,1,0
+Bachelors,2015,Pune,2,30,Female,No,2,1
+Bachelors,2014,Bangalore,3,30,Male,No,2,1
+Masters,2018,New Delhi,1,30,Female,No,2,0
+Bachelors,2017,Bangalore,3,29,Male,No,1,0
+Bachelors,2016,Pune,3,28,Male,No,2,0
+Bachelors,2018,Bangalore,3,26,Female,No,4,1
+Bachelors,2014,Bangalore,1,28,Female,No,2,0
+Masters,2017,New Delhi,2,29,Female,No,2,0
+Masters,2013,New Delhi,3,26,Male,No,4,1
+Bachelors,2017,New Delhi,2,28,Female,No,1,0
+Bachelors,2016,Bangalore,3,30,Female,No,1,0
+PHD,2015,Pune,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,29,Male,No,2,0
+Bachelors,2014,Pune,2,28,Female,No,2,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Masters,2017,New Delhi,2,30,Female,Yes,2,0
+PHD,2013,New Delhi,3,30,Female,No,2,0
+Bachelors,2015,Bangalore,3,29,Male,No,2,0
+Bachelors,2017,Bangalore,3,28,Male,No,2,0
+Bachelors,2015,Bangalore,3,29,Male,No,2,1
+Bachelors,2015,Pune,1,26,Female,No,4,1
+Bachelors,2013,Bangalore,3,28,Male,No,1,0
+Bachelors,2015,Pune,2,29,Female,No,2,1
+Bachelors,2013,Bangalore,3,26,Male,Yes,4,0
+Masters,2014,Pune,3,30,Male,No,2,0
+Masters,2017,Pune,2,30,Male,Yes,2,0
+Bachelors,2017,Pune,3,27,Male,No,5,0
+Bachelors,2014,New Delhi,3,28,Female,Yes,2,0
+Bachelors,2014,New Delhi,3,27,Female,No,5,0
+Bachelors,2015,Pune,2,29,Female,Yes,1,1
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Bachelors,2014,New Delhi,3,30,Male,No,1,0
+Bachelors,2013,Pune,2,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Masters,2017,New Delhi,2,27,Male,No,5,1
+Bachelors,2017,Pune,2,29,Female,No,1,1
+Masters,2017,New Delhi,2,28,Female,No,1,1
+Bachelors,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,29,Female,No,1,1
+Bachelors,2012,Bangalore,3,28,Male,No,1,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,28,Female,No,1,0
+Masters,2015,Pune,2,30,Female,No,2,1
+Masters,2017,New Delhi,2,28,Male,No,2,0
+Masters,2015,Pune,2,29,Female,No,1,0
+Masters,2015,Bangalore,3,26,Male,No,4,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,29,Female,No,1,0
+Bachelors,2017,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2014,New Delhi,3,29,Female,No,2,0
+Bachelors,2017,New Delhi,3,27,Female,No,5,0
+Masters,2017,Pune,2,28,Female,No,2,0
+Masters,2013,New Delhi,3,27,Female,No,5,1
+Masters,2017,New Delhi,3,27,Male,Yes,5,1
+Bachelors,2013,Bangalore,3,30,Male,No,2,0
+Bachelors,2015,Pune,2,27,Female,Yes,5,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,2,27,Female,No,5,1
+Bachelors,2015,Bangalore,3,30,Male,No,2,1
+Masters,2017,Bangalore,2,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,30,Male,No,2,1
+Bachelors,2016,Pune,2,30,Female,No,2,1
+Masters,2016,Pune,1,27,Female,No,5,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Pune,3,29,Female,No,2,1
+Bachelors,2013,New Delhi,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,29,Female,No,2,1
+Bachelors,2013,Pune,3,28,Male,No,2,0
+Bachelors,2013,Pune,2,27,Male,No,5,1
+Masters,2014,New Delhi,3,28,Male,No,1,1
+Bachelors,2016,New Delhi,3,27,Female,No,5,1
+Bachelors,2016,New Delhi,3,29,Female,Yes,2,0
+Masters,2018,New Delhi,1,26,Female,No,4,1
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Bachelors,2013,Pune,2,27,Female,No,5,1
+Bachelors,2014,New Delhi,3,28,Female,No,2,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,29,Female,No,1,0
+Bachelors,2012,Bangalore,3,29,Female,No,1,0
+Bachelors,2018,Bangalore,3,29,Male,Yes,2,1
+Bachelors,2012,Pune,3,30,Male,No,1,0
+Bachelors,2013,Bangalore,3,30,Male,Yes,1,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,New Delhi,3,29,Female,Yes,1,0
+Bachelors,2014,Bangalore,3,30,Female,No,1,0
+Bachelors,2014,Pune,1,28,Male,No,2,0
+Bachelors,2015,Pune,3,27,Female,No,5,0
+Bachelors,2016,Bangalore,3,30,Male,No,1,1
+Bachelors,2016,Pune,3,26,Female,No,4,1
+Bachelors,2018,New Delhi,3,27,Female,Yes,5,1
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Masters,2017,New Delhi,2,27,Male,No,5,1
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Pune,3,26,Female,No,4,1
+Bachelors,2012,Pune,1,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+PHD,2017,Bangalore,3,28,Female,No,1,0
+Bachelors,2015,Pune,3,29,Female,No,1,1
+Masters,2014,New Delhi,3,30,Male,Yes,2,0
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Pune,3,28,Male,No,1,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,New Delhi,3,26,Male,No,4,0
+Masters,2012,New Delhi,3,30,Male,No,2,0
+PHD,2013,New Delhi,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,30,Male,Yes,1,1
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Masters,2017,New Delhi,3,29,Female,No,2,0
+Bachelors,2014,Bangalore,3,29,Male,No,2,0
+Bachelors,2017,New Delhi,3,28,Male,No,1,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2018,Bangalore,3,27,Female,No,5,1
+Bachelors,2014,Bangalore,1,28,Male,No,1,0
+Bachelors,2016,Bangalore,3,28,Male,No,1,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2012,Pune,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,28,Male,No,2,0
+Bachelors,2014,Bangalore,3,28,Male,No,1,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+PHD,2012,New Delhi,1,29,Female,No,2,0
+Bachelors,2013,Bangalore,3,30,Female,No,2,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Pune,3,28,Male,No,1,0
+Masters,2013,New Delhi,2,26,Male,No,4,1
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Pune,3,27,Female,No,5,0
+PHD,2015,New Delhi,3,28,Male,No,2,0
+Masters,2017,Pune,2,28,Male,No,2,0
+Bachelors,2014,Pune,3,28,Male,No,4,0
+Bachelors,2016,Bangalore,3,29,Female,No,1,1
+Bachelors,2017,Bangalore,3,26,Female,No,4,1
+Bachelors,2015,Bangalore,3,30,Male,No,0,0
+Masters,2012,New Delhi,3,30,Male,No,2,0
+Bachelors,2012,Bangalore,1,30,Female,No,0,0
+Bachelors,2014,New Delhi,3,27,Female,No,5,0
+Bachelors,2017,New Delhi,2,28,Female,No,0,0
+Bachelors,2012,Pune,3,26,Male,No,4,0
+Bachelors,2015,Pune,3,29,Female,No,3,1
+Masters,2017,Pune,2,30,Male,No,0,1
+Bachelors,2013,New Delhi,3,26,Male,No,4,0
+Masters,2014,Pune,3,30,Male,No,0,1
+Bachelors,2013,Pune,3,29,Male,Yes,2,0
+Bachelors,2017,Bangalore,3,28,Male,No,3,0
+Masters,2018,New Delhi,3,27,Male,Yes,5,1
+Masters,2017,New Delhi,2,26,Female,Yes,4,1
+Bachelors,2012,Bangalore,3,30,Female,No,0,1
+Bachelors,2012,Bangalore,3,29,Female,No,4,0
+Bachelors,2014,Bangalore,3,29,Male,No,1,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,28,Male,Yes,4,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Pune,3,29,Male,No,5,0
+Bachelors,2014,Bangalore,3,29,Male,No,0,0
+Masters,2013,Bangalore,3,30,Male,No,5,1
+Bachelors,2017,New Delhi,3,30,Female,Yes,3,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+PHD,2015,Pune,2,30,Female,No,4,0
+Masters,2014,Bangalore,3,30,Male,No,4,1
+Masters,2017,New Delhi,2,27,Male,No,5,1
+Bachelors,2013,Pune,3,30,Male,No,0,0
+Masters,2017,Pune,2,30,Male,No,0,0
+Masters,2017,New Delhi,2,29,Female,No,2,0
+Masters,2017,New Delhi,2,29,Male,No,2,0
+Bachelors,2014,Bangalore,1,27,Male,No,5,1
+Bachelors,2012,Bangalore,3,27,Female,No,5,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Masters,2018,New Delhi,3,30,Female,No,4,1
+Bachelors,2015,Bangalore,3,29,Female,No,1,0
+Bachelors,2014,Pune,3,26,Female,No,4,1
+Masters,2016,Pune,3,28,Male,No,2,0
+Bachelors,2015,New Delhi,3,28,Female,No,4,0
+Bachelors,2015,Bangalore,3,30,Male,No,0,0
+Bachelors,2014,Bangalore,3,28,Female,No,3,0
+Bachelors,2017,Bangalore,3,28,Male,No,4,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,28,Female,No,0,0
+Bachelors,2015,Pune,2,28,Female,No,2,1
+Masters,2013,Pune,3,27,Female,Yes,5,1
+Bachelors,2016,Bangalore,3,27,Male,No,5,1
+Bachelors,2012,Pune,3,29,Male,No,1,0
+Bachelors,2015,Pune,2,28,Female,No,0,1
+Bachelors,2018,Pune,3,30,Male,Yes,3,1
+Bachelors,2016,Bangalore,3,29,Male,No,5,0
+Masters,2013,New Delhi,2,27,Female,No,5,1
+Masters,2017,New Delhi,2,30,Male,No,2,0
+Bachelors,2012,New Delhi,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,30,Male,No,2,1
+Bachelors,2017,New Delhi,2,29,Male,No,3,1
+Bachelors,2017,Pune,2,28,Male,No,3,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,29,Male,Yes,4,0
+Bachelors,2013,Bangalore,3,30,Male,No,5,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2012,Bangalore,3,29,Male,Yes,2,1
+Masters,2015,Bangalore,3,28,Male,No,0,1
+Bachelors,2014,New Delhi,3,29,Female,No,2,0
+Masters,2015,Pune,3,29,Female,No,4,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Pune,3,27,Female,No,5,1
+Bachelors,2017,Bangalore,3,30,Male,No,1,1
+Masters,2014,Pune,3,30,Male,No,2,0
+Bachelors,2015,New Delhi,3,28,Female,No,4,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Bachelors,2014,Bangalore,3,28,Male,No,5,0
+Bachelors,2017,Bangalore,1,28,Female,No,0,1
+Bachelors,2016,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2013,Bangalore,3,28,Male,No,5,0
+Masters,2013,New Delhi,3,30,Male,No,2,1
+Masters,2013,New Delhi,1,29,Female,No,2,1
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Pune,3,28,Male,No,3,0
+Bachelors,2013,Bangalore,3,29,Male,No,2,0
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Masters,2017,New Delhi,2,30,Female,No,2,0
+PHD,2013,New Delhi,3,27,Female,No,5,0
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2016,Bangalore,3,28,Female,No,1,1
+Bachelors,2017,Pune,2,27,Female,No,5,1
+Bachelors,2012,Bangalore,3,27,Female,No,5,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,1
+Bachelors,2016,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Bachelors,2015,Pune,3,29,Male,No,1,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Bachelors,2017,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2015,Pune,3,30,Female,No,0,1
+Bachelors,2017,Bangalore,3,30,Male,No,3,0
+PHD,2012,New Delhi,3,29,Male,No,5,0
+Bachelors,2016,Pune,3,29,Male,No,5,0
+Bachelors,2014,Bangalore,3,26,Female,Yes,4,0
+PHD,2014,New Delhi,3,28,Female,No,0,0
+Bachelors,2018,Bangalore,3,28,Male,No,1,1
+Bachelors,2013,New Delhi,3,27,Female,Yes,5,0
+Bachelors,2013,Bangalore,3,28,Male,No,2,0
+Bachelors,2018,Bangalore,3,29,Male,No,0,1
+Bachelors,2016,Bangalore,3,29,Male,No,3,0
+Bachelors,2018,Pune,3,30,Female,No,2,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Pune,3,29,Male,No,3,0
+Bachelors,2013,Pune,3,30,Male,No,4,0
+Masters,2015,New Delhi,3,29,Male,No,2,0
+Bachelors,2018,Pune,3,27,Male,No,5,1
+Bachelors,2016,Bangalore,3,28,Male,No,2,0
+Bachelors,2015,Bangalore,3,29,Male,No,1,0
+Bachelors,2016,Bangalore,3,30,Male,No,0,0
+Bachelors,2016,Bangalore,3,28,Female,No,1,0
+Bachelors,2017,New Delhi,3,26,Female,No,4,0
+Bachelors,2014,Pune,2,29,Female,No,1,1
+PHD,2013,New Delhi,3,30,Female,No,2,0
+Bachelors,2016,Bangalore,3,28,Male,Yes,3,0
+Bachelors,2015,Bangalore,3,28,Male,No,1,0
+Bachelors,2016,Pune,3,28,Male,No,5,0
+Bachelors,2017,Pune,2,28,Female,No,1,1
+Bachelors,2015,Bangalore,3,30,Male,No,4,0
+Masters,2012,New Delhi,3,27,Male,No,5,0
+Masters,2017,New Delhi,3,29,Female,Yes,2,0
+Bachelors,2018,New Delhi,3,29,Female,No,2,1
+Bachelors,2018,Bangalore,3,29,Male,No,0,1
+Bachelors,2012,Bangalore,3,28,Female,No,0,0
+Bachelors,2015,Pune,2,28,Female,No,0,1
+Masters,2017,New Delhi,2,27,Female,No,5,1
+Bachelors,2018,Pune,3,28,Female,No,5,1
+Bachelors,2016,Pune,3,28,Male,No,1,0
+Bachelors,2014,Bangalore,1,26,Male,No,4,1
+Bachelors,2014,New Delhi,2,29,Female,No,3,1
+Masters,2014,Pune,3,26,Male,No,4,1
+Bachelors,2017,Pune,3,27,Male,No,5,0
+Bachelors,2013,Pune,3,30,Male,No,4,1
+Bachelors,2015,Bangalore,3,30,Male,No,3,0
+Bachelors,2012,Bangalore,3,29,Male,No,2,1
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2017,New Delhi,2,30,Female,No,2,1
+Bachelors,2012,Pune,3,29,Male,No,0,0
+Bachelors,2015,Pune,1,30,Female,No,0,1
+Bachelors,2017,Bangalore,3,28,Male,No,3,0
+Bachelors,2013,Bangalore,3,28,Male,No,5,0
+Bachelors,2017,Pune,2,30,Female,No,4,1
+Bachelors,2017,Pune,2,28,Male,No,5,0
+Bachelors,2014,New Delhi,3,27,Female,No,5,1
+Bachelors,2012,Bangalore,3,28,Female,No,2,0
+Bachelors,2013,Bangalore,3,29,Female,No,5,0
+Bachelors,2012,Bangalore,3,27,Female,No,5,1
+Bachelors,2017,Pune,2,28,Female,No,3,1
+Bachelors,2015,Bangalore,1,29,Male,No,4,0
+Bachelors,2013,Bangalore,2,30,Male,No,0,1
+PHD,2018,Bangalore,3,28,Male,No,2,1
+Bachelors,2015,Pune,3,28,Female,No,3,1
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,30,Female,No,3,1
+Bachelors,2012,Bangalore,3,29,Male,No,5,0
+Bachelors,2012,Bangalore,3,27,Female,No,5,0
+Bachelors,2015,Bangalore,3,26,Female,No,4,0
+Bachelors,2016,Pune,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,27,Female,No,5,0
+Bachelors,2013,Pune,3,28,Male,No,0,0
+Bachelors,2014,Pune,3,29,Male,No,1,0
+Bachelors,2017,New Delhi,2,27,Male,No,5,0
+Bachelors,2013,New Delhi,3,27,Female,No,5,0
+Bachelors,2017,Pune,3,30,Male,No,5,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2012,New Delhi,3,30,Female,Yes,3,0
+Bachelors,2013,Pune,2,30,Male,No,1,1
+PHD,2015,New Delhi,3,27,Female,No,5,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,27,Female,Yes,5,1
+Masters,2017,New Delhi,2,29,Male,No,1,0
+Bachelors,2013,New Delhi,3,28,Female,No,3,0
+Masters,2012,Pune,3,29,Male,No,4,1
+Bachelors,2014,New Delhi,3,28,Female,No,3,0
+Bachelors,2018,Bangalore,3,27,Male,Yes,5,1
+Bachelors,2012,Bangalore,3,29,Male,No,1,0
+Bachelors,2017,Pune,2,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,30,Male,No,2,1
+Bachelors,2014,New Delhi,3,29,Male,No,4,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Bachelors,2014,Bangalore,3,27,Female,No,5,0
+Masters,2013,New Delhi,2,26,Male,No,4,1
+Bachelors,2013,New Delhi,3,29,Female,No,2,0
+Bachelors,2016,Bangalore,2,30,Female,No,4,1
+Bachelors,2017,New Delhi,3,29,Female,No,0,0
+Bachelors,2018,Bangalore,3,28,Male,No,3,1
+Bachelors,2014,Bangalore,3,29,Male,No,4,0
+Masters,2017,New Delhi,2,30,Female,No,2,0
+Bachelors,2018,Bangalore,3,29,Male,Yes,2,1
+Bachelors,2017,New Delhi,2,28,Female,No,1,0
+Bachelors,2013,Bangalore,2,27,Female,No,5,1
+Bachelors,2015,Bangalore,3,30,Male,No,4,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Masters,2017,Bangalore,2,30,Male,No,3,0
+Masters,2017,New Delhi,2,29,Male,No,4,0
+Bachelors,2014,Bangalore,3,28,Male,No,3,0
+Masters,2017,New Delhi,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,3,27,Male,No,5,0
+Bachelors,2016,Pune,3,30,Male,No,0,0
+Bachelors,2015,Bangalore,3,29,Female,No,0,0
+Bachelors,2015,Pune,2,27,Female,Yes,5,1
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Bachelors,2015,New Delhi,3,29,Male,No,1,0
+Bachelors,2017,Bangalore,3,30,Male,No,4,0
+PHD,2017,New Delhi,3,27,Male,No,5,0
+PHD,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,28,Male,Yes,1,1
+Bachelors,2013,Bangalore,3,29,Male,No,1,0
+Masters,2017,Pune,2,29,Female,Yes,2,1
+Bachelors,2015,Pune,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,27,Female,No,5,0
+Masters,2018,Pune,3,26,Male,No,4,1
+Bachelors,2012,New Delhi,1,27,Female,No,5,1
+Masters,2017,Pune,2,27,Male,Yes,5,1
+Bachelors,2015,Pune,1,28,Female,No,0,1
+Bachelors,2014,Bangalore,3,29,Male,No,4,1
+Bachelors,2017,New Delhi,3,29,Female,No,3,0
+PHD,2015,Pune,2,26,Female,No,4,0
+Bachelors,2017,Bangalore,3,30,Female,No,5,0
+Bachelors,2016,Pune,3,26,Male,No,4,0
+Masters,2013,Pune,3,26,Male,No,4,1
+Bachelors,2012,Pune,2,29,Female,No,2,1
+Bachelors,2018,Bangalore,3,30,Male,Yes,2,1
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2018,Bangalore,2,28,Female,No,3,1
+Bachelors,2012,Bangalore,3,28,Male,No,0,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,28,Female,Yes,0,0
+Masters,2014,New Delhi,3,28,Male,No,2,0
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Bachelors,2015,Pune,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,28,Male,Yes,2,0
+Bachelors,2018,Pune,3,29,Male,Yes,3,1
+Bachelors,2014,New Delhi,3,29,Male,Yes,4,0
+Bachelors,2015,Bangalore,3,29,Male,No,1,0
+Masters,2018,Bangalore,3,27,Male,Yes,5,1
+Bachelors,2014,Bangalore,3,28,Male,No,5,0
+Masters,2017,Pune,2,27,Male,No,5,0
+Bachelors,2017,Pune,2,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,28,Male,No,4,0
+Bachelors,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2017,Pune,3,29,Female,No,0,1
+Bachelors,2012,Bangalore,3,26,Female,No,4,0
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2017,Pune,2,26,Female,No,4,1
+Bachelors,2014,Bangalore,3,30,Male,No,1,0
+Bachelors,2018,Bangalore,3,29,Male,No,2,1
+Masters,2013,Bangalore,3,30,Male,No,2,1
+Bachelors,2016,Bangalore,3,27,Female,No,5,0
+Bachelors,2016,New Delhi,3,26,Female,No,4,0
+Bachelors,2017,Bangalore,1,30,Male,No,1,0
+Bachelors,2015,New Delhi,3,30,Female,Yes,1,0
+Bachelors,2013,Pune,3,30,Male,No,0,0
+Bachelors,2015,Pune,3,27,Male,No,5,0
+Bachelors,2017,Pune,3,30,Female,No,1,1
+PHD,2018,New Delhi,3,30,Male,No,2,1
+Bachelors,2018,Bangalore,3,29,Male,Yes,1,1
+Bachelors,2013,Bangalore,3,30,Male,Yes,0,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,1
+Bachelors,2016,New Delhi,3,29,Female,Yes,2,0
+Bachelors,2013,Pune,3,28,Male,No,5,0
+Bachelors,2014,New Delhi,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,30,Female,No,1,1
+Masters,2013,New Delhi,2,26,Male,No,4,1
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Masters,2012,Pune,3,27,Male,Yes,5,1
+Bachelors,2017,Bangalore,3,27,Female,No,5,0
+Bachelors,2013,Bangalore,3,30,Male,No,1,0
+Bachelors,2014,New Delhi,3,27,Male,No,5,0
+Masters,2013,Bangalore,3,30,Male,No,1,1
+Bachelors,2016,Bangalore,3,29,Male,No,2,1
+Bachelors,2016,Bangalore,3,28,Male,No,3,0
+Masters,2017,New Delhi,3,29,Female,No,2,0
+Bachelors,2014,New Delhi,3,26,Male,No,4,0
+Masters,2018,New Delhi,3,30,Male,No,2,1
+Masters,2014,Pune,3,27,Female,No,5,1
+Bachelors,2017,Pune,3,29,Male,No,0,0
+Masters,2016,New Delhi,3,30,Male,No,2,0
+Masters,2017,New Delhi,3,30,Male,No,3,1
+Bachelors,2013,Pune,2,30,Female,No,1,1
+Masters,2014,New Delhi,3,28,Female,No,3,0
+Bachelors,2013,Pune,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,1,30,Male,No,2,0
+Bachelors,2016,Bangalore,3,28,Male,Yes,3,0
+Bachelors,2013,Pune,1,30,Female,Yes,1,1
+Bachelors,2013,Bangalore,3,30,Female,No,5,0
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Pune,3,27,Male,No,5,0
+Masters,2012,New Delhi,3,26,Female,No,4,0
+Bachelors,2013,Pune,2,26,Male,Yes,4,0
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+PHD,2018,New Delhi,2,30,Female,No,4,1
+Bachelors,2017,Bangalore,3,29,Male,No,3,0
+Bachelors,2013,Bangalore,3,28,Male,No,1,0
+Bachelors,2012,Bangalore,3,28,Male,Yes,2,0
+Masters,2017,New Delhi,1,30,Male,No,2,0
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Masters,2013,Bangalore,1,29,Female,No,2,1
+Bachelors,2012,Pune,3,29,Male,No,5,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,29,Male,No,4,0
+Bachelors,2014,Bangalore,3,29,Male,No,3,1
+Bachelors,2018,Bangalore,3,28,Male,No,0,1
+Bachelors,2012,Bangalore,3,27,Male,No,5,1
+Bachelors,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2014,Pune,2,29,Female,No,1,1
+Bachelors,2017,Bangalore,3,29,Male,No,4,0
+Bachelors,2015,Pune,2,28,Female,No,3,1
+Bachelors,2017,Bangalore,3,28,Male,No,5,0
+Bachelors,2017,Bangalore,3,29,Male,No,0,0
+Bachelors,2017,Bangalore,3,30,Male,No,2,0
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Masters,2017,New Delhi,2,30,Female,No,2,0
+Bachelors,2015,Pune,2,29,Female,No,4,1
+Bachelors,2014,Pune,3,29,Female,No,1,1
+Bachelors,2012,Bangalore,3,28,Male,No,2,0
+Bachelors,2012,Bangalore,3,28,Female,No,4,0
+Bachelors,2017,Bangalore,3,29,Female,No,5,0
+Bachelors,2015,Bangalore,3,30,Male,Yes,3,0
+Masters,2012,Pune,3,26,Male,No,4,1
+Bachelors,2018,Bangalore,3,28,Male,No,5,1
+Bachelors,2017,New Delhi,3,30,Male,No,5,0
+Bachelors,2012,New Delhi,3,27,Female,No,5,0
+Bachelors,2017,New Delhi,3,26,Female,No,4,0
+Bachelors,2014,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2014,Bangalore,3,30,Male,No,0,0
+Bachelors,2014,New Delhi,3,30,Female,No,2,0
+Bachelors,2012,New Delhi,3,29,Female,No,5,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Pune,2,29,Female,No,4,1
+Masters,2016,Pune,3,29,Male,No,4,1
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Masters,2017,New Delhi,3,26,Female,No,4,0
+Masters,2012,New Delhi,3,29,Male,No,2,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,0
+Bachelors,2012,Pune,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,28,Female,No,2,1
+Bachelors,2013,New Delhi,3,30,Female,No,3,1
+Masters,2017,Pune,2,26,Female,No,4,1
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2017,New Delhi,2,28,Female,No,2,0
+Bachelors,2017,New Delhi,2,27,Male,No,5,0
+PHD,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2013,Bangalore,3,30,Female,No,1,0
+Masters,2013,New Delhi,3,30,Male,No,0,1
+Masters,2018,New Delhi,3,26,Female,No,4,1
+Masters,2015,New Delhi,3,30,Male,No,2,0
+Bachelors,2012,Bangalore,3,29,Male,No,4,0
+Bachelors,2018,Bangalore,3,27,Male,Yes,5,1
+Masters,2017,Pune,2,28,Male,No,5,0
+Bachelors,2016,Pune,2,29,Male,No,3,1
+Bachelors,2015,Pune,2,27,Female,Yes,5,1
+Bachelors,2014,Bangalore,3,29,Male,No,4,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Pune,3,28,Male,No,5,1
+Bachelors,2012,Bangalore,3,28,Female,No,0,0
+Masters,2017,Pune,2,28,Male,No,2,0
+Masters,2015,Pune,2,27,Female,No,5,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Bachelors,2014,Pune,3,29,Female,No,4,1
+Masters,2016,New Delhi,3,30,Male,No,3,0
+Bachelors,2014,Pune,1,26,Female,No,4,1
+Bachelors,2012,Pune,2,27,Female,No,5,1
+Bachelors,2017,Pune,3,30,Male,No,0,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,2,30,Male,No,4,0
+Bachelors,2017,New Delhi,2,28,Female,No,4,0
+PHD,2016,Bangalore,3,30,Female,No,5,0
+Bachelors,2018,Bangalore,3,28,Male,No,1,1
+Bachelors,2017,Pune,2,29,Male,No,3,0
+Bachelors,2017,New Delhi,2,30,Male,No,1,1
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Pune,3,30,Male,No,0,0
+Bachelors,2018,Bangalore,3,26,Male,Yes,4,1
+Bachelors,2015,New Delhi,3,28,Female,No,3,0
+Masters,2017,New Delhi,2,26,Female,Yes,4,1
+Bachelors,2016,Pune,2,30,Female,No,1,1
+Masters,2014,New Delhi,3,28,Male,No,0,0
+Bachelors,2015,Bangalore,3,28,Male,No,2,0
+Masters,2015,Pune,2,30,Female,No,1,0
+Masters,2017,New Delhi,2,27,Female,No,5,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Pune,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,30,Male,No,1,1
+Masters,2017,New Delhi,3,29,Male,No,2,0
+Bachelors,2012,Bangalore,3,30,Female,No,1,0
+Bachelors,2018,Bangalore,3,29,Male,No,3,1
+Masters,2018,Pune,3,29,Male,No,2,1
+Bachelors,2016,Bangalore,3,27,Female,No,5,0
+Bachelors,2017,New Delhi,2,28,Male,No,2,0
+Bachelors,2016,Bangalore,3,29,Female,No,0,1
+Bachelors,2016,New Delhi,1,29,Female,No,1,0
+Bachelors,2015,Pune,2,28,Female,No,0,1
+Bachelors,2012,Bangalore,3,29,Male,Yes,2,0
+PHD,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2018,Bangalore,3,29,Female,No,3,1
+Masters,2017,New Delhi,2,30,Male,No,2,0
+Masters,2016,New Delhi,3,29,Female,No,1,1
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Pune,3,28,Male,No,5,0
+Bachelors,2017,New Delhi,2,29,Female,No,5,0
+Bachelors,2014,Bangalore,3,30,Male,No,0,0
+Bachelors,2017,Bangalore,3,30,Male,No,0,0
+Bachelors,2014,Pune,3,28,Male,No,2,0
+Bachelors,2013,New Delhi,3,28,Female,No,1,0
+Bachelors,2016,New Delhi,3,26,Female,No,4,0
+Bachelors,2012,New Delhi,3,28,Female,No,0,0
+Bachelors,2017,Bangalore,3,29,Male,No,0,0
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+Masters,2017,New Delhi,2,26,Male,No,4,1
+Bachelors,2017,New Delhi,3,26,Female,No,4,0
+Bachelors,2013,Bangalore,3,27,Male,No,5,1
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,Pune,2,29,Female,No,0,1
+Bachelors,2013,Pune,2,28,Female,No,4,1
+Bachelors,2017,Bangalore,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,28,Female,No,0,1
+Bachelors,2017,Bangalore,3,29,Male,No,1,0
+Bachelors,2013,Bangalore,3,29,Female,No,3,0
+Bachelors,2015,Bangalore,3,29,Male,No,5,0
+Bachelors,2017,New Delhi,3,30,Female,No,3,0
+Bachelors,2015,Pune,3,29,Male,No,0,0
+Bachelors,2013,Bangalore,3,27,Female,Yes,5,0
+Bachelors,2016,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,1
+Bachelors,2012,Bangalore,3,28,Male,No,2,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2018,Bangalore,3,29,Male,No,0,1
+Bachelors,2017,Bangalore,1,29,Female,No,5,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Masters,2017,Bangalore,2,27,Male,No,5,1
+Masters,2014,New Delhi,3,28,Female,No,2,0
+Bachelors,2012,New Delhi,3,27,Female,No,5,1
+Bachelors,2012,Bangalore,3,28,Male,No,0,0
+Masters,2017,Pune,2,27,Male,No,5,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,New Delhi,3,27,Female,No,5,1
+Bachelors,2013,Bangalore,2,26,Female,No,4,1
+Bachelors,2012,Pune,2,27,Female,No,5,1
+Bachelors,2016,Pune,3,26,Female,No,4,1
+Bachelors,2017,New Delhi,2,27,Male,No,5,0
+Bachelors,2012,Bangalore,3,28,Female,No,3,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Masters,2017,New Delhi,3,27,Male,No,5,0
+Bachelors,2013,Pune,2,30,Female,No,5,1
+Bachelors,2013,Pune,3,28,Male,No,0,0
+Bachelors,2012,Pune,3,26,Male,No,4,0
+Bachelors,2016,Bangalore,3,28,Male,No,3,1
+Masters,2015,Pune,3,26,Male,No,4,1
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Masters,2017,Bangalore,2,26,Male,No,4,1
+Bachelors,2014,Bangalore,3,30,Female,No,2,0
+Bachelors,2014,Bangalore,3,29,Female,No,2,0
+Bachelors,2017,Pune,3,26,Male,Yes,4,0
+Bachelors,2013,Bangalore,3,28,Male,No,0,0
+Bachelors,2018,Bangalore,3,29,Male,No,1,1
+Bachelors,2016,Bangalore,3,30,Female,No,3,0
+Bachelors,2017,Bangalore,3,30,Male,No,0,1
+PHD,2015,New Delhi,3,29,Male,No,4,0
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Bachelors,2014,Bangalore,1,28,Female,No,5,0
+Bachelors,2014,Pune,3,30,Male,No,0,0
+Masters,2012,Bangalore,3,26,Female,No,4,1
+Bachelors,2013,New Delhi,2,26,Female,No,4,1
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2016,New Delhi,3,29,Female,No,0,0
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Masters,2018,New Delhi,3,28,Female,No,2,1
+PHD,2015,New Delhi,2,27,Female,No,5,0
+Masters,2013,Pune,1,30,Male,No,1,0
+Bachelors,2012,Pune,3,26,Male,No,4,0
+Bachelors,2015,Pune,2,26,Female,Yes,4,1
+Bachelors,2018,New Delhi,3,30,Female,Yes,3,1
+PHD,2013,New Delhi,3,30,Male,No,5,0
+Bachelors,2013,Bangalore,3,28,Male,No,0,0
+Masters,2014,New Delhi,3,26,Male,Yes,4,1
+Bachelors,2017,Bangalore,3,29,Male,No,1,0
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2012,Pune,3,26,Male,No,4,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2015,Pune,3,29,Male,No,0,0
+Bachelors,2014,Bangalore,1,26,Male,No,4,0
+Bachelors,2018,Bangalore,3,36,Male,No,2,1
+Bachelors,2018,Bangalore,3,37,Male,No,4,1
+Bachelors,2015,Pune,3,35,Female,No,0,1
+Bachelors,2013,Pune,2,32,Female,No,4,1
+Bachelors,2013,Pune,1,39,Female,No,0,1
+Bachelors,2018,Pune,3,32,Male,No,1,1
+PHD,2012,New Delhi,3,37,Female,No,5,0
+Bachelors,2012,Pune,3,31,Male,No,4,0
+Bachelors,2018,Pune,3,31,Male,No,1,1
+Bachelors,2017,Bangalore,3,33,Male,No,2,0
+Masters,2017,Pune,2,37,Male,No,2,0
+Bachelors,2014,Pune,3,31,Male,Yes,1,0
+Masters,2017,Bangalore,3,40,Female,No,4,0
+Bachelors,2017,New Delhi,2,32,Male,No,0,0
+Bachelors,2016,Bangalore,3,41,Male,No,0,0
+Bachelors,2018,Bangalore,3,35,Female,Yes,5,1
+Bachelors,2014,Pune,3,34,Male,No,3,0
+Bachelors,2017,Bangalore,3,31,Male,No,0,0
+Masters,2017,Bangalore,3,41,Female,No,2,1
+Bachelors,2015,Pune,3,41,Male,No,5,0
+Bachelors,2016,Bangalore,3,37,Female,No,0,0
+Bachelors,2018,Bangalore,3,32,Female,No,3,1
+Bachelors,2015,Bangalore,3,37,Male,Yes,3,0
+Bachelors,2016,Bangalore,3,32,Male,No,1,0
+Masters,2017,New Delhi,3,36,Female,No,5,0
+Bachelors,2014,Bangalore,3,36,Male,No,3,0
+Bachelors,2015,Bangalore,3,36,Male,No,5,0
+Bachelors,2017,Bangalore,3,41,Male,Yes,3,0
+Bachelors,2015,Pune,3,39,Male,No,3,0
+Bachelors,2013,Pune,3,37,Male,No,0,0
+Bachelors,2013,Bangalore,3,32,Male,No,1,0
+Bachelors,2012,Bangalore,3,36,Male,No,2,0
+Bachelors,2013,Bangalore,3,36,Male,No,4,0
+Bachelors,2014,Bangalore,3,36,Male,No,1,0
+Bachelors,2018,Bangalore,3,32,Female,Yes,2,1
+Bachelors,2018,Bangalore,3,34,Male,No,3,1
+Bachelors,2018,Bangalore,3,37,Male,Yes,5,1
+Bachelors,2018,Pune,3,40,Male,Yes,3,1
+Bachelors,2014,Pune,2,36,Female,No,3,1
+Bachelors,2017,Pune,2,38,Female,No,0,0
+Masters,2017,New Delhi,2,31,Female,No,0,1
+Bachelors,2013,New Delhi,3,41,Female,No,4,0
+Masters,2012,Bangalore,2,32,Male,No,3,1
+Bachelors,2017,New Delhi,2,41,Female,No,3,0
+Bachelors,2013,Pune,3,40,Male,No,5,0
+Bachelors,2014,Bangalore,3,38,Female,No,2,1
+Masters,2017,New Delhi,2,36,Male,No,5,0
+Bachelors,2013,New Delhi,3,33,Female,No,1,0
+Bachelors,2014,Bangalore,3,39,Male,Yes,0,0
+Bachelors,2013,Bangalore,3,39,Male,No,0,0
+Bachelors,2014,Bangalore,3,33,Male,No,4,0
+Bachelors,2017,Pune,3,32,Male,No,5,0
+Bachelors,2014,Bangalore,3,35,Female,No,2,1
+Bachelors,2014,Bangalore,3,36,Male,No,5,0
+Bachelors,2018,Pune,2,39,Female,No,0,1
+Bachelors,2013,Bangalore,3,37,Female,No,5,0
+Masters,2017,New Delhi,2,35,Female,No,2,1
+Bachelors,2017,Bangalore,3,36,Male,No,5,0
+Masters,2013,New Delhi,3,41,Male,No,0,0
+Bachelors,2017,Bangalore,3,33,Male,No,2,0
+Bachelors,2018,Bangalore,3,38,Male,No,2,1
+Bachelors,2015,Bangalore,3,34,Male,No,5,0
+Bachelors,2012,Bangalore,3,34,Male,No,1,0
+Bachelors,2015,Pune,3,35,Male,Yes,5,0
+Bachelors,2012,Bangalore,3,39,Female,No,2,0
+Bachelors,2012,Bangalore,3,41,Male,No,3,0
+Bachelors,2018,Bangalore,3,34,Male,Yes,2,1
+Masters,2015,Pune,2,35,Female,No,1,0
+Bachelors,2012,Bangalore,3,33,Male,No,2,0
+Bachelors,2015,Bangalore,3,39,Male,No,3,0
+Masters,2017,New Delhi,2,35,Male,Yes,2,0
+Bachelors,2017,New Delhi,2,31,Female,No,0,0
+Bachelors,2016,Bangalore,3,34,Male,Yes,4,0
+Bachelors,2013,Bangalore,3,40,Female,Yes,5,0
+Bachelors,2016,New Delhi,3,31,Female,No,4,0
+Bachelors,2016,Pune,3,33,Male,No,3,0
+Bachelors,2013,Bangalore,3,32,Male,No,5,0
+Masters,2017,New Delhi,2,31,Male,No,4,1
+Bachelors,2014,Bangalore,3,39,Male,No,2,0
+Bachelors,2016,Bangalore,3,33,Male,No,1,1
+Bachelors,2014,Bangalore,3,40,Female,No,4,0
+Bachelors,2016,Bangalore,3,39,Male,No,0,1
+Bachelors,2017,Bangalore,3,35,Male,Yes,2,0
+Bachelors,2017,Bangalore,3,32,Male,No,1,0
+Bachelors,2015,Pune,2,34,Female,No,5,1
+Bachelors,2017,Bangalore,3,40,Female,No,4,0
+Masters,2017,Pune,3,33,Male,No,4,1
+Bachelors,2015,Pune,2,36,Female,No,0,1
+Masters,2018,Bangalore,3,39,Male,No,3,1
+Bachelors,2012,Bangalore,3,37,Female,No,5,1
+Bachelors,2018,Bangalore,3,36,Male,No,1,1
+Bachelors,2017,New Delhi,2,39,Male,No,2,0
+Bachelors,2015,Pune,2,35,Female,Yes,4,1
+Masters,2018,New Delhi,3,41,Male,No,2,1
+Bachelors,2012,Pune,3,31,Male,No,5,0
+Bachelors,2015,Pune,2,36,Female,Yes,0,1
+Bachelors,2016,Bangalore,3,32,Male,No,1,0
+Bachelors,2017,Bangalore,3,37,Male,No,2,1
+Bachelors,2015,Pune,2,39,Female,No,4,1
+Bachelors,2012,Pune,3,34,Male,No,2,0
+Bachelors,2012,Bangalore,3,35,Female,No,1,0
+Bachelors,2015,Bangalore,3,40,Female,No,2,0
+Bachelors,2016,Bangalore,3,39,Female,No,1,0
+Bachelors,2017,Bangalore,3,39,Female,No,1,0
+Bachelors,2015,Pune,3,41,Female,No,3,1
+Bachelors,2012,Pune,3,40,Male,No,2,0
+Bachelors,2012,Bangalore,1,36,Male,No,3,0
+Bachelors,2017,New Delhi,2,33,Female,No,2,0
+Masters,2014,New Delhi,3,33,Male,No,2,0
+Masters,2018,New Delhi,3,40,Male,No,2,1
+Bachelors,2015,Pune,2,34,Female,No,2,1
+Bachelors,2014,Bangalore,3,33,Female,No,1,0
+Masters,2015,New Delhi,1,34,Male,No,5,1
+Masters,2017,New Delhi,1,40,Male,No,5,0
+Bachelors,2014,Bangalore,3,32,Male,No,4,0
+Bachelors,2017,New Delhi,3,38,Male,No,2,0
+Bachelors,2015,Bangalore,3,38,Male,No,4,0
+Bachelors,2015,Bangalore,3,32,Male,No,2,0
+Bachelors,2013,Bangalore,3,31,Female,Yes,3,1
+Bachelors,2015,Bangalore,3,39,Female,No,0,0
+Masters,2017,Pune,2,41,Male,Yes,2,0
+Bachelors,2015,Pune,2,35,Female,Yes,2,1
+Bachelors,2016,Pune,3,39,Male,No,5,0
+Bachelors,2014,Bangalore,3,40,Female,No,0,0
+Bachelors,2016,Bangalore,3,41,Male,No,1,0
+Masters,2015,Pune,2,34,Female,No,1,0
+Bachelors,2016,Pune,2,37,Female,No,5,1
+Bachelors,2017,New Delhi,2,36,Male,No,2,0
+Bachelors,2015,Pune,3,37,Male,No,1,0
+Masters,2015,Pune,1,40,Female,No,1,0
+Bachelors,2018,New Delhi,3,39,Female,Yes,0,1
+Bachelors,2017,New Delhi,2,36,Female,No,5,0
+Bachelors,2015,Bangalore,2,32,Female,No,2,1
+PHD,2015,Pune,3,31,Female,No,1,0
+Bachelors,2012,Bangalore,3,31,Male,No,4,0
+Bachelors,2013,New Delhi,3,36,Female,No,5,0
+Bachelors,2014,Bangalore,3,35,Male,No,3,0
+Masters,2013,New Delhi,2,33,Female,No,2,1
+Bachelors,2014,Bangalore,3,39,Male,Yes,1,0
+Bachelors,2015,Pune,3,35,Female,No,1,1
+Bachelors,2013,Bangalore,3,38,Female,No,4,0
+Masters,2017,Bangalore,3,39,Female,No,4,1
+Bachelors,2012,Bangalore,3,41,Male,No,3,0
+Bachelors,2014,Pune,2,35,Male,No,2,1
+Bachelors,2016,Pune,3,31,Male,No,1,0
+Bachelors,2017,New Delhi,2,32,Female,No,4,1
+Bachelors,2016,New Delhi,3,34,Male,No,1,0
+Bachelors,2014,Bangalore,3,34,Male,Yes,3,0
+Masters,2014,New Delhi,3,36,Male,No,1,1
+Masters,2017,Bangalore,2,41,Male,No,4,0
+Masters,2017,Pune,2,39,Female,No,3,0
+Masters,2017,New Delhi,2,38,Male,No,5,0
+Bachelors,2012,Bangalore,3,37,Male,No,4,0
+Bachelors,2015,Bangalore,3,38,Male,No,3,1
+Bachelors,2014,Bangalore,3,37,Male,No,4,0
+Bachelors,2017,Bangalore,3,34,Male,No,5,0
+Bachelors,2014,Bangalore,1,39,Male,No,5,0
+Masters,2017,New Delhi,2,38,Female,No,2,1
+Masters,2017,New Delhi,3,33,Male,No,5,0
+Bachelors,2012,Bangalore,3,33,Female,No,5,0
+Bachelors,2012,Bangalore,3,34,Male,No,4,0
+Bachelors,2016,Pune,2,32,Female,No,0,1
+Bachelors,2012,Bangalore,3,33,Female,Yes,0,0
+Masters,2013,Pune,3,37,Male,No,2,0
+Masters,2015,New Delhi,3,37,Male,No,2,1
+Bachelors,2013,New Delhi,3,37,Male,No,2,0
+Bachelors,2017,Bangalore,3,40,Male,Yes,1,0
+Masters,2016,New Delhi,3,32,Male,No,1,0
+Bachelors,2016,Bangalore,3,36,Female,No,5,1
+Bachelors,2014,Bangalore,3,36,Male,No,4,0
+Bachelors,2014,Bangalore,3,36,Female,No,1,1
+Masters,2017,New Delhi,3,31,Male,No,1,1
+Bachelors,2015,Bangalore,3,38,Male,Yes,4,0
+Masters,2017,New Delhi,3,38,Male,No,2,0
+Bachelors,2012,Pune,3,39,Male,No,2,0
+Bachelors,2014,Bangalore,1,37,Male,No,5,0
+Bachelors,2015,Pune,2,36,Female,No,1,1
+Bachelors,2013,Bangalore,3,35,Male,No,2,1
+Bachelors,2013,Pune,3,40,Female,No,5,1
+Bachelors,2014,Pune,3,40,Male,No,5,0
+Bachelors,2017,Bangalore,3,35,Female,No,3,0
+Bachelors,2012,Bangalore,3,41,Female,No,5,0
+Bachelors,2015,Bangalore,3,32,Male,No,4,0
+Bachelors,2013,Bangalore,3,41,Male,No,2,0
+Bachelors,2016,New Delhi,3,40,Female,No,1,1
+Bachelors,2017,Pune,3,40,Male,No,3,0
+Bachelors,2017,Bangalore,3,34,Male,No,3,1
+Masters,2017,New Delhi,2,36,Male,Yes,2,0
+Bachelors,2017,New Delhi,3,33,Female,No,2,0
+Bachelors,2014,Pune,3,41,Male,No,2,0
+Bachelors,2014,Bangalore,3,40,Female,No,3,0
+Bachelors,2016,Bangalore,3,31,Male,No,1,1
+Masters,2015,Bangalore,3,32,Female,No,2,1
+Bachelors,2017,Pune,3,34,Female,No,1,1
+Bachelors,2016,New Delhi,3,32,Male,No,4,0
+Bachelors,2013,Bangalore,3,32,Female,No,4,0
+Bachelors,2014,Bangalore,3,38,Male,No,2,0
+Masters,2017,New Delhi,3,32,Male,No,1,1
+Bachelors,2015,New Delhi,3,40,Male,No,2,0
+Bachelors,2017,New Delhi,1,38,Female,No,1,1
+Bachelors,2017,Pune,3,37,Male,No,0,0
+PHD,2014,Bangalore,3,31,Male,No,1,0
+Bachelors,2014,Pune,3,34,Male,No,0,0
+Masters,2017,New Delhi,2,34,Female,No,2,1
+Bachelors,2013,Pune,2,37,Female,No,0,1
+Masters,2017,New Delhi,2,31,Male,No,1,0
+Bachelors,2017,Bangalore,3,35,Male,No,5,0
+PHD,2015,New Delhi,3,34,Female,No,4,0
+Bachelors,2012,Bangalore,1,32,Male,No,1,1
+Bachelors,2017,Pune,3,31,Male,Yes,0,0
+Bachelors,2015,Bangalore,3,36,Female,No,5,0
+Masters,2017,New Delhi,3,38,Female,No,2,0
+Bachelors,2015,Pune,3,34,Male,No,4,0
+Bachelors,2013,Bangalore,1,39,Female,No,1,1
+PHD,2013,Pune,3,35,Male,No,0,0
+Masters,2015,Pune,2,33,Male,No,4,1
+Masters,2014,Bangalore,3,35,Female,No,2,1
+Masters,2015,New Delhi,3,40,Male,No,2,0
+Bachelors,2015,Pune,2,32,Female,No,0,1
+Bachelors,2013,Bangalore,3,38,Male,No,1,0
+Bachelors,2012,Bangalore,3,32,Female,No,1,1
+Bachelors,2018,Bangalore,3,36,Male,No,3,1
+Bachelors,2012,Bangalore,3,35,Male,No,1,0
+Bachelors,2013,New Delhi,3,37,Female,No,0,0
+Bachelors,2015,Pune,2,35,Male,No,3,1
+Masters,2017,Pune,2,37,Female,No,1,0
+Masters,2017,Pune,2,39,Male,No,4,0
+Masters,2014,Pune,3,40,Male,No,4,1
+Bachelors,2012,Pune,2,41,Female,No,1,1
+Bachelors,2018,Pune,3,41,Male,Yes,0,1
+Masters,2017,Pune,2,39,Female,No,2,0
+Bachelors,2012,Bangalore,3,38,Female,No,5,0
+Bachelors,2013,Bangalore,3,33,Male,No,3,0
+Bachelors,2014,Bangalore,3,36,Female,No,3,0
+Bachelors,2017,Bangalore,3,41,Male,No,5,0
+PHD,2012,New Delhi,3,40,Female,No,5,0
+Bachelors,2013,Bangalore,3,31,Female,No,4,1
+Bachelors,2012,Bangalore,3,33,Female,No,1,0
+Bachelors,2015,Bangalore,3,39,Male,Yes,2,0
+Masters,2014,Pune,2,33,Female,No,5,0
+Bachelors,2015,Bangalore,3,35,Male,No,0,0
+Masters,2012,New Delhi,3,38,Male,No,2,0
+Bachelors,2016,Bangalore,3,36,Female,No,0,0
+Bachelors,2014,Pune,2,36,Female,No,2,1
+Bachelors,2015,Bangalore,1,35,Male,No,5,0
+Bachelors,2017,Pune,2,34,Female,No,5,1
+Bachelors,2015,Pune,2,41,Female,No,3,1
+Bachelors,2016,Pune,3,32,Female,No,3,1
+Bachelors,2017,Pune,2,41,Female,No,2,1
+Bachelors,2016,Bangalore,3,36,Male,No,0,0
+Bachelors,2017,Pune,2,39,Male,No,3,0
+Bachelors,2015,Bangalore,3,38,Male,Yes,2,0
+Bachelors,2014,Bangalore,3,34,Male,No,3,1
+Bachelors,2012,Bangalore,3,39,Female,No,5,0
+Bachelors,2017,Pune,3,36,Male,No,1,0
+Bachelors,2014,Bangalore,3,35,Male,No,1,0
+Masters,2018,Bangalore,3,31,Male,No,2,1
+Bachelors,2012,Bangalore,3,41,Female,No,4,0
+Bachelors,2017,Bangalore,3,35,Female,No,4,0
+Bachelors,2015,Bangalore,1,40,Male,No,2,0
+Bachelors,2018,Bangalore,3,33,Female,No,4,1
+Bachelors,2016,Bangalore,3,37,Female,No,0,0
+PHD,2018,Bangalore,3,36,Female,No,3,1
+Bachelors,2012,Bangalore,3,40,Male,No,0,0
+Bachelors,2017,New Delhi,2,36,Male,No,0,0
+Masters,2015,New Delhi,3,38,Female,No,0,0
+Bachelors,2014,New Delhi,2,31,Female,No,4,1
+Bachelors,2016,Pune,3,40,Male,No,4,0
+Bachelors,2017,Bangalore,3,37,Female,No,4,0
+Bachelors,2015,New Delhi,3,38,Female,No,0,0
+Masters,2017,New Delhi,2,35,Female,No,2,0
+PHD,2018,New Delhi,3,35,Female,No,0,1
+Bachelors,2012,Bangalore,3,38,Female,No,3,0
+Bachelors,2012,Pune,3,31,Female,No,5,0
+Masters,2016,New Delhi,3,33,Female,No,1,0
+Bachelors,2013,Pune,2,32,Female,No,1,1
+Bachelors,2017,Bangalore,1,39,Male,No,0,0
+Bachelors,2018,New Delhi,3,35,Female,No,2,1
+Bachelors,2014,New Delhi,3,38,Female,No,5,0
+Bachelors,2015,Bangalore,3,32,Male,No,0,0
+Bachelors,2017,Bangalore,3,34,Female,No,2,0
+Bachelors,2017,Bangalore,3,41,Male,No,1,0
+Masters,2012,Bangalore,3,40,Female,No,5,0
+Bachelors,2012,Pune,2,32,Male,No,1,1
+Bachelors,2013,Bangalore,3,35,Male,No,0,0
+PHD,2013,New Delhi,1,36,Female,No,3,0
+Bachelors,2013,Bangalore,3,40,Female,No,4,0
+Bachelors,2018,Pune,2,35,Female,No,2,1
+Masters,2017,New Delhi,2,37,Female,No,4,0
+Bachelors,2017,Bangalore,3,34,Male,No,3,0
+Bachelors,2012,Pune,3,36,Male,No,1,0
+Bachelors,2015,New Delhi,3,37,Male,No,4,0
+Bachelors,2014,Bangalore,3,39,Male,No,5,0
+Bachelors,2017,New Delhi,2,39,Female,No,0,0
+Masters,2018,New Delhi,3,38,Male,No,2,1
+Bachelors,2013,New Delhi,3,37,Female,No,1,0
+Bachelors,2012,New Delhi,2,33,Female,No,0,1
+PHD,2014,Bangalore,3,38,Female,No,3,0
+Masters,2017,New Delhi,2,40,Female,No,2,1
+Bachelors,2012,Bangalore,3,41,Male,No,5,0
+Bachelors,2013,Bangalore,2,38,Female,No,1,1
+Bachelors,2012,Bangalore,3,37,Male,No,4,0
+Bachelors,2014,Bangalore,3,39,Male,No,5,1
+Bachelors,2018,Bangalore,3,35,Male,No,1,1
+Masters,2017,New Delhi,3,39,Female,No,5,1
+Bachelors,2015,Pune,2,31,Female,No,1,1
+Bachelors,2012,Pune,3,33,Male,No,2,0
+Bachelors,2017,Pune,3,33,Male,No,2,0
+Bachelors,2013,Pune,3,32,Male,No,2,0
+Bachelors,2015,Pune,2,40,Female,No,4,1
+Bachelors,2013,New Delhi,3,38,Female,No,4,0
+Bachelors,2016,Bangalore,3,34,Male,Yes,2,0
+Bachelors,2016,Bangalore,1,39,Male,No,2,0
+Bachelors,2012,Bangalore,3,38,Male,No,2,0
+Masters,2017,New Delhi,2,31,Female,No,2,1
+Bachelors,2017,Bangalore,3,35,Female,No,5,0
+Bachelors,2013,Bangalore,3,31,Male,No,2,0
+Bachelors,2012,Pune,3,33,Male,No,1,0
+Bachelors,2015,Pune,2,37,Female,No,3,1
+Masters,2018,New Delhi,3,40,Female,No,2,1
+Bachelors,2014,Bangalore,3,38,Male,No,0,0
+Bachelors,2012,Bangalore,3,31,Male,Yes,5,0
+PHD,2014,Bangalore,3,39,Male,No,1,0
+Bachelors,2016,New Delhi,3,40,Male,No,0,0
+Bachelors,2017,Pune,3,36,Female,No,0,1
+Bachelors,2015,Bangalore,3,39,Female,No,3,1
+Bachelors,2012,Bangalore,3,39,Male,No,0,0
+Bachelors,2013,Bangalore,3,35,Female,No,0,0
+Masters,2013,New Delhi,3,35,Male,No,2,0
+Bachelors,2013,Bangalore,3,35,Male,No,5,0
+Masters,2017,Bangalore,3,34,Female,No,4,0
+Bachelors,2014,Bangalore,3,41,Male,No,4,0
+Bachelors,2017,Bangalore,3,35,Male,No,5,0
+Bachelors,2013,Bangalore,3,40,Male,No,1,0
+Masters,2017,Pune,3,31,Male,No,3,1
+Masters,2014,New Delhi,3,33,Male,No,3,0
+Bachelors,2017,Pune,2,33,Female,No,2,1
+Bachelors,2016,Bangalore,3,39,Female,No,5,0
+Bachelors,2016,Bangalore,3,41,Male,No,1,1
+Bachelors,2017,Bangalore,3,32,Male,No,5,0
+Bachelors,2014,Pune,2,39,Female,No,5,1
+Bachelors,2014,Bangalore,3,31,Male,No,1,0
+Bachelors,2012,Bangalore,3,40,Male,No,3,0
+Masters,2018,New Delhi,3,34,Male,No,2,1
+Bachelors,2018,New Delhi,3,37,Male,No,4,1
+Bachelors,2016,Bangalore,3,37,Female,No,0,0
+Bachelors,2014,Bangalore,3,36,Female,No,3,0
+Bachelors,2015,Bangalore,2,39,Female,No,0,1
+Bachelors,2014,Pune,3,37,Male,No,1,0
+Masters,2014,New Delhi,3,37,Male,No,2,0
+Masters,2017,New Delhi,3,32,Male,No,2,0
+Bachelors,2014,New Delhi,3,37,Male,No,3,0
+Bachelors,2017,Bangalore,3,36,Female,No,3,0
+Bachelors,2015,Pune,2,40,Female,No,2,1
+Bachelors,2014,Bangalore,3,40,Male,No,0,0
+Bachelors,2012,Pune,3,32,Male,No,3,0
+Bachelors,2012,Bangalore,3,37,Male,No,3,1
+Bachelors,2017,Pune,3,40,Female,No,1,1
+Bachelors,2014,Pune,3,40,Male,No,5,0
+Bachelors,2017,Bangalore,3,34,Female,Yes,0,0
+Bachelors,2012,Bangalore,3,37,Male,No,3,0
+Bachelors,2017,Bangalore,3,35,Male,No,3,0
+Bachelors,2017,Pune,3,37,Female,No,2,0
+Bachelors,2012,New Delhi,3,35,Female,No,2,0
+Bachelors,2014,Bangalore,3,31,Male,No,0,1
+Bachelors,2016,Bangalore,3,41,Male,No,4,0
+Masters,2017,New Delhi,3,37,Female,No,3,0
+Bachelors,2018,Pune,3,40,Male,No,0,1
+Bachelors,2018,Bangalore,1,36,Male,Yes,1,0
+PHD,2018,New Delhi,3,37,Female,No,2,1
+Bachelors,2014,Bangalore,3,40,Female,No,0,0
+Bachelors,2017,Bangalore,3,34,Male,No,3,0
+Bachelors,2018,Pune,3,37,Male,No,5,1
+Bachelors,2016,Pune,3,38,Male,No,0,0
+Bachelors,2017,Bangalore,2,37,Male,No,2,1
+Bachelors,2016,Pune,3,32,Male,No,1,1
+Bachelors,2016,Bangalore,3,31,Male,No,3,0
+Bachelors,2013,Bangalore,1,40,Male,No,2,0
+Bachelors,2017,Bangalore,3,40,Female,No,4,0
+Bachelors,2015,Bangalore,3,31,Male,No,1,0
+Masters,2017,Pune,2,36,Male,No,2,0
+Bachelors,2017,Bangalore,3,38,Male,Yes,2,0
+Bachelors,2014,Pune,3,37,Female,No,5,1
+Bachelors,2014,Pune,3,34,Female,No,2,1
+Bachelors,2013,Bangalore,3,41,Male,Yes,2,1
+Bachelors,2015,Pune,2,32,Female,No,3,1
+Bachelors,2015,Pune,3,34,Male,No,5,0
+PHD,2013,Bangalore,3,39,Male,No,2,1
+Masters,2013,New Delhi,2,32,Male,No,2,1
+Bachelors,2012,Bangalore,3,31,Female,No,3,0
+PHD,2016,New Delhi,3,40,Male,No,1,0
+Bachelors,2015,Bangalore,3,37,Female,No,0,0
+Masters,2017,New Delhi,3,40,Female,No,0,0
+Bachelors,2013,Bangalore,3,31,Male,No,1,0
+Bachelors,2017,Bangalore,3,32,Male,No,2,0
+Bachelors,2017,Bangalore,3,34,Female,Yes,1,0
+Masters,2013,Pune,2,41,Male,No,2,1
+Masters,2015,New Delhi,3,37,Male,No,2,0
+Bachelors,2015,Bangalore,3,40,Female,No,1,0
+Masters,2017,Pune,2,35,Male,No,2,0
+Bachelors,2012,Bangalore,3,39,Male,No,3,0
+Bachelors,2017,Pune,3,41,Male,No,4,0
+Bachelors,2015,Bangalore,3,36,Male,No,4,0
+Bachelors,2014,Bangalore,3,32,Male,No,5,0
+Bachelors,2013,Bangalore,3,41,Male,No,2,0
+Bachelors,2013,Bangalore,3,32,Male,No,0,0
+Bachelors,2017,Bangalore,3,36,Male,No,2,0
+Bachelors,2013,Bangalore,3,40,Male,No,4,0
+Bachelors,2018,Bangalore,3,32,Male,Yes,1,1
+Bachelors,2016,Bangalore,3,38,Male,No,1,0
+Bachelors,2018,Bangalore,3,41,Male,No,4,1
+Masters,2017,Pune,2,35,Male,No,3,1
+Bachelors,2016,Bangalore,3,36,Female,No,1,0
+Bachelors,2014,Bangalore,3,35,Female,No,4,0
+Bachelors,2016,Bangalore,3,31,Male,No,2,0
+PHD,2015,Pune,3,37,Male,No,2,0
+Bachelors,2013,Bangalore,3,41,Female,No,4,0
+Bachelors,2013,Bangalore,3,31,Male,No,0,0
+Bachelors,2017,New Delhi,2,36,Male,No,2,0
+Bachelors,2015,New Delhi,3,32,Male,No,1,0
+Bachelors,2017,Bangalore,3,34,Male,No,0,0
+Bachelors,2015,Bangalore,3,39,Female,No,0,0
+Bachelors,2014,Bangalore,3,33,Male,No,1,1
+Bachelors,2017,New Delhi,2,36,Male,No,3,0
+Bachelors,2016,Bangalore,1,34,Male,Yes,2,1
+Bachelors,2017,Pune,2,33,Male,No,1,0
+Bachelors,2012,Bangalore,3,38,Female,No,4,1
+Bachelors,2013,Bangalore,3,35,Male,No,3,1
+Bachelors,2017,Pune,3,31,Male,No,1,0
+Bachelors,2013,Pune,3,37,Male,No,2,0
+Bachelors,2012,Bangalore,3,32,Female,No,2,1
+Bachelors,2013,Pune,3,34,Male,Yes,5,0
+PHD,2013,Bangalore,2,41,Male,No,2,1
+Masters,2015,New Delhi,3,32,Male,No,0,1
+Bachelors,2013,Bangalore,3,39,Male,No,2,0
+Bachelors,2012,Bangalore,3,31,Male,Yes,0,1
+Bachelors,2017,New Delhi,2,41,Male,No,1,0
+Bachelors,2016,Bangalore,3,36,Male,No,2,0
+Bachelors,2017,Bangalore,2,38,Female,No,5,1
+Bachelors,2012,Bangalore,3,32,Male,No,5,0
+Bachelors,2018,Pune,3,35,Female,No,3,1
+Bachelors,2017,Bangalore,3,39,Male,No,2,0
+Masters,2017,New Delhi,2,36,Male,Yes,2,0
+Bachelors,2013,Pune,3,33,Male,No,4,0
+Bachelors,2013,Pune,3,32,Male,Yes,5,0
+Bachelors,2017,Bangalore,3,35,Male,No,1,1
+Bachelors,2015,Bangalore,3,36,Male,No,1,0
+Masters,2014,Pune,3,39,Male,No,4,0
+Bachelors,2016,Bangalore,3,40,Male,No,0,1
+Bachelors,2012,Bangalore,3,37,Male,No,3,0
+Masters,2015,Pune,1,38,Female,No,0,0
+Bachelors,2017,New Delhi,3,40,Male,No,1,0
+Bachelors,2013,Bangalore,3,34,Female,No,2,0
+Bachelors,2013,Bangalore,3,31,Male,Yes,4,0
+Bachelors,2014,New Delhi,3,40,Female,No,3,1
+Bachelors,2013,Bangalore,3,37,Male,No,2,0
+Bachelors,2012,New Delhi,3,33,Male,No,3,0
+Bachelors,2015,Bangalore,3,36,Male,Yes,4,0
+Bachelors,2014,Bangalore,3,35,Female,No,4,0
+Bachelors,2014,Bangalore,3,34,Male,No,5,0
+Bachelors,2013,Bangalore,3,35,Male,No,0,1
+Masters,2014,New Delhi,3,39,Male,No,2,0
+Bachelors,2015,Pune,3,35,Female,No,1,1
+Masters,2014,New Delhi,3,34,Male,No,5,0
+Bachelors,2017,Pune,2,32,Female,No,2,1
+Bachelors,2015,New Delhi,3,32,Female,No,2,0
+Bachelors,2014,Bangalore,3,33,Male,No,5,1
+Masters,2017,New Delhi,2,34,Male,No,2,1
+Masters,2016,Bangalore,3,35,Female,No,1,1
+Masters,2017,New Delhi,3,35,Male,Yes,2,0
+Bachelors,2014,Pune,2,38,Female,No,3,1
+Bachelors,2016,Bangalore,3,37,Male,No,0,0
+Bachelors,2013,Bangalore,3,38,Female,No,4,0
+Bachelors,2015,Bangalore,3,41,Male,No,0,0
+Masters,2017,Bangalore,3,40,Male,No,4,1
+Bachelors,2017,Bangalore,3,39,Female,No,3,0
+Bachelors,2017,Pune,2,32,Male,No,2,0
+Bachelors,2018,New Delhi,3,40,Male,Yes,4,1
+Bachelors,2016,Bangalore,3,40,Male,No,0,0
+Bachelors,2016,Bangalore,3,41,Female,No,1,1
+Bachelors,2015,Bangalore,3,38,Male,Yes,4,0
+Masters,2017,Pune,1,38,Male,No,0,1
+Bachelors,2018,Bangalore,3,41,Female,No,2,1
+Bachelors,2015,New Delhi,2,33,Female,No,4,1
+Bachelors,2012,Bangalore,3,41,Male,Yes,0,0
+Bachelors,2017,New Delhi,2,35,Female,No,5,0
+Bachelors,2013,Bangalore,3,36,Male,No,5,0
+Bachelors,2013,Pune,3,37,Male,No,1,0
+Bachelors,2013,New Delhi,1,37,Female,No,1,0
+Bachelors,2014,Bangalore,3,39,Male,No,5,0
+Bachelors,2017,Bangalore,3,38,Female,No,2,0
+Bachelors,2013,Pune,2,34,Female,No,1,1
+Bachelors,2017,Pune,2,33,Female,No,4,1
+Bachelors,2013,Bangalore,3,32,Female,No,1,0
+Masters,2014,Bangalore,3,38,Female,No,4,1
+Bachelors,2017,Bangalore,3,32,Male,No,5,0
+Masters,2016,New Delhi,3,41,Male,No,5,1
+Masters,2014,Pune,3,36,Female,No,2,0
+Bachelors,2017,New Delhi,3,34,Female,No,2,1
+Bachelors,2017,Bangalore,3,34,Male,Yes,0,0
+Bachelors,2016,Bangalore,3,35,Male,No,4,0
+Masters,2015,New Delhi,3,38,Male,No,1,0
+Bachelors,2016,Bangalore,3,32,Male,Yes,5,0
+Bachelors,2015,Pune,3,37,Female,No,2,1
+Bachelors,2017,Bangalore,2,32,Female,No,2,1
+Masters,2017,New Delhi,2,36,Male,No,3,0
+Bachelors,2012,Bangalore,3,41,Male,No,3,0
+Bachelors,2017,Pune,3,37,Female,No,5,0
+Bachelors,2018,Bangalore,3,34,Female,No,3,1
+Bachelors,2016,Pune,3,31,Male,No,0,1
+Bachelors,2017,Bangalore,3,41,Male,No,1,0
+Bachelors,2015,New Delhi,3,35,Female,No,3,0
+Bachelors,2015,Bangalore,3,37,Female,No,5,0
+Bachelors,2016,Bangalore,3,34,Male,No,4,0
+Masters,2017,Bangalore,2,40,Female,Yes,2,0
+Bachelors,2015,Bangalore,3,39,Male,No,5,1
+Bachelors,2013,Pune,3,37,Male,No,2,0
+Bachelors,2015,Pune,2,36,Female,Yes,1,1
+Bachelors,2014,Bangalore,3,35,Female,No,2,0
+Masters,2013,Bangalore,3,37,Female,No,3,1
+Bachelors,2013,New Delhi,3,41,Female,No,1,0
+Masters,2017,New Delhi,2,40,Male,No,2,0
+Bachelors,2016,Bangalore,3,37,Male,No,2,0
+Masters,2013,New Delhi,3,40,Female,No,2,1
+Bachelors,2015,Bangalore,3,39,Male,No,5,0
+Masters,2015,Pune,2,33,Female,No,4,0
+Bachelors,2012,Bangalore,3,36,Male,No,1,1
+Bachelors,2012,Bangalore,3,36,Male,No,5,0
+Bachelors,2015,Bangalore,3,38,Male,No,3,0
+Bachelors,2017,New Delhi,2,37,Female,No,5,0
+Masters,2017,New Delhi,3,34,Female,No,2,0
+Bachelors,2013,Bangalore,3,31,Male,No,2,1
+Bachelors,2013,Bangalore,3,38,Male,No,5,0
+Bachelors,2017,Bangalore,3,36,Male,No,3,0
+Bachelors,2012,Bangalore,3,40,Male,No,1,0
+Bachelors,2017,Bangalore,3,41,Male,No,5,1
+Bachelors,2015,Bangalore,3,31,Female,No,4,0
+Bachelors,2017,New Delhi,3,41,Male,No,2,0
+Bachelors,2015,New Delhi,3,31,Female,No,3,0
+Bachelors,2017,Pune,3,31,Female,No,0,1
+Bachelors,2017,New Delhi,2,37,Male,No,0,0
+Bachelors,2012,Pune,3,39,Male,No,0,0
+Bachelors,2014,Bangalore,3,38,Male,No,3,0
+Bachelors,2013,Pune,3,40,Female,No,2,1
+Bachelors,2013,Pune,3,36,Male,No,1,0
+Bachelors,2016,Bangalore,3,41,Male,No,3,0
+Bachelors,2018,Bangalore,3,32,Female,No,2,1
+Masters,2018,Bangalore,3,40,Female,No,3,1
+Bachelors,2012,Bangalore,3,39,Female,No,2,0
+Bachelors,2014,New Delhi,3,33,Male,No,3,0
+Bachelors,2012,Bangalore,3,32,Male,No,4,0
+Bachelors,2018,Bangalore,3,41,Male,No,5,1
+Bachelors,2016,Bangalore,3,36,Male,No,2,0
+Bachelors,2016,Bangalore,3,31,Male,No,0,0
+Bachelors,2014,Bangalore,3,37,Male,No,4,0
+Bachelors,2014,Bangalore,3,33,Male,No,5,1
+Masters,2018,Pune,3,31,Male,No,2,1
+Bachelors,2017,New Delhi,3,35,Female,No,5,0
+Bachelors,2015,Pune,1,32,Female,No,5,1
+Masters,2017,New Delhi,3,41,Female,No,2,0
+Masters,2017,New Delhi,2,36,Female,No,1,0
+Masters,2017,Pune,3,35,Male,No,1,0
+Masters,2017,New Delhi,3,35,Male,No,1,1
+Bachelors,2015,New Delhi,3,33,Male,No,1,0
+Bachelors,2014,Bangalore,3,38,Female,No,4,0
+Bachelors,2015,New Delhi,2,33,Female,No,3,1
+Masters,2018,New Delhi,3,31,Female,Yes,2,1
+PHD,2015,Bangalore,3,31,Male,No,3,0
+Bachelors,2013,Bangalore,3,37,Male,No,5,0
+Bachelors,2014,Bangalore,3,32,Male,No,1,0
+Bachelors,2017,Bangalore,3,33,Male,No,3,0
+Bachelors,2014,Bangalore,3,37,Male,No,5,0
+Bachelors,2012,Bangalore,3,32,Male,No,3,0
+Bachelors,2015,Pune,3,40,Female,Yes,2,1
+Bachelors,2014,Pune,1,40,Female,No,1,1
+Masters,2013,New Delhi,2,32,Male,No,2,1
+Masters,2017,Bangalore,2,39,Female,No,2,1
+PHD,2016,New Delhi,3,41,Male,No,1,0
+PHD,2014,New Delhi,3,32,Female,No,0,0
+Bachelors,2017,Bangalore,3,38,Male,No,0,1
+Masters,2017,New Delhi,2,31,Female,Yes,2,0
+Bachelors,2018,Bangalore,3,38,Male,Yes,3,1
+Bachelors,2016,Bangalore,3,32,Male,No,4,0
+Bachelors,2017,Pune,2,35,Female,No,5,1
+Bachelors,2013,Bangalore,3,34,Male,No,5,0
+Bachelors,2018,Bangalore,3,38,Male,Yes,1,1
+Bachelors,2014,Pune,1,36,Female,No,1,1
+Bachelors,2015,Bangalore,3,34,Female,Yes,2,0
+Masters,2015,New Delhi,3,39,Female,No,2,0
+Masters,2017,New Delhi,1,40,Female,No,0,0
+Bachelors,2016,Bangalore,3,38,Male,Yes,1,0
+Bachelors,2015,Pune,3,35,Male,No,3,0
+Bachelors,2014,Pune,2,31,Male,No,3,1
+Bachelors,2017,Pune,3,41,Male,No,2,0
+Bachelors,2017,Bangalore,3,35,Female,No,3,0
+Bachelors,2018,Bangalore,3,33,Male,No,5,1
+Bachelors,2017,New Delhi,2,33,Male,No,5,0
+Bachelors,2016,New Delhi,3,31,Female,Yes,4,0
+Masters,2013,New Delhi,3,35,Male,No,4,0
+Bachelors,2016,Bangalore,3,37,Female,No,1,0
+Bachelors,2015,Bangalore,3,31,Male,No,5,0
+Bachelors,2012,Bangalore,3,35,Male,No,1,1
+Bachelors,2014,Bangalore,3,32,Male,No,3,0
+Bachelors,2015,Bangalore,3,32,Female,No,0,0
+Bachelors,2017,Bangalore,3,40,Female,No,5,0
+Bachelors,2012,Bangalore,3,34,Male,No,5,0
+Bachelors,2014,Pune,3,37,Male,No,4,0
+PHD,2015,Bangalore,3,40,Male,No,3,0
+Masters,2017,New Delhi,2,34,Female,No,2,1
+Bachelors,2015,Pune,2,32,Female,No,3,1
+Bachelors,2013,Bangalore,3,33,Male,No,1,0
+Bachelors,2015,Bangalore,3,38,Male,No,3,1
+Masters,2017,New Delhi,2,41,Male,No,3,1
+Masters,2017,New Delhi,1,36,Female,No,0,0
+Bachelors,2016,Bangalore,3,33,Male,No,1,0
+Bachelors,2014,Pune,3,31,Male,No,5,0
+Bachelors,2013,Pune,2,34,Female,No,3,1
+Bachelors,2017,Bangalore,3,31,Male,No,1,0
+Bachelors,2016,New Delhi,2,36,Female,No,4,1
+Bachelors,2013,Bangalore,3,38,Male,No,5,0
+Bachelors,2015,Pune,2,39,Female,Yes,1,1
+Bachelors,2014,Pune,3,31,Male,No,3,0
+Bachelors,2015,New Delhi,3,40,Male,No,3,1
+Bachelors,2013,Bangalore,3,39,Male,No,0,0
+Bachelors,2015,Bangalore,3,32,Female,No,4,0
+Bachelors,2014,Bangalore,3,34,Male,No,1,0
+Masters,2015,New Delhi,3,38,Male,No,1,0
+Bachelors,2014,Bangalore,1,39,Male,No,2,0
+Bachelors,2014,Bangalore,3,39,Male,No,5,0
+Bachelors,2016,Bangalore,3,33,Male,No,1,0
+Bachelors,2018,Pune,2,34,Female,No,4,1
+Bachelors,2017,Pune,3,38,Male,Yes,1,0
+Masters,2017,New Delhi,2,33,Male,No,2,0
+Bachelors,2014,Bangalore,3,41,Male,No,5,0
+Masters,2017,Pune,1,39,Male,No,0,0
+Masters,2013,Pune,3,39,Male,No,2,0
+Bachelors,2014,Bangalore,3,41,Male,No,5,0
+Bachelors,2012,Bangalore,3,40,Male,No,4,0
+Bachelors,2014,Bangalore,3,36,Male,No,0,0
+Bachelors,2015,Bangalore,3,34,Male,No,0,0
+Bachelors,2013,Bangalore,3,32,Male,No,5,1
+Bachelors,2015,Bangalore,3,31,Male,No,4,0
+Bachelors,2012,Bangalore,3,36,Male,Yes,0,0
+Masters,2017,Pune,2,35,Male,No,1,1
+Bachelors,2017,Bangalore,3,32,Male,No,2,0
+Bachelors,2017,Pune,3,33,Male,Yes,5,0
+Bachelors,2016,Bangalore,3,34,Male,No,2,0
+Bachelors,2017,Bangalore,3,39,Male,No,3,0
+Bachelors,2018,Bangalore,3,38,Male,No,0,1
+Bachelors,2012,Pune,2,35,Female,No,1,1
+Bachelors,2015,Pune,2,40,Female,Yes,5,1
+Bachelors,2017,Pune,3,41,Male,No,3,0
+Bachelors,2016,Bangalore,1,33,Female,Yes,3,0
+Masters,2017,New Delhi,1,40,Male,No,0,0
+Bachelors,2018,Bangalore,3,33,Female,No,3,1
+Bachelors,2015,Bangalore,3,38,Male,No,1,1
+Masters,2017,Bangalore,2,32,Male,No,2,0
+Bachelors,2014,Pune,3,32,Male,Yes,2,0
+Bachelors,2015,New Delhi,3,32,Female,No,2,0
+Bachelors,2016,Pune,2,37,Female,No,2,1
+Bachelors,2015,Bangalore,3,40,Male,No,5,0
+Bachelors,2016,Bangalore,3,38,Male,No,1,0
+PHD,2018,New Delhi,3,33,Female,No,4,1
+Masters,2017,New Delhi,2,40,Male,No,4,0
+Masters,2017,New Delhi,2,35,Male,No,2,0
+Bachelors,2016,Bangalore,3,33,Male,No,3,0
+Bachelors,2017,Bangalore,3,37,Male,No,4,0
+Bachelors,2013,Bangalore,3,38,Male,No,0,0
+Bachelors,2018,Bangalore,3,32,Male,No,2,1
+Bachelors,2017,Bangalore,3,40,Female,No,2,0
+Bachelors,2015,New Delhi,3,33,Female,No,2,0
+Bachelors,2016,Bangalore,3,38,Male,No,2,1
+Bachelors,2013,Bangalore,3,34,Male,No,5,0
+Bachelors,2017,New Delhi,3,38,Female,No,4,0
+Bachelors,2018,Pune,2,31,Female,No,3,1
+Bachelors,2014,Pune,3,32,Female,No,4,0
+Bachelors,2013,Bangalore,3,35,Male,Yes,1,0
+Bachelors,2014,Bangalore,3,35,Male,No,0,1
+Bachelors,2012,Bangalore,3,33,Female,No,4,0
+Bachelors,2012,New Delhi,3,41,Female,No,0,0
+Bachelors,2015,Pune,1,31,Female,No,3,1
+Bachelors,2016,Bangalore,3,34,Male,No,3,0
+Masters,2017,New Delhi,2,40,Female,No,2,0
+Masters,2016,Bangalore,3,32,Male,No,1,1
+Bachelors,2012,Bangalore,3,36,Male,No,5,0
+Bachelors,2014,Pune,2,40,Female,No,3,1
+Bachelors,2012,Pune,3,31,Male,No,3,0
+Bachelors,2014,Bangalore,1,34,Female,No,5,0
+Masters,2013,New Delhi,3,41,Female,Yes,2,1
+Masters,2017,New Delhi,2,32,Male,No,2,0
+Bachelors,2016,Bangalore,3,41,Male,No,2,0
+Masters,2014,New Delhi,3,33,Male,No,3,0
+Bachelors,2013,Bangalore,3,33,Female,No,0,1
+Bachelors,2013,Pune,3,39,Female,No,2,0
+Masters,2018,Pune,3,40,Male,No,2,1
+Bachelors,2017,New Delhi,3,34,Male,No,3,0
+Bachelors,2016,Pune,3,41,Male,Yes,5,0
+Bachelors,2015,Pune,3,37,Male,No,5,1
+Masters,2017,Bangalore,3,32,Female,No,4,1
+Bachelors,2017,Bangalore,3,41,Male,No,3,0
+Bachelors,2018,Bangalore,3,34,Female,Yes,2,1
+Masters,2017,Bangalore,3,38,Male,No,5,1
+Bachelors,2017,Bangalore,3,40,Female,No,3,0
+Masters,2017,Pune,3,35,Male,No,2,0
+Bachelors,2015,Pune,3,31,Male,No,1,0
+Bachelors,2016,Pune,3,39,Male,No,4,0
+Bachelors,2018,Bangalore,3,39,Male,No,1,1
+Bachelors,2018,Bangalore,3,32,Male,No,3,1
+Bachelors,2015,Bangalore,3,38,Male,No,5,0
+Bachelors,2015,Bangalore,3,35,Male,No,3,0
+Bachelors,2013,Bangalore,1,38,Male,No,4,0
+Bachelors,2012,New Delhi,3,32,Male,No,1,1
+Bachelors,2014,Pune,2,37,Female,No,5,1
+Bachelors,2015,Pune,3,35,Male,No,0,0
+Bachelors,2017,Pune,3,41,Female,No,4,1
+Masters,2015,Bangalore,3,36,Male,No,0,0
+Bachelors,2017,Bangalore,3,35,Male,No,2,0
+Masters,2017,New Delhi,2,36,Male,No,2,1
+Masters,2017,Bangalore,1,34,Male,No,1,0
+Bachelors,2015,Bangalore,3,36,Male,No,3,0
+Bachelors,2017,Pune,2,33,Male,No,3,0
+Masters,2018,New Delhi,3,38,Male,No,2,1
+PHD,2013,New Delhi,3,35,Female,Yes,3,1
+Bachelors,2015,New Delhi,2,37,Female,No,3,1
+Bachelors,2017,Bangalore,3,31,Male,No,0,0
+Bachelors,2017,Pune,2,40,Female,No,2,1
+Bachelors,2015,Pune,3,32,Female,No,3,1
+Bachelors,2015,Bangalore,3,35,Male,Yes,2,0
+Bachelors,2012,Bangalore,3,38,Male,Yes,0,0
+Bachelors,2015,Pune,2,36,Female,No,0,1
+Masters,2015,Pune,3,36,Male,No,3,0
+Masters,2014,New Delhi,3,32,Female,No,5,0
+Bachelors,2018,Pune,2,37,Female,No,0,1
+Bachelors,2018,Pune,3,35,Female,No,0,1
+Bachelors,2015,Pune,1,36,Female,No,4,1
+Bachelors,2015,New Delhi,2,34,Female,No,5,1
+Masters,2017,New Delhi,2,35,Female,No,0,0
+Masters,2017,New Delhi,2,38,Female,No,5,0
+Bachelors,2015,Pune,2,39,Female,No,5,1
+Bachelors,2012,Pune,2,32,Female,No,5,1
+Bachelors,2015,Bangalore,3,39,Male,No,2,0
+Bachelors,2015,Bangalore,3,39,Male,No,2,1
+Masters,2017,Pune,2,37,Male,No,2,0
+Bachelors,2015,Bangalore,3,32,Female,No,5,0
+Bachelors,2017,New Delhi,2,38,Male,No,0,0
+Bachelors,2012,Pune,2,36,Female,No,5,1
+Masters,2016,Bangalore,1,37,Male,No,2,1
+Bachelors,2017,Pune,3,32,Male,No,4,0
+Masters,2017,New Delhi,3,37,Male,No,2,0
+Bachelors,2016,New Delhi,3,33,Male,No,2,0
+Bachelors,2016,Bangalore,3,39,Male,No,4,0
+Bachelors,2012,Bangalore,3,35,Male,No,1,1
+Masters,2015,Pune,3,39,Male,No,5,0
+Bachelors,2015,Bangalore,3,34,Male,No,0,0
+Masters,2017,New Delhi,2,33,Male,No,4,0
+Bachelors,2012,Bangalore,3,33,Male,No,1,0
+Bachelors,2015,New Delhi,3,31,Male,No,0,0
+PHD,2016,Pune,3,31,Female,No,4,0
+Bachelors,2015,Bangalore,3,37,Female,No,4,0
+Bachelors,2012,Bangalore,3,33,Male,No,0,0
+Bachelors,2017,Pune,3,31,Male,No,0,0
+Bachelors,2017,Bangalore,3,41,Female,No,2,0
+Masters,2017,Pune,2,39,Male,No,2,0
+Masters,2013,New Delhi,3,32,Male,No,2,0
+Bachelors,2016,Pune,3,37,Male,No,3,0
+Bachelors,2014,Bangalore,3,37,Male,No,1,0
+Bachelors,2017,Pune,2,34,Female,No,3,1
+Bachelors,2017,New Delhi,2,31,Male,No,2,0
+Bachelors,2014,Pune,2,34,Female,Yes,1,1
+Bachelors,2012,Bangalore,3,38,Female,No,5,0
+Bachelors,2013,Bangalore,3,37,Female,No,1,0
+Bachelors,2015,Pune,1,34,Female,No,3,1
+Bachelors,2015,Bangalore,3,33,Male,No,2,0
+Bachelors,2016,Bangalore,3,37,Male,No,4,0
+Bachelors,2016,Bangalore,3,41,Male,No,4,0
+Bachelors,2012,Bangalore,1,38,Female,No,1,0
+Bachelors,2016,Pune,3,40,Male,No,5,0
+Bachelors,2017,New Delhi,3,33,Female,No,1,1
+Bachelors,2016,New Delhi,3,33,Male,No,1,0
+Masters,2013,New Delhi,3,37,Male,Yes,2,0
+Bachelors,2017,New Delhi,2,36,Female,No,2,0
+Bachelors,2012,Bangalore,3,36,Female,No,5,0
+Bachelors,2015,Bangalore,3,41,Male,No,1,0
+Masters,2014,New Delhi,3,40,Male,No,5,0
+Bachelors,2016,Bangalore,3,36,Female,No,0,0
+Masters,2017,Bangalore,2,41,Male,Yes,2,1
+Bachelors,2015,Pune,3,33,Male,No,5,0
+Masters,2017,New Delhi,2,37,Female,No,2,0
+Bachelors,2017,New Delhi,2,33,Male,No,0,0
+Bachelors,2014,Bangalore,3,40,Female,No,4,0
+Masters,2018,New Delhi,3,36,Male,No,2,1
+Bachelors,2018,Bangalore,3,40,Male,Yes,3,1
+Masters,2018,Bangalore,3,40,Male,No,2,1
+Bachelors,2014,Bangalore,3,34,Male,No,3,0
+Bachelors,2012,Pune,3,39,Male,No,5,0
+Bachelors,2017,Pune,2,33,Male,No,1,1
+Bachelors,2016,Bangalore,3,37,Male,No,2,0
+Bachelors,2012,New Delhi,3,40,Male,No,3,0
+Bachelors,2018,Bangalore,3,38,Male,No,1,1
+Bachelors,2016,Bangalore,3,40,Male,Yes,1,0
+Bachelors,2014,New Delhi,3,38,Female,No,0,0
+Bachelors,2016,Bangalore,3,34,Male,Yes,1,0
+Masters,2016,New Delhi,3,37,Female,No,3,1
+Bachelors,2015,Bangalore,3,40,Male,No,5,0
+Bachelors,2015,New Delhi,3,40,Female,No,1,0
+Masters,2016,Bangalore,3,37,Male,No,2,1
+Bachelors,2016,Pune,2,37,Female,No,3,1
+Bachelors,2013,Pune,3,32,Male,No,1,0
+Masters,2017,New Delhi,1,35,Male,No,5,0
+Bachelors,2016,Bangalore,1,38,Male,No,3,0
+Bachelors,2017,Pune,3,34,Female,No,1,0
+Bachelors,2014,Bangalore,3,32,Male,No,2,1
+Bachelors,2013,Bangalore,3,37,Male,No,5,0
+Bachelors,2017,New Delhi,2,37,Male,No,4,0
+Bachelors,2014,Bangalore,3,35,Male,No,2,0
+Bachelors,2016,Bangalore,3,40,Male,No,0,0
+Bachelors,2012,Bangalore,3,40,Male,Yes,2,0
+Bachelors,2015,Bangalore,3,39,Female,No,3,1
+Masters,2013,New Delhi,3,41,Female,No,2,0
+Bachelors,2015,Bangalore,3,34,Female,No,4,0
+Bachelors,2012,New Delhi,3,34,Female,No,4,0
+Bachelors,2013,Pune,2,36,Male,No,2,1
+Masters,2016,New Delhi,3,39,Female,No,1,0
+Bachelors,2014,New Delhi,3,41,Male,No,5,0
+Bachelors,2015,Bangalore,3,40,Male,No,0,0
+Bachelors,2017,Bangalore,3,34,Female,No,5,0
+Bachelors,2013,Bangalore,3,31,Male,No,2,0
+Bachelors,2012,Pune,3,40,Male,No,3,0
+Bachelors,2013,Pune,3,32,Male,No,5,0
+Bachelors,2018,Pune,3,38,Male,No,3,1
+Bachelors,2016,Bangalore,3,40,Male,No,3,0
+PHD,2013,Bangalore,3,41,Male,No,4,0
+Bachelors,2014,Bangalore,3,36,Female,No,0,0
+Bachelors,2015,Pune,2,33,Female,Yes,3,1
+Bachelors,2016,New Delhi,3,37,Male,No,3,0
+Bachelors,2015,Pune,3,38,Male,No,4,0
+Bachelors,2017,Bangalore,3,32,Male,No,4,0
+Bachelors,2017,Pune,3,33,Male,No,1,0
+Bachelors,2015,Bangalore,3,38,Male,No,5,0
+Bachelors,2015,Pune,3,40,Female,No,5,1
+Bachelors,2014,Bangalore,3,35,Male,Yes,0,0
+Masters,2016,New Delhi,3,37,Female,No,5,0
+Bachelors,2016,Bangalore,3,37,Male,Yes,2,0
+Bachelors,2015,Bangalore,3,36,Male,No,2,0
+Bachelors,2017,Bangalore,3,33,Female,No,4,1
+Bachelors,2014,Pune,2,36,Female,No,3,1
+Bachelors,2016,Pune,3,32,Male,No,3,0
+Bachelors,2017,Bangalore,3,35,Female,No,1,1
+Bachelors,2014,Pune,2,34,Female,No,2,1
+Masters,2017,Pune,2,40,Male,No,5,0
+Bachelors,2016,Bangalore,3,37,Female,No,4,0
+Bachelors,2015,Bangalore,1,36,Male,No,1,0
+Bachelors,2012,Pune,3,41,Female,No,1,0
+Bachelors,2016,Pune,3,36,Male,No,0,0
+Bachelors,2017,Bangalore,3,31,Female,No,2,0
+Bachelors,2017,Pune,3,31,Male,No,3,0
+Bachelors,2014,Pune,3,33,Male,No,2,0
+Bachelors,2017,Bangalore,3,35,Male,Yes,0,0
+PHD,2016,New Delhi,3,34,Male,No,1,0
+Bachelors,2014,Bangalore,3,39,Female,No,4,0
+Masters,2015,Bangalore,3,31,Male,No,1,1
+Bachelors,2015,Pune,3,32,Female,No,0,1
+Bachelors,2017,Bangalore,3,33,Male,No,0,1
+Bachelors,2014,Bangalore,3,34,Male,Yes,1,0
+Masters,2014,Pune,3,39,Male,No,2,0
+Bachelors,2017,New Delhi,2,41,Female,No,2,1
+Bachelors,2017,New Delhi,2,34,Male,No,2,0
+Bachelors,2013,Bangalore,3,36,Female,No,5,0
+Bachelors,2015,Pune,2,39,Female,No,5,1
+Bachelors,2012,Pune,3,37,Male,No,5,0
+Bachelors,2016,Bangalore,3,36,Male,No,4,0
+Bachelors,2014,New Delhi,3,38,Female,No,1,0
+Bachelors,2017,Bangalore,3,38,Female,No,3,0
+Masters,2016,New Delhi,3,37,Female,No,2,1
+Bachelors,2012,Bangalore,3,34,Male,No,2,0
+Bachelors,2015,Bangalore,3,31,Male,No,2,0
+Bachelors,2015,Pune,2,32,Female,No,2,1
+Masters,2018,New Delhi,3,35,Male,No,2,1
+Bachelors,2017,Bangalore,3,31,Male,Yes,2,0
+Bachelors,2015,Bangalore,1,32,Male,Yes,0,1
+Bachelors,2015,Bangalore,3,31,Female,No,5,0
+Bachelors,2018,Bangalore,3,37,Male,No,5,1
+PHD,2018,New Delhi,3,40,Male,No,3,1
+Bachelors,2015,Bangalore,1,41,Male,No,1,0
+Bachelors,2017,Pune,3,34,Male,No,5,0
+Bachelors,2014,Bangalore,3,36,Male,Yes,3,0
+Bachelors,2013,Pune,3,35,Male,No,1,0
+Masters,2017,New Delhi,3,38,Female,No,3,0
+Bachelors,2017,Bangalore,3,33,Male,No,1,0
+Bachelors,2014,Bangalore,3,38,Female,No,2,0
+Bachelors,2018,Bangalore,3,38,Male,No,1,1
+Bachelors,2017,Pune,2,40,Male,No,4,0
+Bachelors,2013,New Delhi,3,39,Male,No,5,0
+Bachelors,2014,New Delhi,3,33,Female,No,4,0
+Bachelors,2015,Pune,3,32,Female,No,3,1
+Bachelors,2013,Bangalore,3,39,Male,No,2,0
+Bachelors,2015,Bangalore,3,38,Female,No,4,0
+Bachelors,2013,Bangalore,3,38,Male,No,2,0
+Bachelors,2017,Bangalore,3,35,Male,No,0,0
+Bachelors,2017,Pune,3,31,Female,No,0,1
+Bachelors,2017,Bangalore,3,41,Male,No,5,0
+Bachelors,2013,New Delhi,3,38,Female,No,4,1
+Bachelors,2016,Bangalore,3,40,Male,Yes,1,0
+Bachelors,2018,Bangalore,3,36,Female,No,2,1
+PHD,2013,New Delhi,3,36,Male,No,3,1
+Bachelors,2014,Pune,3,41,Male,No,4,0
+Bachelors,2014,Bangalore,3,35,Male,Yes,1,0
+Bachelors,2017,Bangalore,3,38,Male,No,5,0
+Bachelors,2017,New Delhi,2,41,Female,No,0,0
+Bachelors,2012,Bangalore,1,34,Male,No,0,0
+Bachelors,2016,Bangalore,3,39,Female,No,3,1
+Bachelors,2014,Bangalore,3,37,Male,No,5,0
+Bachelors,2015,Pune,2,39,Female,Yes,0,1
+Bachelors,2013,Bangalore,3,31,Male,No,2,1
+Masters,2012,New Delhi,3,34,Female,No,3,0
+Bachelors,2015,Bangalore,3,39,Male,No,1,0
+Bachelors,2014,Pune,2,38,Female,No,3,1
+Bachelors,2012,Bangalore,3,34,Male,No,1,0
+Bachelors,2016,Bangalore,3,31,Female,No,2,0
+Bachelors,2016,Bangalore,3,39,Female,No,0,0
+Bachelors,2013,Bangalore,3,31,Female,No,1,0
+Bachelors,2012,Bangalore,3,36,Male,No,1,0
+Bachelors,2017,New Delhi,3,37,Male,No,0,0
+Bachelors,2015,Pune,1,38,Female,No,1,1
+PHD,2017,Pune,3,41,Male,No,2,0
+Bachelors,2018,Bangalore,3,32,Male,No,4,1
+Bachelors,2018,Pune,3,35,Male,No,0,1
+Bachelors,2017,Bangalore,3,35,Male,No,1,0
+Bachelors,2013,Bangalore,3,32,Male,No,1,0
+Bachelors,2015,Bangalore,3,31,Male,No,1,1
+Bachelors,2015,Bangalore,3,41,Male,No,4,0
+Bachelors,2012,Bangalore,3,33,Male,Yes,0,0
+Bachelors,2012,New Delhi,2,38,Female,No,1,1
+Masters,2012,Bangalore,3,39,Female,No,3,1
+Bachelors,2015,Bangalore,1,36,Female,No,2,0
+Masters,2017,Bangalore,2,31,Male,No,5,0
+Masters,2017,New Delhi,2,39,Female,No,2,1
+Masters,2017,New Delhi,3,41,Male,No,3,1
+PHD,2018,New Delhi,3,33,Female,No,0,1
+Bachelors,2015,Bangalore,3,38,Male,No,1,0
+Bachelors,2017,Pune,2,31,Male,No,0,0
+Bachelors,2014,Bangalore,3,34,Male,No,4,0
+Bachelors,2017,Bangalore,3,40,Male,No,2,0
+Bachelors,2012,Bangalore,3,36,Male,No,1,0
+Bachelors,2015,Bangalore,3,36,Female,No,2,0
+Bachelors,2017,New Delhi,2,41,Female,No,4,0
+Bachelors,2017,Bangalore,3,37,Male,No,3,0
+Bachelors,2017,New Delhi,3,33,Male,No,5,0
+Bachelors,2017,New Delhi,3,41,Female,No,4,0
+Bachelors,2017,Bangalore,3,37,Female,No,2,0
+Bachelors,2017,Pune,3,38,Male,Yes,5,0
+Bachelors,2015,Bangalore,3,34,Male,No,2,1
+Bachelors,2017,Pune,3,37,Female,No,0,0
+Bachelors,2014,Bangalore,3,34,Male,No,0,1
+Bachelors,2012,Pune,3,32,Male,No,1,0
+Masters,2012,New Delhi,3,35,Female,No,4,1
+Bachelors,2013,Pune,3,36,Male,No,3,0
+Bachelors,2015,Bangalore,3,34,Female,No,2,0
+Bachelors,2014,Bangalore,3,37,Female,No,3,0
+Bachelors,2016,Bangalore,3,40,Female,Yes,4,0
+Bachelors,2014,Pune,3,33,Male,No,4,0
+Bachelors,2016,Bangalore,3,39,Female,No,4,0
+Bachelors,2012,Bangalore,3,40,Male,No,4,0
+Bachelors,2013,Bangalore,1,34,Male,No,4,1
+Bachelors,2016,Pune,3,40,Male,No,5,0
+PHD,2013,Bangalore,3,32,Male,No,5,0
+Bachelors,2012,Bangalore,3,33,Male,No,1,0
+Bachelors,2017,New Delhi,1,31,Female,No,4,1
+Masters,2016,New Delhi,3,41,Female,No,4,0
+Bachelors,2016,Bangalore,3,34,Male,No,4,0
+Bachelors,2016,Bangalore,3,39,Male,No,7,0
+Bachelors,2014,Bangalore,3,35,Male,No,5,0
+Bachelors,2016,Pune,3,38,Female,No,7,0
+Bachelors,2016,Bangalore,3,33,Male,No,6,0
+Bachelors,2014,Pune,3,33,Male,No,6,0
+Bachelors,2012,Bangalore,3,35,Male,No,5,0
+PHD,2013,New Delhi,3,40,Male,No,5,0
+Bachelors,2012,Bangalore,3,40,Female,No,5,0
+Bachelors,2017,Bangalore,3,39,Male,No,5,0
+Bachelors,2017,Bangalore,3,33,Female,No,6,0
+Bachelors,2014,Bangalore,3,32,Female,No,5,0
+Masters,2014,Bangalore,3,40,Female,No,7,1
+Bachelors,2017,New Delhi,2,33,Male,No,6,0
+Masters,2016,New Delhi,1,31,Female,No,5,1
+Bachelors,2013,Bangalore,3,35,Female,No,5,0
+Bachelors,2014,Bangalore,3,39,Male,No,7,1
+Masters,2018,Bangalore,3,39,Female,No,6,1
+Masters,2017,Pune,2,38,Female,No,2,0
+Bachelors,2012,Bangalore,3,38,Male,No,7,1
+Masters,2017,New Delhi,2,40,Female,Yes,2,0
+Bachelors,2018,Bangalore,3,38,Male,No,6,1
+Bachelors,2013,Bangalore,3,34,Male,No,6,0
+Bachelors,2012,Bangalore,1,35,Male,No,7,0
+Masters,2013,New Delhi,1,41,Male,No,5,0
+PHD,2014,New Delhi,2,37,Female,No,5,0
+Bachelors,2015,Pune,3,34,Male,Yes,7,0
+Bachelors,2014,Bangalore,3,35,Male,Yes,5,0
+Bachelors,2013,Bangalore,1,38,Male,No,6,0
+Bachelors,2016,Bangalore,3,38,Female,No,7,0
+Bachelors,2015,Pune,2,41,Female,No,7,0
+Bachelors,2018,Bangalore,3,34,Male,No,5,1
+Bachelors,2017,Pune,2,22,Male,No,0,0
+Bachelors,2018,Bangalore,2,26,Female,No,4,1
+Bachelors,2012,Bangalore,3,22,Male,No,0,0
+Bachelors,2017,New Delhi,3,25,Female,No,3,0
+Bachelors,2016,Bangalore,3,29,Male,No,0,0
+Bachelors,2017,New Delhi,3,36,Female,No,0,0
+Bachelors,2014,Bangalore,3,37,Female,No,1,0
+Bachelors,2013,New Delhi,2,34,Female,No,4,1
+Bachelors,2012,Pune,3,34,Female,No,2,1
+Bachelors,2012,Bangalore,3,25,Female,No,3,1
+Bachelors,2012,Bangalore,3,31,Male,No,0,0
+Bachelors,2015,New Delhi,3,36,Female,No,2,0
+Bachelors,2016,Bangalore,3,31,Male,Yes,5,0
+Bachelors,2015,Bangalore,3,34,Male,No,4,0
+Masters,2014,New Delhi,3,28,Male,Yes,2,1
+Bachelors,2014,Bangalore,3,28,Male,No,2,0
+Bachelors,2015,Bangalore,3,31,Male,No,1,0
+Bachelors,2017,Bangalore,3,35,Male,No,5,0
+Bachelors,2012,Bangalore,1,28,Female,Yes,1,0
+Bachelors,2018,Bangalore,3,32,Female,No,2,1
+Bachelors,2013,Bangalore,3,23,Male,Yes,1,1
+Masters,2018,Pune,3,27,Male,No,5,1
+Bachelors,2017,Pune,3,25,Male,No,3,0
+Masters,2017,New Delhi,2,31,Female,No,2,0
+PHD,2018,New Delhi,3,34,Male,No,0,1
+Bachelors,2016,Bangalore,3,36,Female,No,2,0
+PHD,2017,New Delhi,3,40,Male,No,3,0
+Masters,2012,New Delhi,3,34,Female,No,2,0
+Bachelors,2018,Bangalore,3,37,Male,No,2,1
+Bachelors,2012,Bangalore,3,38,Male,No,3,0
+Bachelors,2017,New Delhi,2,22,Female,No,0,0
+Bachelors,2016,Pune,2,36,Female,No,0,1
+Bachelors,2013,New Delhi,2,35,Female,No,1,1
+Bachelors,2012,New Delhi,3,22,Female,No,0,0
+Bachelors,2016,Bangalore,3,22,Male,No,0,0
+Bachelors,2012,Bangalore,3,29,Male,No,4,0
+Bachelors,2017,Bangalore,3,34,Male,No,5,0
+Bachelors,2017,Bangalore,2,23,Male,No,1,0
+Bachelors,2014,Pune,2,32,Male,No,3,1
+Bachelors,2012,Pune,2,26,Female,No,4,1
+Masters,2017,Bangalore,3,38,Male,No,2,0
+Bachelors,2014,Pune,3,37,Male,No,4,0
+Bachelors,2017,New Delhi,2,25,Female,No,3,0
+Bachelors,2018,Pune,2,36,Female,No,5,1
+Bachelors,2016,Bangalore,3,26,Female,No,4,0
+Bachelors,2018,Pune,2,39,Female,No,4,1
+Bachelors,2016,Bangalore,3,24,Male,No,2,1
+Masters,2018,Pune,3,39,Male,No,2,1
+Masters,2018,New Delhi,3,39,Female,No,2,1
+Bachelors,2017,New Delhi,2,27,Female,No,5,0
+Bachelors,2013,Bangalore,3,36,Male,No,5,1
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,Bangalore,3,28,Female,No,3,0
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,New Delhi,3,23,Male,No,1,0
+Bachelors,2013,Bangalore,3,30,Female,No,5,0
+Bachelors,2014,Bangalore,3,22,Male,No,0,0
+Bachelors,2014,Pune,3,27,Male,No,5,0
+Masters,2017,New Delhi,3,32,Male,No,2,0
+Masters,2014,Pune,1,33,Female,No,1,0
+Masters,2017,New Delhi,3,26,Male,No,4,1
+Bachelors,2013,Pune,3,25,Female,Yes,3,1
+Masters,2017,New Delhi,2,23,Male,No,1,1
+Bachelors,2012,Pune,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,33,Male,No,5,0
+Masters,2018,Bangalore,3,30,Male,Yes,2,1
+Masters,2017,New Delhi,2,27,Female,No,5,0
+Bachelors,2012,Pune,2,31,Female,No,5,1
+Masters,2018,New Delhi,3,23,Female,No,1,1
+Bachelors,2015,Bangalore,3,30,Male,No,2,0
+Bachelors,2015,Pune,2,32,Female,No,2,1
+Bachelors,2013,New Delhi,3,26,Female,Yes,4,0
+Masters,2017,New Delhi,2,35,Male,No,2,0
+Bachelors,2016,Bangalore,1,30,Male,No,4,1
+Bachelors,2012,Bangalore,3,37,Male,No,4,1
+Bachelors,2017,Bangalore,1,34,Male,Yes,0,0
+Bachelors,2012,Bangalore,3,38,Female,No,0,0
+Masters,2013,New Delhi,2,22,Male,Yes,0,1
+Bachelors,2015,Pune,1,22,Female,No,0,1
+Masters,2015,Pune,2,33,Female,No,2,1
+Bachelors,2015,Bangalore,3,32,Male,No,1,0
+Masters,2015,Pune,2,34,Female,No,2,0
+Bachelors,2017,Bangalore,3,36,Female,No,1,0
+Bachelors,2015,Bangalore,3,32,Male,No,1,0
+Bachelors,2017,Bangalore,3,28,Male,Yes,3,0
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2013,Pune,3,35,Male,No,1,0
+Bachelors,2014,Pune,3,33,Male,No,4,0
+Masters,2013,Pune,3,22,Female,Yes,0,1
+Bachelors,2014,Pune,3,27,Male,No,5,1
+Masters,2018,New Delhi,3,23,Female,No,1,1
+Bachelors,2013,Bangalore,3,34,Female,Yes,2,0
+Masters,2017,Pune,2,23,Male,No,1,1
+Bachelors,2012,Pune,3,36,Male,No,4,0
+PHD,2018,New Delhi,3,28,Male,No,4,1
+PHD,2013,Bangalore,3,28,Male,No,4,0
+Bachelors,2016,Bangalore,3,33,Female,No,4,0
+Bachelors,2013,Bangalore,3,39,Male,No,3,0
+Bachelors,2015,New Delhi,3,25,Female,Yes,3,0
+Bachelors,2014,Pune,3,32,Male,No,2,0
+Bachelors,2015,Pune,3,23,Female,No,1,1
+Masters,2018,New Delhi,3,29,Male,No,2,1
+Bachelors,2013,Pune,2,24,Male,No,2,1
+Bachelors,2012,Bangalore,3,36,Female,No,2,1
+Bachelors,2018,Bangalore,3,40,Male,No,4,1
+Bachelors,2012,New Delhi,3,38,Female,No,1,0
+Bachelors,2014,Bangalore,3,22,Male,No,0,0
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Bachelors,2012,Bangalore,3,37,Male,No,5,0
+Bachelors,2018,Pune,3,40,Male,No,3,1
+Bachelors,2018,Bangalore,3,32,Male,Yes,0,1
+Bachelors,2012,New Delhi,3,28,Female,No,1,0
+Bachelors,2016,Pune,3,29,Male,Yes,5,0
+Bachelors,2013,Pune,3,25,Male,No,3,0
+PHD,2013,Bangalore,3,35,Male,No,3,1
+Bachelors,2015,Bangalore,3,28,Male,No,0,1
+Bachelors,2012,Bangalore,3,39,Male,No,3,0
+Bachelors,2012,Pune,1,35,Male,No,1,0
+Bachelors,2017,Bangalore,3,37,Male,No,2,0
+Masters,2018,Pune,3,40,Female,No,2,1
+Bachelors,2018,Bangalore,3,23,Male,No,1,1
+Bachelors,2013,Pune,3,32,Male,No,2,0
+PHD,2018,New Delhi,3,37,Male,No,3,1
+Bachelors,2015,Bangalore,3,23,Female,No,1,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,36,Female,No,3,1
+Bachelors,2013,Bangalore,3,40,Female,No,3,0
+Bachelors,2015,New Delhi,3,22,Male,No,0,0
+Bachelors,2015,Bangalore,3,30,Male,No,0,0
+Bachelors,2014,Bangalore,3,30,Male,No,1,0
+Bachelors,2015,Pune,1,34,Female,No,3,1
+Bachelors,2018,Bangalore,3,27,Male,No,5,1
+Bachelors,2013,Bangalore,1,27,Female,No,5,0
+Bachelors,2017,Pune,2,27,Female,No,5,1
+Bachelors,2015,Bangalore,3,35,Female,No,1,1
+Bachelors,2014,New Delhi,3,33,Female,Yes,4,0
+Bachelors,2012,Bangalore,3,37,Male,No,4,0
+Bachelors,2014,New Delhi,3,40,Female,No,3,0
+Bachelors,2015,Pune,2,25,Female,No,3,1
+Bachelors,2017,Pune,2,34,Male,No,2,0
+Bachelors,2017,New Delhi,3,40,Male,No,1,0
+Masters,2018,New Delhi,3,34,Male,No,2,1
+Bachelors,2013,Pune,3,33,Male,No,5,0
+Bachelors,2016,Bangalore,3,22,Female,No,0,0
+Bachelors,2015,Pune,2,36,Female,No,1,1
+Bachelors,2012,Bangalore,3,38,Male,No,2,1
+Bachelors,2013,Pune,3,25,Female,No,3,0
+Bachelors,2017,Bangalore,3,37,Male,No,3,1
+Bachelors,2016,Bangalore,3,25,Female,No,3,0
+Bachelors,2015,Pune,2,40,Female,Yes,0,1
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2015,Pune,1,23,Female,No,1,0
+Bachelors,2014,Bangalore,3,22,Male,No,0,1
+Masters,2017,New Delhi,2,34,Male,Yes,2,0
+Masters,2017,New Delhi,3,35,Female,No,2,0
+Bachelors,2014,Pune,3,23,Male,No,1,0
+Bachelors,2015,Bangalore,3,29,Male,No,2,1
+Bachelors,2015,Pune,3,32,Female,No,1,0
+Bachelors,2015,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,28,Male,No,3,0
+Masters,2015,Pune,2,24,Female,No,2,0
+Bachelors,2017,Bangalore,3,33,Male,No,4,0
+PHD,2016,New Delhi,3,22,Male,No,0,0
+Masters,2015,Pune,2,39,Female,No,2,0
+Masters,2018,New Delhi,3,30,Female,Yes,2,1
+Bachelors,2014,Bangalore,3,38,Female,No,5,1
+Bachelors,2012,New Delhi,3,36,Female,No,4,0
+Bachelors,2012,Pune,2,38,Male,No,5,0
+Bachelors,2013,Bangalore,3,24,Male,Yes,2,0
+Bachelors,2016,Bangalore,3,28,Male,No,1,0
+Bachelors,2015,Bangalore,3,35,Female,No,0,1
+Bachelors,2013,New Delhi,3,23,Female,No,1,0
+Masters,2017,New Delhi,2,23,Female,No,1,1
+Bachelors,2013,Bangalore,3,37,Male,No,5,0
+Masters,2016,New Delhi,3,24,Male,No,2,1
+Bachelors,2014,Pune,3,33,Male,Yes,4,0
+Bachelors,2015,Bangalore,3,38,Female,No,5,0
+Bachelors,2015,Pune,3,40,Male,Yes,0,0
+Bachelors,2014,Bangalore,3,34,Male,No,4,0
+Masters,2017,New Delhi,2,26,Male,No,4,0
+Bachelors,2016,Pune,3,25,Male,No,3,0
+Bachelors,2016,Pune,3,24,Female,No,2,0
+Bachelors,2018,Bangalore,3,35,Male,Yes,5,1
+PHD,2013,New Delhi,3,27,Male,No,5,0
+Masters,2013,New Delhi,3,30,Female,No,3,0
+Bachelors,2015,Bangalore,3,26,Female,No,4,1
+Bachelors,2017,Bangalore,3,40,Male,No,0,0
+Masters,2017,Pune,2,27,Female,No,5,1
+Bachelors,2016,Pune,3,38,Male,Yes,0,0
+Bachelors,2014,New Delhi,3,34,Female,No,5,0
+Masters,2017,Pune,2,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,38,Male,No,4,0
+Bachelors,2014,Pune,1,37,Male,No,1,0
+Bachelors,2015,Bangalore,3,22,Male,No,0,0
+Bachelors,2014,New Delhi,3,29,Female,No,2,1
+Bachelors,2014,Pune,1,37,Female,No,4,1
+Bachelors,2016,Pune,3,23,Male,No,1,0
+Bachelors,2012,New Delhi,3,34,Female,No,2,0
+Bachelors,2017,Bangalore,3,28,Male,No,2,0
+Bachelors,2012,Pune,3,24,Male,Yes,2,0
+Masters,2017,Bangalore,2,35,Female,No,0,0
+Bachelors,2015,Bangalore,3,30,Male,No,2,0
+Bachelors,2018,Bangalore,3,33,Male,No,4,1
+Bachelors,2015,Bangalore,3,27,Female,No,5,0
+Bachelors,2016,Bangalore,3,32,Male,No,4,0
+Bachelors,2014,Pune,3,36,Female,No,5,0
+Bachelors,2012,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2012,Bangalore,1,35,Male,No,4,0
+PHD,2012,New Delhi,3,25,Male,No,3,0
+Masters,2013,Bangalore,2,29,Male,No,1,1
+Bachelors,2012,Bangalore,3,36,Female,No,3,0
+Bachelors,2013,Bangalore,3,30,Male,No,1,0
+Bachelors,2017,Pune,2,37,Female,No,4,1
+Bachelors,2016,Bangalore,3,40,Male,No,0,1
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,32,Male,No,4,0
+Bachelors,2018,Pune,3,34,Male,No,0,1
+Bachelors,2014,Pune,3,29,Male,No,3,0
+Bachelors,2012,Bangalore,3,23,Female,No,1,1
+Bachelors,2017,Pune,3,23,Male,No,1,0
+Bachelors,2013,Bangalore,3,25,Female,No,3,0
+Bachelors,2012,New Delhi,1,31,Female,No,3,0
+Masters,2017,New Delhi,2,23,Male,No,1,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+PHD,2015,New Delhi,2,39,Female,No,5,0
+Bachelors,2016,Bangalore,3,33,Female,No,1,1
+Bachelors,2013,Bangalore,3,23,Male,No,1,0
+Masters,2017,New Delhi,2,34,Female,No,4,0
+Bachelors,2015,Pune,2,37,Female,No,1,1
+Bachelors,2012,Bangalore,3,23,Male,No,1,0
+Bachelors,2017,New Delhi,3,27,Male,No,5,0
+Masters,2017,Pune,2,38,Female,No,2,0
+Bachelors,2014,Bangalore,3,27,Female,No,5,0
+Bachelors,2016,Bangalore,3,22,Male,No,0,0
+Masters,2015,Pune,2,26,Female,No,4,1
+Bachelors,2012,Bangalore,3,40,Male,No,3,0
+Bachelors,2016,Bangalore,3,33,Female,No,3,0
+Bachelors,2014,Bangalore,3,31,Male,No,0,0
+Bachelors,2017,Pune,3,33,Male,No,4,0
+Bachelors,2015,New Delhi,3,30,Male,No,5,0
+Bachelors,2015,New Delhi,3,33,Female,No,5,1
+Masters,2017,New Delhi,3,33,Female,No,0,1
+Bachelors,2016,Pune,3,22,Male,No,0,0
+Bachelors,2012,Pune,3,28,Male,No,2,0
+Bachelors,2013,Bangalore,3,36,Male,No,4,0
+Bachelors,2017,New Delhi,2,36,Female,No,1,0
+Bachelors,2014,Pune,3,31,Female,No,2,0
+Bachelors,2013,Bangalore,2,25,Male,No,3,1
+Bachelors,2012,Pune,1,31,Male,No,4,0
+Masters,2015,Pune,2,39,Female,No,0,0
+Masters,2015,Bangalore,3,26,Male,No,4,1
+Bachelors,2017,Bangalore,2,25,Female,No,3,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2013,New Delhi,3,35,Female,No,0,0
+Bachelors,2013,Pune,2,28,Male,No,5,0
+Bachelors,2012,Bangalore,3,32,Female,No,0,0
+Masters,2017,New Delhi,2,22,Male,No,0,1
+Bachelors,2014,Pune,3,36,Female,No,5,1
+Bachelors,2015,Bangalore,3,38,Male,No,1,0
+Bachelors,2014,Bangalore,3,39,Female,No,1,0
+Masters,2017,New Delhi,2,25,Female,No,3,1
+Bachelors,2016,Pune,3,27,Male,No,5,0
+Masters,2014,Pune,3,38,Male,Yes,2,0
+Bachelors,2012,New Delhi,3,22,Female,No,0,0
+Bachelors,2013,Bangalore,3,33,Male,No,2,0
+Bachelors,2013,Pune,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,37,Male,No,5,0
+Bachelors,2018,Pune,3,28,Male,Yes,0,1
+Masters,2017,Pune,3,32,Male,Yes,2,0
+PHD,2016,New Delhi,3,33,Male,No,0,1
+Bachelors,2014,New Delhi,3,32,Male,No,5,0
+Bachelors,2017,Bangalore,3,24,Male,No,2,1
+Bachelors,2016,Bangalore,3,27,Male,Yes,5,0
+Bachelors,2012,Pune,2,35,Female,No,2,1
+PHD,2013,Bangalore,3,40,Male,No,1,0
+Bachelors,2017,New Delhi,2,34,Female,No,4,0
+Bachelors,2016,New Delhi,3,39,Female,No,0,0
+Bachelors,2014,Pune,3,26,Male,No,4,0
+Masters,2015,Pune,2,29,Female,No,2,0
+Bachelors,2013,Bangalore,3,29,Male,No,4,0
+Bachelors,2015,Pune,2,23,Female,Yes,1,1
+Bachelors,2015,Pune,3,32,Male,No,0,0
+Bachelors,2014,Pune,3,28,Male,Yes,4,0
+Masters,2013,New Delhi,2,32,Male,Yes,2,1
+Bachelors,2012,New Delhi,3,32,Female,No,0,0
+Bachelors,2013,Bangalore,3,38,Male,No,0,0
+PHD,2017,Pune,3,30,Male,No,5,0
+PHD,2015,New Delhi,3,31,Male,No,3,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,1
+Bachelors,2013,Bangalore,3,37,Female,No,4,0
+Masters,2017,New Delhi,2,27,Male,No,5,1
+Bachelors,2013,New Delhi,3,25,Female,No,3,0
+Bachelors,2015,Pune,2,22,Female,No,0,1
+Bachelors,2018,Bangalore,3,38,Male,No,2,1
+Bachelors,2015,New Delhi,3,22,Male,No,0,0
+Bachelors,2017,Pune,3,38,Male,No,2,0
+PHD,2015,New Delhi,1,38,Male,No,5,0
+Bachelors,2016,New Delhi,2,26,Female,No,4,1
+Masters,2017,New Delhi,2,31,Male,No,4,0
+Masters,2014,New Delhi,3,28,Male,No,5,0
+PHD,2017,New Delhi,3,34,Female,No,3,0
+Masters,2013,Bangalore,3,31,Male,No,2,0
+Bachelors,2014,New Delhi,3,26,Female,No,4,0
+Bachelors,2013,Pune,3,40,Female,No,1,1
+Bachelors,2016,Bangalore,3,31,Male,No,0,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Bachelors,2018,Pune,3,32,Female,No,1,1
+Bachelors,2012,Bangalore,3,33,Female,No,5,0
+Bachelors,2017,Bangalore,3,25,Male,No,3,0
+Bachelors,2017,Bangalore,3,40,Male,No,0,0
+Masters,2013,New Delhi,3,31,Male,No,2,1
+Bachelors,2015,Bangalore,3,36,Male,No,1,0
+Bachelors,2014,Bangalore,3,31,Male,No,5,0
+Bachelors,2015,Pune,3,22,Male,No,0,0
+Bachelors,2016,Bangalore,3,34,Female,No,0,0
+PHD,2018,New Delhi,3,38,Female,No,5,1
+Bachelors,2015,Bangalore,3,23,Male,Yes,1,0
+PHD,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Bangalore,3,34,Male,No,1,0
+Bachelors,2012,Bangalore,3,39,Male,No,3,0
+Bachelors,2018,Bangalore,3,24,Male,Yes,2,1
+Bachelors,2015,Pune,3,37,Female,No,1,1
+PHD,2013,New Delhi,3,23,Male,No,1,0
+Bachelors,2018,Bangalore,3,36,Male,No,3,1
+Bachelors,2014,New Delhi,3,23,Male,No,1,0
+Bachelors,2012,Pune,3,31,Male,No,3,0
+Bachelors,2015,Bangalore,3,22,Male,No,0,0
+Bachelors,2015,Pune,2,24,Female,No,2,1
+Bachelors,2018,Pune,2,28,Female,No,4,1
+Bachelors,2014,Pune,3,33,Male,No,3,0
+Bachelors,2018,Bangalore,3,35,Female,No,2,1
+Bachelors,2012,New Delhi,3,30,Female,Yes,1,0
+Bachelors,2014,Bangalore,3,28,Female,No,3,0
+Bachelors,2015,Bangalore,3,22,Male,Yes,0,0
+Bachelors,2014,Bangalore,3,38,Male,No,3,0
+Bachelors,2014,Pune,3,39,Male,No,4,0
+PHD,2012,Bangalore,1,38,Male,No,5,0
+Bachelors,2014,Bangalore,3,22,Female,No,0,1
+Bachelors,2014,New Delhi,3,36,Female,No,5,0
+Bachelors,2015,Bangalore,3,27,Male,No,5,0
+Bachelors,2016,Pune,1,32,Male,No,2,0
+Bachelors,2017,New Delhi,2,39,Female,No,2,0
+Bachelors,2015,Pune,2,36,Male,No,5,0
+Bachelors,2018,Bangalore,3,34,Male,Yes,5,1
+Bachelors,2015,Bangalore,3,28,Male,No,1,0
+Bachelors,2018,Bangalore,3,36,Female,Yes,1,1
+PHD,2015,New Delhi,3,22,Female,No,0,0
+Bachelors,2014,New Delhi,1,28,Female,No,5,0
+Bachelors,2016,Pune,2,27,Female,No,5,1
+Bachelors,2014,Bangalore,1,39,Female,No,4,0
+Bachelors,2012,Bangalore,3,31,Male,No,0,0
+Bachelors,2013,Bangalore,3,26,Male,Yes,4,0
+Bachelors,2012,Bangalore,3,31,Male,No,3,0
+Bachelors,2015,Pune,2,33,Female,No,2,1
+Bachelors,2017,Pune,2,38,Female,No,1,1
+Bachelors,2014,Pune,3,38,Male,No,2,0
+Bachelors,2012,Pune,3,32,Male,No,3,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Masters,2017,Pune,2,33,Female,No,2,0
+Bachelors,2015,Bangalore,3,34,Female,No,2,0
+Bachelors,2018,Pune,3,36,Male,Yes,1,1
+Bachelors,2014,Bangalore,3,27,Male,No,5,0
+Masters,2017,Pune,2,27,Male,No,5,0
+Bachelors,2017,New Delhi,2,40,Female,No,5,0
+Masters,2012,Bangalore,3,31,Female,No,4,0
+Bachelors,2014,Bangalore,3,22,Male,No,0,0
+Masters,2017,New Delhi,2,22,Male,No,0,1
+Bachelors,2016,New Delhi,3,26,Female,No,4,0
+Bachelors,2017,New Delhi,3,28,Female,No,1,1
+Bachelors,2014,Bangalore,3,38,Male,Yes,5,0
+Masters,2015,Pune,3,31,Male,No,0,0
+Bachelors,2016,Bangalore,3,24,Male,No,2,0
+Bachelors,2015,Pune,2,25,Male,No,3,1
+PHD,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,40,Male,No,1,0
+Bachelors,2018,Pune,2,34,Female,No,4,1
+Bachelors,2016,Bangalore,3,32,Male,No,0,0
+Bachelors,2014,Pune,3,37,Male,No,1,0
+Bachelors,2015,Bangalore,3,33,Male,No,3,1
+Bachelors,2016,Pune,3,27,Male,No,5,0
+Bachelors,2012,New Delhi,3,36,Male,No,3,0
+Bachelors,2013,Bangalore,3,30,Female,No,4,0
+Masters,2017,Pune,2,26,Female,No,4,0
+Bachelors,2012,Bangalore,3,23,Male,Yes,1,0
+Masters,2015,Pune,2,31,Female,No,2,0
+Bachelors,2013,Bangalore,3,22,Male,Yes,0,0
+Masters,2017,New Delhi,2,24,Female,No,2,1
+Bachelors,2016,Bangalore,3,37,Female,Yes,4,0
+Masters,2018,New Delhi,3,35,Male,No,2,1
+Bachelors,2013,Bangalore,3,22,Male,No,0,1
+Bachelors,2012,Pune,3,35,Male,No,5,0
+Bachelors,2014,New Delhi,3,30,Female,No,3,0
+Bachelors,2014,Bangalore,3,30,Male,No,0,0
+Bachelors,2014,Pune,3,29,Male,No,3,0
+Masters,2017,Bangalore,3,36,Male,No,4,1
+Bachelors,2014,Bangalore,3,37,Male,No,4,0
+Bachelors,2016,Pune,3,40,Male,No,2,0
+Bachelors,2015,Pune,2,26,Female,No,4,1
+Masters,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2017,Bangalore,3,38,Male,No,3,0
+Bachelors,2014,Bangalore,3,31,Male,No,3,1
+Bachelors,2014,Bangalore,3,22,Female,No,0,0
+Bachelors,2012,Pune,3,34,Male,No,0,0
+Bachelors,2015,New Delhi,3,31,Female,No,0,0
+Bachelors,2012,Bangalore,3,39,Female,No,3,0
+Masters,2018,New Delhi,3,33,Female,No,2,1
+Bachelors,2015,Bangalore,3,33,Male,No,4,0
+Bachelors,2012,Bangalore,3,38,Male,No,4,0
+Bachelors,2017,Pune,2,22,Female,No,0,1
+Bachelors,2014,Pune,2,32,Female,No,0,1
+Bachelors,2014,Pune,3,34,Male,No,5,0
+Bachelors,2014,Bangalore,1,31,Female,No,5,0
+Bachelors,2016,Bangalore,3,23,Male,No,1,0
+Bachelors,2013,Pune,2,39,Female,No,1,1
+Bachelors,2017,New Delhi,3,26,Male,No,4,0
+Bachelors,2013,Pune,2,33,Female,Yes,4,1
+Bachelors,2013,Bangalore,3,27,Female,No,5,0
+PHD,2018,New Delhi,3,24,Male,No,2,1
+Bachelors,2017,Bangalore,3,38,Male,No,1,0
+Bachelors,2017,Bangalore,3,27,Male,No,5,0
+Bachelors,2014,Bangalore,3,27,Female,No,5,0
+Bachelors,2015,Bangalore,3,23,Male,No,1,0
+Bachelors,2014,New Delhi,3,26,Female,No,4,0
+Bachelors,2016,Bangalore,3,31,Male,No,5,0
+Bachelors,2017,Bangalore,3,32,Female,No,3,0
+Bachelors,2015,Pune,2,36,Female,No,3,1
+Bachelors,2017,Bangalore,3,28,Male,No,0,0
+Bachelors,2017,New Delhi,2,31,Male,No,3,0
+Masters,2017,New Delhi,2,36,Female,No,3,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,1
+Bachelors,2017,Bangalore,3,28,Male,No,3,1
+Bachelors,2015,Pune,3,39,Female,No,2,1
+Bachelors,2013,Bangalore,3,23,Female,No,1,0
+Bachelors,2014,Bangalore,3,32,Male,No,1,0
+Masters,2013,New Delhi,3,33,Female,No,2,0
+Bachelors,2017,New Delhi,3,39,Female,No,4,0
+Masters,2017,Bangalore,2,24,Female,No,2,0
+Bachelors,2016,Pune,3,33,Male,No,2,0
+Bachelors,2016,Pune,2,29,Female,No,4,1
+Masters,2017,Pune,3,24,Female,No,2,1
+Masters,2015,Pune,3,27,Female,No,5,1
+Masters,2013,New Delhi,2,35,Female,No,2,1
+Bachelors,2015,Pune,2,28,Female,No,2,1
+Bachelors,2016,Bangalore,3,22,Male,No,0,0
+Bachelors,2013,Bangalore,3,39,Male,No,5,1
+Bachelors,2014,Bangalore,3,36,Female,No,3,1
+Bachelors,2017,New Delhi,2,40,Female,No,3,0
+Bachelors,2012,New Delhi,3,35,Female,No,5,0
+Bachelors,2016,Bangalore,3,33,Male,No,4,0
+PHD,2018,Bangalore,3,33,Male,No,2,1
+Bachelors,2012,Bangalore,3,23,Male,No,1,0
+Bachelors,2014,Bangalore,3,28,Male,No,2,1
+Bachelors,2016,Bangalore,3,27,Male,No,5,0
+Bachelors,2017,Bangalore,3,26,Female,No,4,0
+Bachelors,2014,Bangalore,3,33,Male,No,3,0
+Bachelors,2016,Bangalore,3,35,Male,No,3,0
+Bachelors,2013,Bangalore,3,33,Male,No,3,1
+Bachelors,2013,Pune,3,36,Female,No,0,1
+Bachelors,2015,New Delhi,3,26,Male,No,4,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Bachelors,2014,Bangalore,3,39,Female,No,5,0
+Bachelors,2013,Bangalore,3,28,Male,No,5,0
+Bachelors,2018,Bangalore,3,24,Male,No,2,1
+Bachelors,2012,Bangalore,3,36,Female,No,4,0
+Bachelors,2016,Bangalore,3,33,Male,No,0,0
+Bachelors,2013,Pune,1,33,Female,No,0,1
+Masters,2017,Pune,2,30,Male,Yes,2,1
+Masters,2012,New Delhi,3,27,Male,No,5,1
+Bachelors,2015,Bangalore,3,33,Male,Yes,4,0
+Bachelors,2016,Pune,2,35,Female,No,4,1
+Bachelors,2014,Pune,2,40,Female,No,0,1
+Bachelors,2017,Pune,2,25,Male,No,3,0
+Bachelors,2014,Bangalore,3,38,Male,No,2,0
+Bachelors,2017,New Delhi,2,40,Male,No,5,0
+Bachelors,2014,Bangalore,3,29,Male,Yes,0,0
+Bachelors,2012,Bangalore,3,27,Male,No,5,0
+Bachelors,2015,Bangalore,3,40,Male,No,4,0
+Masters,2017,New Delhi,2,25,Female,No,3,1
+Bachelors,2016,Pune,2,39,Female,No,3,1
+Bachelors,2017,New Delhi,2,22,Male,No,0,1
+PHD,2015,Pune,2,35,Female,No,0,0
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2014,New Delhi,2,25,Female,No,3,1
+Bachelors,2015,Bangalore,3,29,Female,No,1,0
+Masters,2017,New Delhi,1,37,Male,No,0,0
+Bachelors,2014,Bangalore,3,35,Male,No,1,0
+Bachelors,2012,Bangalore,3,26,Male,No,4,0
+Masters,2018,New Delhi,3,26,Male,No,4,1
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2014,Bangalore,3,31,Male,No,0,0
+Bachelors,2014,Bangalore,3,34,Male,No,5,0
+Masters,2018,New Delhi,3,27,Female,Yes,5,1
+Bachelors,2016,Pune,3,35,Male,No,1,0
+Bachelors,2017,Pune,3,27,Male,No,5,0
+Masters,2017,New Delhi,3,34,Male,No,1,1
+Bachelors,2018,Bangalore,3,40,Female,No,4,1
+Bachelors,2012,Pune,3,39,Male,No,4,0
+Bachelors,2013,Pune,1,39,Female,Yes,0,1
+Bachelors,2015,Bangalore,3,22,Male,No,0,1
+Masters,2017,Pune,2,33,Male,Yes,2,0
+Bachelors,2014,Bangalore,3,39,Male,No,0,0
+Bachelors,2017,Bangalore,3,39,Male,No,3,0
+Bachelors,2017,Bangalore,3,40,Female,No,3,0
+Bachelors,2014,Bangalore,3,38,Female,No,1,0
+Bachelors,2018,New Delhi,3,36,Female,Yes,2,1
+Bachelors,2013,Pune,2,37,Male,Yes,5,0
+Bachelors,2017,Pune,2,33,Female,No,2,1
+Bachelors,2013,Bangalore,3,37,Female,No,2,1
+Bachelors,2013,Pune,3,34,Male,No,5,0
+Bachelors,2015,Bangalore,3,28,Male,No,2,0
+Bachelors,2018,Bangalore,3,31,Male,Yes,0,1
+Masters,2012,New Delhi,3,37,Male,No,4,0
+Bachelors,2018,Pune,3,26,Male,No,4,1
+Masters,2014,New Delhi,3,34,Female,No,1,1
+Bachelors,2015,Pune,3,39,Male,No,1,0
+Bachelors,2017,Pune,2,23,Female,No,1,1
+Bachelors,2013,Bangalore,3,35,Female,No,4,0
+Bachelors,2015,Pune,3,25,Male,No,3,0
+Bachelors,2013,Pune,2,38,Male,No,0,1
+Masters,2017,New Delhi,1,23,Male,No,1,0
+Masters,2017,New Delhi,3,26,Male,No,4,1
+Masters,2018,New Delhi,3,33,Female,No,2,1
+Bachelors,2015,Pune,2,37,Female,No,4,1
+Bachelors,2013,Bangalore,3,35,Male,No,5,0
+Bachelors,2013,Bangalore,3,23,Female,Yes,1,0
+Bachelors,2013,Pune,3,31,Male,No,2,0
+Bachelors,2017,Bangalore,3,24,Male,Yes,2,0
+Bachelors,2015,Bangalore,3,28,Male,No,3,0
+Bachelors,2013,Pune,2,37,Female,No,0,1
+Bachelors,2012,Bangalore,3,36,Female,No,1,0
+Bachelors,2015,Bangalore,3,28,Male,No,1,1
+Bachelors,2017,New Delhi,2,30,Male,No,5,0
+Bachelors,2014,Bangalore,3,26,Male,No,4,0
+Masters,2015,Pune,2,29,Female,No,1,0
+Masters,2018,New Delhi,3,39,Female,No,2,1
+Bachelors,2013,Pune,2,36,Male,No,4,0
+Bachelors,2015,Pune,3,36,Male,No,3,0
+Bachelors,2012,Bangalore,3,22,Male,No,0,1
+Masters,2017,New Delhi,3,31,Male,No,2,0
+PHD,2017,New Delhi,3,29,Male,No,3,0
+Bachelors,2014,Pune,3,37,Female,No,4,1
+Bachelors,2012,Bangalore,3,24,Male,No,2,0
+Bachelors,2015,Pune,2,28,Female,Yes,2,1
+PHD,2016,New Delhi,3,22,Male,No,0,0
+Bachelors,2015,Bangalore,3,31,Male,No,2,1
+Bachelors,2013,Pune,2,28,Female,No,3,1
+Bachelors,2014,Bangalore,3,22,Female,No,0,0
+Bachelors,2016,Bangalore,3,23,Male,No,1,0
+Bachelors,2016,New Delhi,1,25,Female,Yes,3,0
+Bachelors,2013,Pune,1,23,Female,No,1,1
+Bachelors,2017,New Delhi,2,26,Female,No,4,0
+Bachelors,2015,Pune,2,22,Female,No,0,1
+Bachelors,2015,Bangalore,3,38,Female,No,2,0
+Bachelors,2017,Bangalore,3,25,Female,No,3,0
+Bachelors,2017,New Delhi,3,37,Female,No,1,1
+PHD,2012,New Delhi,3,30,Male,No,4,0
+Bachelors,2012,Bangalore,3,35,Female,No,2,0
+PHD,2014,Bangalore,3,23,Male,No,1,0
+Masters,2017,New Delhi,2,25,Female,No,3,0
+Bachelors,2015,Bangalore,3,39,Female,No,0,0
+PHD,2013,Pune,1,32,Female,No,0,1
+Bachelors,2015,Pune,3,28,Female,No,1,1
+Bachelors,2015,New Delhi,3,23,Female,No,1,0
+PHD,2014,Bangalore,1,34,Female,No,3,0
+Bachelors,2014,Bangalore,1,36,Female,No,1,0
+Bachelors,2017,Bangalore,3,40,Male,No,5,0
+Bachelors,2016,Bangalore,3,40,Male,No,3,0
+Bachelors,2015,Bangalore,3,25,Female,No,3,1
+Bachelors,2013,Bangalore,3,22,Male,No,0,1
+Bachelors,2015,Bangalore,3,34,Male,No,4,0
+Bachelors,2017,Bangalore,3,23,Male,No,1,0
+Bachelors,2017,Bangalore,3,24,Female,No,2,0
+Bachelors,2015,Bangalore,1,35,Male,No,3,0
+Bachelors,2014,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,Pune,3,28,Male,No,3,0
+Masters,2017,New Delhi,2,39,Female,No,4,0
+PHD,2017,New Delhi,3,31,Female,No,5,0
+Bachelors,2014,Bangalore,3,32,Male,No,2,0
+Bachelors,2017,New Delhi,2,37,Female,No,3,0
+Bachelors,2014,Pune,1,22,Female,No,0,1
+Bachelors,2015,Bangalore,3,32,Female,No,4,0
+Bachelors,2016,Bangalore,3,37,Male,No,2,0
+Bachelors,2014,Bangalore,3,36,Male,No,3,0
+Bachelors,2013,Pune,3,24,Male,Yes,2,0
+Masters,2017,New Delhi,3,40,Male,No,2,0
+Bachelors,2014,Bangalore,3,39,Male,No,3,0
+Bachelors,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2016,Bangalore,3,25,Male,No,3,0
+Bachelors,2018,Bangalore,3,26,Male,No,4,1
+Bachelors,2017,New Delhi,2,33,Male,No,3,0
+Bachelors,2016,Pune,3,36,Male,Yes,3,0
+Bachelors,2015,Pune,1,39,Male,No,1,1
+Bachelors,2014,Bangalore,3,34,Male,No,4,0
+Bachelors,2014,New Delhi,2,23,Female,No,1,1
+Bachelors,2014,Pune,1,33,Female,No,2,1
+Bachelors,2013,Bangalore,3,31,Male,No,3,0
+Bachelors,2015,Bangalore,3,39,Female,No,0,0
+Bachelors,2017,Bangalore,3,36,Male,No,4,1
+Bachelors,2015,Bangalore,3,28,Male,No,1,0
+Bachelors,2013,New Delhi,3,28,Female,No,0,1
+Masters,2017,New Delhi,2,24,Male,No,2,1
+Bachelors,2013,Bangalore,3,36,Female,No,0,1
+Bachelors,2014,Bangalore,3,30,Male,No,1,1
+Bachelors,2018,New Delhi,3,27,Female,No,5,1
+Bachelors,2012,Bangalore,3,25,Male,No,3,0
+Bachelors,2018,Bangalore,3,31,Male,No,0,1
+Bachelors,2013,Bangalore,3,36,Male,No,0,0
+Bachelors,2017,New Delhi,2,31,Male,No,1,0
+Bachelors,2016,Bangalore,3,37,Male,No,2,0
+Bachelors,2015,Bangalore,3,39,Male,No,2,0
+Bachelors,2014,Bangalore,3,28,Male,No,4,0
+Bachelors,2015,Pune,2,38,Male,No,2,1
+Masters,2017,New Delhi,3,40,Female,No,1,0
+Masters,2015,Bangalore,3,38,Female,No,1,0
+PHD,2014,New Delhi,3,23,Male,No,1,0
+Bachelors,2015,Bangalore,3,39,Male,No,2,0
+Bachelors,2014,Pune,1,22,Female,No,0,1
+Bachelors,2015,Pune,3,24,Female,No,2,1
+Masters,2014,New Delhi,3,24,Male,No,2,0
+Bachelors,2012,Bangalore,3,23,Female,No,1,1
+Bachelors,2014,Bangalore,3,30,Male,No,4,0
+Bachelors,2016,New Delhi,3,25,Female,No,3,0
+Bachelors,2013,Bangalore,3,34,Male,No,4,0
+Masters,2015,New Delhi,3,40,Female,No,5,0
+Bachelors,2012,Bangalore,3,39,Female,No,1,0
+Masters,2017,New Delhi,3,38,Female,No,2,1
+Bachelors,2016,Pune,3,38,Male,No,2,0
+Bachelors,2015,Pune,2,38,Female,No,4,1
+Bachelors,2015,Bangalore,3,31,Male,No,5,0
+Bachelors,2017,Pune,1,30,Male,No,4,0
+PHD,2013,Bangalore,3,24,Male,No,2,0
+Bachelors,2017,Bangalore,3,38,Male,No,3,0
+Bachelors,2013,Pune,3,37,Male,No,3,0
+Bachelors,2016,Bangalore,3,22,Male,No,0,0
+PHD,2012,Bangalore,3,30,Female,No,4,0
+Bachelors,2013,Bangalore,3,39,Female,No,5,0
+Bachelors,2017,Bangalore,2,35,Male,No,0,0
+Bachelors,2012,Pune,3,25,Female,No,3,1
+Bachelors,2018,Bangalore,3,32,Male,Yes,1,1
+Bachelors,2018,Bangalore,3,31,Female,No,2,1
+Bachelors,2016,Bangalore,3,37,Male,No,2,0
+Bachelors,2016,New Delhi,1,38,Female,No,2,1
+Bachelors,2014,Bangalore,3,22,Female,No,0,0
+Masters,2014,New Delhi,3,37,Female,No,0,1
+Bachelors,2018,Bangalore,3,32,Male,Yes,2,1
+Bachelors,2013,Bangalore,3,26,Male,No,4,0
+Bachelors,2017,Bangalore,3,28,Male,No,0,1
+Bachelors,2015,Bangalore,3,35,Male,No,0,0
+Bachelors,2016,Bangalore,1,33,Female,No,0,1
+Bachelors,2012,Bangalore,3,36,Female,No,4,0
+Bachelors,2013,Bangalore,3,31,Female,No,5,0
+Bachelors,2015,Pune,3,32,Female,Yes,1,1
+Masters,2017,Pune,2,31,Female,No,2,0
+Bachelors,2013,Bangalore,3,25,Female,No,3,0
+Bachelors,2016,Pune,3,30,Male,No,2,0
+Bachelors,2013,Bangalore,3,26,Female,No,4,0
+Masters,2013,Pune,2,37,Male,No,2,1
+Masters,2018,New Delhi,3,27,Male,No,5,1
+Bachelors,2012,Bangalore,3,30,Male,Yes,2,0
+Bachelors,2015,Bangalore,3,33,Male,Yes,4,0
diff --git a/docs/source/reference/ai/model-train-xgboost.rst b/docs/source/reference/ai/model-train-xgboost.rst
index b53c87d489..4f2c18ddde 100644
--- a/docs/source/reference/ai/model-train-xgboost.rst
+++ b/docs/source/reference/ai/model-train-xgboost.rst
@@ -23,4 +23,42 @@ To use the `Flaml XGBoost AutoML framework
Date: Wed, 25 Oct 2023 03:19:06 -0400
Subject: [PATCH 18/50] Add roadmap page to toc
---
docs/_toc.yml | 1 +
docs/source/overview/roadmap.rst | 43 ++++++++++++++++++++++++++++++++
2 files changed, 44 insertions(+)
create mode 100644 docs/source/overview/roadmap.rst
diff --git a/docs/_toc.yml b/docs/_toc.yml
index 6739643319..6d8799c655 100644
--- a/docs/_toc.yml
+++ b/docs/_toc.yml
@@ -14,6 +14,7 @@ parts:
- file: source/overview/connect-to-data-sources
title: Connect to Data Sources
- file: source/overview/faq
+ - file: source/overview/roadmap
- caption: Use Cases
chapters:
diff --git a/docs/source/overview/roadmap.rst b/docs/source/overview/roadmap.rst
new file mode 100644
index 0000000000..e06e2e9819
--- /dev/null
+++ b/docs/source/overview/roadmap.rst
@@ -0,0 +1,43 @@
+Roadmap
+=======
+
+The goal of this doc is to align core and community efforts for the project and to share what's the focus for the next 6 months.
+
+What is the core Chroma team working on right now?
+--------------------------------------------------
+aaa
+
+What areas are great for community contributions?
+--------------------------------------------------
+
+.. note::
+ If you are unsure about your idea, feel free to chat with us in the **#community** channel in our `Slack `_.
+
+We are looking forward to expand our integrations including data sources and AI functions, where we can use them with the rest of the ecosystem of EvaDB.
+
+Example Data Sources
+~~~~~~~~~~~~~~~~~~~~
+
+`GitHub `_ is one application data sources we have added in EvaDB. These application data sources help the user to develop AI applications without the needs of extracting, loading, and transforming data. Example application data sources that are not in EvaDB yet, but we think can boost the AI applications, include (but not limited to) the following:
+
+* YouTube
+* Google Search
+* Reddit
+* arXiv
+
+When adding a data source to EvaDB, we do expect a documentation page to explain the usage. This is an `example documentation page `_ for the GitHub integration.
+
+Example AI functions
+~~~~~~~~~~~~~~~~~~~~
+
+Adding more AI functions in EvaDB can give users more choices and possibilities for developing AI applications.
+`Stable Diffusion `_ is an example AI function in EvaDB that generates an image given a prompt.
+Example AI functions that are not in EvaDB yet, but we think can boost the AI applications, include (but not limited to) the following:
+
+* Sklearn (besides the linear regression)
+* OCR (PyTesseract)
+* AWS Rekognition service
+
+When adding a AI function to EvaDB, we do expect a documentation page to explain the usage. This is an `example documetation page `_ for Stable Diffusion. Optionally, but highly recommended is also to have a notebook to showcase the use cases.
+Example `notebook `_ for Stable Diffusion.
+
From f420faa09f8350782011a744edd332de4c16a2d9 Mon Sep 17 00:00:00 2001
From: Chitti Ankith
Date: Wed, 25 Oct 2023 20:30:47 -0400
Subject: [PATCH 19/50] Convert nested join in Vector Queries to Pandas Merge.
(#1298)
Profiling on Vector Scan showed that we are spending a lot of time in
the post-processing logic doing a Nested Join. This is an initial commit
to change that into a Join using Pandas. Change showed ~50% improvement
in Similarity Queries.
---
evadb/executor/vector_index_scan_executor.py | 38 +++++++++++++-------
1 file changed, 26 insertions(+), 12 deletions(-)
diff --git a/evadb/executor/vector_index_scan_executor.py b/evadb/executor/vector_index_scan_executor.py
index b2e1bb219e..0d6ee58c4f 100644
--- a/evadb/executor/vector_index_scan_executor.py
+++ b/evadb/executor/vector_index_scan_executor.py
@@ -114,7 +114,6 @@ def _evadb_vector_index_scan(self, *args, **kwargs):
# todo support queries over distance as well
# distance_list = index_result.similarities
row_num_np = index_result.ids
-
# Load projected columns from disk and join with search results.
row_num_col_name = None
@@ -126,20 +125,35 @@ def _evadb_vector_index_scan(self, *args, **kwargs):
f"The index {self.index_name} returned only {num_required_results} results, which is fewer than the required {self.limit_count.value}."
)
- res_row_list = [None for _ in range(num_required_results)]
+ final_df = pd.DataFrame()
+ res_data_list = []
+ row_num_df = pd.DataFrame({"row_num_np": row_num_np})
for batch in self.children[0].exec(**kwargs):
- column_list = batch.columns
if not row_num_col_name:
+ column_list = batch.columns
row_num_alias = get_row_num_column_alias(column_list)
row_num_col_name = "{}.{}".format(row_num_alias, ROW_NUM_COLUMN)
- # Nested join.
- for _, row in batch.frames.iterrows():
- for idx, row_num in enumerate(row_num_np):
- if row_num == row[row_num_col_name]:
- res_row = dict()
- for col_name in column_list:
- res_row[col_name] = row[col_name]
- res_row_list[idx] = res_row
+ if not batch.frames[row_num_col_name].isin(row_num_df["row_num_np"]).any():
+ continue
+
+ for index, row in batch.frames.iterrows():
+ row_dict = row.to_dict()
+ res_data_list.append(row_dict)
+
+ result_df = pd.DataFrame(res_data_list)
+ result_df.set_index(row_num_col_name, inplace=True)
+ result_df = result_df.reindex(row_num_np)
+ row_num_df.set_index(pd.Index(row_num_np), inplace=True)
+
+ final_df = pd.merge(
+ row_num_df,
+ result_df,
+ left_index=True,
+ right_index=True,
+ how="left",
+ )
- yield Batch(pd.DataFrame(res_row_list))
+ if "row_num_np" in final_df:
+ del final_df["row_num_np"]
+ yield Batch(final_df)
From 58577401ef2273ef503c23351b2535a9cb470b09 Mon Sep 17 00:00:00 2001
From: Andy Xu
Date: Thu, 26 Oct 2023 10:54:19 -0400
Subject: [PATCH 20/50] checkpoint
---
docs/source/overview/roadmap.rst | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/docs/source/overview/roadmap.rst b/docs/source/overview/roadmap.rst
index e06e2e9819..6069dad3af 100644
--- a/docs/source/overview/roadmap.rst
+++ b/docs/source/overview/roadmap.rst
@@ -3,9 +3,26 @@ Roadmap
The goal of this doc is to align core and community efforts for the project and to share what's the focus for the next 6 months.
-What is the core Chroma team working on right now?
+What is the core EvaDB team working on right now?
--------------------------------------------------
-aaa
+
+Our biggest priorities right now are improving the user experience of LLM data wrangling and classical AI tasks (e.g., regression, classification, and forecasting).
+
+LLM data wrangling
+~~~~~~~~~~~~~~~~~~
+
+* Prompt Engineering: more flexibility of constructing prompt and better experience/feedback to tune the prompt.
+* LLM Cache: reuse the LLM calls based on the model, prompt, and input columns.
+* LLM Batch: intelligently group multiple LLM calls into one to reduce the cost and latency.
+* Cost Calculation and Estimation: show the cost (i.e., time, token usage, and dollars) of the query at the plan time and after execution.
+
+Classical AI tasks
+~~~~~~~~~~~~~~~~~~
+
+* Accuracy: show the accuracy of the training.
+* Configuration guidance: provide guidance and suggestion on how to configure the AutoML framework (e.g., which frequency to use for forcasting).
+* Cost calculation and estimation: show the cost (i.e., time) of the query the plan time and after exectuion.
+* Path to Scale: improve the processing pipeline for large datasets.
What areas are great for community contributions?
--------------------------------------------------
From 30615528df0f0628f08b95fb129d9059bedbabdc Mon Sep 17 00:00:00 2001
From: Joy Arulraj
Date: Thu, 26 Oct 2023 11:37:03 -0400
Subject: [PATCH 21/50] docs: added survey link
---
README.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/README.md b/README.md
index 92b3a5e681..b5642fc57e 100644
--- a/README.md
+++ b/README.md
@@ -85,6 +85,8 @@ EvaDB enables software developers to build AI apps in a few lines of code. Its p
📝 following us on Medium
+We would love to learn about your AI app. Please complete this 1-minute form: https://v0fbgcue0cm.typeform.com/to/BZHZWeZm
+
## Quick Links
- [Quick Links](#quick-links)
@@ -210,6 +212,8 @@ EvaDB's AI-centric query optimizer takes a query as input and generates a query
## Community and Support
+We would love to learn about your AI app. Please complete this 1-minute form: https://v0fbgcue0cm.typeform.com/to/BZHZWeZm
+
175\u001b[0;31m \u001b[0;32myield\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0moutput\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 176\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/evadb/executor/create_database_executor.py\u001b[0m in \u001b[0;36mexec\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 42\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mExecutorError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"{self.node.database_name} already exists.\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 43\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;31mExecutorError\u001b[0m: postgres_data already exists.",
+ "\nDuring handling of the above exception, another exception occurred:\n",
+ "\u001b[0;31mExecutorError\u001b[0m Traceback (most recent call last)",
+ "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 7\u001b[0m }\n\u001b[1;32m 8\u001b[0m \u001b[0mquery\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34mf\"CREATE DATABASE postgres_data WITH ENGINE = 'postgres', PARAMETERS = {params};\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 9\u001b[0;31m \u001b[0mcursor\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mquery\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mquery\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
+ "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/evadb/interfaces/relational/relation.py\u001b[0m in \u001b[0;36mdf\u001b[0;34m(self, drop_alias)\u001b[0m\n\u001b[1;32m 121\u001b[0m \u001b[0;36m2\u001b[0m \u001b[0;36m5\u001b[0m \u001b[0;36m6\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 122\u001b[0m \"\"\"\n\u001b[0;32m--> 123\u001b[0;31m \u001b[0mbatch\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdrop_alias\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdrop_alias\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 124\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0mbatch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mframes\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"relation execute failed\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 125\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mbatch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mframes\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/evadb/interfaces/relational/relation.py\u001b[0m in \u001b[0;36mexecute\u001b[0;34m(self, drop_alias)\u001b[0m\n\u001b[1;32m 139\u001b[0m \u001b[0;34m>>\u001b[0m\u001b[0;34m>\u001b[0m \u001b[0mbatch\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcursor\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mquery\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"SELECT * FROM MyTable;\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 140\u001b[0m \"\"\"\n\u001b[0;32m--> 141\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mexecute_statement\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_evadb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_query_node\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 142\u001b[0m \u001b[0;31m# TODO: this is a dirty implementation. Ideally this should be done in the final projection.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 143\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdrop_alias\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/evadb/server/command_handler.py\u001b[0m in \u001b[0;36mexecute_statement\u001b[0;34m(evadb, stmt, do_not_raise_exceptions, do_not_print_exceptions, **kwargs)\u001b[0m\n\u001b[1;32m 51\u001b[0m )\n\u001b[1;32m 52\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0moutput\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 53\u001b[0;31m \u001b[0mbatch_list\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moutput\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 54\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mBatch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbatch_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 55\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/evadb/executor/plan_executor.py\u001b[0m in \u001b[0;36mexecute_plan\u001b[0;34m(self, do_not_raise_exceptions, do_not_print_exceptions)\u001b[0m\n\u001b[1;32m 178\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdo_not_print_exceptions\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 179\u001b[0m \u001b[0mlogger\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexception\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 180\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mExecutorError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
+ "\u001b[0;31mExecutorError\u001b[0m: postgres_data already exists."
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## Training Classification Models using EVADB\n",
+ "\n",
+ "Next, we employ EvaDB to facilitate the training of Classification ML models, which will enable us to predict `leave_or_not` i.e. a variable depicting whether an employee will leave the current company or not based on several parameters."
+ ],
+ "metadata": {
+ "id": "ZDVPDGqjfrch"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Loading Employee Data from CSV into PostgreSQL\n",
+ "\n",
+ "In this step, we will import the [Employee Data](https://www.kaggle.com/datasets/tawfikelmetwally/employee-dataset) dataset into our PostgreSQL database. If you already have the data stored in PostgreSQL and are ready to proceed with the prediction model training, feel free to skip this section and head directly to the [model training process](#train-the-prediction-model)."
+ ],
+ "metadata": {
+ "id": "ODq5QPC3gp5U"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "!mkdir -p content\n",
+ "!wget -nc -O /content/Employee.csv https://drive.google.com/file/d/1R4ij5Ww6bOGwLJrbBStzcaPRhAJ-fn72/view?usp=share_link"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "MlJ4adTuiDUF",
+ "outputId": "e99e9500-dec6-4543-ca32-c113f488d941"
+ },
+ "execution_count": 6,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "--2023-10-27 04:16:45-- https://drive.google.com/file/d/1R4ij5Ww6bOGwLJrbBStzcaPRhAJ-fn72/view?usp=share_link\n",
+ "Resolving drive.google.com (drive.google.com)... 172.253.123.139, 172.253.123.101, 172.253.123.138, ...\n",
+ "Connecting to drive.google.com (drive.google.com)|172.253.123.139|:443... connected.\n",
+ "HTTP request sent, awaiting response... 200 OK\n",
+ "Length: unspecified [text/html]\n",
+ "Saving to: ‘/content/Employee.csv’\n",
+ "\n",
+ "/content/Employee.c [ <=> ] 81.89K --.-KB/s in 0.001s \n",
+ "\n",
+ "2023-10-27 04:16:45 (60.3 MB/s) - ‘/content/Employee.csv’ saved [83856]\n",
+ "\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "cursor.query(\"\"\"\n",
+ " USE postgres_data {\n",
+ " CREATE TABLE IF NOT EXISTS employee_data (\n",
+ " education VARCHAR(128),\n",
+ " joining_year INTEGER,\n",
+ " city VARCHAR(128),\n",
+ " payment_tier INTEGER,\n",
+ " age INTEGER,\n",
+ " gender VARCHAR(128),\n",
+ " ever_benched VARCHAR(128),\n",
+ " experience_in_current_domain INTEGER,\n",
+ " leave_or_not INTEGER\n",
+ " )\n",
+ " }\n",
+ "\"\"\").df()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 80
+ },
+ "id": "g_KW1uc2iNdv",
+ "outputId": "3de42b0f-ed74-4083-823f-2b4373e70e59"
+ },
+ "execution_count": 6,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " status\n",
+ "0 success"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " status \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " success \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 6
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "cursor.query(\"\"\"\n",
+ " USE postgres_data {\n",
+ " COPY employee_data(education, joining_year, city, payment_tier, age, gender, ever_benched, experience_in_current_domain, leave_or_not)\n",
+ " FROM '/content/Employee.csv'\n",
+ " DELIMITER ',' CSV HEADER\n",
+ " }\n",
+ "\"\"\").df()"
+ ],
+ "metadata": {
+ "id": "xcnQHGN31b7z",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 80
+ },
+ "outputId": "3a0aac1d-6484-40c7-d163-9611fa045ab6"
+ },
+ "execution_count": 7,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " status\n",
+ "0 success"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " status \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " success \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 7
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "cursor.query(\"SELECT * FROM postgres_data.employee_data LIMIT 3;\").df()"
+ ],
+ "metadata": {
+ "id": "Ugj7wEsa43-K",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 142
+ },
+ "outputId": "ed775c3b-456f-4e9e-e33b-8797aaafd2d6"
+ },
+ "execution_count": 8,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " leave_or_not joining_year payment_tier age \\\n",
+ "0 0 2017 3 34 \n",
+ "1 1 2013 1 28 \n",
+ "2 0 2014 3 38 \n",
+ "\n",
+ " experience_in_current_domain gender city ever_benched education \n",
+ "0 0 Male Bangalore No Bachelors \n",
+ "1 3 Female Pune No Bachelors \n",
+ "2 2 Female New Delhi No Bachelors "
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " leave_or_not \n",
+ " joining_year \n",
+ " payment_tier \n",
+ " age \n",
+ " experience_in_current_domain \n",
+ " gender \n",
+ " city \n",
+ " ever_benched \n",
+ " education \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 0 \n",
+ " 2017 \n",
+ " 3 \n",
+ " 34 \n",
+ " 0 \n",
+ " Male \n",
+ " Bangalore \n",
+ " No \n",
+ " Bachelors \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 1 \n",
+ " 2013 \n",
+ " 1 \n",
+ " 28 \n",
+ " 3 \n",
+ " Female \n",
+ " Pune \n",
+ " No \n",
+ " Bachelors \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0 \n",
+ " 2014 \n",
+ " 3 \n",
+ " 38 \n",
+ " 2 \n",
+ " Female \n",
+ " New Delhi \n",
+ " No \n",
+ " Bachelors \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 8
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Train the prediction Model\n",
+ "Train the XGBoost AutoML model for classification using the `accuracy` metric"
+ ],
+ "metadata": {
+ "id": "1AtF1AtT4OC0"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "cursor.query(\"\"\"\n",
+ " CREATE FUNCTION IF NOT EXISTS PredictEmployee FROM\n",
+ " ( SELECT payment_tier, age, gender, experience_in_current_domain, leave_or_not FROM postgres_data.employee_data )\n",
+ " TYPE XGBoost\n",
+ " PREDICT 'leave_or_not'\n",
+ " TIME_LIMIT 180\n",
+ " METRIC 'accuracy'\n",
+ " TASK 'classification';\n",
+ "\"\"\").df()"
+ ],
+ "metadata": {
+ "id": "NUbo47cG33cp",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1000
+ },
+ "outputId": "c8d957d3-7e48-47a1-f48a-ae8f285c3ada"
+ },
+ "execution_count": 9,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "[flaml.automl.logger: 10-27 05:17:19] {1679} INFO - task = classification\n",
+ "[flaml.automl.logger: 10-27 05:17:19] {1690} INFO - Evaluation method: cv\n",
+ "[flaml.automl.logger: 10-27 05:17:19] {1788} INFO - Minimizing error metric: 1-accuracy\n",
+ "[flaml.automl.logger: 10-27 05:17:19] {1900} INFO - List of ML learners in AutoML Run: ['xgboost']\n",
+ "[flaml.automl.logger: 10-27 05:17:19] {2218} INFO - iteration 0, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:19] {2344} INFO - Estimated sufficient time budget=1155s. Estimated necessary time budget=1s.\n",
+ "[flaml.automl.logger: 10-27 05:17:19] {2391} INFO - at 0.2s,\testimator xgboost's best error=0.3439,\tbest estimator xgboost's best error=0.3439\n",
+ "[flaml.automl.logger: 10-27 05:17:19] {2218} INFO - iteration 1, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:19] {2391} INFO - at 0.3s,\testimator xgboost's best error=0.3439,\tbest estimator xgboost's best error=0.3439\n",
+ "[flaml.automl.logger: 10-27 05:17:19] {2218} INFO - iteration 2, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:19] {2391} INFO - at 0.4s,\testimator xgboost's best error=0.2905,\tbest estimator xgboost's best error=0.2905\n",
+ "[flaml.automl.logger: 10-27 05:17:19] {2218} INFO - iteration 3, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:19] {2391} INFO - at 0.5s,\testimator xgboost's best error=0.2885,\tbest estimator xgboost's best error=0.2885\n",
+ "[flaml.automl.logger: 10-27 05:17:19] {2218} INFO - iteration 4, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:19] {2391} INFO - at 0.6s,\testimator xgboost's best error=0.2856,\tbest estimator xgboost's best error=0.2856\n",
+ "[flaml.automl.logger: 10-27 05:17:19] {2218} INFO - iteration 5, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:20] {2391} INFO - at 0.7s,\testimator xgboost's best error=0.2856,\tbest estimator xgboost's best error=0.2856\n",
+ "[flaml.automl.logger: 10-27 05:17:20] {2218} INFO - iteration 6, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:20] {2391} INFO - at 0.9s,\testimator xgboost's best error=0.2839,\tbest estimator xgboost's best error=0.2839\n",
+ "[flaml.automl.logger: 10-27 05:17:20] {2218} INFO - iteration 7, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:20] {2391} INFO - at 1.0s,\testimator xgboost's best error=0.2839,\tbest estimator xgboost's best error=0.2839\n",
+ "[flaml.automl.logger: 10-27 05:17:20] {2218} INFO - iteration 8, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:20] {2391} INFO - at 1.2s,\testimator xgboost's best error=0.2832,\tbest estimator xgboost's best error=0.2832\n",
+ "[flaml.automl.logger: 10-27 05:17:20] {2218} INFO - iteration 9, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:20] {2391} INFO - at 1.3s,\testimator xgboost's best error=0.2832,\tbest estimator xgboost's best error=0.2832\n",
+ "[flaml.automl.logger: 10-27 05:17:20] {2218} INFO - iteration 10, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:20] {2391} INFO - at 1.4s,\testimator xgboost's best error=0.2832,\tbest estimator xgboost's best error=0.2832\n",
+ "[flaml.automl.logger: 10-27 05:17:20] {2218} INFO - iteration 11, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:20] {2391} INFO - at 1.6s,\testimator xgboost's best error=0.2832,\tbest estimator xgboost's best error=0.2832\n",
+ "[flaml.automl.logger: 10-27 05:17:20] {2218} INFO - iteration 12, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:21] {2391} INFO - at 1.7s,\testimator xgboost's best error=0.2832,\tbest estimator xgboost's best error=0.2832\n",
+ "[flaml.automl.logger: 10-27 05:17:21] {2218} INFO - iteration 13, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:21] {2391} INFO - at 1.8s,\testimator xgboost's best error=0.2826,\tbest estimator xgboost's best error=0.2826\n",
+ "[flaml.automl.logger: 10-27 05:17:21] {2218} INFO - iteration 14, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:21] {2391} INFO - at 2.0s,\testimator xgboost's best error=0.2826,\tbest estimator xgboost's best error=0.2826\n",
+ "[flaml.automl.logger: 10-27 05:17:21] {2218} INFO - iteration 15, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:21] {2391} INFO - at 2.1s,\testimator xgboost's best error=0.2826,\tbest estimator xgboost's best error=0.2826\n",
+ "[flaml.automl.logger: 10-27 05:17:21] {2218} INFO - iteration 16, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:21] {2391} INFO - at 2.2s,\testimator xgboost's best error=0.2826,\tbest estimator xgboost's best error=0.2826\n",
+ "[flaml.automl.logger: 10-27 05:17:21] {2218} INFO - iteration 17, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:21] {2391} INFO - at 2.4s,\testimator xgboost's best error=0.2826,\tbest estimator xgboost's best error=0.2826\n",
+ "[flaml.automl.logger: 10-27 05:17:21] {2218} INFO - iteration 18, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:21] {2391} INFO - at 2.5s,\testimator xgboost's best error=0.2826,\tbest estimator xgboost's best error=0.2826\n",
+ "[flaml.automl.logger: 10-27 05:17:21] {2218} INFO - iteration 19, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:21] {2391} INFO - at 2.6s,\testimator xgboost's best error=0.2826,\tbest estimator xgboost's best error=0.2826\n",
+ "[flaml.automl.logger: 10-27 05:17:21] {2218} INFO - iteration 20, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:22] {2391} INFO - at 2.8s,\testimator xgboost's best error=0.2826,\tbest estimator xgboost's best error=0.2826\n",
+ "[flaml.automl.logger: 10-27 05:17:22] {2218} INFO - iteration 21, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:22] {2391} INFO - at 2.9s,\testimator xgboost's best error=0.2824,\tbest estimator xgboost's best error=0.2824\n",
+ "[flaml.automl.logger: 10-27 05:17:22] {2218} INFO - iteration 22, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:22] {2391} INFO - at 3.0s,\testimator xgboost's best error=0.2824,\tbest estimator xgboost's best error=0.2824\n",
+ "[flaml.automl.logger: 10-27 05:17:22] {2218} INFO - iteration 23, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:22] {2391} INFO - at 3.2s,\testimator xgboost's best error=0.2824,\tbest estimator xgboost's best error=0.2824\n",
+ "[flaml.automl.logger: 10-27 05:17:22] {2218} INFO - iteration 24, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:22] {2391} INFO - at 3.3s,\testimator xgboost's best error=0.2824,\tbest estimator xgboost's best error=0.2824\n",
+ "[flaml.automl.logger: 10-27 05:17:22] {2218} INFO - iteration 25, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:22] {2391} INFO - at 3.4s,\testimator xgboost's best error=0.2824,\tbest estimator xgboost's best error=0.2824\n",
+ "[flaml.automl.logger: 10-27 05:17:22] {2218} INFO - iteration 26, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:22] {2391} INFO - at 3.6s,\testimator xgboost's best error=0.2824,\tbest estimator xgboost's best error=0.2824\n",
+ "[flaml.automl.logger: 10-27 05:17:22] {2218} INFO - iteration 27, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:23] {2391} INFO - at 3.7s,\testimator xgboost's best error=0.2824,\tbest estimator xgboost's best error=0.2824\n",
+ "[flaml.automl.logger: 10-27 05:17:23] {2218} INFO - iteration 28, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:23] {2391} INFO - at 3.8s,\testimator xgboost's best error=0.2824,\tbest estimator xgboost's best error=0.2824\n",
+ "[flaml.automl.logger: 10-27 05:17:23] {2218} INFO - iteration 29, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:23] {2391} INFO - at 3.9s,\testimator xgboost's best error=0.2824,\tbest estimator xgboost's best error=0.2824\n",
+ "[flaml.automl.logger: 10-27 05:17:23] {2218} INFO - iteration 30, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:23] {2391} INFO - at 4.1s,\testimator xgboost's best error=0.2814,\tbest estimator xgboost's best error=0.2814\n",
+ "[flaml.automl.logger: 10-27 05:17:23] {2218} INFO - iteration 31, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:23] {2391} INFO - at 4.3s,\testimator xgboost's best error=0.2814,\tbest estimator xgboost's best error=0.2814\n",
+ "[flaml.automl.logger: 10-27 05:17:23] {2218} INFO - iteration 32, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:23] {2391} INFO - at 4.5s,\testimator xgboost's best error=0.2814,\tbest estimator xgboost's best error=0.2814\n",
+ "[flaml.automl.logger: 10-27 05:17:23] {2218} INFO - iteration 33, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:24] {2391} INFO - at 4.7s,\testimator xgboost's best error=0.2814,\tbest estimator xgboost's best error=0.2814\n",
+ "[flaml.automl.logger: 10-27 05:17:24] {2218} INFO - iteration 34, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:24] {2391} INFO - at 4.8s,\testimator xgboost's best error=0.2814,\tbest estimator xgboost's best error=0.2814\n",
+ "[flaml.automl.logger: 10-27 05:17:24] {2218} INFO - iteration 35, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:24] {2391} INFO - at 5.2s,\testimator xgboost's best error=0.2814,\tbest estimator xgboost's best error=0.2814\n",
+ "[flaml.automl.logger: 10-27 05:17:24] {2218} INFO - iteration 36, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:24] {2391} INFO - at 5.4s,\testimator xgboost's best error=0.2814,\tbest estimator xgboost's best error=0.2814\n",
+ "[flaml.automl.logger: 10-27 05:17:24] {2218} INFO - iteration 37, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:24] {2391} INFO - at 5.5s,\testimator xgboost's best error=0.2812,\tbest estimator xgboost's best error=0.2812\n",
+ "[flaml.automl.logger: 10-27 05:17:24] {2218} INFO - iteration 38, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:25] {2391} INFO - at 5.7s,\testimator xgboost's best error=0.2812,\tbest estimator xgboost's best error=0.2812\n",
+ "[flaml.automl.logger: 10-27 05:17:25] {2218} INFO - iteration 39, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:25] {2391} INFO - at 5.9s,\testimator xgboost's best error=0.2812,\tbest estimator xgboost's best error=0.2812\n",
+ "[flaml.automl.logger: 10-27 05:17:25] {2218} INFO - iteration 40, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:25] {2391} INFO - at 6.0s,\testimator xgboost's best error=0.2812,\tbest estimator xgboost's best error=0.2812\n",
+ "[flaml.automl.logger: 10-27 05:17:25] {2218} INFO - iteration 41, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:25] {2391} INFO - at 6.1s,\testimator xgboost's best error=0.2812,\tbest estimator xgboost's best error=0.2812\n",
+ "[flaml.automl.logger: 10-27 05:17:25] {2218} INFO - iteration 42, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:25] {2391} INFO - at 6.4s,\testimator xgboost's best error=0.2812,\tbest estimator xgboost's best error=0.2812\n",
+ "[flaml.automl.logger: 10-27 05:17:25] {2218} INFO - iteration 43, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:25] {2391} INFO - at 6.6s,\testimator xgboost's best error=0.2812,\tbest estimator xgboost's best error=0.2812\n",
+ "[flaml.automl.logger: 10-27 05:17:25] {2218} INFO - iteration 44, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:26] {2391} INFO - at 6.7s,\testimator xgboost's best error=0.2812,\tbest estimator xgboost's best error=0.2812\n",
+ "[flaml.automl.logger: 10-27 05:17:26] {2218} INFO - iteration 45, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:26] {2391} INFO - at 7.0s,\testimator xgboost's best error=0.2812,\tbest estimator xgboost's best error=0.2812\n",
+ "[flaml.automl.logger: 10-27 05:17:26] {2218} INFO - iteration 46, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:26] {2391} INFO - at 7.1s,\testimator xgboost's best error=0.2812,\tbest estimator xgboost's best error=0.2812\n",
+ "[flaml.automl.logger: 10-27 05:17:26] {2218} INFO - iteration 47, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:26] {2391} INFO - at 7.3s,\testimator xgboost's best error=0.2812,\tbest estimator xgboost's best error=0.2812\n",
+ "[flaml.automl.logger: 10-27 05:17:26] {2218} INFO - iteration 48, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:26] {2391} INFO - at 7.4s,\testimator xgboost's best error=0.2812,\tbest estimator xgboost's best error=0.2812\n",
+ "[flaml.automl.logger: 10-27 05:17:26] {2218} INFO - iteration 49, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:27] {2391} INFO - at 7.7s,\testimator xgboost's best error=0.2812,\tbest estimator xgboost's best error=0.2812\n",
+ "[flaml.automl.logger: 10-27 05:17:27] {2218} INFO - iteration 50, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:27] {2391} INFO - at 7.8s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:27] {2218} INFO - iteration 51, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:27] {2391} INFO - at 8.0s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:27] {2218} INFO - iteration 52, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:27] {2391} INFO - at 8.1s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:27] {2218} INFO - iteration 53, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:27] {2391} INFO - at 8.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:27] {2218} INFO - iteration 54, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:27] {2391} INFO - at 8.4s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:27] {2218} INFO - iteration 55, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:27] {2391} INFO - at 8.6s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:27] {2218} INFO - iteration 56, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:28] {2391} INFO - at 8.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:28] {2218} INFO - iteration 57, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:28] {2391} INFO - at 9.0s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:28] {2218} INFO - iteration 58, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:28] {2391} INFO - at 9.1s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:28] {2218} INFO - iteration 59, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:28] {2391} INFO - at 9.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:28] {2218} INFO - iteration 60, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:29] {2391} INFO - at 9.6s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:29] {2218} INFO - iteration 61, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:29] {2391} INFO - at 9.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:29] {2218} INFO - iteration 62, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:29] {2391} INFO - at 10.1s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:29] {2218} INFO - iteration 63, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:29] {2391} INFO - at 10.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:29] {2218} INFO - iteration 64, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:29] {2391} INFO - at 10.5s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:29] {2218} INFO - iteration 65, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:30] {2391} INFO - at 10.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:30] {2218} INFO - iteration 66, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:30] {2391} INFO - at 11.1s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:30] {2218} INFO - iteration 67, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:30] {2391} INFO - at 11.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:30] {2218} INFO - iteration 68, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:30] {2391} INFO - at 11.5s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:30] {2218} INFO - iteration 69, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:31] {2391} INFO - at 11.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:31] {2218} INFO - iteration 70, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:31] {2391} INFO - at 12.0s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:31] {2218} INFO - iteration 71, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:31] {2391} INFO - at 12.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:31] {2218} INFO - iteration 72, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:31] {2391} INFO - at 12.5s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:31] {2218} INFO - iteration 73, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:32] {2391} INFO - at 12.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:32] {2218} INFO - iteration 74, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:32] {2391} INFO - at 12.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:32] {2218} INFO - iteration 75, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:32] {2391} INFO - at 13.1s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:32] {2218} INFO - iteration 76, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:32] {2391} INFO - at 13.4s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:32] {2218} INFO - iteration 77, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:32] {2391} INFO - at 13.6s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:32] {2218} INFO - iteration 78, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:33] {2391} INFO - at 13.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:33] {2218} INFO - iteration 79, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:33] {2391} INFO - at 13.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:33] {2218} INFO - iteration 80, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:33] {2391} INFO - at 14.0s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:33] {2218} INFO - iteration 81, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:33] {2391} INFO - at 14.1s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:33] {2218} INFO - iteration 82, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:33] {2391} INFO - at 14.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:33] {2218} INFO - iteration 83, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:33] {2391} INFO - at 14.5s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:33] {2218} INFO - iteration 84, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:34] {2391} INFO - at 14.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:34] {2218} INFO - iteration 85, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:34] {2391} INFO - at 14.8s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:34] {2218} INFO - iteration 86, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:34] {2391} INFO - at 15.0s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:34] {2218} INFO - iteration 87, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:34] {2391} INFO - at 15.2s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:34] {2218} INFO - iteration 88, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:34] {2391} INFO - at 15.4s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:34] {2218} INFO - iteration 89, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:34] {2391} INFO - at 15.5s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:34] {2218} INFO - iteration 90, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:35] {2391} INFO - at 15.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:35] {2218} INFO - iteration 91, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:35] {2391} INFO - at 15.8s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:35] {2218} INFO - iteration 92, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:35] {2391} INFO - at 16.0s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:35] {2218} INFO - iteration 93, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:35] {2391} INFO - at 16.1s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:35] {2218} INFO - iteration 94, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:35] {2391} INFO - at 16.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:35] {2218} INFO - iteration 95, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:35] {2391} INFO - at 16.5s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:35] {2218} INFO - iteration 96, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:36] {2391} INFO - at 16.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:36] {2218} INFO - iteration 97, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:36] {2391} INFO - at 16.8s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:36] {2218} INFO - iteration 98, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:36] {2391} INFO - at 17.0s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:36] {2218} INFO - iteration 99, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:36] {2391} INFO - at 17.2s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:36] {2218} INFO - iteration 100, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:36] {2391} INFO - at 17.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:36] {2218} INFO - iteration 101, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:36] {2391} INFO - at 17.5s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:36] {2218} INFO - iteration 102, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:36] {2391} INFO - at 17.6s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:36] {2218} INFO - iteration 103, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:37] {2391} INFO - at 17.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:37] {2218} INFO - iteration 104, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:37] {2391} INFO - at 17.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:37] {2218} INFO - iteration 105, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:37] {2391} INFO - at 18.0s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:37] {2218} INFO - iteration 106, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:37] {2391} INFO - at 18.2s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:37] {2218} INFO - iteration 107, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:37] {2391} INFO - at 18.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:37] {2218} INFO - iteration 108, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:37] {2391} INFO - at 18.5s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:37] {2218} INFO - iteration 109, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:38] {2391} INFO - at 18.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:38] {2218} INFO - iteration 110, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:38] {2391} INFO - at 18.8s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:38] {2218} INFO - iteration 111, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:38] {2391} INFO - at 19.0s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:38] {2218} INFO - iteration 112, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:38] {2391} INFO - at 19.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:38] {2218} INFO - iteration 113, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:38] {2391} INFO - at 19.5s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:38] {2218} INFO - iteration 114, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:39] {2391} INFO - at 19.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:39] {2218} INFO - iteration 115, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:39] {2391} INFO - at 19.8s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:39] {2218} INFO - iteration 116, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:39] {2391} INFO - at 20.1s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:39] {2218} INFO - iteration 117, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:39] {2391} INFO - at 20.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:39] {2218} INFO - iteration 118, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:39] {2391} INFO - at 20.5s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:39] {2218} INFO - iteration 119, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:39] {2391} INFO - at 20.6s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:39] {2218} INFO - iteration 120, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:40] {2391} INFO - at 20.8s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:40] {2218} INFO - iteration 121, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:40] {2391} INFO - at 21.0s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:40] {2218} INFO - iteration 122, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:40] {2391} INFO - at 21.2s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:40] {2218} INFO - iteration 123, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:40] {2391} INFO - at 21.4s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:40] {2218} INFO - iteration 124, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:40] {2391} INFO - at 21.5s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:40] {2218} INFO - iteration 125, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:41] {2391} INFO - at 21.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:41] {2218} INFO - iteration 126, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:41] {2391} INFO - at 21.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:41] {2218} INFO - iteration 127, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:41] {2391} INFO - at 22.0s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:41] {2218} INFO - iteration 128, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:41] {2391} INFO - at 22.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:41] {2218} INFO - iteration 129, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:41] {2391} INFO - at 22.4s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:41] {2218} INFO - iteration 130, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:42] {2391} INFO - at 22.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:42] {2218} INFO - iteration 131, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:42] {2391} INFO - at 22.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:42] {2218} INFO - iteration 132, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:42] {2391} INFO - at 23.0s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:42] {2218} INFO - iteration 133, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:42] {2391} INFO - at 23.2s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:42] {2218} INFO - iteration 134, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:42] {2391} INFO - at 23.4s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:42] {2218} INFO - iteration 135, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:42] {2391} INFO - at 23.6s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:42] {2218} INFO - iteration 136, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:43] {2391} INFO - at 23.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:43] {2218} INFO - iteration 137, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:43] {2391} INFO - at 24.2s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:43] {2218} INFO - iteration 138, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:43] {2391} INFO - at 24.4s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:43] {2218} INFO - iteration 139, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:43] {2391} INFO - at 24.6s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:43] {2218} INFO - iteration 140, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:44] {2391} INFO - at 24.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:44] {2218} INFO - iteration 141, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:44] {2391} INFO - at 25.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:44] {2218} INFO - iteration 142, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:45] {2391} INFO - at 25.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:45] {2218} INFO - iteration 143, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:45] {2391} INFO - at 25.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:45] {2218} INFO - iteration 144, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:45] {2391} INFO - at 26.2s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:45] {2218} INFO - iteration 145, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:45] {2391} INFO - at 26.4s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:45] {2218} INFO - iteration 146, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:46] {2391} INFO - at 26.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:46] {2218} INFO - iteration 147, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:46] {2391} INFO - at 26.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:46] {2218} INFO - iteration 148, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:46] {2391} INFO - at 27.1s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:46] {2218} INFO - iteration 149, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:46] {2391} INFO - at 27.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:46] {2218} INFO - iteration 150, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:46] {2391} INFO - at 27.5s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:46] {2218} INFO - iteration 151, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:47] {2391} INFO - at 27.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:47] {2218} INFO - iteration 152, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:47] {2391} INFO - at 28.0s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:47] {2218} INFO - iteration 153, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:47] {2391} INFO - at 28.2s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:47] {2218} INFO - iteration 154, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:47] {2391} INFO - at 28.4s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:47] {2218} INFO - iteration 155, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:47] {2391} INFO - at 28.5s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:47] {2218} INFO - iteration 156, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:48] {2391} INFO - at 28.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:48] {2218} INFO - iteration 157, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:48] {2391} INFO - at 28.8s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:48] {2218} INFO - iteration 158, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:48] {2391} INFO - at 29.0s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:48] {2218} INFO - iteration 159, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:48] {2391} INFO - at 29.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:48] {2218} INFO - iteration 160, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:48] {2391} INFO - at 29.4s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:48] {2218} INFO - iteration 161, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:48] {2391} INFO - at 29.6s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:48] {2218} INFO - iteration 162, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:49] {2391} INFO - at 29.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:49] {2218} INFO - iteration 163, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:49] {2391} INFO - at 29.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:49] {2218} INFO - iteration 164, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:49] {2391} INFO - at 30.1s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:49] {2218} INFO - iteration 165, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:49] {2391} INFO - at 30.2s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:49] {2218} INFO - iteration 166, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:49] {2391} INFO - at 30.4s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:49] {2218} INFO - iteration 167, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:49] {2391} INFO - at 30.5s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:49] {2218} INFO - iteration 168, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:50] {2391} INFO - at 30.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:50] {2218} INFO - iteration 169, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:50] {2391} INFO - at 30.8s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:50] {2218} INFO - iteration 170, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:50] {2391} INFO - at 30.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:50] {2218} INFO - iteration 171, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:50] {2391} INFO - at 31.1s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:50] {2218} INFO - iteration 172, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:50] {2391} INFO - at 31.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:50] {2218} INFO - iteration 173, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:50] {2391} INFO - at 31.4s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:50] {2218} INFO - iteration 174, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:50] {2391} INFO - at 31.5s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:50] {2218} INFO - iteration 175, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:51] {2391} INFO - at 31.8s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:51] {2218} INFO - iteration 176, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:51] {2391} INFO - at 31.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:51] {2218} INFO - iteration 177, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:51] {2391} INFO - at 32.0s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:51] {2218} INFO - iteration 178, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:51] {2391} INFO - at 32.2s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:51] {2218} INFO - iteration 179, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:51] {2391} INFO - at 32.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:51] {2218} INFO - iteration 180, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:51] {2391} INFO - at 32.5s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:51] {2218} INFO - iteration 181, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:52] {2391} INFO - at 32.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:52] {2218} INFO - iteration 182, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:52] {2391} INFO - at 32.8s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:52] {2218} INFO - iteration 183, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:52] {2391} INFO - at 33.0s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:52] {2218} INFO - iteration 184, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:52] {2391} INFO - at 33.2s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:52] {2218} INFO - iteration 185, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:52] {2391} INFO - at 33.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:52] {2218} INFO - iteration 186, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:52] {2391} INFO - at 33.6s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:52] {2218} INFO - iteration 187, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:53] {2391} INFO - at 33.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:53] {2218} INFO - iteration 188, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:53] {2391} INFO - at 33.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:53] {2218} INFO - iteration 189, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:53] {2391} INFO - at 34.1s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:53] {2218} INFO - iteration 190, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:53] {2391} INFO - at 34.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:53] {2218} INFO - iteration 191, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:53] {2391} INFO - at 34.4s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:53] {2218} INFO - iteration 192, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:53] {2391} INFO - at 34.6s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:53] {2218} INFO - iteration 193, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:54] {2391} INFO - at 34.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:54] {2218} INFO - iteration 194, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:54] {2391} INFO - at 34.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:54] {2218} INFO - iteration 195, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:54] {2391} INFO - at 35.1s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:54] {2218} INFO - iteration 196, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:54] {2391} INFO - at 35.2s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:54] {2218} INFO - iteration 197, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:54] {2391} INFO - at 35.4s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:54] {2218} INFO - iteration 198, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:54] {2391} INFO - at 35.5s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:54] {2218} INFO - iteration 199, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:55] {2391} INFO - at 35.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:55] {2218} INFO - iteration 200, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:55] {2391} INFO - at 35.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:55] {2218} INFO - iteration 201, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:55] {2391} INFO - at 36.1s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:55] {2218} INFO - iteration 202, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:55] {2391} INFO - at 36.2s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:55] {2218} INFO - iteration 203, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:55] {2391} INFO - at 36.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:55] {2218} INFO - iteration 204, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:55] {2391} INFO - at 36.5s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:55] {2218} INFO - iteration 205, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:56] {2391} INFO - at 36.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:56] {2218} INFO - iteration 206, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:56] {2391} INFO - at 36.8s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:56] {2218} INFO - iteration 207, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:56] {2391} INFO - at 37.0s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:56] {2218} INFO - iteration 208, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:56] {2391} INFO - at 37.1s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:56] {2218} INFO - iteration 209, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:56] {2391} INFO - at 37.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:56] {2218} INFO - iteration 210, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:56] {2391} INFO - at 37.4s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:56] {2218} INFO - iteration 211, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:56] {2391} INFO - at 37.6s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:56] {2218} INFO - iteration 212, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:57] {2391} INFO - at 37.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:57] {2218} INFO - iteration 213, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:57] {2391} INFO - at 37.8s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:57] {2218} INFO - iteration 214, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:57] {2391} INFO - at 38.1s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:57] {2218} INFO - iteration 215, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:57] {2391} INFO - at 38.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:57] {2218} INFO - iteration 216, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:57] {2391} INFO - at 38.5s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:57] {2218} INFO - iteration 217, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:58] {2391} INFO - at 38.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:58] {2218} INFO - iteration 218, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:58] {2391} INFO - at 38.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:58] {2218} INFO - iteration 219, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:58] {2391} INFO - at 39.2s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:58] {2218} INFO - iteration 220, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:58] {2391} INFO - at 39.4s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:58] {2218} INFO - iteration 221, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:58] {2391} INFO - at 39.6s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:58] {2218} INFO - iteration 222, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:59] {2391} INFO - at 39.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:59] {2218} INFO - iteration 223, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:59] {2391} INFO - at 40.1s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:59] {2218} INFO - iteration 224, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:17:59] {2391} INFO - at 40.3s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:17:59] {2218} INFO - iteration 225, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:00] {2391} INFO - at 40.9s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:18:00] {2218} INFO - iteration 226, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:00] {2391} INFO - at 41.1s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:18:00] {2218} INFO - iteration 227, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:00] {2391} INFO - at 41.4s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:18:00] {2218} INFO - iteration 228, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:01] {2391} INFO - at 41.7s,\testimator xgboost's best error=0.2776,\tbest estimator xgboost's best error=0.2776\n",
+ "[flaml.automl.logger: 10-27 05:18:01] {2218} INFO - iteration 229, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:01] {2391} INFO - at 42.0s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:01] {2218} INFO - iteration 230, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:01] {2391} INFO - at 42.2s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:01] {2218} INFO - iteration 231, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:01] {2391} INFO - at 42.5s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:01] {2218} INFO - iteration 232, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:02] {2391} INFO - at 42.7s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:02] {2218} INFO - iteration 233, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:02] {2391} INFO - at 42.8s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:02] {2218} INFO - iteration 234, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:02] {2391} INFO - at 43.0s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:02] {2218} INFO - iteration 235, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:02] {2391} INFO - at 43.2s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:02] {2218} INFO - iteration 236, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:02] {2391} INFO - at 43.3s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:02] {2218} INFO - iteration 237, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:02] {2391} INFO - at 43.5s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:02] {2218} INFO - iteration 238, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:03] {2391} INFO - at 43.7s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:03] {2218} INFO - iteration 239, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:03] {2391} INFO - at 43.8s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:03] {2218} INFO - iteration 240, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:03] {2391} INFO - at 44.1s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:03] {2218} INFO - iteration 241, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:03] {2391} INFO - at 44.2s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:03] {2218} INFO - iteration 242, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:03] {2391} INFO - at 44.5s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:03] {2218} INFO - iteration 243, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:04] {2391} INFO - at 44.7s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:04] {2218} INFO - iteration 244, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:04] {2391} INFO - at 44.8s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:04] {2218} INFO - iteration 245, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:04] {2391} INFO - at 45.1s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:04] {2218} INFO - iteration 246, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:04] {2391} INFO - at 45.2s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:04] {2218} INFO - iteration 247, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:04] {2391} INFO - at 45.5s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:04] {2218} INFO - iteration 248, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:05] {2391} INFO - at 45.6s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:05] {2218} INFO - iteration 249, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:05] {2391} INFO - at 45.8s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:05] {2218} INFO - iteration 250, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:05] {2391} INFO - at 46.0s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:05] {2218} INFO - iteration 251, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:05] {2391} INFO - at 46.2s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:05] {2218} INFO - iteration 252, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:05] {2391} INFO - at 46.4s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:05] {2218} INFO - iteration 253, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:05] {2391} INFO - at 46.5s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:05] {2218} INFO - iteration 254, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:06] {2391} INFO - at 46.7s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:06] {2218} INFO - iteration 255, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:06] {2391} INFO - at 46.9s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:06] {2218} INFO - iteration 256, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:06] {2391} INFO - at 47.1s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:06] {2218} INFO - iteration 257, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:06] {2391} INFO - at 47.2s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:06] {2218} INFO - iteration 258, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:06] {2391} INFO - at 47.6s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:06] {2218} INFO - iteration 259, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:07] {2391} INFO - at 47.7s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:07] {2218} INFO - iteration 260, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:07] {2391} INFO - at 47.9s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:07] {2218} INFO - iteration 261, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:07] {2391} INFO - at 48.1s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:07] {2218} INFO - iteration 262, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:07] {2391} INFO - at 48.3s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:07] {2218} INFO - iteration 263, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:07] {2391} INFO - at 48.5s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:07] {2218} INFO - iteration 264, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:07] {2391} INFO - at 48.6s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:07] {2218} INFO - iteration 265, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:08] {2391} INFO - at 48.7s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:08] {2218} INFO - iteration 266, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:08] {2391} INFO - at 49.2s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:08] {2218} INFO - iteration 267, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:08] {2391} INFO - at 49.3s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:08] {2218} INFO - iteration 268, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:09] {2391} INFO - at 49.7s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:09] {2218} INFO - iteration 269, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:09] {2391} INFO - at 49.8s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:09] {2218} INFO - iteration 270, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:09] {2391} INFO - at 50.0s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:09] {2218} INFO - iteration 271, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:09] {2391} INFO - at 50.1s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:09] {2218} INFO - iteration 272, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:09] {2391} INFO - at 50.3s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:09] {2218} INFO - iteration 273, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:09] {2391} INFO - at 50.5s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:09] {2218} INFO - iteration 274, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:10] {2391} INFO - at 50.7s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:10] {2218} INFO - iteration 275, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:10] {2391} INFO - at 50.8s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:10] {2218} INFO - iteration 276, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:10] {2391} INFO - at 51.0s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:10] {2218} INFO - iteration 277, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:10] {2391} INFO - at 51.2s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:10] {2218} INFO - iteration 278, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:10] {2391} INFO - at 51.4s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:10] {2218} INFO - iteration 279, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:10] {2391} INFO - at 51.6s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:10] {2218} INFO - iteration 280, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:11] {2391} INFO - at 51.7s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:11] {2218} INFO - iteration 281, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:11] {2391} INFO - at 51.9s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:11] {2218} INFO - iteration 282, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:11] {2391} INFO - at 52.1s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:11] {2218} INFO - iteration 283, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:11] {2391} INFO - at 52.2s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:11] {2218} INFO - iteration 284, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:11] {2391} INFO - at 52.5s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:11] {2218} INFO - iteration 285, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:12] {2391} INFO - at 52.8s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:12] {2218} INFO - iteration 286, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:12] {2391} INFO - at 53.0s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:12] {2218} INFO - iteration 287, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:12] {2391} INFO - at 53.6s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:12] {2218} INFO - iteration 288, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:13] {2391} INFO - at 53.8s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:13] {2218} INFO - iteration 289, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:13] {2391} INFO - at 53.9s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:13] {2218} INFO - iteration 290, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:13] {2391} INFO - at 54.4s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:13] {2218} INFO - iteration 291, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:14] {2391} INFO - at 54.8s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:14] {2218} INFO - iteration 292, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:14] {2391} INFO - at 55.0s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:14] {2218} INFO - iteration 293, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:14] {2391} INFO - at 55.3s,\testimator xgboost's best error=0.2773,\tbest estimator xgboost's best error=0.2773\n",
+ "[flaml.automl.logger: 10-27 05:18:14] {2218} INFO - iteration 294, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:15] {2391} INFO - at 55.7s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:15] {2218} INFO - iteration 295, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:15] {2391} INFO - at 55.9s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:15] {2218} INFO - iteration 296, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:18] {2391} INFO - at 59.0s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:18] {2218} INFO - iteration 297, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:18] {2391} INFO - at 59.2s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:18] {2218} INFO - iteration 298, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:20] {2391} INFO - at 60.7s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:20] {2218} INFO - iteration 299, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:20] {2391} INFO - at 61.1s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:20] {2218} INFO - iteration 300, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:20] {2391} INFO - at 61.4s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:20] {2218} INFO - iteration 301, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:20] {2391} INFO - at 61.5s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:20] {2218} INFO - iteration 302, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:22] {2391} INFO - at 62.7s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:22] {2218} INFO - iteration 303, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:22] {2391} INFO - at 63.0s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:22] {2218} INFO - iteration 304, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:22] {2391} INFO - at 63.3s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:22] {2218} INFO - iteration 305, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:22] {2391} INFO - at 63.5s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:22] {2218} INFO - iteration 306, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:23] {2391} INFO - at 64.1s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:23] {2218} INFO - iteration 307, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:23] {2391} INFO - at 64.4s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:23] {2218} INFO - iteration 308, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:24] {2391} INFO - at 64.7s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:24] {2218} INFO - iteration 309, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:24] {2391} INFO - at 64.8s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:24] {2218} INFO - iteration 310, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:24] {2391} INFO - at 65.3s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:24] {2218} INFO - iteration 311, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:25] {2391} INFO - at 65.6s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:25] {2218} INFO - iteration 312, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:25] {2391} INFO - at 65.9s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:25] {2218} INFO - iteration 313, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:25] {2391} INFO - at 66.1s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:25] {2218} INFO - iteration 314, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:25] {2391} INFO - at 66.4s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:25] {2218} INFO - iteration 315, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:26] {2391} INFO - at 66.9s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:26] {2218} INFO - iteration 316, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:26] {2391} INFO - at 67.0s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:26] {2218} INFO - iteration 317, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:26] {2391} INFO - at 67.2s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:26] {2218} INFO - iteration 318, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:27] {2391} INFO - at 68.0s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:27] {2218} INFO - iteration 319, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:27] {2391} INFO - at 68.3s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:27] {2218} INFO - iteration 320, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:28] {2391} INFO - at 68.7s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:28] {2218} INFO - iteration 321, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:28] {2391} INFO - at 69.3s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:28] {2218} INFO - iteration 322, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:28] {2391} INFO - at 69.6s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:28] {2218} INFO - iteration 323, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:29] {2391} INFO - at 70.3s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:29] {2218} INFO - iteration 324, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:29] {2391} INFO - at 70.5s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:29] {2218} INFO - iteration 325, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:30] {2391} INFO - at 71.1s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:30] {2218} INFO - iteration 326, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:30] {2391} INFO - at 71.5s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:30] {2218} INFO - iteration 327, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:31] {2391} INFO - at 71.8s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:31] {2218} INFO - iteration 328, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:31] {2391} INFO - at 72.2s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:31] {2218} INFO - iteration 329, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:31] {2391} INFO - at 72.4s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:31] {2218} INFO - iteration 330, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:32] {2391} INFO - at 73.2s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:32] {2218} INFO - iteration 331, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:32] {2391} INFO - at 73.4s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:32] {2218} INFO - iteration 332, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:33] {2391} INFO - at 73.9s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:33] {2218} INFO - iteration 333, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:33] {2391} INFO - at 74.0s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:33] {2218} INFO - iteration 334, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:34] {2391} INFO - at 74.7s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:34] {2218} INFO - iteration 335, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:34] {2391} INFO - at 75.0s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:34] {2218} INFO - iteration 336, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:34] {2391} INFO - at 75.3s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:34] {2218} INFO - iteration 337, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:35] {2391} INFO - at 75.7s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:35] {2218} INFO - iteration 338, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:35] {2391} INFO - at 75.9s,\testimator xgboost's best error=0.2772,\tbest estimator xgboost's best error=0.2772\n",
+ "[flaml.automl.logger: 10-27 05:18:35] {2218} INFO - iteration 339, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:35] {2391} INFO - at 76.1s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:35] {2218} INFO - iteration 340, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:35] {2391} INFO - at 76.4s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:35] {2218} INFO - iteration 341, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:36] {2391} INFO - at 77.0s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:36] {2218} INFO - iteration 342, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:36] {2391} INFO - at 77.1s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:36] {2218} INFO - iteration 343, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:36] {2391} INFO - at 77.3s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:36] {2218} INFO - iteration 344, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:36] {2391} INFO - at 77.6s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:36] {2218} INFO - iteration 345, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:37] {2391} INFO - at 78.0s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:37] {2218} INFO - iteration 346, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:37] {2391} INFO - at 78.1s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:37] {2218} INFO - iteration 347, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:37] {2391} INFO - at 78.6s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:37] {2218} INFO - iteration 348, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:38] {2391} INFO - at 78.7s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:38] {2218} INFO - iteration 349, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:38] {2391} INFO - at 78.8s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:38] {2218} INFO - iteration 350, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:39] {2391} INFO - at 79.7s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:39] {2218} INFO - iteration 351, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:39] {2391} INFO - at 79.9s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:39] {2218} INFO - iteration 352, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:39] {2391} INFO - at 80.2s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:39] {2218} INFO - iteration 353, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:39] {2391} INFO - at 80.6s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:39] {2218} INFO - iteration 354, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:40] {2391} INFO - at 80.7s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:40] {2218} INFO - iteration 355, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:40] {2391} INFO - at 81.3s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:40] {2218} INFO - iteration 356, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:40] {2391} INFO - at 81.4s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:40] {2218} INFO - iteration 357, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:41] {2391} INFO - at 82.1s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:41] {2218} INFO - iteration 358, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:41] {2391} INFO - at 82.3s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:41] {2218} INFO - iteration 359, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:42] {2391} INFO - at 82.8s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:42] {2218} INFO - iteration 360, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:42] {2391} INFO - at 83.1s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:42] {2218} INFO - iteration 361, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:42] {2391} INFO - at 83.3s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:42] {2218} INFO - iteration 362, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:44] {2391} INFO - at 84.8s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:44] {2218} INFO - iteration 363, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:44] {2391} INFO - at 85.3s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:44] {2218} INFO - iteration 364, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:44] {2391} INFO - at 85.5s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:44] {2218} INFO - iteration 365, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:45] {2391} INFO - at 85.8s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:45] {2218} INFO - iteration 366, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:45] {2391} INFO - at 86.5s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:45] {2218} INFO - iteration 367, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:46] {2391} INFO - at 87.0s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:46] {2218} INFO - iteration 368, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:46] {2391} INFO - at 87.1s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:46] {2218} INFO - iteration 369, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:46] {2391} INFO - at 87.4s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:46] {2218} INFO - iteration 370, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:46] {2391} INFO - at 87.5s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:46] {2218} INFO - iteration 371, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:47] {2391} INFO - at 88.1s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:47] {2218} INFO - iteration 372, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:47] {2391} INFO - at 88.2s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:47] {2218} INFO - iteration 373, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:47] {2391} INFO - at 88.6s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:47] {2218} INFO - iteration 374, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:48] {2391} INFO - at 88.7s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:48] {2218} INFO - iteration 375, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:48] {2391} INFO - at 89.0s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:48] {2218} INFO - iteration 376, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:48] {2391} INFO - at 89.2s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:48] {2218} INFO - iteration 377, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:48] {2391} INFO - at 89.5s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:48] {2218} INFO - iteration 378, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:49] {2391} INFO - at 89.7s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:49] {2218} INFO - iteration 379, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:49] {2391} INFO - at 89.9s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:49] {2218} INFO - iteration 380, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:49] {2391} INFO - at 90.3s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:49] {2218} INFO - iteration 381, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:49] {2391} INFO - at 90.6s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:49] {2218} INFO - iteration 382, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:50] {2391} INFO - at 90.8s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:50] {2218} INFO - iteration 383, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:50] {2391} INFO - at 91.1s,\testimator xgboost's best error=0.2770,\tbest estimator xgboost's best error=0.2770\n",
+ "[flaml.automl.logger: 10-27 05:18:50] {2218} INFO - iteration 384, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:50] {2391} INFO - at 91.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:50] {2218} INFO - iteration 385, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:50] {2391} INFO - at 91.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:50] {2218} INFO - iteration 386, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:51] {2391} INFO - at 91.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:51] {2218} INFO - iteration 387, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:51] {2391} INFO - at 91.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:51] {2218} INFO - iteration 388, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:51] {2391} INFO - at 92.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:51] {2218} INFO - iteration 389, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:51] {2391} INFO - at 92.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:51] {2218} INFO - iteration 390, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:51] {2391} INFO - at 92.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:51] {2218} INFO - iteration 391, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:52] {2391} INFO - at 92.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:52] {2218} INFO - iteration 392, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:52] {2391} INFO - at 93.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:52] {2218} INFO - iteration 393, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:52] {2391} INFO - at 93.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:52] {2218} INFO - iteration 394, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:52] {2391} INFO - at 93.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:52] {2218} INFO - iteration 395, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:52] {2391} INFO - at 93.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:52] {2218} INFO - iteration 396, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:53] {2391} INFO - at 93.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:53] {2218} INFO - iteration 397, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:53] {2391} INFO - at 93.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:53] {2218} INFO - iteration 398, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:53] {2391} INFO - at 94.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:53] {2218} INFO - iteration 399, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:53] {2391} INFO - at 94.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:53] {2218} INFO - iteration 400, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:53] {2391} INFO - at 94.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:53] {2218} INFO - iteration 401, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:54] {2391} INFO - at 94.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:54] {2218} INFO - iteration 402, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:54] {2391} INFO - at 95.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:54] {2218} INFO - iteration 403, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:54] {2391} INFO - at 95.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:54] {2218} INFO - iteration 404, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:54] {2391} INFO - at 95.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:54] {2218} INFO - iteration 405, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:54] {2391} INFO - at 95.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:54] {2218} INFO - iteration 406, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:55] {2391} INFO - at 95.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:55] {2218} INFO - iteration 407, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:55] {2391} INFO - at 96.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:55] {2218} INFO - iteration 408, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:55] {2391} INFO - at 96.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:55] {2218} INFO - iteration 409, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:55] {2391} INFO - at 96.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:55] {2218} INFO - iteration 410, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:56] {2391} INFO - at 96.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:56] {2218} INFO - iteration 411, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:56] {2391} INFO - at 96.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:56] {2218} INFO - iteration 412, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:56] {2391} INFO - at 97.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:56] {2218} INFO - iteration 413, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:56] {2391} INFO - at 97.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:56] {2218} INFO - iteration 414, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:57] {2391} INFO - at 98.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:57] {2218} INFO - iteration 415, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:57] {2391} INFO - at 98.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:57] {2218} INFO - iteration 416, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:58] {2391} INFO - at 98.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:58] {2218} INFO - iteration 417, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:58] {2391} INFO - at 98.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:58] {2218} INFO - iteration 418, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:58] {2391} INFO - at 99.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:58] {2218} INFO - iteration 419, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:58] {2391} INFO - at 99.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:58] {2218} INFO - iteration 420, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:59] {2391} INFO - at 99.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:59] {2218} INFO - iteration 421, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:59] {2391} INFO - at 100.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:59] {2218} INFO - iteration 422, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:18:59] {2391} INFO - at 100.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:18:59] {2218} INFO - iteration 423, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:00] {2391} INFO - at 100.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:00] {2218} INFO - iteration 424, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:00] {2391} INFO - at 101.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:00] {2218} INFO - iteration 425, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:00] {2391} INFO - at 101.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:00] {2218} INFO - iteration 426, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:00] {2391} INFO - at 101.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:00] {2218} INFO - iteration 427, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:01] {2391} INFO - at 101.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:01] {2218} INFO - iteration 428, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:01] {2391} INFO - at 101.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:01] {2218} INFO - iteration 429, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:01] {2391} INFO - at 102.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:01] {2218} INFO - iteration 430, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:01] {2391} INFO - at 102.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:01] {2218} INFO - iteration 431, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:01] {2391} INFO - at 102.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:01] {2218} INFO - iteration 432, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:02] {2391} INFO - at 102.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:02] {2218} INFO - iteration 433, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:02] {2391} INFO - at 103.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:02] {2218} INFO - iteration 434, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:02] {2391} INFO - at 103.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:02] {2218} INFO - iteration 435, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:02] {2391} INFO - at 103.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:02] {2218} INFO - iteration 436, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:02] {2391} INFO - at 103.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:02] {2218} INFO - iteration 437, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:03] {2391} INFO - at 103.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:03] {2218} INFO - iteration 438, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:03] {2391} INFO - at 103.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:03] {2218} INFO - iteration 439, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:03] {2391} INFO - at 104.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:03] {2218} INFO - iteration 440, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:03] {2391} INFO - at 104.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:03] {2218} INFO - iteration 441, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:03] {2391} INFO - at 104.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:03] {2218} INFO - iteration 442, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:04] {2391} INFO - at 104.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:04] {2218} INFO - iteration 443, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:04] {2391} INFO - at 104.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:04] {2218} INFO - iteration 444, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:04] {2391} INFO - at 105.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:04] {2218} INFO - iteration 445, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:04] {2391} INFO - at 105.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:04] {2218} INFO - iteration 446, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:04] {2391} INFO - at 105.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:04] {2218} INFO - iteration 447, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:04] {2391} INFO - at 105.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:04] {2218} INFO - iteration 448, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:05] {2391} INFO - at 105.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:05] {2218} INFO - iteration 449, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:05] {2391} INFO - at 106.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:05] {2218} INFO - iteration 450, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:05] {2391} INFO - at 106.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:05] {2218} INFO - iteration 451, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:05] {2391} INFO - at 106.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:05] {2218} INFO - iteration 452, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:05] {2391} INFO - at 106.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:05] {2218} INFO - iteration 453, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:06] {2391} INFO - at 106.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:06] {2218} INFO - iteration 454, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:06] {2391} INFO - at 106.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:06] {2218} INFO - iteration 455, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:06] {2391} INFO - at 107.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:06] {2218} INFO - iteration 456, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:06] {2391} INFO - at 107.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:06] {2218} INFO - iteration 457, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:06] {2391} INFO - at 107.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:06] {2218} INFO - iteration 458, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:07] {2391} INFO - at 107.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:07] {2218} INFO - iteration 459, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:07] {2391} INFO - at 107.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:07] {2218} INFO - iteration 460, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:07] {2391} INFO - at 108.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:07] {2218} INFO - iteration 461, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:07] {2391} INFO - at 108.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:07] {2218} INFO - iteration 462, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:07] {2391} INFO - at 108.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:07] {2218} INFO - iteration 463, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:08] {2391} INFO - at 108.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:08] {2218} INFO - iteration 464, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:08] {2391} INFO - at 109.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:08] {2218} INFO - iteration 465, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:08] {2391} INFO - at 109.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:08] {2218} INFO - iteration 466, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:08] {2391} INFO - at 109.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:08] {2218} INFO - iteration 467, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:09] {2391} INFO - at 109.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:09] {2218} INFO - iteration 468, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:09] {2391} INFO - at 109.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:09] {2218} INFO - iteration 469, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:09] {2391} INFO - at 110.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:09] {2218} INFO - iteration 470, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:09] {2391} INFO - at 110.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:09] {2218} INFO - iteration 471, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:09] {2391} INFO - at 110.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:09] {2218} INFO - iteration 472, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:10] {2391} INFO - at 110.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:10] {2218} INFO - iteration 473, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:10] {2391} INFO - at 110.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:10] {2218} INFO - iteration 474, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:11] {2391} INFO - at 111.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:11] {2218} INFO - iteration 475, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:11] {2391} INFO - at 111.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:11] {2218} INFO - iteration 476, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:11] {2391} INFO - at 112.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:11] {2218} INFO - iteration 477, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:12] {2391} INFO - at 113.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:12] {2218} INFO - iteration 478, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:12] {2391} INFO - at 113.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:12] {2218} INFO - iteration 479, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:12] {2391} INFO - at 113.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:12] {2218} INFO - iteration 480, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:13] {2391} INFO - at 113.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:13] {2218} INFO - iteration 481, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:14] {2391} INFO - at 115.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:14] {2218} INFO - iteration 482, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:14] {2391} INFO - at 115.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:14] {2218} INFO - iteration 483, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:14] {2391} INFO - at 115.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:14] {2218} INFO - iteration 484, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:15] {2391} INFO - at 115.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:15] {2218} INFO - iteration 485, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:15] {2391} INFO - at 116.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:15] {2218} INFO - iteration 486, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:15] {2391} INFO - at 116.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:15] {2218} INFO - iteration 487, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:15] {2391} INFO - at 116.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:15] {2218} INFO - iteration 488, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:16] {2391} INFO - at 116.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:16] {2218} INFO - iteration 489, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:16] {2391} INFO - at 116.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:16] {2218} INFO - iteration 490, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:16] {2391} INFO - at 117.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:16] {2218} INFO - iteration 491, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:16] {2391} INFO - at 117.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:16] {2218} INFO - iteration 492, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:16] {2391} INFO - at 117.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:16] {2218} INFO - iteration 493, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:17] {2391} INFO - at 117.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:17] {2218} INFO - iteration 494, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:17] {2391} INFO - at 117.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:17] {2218} INFO - iteration 495, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:17] {2391} INFO - at 118.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:17] {2218} INFO - iteration 496, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:17] {2391} INFO - at 118.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:17] {2218} INFO - iteration 497, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:18] {2391} INFO - at 118.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:18] {2218} INFO - iteration 498, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:18] {2391} INFO - at 118.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:18] {2218} INFO - iteration 499, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:18] {2391} INFO - at 119.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:18] {2218} INFO - iteration 500, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:18] {2391} INFO - at 119.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:18] {2218} INFO - iteration 501, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:18] {2391} INFO - at 119.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:18] {2218} INFO - iteration 502, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:18] {2391} INFO - at 119.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:18] {2218} INFO - iteration 503, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:19] {2391} INFO - at 119.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:19] {2218} INFO - iteration 504, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:19] {2391} INFO - at 120.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:19] {2218} INFO - iteration 505, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:19] {2391} INFO - at 120.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:19] {2218} INFO - iteration 506, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:19] {2391} INFO - at 120.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:19] {2218} INFO - iteration 507, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:19] {2391} INFO - at 120.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:19] {2218} INFO - iteration 508, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:20] {2391} INFO - at 120.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:20] {2218} INFO - iteration 509, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:20] {2391} INFO - at 120.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:20] {2218} INFO - iteration 510, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:20] {2391} INFO - at 121.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:20] {2218} INFO - iteration 511, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:20] {2391} INFO - at 121.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:20] {2218} INFO - iteration 512, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:20] {2391} INFO - at 121.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:20] {2218} INFO - iteration 513, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:20] {2391} INFO - at 121.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:20] {2218} INFO - iteration 514, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:21] {2391} INFO - at 121.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:21] {2218} INFO - iteration 515, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:21] {2391} INFO - at 121.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:21] {2218} INFO - iteration 516, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:21] {2391} INFO - at 122.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:21] {2218} INFO - iteration 517, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:21] {2391} INFO - at 122.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:21] {2218} INFO - iteration 518, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:21] {2391} INFO - at 122.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:21] {2218} INFO - iteration 519, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:22] {2391} INFO - at 122.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:22] {2218} INFO - iteration 520, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:22] {2391} INFO - at 122.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:22] {2218} INFO - iteration 521, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:22] {2391} INFO - at 123.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:22] {2218} INFO - iteration 522, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:22] {2391} INFO - at 123.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:22] {2218} INFO - iteration 523, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:22] {2391} INFO - at 123.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:22] {2218} INFO - iteration 524, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:23] {2391} INFO - at 123.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:23] {2218} INFO - iteration 525, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:23] {2391} INFO - at 124.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:23] {2218} INFO - iteration 526, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:23] {2391} INFO - at 124.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:23] {2218} INFO - iteration 527, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:23] {2391} INFO - at 124.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:23] {2218} INFO - iteration 528, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:23] {2391} INFO - at 124.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:23] {2218} INFO - iteration 529, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:24] {2391} INFO - at 124.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:24] {2218} INFO - iteration 530, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:24] {2391} INFO - at 125.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:24] {2218} INFO - iteration 531, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:24] {2391} INFO - at 125.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:24] {2218} INFO - iteration 532, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:24] {2391} INFO - at 125.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:24] {2218} INFO - iteration 533, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:24] {2391} INFO - at 125.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:24] {2218} INFO - iteration 534, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:25] {2391} INFO - at 125.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:25] {2218} INFO - iteration 535, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:25] {2391} INFO - at 126.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:25] {2218} INFO - iteration 536, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:25] {2391} INFO - at 126.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:25] {2218} INFO - iteration 537, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:26] {2391} INFO - at 126.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:26] {2218} INFO - iteration 538, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:26] {2391} INFO - at 127.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:26] {2218} INFO - iteration 539, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:26] {2391} INFO - at 127.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:26] {2218} INFO - iteration 540, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:27] {2391} INFO - at 127.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:27] {2218} INFO - iteration 541, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:27] {2391} INFO - at 128.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:27] {2218} INFO - iteration 542, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:28] {2391} INFO - at 128.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:28] {2218} INFO - iteration 543, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:28] {2391} INFO - at 129.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:28] {2218} INFO - iteration 544, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:28] {2391} INFO - at 129.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:28] {2218} INFO - iteration 545, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:29] {2391} INFO - at 130.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:29] {2218} INFO - iteration 546, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:29] {2391} INFO - at 130.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:29] {2218} INFO - iteration 547, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:29] {2391} INFO - at 130.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:29] {2218} INFO - iteration 548, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:30] {2391} INFO - at 130.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:30] {2218} INFO - iteration 549, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:30] {2391} INFO - at 131.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:30] {2218} INFO - iteration 550, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:30] {2391} INFO - at 131.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:30] {2218} INFO - iteration 551, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:30] {2391} INFO - at 131.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:30] {2218} INFO - iteration 552, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:31] {2391} INFO - at 131.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:31] {2218} INFO - iteration 553, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:31] {2391} INFO - at 132.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:31] {2218} INFO - iteration 554, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:31] {2391} INFO - at 132.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:31] {2218} INFO - iteration 555, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:31] {2391} INFO - at 132.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:31] {2218} INFO - iteration 556, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:31] {2391} INFO - at 132.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:31] {2218} INFO - iteration 557, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:31] {2391} INFO - at 132.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:31] {2218} INFO - iteration 558, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:32] {2391} INFO - at 132.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:32] {2218} INFO - iteration 559, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:32] {2391} INFO - at 132.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:32] {2218} INFO - iteration 560, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:32] {2391} INFO - at 133.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:32] {2218} INFO - iteration 561, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:32] {2391} INFO - at 133.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:32] {2218} INFO - iteration 562, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:32] {2391} INFO - at 133.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:32] {2218} INFO - iteration 563, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:33] {2391} INFO - at 133.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:33] {2218} INFO - iteration 564, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:33] {2391} INFO - at 133.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:33] {2218} INFO - iteration 565, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:33] {2391} INFO - at 134.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:33] {2218} INFO - iteration 566, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:33] {2391} INFO - at 134.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:33] {2218} INFO - iteration 567, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:33] {2391} INFO - at 134.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:33] {2218} INFO - iteration 568, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:34] {2391} INFO - at 134.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:34] {2218} INFO - iteration 569, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:34] {2391} INFO - at 134.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:34] {2218} INFO - iteration 570, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:34] {2391} INFO - at 135.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:34] {2218} INFO - iteration 571, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:34] {2391} INFO - at 135.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:34] {2218} INFO - iteration 572, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:34] {2391} INFO - at 135.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:34] {2218} INFO - iteration 573, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:35] {2391} INFO - at 135.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:35] {2218} INFO - iteration 574, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:35] {2391} INFO - at 135.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:35] {2218} INFO - iteration 575, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:35] {2391} INFO - at 136.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:35] {2218} INFO - iteration 576, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:35] {2391} INFO - at 136.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:35] {2218} INFO - iteration 577, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:35] {2391} INFO - at 136.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:35] {2218} INFO - iteration 578, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:36] {2391} INFO - at 136.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:36] {2218} INFO - iteration 579, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:36] {2391} INFO - at 136.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:36] {2218} INFO - iteration 580, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:36] {2391} INFO - at 137.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:36] {2218} INFO - iteration 581, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:36] {2391} INFO - at 137.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:36] {2218} INFO - iteration 582, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:36] {2391} INFO - at 137.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:36] {2218} INFO - iteration 583, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:37] {2391} INFO - at 137.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:37] {2218} INFO - iteration 584, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:37] {2391} INFO - at 137.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:37] {2218} INFO - iteration 585, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:37] {2391} INFO - at 138.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:37] {2218} INFO - iteration 586, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:37] {2391} INFO - at 138.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:37] {2218} INFO - iteration 587, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:37] {2391} INFO - at 138.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:37] {2218} INFO - iteration 588, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:38] {2391} INFO - at 138.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:38] {2218} INFO - iteration 589, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:38] {2391} INFO - at 138.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:38] {2218} INFO - iteration 590, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:38] {2391} INFO - at 139.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:38] {2218} INFO - iteration 591, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:38] {2391} INFO - at 139.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:38] {2218} INFO - iteration 592, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:39] {2391} INFO - at 139.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:39] {2218} INFO - iteration 593, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:39] {2391} INFO - at 140.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:39] {2218} INFO - iteration 594, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:39] {2391} INFO - at 140.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:39] {2218} INFO - iteration 595, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:39] {2391} INFO - at 140.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:39] {2218} INFO - iteration 596, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:40] {2391} INFO - at 140.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:40] {2218} INFO - iteration 597, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:40] {2391} INFO - at 141.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:40] {2218} INFO - iteration 598, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:40] {2391} INFO - at 141.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:40] {2218} INFO - iteration 599, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:41] {2391} INFO - at 142.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:41] {2218} INFO - iteration 600, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:41] {2391} INFO - at 142.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:41] {2218} INFO - iteration 601, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:41] {2391} INFO - at 142.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:41] {2218} INFO - iteration 602, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:42] {2391} INFO - at 142.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:42] {2218} INFO - iteration 603, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:42] {2391} INFO - at 143.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:42] {2218} INFO - iteration 604, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:42] {2391} INFO - at 143.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:42] {2218} INFO - iteration 605, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:43] {2391} INFO - at 143.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:43] {2218} INFO - iteration 606, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:43] {2391} INFO - at 143.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:43] {2218} INFO - iteration 607, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:43] {2391} INFO - at 144.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:43] {2218} INFO - iteration 608, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:43] {2391} INFO - at 144.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:43] {2218} INFO - iteration 609, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:44] {2391} INFO - at 144.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:44] {2218} INFO - iteration 610, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:44] {2391} INFO - at 144.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:44] {2218} INFO - iteration 611, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:44] {2391} INFO - at 145.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:44] {2218} INFO - iteration 612, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:44] {2391} INFO - at 145.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:44] {2218} INFO - iteration 613, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:44] {2391} INFO - at 145.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:44] {2218} INFO - iteration 614, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:45] {2391} INFO - at 145.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:45] {2218} INFO - iteration 615, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:45] {2391} INFO - at 146.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:45] {2218} INFO - iteration 616, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:45] {2391} INFO - at 146.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:45] {2218} INFO - iteration 617, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:45] {2391} INFO - at 146.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:45] {2218} INFO - iteration 618, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:46] {2391} INFO - at 146.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:46] {2218} INFO - iteration 619, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:46] {2391} INFO - at 147.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:46] {2218} INFO - iteration 620, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:46] {2391} INFO - at 147.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:46] {2218} INFO - iteration 621, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:46] {2391} INFO - at 147.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:46] {2218} INFO - iteration 622, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:47] {2391} INFO - at 147.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:47] {2218} INFO - iteration 623, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:47] {2391} INFO - at 147.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:47] {2218} INFO - iteration 624, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:47] {2391} INFO - at 148.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:47] {2218} INFO - iteration 625, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:47] {2391} INFO - at 148.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:47] {2218} INFO - iteration 626, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:47] {2391} INFO - at 148.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:47] {2218} INFO - iteration 627, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:48] {2391} INFO - at 148.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:48] {2218} INFO - iteration 628, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:48] {2391} INFO - at 149.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:48] {2218} INFO - iteration 629, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:48] {2391} INFO - at 149.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:48] {2218} INFO - iteration 630, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:48] {2391} INFO - at 149.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:48] {2218} INFO - iteration 631, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:49] {2391} INFO - at 149.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:49] {2218} INFO - iteration 632, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:49] {2391} INFO - at 150.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:49] {2218} INFO - iteration 633, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:49] {2391} INFO - at 150.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:49] {2218} INFO - iteration 634, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:49] {2391} INFO - at 150.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:49] {2218} INFO - iteration 635, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:50] {2391} INFO - at 150.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:50] {2218} INFO - iteration 636, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:50] {2391} INFO - at 150.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:50] {2218} INFO - iteration 637, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:50] {2391} INFO - at 151.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:50] {2218} INFO - iteration 638, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:50] {2391} INFO - at 151.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:50] {2218} INFO - iteration 639, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:50] {2391} INFO - at 151.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:50] {2218} INFO - iteration 640, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:51] {2391} INFO - at 151.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:51] {2218} INFO - iteration 641, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:51] {2391} INFO - at 151.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:51] {2218} INFO - iteration 642, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:51] {2391} INFO - at 152.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:51] {2218} INFO - iteration 643, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:52] {2391} INFO - at 152.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:52] {2218} INFO - iteration 644, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:52] {2391} INFO - at 152.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:52] {2218} INFO - iteration 645, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:52] {2391} INFO - at 153.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:52] {2218} INFO - iteration 646, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:52] {2391} INFO - at 153.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:52] {2218} INFO - iteration 647, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:52] {2391} INFO - at 153.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:52] {2218} INFO - iteration 648, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:52] {2391} INFO - at 153.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:52] {2218} INFO - iteration 649, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:53] {2391} INFO - at 153.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:53] {2218} INFO - iteration 650, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:53] {2391} INFO - at 154.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:53] {2218} INFO - iteration 651, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:54] {2391} INFO - at 154.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:54] {2218} INFO - iteration 652, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:54] {2391} INFO - at 154.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:54] {2218} INFO - iteration 653, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:54] {2391} INFO - at 155.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:54] {2218} INFO - iteration 654, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:54] {2391} INFO - at 155.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:54] {2218} INFO - iteration 655, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:55] {2391} INFO - at 155.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:55] {2218} INFO - iteration 656, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:55] {2391} INFO - at 156.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:55] {2218} INFO - iteration 657, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:55] {2391} INFO - at 156.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:55] {2218} INFO - iteration 658, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:56] {2391} INFO - at 156.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:56] {2218} INFO - iteration 659, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:56] {2391} INFO - at 156.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:56] {2218} INFO - iteration 660, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:56] {2391} INFO - at 157.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:56] {2218} INFO - iteration 661, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:57] {2391} INFO - at 158.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:57] {2218} INFO - iteration 662, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:57] {2391} INFO - at 158.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:57] {2218} INFO - iteration 663, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:57] {2391} INFO - at 158.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:57] {2218} INFO - iteration 664, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:58] {2391} INFO - at 159.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:58] {2218} INFO - iteration 665, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:58] {2391} INFO - at 159.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:58] {2218} INFO - iteration 666, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:58] {2391} INFO - at 159.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:58] {2218} INFO - iteration 667, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:58] {2391} INFO - at 159.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:58] {2218} INFO - iteration 668, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:59] {2391} INFO - at 159.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:59] {2218} INFO - iteration 669, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:59] {2391} INFO - at 160.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:59] {2218} INFO - iteration 670, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:59] {2391} INFO - at 160.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:59] {2218} INFO - iteration 671, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:19:59] {2391} INFO - at 160.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:19:59] {2218} INFO - iteration 672, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:00] {2391} INFO - at 160.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:00] {2218} INFO - iteration 673, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:00] {2391} INFO - at 160.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:00] {2218} INFO - iteration 674, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:00] {2391} INFO - at 161.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:00] {2218} INFO - iteration 675, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:00] {2391} INFO - at 161.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:00] {2218} INFO - iteration 676, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:00] {2391} INFO - at 161.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:00] {2218} INFO - iteration 677, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:01] {2391} INFO - at 161.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:01] {2218} INFO - iteration 678, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:01] {2391} INFO - at 161.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:01] {2218} INFO - iteration 679, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:01] {2391} INFO - at 162.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:01] {2218} INFO - iteration 680, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:01] {2391} INFO - at 162.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:01] {2218} INFO - iteration 681, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:02] {2391} INFO - at 162.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:02] {2218} INFO - iteration 682, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:02] {2391} INFO - at 163.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:02] {2218} INFO - iteration 683, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:02] {2391} INFO - at 163.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:02] {2218} INFO - iteration 684, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:02] {2391} INFO - at 163.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:02] {2218} INFO - iteration 685, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:02] {2391} INFO - at 163.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:02] {2218} INFO - iteration 686, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:03] {2391} INFO - at 163.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:03] {2218} INFO - iteration 687, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:03] {2391} INFO - at 164.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:03] {2218} INFO - iteration 688, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:03] {2391} INFO - at 164.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:03] {2218} INFO - iteration 689, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:04] {2391} INFO - at 164.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:04] {2218} INFO - iteration 690, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:04] {2391} INFO - at 165.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:04] {2218} INFO - iteration 691, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:04] {2391} INFO - at 165.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:04] {2218} INFO - iteration 692, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:04] {2391} INFO - at 165.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:04] {2218} INFO - iteration 693, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:04] {2391} INFO - at 165.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:04] {2218} INFO - iteration 694, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:05] {2391} INFO - at 165.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:05] {2218} INFO - iteration 695, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:05] {2391} INFO - at 166.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:05] {2218} INFO - iteration 696, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:05] {2391} INFO - at 166.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:05] {2218} INFO - iteration 697, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:05] {2391} INFO - at 166.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:05] {2218} INFO - iteration 698, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:05] {2391} INFO - at 166.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:05] {2218} INFO - iteration 699, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:06] {2391} INFO - at 166.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:06] {2218} INFO - iteration 700, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:06] {2391} INFO - at 167.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:06] {2218} INFO - iteration 701, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:06] {2391} INFO - at 167.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:06] {2218} INFO - iteration 702, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:07] {2391} INFO - at 167.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:07] {2218} INFO - iteration 703, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:07] {2391} INFO - at 167.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:07] {2218} INFO - iteration 704, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:07] {2391} INFO - at 168.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:07] {2218} INFO - iteration 705, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:07] {2391} INFO - at 168.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:07] {2218} INFO - iteration 706, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:07] {2391} INFO - at 168.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:07] {2218} INFO - iteration 707, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:08] {2391} INFO - at 168.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:08] {2218} INFO - iteration 708, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:08] {2391} INFO - at 168.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:08] {2218} INFO - iteration 709, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:08] {2391} INFO - at 169.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:08] {2218} INFO - iteration 710, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:08] {2391} INFO - at 169.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:08] {2218} INFO - iteration 711, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:08] {2391} INFO - at 169.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:08] {2218} INFO - iteration 712, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:09] {2391} INFO - at 169.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:09] {2218} INFO - iteration 713, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:09] {2391} INFO - at 170.1s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:09] {2218} INFO - iteration 714, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:09] {2391} INFO - at 170.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:09] {2218} INFO - iteration 715, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:09] {2391} INFO - at 170.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:09] {2218} INFO - iteration 716, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:10] {2391} INFO - at 171.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:10] {2218} INFO - iteration 717, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:10] {2391} INFO - at 171.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:10] {2218} INFO - iteration 718, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:10] {2391} INFO - at 171.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:10] {2218} INFO - iteration 719, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:11] {2391} INFO - at 171.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:11] {2218} INFO - iteration 720, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:11] {2391} INFO - at 172.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:11] {2218} INFO - iteration 721, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:11] {2391} INFO - at 172.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:11] {2218} INFO - iteration 722, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:12] {2391} INFO - at 172.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:12] {2218} INFO - iteration 723, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:12] {2391} INFO - at 173.4s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:12] {2218} INFO - iteration 724, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:12] {2391} INFO - at 173.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:12] {2218} INFO - iteration 725, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:13] {2391} INFO - at 173.8s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:13] {2218} INFO - iteration 726, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:13] {2391} INFO - at 174.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:13] {2218} INFO - iteration 727, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:13] {2391} INFO - at 174.5s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:13] {2218} INFO - iteration 728, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:14] {2391} INFO - at 175.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:14] {2218} INFO - iteration 729, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:14] {2391} INFO - at 175.3s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:14] {2218} INFO - iteration 730, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:15] {2391} INFO - at 175.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:15] {2218} INFO - iteration 731, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:15] {2391} INFO - at 176.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:15] {2218} INFO - iteration 732, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:15] {2391} INFO - at 176.6s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:15] {2218} INFO - iteration 733, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:16] {2391} INFO - at 176.9s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:16] {2218} INFO - iteration 734, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:16] {2391} INFO - at 177.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:16] {2218} INFO - iteration 735, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:17] {2391} INFO - at 177.7s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:17] {2218} INFO - iteration 736, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:17] {2391} INFO - at 178.0s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:17] {2218} INFO - iteration 737, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:17] {2391} INFO - at 178.2s,\testimator xgboost's best error=0.2766,\tbest estimator xgboost's best error=0.2766\n",
+ "[flaml.automl.logger: 10-27 05:20:17] {2218} INFO - iteration 738, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:17] {2391} INFO - at 178.4s,\testimator xgboost's best error=0.2751,\tbest estimator xgboost's best error=0.2751\n",
+ "[flaml.automl.logger: 10-27 05:20:17] {2218} INFO - iteration 739, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:18] {2391} INFO - at 178.7s,\testimator xgboost's best error=0.2751,\tbest estimator xgboost's best error=0.2751\n",
+ "[flaml.automl.logger: 10-27 05:20:18] {2218} INFO - iteration 740, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:18] {2391} INFO - at 178.9s,\testimator xgboost's best error=0.2751,\tbest estimator xgboost's best error=0.2751\n",
+ "[flaml.automl.logger: 10-27 05:20:18] {2218} INFO - iteration 741, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:18] {2391} INFO - at 179.0s,\testimator xgboost's best error=0.2751,\tbest estimator xgboost's best error=0.2751\n",
+ "[flaml.automl.logger: 10-27 05:20:18] {2218} INFO - iteration 742, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:18] {2391} INFO - at 179.4s,\testimator xgboost's best error=0.2751,\tbest estimator xgboost's best error=0.2751\n",
+ "[flaml.automl.logger: 10-27 05:20:18] {2218} INFO - iteration 743, current learner xgboost\n",
+ "[flaml.automl.logger: 10-27 05:20:19] {2391} INFO - at 179.8s,\testimator xgboost's best error=0.2751,\tbest estimator xgboost's best error=0.2751\n",
+ "[flaml.automl.logger: 10-27 05:20:19] {2627} INFO - retrain xgboost for 0.0s\n",
+ "[flaml.automl.logger: 10-27 05:20:19] {2630} INFO - retrained model: XGBClassifier(base_score=None, booster=None, callbacks=[],\n",
+ " colsample_bylevel=0.9903174356318001, colsample_bynode=None,\n",
+ " colsample_bytree=1.0, device=None, early_stopping_rounds=None,\n",
+ " enable_categorical=False, eval_metric=None, feature_types=None,\n",
+ " gamma=None, grow_policy='lossguide', importance_type=None,\n",
+ " interaction_constraints=None, learning_rate=0.3722679382084117,\n",
+ " max_bin=None, max_cat_threshold=None, max_cat_to_onehot=None,\n",
+ " max_delta_step=None, max_depth=0, max_leaves=28,\n",
+ " min_child_weight=0.07291503794199583, missing=nan,\n",
+ " monotone_constraints=None, multi_strategy=None, n_estimators=18,\n",
+ " n_jobs=-1, num_parallel_tree=None, random_state=None, ...)\n",
+ "[flaml.automl.logger: 10-27 05:20:19] {1930} INFO - fit succeeded\n",
+ "[flaml.automl.logger: 10-27 05:20:19] {1931} INFO - Time taken to find the best model: 178.4095482826233\n"
+ ]
+ },
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " 0\n",
+ "0 Function PredictEmployee added to the database."
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " Function PredictEmployee added to the database. \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 9
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Utilizing the Prediction Model\n",
+ "Following the model training, we proceed to employ the `PredictEmployee` model to make predictions for whether the employee will leave or not."
+ ],
+ "metadata": {
+ "id": "Fc2eLIEB61Pj"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "cursor.query(\"SELECT PredictEmployee(payment_tier, age, gender, experience_in_current_domain, leave_or_not) FROM postgres_data.employee_data LIMIT 10;\").df()"
+ ],
+ "metadata": {
+ "id": "MzSDNiSt6vGb",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 359
+ },
+ "outputId": "43c16ef5-0b63-4477-d2d1-79cb1ff84650"
+ },
+ "execution_count": 11,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " leave_or_not\n",
+ "0 0\n",
+ "1 1\n",
+ "2 0\n",
+ "3 0\n",
+ "4 0\n",
+ "5 0\n",
+ "6 0\n",
+ "7 0\n",
+ "8 0\n",
+ "9 0"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " leave_or_not \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 1 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 5 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 6 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 7 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 8 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 9 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 11
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Perform `LATERAL JOIN` to compare the query performance."
+ ],
+ "metadata": {
+ "id": "5HUngUJ4lWrA"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "cursor.query(\"\"\"\n",
+ " SELECT leave_or_not, predicted_leave_or_not FROM postgres_data.employee_data\n",
+ " JOIN LATERAL PredictEmployee(*) AS Predicted(predicted_leave_or_not) LIMIT 10;\n",
+ "\"\"\").df()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 359
+ },
+ "id": "hjWemGHJk-0A",
+ "outputId": "fdc5e548-af80-4f72-cb18-f091e980835a"
+ },
+ "execution_count": 12,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " leave_or_not predicted_leave_or_not\n",
+ "0 0 0\n",
+ "1 1 1\n",
+ "2 0 0\n",
+ "3 1 0\n",
+ "4 1 0\n",
+ "5 0 0\n",
+ "6 0 0\n",
+ "7 1 0\n",
+ "8 0 0\n",
+ "9 0 0"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " leave_or_not \n",
+ " predicted_leave_or_not \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 1 \n",
+ " 1 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 1 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 1 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 5 \n",
+ " 0 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 6 \n",
+ " 0 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 7 \n",
+ " 1 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 8 \n",
+ " 0 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 9 \n",
+ " 0 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 12
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
From 60f4b68162b3556c1ac891991d24d5dadafcccff Mon Sep 17 00:00:00 2001
From: Hersh Dhillon
Date: Fri, 27 Oct 2023 03:16:18 -0400
Subject: [PATCH 25/50] Added docs for SET and SHOW CONFIG query (#1323)
Resolved #1312 partially, limited to the SQL queries themselves
---
docs/_toc.yml | 2 ++
docs/source/reference/evaql/set_config.rst | 11 +++++++++++
docs/source/reference/evaql/show_config.rst | 11 +++++++++++
3 files changed, 24 insertions(+)
create mode 100644 docs/source/reference/evaql/set_config.rst
create mode 100644 docs/source/reference/evaql/show_config.rst
diff --git a/docs/_toc.yml b/docs/_toc.yml
index 9fca93eac0..864bab2fc2 100644
--- a/docs/_toc.yml
+++ b/docs/_toc.yml
@@ -47,6 +47,8 @@ parts:
- file: source/reference/evaql/select
- file: source/reference/evaql/explain
- file: source/reference/evaql/show_functions
+ - file: source/reference/evaql/show_config
+ - file: source/reference/evaql/set_config
- file: source/reference/evaql/create_database
- file: source/reference/evaql/create_function
- file: source/reference/evaql/create_index
diff --git a/docs/source/reference/evaql/set_config.rst b/docs/source/reference/evaql/set_config.rst
new file mode 100644
index 0000000000..599fe0fc04
--- /dev/null
+++ b/docs/source/reference/evaql/set_config.rst
@@ -0,0 +1,11 @@
+SET CONFIG
+==============
+
+.. _set_config:
+
+Sets the value of a configuration parameter to the passed value. Both `TO` and `=` are valid assignment operators.
+
+.. code:: sql
+
+ SET OPENAI_KEY TO "abc";
+ SET OPENAI_KEY = "abc";
\ No newline at end of file
diff --git a/docs/source/reference/evaql/show_config.rst b/docs/source/reference/evaql/show_config.rst
new file mode 100644
index 0000000000..2991f4c28e
--- /dev/null
+++ b/docs/source/reference/evaql/show_config.rst
@@ -0,0 +1,11 @@
+SHOW CONFIG
+==============
+
+.. _show_config:
+
+Returns the value of a specified configuration parameter.
+
+.. code:: sql
+
+ SHOW ;
+ SHOW OPENAI_KEY;
From 9a206b878fd764f59084cbdc310a3b6045f8fc0d Mon Sep 17 00:00:00 2001
From: nidhi
Date: Fri, 27 Oct 2023 21:47:56 -0400
Subject: [PATCH 26/50] REST API Documentation (#1321)
---
docs/_toc.yml | 3 +++
docs/source/reference/rest_api.rst | 41 ++++++++++++++++++++++++++++++
2 files changed, 44 insertions(+)
create mode 100644 docs/source/reference/rest_api.rst
diff --git a/docs/_toc.yml b/docs/_toc.yml
index 864bab2fc2..5f6eb65016 100644
--- a/docs/_toc.yml
+++ b/docs/_toc.yml
@@ -63,6 +63,9 @@ parts:
- file: source/reference/api
title: Python API
+
+ - file: source/reference/rest_api
+ title: REST API
- file: source/reference/databases/index
title: Data Sources
diff --git a/docs/source/reference/rest_api.rst b/docs/source/reference/rest_api.rst
new file mode 100644
index 0000000000..a149f52147
--- /dev/null
+++ b/docs/source/reference/rest_api.rst
@@ -0,0 +1,41 @@
+.. _rest_api:
+
+REST API Usage
+======================
+To start the EvaDB server, run the following command:
+
+.. code-block:: python
+
+ cd evadb/apps/rest
+ python run_evadb.py
+
+Now that the server is setup, we can access EvaDB through REST APIs using two endpoints shown below:
+
+Query API
+
+Here's an example to run a QUERY locally using the API in python.
+
+.. code-block:: python
+
+ import requests
+ query_url = "http://127.0.0.1:5000/query"
+ response = requests.post(query_url, {'query':'Select * from data;'})
+ print(response.json())
+
+Upload API
+
+1️⃣ Users can upload any files of type {'txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif', 'mp3'} to the EVA DB server.
+Here's an example to upload a local file using the API in python.
+
+.. code-block:: python
+
+ import requests
+ query_url = "http://127.0.0.1:5000/upload"
+ myfiles = {'file': open('' ,'rb')}
+ response = requests.post(load_url, files = myfiles)
+ print(response.json())
+
+2️⃣ Users can also paste the above url in the browser, and the user can upload the document through "upload" button.
+
+3️⃣ The files are stored in the file section which can then be accessed through the query API using the LOAD query.
+
From fae70018faac83d98470194fe598d7d158762f2f Mon Sep 17 00:00:00 2001
From: Chitti Ankith
Date: Sat, 28 Oct 2023 07:28:31 -0400
Subject: [PATCH 27/50] String Helper functions in EvaDB (#1322)
Added some string helper functions that were missing based on student
feedback. This PR adds support for UPPER, LOWER and CONCAT.
Queries of the form are now supported:
`SELECT CONCAT(UPPER(col1), LOWER(col2), "SOME_SUFFIX") FROM TABLE1`
---
evadb/functions/function_bootstrap_queries.py | 27 +++++
evadb/functions/helpers/concat.py | 38 ++++++
evadb/functions/helpers/lower.py | 38 ++++++
evadb/functions/helpers/upper.py | 38 ++++++
.../helpers/test_str_helper_functions.py | 108 ++++++++++++++++++
5 files changed, 249 insertions(+)
create mode 100644 evadb/functions/helpers/concat.py
create mode 100644 evadb/functions/helpers/lower.py
create mode 100644 evadb/functions/helpers/upper.py
create mode 100644 test/integration_tests/long/functions/helpers/test_str_helper_functions.py
diff --git a/evadb/functions/function_bootstrap_queries.py b/evadb/functions/function_bootstrap_queries.py
index 0bf7c4ed90..f8186d4dd3 100644
--- a/evadb/functions/function_bootstrap_queries.py
+++ b/evadb/functions/function_bootstrap_queries.py
@@ -214,6 +214,30 @@
EvaDB_INSTALLATION_DIR
)
+Upper_function_query = """CREATE FUNCTION IF NOT EXISTS UPPER
+ INPUT (input ANYTYPE)
+ OUTPUT (output NDARRAY STR(ANYDIM))
+ IMPL '{}/functions/helpers/upper.py';
+ """.format(
+ EvaDB_INSTALLATION_DIR
+)
+
+Lower_function_query = """CREATE FUNCTION IF NOT EXISTS LOWER
+ INPUT (input ANYTYPE)
+ OUTPUT (output NDARRAY STR(ANYDIM))
+ IMPL '{}/functions/helpers/lower.py';
+ """.format(
+ EvaDB_INSTALLATION_DIR
+)
+
+Concat_function_query = """CREATE FUNCTION IF NOT EXISTS CONCAT
+ INPUT (input ANYTYPE)
+ OUTPUT (output NDARRAY STR(ANYDIM))
+ IMPL '{}/functions/helpers/concat.py';
+ """.format(
+ EvaDB_INSTALLATION_DIR
+)
+
def init_builtin_functions(db: EvaDBDatabase, mode: str = "debug") -> None:
"""Load the built-in functions into the system during system bootstrapping.
@@ -261,6 +285,9 @@ def init_builtin_functions(db: EvaDBDatabase, mode: str = "debug") -> None:
Yolo_function_query,
stablediffusion_function_query,
dalle_function_query,
+ Upper_function_query,
+ Lower_function_query,
+ Concat_function_query,
]
# if mode is 'debug', add debug functions
diff --git a/evadb/functions/helpers/concat.py b/evadb/functions/helpers/concat.py
new file mode 100644
index 0000000000..7fdfcc5f2c
--- /dev/null
+++ b/evadb/functions/helpers/concat.py
@@ -0,0 +1,38 @@
+# coding=utf-8
+# Copyright 2018-2023 EvaDB
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+import pandas as pd
+
+from evadb.functions.abstract.abstract_function import AbstractFunction
+
+
+class Concat(AbstractFunction):
+ def setup(self):
+ pass
+
+ @property
+ def name(self):
+ return "CONCAT"
+
+ def forward(self, df: pd.DataFrame) -> pd.DataFrame:
+ """
+ Concats all the df values into one.
+
+ Returns:
+ ret (pd.DataFrame): Concatenated string.
+ """
+
+ ret = pd.DataFrame()
+ ret["output"] = pd.Series(df.fillna("").values.tolist()).str.join("")
+ return ret
diff --git a/evadb/functions/helpers/lower.py b/evadb/functions/helpers/lower.py
new file mode 100644
index 0000000000..d8aced28e1
--- /dev/null
+++ b/evadb/functions/helpers/lower.py
@@ -0,0 +1,38 @@
+# coding=utf-8
+# Copyright 2018-2023 EvaDB
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+import pandas as pd
+
+from evadb.functions.abstract.abstract_function import AbstractFunction
+
+
+class Lower(AbstractFunction):
+ def setup(self):
+ pass
+
+ @property
+ def name(self):
+ return "LOWER"
+
+ def forward(self, df: pd.DataFrame) -> pd.DataFrame:
+ """
+ Converts the string to Lower Case.
+
+ Returns:
+ ret (pd.DataFrame): String converted to Lower Case.
+ """
+
+ ret = pd.DataFrame()
+ ret["output"] = df.map(lambda s: s.lower() if type(s) is str else s)
+ return ret
diff --git a/evadb/functions/helpers/upper.py b/evadb/functions/helpers/upper.py
new file mode 100644
index 0000000000..e1d3a7e5c4
--- /dev/null
+++ b/evadb/functions/helpers/upper.py
@@ -0,0 +1,38 @@
+# coding=utf-8
+# Copyright 2018-2023 EvaDB
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+import pandas as pd
+
+from evadb.functions.abstract.abstract_function import AbstractFunction
+
+
+class Upper(AbstractFunction):
+ def setup(self):
+ pass
+
+ @property
+ def name(self):
+ return "UPPER"
+
+ def forward(self, df: pd.DataFrame) -> pd.DataFrame:
+ """
+ Converts the string to Uppercase.
+
+ Returns:
+ ret (pd.DataFrame): String converted to Upper Case.
+ """
+
+ ret = pd.DataFrame()
+ ret["output"] = df.map(lambda s: s.upper() if type(s) is str else s)
+ return ret
diff --git a/test/integration_tests/long/functions/helpers/test_str_helper_functions.py b/test/integration_tests/long/functions/helpers/test_str_helper_functions.py
new file mode 100644
index 0000000000..3f5a499792
--- /dev/null
+++ b/test/integration_tests/long/functions/helpers/test_str_helper_functions.py
@@ -0,0 +1,108 @@
+# coding=utf-8
+# Copyright 2018-2023 EvaDB
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+from test.util import get_evadb_for_testing
+
+from evadb.server.command_handler import execute_query_fetch_all
+
+
+class StrHelperTest(unittest.TestCase):
+ def setUp(self) -> None:
+ self.evadb = get_evadb_for_testing()
+ self.evadb.catalog().reset()
+ create_table_query = """CREATE TABLE IF NOT EXISTS Test (
+ input TEXT);
+ """
+ execute_query_fetch_all(self.evadb, create_table_query)
+
+ test_prompts = ["EvaDB"]
+
+ for prompt in test_prompts:
+ insert_query = f"""INSERT INTO Test (input) VALUES ('{prompt}')"""
+ execute_query_fetch_all(self.evadb, insert_query)
+
+ def tearDown(self) -> None:
+ execute_query_fetch_all(self.evadb, "DROP TABLE IF EXISTS Test;")
+
+ def test_upper_function(self):
+ function_name = "UPPER"
+ execute_query_fetch_all(self.evadb, f"DROP FUNCTION IF EXISTS {function_name};")
+ create_function_query = f"""CREATE FUNCTION IF NOT EXISTS {function_name}
+ INPUT (inp ANYTYPE)
+ OUTPUT (output NDARRAY STR(ANYDIM))
+ TYPE HelperFunction
+ IMPL 'evadb/functions/helpers/upper.py';
+ """
+ execute_query_fetch_all(self.evadb, create_function_query)
+ query = "SELECT UPPER(input) FROM Test;"
+ output_batch = execute_query_fetch_all(self.evadb, query)
+ self.assertEqual(len(output_batch), 1)
+ self.assertEqual(output_batch.frames["upper.output"][0], "EVADB")
+
+ query = "SELECT UPPER('test5')"
+ output_batch = execute_query_fetch_all(self.evadb, query)
+ self.assertEqual(len(output_batch), 1)
+ self.assertEqual(output_batch.frames["upper.output"][0], "TEST5")
+
+ def test_lower_function(self):
+ function_name = "LOWER"
+ execute_query_fetch_all(self.evadb, f"DROP FUNCTION IF EXISTS {function_name};")
+ create_function_query = f"""CREATE FUNCTION IF NOT EXISTS {function_name}
+ INPUT (inp ANYTYPE)
+ OUTPUT (output NDARRAY STR(ANYDIM))
+ TYPE HelperFunction
+ IMPL 'evadb/functions/helpers/lower.py';
+ """
+ execute_query_fetch_all(self.evadb, create_function_query)
+ query = "SELECT LOWER(input) FROM Test;"
+ output_batch = execute_query_fetch_all(self.evadb, query)
+ self.assertEqual(len(output_batch), 1)
+ self.assertEqual(output_batch.frames["lower.output"][0], "evadb")
+
+ query = "SELECT LOWER('TEST5')"
+ output_batch = execute_query_fetch_all(self.evadb, query)
+ self.assertEqual(len(output_batch), 1)
+ self.assertEqual(output_batch.frames["lower.output"][0], "test5")
+
+ def test_concat_function(self):
+ function_name = "CONCAT"
+ execute_query_fetch_all(self.evadb, f"DROP FUNCTION IF EXISTS {function_name};")
+ create_function_query = f"""CREATE FUNCTION IF NOT EXISTS {function_name}
+ INPUT (inp ANYTYPE)
+ OUTPUT (output NDARRAY STR(ANYDIM))
+ TYPE HelperFunction
+ IMPL 'evadb/functions/helpers/concat.py';
+ """
+ execute_query_fetch_all(self.evadb, create_function_query)
+
+ execute_query_fetch_all(self.evadb, "DROP FUNCTION IF EXISTS UPPER;")
+ create_function_query = """CREATE FUNCTION IF NOT EXISTS UPPER
+ INPUT (inp ANYTYPE)
+ OUTPUT (output NDARRAY STR(ANYDIM))
+ TYPE HelperFunction
+ IMPL 'evadb/functions/helpers/upper.py';
+ """
+
+ execute_query_fetch_all(self.evadb, create_function_query)
+ query = "SELECT CONCAT(UPPER('Eva'), 'DB');"
+ output_batch = execute_query_fetch_all(self.evadb, query)
+ self.assertEqual(len(output_batch), 1)
+ self.assertEqual(output_batch.frames["concat.output"][0], "EVADB")
+
+ query = "SELECT CONCAT(input, '.com') FROM Test;"
+ output_batch = execute_query_fetch_all(self.evadb, query)
+ self.assertEqual(len(output_batch), 1)
+ self.assertEqual(output_batch.frames["concat.output"][0], "EvaDB.com")
From 679b19350f2e49b5645995ed8c34950f84b56be2 Mon Sep 17 00:00:00 2001
From: Andy Xu
Date: Sat, 28 Oct 2023 18:31:43 -0400
Subject: [PATCH 28/50] Skip 19-employee-classification-prediction.ipynb
---
script/test/test.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/script/test/test.sh b/script/test/test.sh
index 5b0f7c7eec..ae67efb62c 100644
--- a/script/test/test.sh
+++ b/script/test/test.sh
@@ -94,7 +94,7 @@ long_integration_test() {
}
notebook_test() {
- PYTHONPATH=./ python -m pytest --durations=5 --nbmake --overwrite "./tutorials" --capture=sys --tb=short -v --log-level=WARNING --nbmake-timeout=3000 --ignore="tutorials/08-chatgpt.ipynb" --ignore="tutorials/14-food-review-tone-analysis-and-response.ipynb" --ignore="tutorials/15-AI-powered-join.ipynb" --ignore="tutorials/16-homesale-forecasting.ipynb" --ignore="tutorials/17-home-rental-prediction.ipynb" --ignore="tutorials/18-stable-diffusion.ipynb"
+ PYTHONPATH=./ python -m pytest --durations=5 --nbmake --overwrite "./tutorials" --capture=sys --tb=short -v --log-level=WARNING --nbmake-timeout=3000 --ignore="tutorials/08-chatgpt.ipynb" --ignore="tutorials/14-food-review-tone-analysis-and-response.ipynb" --ignore="tutorials/15-AI-powered-join.ipynb" --ignore="tutorials/16-homesale-forecasting.ipynb" --ignore="tutorials/17-home-rental-prediction.ipynb" --ignore="tutorials/18-stable-diffusion.ipynb" --ignore="tutorials/19-employee-classification-prediction.ipynb"
code=$?
print_error_code $code "NOTEBOOK TEST"
}
From dc77d650e0c4380bd428a7191fe12b707de9c172 Mon Sep 17 00:00:00 2001
From: Andy Xu
Date: Sat, 28 Oct 2023 18:43:16 -0400
Subject: [PATCH 29/50] Add data sources to README
---
README.md | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index b5642fc57e..036a3116cf 100644
--- a/README.md
+++ b/README.md
@@ -71,7 +71,21 @@
|
EvaDB enables software developers to build AI apps in a few lines of code. Its powerful SQL API simplifies AI app development for both structured and unstructured data. EvaDB's benefits include:
-- 🔮 Easy to connect EvaDB with your SQL database system and build AI-powered apps with SQL queries
+
+ 🔮 Easy to connect EvaDB with your data sources , such as PostgreSQL, S3, and Github, and build AI-powered apps with SQL queries
+- Structured Data Sources
+ - PostgreSQL
+ - SQLite
+ - MySQL
+ - MariaDB
+ - Clickhouse
+ - Snowflake
+- Unstructured Data Sources
+ - Local disk
+ - S3 bucket
+- Application Data Sources
+ - Github
+
- 🤝 Query your data with a pre-trained AI model from Hugging Face, OpenAI, YOLO, PyTorch, and other AI frameworks
- ⚡️ Faster queries thanks to AI-centric query optimization
- 💰 Save money spent on running models by efficient CPU/GPU use
From 51bc222f7369d6e0d4ec2c38947faef68f539c85 Mon Sep 17 00:00:00 2001
From: Andy Xu
Date: Sat, 28 Oct 2023 18:44:12 -0400
Subject: [PATCH 30/50] Fix list
---
README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/README.md b/README.md
index 036a3116cf..725dc27417 100644
--- a/README.md
+++ b/README.md
@@ -73,6 +73,7 @@
EvaDB enables software developers to build AI apps in a few lines of code. Its powerful SQL API simplifies AI app development for both structured and unstructured data. EvaDB's benefits include:
🔮 Easy to connect EvaDB with your data sources , such as PostgreSQL, S3, and Github, and build AI-powered apps with SQL queries
+
- Structured Data Sources
- PostgreSQL
- SQLite
@@ -86,6 +87,7 @@ EvaDB enables software developers to build AI apps in a few lines of code. Its p
- Application Data Sources
- Github
+
- 🤝 Query your data with a pre-trained AI model from Hugging Face, OpenAI, YOLO, PyTorch, and other AI frameworks
- ⚡️ Faster queries thanks to AI-centric query optimization
- 💰 Save money spent on running models by efficient CPU/GPU use
From fd92bba1e877db1d029406faeaed6d59ec3048e2 Mon Sep 17 00:00:00 2001
From: Andy Xu
Date: Sat, 28 Oct 2023 18:50:06 -0400
Subject: [PATCH 31/50] Use table for side by side display
---
README.md | 46 ++++++++++++++++++++++++++++++++--------------
1 file changed, 32 insertions(+), 14 deletions(-)
diff --git a/README.md b/README.md
index 725dc27417..50c1d3f1ba 100644
--- a/README.md
+++ b/README.md
@@ -72,20 +72,38 @@
EvaDB enables software developers to build AI apps in a few lines of code. Its powerful SQL API simplifies AI app development for both structured and unstructured data. EvaDB's benefits include:
- 🔮 Easy to connect EvaDB with your data sources , such as PostgreSQL, S3, and Github, and build AI-powered apps with SQL queries
-
-- Structured Data Sources
- - PostgreSQL
- - SQLite
- - MySQL
- - MariaDB
- - Clickhouse
- - Snowflake
-- Unstructured Data Sources
- - Local disk
- - S3 bucket
-- Application Data Sources
- - Github
+ 🔮 Easy to connect EvaDB with your data sources , such as PostgreSQL, S3, and Github, and build AI-powered apps with SQL queries
+
+
+
+Structured Data Sources
+Unstructured Data Sources
+Application Data Sources
+
+
+
+
+- PostgreSQL
+- SQLite
+- MySQL
+- MariaDB
+- Clickhouse
+- Snowflake
+
+
+
+
+- Local disk
+- S3 bucket
+
+
+
+
+- Github
+
+
+
+
- 🤝 Query your data with a pre-trained AI model from Hugging Face, OpenAI, YOLO, PyTorch, and other AI frameworks
From ed7809ec5e27caab696155b9be4ea88cebd63255 Mon Sep 17 00:00:00 2001
From: Andy Xu
Date: Sat, 28 Oct 2023 18:53:41 -0400
Subject: [PATCH 32/50] Add link to make it looks better
---
README.md | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 50c1d3f1ba..7dbab46e6d 100644
--- a/README.md
+++ b/README.md
@@ -73,7 +73,7 @@
EvaDB enables software developers to build AI apps in a few lines of code. Its powerful SQL API simplifies AI app development for both structured and unstructured data. EvaDB's benefits include:
🔮 Easy to connect EvaDB with your data sources , such as PostgreSQL, S3, and Github, and build AI-powered apps with SQL queries
-
+
Structured Data Sources
@@ -104,6 +104,9 @@ EvaDB enables software developers to build AI apps in a few lines of code. Its p
+
+Check more details on each supported data sources at [Data Sources documentation page](https://evadb.readthedocs.io/en/latest/source/reference/databases/index.html).
+
- 🤝 Query your data with a pre-trained AI model from Hugging Face, OpenAI, YOLO, PyTorch, and other AI frameworks
From 40de5312f28fb3ee6c47733e89ed038719cd335c Mon Sep 17 00:00:00 2001
From: Andy Xu
Date: Sat, 28 Oct 2023 19:03:27 -0400
Subject: [PATCH 33/50] Add all models supported
---
README.md | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 50 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 7dbab46e6d..13de641908 100644
--- a/README.md
+++ b/README.md
@@ -109,7 +109,56 @@ Check more details on each supported data sources at [Data Sources documentation
-- 🤝 Query your data with a pre-trained AI model from Hugging Face, OpenAI, YOLO, PyTorch, and other AI frameworks
+
+ 🤝 Query your data with a pre-trained AI model from Hugging Face, OpenAI, YOLO, and Stable Diffusion.
+
+
+
+Hugging Face
+OpenAI
+YOLO
+
+
+
+
+- Audio Classification
+- Automatic Speech Recognition
+- Text Classification
+- Summarization
+- Text2Text Generation
+- Text Generation
+- Image Classification
+- Image Segmentation
+- Image-to-Text
+- Object Detection
+- Depth Estimation
+
+
+
+
+- gpt-4
+- gpt-4-0314
+- gpt-4-32k
+- gpt-4-32k-0314
+- gpt-3.5-turbo
+- gpt-3.5-turbo-0301
+
+
+
+
+- yolov8n.pt
+- yolov8s.pt
+- yolov8m.pt
+- yolov8l.pt
+- yolov8x.pt
+
+
+
+
+
+Check more details on each supported model at [AI Engines documentation page](https://evadb.readthedocs.io/en/latest/source/reference/ai/index.html)
+
+
- ⚡️ Faster queries thanks to AI-centric query optimization
- 💰 Save money spent on running models by efficient CPU/GPU use
- 🔧 Fine-tune your AI models to achieve better results
From f8c9c5f22bfbe3f7a53ccfa36c3f4e95b7c410e7 Mon Sep 17 00:00:00 2001
From: Andy Xu
Date: Sat, 28 Oct 2023 19:04:23 -0400
Subject: [PATCH 34/50] Add etc
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 13de641908..411658b5fe 100644
--- a/README.md
+++ b/README.md
@@ -110,7 +110,7 @@ Check more details on each supported data sources at [Data Sources documentation
- 🤝 Query your data with a pre-trained AI model from Hugging Face, OpenAI, YOLO, and Stable Diffusion.
+ 🤝 Query your data with a pre-trained AI model from Hugging Face, OpenAI, YOLO, Stable Diffusion, and etc.
From 339e7e087e2f9f3774cb9650e3fc31942106a9a8 Mon Sep 17 00:00:00 2001
From: Andy Xu
Date: Sat, 28 Oct 2023 19:05:11 -0400
Subject: [PATCH 35/50] Add link
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 411658b5fe..ebb9056aed 100644
--- a/README.md
+++ b/README.md
@@ -110,7 +110,7 @@ Check more details on each supported data sources at [Data Sources documentation
- 🤝 Query your data with a pre-trained AI model from Hugging Face, OpenAI, YOLO, Stable Diffusion, and etc.
+ 🤝 Query your data with a pre-trained AI model from Hugging Face, OpenAI, YOLO, Stable Diffusion, and etc.
From 4ca964e0b1ee26081cc3e9de00825ef280f9d856 Mon Sep 17 00:00:00 2001
From: Andy Xu
Date: Sat, 28 Oct 2023 19:13:58 -0400
Subject: [PATCH 36/50] Add details on optimization
---
README.md | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index ebb9056aed..489e412203 100644
--- a/README.md
+++ b/README.md
@@ -72,7 +72,7 @@
EvaDB enables software developers to build AI apps in a few lines of code. Its powerful SQL API simplifies AI app development for both structured and unstructured data. EvaDB's benefits include:
- 🔮 Easy to connect EvaDB with your data sources , such as PostgreSQL, S3, and Github, and build AI-powered apps with SQL queries
+ 🔮 Easy to connect EvaDB with your data sources , such as PostgreSQL, S3, and Github, and build AI-powered apps with SQL queries.
@@ -159,8 +159,15 @@ Check more details on each supported data sources at [Data Sources documentation
Check more details on each supported model at [AI Engines documentation page](https://evadb.readthedocs.io/en/latest/source/reference/ai/index.html)
-- ⚡️ Faster queries thanks to AI-centric query optimization
-- 💰 Save money spent on running models by efficient CPU/GPU use
+
+ ⚡️ Faster queries thanks to AI-centric query optimization such as caching, batching, and parallel processing.
+
+- Function Result Caching to reuse the results from expensive AI function invocations.
+- LLM Batching to reduce the token usage and dollar spent.
+- Parallel Query Processing to 💰 save money and time spent on running models by efficient CPU/GPU use.
+- Query Predicate Reordering and Pushdown.
+
+
- 🔧 Fine-tune your AI models to achieve better results
👋 Hey! If you're excited about our vision of bringing AI inside database systems, show some ❤️ by:
From c57e36e1897b332e31a2ea015741f12ad384c3c4 Mon Sep 17 00:00:00 2001
From: Andy Xu
Date: Sat, 28 Oct 2023 19:20:13 -0400
Subject: [PATCH 37/50] Add automl framework
---
README.md | 37 ++++++++++++++++++++++++++++++++++++-
1 file changed, 36 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 489e412203..5df77f1b1c 100644
--- a/README.md
+++ b/README.md
@@ -159,6 +159,41 @@ Check more details on each supported data sources at [Data Sources documentation
Check more details on each supported model at [AI Engines documentation page](https://evadb.readthedocs.io/en/latest/source/reference/ai/index.html)
+
+ 🔧 Create and Fine-tune your AI models for regression, classification, and time series forecasting .
+
+
+
+Regression
+Classification
+Time Series Forecasting
+
+
+
+
+- Ludwig
+- Sklearn
+- Xgboost
+
+
+
+
+- Ludwig
+- Xboost
+
+
+
+
+- Statsforecast
+- Neuralforecast
+
+
+
+
+
+Check more details on each supported AutoML frameworks at [AI Engines documentation page](https://evadb.readthedocs.io/en/latest/source/reference/ai/index.html)
+
+
⚡️ Faster queries thanks to AI-centric query optimization such as caching, batching, and parallel processing.
@@ -168,7 +203,7 @@ Check more details on each supported model at [AI Engines documentation page](ht
- Query Predicate Reordering and Pushdown.
-- 🔧 Fine-tune your AI models to achieve better results
+
👋 Hey! If you're excited about our vision of bringing AI inside database systems, show some ❤️ by:
From affa3cfed832d60508aed5df9f000890196cdecd Mon Sep 17 00:00:00 2001
From: Andy Xu
Date: Sat, 28 Oct 2023 19:22:26 -0400
Subject: [PATCH 38/50] Move around links
---
README.md | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index 5df77f1b1c..7eaf59143a 100644
--- a/README.md
+++ b/README.md
@@ -160,7 +160,7 @@ Check more details on each supported model at [AI Engines documentation page](ht
- 🔧 Create and Fine-tune your AI models for regression, classification, and time series forecasting .
+ 🔧 Create and Fine-tune your AI models for regression, classification, and time series forecasting.
@@ -191,17 +191,19 @@ Check more details on each supported model at [AI Engines documentation page](ht
-Check more details on each supported AutoML frameworks at [AI Engines documentation page](https://evadb.readthedocs.io/en/latest/source/reference/ai/index.html)
+Check more details on each supported AutoML frameworks at [AI Engines documentation page](https://evadb.readthedocs.io/en/latest/source/reference/ai/index.html).
- ⚡️ Faster queries thanks to AI-centric query optimization such as caching, batching, and parallel processing.
+ ⚡️ Faster queries thanks to AI-centric query optimization such as caching, batching, and parallel processing.
- Function Result Caching to reuse the results from expensive AI function invocations.
- LLM Batching to reduce the token usage and dollar spent.
- Parallel Query Processing to 💰 save money and time spent on running models by efficient CPU/GPU use.
- Query Predicate Reordering and Pushdown.
+Check more details on optimizations in EvaDB at [Optimization documentation page](https://evadb.readthedocs.io/en/latest/source/reference/optimizations.html).
+
From 8dc92836e960e26cfa8e087497f60ab081ac9243 Mon Sep 17 00:00:00 2001
From: Joy Arulraj
Date: Sun, 29 Oct 2023 23:20:13 -0400
Subject: [PATCH 39/50] checkpoint
---
docs/source/overview/ai-queries.rst | 2 +-
docs/source/overview/roadmap.rst | 66 +++++++++---------
.../reference/ai/model-train-xgboost.rst | 2 +-
evadb/binder/function_expression_binder.py | 4 +-
evadb/binder/statement_binder_context.py | 4 +-
script/formatting/spelling.txt | 67 ++++++++++++++++++-
6 files changed, 102 insertions(+), 43 deletions(-)
diff --git a/docs/source/overview/ai-queries.rst b/docs/source/overview/ai-queries.rst
index 5a22268a8c..ec61286307 100644
--- a/docs/source/overview/ai-queries.rst
+++ b/docs/source/overview/ai-queries.rst
@@ -9,7 +9,7 @@ This page details how you can use AI models in different ways to construct AI qu
.. note::
- EvaDB ships with a wide range of built-in functions listed in the :ref:`models` page. If your desired AI model is not available, you can also bring your own AI function by referrring to the :ref:`custom_ai_function` page.
+ EvaDB ships with a wide range of built-in functions listed in the :ref:`models` page. If your desired AI model is not available, you can also bring your own AI function by referring to the :ref:`custom_ai_function` page.
SELECT Clause
-------------
diff --git a/docs/source/overview/roadmap.rst b/docs/source/overview/roadmap.rst
index 6069dad3af..84bd131605 100644
--- a/docs/source/overview/roadmap.rst
+++ b/docs/source/overview/roadmap.rst
@@ -1,60 +1,58 @@
Roadmap
=======
-The goal of this doc is to align core and community efforts for the project and to share what's the focus for the next 6 months.
+The goal of this roadmap is to align the efforts of the core EvaDB team and community contributors by describing the biggest focus areas for the next 6 months:
-What is the core EvaDB team working on right now?
---------------------------------------------------
-
-Our biggest priorities right now are improving the user experience of LLM data wrangling and classical AI tasks (e.g., regression, classification, and forecasting).
+.. note::
+ Please ping us on our `Slack`_ if you any questions or feedback on these focus areas.
-LLM data wrangling
-~~~~~~~~~~~~~~~~~~
+LLM-based Data Wrangling
+~~~~~~~~~~~~~~~~~~~~~~~~
-* Prompt Engineering: more flexibility of constructing prompt and better experience/feedback to tune the prompt.
-* LLM Cache: reuse the LLM calls based on the model, prompt, and input columns.
-* LLM Batch: intelligently group multiple LLM calls into one to reduce the cost and latency.
-* Cost Calculation and Estimation: show the cost (i.e., time, token usage, and dollars) of the query at the plan time and after execution.
+* Prompt Engineering: more flexibility of constructing prompt and better developer experience/feedback to tune the prompt.
+* LLM Cache: Reuse the results of LLM calls based on the model, prompt, and input columns.
+* LLM Batching: Intelligently group multiple LLM calls into a single call to reduce cost and latency.
+* LLM Cost Calculation and Estimation: Show the estimated cost metrics (i.e., time, token usage, and dollars) of the query at optimization time and the actual cost metrics after query execution.
-Classical AI tasks
+Classical AI Tasks
~~~~~~~~~~~~~~~~~~
-* Accuracy: show the accuracy of the training.
-* Configuration guidance: provide guidance and suggestion on how to configure the AutoML framework (e.g., which frequency to use for forcasting).
-* Cost calculation and estimation: show the cost (i.e., time) of the query the plan time and after exectuion.
-* Path to Scale: improve the processing pipeline for large datasets.
-
-What areas are great for community contributions?
---------------------------------------------------
+* Accuracy: Show the accuracy of the training loop.
+* Configuration Guidance: Provide guidance on how to configure the AutoML framework (e.g., which frequency to use for forecasting).
+* Task Cost calculation and Estimation: Show the estimated cost metrics (i.e., time) of the query at optimization time and the actual cost metrics after execution.
+* Path to Scalability: Improve the efficiency of the query processing pipeline for large datasets.
-.. note::
- If you are unsure about your idea, feel free to chat with us in the **#community** channel in our `Slack `_.
We are looking forward to expand our integrations including data sources and AI functions, where we can use them with the rest of the ecosystem of EvaDB.
-Example Data Sources
-~~~~~~~~~~~~~~~~~~~~
+More Application Data Sources
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+`GitHub `_ is an **application data source** already available in EvaDB. Such data sources allow the developer to quickly build AI applications without focusing on extracting, loading, and transforming data from the application.
-`GitHub `_ is one application data sources we have added in EvaDB. These application data sources help the user to develop AI applications without the needs of extracting, loading, and transforming data. Example application data sources that are not in EvaDB yet, but we think can boost the AI applications, include (but not limited to) the following:
+Data sources that are not available in EvaDB yet, but would be super relevant for emerging AI applications, include (but not limited to) the following applications:
* YouTube
* Google Search
* Reddit
* arXiv
+* Hacker News
+
+When adding a data source to EvaDB, please add a documentation page in your PR explaining the usage. Here is an `illustrative documentation page `_ for the GitHub data source in EvaDB.
+
+More AI functions
+~~~~~~~~~~~~~~~~~
-When adding a data source to EvaDB, we do expect a documentation page to explain the usage. This is an `example documentation page `_ for the GitHub integration.
+Adding more AI functions in EvaDB will enable more choices for app developers while building AI applications.
-Example AI functions
-~~~~~~~~~~~~~~~~~~~~
+`Stable Diffusion `_ is an illustrative AI function in EvaDB that generates an image given a text prompt.
-Adding more AI functions in EvaDB can give users more choices and possibilities for developing AI applications.
-`Stable Diffusion `_ is an example AI function in EvaDB that generates an image given a prompt.
-Example AI functions that are not in EvaDB yet, but we think can boost the AI applications, include (but not limited to) the following:
+AI functions that are not available in EvaDB yet, but would be super relevant for emerging AI applications, include (but not limited to) the following:
-* Sklearn (besides the linear regression)
+* Sklearn (beyond linear regression)
* OCR (PyTesseract)
-* AWS Rekognition service
+* AWS Rekognition service
-When adding a AI function to EvaDB, we do expect a documentation page to explain the usage. This is an `example documetation page `_ for Stable Diffusion. Optionally, but highly recommended is also to have a notebook to showcase the use cases.
-Example `notebook `_ for Stable Diffusion.
+When adding an AI function to EvaDB, please add a documentation page in your PR explaining the usage. Here is an `illustrative documentation page `_ for Stable Diffusion.
+Notebooks are also super helpful to showcase use-cases! Here is an illustrative `notebook `_ on using Stable Diffusion in EvaDB queries.
diff --git a/docs/source/reference/ai/model-train-xgboost.rst b/docs/source/reference/ai/model-train-xgboost.rst
index 4f2c18ddde..152dfe07da 100644
--- a/docs/source/reference/ai/model-train-xgboost.rst
+++ b/docs/source/reference/ai/model-train-xgboost.rst
@@ -23,7 +23,7 @@ To use the `Flaml XGBoost AutoML framework
Date: Sun, 29 Oct 2023 23:24:57 -0400
Subject: [PATCH 40/50] checkpoint
---
docs/source/overview/roadmap.rst | 25 +++++++++++--------------
1 file changed, 11 insertions(+), 14 deletions(-)
diff --git a/docs/source/overview/roadmap.rst b/docs/source/overview/roadmap.rst
index 84bd131605..a72dedd8fc 100644
--- a/docs/source/overview/roadmap.rst
+++ b/docs/source/overview/roadmap.rst
@@ -4,10 +4,10 @@ Roadmap
The goal of this roadmap is to align the efforts of the core EvaDB team and community contributors by describing the biggest focus areas for the next 6 months:
.. note::
- Please ping us on our `Slack`_ if you any questions or feedback on these focus areas.
+ Please ping us on our `Slack `_ if you any questions or feedback on these focus areas.
LLM-based Data Wrangling
-~~~~~~~~~~~~~~~~~~~~~~~~
+------------------------
* Prompt Engineering: more flexibility of constructing prompt and better developer experience/feedback to tune the prompt.
* LLM Cache: Reuse the results of LLM calls based on the model, prompt, and input columns.
@@ -15,20 +15,19 @@ LLM-based Data Wrangling
* LLM Cost Calculation and Estimation: Show the estimated cost metrics (i.e., time, token usage, and dollars) of the query at optimization time and the actual cost metrics after query execution.
Classical AI Tasks
-~~~~~~~~~~~~~~~~~~
+------------------
+
* Accuracy: Show the accuracy of the training loop.
* Configuration Guidance: Provide guidance on how to configure the AutoML framework (e.g., which frequency to use for forecasting).
* Task Cost calculation and Estimation: Show the estimated cost metrics (i.e., time) of the query at optimization time and the actual cost metrics after execution.
* Path to Scalability: Improve the efficiency of the query processing pipeline for large datasets.
-
-We are looking forward to expand our integrations including data sources and AI functions, where we can use them with the rest of the ecosystem of EvaDB.
-
More Application Data Sources
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-----------------------------
-`GitHub `_ is an **application data source** already available in EvaDB. Such data sources allow the developer to quickly build AI applications without focusing on extracting, loading, and transforming data from the application.
+
+`GitHub `_ is an application data source already available in EvaDB. Such data sources allow the developer to quickly build AI applications without focusing on extracting, loading, and transforming data from the application.
Data sources that are not available in EvaDB yet, but would be super relevant for emerging AI applications, include (but not limited to) the following applications:
@@ -38,14 +37,12 @@ Data sources that are not available in EvaDB yet, but would be super relevant fo
* arXiv
* Hacker News
-When adding a data source to EvaDB, please add a documentation page in your PR explaining the usage. Here is an `illustrative documentation page `_ for the GitHub data source in EvaDB.
+When adding a data source to EvaDB, please add a documentation page in your PR explaining the usage. Here is the `illustrative documentation page `_ for the GitHub data source in EvaDB.
More AI functions
-~~~~~~~~~~~~~~~~~
-
-Adding more AI functions in EvaDB will enable more choices for app developers while building AI applications.
+-----------------
-`Stable Diffusion `_ is an illustrative AI function in EvaDB that generates an image given a text prompt.
+Adding more AI functions in EvaDB will accelerate AI app development using EvaDB. `Stable Diffusion `_ is an illustrative AI function in EvaDB that generates an image given a text prompt.
AI functions that are not available in EvaDB yet, but would be super relevant for emerging AI applications, include (but not limited to) the following:
@@ -53,6 +50,6 @@ AI functions that are not available in EvaDB yet, but would be super relevant fo
* OCR (PyTesseract)
* AWS Rekognition service
-When adding an AI function to EvaDB, please add a documentation page in your PR explaining the usage. Here is an `illustrative documentation page `_ for Stable Diffusion.
+When adding an AI function to EvaDB, please add a documentation page in your PR explaining the usage. Here is the `documentation page `_ for Stable Diffusion.
Notebooks are also super helpful to showcase use-cases! Here is an illustrative `notebook `_ on using Stable Diffusion in EvaDB queries.
From 1c58afe6a694242ae4b8507286546286146477d8 Mon Sep 17 00:00:00 2001
From: Joy Arulraj
Date: Sun, 29 Oct 2023 23:37:27 -0400
Subject: [PATCH 41/50] docs: Update README.md
---
README.md | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/README.md b/README.md
index 7eaf59143a..01f81933ba 100644
--- a/README.md
+++ b/README.md
@@ -72,7 +72,7 @@
EvaDB enables software developers to build AI apps in a few lines of code. Its powerful SQL API simplifies AI app development for both structured and unstructured data. EvaDB's benefits include:
- 🔮 Easy to connect EvaDB with your data sources , such as PostgreSQL, S3, and Github, and build AI-powered apps with SQL queries.
+ 🔮 Easy to connect the EvaDB query engine with your data sources , such as PostgreSQL or S3 buckets, and build AI-powered apps with SQL queries.
@@ -93,8 +93,8 @@ EvaDB enables software developers to build AI apps in a few lines of code. Its p
-- Local disk
-- S3 bucket
+- Local filesystem
+- AWS S3 bucket
@@ -105,12 +105,12 @@ EvaDB enables software developers to build AI apps in a few lines of code. Its p
-Check more details on each supported data sources at [Data Sources documentation page](https://evadb.readthedocs.io/en/latest/source/reference/databases/index.html).
+More details on the supported data sources is [available here](https://evadb.readthedocs.io/en/latest/source/reference/databases/index.html).
- 🤝 Query your data with a pre-trained AI model from Hugging Face, OpenAI, YOLO, Stable Diffusion, and etc.
+ 🤝 Query your connected data with a pre-trained AI model from Hugging Face, OpenAI, YOLO, Stable Diffusion, etc.
@@ -156,11 +156,11 @@ Check more details on each supported data sources at [Data Sources documentation
-Check more details on each supported model at [AI Engines documentation page](https://evadb.readthedocs.io/en/latest/source/reference/ai/index.html)
+More details on the supported AI models is [available here](https://evadb.readthedocs.io/en/latest/source/reference/ai/index.html)
- 🔧 Create and Fine-tune your AI models for regression, classification, and time series forecasting.
+ 🔧 Create or fine-tune AI models for regression, classification, and time series forecasting.
@@ -191,19 +191,19 @@ Check more details on each supported model at [AI Engines documentation page](ht
-Check more details on each supported AutoML frameworks at [AI Engines documentation page](https://evadb.readthedocs.io/en/latest/source/reference/ai/index.html).
+More details on the supported AutoML frameworks is [available here](https://evadb.readthedocs.io/en/latest/source/reference/ai/index.html).
- ⚡️ Faster queries thanks to AI-centric query optimization such as caching, batching, and parallel processing.
-
-- Function Result Caching to reuse the results from expensive AI function invocations.
-- LLM Batching to reduce the token usage and dollar spent.
-- Parallel Query Processing to 💰 save money and time spent on running models by efficient CPU/GPU use.
-- Query Predicate Reordering and Pushdown.
-
-Check more details on optimizations in EvaDB at [Optimization documentation page](https://evadb.readthedocs.io/en/latest/source/reference/optimizations.html).
+ 💰 Faster AI queries thanks to AI-centric query optimizations such as caching, batching, and parallel processing.
+
+
+- Function result caching helps reuse results of expensive AI function calls.
+- LLM batching reduces token usage and dollars spent on LLM calls.
+- Parallel query processing saves money and time spent on running AI models by better utilizing CPUs and/or GPUs.
+- Query predicate re-ordering and predicate push-down accelerates queries over both structured and unstructured data.
+More details on the optimizations in EvaDB is [available here](https://evadb.readthedocs.io/en/latest/source/reference/optimizations.html).
From 52ff444456770d7a6bcfe610e8496021ac7f2360 Mon Sep 17 00:00:00 2001
From: Joy Arulraj
Date: Sun, 29 Oct 2023 23:42:14 -0400
Subject: [PATCH 42/50] docs: Update README.md
---
README.md | 12 ------------
1 file changed, 12 deletions(-)
diff --git a/README.md b/README.md
index 01f81933ba..e628e57b07 100644
--- a/README.md
+++ b/README.md
@@ -42,17 +42,6 @@
-Share EvaDB
-
-
-
-
-
-
-
-
-
-
@@ -67,7 +56,6 @@
-->
-
EvaDB enables software developers to build AI apps in a few lines of code. Its powerful SQL API simplifies AI app development for both structured and unstructured data. EvaDB's benefits include:
From f4090570b9adf59dbc379758bee94c427152993e Mon Sep 17 00:00:00 2001
From: jineetd <35962652+jineetd@users.noreply.github.com>
Date: Thu, 2 Nov 2023 11:02:45 -0400
Subject: [PATCH 43/50] Add the validation score and training time for
create_function in XGBoost (#1327)
Let us show the validation score and training time for the XGBoost
AutoML model trained. This shall give us fair enough idea on how the
model trained on the training data set.
---------
Co-authored-by: Jineet Desai
---
evadb/binder/function_expression_binder.py | 2 +-
evadb/executor/create_function_executor.py | 21 ++++++++++++++++++-
.../long/test_model_train.py | 8 +++++--
.../short/test_select_executor.py | 2 +-
4 files changed, 28 insertions(+), 5 deletions(-)
diff --git a/evadb/binder/function_expression_binder.py b/evadb/binder/function_expression_binder.py
index b6427b533c..bbc0f6cc53 100644
--- a/evadb/binder/function_expression_binder.py
+++ b/evadb/binder/function_expression_binder.py
@@ -112,7 +112,7 @@ def bind_func_expr(binder: StatementBinder, node: FunctionExpression):
if string_comparison_case_insensitive(node.name, "CHATGPT"):
# if the user didn't provide any API_KEY, check if we have one in the catalog
if "OPENAI_API_KEY" not in properties.keys():
- OpenAI_key = binder._catalog().get_configuration_catalog_value(
+ openai_key = binder._catalog().get_configuration_catalog_value(
"OPENAI_API_KEY"
)
properties["openai_api_key"] = openai_key
diff --git a/evadb/executor/create_function_executor.py b/evadb/executor/create_function_executor.py
index 52a3f17c9f..cee6035f68 100644
--- a/evadb/executor/create_function_executor.py
+++ b/evadb/executor/create_function_executor.py
@@ -259,12 +259,16 @@ def handle_xgboost_function(self):
impl_path = Path(f"{self.function_dir}/xgboost.py").absolute().as_posix()
io_list = self._resolve_function_io(None)
+ best_score = model.best_loss
+ train_time = model.best_config_train_time
return (
self.node.name,
impl_path,
self.node.function_type,
io_list,
self.node.metadata,
+ best_score,
+ train_time,
)
def handle_ultralytics_function(self):
@@ -586,6 +590,8 @@ def exec(self, *args, **kwargs):
)
overwrite = False
+ best_score = False
+ train_time = False
# check catalog if it already has this function entry
if self.catalog().get_function_catalog_entry_by_name(self.node.name):
if self.node.if_not_exists:
@@ -648,6 +654,8 @@ def exec(self, *args, **kwargs):
function_type,
io_list,
metadata,
+ best_score,
+ train_time,
) = self.handle_xgboost_function()
elif string_comparison_case_insensitive(self.node.function_type, "Forecasting"):
(
@@ -674,7 +682,18 @@ def exec(self, *args, **kwargs):
msg = f"Function {self.node.name} overwritten."
else:
msg = f"Function {self.node.name} added to the database."
- yield Batch(pd.DataFrame([msg]))
+ if best_score and train_time:
+ yield Batch(
+ pd.DataFrame(
+ [
+ msg,
+ "Validation Score: " + str(best_score),
+ "Training time: " + str(train_time),
+ ]
+ )
+ )
+ else:
+ yield Batch(pd.DataFrame([msg]))
def _try_initializing_function(
self, impl_path: str, function_args: Dict = {}
diff --git a/test/integration_tests/long/test_model_train.py b/test/integration_tests/long/test_model_train.py
index b1afe562d9..55c5b5a484 100644
--- a/test/integration_tests/long/test_model_train.py
+++ b/test/integration_tests/long/test_model_train.py
@@ -138,7 +138,9 @@ def test_xgboost_regression(self):
METRIC 'r2'
TASK 'regression';
"""
- execute_query_fetch_all(self.evadb, create_predict_function)
+ result = execute_query_fetch_all(self.evadb, create_predict_function)
+ self.assertEqual(len(result.columns), 1)
+ self.assertEqual(len(result), 3)
predict_query = """
SELECT PredictRentXgboost(number_of_rooms, number_of_bathrooms, days_on_market, rental_price) FROM HomeRentals LIMIT 10;
@@ -158,7 +160,9 @@ def test_xgboost_classification(self):
METRIC 'accuracy'
TASK 'classification';
"""
- execute_query_fetch_all(self.evadb, create_predict_function)
+ result = execute_query_fetch_all(self.evadb, create_predict_function)
+ self.assertEqual(len(result.columns), 1)
+ self.assertEqual(len(result), 3)
predict_query = """
SELECT PredictEmployeeXgboost(payment_tier, age, gender, experience_in_current_domain, leave_or_not) FROM Employee LIMIT 10;
diff --git a/test/integration_tests/short/test_select_executor.py b/test/integration_tests/short/test_select_executor.py
index b108150458..c2ac348c78 100644
--- a/test/integration_tests/short/test_select_executor.py
+++ b/test/integration_tests/short/test_select_executor.py
@@ -108,7 +108,7 @@ def test_should_raise_binder_error_on_non_existent_column(self):
with self.assertRaises(BinderError) as ctx:
execute_query_fetch_all(self.evadb, select_query)
self.assertEqual(
- "Cannnot find column b1. Did you mean a1? The feasible columns are ['_row_id', 'a0', 'a1', 'a2'].",
+ "Cannot find column b1. Did you mean a1? The feasible columns are ['_row_id', 'a0', 'a1', 'a2'].",
str(ctx.exception),
)
From 21aee56022143c36dae9e224683cfd464ba77ae7 Mon Sep 17 00:00:00 2001
From: Aubhro Sengupta
Date: Thu, 2 Nov 2023 20:37:10 -0700
Subject: [PATCH 44/50] Add test_eva_db to gitignore (#1336)
The environment created in the setup instructions in the documentation
calls the environment `test_eva_db`
---
.gitignore | 1 +
1 file changed, 1 insertion(+)
diff --git a/.gitignore b/.gitignore
index 1a091b9894..697a42a819 100644
--- a/.gitignore
+++ b/.gitignore
@@ -101,6 +101,7 @@ env.bak/
venv.bak/
env38/
env_eva/
+test_eva_db/
# Spyder project settings
.spyderproject
From f56ef82f2e0dcdbd559ab138b395da68ea28c102 Mon Sep 17 00:00:00 2001
From: kumeagidi <54588820+kumeagidi@users.noreply.github.com>
Date: Fri, 3 Nov 2023 11:35:20 -0400
Subject: [PATCH 45/50] Fix #1333 dependency and CMD in DockerFile (#1335)
Update the DockerFile in order to resolve dependency issues along with
fixing the invalid CMD that was previously passed in.
---
docker/Dockerfile | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 325cc2ffcb..630b1dcb19 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -15,6 +15,11 @@ RUN apt-get update && \
apt-get autoclean -y && \
rm -rf /var/cache/apt/* /var/lib/apt/lists/*
+# Install gcc and python3.9-dev
+RUN apt-get update && apt-get install -y \
+ gcc \
+ python3.9-dev
+
# Install pip
RUN curl -O https://bootstrap.pypa.io/get-pip.py && \
python3.9 get-pip.py && \
@@ -32,5 +37,5 @@ RUN python3.9 -m pip install evadb
# Expose the default port EvaDB runs on
EXPOSE 8803
-# Start EvaDB
-CMD ["eva_server"]
\ No newline at end of file
+# Start EvaDB server
+CMD ["evadb_server"]
\ No newline at end of file
From c296318c742ee431040b38487467d9632577f083 Mon Sep 17 00:00:00 2001
From: Chitti Ankith
Date: Fri, 3 Nov 2023 12:19:39 -0400
Subject: [PATCH 46/50] CREATE INDEX IF NOT EXISTS is broken. (#1337)
This PR fixes an issue in CREATE INDEX IF NOT EXISTS command wherein if
'IF NOT EXISTS' is passed, we had an unreferenced variable issue. Added
Unit Tests to check the correctness of both the cases.
Also reverted the index changes while merging dataframes after vector
scan, as it's failing for some cases where indexes can be undefined.
---
evadb/executor/insert_executor.py | 4 +++-
evadb/executor/vector_index_scan_executor.py | 9 +++------
test/integration_tests/long/test_similarity.py | 17 ++++++++++++-----
3 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/evadb/executor/insert_executor.py b/evadb/executor/insert_executor.py
index 8e38aea918..d2dccd96a3 100644
--- a/evadb/executor/insert_executor.py
+++ b/evadb/executor/insert_executor.py
@@ -59,8 +59,10 @@ def exec(self, *args, **kwargs):
for column in table_catalog_entry.columns:
if column == index.feat_column:
is_index_on_current_table = True
+ break
if is_index_on_current_table:
- create_index_query_list = index.index_def.split(" ")
+ create_index_query = index.index_def
+ create_index_query_list = create_index_query.split(" ")
if_not_exists = " ".join(create_index_query_list[2:5]).lower()
if if_not_exists != "if not exists":
create_index_query = (
diff --git a/evadb/executor/vector_index_scan_executor.py b/evadb/executor/vector_index_scan_executor.py
index 0d6ee58c4f..57697236e4 100644
--- a/evadb/executor/vector_index_scan_executor.py
+++ b/evadb/executor/vector_index_scan_executor.py
@@ -142,16 +142,13 @@ def _evadb_vector_index_scan(self, *args, **kwargs):
res_data_list.append(row_dict)
result_df = pd.DataFrame(res_data_list)
- result_df.set_index(row_num_col_name, inplace=True)
- result_df = result_df.reindex(row_num_np)
- row_num_df.set_index(pd.Index(row_num_np), inplace=True)
final_df = pd.merge(
row_num_df,
result_df,
- left_index=True,
- right_index=True,
- how="left",
+ left_on="row_num_np",
+ right_on=row_num_col_name,
+ how="inner",
)
if "row_num_np" in final_df:
diff --git a/test/integration_tests/long/test_similarity.py b/test/integration_tests/long/test_similarity.py
index 15a0b087dc..81d6054fe8 100644
--- a/test/integration_tests/long/test_similarity.py
+++ b/test/integration_tests/long/test_similarity.py
@@ -428,17 +428,15 @@ def test_end_to_end_index_scan_should_work_correctly_on_image_dataset_faiss(self
drop_query = "DROP INDEX testFaissIndexImageDataset"
execute_query_fetch_all(self.evadb, drop_query)
- def test_index_auto_update_on_structured_table_during_insertion_with_faiss(self):
- create_query = "CREATE TABLE testIndexAutoUpdate (img_path TEXT(100))"
- execute_query_fetch_all(self.evadb, create_query)
-
+ def _helper_for_auto_update_during_insertion_with_faiss(self, if_exists: bool):
for i, img_path in enumerate(self.img_path_list):
insert_query = (
f"INSERT INTO testIndexAutoUpdate (img_path) VALUES ('{img_path}')"
)
execute_query_fetch_all(self.evadb, insert_query)
if i == 0:
- create_index_query = "CREATE INDEX testIndex ON testIndexAutoUpdate(DummyFeatureExtractor(Open(img_path))) USING FAISS"
+ if_exists_str = "IF NOT EXISTS " if if_exists else ""
+ create_index_query = f"CREATE INDEX {if_exists_str}testIndex ON testIndexAutoUpdate(DummyFeatureExtractor(Open(img_path))) USING FAISS"
execute_query_fetch_all(self.evadb, create_index_query)
select_query = """SELECT _row_id FROM testIndexAutoUpdate
@@ -452,6 +450,15 @@ def test_index_auto_update_on_structured_table_during_insertion_with_faiss(self)
res_batch = execute_query_fetch_all(self.evadb, select_query)
self.assertEqual(res_batch.frames["testindexautoupdate._row_id"][0], 5)
+ def test_index_auto_update_on_structured_table_during_insertion_with_faiss(self):
+ create_query = "CREATE TABLE testIndexAutoUpdate (img_path TEXT(100))"
+ drop_query = "DROP TABLE testIndexAutoUpdate"
+ execute_query_fetch_all(self.evadb, create_query)
+ self._helper_for_auto_update_during_insertion_with_faiss(False)
+ execute_query_fetch_all(self.evadb, drop_query)
+ execute_query_fetch_all(self.evadb, create_query)
+ self._helper_for_auto_update_during_insertion_with_faiss(True)
+
@qdrant_skip_marker
def test_end_to_end_index_scan_should_work_correctly_on_image_dataset_qdrant(self):
for _ in range(2):
From 6929103221ad58924e2a6ebbe72d1b867a450c5d Mon Sep 17 00:00:00 2001
From: Pramod Chunduri <43007047+pchunduri6@users.noreply.github.com>
Date: Sun, 5 Nov 2023 21:11:18 -0500
Subject: [PATCH 47/50] Support semicolon and escaped strings in lark (#1339)
Support semi-colons in string literals for queries of the form:
```
"""SELECT ChatGPT("Here's a; question", "This is the context") FROM TAIPAI;"""
```
Also support string escape to run ChatGPT queries more easily:
```
"""SELECT ChatGPT('Here\\'s a question', 'This is the context') FROM TAIPAI;"""
```
---
evadb/parser/evadb.lark | 4 ++--
test/unit_tests/parser/test_parser.py | 34 +++++++++++++++++++++++++++
2 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/evadb/parser/evadb.lark b/evadb/parser/evadb.lark
index 73474e5e74..ab4cdb6772 100644
--- a/evadb/parser/evadb.lark
+++ b/evadb/parser/evadb.lark
@@ -580,8 +580,8 @@ GLOBAL_ID: "@" "@" (/[A-Z0-9._$]+/ | BQUOTA_STRING)
EXPONENT_NUM_PART: /"E" "-"? DEC_DIGIT+/
ID_LITERAL: /[A-Za-z_$0-9]*?[A-Za-z_$]+?[A-Za-z_$0-9]*/
-DQUOTA_STRING: /"[^";]*"/
-SQUOTA_STRING: /'[^';]*'/
+DQUOTA_STRING: "\"" /(?:[^"\\]|\\.)*"/
+SQUOTA_STRING: "'" /(?:[^'\\]|\\.)*'/
BQUOTA_STRING: /`[^'`]*`/
QUERY_STRING: /[^{};]+/
DEC_DIGIT: /[0-9]/
diff --git a/test/unit_tests/parser/test_parser.py b/test/unit_tests/parser/test_parser.py
index b7b7a21978..60624b825d 100644
--- a/test/unit_tests/parser/test_parser.py
+++ b/test/unit_tests/parser/test_parser.py
@@ -12,6 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+import json
import unittest
from pathlib import Path
@@ -464,6 +465,39 @@ def test_select_with_empty_string_literal(self):
self.assertEqual(len(evadb_statement_list), 1)
self.assertEqual(evadb_statement_list[0].stmt_type, StatementType.SELECT)
+ def test_string_literal_with_escaped_single_quote(self):
+ parser = Parser()
+
+ select_query = """SELECT ChatGPT('Here\\'s a question', 'This is the context') FROM TAIPAI;"""
+
+ evadb_statement_list = parser.parse(select_query)
+ self.assertIsInstance(evadb_statement_list, list)
+ self.assertEqual(len(evadb_statement_list), 1)
+ self.assertEqual(evadb_statement_list[0].stmt_type, StatementType.SELECT)
+
+ def test_string_literal_with_semi_colon(self):
+ parser = Parser()
+
+ select_query = """SELECT ChatGPT("Here's a; question", "This is the context") FROM TAIPAI;"""
+
+ evadb_statement_list = parser.parse(select_query)
+ self.assertIsInstance(evadb_statement_list, list)
+ self.assertEqual(len(evadb_statement_list), 1)
+ self.assertEqual(evadb_statement_list[0].stmt_type, StatementType.SELECT)
+
+ def test_string_literal_with_single_quotes_from_variable(self):
+ parser = Parser()
+
+ question = json.dumps("Here's a question")
+ answer = json.dumps('This is "the" context')
+
+ select_query = f"""SELECT ChatGPT({question}, {answer}) FROM TAIPAI;"""
+
+ evadb_statement_list = parser.parse(select_query)
+ self.assertIsInstance(evadb_statement_list, list)
+ self.assertEqual(len(evadb_statement_list), 1)
+ self.assertEqual(evadb_statement_list[0].stmt_type, StatementType.SELECT)
+
def test_select_union_statement(self):
parser = Parser()
select_union_query = "SELECT CLASS, REDNESS FROM TAIPAI \
From bd344ed2c6a0a6ece31342748d4b1d76bcbf40c8 Mon Sep 17 00:00:00 2001
From: Kaushik <108662423+kaushikravichandran@users.noreply.github.com>
Date: Sun, 5 Nov 2023 21:11:48 -0500
Subject: [PATCH 48/50] feat: third party app support in EVADB (#1033)
This PR introduces a generic interface to support 3rd party apps in
EVADB. As an example. the template for integrating slack has been added.
In a subsequent PR the integration with slack will be completed.
---------
Co-authored-by: Gaurav Tarlok Kakkar
Co-authored-by: Joy Arulraj
Co-authored-by: Joy Arulraj
Co-authored-by: Kaushik Ravichandran
---
evadb/third_party/databases/interface.py | 2 +
evadb/third_party/databases/slack/__init__.py | 15 ++
.../databases/slack/slack_handler.py | 129 ++++++++++++++++++
3 files changed, 146 insertions(+)
create mode 100644 evadb/third_party/databases/slack/__init__.py
create mode 100644 evadb/third_party/databases/slack/slack_handler.py
diff --git a/evadb/third_party/databases/interface.py b/evadb/third_party/databases/interface.py
index e4cd86151c..5f8c4c2ac1 100644
--- a/evadb/third_party/databases/interface.py
+++ b/evadb/third_party/databases/interface.py
@@ -48,6 +48,8 @@ def _get_database_handler(engine: str, **kwargs):
return mod.SnowFlakeDbHandler(engine, **kwargs)
elif engine == "github":
return mod.GithubHandler(engine, **kwargs)
+ elif engine == "slack":
+ return mod.SlackHandler(engine, **kwargs)
else:
raise NotImplementedError(f"Engine {engine} is not supported")
diff --git a/evadb/third_party/databases/slack/__init__.py b/evadb/third_party/databases/slack/__init__.py
new file mode 100644
index 0000000000..cb882e32b4
--- /dev/null
+++ b/evadb/third_party/databases/slack/__init__.py
@@ -0,0 +1,15 @@
+# coding=utf-8
+# Copyright 2018-2023 EvaDB
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""third party/applications/slack"""
diff --git a/evadb/third_party/databases/slack/slack_handler.py b/evadb/third_party/databases/slack/slack_handler.py
new file mode 100644
index 0000000000..4022efb619
--- /dev/null
+++ b/evadb/third_party/databases/slack/slack_handler.py
@@ -0,0 +1,129 @@
+# coding=utf-8
+# Copyright 2018-2023 EvaDB
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import pandas as pd
+from slack_sdk import WebClient
+from slack_sdk.errors import SlackApiError
+
+from evadb.third_party.types import DBHandler, DBHandlerResponse, DBHandlerStatus
+
+
+class SlackHandler(DBHandler):
+ def __init__(self, name: str, **kwargs):
+ super().__init__(name)
+ self.token = kwargs.get("token")
+ self.channel_name = kwargs.get("channel")
+
+ def connect(self):
+ try:
+ self.client = WebClient(token=self.token)
+ return DBHandlerStatus(status=True)
+ except Exception as e:
+ return DBHandlerStatus(status=False, error=str(e))
+
+ def disconnect(self):
+ """
+ TODO: integrate code for disconnecting from slack
+ """
+ raise NotImplementedError()
+
+ def check_connection(self) -> DBHandlerStatus:
+ try:
+ self.client.api_test()
+ except SlackApiError as e:
+ assert e.response["ok"] is False
+ return False
+ return True
+
+ def get_tables(self) -> DBHandlerResponse:
+ if self.client:
+ channels = self.client.conversations_list(
+ types="public_channel,private_channel"
+ )["channels"]
+ self.channel_names = [c["name"] for c in channels]
+ tables_df = pd.DataFrame(self.channel_names, columns=["table_name"])
+ return DBHandlerResponse(data=tables_df)
+
+ def get_columns(self, table_name: str) -> DBHandlerResponse:
+ columns = [
+ "ts",
+ "text",
+ "message_created_at",
+ "user",
+ "channel",
+ "reactions",
+ "attachments",
+ "thread_ts",
+ "reply_count",
+ "reply_users_count",
+ "latest_reply",
+ "subtype",
+ "hidden",
+ ]
+ columns_df = pd.DataFrame(columns, columns=["column_name"])
+ return DBHandlerResponse(data=columns_df)
+
+ def post_message(self, message) -> DBHandlerResponse:
+ try:
+ response = self.client.chat_postMessage(channel=self.channel, text=message)
+ return DBHandlerResponse(data=response["message"]["text"])
+ except SlackApiError as e:
+ assert e.response["ok"] is False
+ assert e.response["error"]
+ return DBHandlerResponse(data=None, error=e.response["error"])
+
+ def _convert_json_response_to_DataFrame(self, json_response):
+ messages = json_response["messages"]
+ columns = ["text", "ts", "user"]
+ data_df = pd.DataFrame(columns=columns)
+ for message in messages:
+ if message["text"] and message["ts"] and message["user"]:
+ data_df.loc[len(data_df.index)] = [
+ message["text"],
+ message["ts"],
+ message["user"],
+ ]
+ return data_df
+
+ def get_messages(self) -> DBHandlerResponse:
+ try:
+ channels = self.client.conversations_list(
+ types="public_channel,private_channel"
+ )["channels"]
+ channel_ids = {c["name"]: c["id"] for c in channels}
+ response = self.client.conversations_history(
+ channel=channel_ids[self.channel_name]
+ )
+ data_df = self._convert_json_response_to_DataFrame(response)
+ return data_df
+
+ except SlackApiError as e:
+ assert e.response["ok"] is False
+ assert e.response["error"]
+ return DBHandlerResponse(data=None, error=e.response["error"])
+
+ def del_message(self, timestamp) -> DBHandlerResponse:
+ try:
+ self.client.chat_delete(channel=self.channel, ts=timestamp)
+ except SlackApiError as e:
+ assert e.response["ok"] is False
+ assert e.response["error"]
+ return DBHandlerResponse(data=None, error=e.response["error"])
+
+ def execute_native_query(self, query_string: str) -> DBHandlerResponse:
+ """
+ TODO: integrate code for executing query on slack
+ """
+ raise NotImplementedError()
From 35b772b8723fbe242579a6620d20cb6f82e719be Mon Sep 17 00:00:00 2001
From: Hersh Dhillon
Date: Sun, 5 Nov 2023 22:04:09 -0500
Subject: [PATCH 49/50] [WIP] Improving error handling messages for Custom
Functions (#1330)
Added separate error handling for ModuleNotFoundError and
FileNotFoundError
modified: evadb/utils/generic_utils.py
---
evadb/utils/generic_utils.py | 17 ++++++++++++++---
.../short/test_generic_utils.py | 17 ++++++++++++++---
2 files changed, 28 insertions(+), 6 deletions(-)
diff --git a/evadb/utils/generic_utils.py b/evadb/utils/generic_utils.py
index b190e748db..d9af319103 100644
--- a/evadb/utils/generic_utils.py
+++ b/evadb/utils/generic_utils.py
@@ -75,15 +75,26 @@ def load_function_class_from_file(filepath, classname=None):
The class instance.
Raises:
- RuntimeError: If the class name is not found or there is more than one class in the file.
+ ImportError: If the module cannot be loaded.
+ FileNotFoundError: If the file cannot be found.
+ RuntimeError: Any othe type of runtime error.
"""
try:
abs_path = Path(filepath).resolve()
spec = importlib.util.spec_from_file_location(abs_path.stem, abs_path)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
+ except ImportError as e:
+ # ImportError in the case when we are able to find the file but not able to load the module
+ err_msg = f"ImportError : Couldn't load function from {filepath} : {str(e)}. Not able to load the code provided in the file {abs_path}. Please ensure that the file contains the implementation code for the function."
+ raise ImportError(err_msg)
+ except FileNotFoundError as e:
+ # FileNotFoundError in the case when we are not able to find the file at all at the path.
+ err_msg = f"FileNotFoundError : Couldn't load function from {filepath} : {str(e)}. This might be because the function implementation file does not exist. Please ensure the file exists at {abs_path}"
+ raise FileNotFoundError(err_msg)
except Exception as e:
- err_msg = f"Couldn't load function from {filepath} : {str(e)}. This might be due to a missing Python package, or because the function implementation file does not exist, or it is not a valid Python file."
+ # Default exception, we don't know what exactly went wrong so we just output the error message
+ err_msg = f"Couldn't load function from {filepath} : {str(e)}."
raise RuntimeError(err_msg)
# Try to load the specified class by name
@@ -97,7 +108,7 @@ def load_function_class_from_file(filepath, classname=None):
if obj.__module__ == module.__name__
]
if len(classes) != 1:
- raise RuntimeError(
+ raise ImportError(
f"{filepath} contains {len(classes)} classes, please specify the correct class to load by naming the function with the same name in the CREATE query."
)
return classes[0]
diff --git a/test/integration_tests/short/test_generic_utils.py b/test/integration_tests/short/test_generic_utils.py
index bc78af0d8a..b44d171ecf 100644
--- a/test/integration_tests/short/test_generic_utils.py
+++ b/test/integration_tests/short/test_generic_utils.py
@@ -14,6 +14,7 @@
# limitations under the License.
import unittest
+from pathlib import Path
from test.markers import windows_skip_marker
from evadb.configuration.constants import EvaDB_DATASET_DIR
@@ -50,17 +51,27 @@ def test_should_return_correct_class_for_path_without_classname(self):
assert vl.__qualname__ == DecordReader.__qualname__
def test_should_raise_on_missing_file(self):
- with self.assertRaises(RuntimeError):
+ # Asserting on the error message, but that's brittle
+ with self.assertRaises(FileNotFoundError):
load_function_class_from_file("evadb/readers/opencv_reader_abdfdsfds.py")
+ def test_should_raise_on_empty_file(self):
+ # Asserting on the error message, but that's brittle
+ Path("/tmp/empty_file.py").touch()
+ with self.assertRaises(ImportError):
+ load_function_class_from_file("/tmp/empty_file.py")
+
+ # Cleanup
+ Path("/tmp/empty_file.py").unlink()
+
def test_should_raise_if_class_does_not_exists(self):
- with self.assertRaises(RuntimeError):
+ with self.assertRaises(ImportError):
# evadb/utils/s3_utils.py has no class in it
# if this test fails due to change in s3_utils.py, change the file to something else
load_function_class_from_file("evadb/utils/s3_utils.py")
def test_should_raise_if_multiple_classes_exist_and_no_class_mentioned(self):
- with self.assertRaises(RuntimeError):
+ with self.assertRaises(ImportError):
# evadb/utils/generic_utils.py has multiple classes in it
# if this test fails due to change in generic_utils.py, change the file to something else
load_function_class_from_file("evadb/utils/generic_utils.py")
From 64219f10ee0ef2bd69b32f3b07d060d6ab1916ee Mon Sep 17 00:00:00 2001
From: rohith mulumudy
Date: Mon, 6 Nov 2023 10:56:34 -0500
Subject: [PATCH 50/50] logging an error message for invalid files while
loading (#1334)
Issue - [721](https://github.com/georgia-tech-db/evadb/issues/721)
Currently, we abort the entire process when the load executor encounters
a corrupted file.
---
evadb/executor/load_multimedia_executor.py | 2 +-
.../long/test_load_executor.py | 153 +++++++++++++-----
2 files changed, 114 insertions(+), 41 deletions(-)
diff --git a/evadb/executor/load_multimedia_executor.py b/evadb/executor/load_multimedia_executor.py
index 03f1f7fb64..61af070069 100644
--- a/evadb/executor/load_multimedia_executor.py
+++ b/evadb/executor/load_multimedia_executor.py
@@ -83,7 +83,7 @@ def exec(self, *args, **kwargs):
invalid_files_str = "\n".join(invalid_files)
err_msg = f"no valid file found at -- '{invalid_files_str}'."
- raise ValueError(err_msg)
+ logger.error(err_msg)
# Get valid files.
valid_files = [
diff --git a/test/integration_tests/long/test_load_executor.py b/test/integration_tests/long/test_load_executor.py
index 0ca421cf1a..8400eba942 100644
--- a/test/integration_tests/long/test_load_executor.py
+++ b/test/integration_tests/long/test_load_executor.py
@@ -208,17 +208,16 @@ def test_should_fail_to_load_invalid_files_as_video(self):
self.evadb, "SELECT name FROM MyVideos", do_not_print_exceptions=True
)
- def test_should_rollback_if_video_load_fails(self):
+ def test_should_rollback_or_skip_if_video_load_fails(self):
path_regex = Path(f"{EvaDB_ROOT_DIR}/data/sample_videos/1/*.mp4")
valid_videos = glob.glob(str(path_regex.expanduser()), recursive=True)
tempfile_name = os.urandom(24).hex()
tempfile_path = os.path.join(tempfile.gettempdir(), tempfile_name)
with open(tempfile_path, "wb") as empty_file:
- # Load one correct file and one empty file
+ # Load one empty file
# nothing should be added
with tempfile.TemporaryDirectory() as tmp_dir:
- shutil.copy2(str(valid_videos[0]), tmp_dir)
shutil.copy2(str(empty_file.name), tmp_dir)
path = Path(tmp_dir) / "*"
query = f"""LOAD VIDEO "{path}" INTO MyVideos;"""
@@ -233,24 +232,32 @@ def test_should_rollback_if_video_load_fails(self):
do_not_print_exceptions=True,
)
+ # Load one correct file and one empty file
+ # one file should get added
+ with tempfile.TemporaryDirectory() as tmp_dir:
+ shutil.copy2(str(valid_videos[0]), tmp_dir)
+ shutil.copy2(str(empty_file.name), tmp_dir)
+ path = Path(tmp_dir) / "*"
+ query = f"""LOAD VIDEO "{path}" INTO MyVideos;"""
+ result = execute_query_fetch_all(self.evadb, query)
+ expected = Batch(
+ pd.DataFrame([f"Number of loaded {FileFormatType.VIDEO.name}: 1"])
+ )
+ self.assertEqual(result, expected)
+
# Load two correct file and one empty file
- # nothing should be added
+ # two files should get added
with tempfile.TemporaryDirectory() as tmp_dir:
shutil.copy2(str(valid_videos[0]), tmp_dir)
shutil.copy2(str(valid_videos[1]), tmp_dir)
shutil.copy2(str(empty_file.name), tmp_dir)
path = Path(tmp_dir) / "*"
query = f"""LOAD VIDEO "{path}" INTO MyVideos;"""
- with self.assertRaises(Exception):
- execute_query_fetch_all(
- self.evadb, query, do_not_print_exceptions=True
- )
- with self.assertRaises(BinderError):
- execute_query_fetch_all(
- self.evadb,
- "SELECT name FROM MyVideos",
- do_not_print_exceptions=True,
- )
+ result = execute_query_fetch_all(self.evadb, query)
+ expected = Batch(
+ pd.DataFrame([f"Number of loaded {FileFormatType.VIDEO.name}: 2"])
+ )
+ self.assertEqual(result, expected)
def test_should_rollback_and_preserve_previous_state(self):
path_regex = Path(f"{EvaDB_ROOT_DIR}/data/sample_videos/1/*.mp4")
@@ -262,13 +269,12 @@ def test_should_rollback_and_preserve_previous_state(self):
self.evadb, f"""LOAD VIDEO "{load_file}" INTO MyVideos;"""
)
- # Load one correct file and one empty file
- # original file should remain
tempfile_name = os.urandom(24).hex()
tempfile_path = os.path.join(tempfile.gettempdir(), tempfile_name)
with open(tempfile_path, "wb") as empty_file:
+ # Load one empty file
+ # original file should remain
with tempfile.TemporaryDirectory() as tmp_dir:
- shutil.copy2(str(valid_videos[1]), tmp_dir)
shutil.copy2(str(empty_file.name), tmp_dir)
path = Path(tmp_dir) / "*"
query = f"""LOAD VIDEO "{path}" INTO MyVideos;"""
@@ -282,6 +288,25 @@ def test_should_rollback_and_preserve_previous_state(self):
file_names = np.unique(result.frames)
self.assertEqual(len(file_names), 1)
+ # Load one correct file and one empty file
+ # original file should remain and the correct file should get added
+ with tempfile.TemporaryDirectory() as tmp_dir:
+ shutil.copy2(str(valid_videos[1]), tmp_dir)
+ shutil.copy2(str(empty_file.name), tmp_dir)
+ path = Path(tmp_dir) / "*"
+ query = f"""LOAD VIDEO "{path}" INTO MyVideos;"""
+ result = execute_query_fetch_all(self.evadb, query)
+ expected = Batch(
+ pd.DataFrame([f"Number of loaded {FileFormatType.VIDEO.name}: 1"])
+ )
+ self.assertEqual(result, expected)
+
+ result = execute_query_fetch_all(
+ self.evadb, "SELECT name FROM MyVideos"
+ )
+ file_names = np.unique(result.frames)
+ self.assertEqual(len(file_names), 2)
+
###########################################
# integration testcases for load image
@@ -342,7 +367,7 @@ def test_should_fail_to_load_invalid_files_as_image(self):
self.evadb, "SELECT name FROM MyImages;", do_not_print_exceptions=True
)
- def test_should_rollback_if_image_load_fails(self):
+ def test_should_rollback_or_pass_if_image_load_fails(self):
valid_images = glob.glob(
str(self.image_files_path.expanduser()), recursive=True
)
@@ -350,10 +375,9 @@ def test_should_rollback_if_image_load_fails(self):
tempfile_name = os.urandom(24).hex()
tempfile_path = os.path.join(tempfile.gettempdir(), tempfile_name)
with open(tempfile_path, "wb") as empty_file:
- # Load one correct file and one empty file
+ # Load one empty file
# nothing should be added
with tempfile.TemporaryDirectory() as tmp_dir:
- shutil.copy2(str(valid_images[0]), tmp_dir)
shutil.copy2(str(empty_file.name), tmp_dir)
path = Path(tmp_dir) / "*"
query = f"""LOAD IMAGE "{path}" INTO MyImages;"""
@@ -368,26 +392,34 @@ def test_should_rollback_if_image_load_fails(self):
do_not_print_exceptions=True,
)
+ # Load one correct file and one empty file
+ # correct file should be added
+ with tempfile.TemporaryDirectory() as tmp_dir:
+ shutil.copy2(str(valid_images[0]), tmp_dir)
+ shutil.copy2(str(empty_file.name), tmp_dir)
+ path = Path(tmp_dir) / "*"
+ query = f"""LOAD IMAGE "{path}" INTO MyImages;"""
+ result = execute_query_fetch_all(self.evadb, query)
+ expected = Batch(
+ pd.DataFrame([f"Number of loaded {FileFormatType.IMAGE.name}: 1"])
+ )
+ self.assertEqual(result, expected)
+
# Load two correct file and one empty file
- # nothing should be added
+ # two correct files should be added
with tempfile.TemporaryDirectory() as tmp_dir:
shutil.copy2(str(valid_images[0]), tmp_dir)
shutil.copy2(str(valid_images[1]), tmp_dir)
shutil.copy2(str(empty_file.name), tmp_dir)
path = Path(tmp_dir) / "*"
query = f"""LOAD IMAGE "{path}" INTO MyImages;"""
- with self.assertRaises(Exception):
- execute_query_fetch_all(
- self.evadb, query, do_not_print_exceptions=True
- )
- with self.assertRaises(BinderError):
- execute_query_fetch_all(
- self.evadb,
- "SELECT name FROM MyImages;",
- do_not_print_exceptions=True,
- )
+ result = execute_query_fetch_all(self.evadb, query)
+ expected = Batch(
+ pd.DataFrame([f"Number of loaded {FileFormatType.IMAGE.name}: 2"])
+ )
+ self.assertEqual(result, expected)
- def test_should_rollback_and_preserve_previous_state_for_load_images(self):
+ def test_should_rollback_or_pass_and_preserve_previous_state_for_load_images(self):
valid_images = glob.glob(
str(self.image_files_path.expanduser()), recursive=True
)
@@ -397,13 +429,12 @@ def test_should_rollback_and_preserve_previous_state_for_load_images(self):
self.evadb, f"""LOAD IMAGE "{valid_images[0]}" INTO MyImages;"""
)
- # Load one correct file and one empty file
- # original file should remain
tempfile_name = os.urandom(24).hex()
tempfile_path = os.path.join(tempfile.gettempdir(), tempfile_name)
with open(tempfile_path, "wb") as empty_file:
+ # Load one empty file
+ # original file should remain
with tempfile.TemporaryDirectory() as tmp_dir:
- shutil.copy2(str(valid_images[1]), tmp_dir)
shutil.copy2(str(empty_file.name), tmp_dir)
path = Path(tmp_dir) / "*"
query = f"""LOAD IMAGE "{path}" INTO MyImages;"""
@@ -418,6 +449,37 @@ def test_should_rollback_and_preserve_previous_state_for_load_images(self):
expected = Batch(pd.DataFrame([{"myimages.name": valid_images[0]}]))
self.assertEqual(expected, result)
+ # Load one empty and one correct file
+ # original file should remaina and correct file should get added
+ with tempfile.TemporaryDirectory() as tmp_dir:
+ shutil.copy2(str(valid_images[1]), tmp_dir)
+ shutil.copy2(str(empty_file.name), tmp_dir)
+ path = Path(tmp_dir) / "*"
+ query = f"""LOAD IMAGE "{path}" INTO MyImages;"""
+ result = execute_query_fetch_all(self.evadb, query)
+ expected = Batch(
+ pd.DataFrame([f"Number of loaded {FileFormatType.IMAGE.name}: 1"])
+ )
+ self.assertEqual(result, expected)
+
+ result = execute_query_fetch_all(
+ self.evadb, "SELECT name FROM MyImages"
+ )
+ self.assertEqual(len(result), 2)
+ expected = Batch(
+ pd.DataFrame(
+ [
+ {"myimages.name": valid_images[0]},
+ {
+ "myimages.name": os.path.join(
+ tmp_dir, os.path.basename(valid_images[1])
+ )
+ },
+ ]
+ )
+ )
+ self.assertEqual(expected, result)
+
###################################
# integration tests for csv
def test_should_load_csv_with_columns_in_table(self):
@@ -471,7 +533,7 @@ def test_should_use_parallel_load(self):
# Clean up large scale image directory.
shutil.rmtree(large_scale_image_files_path)
- def test_parallel_load_should_raise_exception(self):
+ def test_parallel_load_should_raise_exception_or_pass(self):
# Create images.
large_scale_image_files_path = create_large_scale_image_dataset(
mp.cpu_count() * 10
@@ -481,11 +543,22 @@ def test_parallel_load_should_raise_exception(self):
with open(os.path.join(large_scale_image_files_path, "img0.jpg"), "w") as f:
f.write("aa")
- with self.assertRaises(ExecutorError):
- load_query = f"LOAD IMAGE '{large_scale_image_files_path}/**/*.jpg' INTO MyLargeScaleImages;"
- execute_query_fetch_all(
- self.evadb, load_query, do_not_print_exceptions=True
+ load_query = f"LOAD IMAGE '{large_scale_image_files_path}/**/*.jpg' INTO MyLargeScaleImages;"
+ result = execute_query_fetch_all(self.evadb, load_query)
+
+ file_count = len(
+ [
+ entry
+ for entry in os.listdir(large_scale_image_files_path)
+ if os.path.isfile(os.path.join(large_scale_image_files_path, entry))
+ ]
+ )
+ expected = Batch(
+ pd.DataFrame(
+ [f"Number of loaded {FileFormatType.IMAGE.name}: {file_count-1}"]
)
+ )
+ self.assertEqual(result, expected)
drop_query = "DROP TABLE IF EXISTS MyLargeScaleImages;"
execute_query_fetch_all(self.evadb, drop_query)