Skip to content

Instantly share code, notes, and snippets.

@prithwi
Last active November 11, 2019 16:32
Show Gist options
  • Save prithwi/d029b239b7f1de7a895e to your computer and use it in GitHub Desktop.
Save prithwi/d029b239b7f1de7a895e to your computer and use it in GitHub Desktop.
Example Choropleth map using folium
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import folium\n",
"import json\n",
"import pandas as pd \n",
"import numpy as np\n",
"import geopandas as gpd"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"'0.2.0.dev'"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"folium.__version__"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [],
"source": [
"world_json_path = './world-countries.json'\n",
"world_json = json.load(open(world_json_path))\n",
"world_json['features'][0]['id']\n",
"\n",
"countries_present = set([c['id'] for c in world_json['features']])"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>geometry</th>\n",
" <th>name</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>POLYGON ((61.210817 35.650072, 62.230651 35.27...</td>\n",
" <td>Afghanistan</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>(POLYGON ((16.326528 -5.87747, 16.57318 -6.622...</td>\n",
" <td>Angola</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>POLYGON ((20.590247 41.855404, 20.463175 41.51...</td>\n",
" <td>Albania</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>POLYGON ((51.579519 24.245497, 51.757441 24.29...</td>\n",
" <td>United Arab Emirates</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>(POLYGON ((-65.5 -55.2, -66.45 -55.25, -66.959...</td>\n",
" <td>Argentina</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" geometry name\n",
"0 POLYGON ((61.210817 35.650072, 62.230651 35.27... Afghanistan\n",
"1 (POLYGON ((16.326528 -5.87747, 16.57318 -6.622... Angola\n",
"2 POLYGON ((20.590247 41.855404, 20.463175 41.51... Albania\n",
"3 POLYGON ((51.579519 24.245497, 51.757441 24.29... United Arab Emirates\n",
"4 (POLYGON ((-65.5 -55.2, -66.45 -55.25, -66.959... Argentina"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gdf = gpd.read_file(world_json_path)\n",
"gdf.head()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>Country</th>\n",
" <th>Score</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>PER</td>\n",
" <td>Peru</td>\n",
" <td>2.810300</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>HND</td>\n",
" <td>Honduras</td>\n",
" <td>2.734521</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>GUF</td>\n",
" <td>French Guiana</td>\n",
" <td>2.730886</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>SLV</td>\n",
" <td>El Salvador</td>\n",
" <td>2.473134</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>CRI</td>\n",
" <td>Costa Rica</td>\n",
" <td>2.454963</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>PRY</td>\n",
" <td>Paraguay</td>\n",
" <td>2.273594</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>CHL</td>\n",
" <td>Chile</td>\n",
" <td>2.224596</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>ECU</td>\n",
" <td>Ecuador</td>\n",
" <td>2.106272</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>ARG</td>\n",
" <td>Argentina</td>\n",
" <td>2.077311</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>BOL</td>\n",
" <td>Bolivia</td>\n",
" <td>2.040448</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>NIC</td>\n",
" <td>Nicaragua</td>\n",
" <td>2.020579</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>COL</td>\n",
" <td>Colombia</td>\n",
" <td>1.978751</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>MEX</td>\n",
" <td>Mexico</td>\n",
" <td>1.868856</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>GTM</td>\n",
" <td>Guatemala</td>\n",
" <td>1.575945</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>PAN</td>\n",
" <td>Panama</td>\n",
" <td>1.233483</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id Country Score\n",
"0 PER Peru 2.810300\n",
"1 HND Honduras 2.734521\n",
"2 GUF French Guiana 2.730886\n",
"3 SLV El Salvador 2.473134\n",
"4 CRI Costa Rica 2.454963\n",
"5 PRY Paraguay 2.273594\n",
"6 CHL Chile 2.224596\n",
"7 ECU Ecuador 2.106272\n",
"8 ARG Argentina 2.077311\n",
"9 BOL Bolivia 2.040448\n",
"10 NIC Nicaragua 2.020579\n",
"11 COL Colombia 1.978751\n",
"12 MEX Mexico 1.868856\n",
"13 GTM Guatemala 1.575945\n",
"14 PAN Panama 1.233483"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spatial_scores = pd.read_csv('./ili_spatial_score.csv')\n",
"\n",
"spatial_scores"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"merged = gdf.merge(spatial_scores, left_on='name', right_on='Country')\n",
"spatial_gdf = gpd.GeoDataFrame(merged.iloc[:, [0, 1]])\n",
"data_df = merged.iloc[:, [2, 3, 4]]"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"geo_str = spatial_gdf.to_json()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"threshold_scale = np.linspace(1.0, 3.0, \n",
" 6, dtype=float).tolist()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <div style=\"width:100%;\">\n",
" <div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\">\n",
" <iframe src=\"data:text/html;base64,CiAgICAgICAgPCFET0NUWVBFIGh0bWw+CiAgICAgICAgPGhlYWQ+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgLz4KICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9sZWFmbGV0LzAuNy4zL2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vYWpheC5nb29nbGVhcGlzLmNvbS9hamF4L2xpYnMvanF1ZXJ5LzEuMTEuMS9qcXVlcnkubWluLmpzIj48L3NjcmlwdD4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL3Jhd2dpdGh1Yi5jb20vbHZvb2dkdC9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAvZGV2ZWxvcC9kaXN0L2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmpzIj48L3NjcmlwdD4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9sZWFmbGV0Lm1hcmtlcmNsdXN0ZXIvMC40LjAvbGVhZmxldC5tYXJrZXJjbHVzdGVyLXNyYy5qcyI+PC9zY3JpcHQ+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC5tYXJrZXJjbHVzdGVyLzAuNC4wL2xlYWZsZXQubWFya2VyY2x1c3Rlci5qcyI+PC9zY3JpcHQ+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQvMC43LjMvbGVhZmxldC5jc3MiIC8+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIgLz4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIiAvPgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2ZvbnQtYXdlc29tZS80LjEuMC9jc3MvZm9udC1hd2Vzb21lLm1pbi5jc3MiIC8+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vcmF3Z2l0LmNvbS9sdm9vZ2R0L0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC9kZXZlbG9wL2Rpc3QvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuY3NzIiAvPgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9sZWFmbGV0Lm1hcmtlcmNsdXN0ZXIvMC40LjAvTWFya2VyQ2x1c3Rlci5EZWZhdWx0LmNzcyIgLz4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC5tYXJrZXJjbHVzdGVyLzAuNC4wL01hcmtlckNsdXN0ZXIuY3NzIiAvPgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vcHl0aG9uLXZpc3VhbGl6YXRpb24vZm9saXVtL21hc3Rlci9mb2xpdW0vdGVtcGxhdGVzL2xlYWZsZXQuYXdlc29tZS5yb3RhdGUuY3NzIiAvPgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPgoKICAgICAgICAgICAgaHRtbCwgYm9keSB7CiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAjbWFwIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uOmFic29sdXRlOwogICAgICAgICAgICAgICAgdG9wOjA7CiAgICAgICAgICAgICAgICBib3R0b206MDsKICAgICAgICAgICAgICAgIHJpZ2h0OjA7CiAgICAgICAgICAgICAgICBsZWZ0OjA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjbWFwXzE1YzZhNjdkNTg3ZTQyYTNiNGZkYmZiZDFiYzQ2NWFlIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDEwMC4wJTsKICAgICAgICAgICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9kMy8zLjUuNS9kMy5taW4uanMiPjwvc2NyaXB0PgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIDwvaGVhZD4KICAgICAgICA8Ym9keT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzE1YzZhNjdkNTg3ZTQyYTNiNGZkYmZiZDFiYzQ2NWFlIiA+PC9kaXY+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgPC9ib2R5PgogICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKCiAgICAgICAgICAgIHZhciBzb3V0aFdlc3QgPSBMLmxhdExuZygtOTAsIC0xODApOwogICAgICAgICAgICB2YXIgbm9ydGhFYXN0ID0gTC5sYXRMbmcoOTAsIDE4MCk7CiAgICAgICAgICAgIHZhciBib3VuZHMgPSBMLmxhdExuZ0JvdW5kcyhzb3V0aFdlc3QsIG5vcnRoRWFzdCk7CgogICAgICAgICAgICB2YXIgbWFwXzE1YzZhNjdkNTg3ZTQyYTNiNGZkYmZiZDFiYzQ2NWFlID0gTC5tYXAoJ21hcF8xNWM2YTY3ZDU4N2U0MmEzYjRmZGJmYmQxYmM0NjVhZScsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbnRlcjpbLTE1LjAsLTYwXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHpvb206IDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyczogW10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciB0aWxlX2xheWVyXzYwOTdkNGE4MzBmZDRlMjg5YWQ0OWU2NDg5NjIwMTlkID0gTC50aWxlTGF5ZXIoCiAgICAgICAgICAgICAgICAnaHR0cHM6Ly9jYXJ0b2RiLWJhc2VtYXBzLXtzfS5nbG9iYWwuc3NsLmZhc3RseS5uZXQvbGlnaHRfYWxsL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbWF4Wm9vbTogMTgsCiAgICAgICAgICAgICAgICAgICAgbWluWm9vbTogMSwKICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGlvbjogJyhjKSA8YSBocmVmPSJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodCI+T3BlblN0cmVldE1hcDwvYT4gY29udHJpYnV0b3JzIChjKSA8YSBocmVmPSJodHRwOi8vY2FydG9kYi5jb20vYXR0cmlidXRpb25zIj5DYXJ0b0RCPC9hPiwgQ2FydG9EQiA8YSBocmVmID0iaHR0cDovL2NhcnRvZGIuY29tL2F0dHJpYnV0aW9ucyI+YXR0cmlidXRpb25zPC9hPicsCiAgICAgICAgICAgICAgICAgICAgZGV0ZWN0UmV0aW5hOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzE1YzZhNjdkNTg3ZTQyYTNiNGZkYmZiZDFiYzQ2NWFlKTsKCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGdlb19qc29uX2RkYTI3ZWE5MzNhMTRjYWI4NGQxNDQ0YjRlZmM3ZTg5ID0gTC5nZW9Kc29uKAogICAgICAgICAgICAgICAgICAgIHsidHlwZSI6ICJGZWF0dXJlQ29sbGVjdGlvbiIsICJmZWF0dXJlcyI6IFt7Imdlb21ldHJ5IjogeyJ0eXBlIjogIk11bHRpUG9seWdvbiIsICJjb29yZGluYXRlcyI6IFtbW1stNjUuNSwgLTU1LjJdLCBbLTY2LjQ1LCAtNTUuMjVdLCBbLTY2Ljk1OTkyLCAtNTQuODk2ODFdLCBbLTY3LjU2MjQ0LCAtNTQuODcwMDFdLCBbLTY4LjYzMzM1LCAtNTQuODY5NV0sIFstNjguNjM0MDEsIC01Mi42MzYzN10sIFstNjguMjUsIC01My4xXSwgWy02Ny43NSwgLTUzLjg1XSwgWy02Ni40NSwgLTU0LjQ1XSwgWy02NS4wNSwgLTU0LjddLCBbLTY1LjUsIC01NS4yXV1dLCBbW1stNjQuOTY0ODkyLCAtMjIuMDc1ODYyXSwgWy02NC4zNzcwMjEsIC0yMi43OTgwOTFdLCBbLTYzLjk4NjgzOCwgLTIxLjk5MzY0NF0sIFstNjIuODQ2NDY4LCAtMjIuMDM0OTg1XSwgWy02Mi42ODUwNTcsIC0yMi4yNDkwMjldLCBbLTYwLjg0NjU2NSwgLTIzLjg4MDcxM10sIFstNjAuMDI4OTY2LCAtMjQuMDMyNzk2XSwgWy01OC44MDcxMjgsIC0yNC43NzE0NTldLCBbLTU3Ljc3NzIxNywgLTI1LjE2MjM0XSwgWy01Ny42MzM2NiwgLTI1LjYwMzY1N10sIFstNTguNjE4MTc0LCAtMjcuMTIzNzE5XSwgWy01Ny42MDk3NiwgLTI3LjM5NTg5OV0sIFstNTYuNDg2NzAyLCAtMjcuNTQ4NDk5XSwgWy01NS42OTU4NDYsIC0yNy4zODc4MzddLCBbLTU0Ljc4ODc5NSwgLTI2LjYyMTc4Nl0sIFstNTQuNjI1MjkxLCAtMjUuNzM5MjU1XSwgWy01NC4xMzAwNSwgLTI1LjU0NzYzOV0sIFstNTMuNjI4MzQ5LCAtMjYuMTI0ODY1XSwgWy01My42NDg3MzUsIC0yNi45MjM0NzNdLCBbLTU0LjQ5MDcyNSwgLTI3LjQ3NDc1N10sIFstNTUuMTYyMjg2LCAtMjcuODgxOTE1XSwgWy01Ni4yOTA5LCAtMjguODUyNzYxXSwgWy01Ny42MjUxMzMsIC0zMC4yMTYyOTVdLCBbLTU3Ljg3NDkzNywgLTMxLjAxNjU1Nl0sIFstNTguMTQyNDQsIC0zMi4wNDQ1MDRdLCBbLTU4LjEzMjY0OCwgLTMzLjA0MDU2N10sIFstNTguMzQ5NjExLCAtMzMuMjYzMTg5XSwgWy01OC40MjcwNzQsIC0zMy45MDk0NTRdLCBbLTU4LjQ5NTQ0MiwgLTM0LjQzMTQ5XSwgWy01Ny4yMjU4MywgLTM1LjI4ODAyN10sIFstNTcuMzYyMzU5LCAtMzUuOTc3MzldLCBbLTU2LjczNzQ4NywgLTM2LjQxMzEyNl0sIFstNTYuNzg4Mjg1LCAtMzYuOTAxNTcyXSwgWy01Ny43NDkxNTcsIC0zOC4xODM4NzFdLCBbLTU5LjIzMTg1NywgLTM4LjcyMDIyXSwgWy02MS4yMzc0NDUsIC0zOC45Mjg0MjVdLCBbLTYyLjMzNTk1NywgLTM4LjgyNzcwN10sIFstNjIuMTI1NzYzLCAtMzkuNDI0MTA1XSwgWy02Mi4zMzA1MzEsIC00MC4xNzI1ODZdLCBbLTYyLjE0NTk5NCwgLTQwLjY3Njg5N10sIFstNjIuNzQ1ODAzLCAtNDEuMDI4NzYxXSwgWy02My43NzA0OTUsIC00MS4xNjY3ODldLCBbLTY0LjczMjA5LCAtNDAuODAyNjc3XSwgWy02NS4xMTgwMzUsIC00MS4wNjQzMTVdLCBbLTY0Ljk3ODU2MSwgLTQyLjA1ODAwMV0sIFstNjQuMzAzNDA4LCAtNDIuMzU5MDE2XSwgWy02My43NTU5NDgsIC00Mi4wNDM2ODddLCBbLTYzLjQ1ODA1OSwgLTQyLjU2MzEzOF0sIFstNjQuMzc4ODA0LCAtNDIuODczNTU4XSwgWy02NS4xODE4MDQsIC00My40OTUzODFdLCBbLTY1LjMyODgyMywgLTQ0LjUwMTM2Nl0sIFstNjUuNTY1MjY5LCAtNDUuMDM2Nzg2XSwgWy02Ni41MDk5NjYsIC00NS4wMzk2MjhdLCBbLTY3LjI5Mzc5NCwgLTQ1LjU1MTg5Nl0sIFstNjcuNTgwNTQ2LCAtNDYuMzAxNzczXSwgWy02Ni41OTcwNjYsIC00Ny4wMzM5MjVdLCBbLTY1LjY0MTAyNywgLTQ3LjIzNjEzNV0sIFstNjUuOTg1MDg4LCAtNDguMTMzMjg5XSwgWy02Ny4xNjYxNzksIC00OC42OTczMzddLCBbLTY3LjgxNjA4OCwgLTQ5Ljg2OTY2OV0sIFstNjguNzI4NzQ1LCAtNTAuMjY0MjE4XSwgWy02OS4xMzg1MzksIC01MC43MzI1MV0sIFstNjguODE1NTYxLCAtNTEuNzcxMTA0XSwgWy02OC4xNDk5OTUsIC01Mi4zNDk5ODNdLCBbLTY4LjU3MTU0NSwgLTUyLjI5OTQ0NF0sIFstNjkuNDk4MzYyLCAtNTIuMTQyNzYxXSwgWy03MS45MTQ4MDQsIC01Mi4wMDkwMjJdLCBbLTcyLjMyOTQwNCwgLTUxLjQyNTk1Nl0sIFstNzIuMzA5OTc0LCAtNTAuNjc3MDFdLCBbLTcyLjk3NTc0NywgLTUwLjc0MTQ1XSwgWy03My4zMjgwNTEsIC01MC4zNzg3ODVdLCBbLTczLjQxNTQzNiwgLTQ5LjMxODQzNl0sIFstNzIuNjQ4MjQ3LCAtNDguODc4NjE4XSwgWy03Mi4zMzExNjEsIC00OC4yNDQyMzhdLCBbLTcyLjQ0NzM1NSwgLTQ3LjczODUzM10sIFstNzEuOTE3MjU4LCAtNDYuODg0ODM4XSwgWy03MS41NTIwMDksIC00NS41NjA3MzNdLCBbLTcxLjY1OTMxNiwgLTQ0Ljk3MzY4OV0sIFstNzEuMjIyNzc5LCAtNDQuNzg0MjQzXSwgWy03MS4zMjk4MDEsIC00NC40MDc1MjJdLCBbLTcxLjc5MzYyMywgLTQ0LjIwNzE3Ml0sIFstNzEuNDY0MDU2LCAtNDMuNzg3NjExXSwgWy03MS45MTU0MjQsIC00My40MDg1NjVdLCBbLTcyLjE0ODg5OCwgLTQyLjI1NDg4OF0sIFstNzEuNzQ2ODA0LCAtNDIuMDUxMzg2XSwgWy03MS45MTU3MzQsIC00MC44MzIzMzldLCBbLTcxLjY4MDc2MSwgLTM5LjgwODE2NF0sIFstNzEuNDEzNTE3LCAtMzguOTE2MDIyXSwgWy03MC44MTQ2NjQsIC0zOC41NTI5OTVdLCBbLTcxLjExODYyNSwgLTM3LjU3NjgyN10sIFstNzEuMTIxODgxLCAtMzYuNjU4MTI0XSwgWy03MC4zNjQ3NjksIC0zNi4wMDUwODldLCBbLTcwLjM4ODA0OSwgLTM1LjE2OTY4OF0sIFstNjkuODE3MzA5LCAtMzQuMTkzNTcxXSwgWy02OS44MTQ3NzcsIC0zMy4yNzM4ODZdLCBbLTcwLjA3NDM5OSwgLTMzLjA5MTIxXSwgWy03MC41MzUwNjksIC0zMS4zNjUwMV0sIFstNjkuOTE5MDA4LCAtMzAuMzM2MzM5XSwgWy03MC4wMTM1NSwgLTI5LjM2NzkyM10sIFstNjkuNjU2MTMsIC0yOC40NTkxNDFdLCBbLTY5LjAwMTIzNSwgLTI3LjUyMTIxNF0sIFstNjguMjk1NTQyLCAtMjYuODk5MzRdLCBbLTY4LjU5NDgsIC0yNi41MDY5MDldLCBbLTY4LjM4NjAwMSwgLTI2LjE4NTAxNl0sIFstNjguNDE3NjUzLCAtMjQuNTE4NTU1XSwgWy02Ny4zMjg0NDMsIC0yNC4wMjUzMDNdLCBbLTY2Ljk4NTIzNCwgLTIyLjk4NjM0OV0sIFstNjcuMTA2Njc0LCAtMjIuNzM1OTI1XSwgWy02Ni4yNzMzMzksIC0yMS44MzIzMV0sIFstNjQuOTY0ODkyLCAtMjIuMDc1ODYyXV1dXX0sICJ0eXBlIjogIkZlYXR1cmUiLCAiaWQiOiAiMCIsICJwcm9wZXJ0aWVzIjogeyJzdHlsZSI6IHsiY29sb3IiOiAiYmxhY2siLCAib3BhY3RpeSI6IDEsICJmaWxsT3BhY2l0eSI6IDAuNiwgIndlaWdodCI6IDEsICJmaWxsQ29sb3IiOiAiI2QxZTVmMCJ9LCAibmFtZSI6ICJBcmdlbnRpbmEifX0sIHsiZ2VvbWV0cnkiOiB7InR5cGUiOiAiUG9seWdvbiIsICJjb29yZGluYXRlcyI6IFtbWy02Mi44NDY0NjgsIC0yMi4wMzQ5ODVdLCBbLTYzLjk4NjgzOCwgLTIxLjk5MzY0NF0sIFstNjQuMzc3MDIxLCAtMjIuNzk4MDkxXSwgWy02NC45NjQ4OTIsIC0yMi4wNzU4NjJdLCBbLTY2LjI3MzMzOSwgLTIxLjgzMjMxXSwgWy02Ny4xMDY2NzQsIC0yMi43MzU5MjVdLCBbLTY3LjgyODE4LCAtMjIuODcyOTE5XSwgWy02OC4yMTk5MTMsIC0yMS40OTQzNDddLCBbLTY4Ljc1NzE2NywgLTIwLjM3MjY1OF0sIFstNjguNDQyMjI1LCAtMTkuNDA1MDY4XSwgWy02OC45NjY4MTgsIC0xOC45ODE2ODNdLCBbLTY5LjEwMDI0NywgLTE4LjI2MDEyNV0sIFstNjkuNTkwNDI0LCAtMTcuNTgwMDEyXSwgWy02OC45NTk2MzUsIC0xNi41MDA2OThdLCBbLTY5LjM4OTc2NCwgLTE1LjY2MDEyOV0sIFstNjkuMTYwMzQ3LCAtMTUuMzIzOTc0XSwgWy02OS4zMzk1MzUsIC0xNC45NTMxOTVdLCBbLTY4Ljk0ODg4NywgLTE0LjQ1MzYzOV0sIFstNjguOTI5MjI0LCAtMTMuNjAyNjg0XSwgWy02OC44ODAwOCwgLTEyLjg5OTcyOV0sIFstNjguNjY1MDgsIC0xMi41NjEzXSwgWy02OS41Mjk2NzgsIC0xMC45NTE3MzRdLCBbLTY4Ljc4NjE1OCwgLTExLjAzNjM4XSwgWy02OC4yNzEyNTQsIC0xMS4wMTQ1MjFdLCBbLTY4LjA0ODE5MiwgLTEwLjcxMjA1OV0sIFstNjcuMTczODAxLCAtMTAuMzA2ODEyXSwgWy02Ni42NDY5MDgsIC05LjkzMTMzMV0sIFstNjUuMzM4NDM1LCAtOS43NjE5ODhdLCBbLTY1LjQ0NDgzNywgLTEwLjUxMTQ1MV0sIFstNjUuMzIxODk5LCAtMTAuODk1ODcyXSwgWy02NS40MDIyODEsIC0xMS41NjYyN10sIFstNjQuMzE2MzUzLCAtMTIuNDYxOTc4XSwgWy02My4xOTY0OTksIC0xMi42MjcwMzNdLCBbLTYyLjgwMzA2LCAtMTMuMDAwNjUzXSwgWy02Mi4xMjcwODEsIC0xMy4xOTg3ODFdLCBbLTYxLjcxMzIwNCwgLTEzLjQ4OTIwMl0sIFstNjEuMDg0MTIxLCAtMTMuNDc5Mzg0XSwgWy02MC41MDMzMDQsIC0xMy43NzU5NTVdLCBbLTYwLjQ1OTE5OCwgLTE0LjM1NDAwN10sIFstNjAuMjY0MzI2LCAtMTQuNjQ1OTc5XSwgWy02MC4yNTExNDksIC0xNS4wNzcyMTldLCBbLTYwLjU0Mjk2NiwgLTE1LjA5MzkxXSwgWy02MC4xNTgzOSwgLTE2LjI1ODI4NF0sIFstNTguMjQxMjIsIC0xNi4yOTk1NzNdLCBbLTU4LjM4ODA1OCwgLTE2Ljg3NzEwOV0sIFstNTguMjgwODA0LCAtMTcuMjcxNzFdLCBbLTU3LjczNDU1OCwgLTE3LjU1MjQ2OF0sIFstNTcuNDk4MzcxLCAtMTguMTc0MTg4XSwgWy01Ny42NzYwMDksIC0xOC45NjE4NF0sIFstNTcuOTQ5OTk3LCAtMTkuNDAwMDA0XSwgWy01Ny44NTM4MDIsIC0xOS45Njk5OTVdLCBbLTU4LjE2NjM5MiwgLTIwLjE3NjcwMV0sIFstNTguMTgzNDcxLCAtMTkuODY4Mzk5XSwgWy01OS4xMTUwNDIsIC0xOS4zNTY5MDZdLCBbLTYwLjA0MzU2NSwgLTE5LjM0Mjc0N10sIFstNjEuNzg2MzI2LCAtMTkuNjMzNzM3XSwgWy02Mi4yNjU5NjEsIC0yMC41MTM3MzVdLCBbLTYyLjI5MTE3OSwgLTIxLjA1MTYzNV0sIFstNjIuNjg1MDU3LCAtMjIuMjQ5MDI5XSwgWy02Mi44NDY0NjgsIC0yMi4wMzQ5ODVdXV19LCAidHlwZSI6ICJGZWF0dXJlIiwgImlkIjogIjEiLCAicHJvcGVydGllcyI6IHsic3R5bGUiOiB7ImNvbG9yIjogImJsYWNrIiwgIm9wYWN0aXkiOiAxLCAiZmlsbE9wYWNpdHkiOiAwLjYsICJ3ZWlnaHQiOiAxLCAiZmlsbENvbG9yIjogIiNkMWU1ZjAifSwgIm5hbWUiOiAiQm9saXZpYSJ9fSwgeyJnZW9tZXRyeSI6IHsidHlwZSI6ICJNdWx0aVBvbHlnb24iLCAiY29vcmRpbmF0ZXMiOiBbW1tbLTY4LjYzNDAxLCAtNTIuNjM2MzddLCBbLTY4LjYzMzM1LCAtNTQuODY5NV0sIFstNjcuNTYyNDQsIC01NC44NzAwMV0sIFstNjYuOTU5OTIsIC01NC44OTY4MV0sIFstNjcuMjkxMDMsIC01NS4zMDEyNF0sIFstNjguMTQ4NjMsIC01NS42MTE4M10sIFstNjguNjM5OTkxLCAtNTUuNTgwMDE4XSwgWy02OS4yMzIxLCAtNTUuNDk5MDZdLCBbLTY5Ljk1ODA5LCAtNTUuMTk4NDNdLCBbLTcxLjAwNTY4LCAtNTUuMDUzODNdLCBbLTcyLjI2MzksIC01NC40OTUxNF0sIFstNzMuMjg1MiwgLTUzLjk1NzUyXSwgWy03NC42NjI1MywgLTUyLjgzNzQ5XSwgWy03My44MzgxLCAtNTMuMDQ3NDNdLCBbLTcyLjQzNDE4LCAtNTMuNzE1NF0sIFstNzEuMTA3NzMsIC01NC4wNzQzM10sIFstNzAuNTkxNzgsIC01My42MTU4M10sIFstNzAuMjY3NDgsIC01Mi45MzEyM10sIFstNjkuMzQ1NjUsIC01Mi41MTgzXSwgWy02OC42MzQwMSwgLTUyLjYzNjM3XV1dLCBbW1stNjguMjE5OTEzLCAtMjEuNDk0MzQ3XSwgWy02Ny44MjgxOCwgLTIyLjg3MjkxOV0sIFstNjcuMTA2Njc0LCAtMjIuNzM1OTI1XSwgWy02Ni45ODUyMzQsIC0yMi45ODYzNDldLCBbLTY3LjMyODQ0MywgLTI0LjAyNTMwM10sIFstNjguNDE3NjUzLCAtMjQuNTE4NTU1XSwgWy02OC4zODYwMDEsIC0yNi4xODUwMTZdLCBbLTY4LjU5NDgsIC0yNi41MDY5MDldLCBbLTY4LjI5NTU0MiwgLTI2Ljg5OTM0XSwgWy02OS4wMDEyMzUsIC0yNy41MjEyMTRdLCBbLTY5LjY1NjEzLCAtMjguNDU5MTQxXSwgWy03MC4wMTM1NSwgLTI5LjM2NzkyM10sIFstNjkuOTE5MDA4LCAtMzAuMzM2MzM5XSwgWy03MC41MzUwNjksIC0zMS4zNjUwMV0sIFstNzAuMDc0Mzk5LCAtMzMuMDkxMjFdLCBbLTY5LjgxNDc3NywgLTMzLjI3Mzg4Nl0sIFstNjkuODE3MzA5LCAtMzQuMTkzNTcxXSwgWy03MC4zODgwNDksIC0zNS4xNjk2ODhdLCBbLTcwLjM2NDc2OSwgLTM2LjAwNTA4OV0sIFstNzEuMTIxODgxLCAtMzYuNjU4MTI0XSwgWy03MS4xMTg2MjUsIC0zNy41NzY4MjddLCBbLTcwLjgxNDY2NCwgLTM4LjU1Mjk5NV0sIFstNzEuNDEzNTE3LCAtMzguOTE2MDIyXSwgWy03MS42ODA3NjEsIC0zOS44MDgxNjRdLCBbLTcxLjkxNTczNCwgLTQwLjgzMjMzOV0sIFstNzEuNzQ2ODA0LCAtNDIuMDUxMzg2XSwgWy03Mi4xNDg4OTgsIC00Mi4yNTQ4ODhdLCBbLTcxLjkxNTQyNCwgLTQzLjQwODU2NV0sIFstNzEuNDY0MDU2LCAtNDMuNzg3NjExXSwgWy03MS43OTM2MjMsIC00NC4yMDcxNzJdLCBbLTcxLjMyOTgwMSwgLTQ0LjQwNzUyMl0sIFstNzEuMjIyNzc5LCAtNDQuNzg0MjQzXSwgWy03MS42NTkzMTYsIC00NC45NzM2ODldLCBbLTcxLjU1MjAwOSwgLTQ1LjU2MDczM10sIFstNzEuOTE3MjU4LCAtNDYuODg0ODM4XSwgWy03Mi40NDczNTUsIC00Ny43Mzg1MzNdLCBbLTcyLjMzMTE2MSwgLTQ4LjI0NDIzOF0sIFstNzIuNjQ4MjQ3LCAtNDguODc4NjE4XSwgWy03My40MTU0MzYsIC00OS4zMTg0MzZdLCBbLTczLjMyODA1MSwgLTUwLjM3ODc4NV0sIFstNzIuOTc1NzQ3LCAtNTAuNzQxNDVdLCBbLTcyLjMwOTk3NCwgLTUwLjY3NzAxXSwgWy03Mi4zMjk0MDQsIC01MS40MjU5NTZdLCBbLTcxLjkxNDgwNCwgLTUyLjAwOTAyMl0sIFstNjkuNDk4MzYyLCAtNTIuMTQyNzYxXSwgWy02OC41NzE1NDUsIC01Mi4yOTk0NDRdLCBbLTY5LjQ2MTI4NCwgLTUyLjI5MTk1MV0sIFstNjkuOTQyNzgsIC01Mi41Mzc5MzFdLCBbLTcwLjg0NTEwMiwgLTUyLjg5OTIwMV0sIFstNzEuMDA2MzMyLCAtNTMuODMzMjUyXSwgWy03MS40Mjk3OTUsIC01My44NTY0NTVdLCBbLTcyLjU1Nzk0MywgLTUzLjUzMTQxXSwgWy03My43MDI3NTcsIC01Mi44MzUwNjldLCBbLTczLjcwMjc1NywgLTUyLjgzNTA3XSwgWy03NC45NDY3NjMsIC01Mi4yNjI3NTRdLCBbLTc1LjI2MDAyNiwgLTUxLjYyOTM1NV0sIFstNzQuOTc2NjMyLCAtNTEuMDQzMzk2XSwgWy03NS40Nzk3NTQsIC01MC4zNzgzNzJdLCBbLTc1LjYwODAxNSwgLTQ4LjY3Mzc3M10sIFstNzUuMTgyNzcsIC00Ny43MTE5MTldLCBbLTc0LjEyNjU4MSwgLTQ2LjkzOTI1M10sIFstNzUuNjQ0Mzk1LCAtNDYuNjQ3NjQzXSwgWy03NC42OTIxNTQsIC00NS43NjM5NzZdLCBbLTc0LjM1MTcwOSwgLTQ0LjEwMzA0NF0sIFstNzMuMjQwMzU2LCAtNDQuNDU0OTYxXSwgWy03Mi43MTc4MDQsIC00Mi4zODMzNTZdLCBbLTczLjM4ODksIC00Mi4xMTc1MzJdLCBbLTczLjcwMTMzNiwgLTQzLjM2NTc3Nl0sIFstNzQuMzMxOTQzLCAtNDMuMjI0OTU4XSwgWy03NC4wMTc5NTcsIC00MS43OTQ4MTNdLCBbLTczLjY3NzA5OSwgLTM5Ljk0MjIxM10sIFstNzMuMjE3NTkzLCAtMzkuMjU4Njg5XSwgWy03My41MDU1NTksIC0zOC4yODI4ODNdLCBbLTczLjU4ODA2MSwgLTM3LjE1NjI4NV0sIFstNzMuMTY2NzE3LCAtMzcuMTIzNzhdLCBbLTcyLjU1MzEzNywgLTM1LjUwODg0XSwgWy03MS44NjE3MzIsIC0zMy45MDkwOTNdLCBbLTcxLjQzODQ1LCAtMzIuNDE4ODk5XSwgWy03MS42Njg3MjEsIC0zMC45MjA2NDVdLCBbLTcxLjM3MDA4MywgLTMwLjA5NTY4Ml0sIFstNzEuNDg5ODk0LCAtMjguODYxNDQyXSwgWy03MC45MDUxMjQsIC0yNy42NDAzOF0sIFstNzAuNzI0OTU0LCAtMjUuNzA1OTI0XSwgWy03MC40MDM5NjYsIC0yMy42Mjg5OTddLCBbLTcwLjA5MTI0NiwgLTIxLjM5MzMxOV0sIFstNzAuMTY0NDIsIC0xOS43NTY0NjhdLCBbLTcwLjM3MjU3MiwgLTE4LjM0Nzk3NV0sIFstNjkuODU4NDQ0LCAtMTguMDkyNjk0XSwgWy02OS41OTA0MjQsIC0xNy41ODAwMTJdLCBbLTY5LjEwMDI0NywgLTE4LjI2MDEyNV0sIFstNjguOTY2ODE4LCAtMTguOTgxNjgzXSwgWy02OC40NDIyMjUsIC0xOS40MDUwNjhdLCBbLTY4Ljc1NzE2NywgLTIwLjM3MjY1OF0sIFstNjguMjE5OTEzLCAtMjEuNDk0MzQ3XV1dXX0sICJ0eXBlIjogIkZlYXR1cmUiLCAiaWQiOiAiMiIsICJwcm9wZXJ0aWVzIjogeyJzdHlsZSI6IHsiY29sb3IiOiAiYmxhY2siLCAib3BhY3RpeSI6IDEsICJmaWxsT3BhY2l0eSI6IDAuNiwgIndlaWdodCI6IDEsICJmaWxsQ29sb3IiOiAiIzY3YTljZiJ9LCAibmFtZSI6ICJDaGlsZSJ9fSwgeyJnZW9tZXRyeSI6IHsidHlwZSI6ICJQb2x5Z29uIiwgImNvb3JkaW5hdGVzIjogW1tbLTc1LjM3MzIyMywgLTAuMTUyMDMyXSwgWy03NS44MDE0NjYsIDAuMDg0ODAxXSwgWy03Ni4yOTIzMTQsIDAuNDE2MDQ3XSwgWy03Ni41NzYzOCwgMC4yNTY5MzZdLCBbLTc3LjQyNDk4NCwgMC4zOTU2ODddLCBbLTc3LjY2ODYxMywgMC44MjU4OTNdLCBbLTc3Ljg1NTA2MSwgMC44MDk5MjVdLCBbLTc4Ljg1NTI1OSwgMS4zODA5MjRdLCBbLTc4Ljk5MDkzNSwgMS42OTEzN10sIFstNzguNjE3ODMxLCAxLjc2NjQwNF0sIFstNzguNjYyMTE4LCAyLjI2NzM1NV0sIFstNzguNDI3NjEsIDIuNjI5NTU2XSwgWy03Ny45MzE1NDMsIDIuNjk2NjA2XSwgWy03Ny41MTA0MzEsIDMuMzI1MDE3XSwgWy03Ny4xMjc2OSwgMy44NDk2MzZdLCBbLTc3LjQ5NjI3MiwgNC4wODc2MDZdLCBbLTc3LjMwNzYwMSwgNC42Njc5ODRdLCBbLTc3LjUzMzIyMSwgNS41ODI4MTJdLCBbLTc3LjMxODgxNSwgNS44NDUzNTRdLCBbLTc3LjQ3NjY2MSwgNi42OTExMTZdLCBbLTc3Ljg4MTU3MSwgNy4yMjM3NzFdLCBbLTc3Ljc1MzQxNCwgNy43MDk4NF0sIFstNzcuNDMxMTA4LCA3LjYzODA2MV0sIFstNzcuMjQyNTY2LCA3LjkzNTI3OF0sIFstNzcuNDc0NzIzLCA4LjUyNDI4Nl0sIFstNzcuMzUzMzYxLCA4LjY3MDUwNV0sIFstNzYuODM2Njc0LCA4LjYzODc0OV0sIFstNzYuMDg2Mzg0LCA5LjMzNjgyMV0sIFstNzUuNjc0NiwgOS40NDMyNDhdLCBbLTc1LjY2NDcwNCwgOS43NzQwMDNdLCBbLTc1LjQ4MDQyNiwgMTAuNjE4OTldLCBbLTc0LjkwNjg5NSwgMTEuMDgzMDQ1XSwgWy03NC4yNzY3NTMsIDExLjEwMjAzNl0sIFstNzQuMTk3MjIzLCAxMS4zMTA0NzNdLCBbLTczLjQxNDc2NCwgMTEuMjI3MDE1XSwgWy03Mi42Mjc4MzUsIDExLjczMTk3Ml0sIFstNzIuMjM4MTk1LCAxMS45NTU1NV0sIFstNzEuNzU0MDksIDEyLjQzNzMwM10sIFstNzEuMzk5ODIyLCAxMi4zNzYwNDFdLCBbLTcxLjEzNzQ2MSwgMTIuMTEyOTgyXSwgWy03MS4zMzE1ODQsIDExLjc3NjI4NF0sIFstNzEuOTczOTIyLCAxMS42MDg2NzJdLCBbLTcyLjIyNzU3NSwgMTEuMTA4NzAyXSwgWy03Mi42MTQ2NTgsIDEwLjgyMTk3NV0sIFstNzIuOTA1Mjg2LCAxMC40NTAzNDRdLCBbLTczLjAyNzYwNCwgOS43MzY3N10sIFstNzMuMzA0OTUyLCA5LjE1Ml0sIFstNzIuNzg4NzMsIDkuMDg1MDI3XSwgWy03Mi42NjA0OTUsIDguNjI1Mjg4XSwgWy03Mi40Mzk4NjIsIDguNDA1Mjc1XSwgWy03Mi4zNjA5MDEsIDguMDAyNjM4XSwgWy03Mi40Nzk2NzksIDcuNjMyNTA2XSwgWy03Mi40NDQ0ODcsIDcuNDIzNzg1XSwgWy03Mi4xOTgzNTIsIDcuMzQwNDMxXSwgWy03MS45NjAxNzYsIDYuOTkxNjE1XSwgWy03MC42NzQyMzQsIDcuMDg3Nzg1XSwgWy03MC4wOTMzMTMsIDYuOTYwMzc2XSwgWy02OS4zODk0OCwgNi4wOTk4NjFdLCBbLTY4Ljk4NTMxOSwgNi4yMDY4MDVdLCBbLTY4LjI2NTA1MiwgNi4xNTMyNjhdLCBbLTY3LjY5NTA4NywgNi4yNjczMThdLCBbLTY3LjM0MTQ0LCA2LjA5NTQ2OF0sIFstNjcuNTIxNTMyLCA1LjU1Njg3XSwgWy02Ny43NDQ2OTcsIDUuMjIxMTI5XSwgWy02Ny44MjMwMTIsIDQuNTAzOTM3XSwgWy02Ny42MjE4MzYsIDMuODM5NDgyXSwgWy02Ny4zMzc1NjQsIDMuNTQyMzQyXSwgWy02Ny4zMDMxNzMsIDMuMzE4NDU0XSwgWy02Ny44MDk5MzgsIDIuODIwNjU1XSwgWy02Ny40NDcwOTIsIDIuNjAwMjgxXSwgWy02Ny4xODEyOTQsIDIuMjUwNjM4XSwgWy02Ni44NzYzMjYsIDEuMjUzMzYxXSwgWy02Ny4wNjUwNDgsIDEuMTMwMTEyXSwgWy02Ny4yNTk5OTgsIDEuNzE5OTk5XSwgWy02Ny41Mzc4MSwgMi4wMzcxNjNdLCBbLTY3Ljg2ODU2NSwgMS42OTI0NTVdLCBbLTY5LjgxNjk3MywgMS43MTQ4MDVdLCBbLTY5LjgwNDU5NywgMS4wODkwODFdLCBbLTY5LjIxODYzOCwgMC45ODU2NzddLCBbLTY5LjI1MjQzNCwgMC42MDI2NTFdLCBbLTY5LjQ1MjM5NiwgMC43MDYxNTldLCBbLTcwLjAxNTU2NiwgMC41NDE0MTRdLCBbLTcwLjAyMDY1NiwgLTAuMTg1MTU2XSwgWy02OS41NzcwNjUsIC0wLjU0OTk5Ml0sIFstNjkuNDIwNDg2LCAtMS4xMjI2MTldLCBbLTY5LjQ0NDEwMiwgLTEuNTU2Mjg3XSwgWy02OS44OTM2MzUsIC00LjI5ODE4N10sIFstNzAuMzk0MDQ0LCAtMy43NjY1OTFdLCBbLTcwLjY5MjY4MiwgLTMuNzQyODcyXSwgWy03MC4wNDc3MDksIC0yLjcyNTE1Nl0sIFstNzAuODEzNDc2LCAtMi4yNTY4NjVdLCBbLTcxLjQxMzY0NiwgLTIuMzQyODAyXSwgWy03MS43NzQ3NjEsIC0yLjE2OTc5XSwgWy03Mi4zMjU3ODcsIC0yLjQzNDIxOF0sIFstNzMuMDcwMzkyLCAtMi4zMDg5NTRdLCBbLTczLjY1OTUwNCwgLTEuMjYwNDkxXSwgWy03NC4xMjIzOTUsIC0xLjAwMjgzM10sIFstNzQuNDQxNjAxLCAtMC41MzA4Ml0sIFstNzUuMTA2NjI1LCAtMC4wNTcyMDVdLCBbLTc1LjM3MzIyMywgLTAuMTUyMDMyXV1dfSwgInR5cGUiOiAiRmVhdHVyZSIsICJpZCI6ICIzIiwgInByb3BlcnRpZXMiOiB7InN0eWxlIjogeyJjb2xvciI6ICJibGFjayIsICJvcGFjdGl5IjogMSwgImZpbGxPcGFjaXR5IjogMC42LCAid2VpZ2h0IjogMSwgImZpbGxDb2xvciI6ICIjZDFlNWYwIn0sICJuYW1lIjogIkNvbG9tYmlhIn19LCB7Imdlb21ldHJ5IjogeyJ0eXBlIjogIlBvbHlnb24iLCAiY29vcmRpbmF0ZXMiOiBbW1stODIuOTY1NzgzLCA4LjIyNTAyOF0sIFstODMuNTA4NDM3LCA4LjQ0NjkyN10sIFstODMuNzExNDc0LCA4LjY1NjgzNl0sIFstODMuNTk2MzEzLCA4LjgzMDQ0M10sIFstODMuNjMyNjQyLCA5LjA1MTM4Nl0sIFstODMuOTA5ODg2LCA5LjI5MDgwM10sIFstODQuMzAzNDAyLCA5LjQ4NzM1NF0sIFstODQuNjQ3NjQ0LCA5LjYxNTUzN10sIFstODQuNzEzMzUxLCA5LjkwODA1Ml0sIFstODQuOTc1NjYsIDEwLjA4NjcyM10sIFstODQuOTExMzc1LCA5Ljc5NTk5Ml0sIFstODUuMTEwOTIzLCA5LjU1NzA0XSwgWy04NS4zMzk0ODgsIDkuODM0NTQyXSwgWy04NS42NjA3ODcsIDkuOTMzMzQ3XSwgWy04NS43OTc0NDUsIDEwLjEzNDg4Nl0sIFstODUuNzkxNzA5LCAxMC40MzkzMzddLCBbLTg1LjY1OTMxNCwgMTAuNzU0MzMxXSwgWy04NS45NDE3MjUsIDEwLjg5NTI3OF0sIFstODUuNzEyNTQsIDExLjA4ODQ0NV0sIFstODUuNTYxODUyLCAxMS4yMTcxMTldLCBbLTg0LjkwMzAwMywgMTAuOTUyMzAzXSwgWy04NC42NzMwNjksIDExLjA4MjY1N10sIFstODQuMzU1OTMxLCAxMC45OTkyMjZdLCBbLTg0LjE5MDE3OSwgMTAuNzkzNDVdLCBbLTgzLjg5NTA1NCwgMTAuNzI2ODM5XSwgWy04My42NTU2MTIsIDEwLjkzODc2NF0sIFstODMuNDAyMzIsIDEwLjM5NTQzOF0sIFstODMuMDE1Njc3LCA5Ljk5Mjk4Ml0sIFstODIuNTQ2MTk2LCA5LjU2NjEzNV0sIFstODIuOTMyODkxLCA5LjQ3NjgxMl0sIFstODIuOTI3MTU1LCA5LjA3NDMzXSwgWy04Mi43MTkxODMsIDguOTI1NzA5XSwgWy04Mi44Njg2NTcsIDguODA3MjY2XSwgWy04Mi44Mjk3NzEsIDguNjI2Mjk1XSwgWy04Mi45MTMxNzYsIDguNDIzNTE3XSwgWy04Mi45NjU3ODMsIDguMjI1MDI4XV1dfSwgInR5cGUiOiAiRmVhdHVyZSIsICJpZCI6ICI0IiwgInByb3BlcnRpZXMiOiB7InN0eWxlIjogeyJjb2xvciI6ICJibGFjayIsICJvcGFjdGl5IjogMSwgImZpbGxPcGFjaXR5IjogMC42LCAid2VpZ2h0IjogMSwgImZpbGxDb2xvciI6ICIjNjdhOWNmIn0sICJuYW1lIjogIkNvc3RhIFJpY2EifX0sIHsiZ2VvbWV0cnkiOiB7InR5cGUiOiAiUG9seWdvbiIsICJjb29yZGluYXRlcyI6IFtbWy04MC4zMDI1NjEsIC0zLjQwNDg1Nl0sIFstNzkuNzcwMjkzLCAtMi42NTc1MTJdLCBbLTc5Ljk4NjU1OSwgLTIuMjIwNzk0XSwgWy04MC4zNjg3ODQsIC0yLjY4NTE1OV0sIFstODAuOTY3NzY1LCAtMi4yNDY5NDNdLCBbLTgwLjc2NDgwNiwgLTEuOTY1MDQ4XSwgWy04MC45MzM2NTksIC0xLjA1NzQ1NV0sIFstODAuNTgzMzcsIC0wLjkwNjY2M10sIFstODAuMzk5MzI1LCAtMC4yODM3MDNdLCBbLTgwLjAyMDg5OCwgMC4zNjAzNF0sIFstODAuMDkwNjEsIDAuNzY4NDI5XSwgWy03OS41NDI3NjIsIDAuOTgyOTM4XSwgWy03OC44NTUyNTksIDEuMzgwOTI0XSwgWy03Ny44NTUwNjEsIDAuODA5OTI1XSwgWy03Ny42Njg2MTMsIDAuODI1ODkzXSwgWy03Ny40MjQ5ODQsIDAuMzk1Njg3XSwgWy03Ni41NzYzOCwgMC4yNTY5MzZdLCBbLTc2LjI5MjMxNCwgMC40MTYwNDddLCBbLTc1LjgwMTQ2NiwgMC4wODQ4MDFdLCBbLTc1LjM3MzIyMywgLTAuMTUyMDMyXSwgWy03NS4yMzM3MjMsIC0wLjkxMTQxN10sIFstNzUuNTQ0OTk2LCAtMS41NjE2MV0sIFstNzYuNjM1Mzk0LCAtMi42MDg2NzhdLCBbLTc3LjgzNzkwNSwgLTMuMDAzMDIxXSwgWy03OC40NTA2ODQsIC0zLjg3MzA5N10sIFstNzguNjM5ODk3LCAtNC41NDc3ODRdLCBbLTc5LjIwNTI4OSwgLTQuOTU5MTI5XSwgWy03OS42MjQ5NzksIC00LjQ1NDE5OF0sIFstODAuMDI4OTA4LCAtNC4zNDYwOTFdLCBbLTgwLjQ0MjI0MiwgLTQuNDI1NzI0XSwgWy04MC40NjkyOTUsIC00LjA1OTI4N10sIFstODAuMTg0MDE1LCAtMy44MjExNjJdLCBbLTgwLjMwMjU2MSwgLTMuNDA0ODU2XV1dfSwgInR5cGUiOiAiRmVhdHVyZSIsICJpZCI6ICI1IiwgInByb3BlcnRpZXMiOiB7InN0eWxlIjogeyJjb2xvciI6ICJibGFjayIsICJvcGFjdGl5IjogMSwgImZpbGxPcGFjaXR5IjogMC42LCAid2VpZ2h0IjogMSwgImZpbGxDb2xvciI6ICIjZDFlNWYwIn0sICJuYW1lIjogIkVjdWFkb3IifX0sIHsiZ2VvbWV0cnkiOiB7InR5cGUiOiAiUG9seWdvbiIsICJjb29yZGluYXRlcyI6IFtbWy05MC4wOTU1NTUsIDEzLjczNTMzOF0sIFstOTAuNjA4NjI0LCAxMy45MDk3NzFdLCBbLTkxLjIzMjQxLCAxMy45Mjc4MzJdLCBbLTkxLjY4OTc0NywgMTQuMTI2MjE4XSwgWy05Mi4yMjc3NSwgMTQuNTM4ODI5XSwgWy05Mi4yMDMyMywgMTQuODMwMTAzXSwgWy05Mi4wODcyMTYsIDE1LjA2NDU4NV0sIFstOTIuMjI5MjQ5LCAxNS4yNTE0NDddLCBbLTkxLjc0Nzk2LCAxNi4wNjY1NjVdLCBbLTkwLjQ2NDQ3MywgMTYuMDY5NTYyXSwgWy05MC40Mzg4NjcsIDE2LjQxMDExXSwgWy05MC42MDA4NDcsIDE2LjQ3MDc3OF0sIFstOTAuNzExODIyLCAxNi42ODc0ODNdLCBbLTkxLjA4MTY3LCAxNi45MTg0NzddLCBbLTkxLjQ1MzkyMSwgMTcuMjUyMTc3XSwgWy05MS4wMDIyNjksIDE3LjI1NDY1OF0sIFstOTEuMDAxNTIsIDE3LjgxNzU5NV0sIFstOTAuMDY3OTM0LCAxNy44MTkzMjZdLCBbLTg5LjE0MzA4LCAxNy44MDgzMTldLCBbLTg5LjE1MDgwNiwgMTcuMDE1NTc3XSwgWy04OS4yMjkxMjIsIDE1Ljg4NjkzOF0sIFstODguOTMwNjEzLCAxNS44ODcyNzNdLCBbLTg4LjYwNDU4NiwgMTUuNzA2MzhdLCBbLTg4LjUxODM2NCwgMTUuODU1Mzg5XSwgWy04OC4yMjUwMjMsIDE1LjcyNzcyMl0sIFstODguNjgwNjgsIDE1LjM0NjI0N10sIFstODkuMTU0ODExLCAxNS4wNjY0MTldLCBbLTg5LjIyNTIyLCAxNC44NzQyODZdLCBbLTg5LjE0NTUzNSwgMTQuNjc4MDE5XSwgWy04OS4zNTMzMjYsIDE0LjQyNDEzM10sIFstODkuNTg3MzQzLCAxNC4zNjI1ODZdLCBbLTg5LjUzNDIxOSwgMTQuMjQ0ODE2XSwgWy04OS43MjE5MzQsIDE0LjEzNDIyOF0sIFstOTAuMDY0Njc4LCAxMy44ODE5N10sIFstOTAuMDk1NTU1LCAxMy43MzUzMzhdXV19LCAidHlwZSI6ICJGZWF0dXJlIiwgImlkIjogIjYiLCAicHJvcGVydGllcyI6IHsic3R5bGUiOiB7ImNvbG9yIjogImJsYWNrIiwgIm9wYWN0aXkiOiAxLCAiZmlsbE9wYWNpdHkiOiAwLjYsICJ3ZWlnaHQiOiAxLCAiZmlsbENvbG9yIjogIiNmZGRiYzcifSwgIm5hbWUiOiAiR3VhdGVtYWxhIn19LCB7Imdlb21ldHJ5IjogeyJ0eXBlIjogIlBvbHlnb24iLCAiY29vcmRpbmF0ZXMiOiBbW1stODcuMzE2NjU0LCAxMi45ODQ2ODZdLCBbLTg3LjQ4OTQwOSwgMTMuMjk3NTM1XSwgWy04Ny43OTMxMTEsIDEzLjM4NDQ4XSwgWy04Ny43MjM1MDMsIDEzLjc4NTA1XSwgWy04Ny44NTk1MTUsIDEzLjg5MzMxMl0sIFstODguMDY1MzQzLCAxMy45NjQ2MjZdLCBbLTg4LjUwMzk5OCwgMTMuODQ1NDg2XSwgWy04OC41NDEyMzEsIDEzLjk4MDE1NV0sIFstODguODQzMDczLCAxNC4xNDA1MDddLCBbLTg5LjA1ODUxMiwgMTQuMzQwMDI5XSwgWy04OS4zNTMzMjYsIDE0LjQyNDEzM10sIFstODkuMTQ1NTM1LCAxNC42NzgwMTldLCBbLTg5LjIyNTIyLCAxNC44NzQyODZdLCBbLTg5LjE1NDgxMSwgMTUuMDY2NDE5XSwgWy04OC42ODA2OCwgMTUuMzQ2MjQ3XSwgWy04OC4yMjUwMjMsIDE1LjcyNzcyMl0sIFstODguMTIxMTUzLCAxNS42ODg2NTVdLCBbLTg3LjkwMTgxMywgMTUuODY0NDU4XSwgWy04Ny42MTU2OCwgMTUuODc4Nzk5XSwgWy04Ny41MjI5MjEsIDE1Ljc5NzI3OV0sIFstODcuMzY3NzYyLCAxNS44NDY5NF0sIFstODYuOTAzMTkxLCAxNS43NTY3MTNdLCBbLTg2LjQ0MDk0NiwgMTUuNzgyODM1XSwgWy04Ni4xMTkyMzQsIDE1Ljg5MzQ0OV0sIFstODYuMDAxOTU0LCAxNi4wMDU0MDZdLCBbLTg1LjY4MzMxNywgMTUuOTUzNjUyXSwgWy04NS40NDQwMDQsIDE1Ljg4NTc0OV0sIFstODUuMTgyNDQ0LCAxNS45MDkxNThdLCBbLTg0Ljk4MzcyMiwgMTUuOTk1OTIzXSwgWy04NC41MjY5OCwgMTUuODU3MjI0XSwgWy04NC4zNjgyNTYsIDE1LjgzNTE1OF0sIFstODQuMDYzMDU1LCAxNS42NDgyNDRdLCBbLTgzLjc3Mzk3NywgMTUuNDI0MDcyXSwgWy04My40MTAzODEsIDE1LjI3MDkwM10sIFstODMuMTQ3MjE5LCAxNC45OTU4MjldLCBbLTgzLjQ4OTk4OSwgMTUuMDE2MjY3XSwgWy04My42Mjg1ODUsIDE0Ljg4MDA3NF0sIFstODMuOTc1NzIxLCAxNC43NDk0MzZdLCBbLTg0LjIyODM0MiwgMTQuNzQ4NzY0XSwgWy04NC40NDkzMzYsIDE0LjYyMTYxNF0sIFstODQuNjQ5NTgyLCAxNC42NjY4MDVdLCBbLTg0LjgyMDAzNywgMTQuODE5NTg3XSwgWy04NC45MjQ1MDEsIDE0Ljc5MDQ5M10sIFstODUuMDUyNzg3LCAxNC41NTE1NDFdLCBbLTg1LjE0ODc1MSwgMTQuNTYwMTk3XSwgWy04NS4xNjUzNjUsIDE0LjM1NDM3XSwgWy04NS41MTQ0MTMsIDE0LjA3OTAxMl0sIFstODUuNjk4NjY1LCAxMy45NjAwNzhdLCBbLTg1LjgwMTI5NSwgMTMuODM2MDU1XSwgWy04Ni4wOTYyNjQsIDE0LjAzODE4N10sIFstODYuMzEyMTQyLCAxMy43NzEzNTZdLCBbLTg2LjUyMDcwOCwgMTMuNzc4NDg3XSwgWy04Ni43NTUwODcsIDEzLjc1NDg0NV0sIFstODYuNzMzODIyLCAxMy4yNjMwOTNdLCBbLTg2Ljg4MDU1NywgMTMuMjU0MjA0XSwgWy04Ny4wMDU3NjksIDEzLjAyNTc5NF0sIFstODcuMzE2NjU0LCAxMi45ODQ2ODZdXV19LCAidHlwZSI6ICJGZWF0dXJlIiwgImlkIjogIjciLCAicHJvcGVydGllcyI6IHsic3R5bGUiOiB7ImNvbG9yIjogImJsYWNrIiwgIm9wYWN0aXkiOiAxLCAiZmlsbE9wYWNpdHkiOiAwLjYsICJ3ZWlnaHQiOiAxLCAiZmlsbENvbG9yIjogIiMyMTY2YWMifSwgIm5hbWUiOiAiSG9uZHVyYXMifX0sIHsiZ2VvbWV0cnkiOiB7InR5cGUiOiAiUG9seWdvbiIsICJjb29yZGluYXRlcyI6IFtbWy05Ny4xNDAwMDgsIDI1Ljg2OTk5N10sIFstOTcuNTI4MDcyLCAyNC45OTIxNDRdLCBbLTk3LjcwMjk0NiwgMjQuMjcyMzQzXSwgWy05Ny43NzYwNDIsIDIyLjkzMjU4XSwgWy05Ny44NzIzNjcsIDIyLjQ0NDIxMl0sIFstOTcuNjk5MDQ0LCAyMS44OTg2ODldLCBbLTk3LjM4ODk2LCAyMS40MTEwMTldLCBbLTk3LjE4OTMzMywgMjAuNjM1NDMzXSwgWy05Ni41MjU1NzYsIDE5Ljg5MDkzMV0sIFstOTYuMjkyMTI3LCAxOS4zMjAzNzFdLCBbLTk1LjkwMDg4NSwgMTguODI4MDI0XSwgWy05NC44MzkwNjMsIDE4LjU2MjcxN10sIFstOTQuNDI1NzMsIDE4LjE0NDM3MV0sIFstOTMuNTQ4NjUxLCAxOC40MjM4MzddLCBbLTkyLjc4NjExNCwgMTguNTI0ODM5XSwgWy05Mi4wMzczNDgsIDE4LjcwNDU2OV0sIFstOTEuNDA3OTAzLCAxOC44NzYwODNdLCBbLTkwLjc3MTg3LCAxOS4yODQxMl0sIFstOTAuNTMzNTksIDE5Ljg2NzQxOF0sIFstOTAuNDUxNDc2LCAyMC43MDc1MjJdLCBbLTkwLjI3ODYxOCwgMjAuOTk5ODU1XSwgWy04OS42MDEzMjEsIDIxLjI2MTcyNl0sIFstODguNTQzODY2LCAyMS40OTM2NzVdLCBbLTg3LjY1ODQxNywgMjEuNDU4ODQ2XSwgWy04Ny4wNTE4OSwgMjEuNTQzNTQzXSwgWy04Ni44MTE5ODIsIDIxLjMzMTUxNV0sIFstODYuODQ1OTA4LCAyMC44NDk4NjVdLCBbLTg3LjM4MzI5MSwgMjAuMjU1NDA1XSwgWy04Ny42MjEwNTQsIDE5LjY0NjU1M10sIFstODcuNDM2NzUsIDE5LjQ3MjQwM10sIFstODcuNTg2NTYsIDE5LjA0MDEzXSwgWy04Ny44MzcxOTEsIDE4LjI1OTgxNl0sIFstODguMDkwNjY0LCAxOC41MTY2NDhdLCBbLTg4LjMwMDAzMSwgMTguNDk5OTgyXSwgWy04OC40OTAxMjMsIDE4LjQ4NjgzMV0sIFstODguODQ4MzQ0LCAxNy44ODMxOThdLCBbLTg5LjAyOTg1NywgMTguMDAxNTExXSwgWy04OS4xNTA5MDksIDE3Ljk1NTQ2OF0sIFstODkuMTQzMDgsIDE3LjgwODMxOV0sIFstOTAuMDY3OTM0LCAxNy44MTkzMjZdLCBbLTkxLjAwMTUyLCAxNy44MTc1OTVdLCBbLTkxLjAwMjI2OSwgMTcuMjU0NjU4XSwgWy05MS40NTM5MjEsIDE3LjI1MjE3N10sIFstOTEuMDgxNjcsIDE2LjkxODQ3N10sIFstOTAuNzExODIyLCAxNi42ODc0ODNdLCBbLTkwLjYwMDg0NywgMTYuNDcwNzc4XSwgWy05MC40Mzg4NjcsIDE2LjQxMDExXSwgWy05MC40NjQ0NzMsIDE2LjA2OTU2Ml0sIFstOTEuNzQ3OTYsIDE2LjA2NjU2NV0sIFstOTIuMjI5MjQ5LCAxNS4yNTE0NDddLCBbLTkyLjA4NzIxNiwgMTUuMDY0NTg1XSwgWy05Mi4yMDMyMywgMTQuODMwMTAzXSwgWy05Mi4yMjc3NSwgMTQuNTM4ODI5XSwgWy05My4zNTk0NjQsIDE1LjYxNTQzXSwgWy05My44NzUxNjksIDE1Ljk0MDE2NF0sIFstOTQuNjkxNjU2LCAxNi4yMDA5NzVdLCBbLTk1LjI1MDIyNywgMTYuMTI4MzE4XSwgWy05Ni4wNTMzODIsIDE1Ljc1MjA4OF0sIFstOTYuNTU3NDM0LCAxNS42NTM1MTVdLCBbLTk3LjI2MzU5MiwgMTUuOTE3MDY1XSwgWy05OC4wMTMwMywgMTYuMTA3MzEyXSwgWy05OC45NDc2NzYsIDE2LjU2NjA0M10sIFstOTkuNjk3Mzk3LCAxNi43MDYxNjRdLCBbLTEwMC44Mjk0OTksIDE3LjE3MTA3MV0sIFstMTAxLjY2NjA4OSwgMTcuNjQ5MDI2XSwgWy0xMDEuOTE4NTI4LCAxNy45MTYwOV0sIFstMTAyLjQ3ODEzMiwgMTcuOTc1NzUxXSwgWy0xMDMuNTAwOTksIDE4LjI5MjI5NV0sIFstMTAzLjkxNzUyNywgMTguNzQ4NTcyXSwgWy0xMDQuOTkyMDEsIDE5LjMxNjEzNF0sIFstMTA1LjQ5MzAzOCwgMTkuOTQ2NzY3XSwgWy0xMDUuNzMxMzk2LCAyMC40MzQxMDJdLCBbLTEwNS4zOTc3NzMsIDIwLjUzMTcxOV0sIFstMTA1LjUwMDY2MSwgMjAuODE2ODk1XSwgWy0xMDUuMjcwNzUyLCAyMS4wNzYyODVdLCBbLTEwNS4yNjU4MTcsIDIxLjQyMjEwNF0sIFstMTA1LjYwMzE2MSwgMjEuODcxMTQ2XSwgWy0xMDUuNjkzNDE0LCAyMi4yNjkwOF0sIFstMTA2LjAyODcxNiwgMjIuNzczNzUyXSwgWy0xMDYuOTA5OTgsIDIzLjc2Nzc3NF0sIFstMTA3LjkxNTQ0OSwgMjQuNTQ4OTE1XSwgWy0xMDguNDAxOTA1LCAyNS4xNzIzMTRdLCBbLTEwOS4yNjAxOTksIDI1LjU4MDYwOV0sIFstMTA5LjQ0NDA4OSwgMjUuODI0ODg0XSwgWy0xMDkuMjkxNjQ0LCAyNi40NDI5MzRdLCBbLTEwOS44MDE0NTgsIDI2LjY3NjE3Nl0sIFstMTEwLjM5MTczMiwgMjcuMTYyMTE1XSwgWy0xMTAuNjQxMDE5LCAyNy44NTk4NzZdLCBbLTExMS4xNzg5MTksIDI3Ljk0MTI0MV0sIFstMTExLjc1OTYwNywgMjguNDY3OTUzXSwgWy0xMTIuMjI4MjM1LCAyOC45NTQ0MDldLCBbLTExMi4yNzE4MjQsIDI5LjI2Njg0NF0sIFstMTEyLjgwOTU5NCwgMzAuMDIxMTE0XSwgWy0xMTMuMTYzODExLCAzMC43ODY4ODFdLCBbLTExMy4xNDg2NjksIDMxLjE3MDk2Nl0sIFstMTEzLjg3MTg4MSwgMzEuNTY3NjA4XSwgWy0xMTQuMjA1NzM3LCAzMS41MjQwNDVdLCBbLTExNC43NzY0NTEsIDMxLjc5OTUzMl0sIFstMTE0LjkzNjcsIDMxLjM5MzQ4NV0sIFstMTE0Ljc3MTIzMiwgMzAuOTEzNjE3XSwgWy0xMTQuNjczODk5LCAzMC4xNjI2ODFdLCBbLTExNC4zMzA5NzQsIDI5Ljc1MDQzMl0sIFstMTEzLjU4ODg3NSwgMjkuMDYxNjExXSwgWy0xMTMuNDI0MDUzLCAyOC44MjYxNzRdLCBbLTExMy4yNzE5NjksIDI4Ljc1NDc4M10sIFstMTEzLjE0MDAzOSwgMjguNDExMjg5XSwgWy0xMTIuOTYyMjk4LCAyOC40MjUxOV0sIFstMTEyLjc2MTU4NywgMjcuNzgwMjE3XSwgWy0xMTIuNDU3OTExLCAyNy41MjU4MTRdLCBbLTExMi4yNDQ5NTIsIDI3LjE3MTcyN10sIFstMTExLjYxNjQ4OSwgMjYuNjYyODE3XSwgWy0xMTEuMjg0Njc1LCAyNS43MzI1OV0sIFstMTEwLjk4NzgxOSwgMjUuMjk0NjA2XSwgWy0xMTAuNzEwMDA3LCAyNC44MjYwMDRdLCBbLTExMC42NTUwNDksIDI0LjI5ODU5NV0sIFstMTEwLjE3Mjg1NiwgMjQuMjY1NTQ4XSwgWy0xMDkuNzcxODQ3LCAyMy44MTExODNdLCBbLTEwOS40MDkxMDQsIDIzLjM2NDY3Ml0sIFstMTA5LjQzMzM5MiwgMjMuMTg1NTg4XSwgWy0xMDkuODU0MjE5LCAyMi44MTgyNzJdLCBbLTExMC4wMzEzOTIsIDIyLjgyMzA3OF0sIFstMTEwLjI5NTA3MSwgMjMuNDMwOTczXSwgWy0xMTAuOTQ5NTAxLCAyNC4wMDA5NjRdLCBbLTExMS42NzA1NjgsIDI0LjQ4NDQyM10sIFstMTEyLjE4MjAzNiwgMjQuNzM4NDEzXSwgWy0xMTIuMTQ4OTg5LCAyNS40NzAxMjVdLCBbLTExMi4zMDA3MTEsIDI2LjAxMjAwNF0sIFstMTEyLjc3NzI5NywgMjYuMzIxOTZdLCBbLTExMy40NjQ2NzEsIDI2Ljc2ODE4Nl0sIFstMTEzLjU5NjczLCAyNi42Mzk0Nl0sIFstMTEzLjg0ODkzNywgMjYuOTAwMDY0XSwgWy0xMTQuNDY1NzQ3LCAyNy4xNDIwOV0sIFstMTE1LjA1NTE0MiwgMjcuNzIyNzI3XSwgWy0xMTQuOTgyMjUzLCAyNy43OTgyXSwgWy0xMTQuNTcwMzY2LCAyNy43NDE0ODVdLCBbLTExNC4xOTkzMjksIDI4LjExNTAwM10sIFstMTE0LjE2MjAxOCwgMjguNTY2MTEyXSwgWy0xMTQuOTMxODQyLCAyOS4yNzk0NzldLCBbLTExNS41MTg2NTQsIDI5LjU1NjM2Ml0sIFstMTE1Ljg4NzM2NSwgMzAuMTgwNzk0XSwgWy0xMTYuMjU4MzUsIDMwLjgzNjQ2NF0sIFstMTE2LjcyMTUyNiwgMzEuNjM1NzQ0XSwgWy0xMTcuMTI3NzYsIDMyLjUzNTM0XSwgWy0xMTUuOTkxMzUsIDMyLjYxMjM5XSwgWy0xMTQuNzIxMzksIDMyLjcyMDgzXSwgWy0xMTQuODE1LCAzMi41MjUyOF0sIFstMTEzLjMwNDk4LCAzMi4wMzkxNF0sIFstMTExLjAyMzYxLCAzMS4zMzQ3Ml0sIFstMTA5LjAzNSwgMzEuMzQxOTRdLCBbLTEwOC4yNDE5NCwgMzEuMzQyMjJdLCBbLTEwOC4yNCwgMzEuNzU0ODU0XSwgWy0xMDYuNTA3NTksIDMxLjc1NDUyXSwgWy0xMDYuMTQyOSwgMzEuMzk5OTVdLCBbLTEwNS42MzE1OSwgMzEuMDgzODNdLCBbLTEwNS4wMzczNywgMzAuNjQ0MDJdLCBbLTEwNC43MDU3NSwgMzAuMTIxNzNdLCBbLTEwNC40NTY5NywgMjkuNTcxOTZdLCBbLTEwMy45NCwgMjkuMjddLCBbLTEwMy4xMSwgMjguOTddLCBbLTEwMi40OCwgMjkuNzZdLCBbLTEwMS42NjI0LCAyOS43NzkzXSwgWy0xMDAuOTU3NiwgMjkuMzgwNzFdLCBbLTEwMC40NTU4NCwgMjguNjk2MTJdLCBbLTEwMC4xMSwgMjguMTFdLCBbLTk5LjUyLCAyNy41NF0sIFstOTkuMywgMjYuODRdLCBbLTk5LjAyLCAyNi4zN10sIFstOTguMjQsIDI2LjA2XSwgWy05Ny41MywgMjUuODRdLCBbLTk3LjE0MDAwOCwgMjUuODY5OTk3XV1dfSwgInR5cGUiOiAiRmVhdHVyZSIsICJpZCI6ICI4IiwgInByb3BlcnRpZXMiOiB7InN0eWxlIjogeyJjb2xvciI6ICJibGFjayIsICJvcGFjdGl5IjogMSwgImZpbGxPcGFjaXR5IjogMC42LCAid2VpZ2h0IjogMSwgImZpbGxDb2xvciI6ICIjZDFlNWYwIn0sICJuYW1lIjogIk1leGljbyJ9fSwgeyJnZW9tZXRyeSI6IHsidHlwZSI6ICJQb2x5Z29uIiwgImNvb3JkaW5hdGVzIjogW1tbLTg1LjcxMjU0LCAxMS4wODg0NDVdLCBbLTg2LjA1ODQ4OCwgMTEuNDAzNDM5XSwgWy04Ni41MjU4NSwgMTEuODA2ODc3XSwgWy04Ni43NDU5OTIsIDEyLjE0Mzk2Ml0sIFstODcuMTY3NTE2LCAxMi40NTgyNThdLCBbLTg3LjY2ODQ5MywgMTIuOTA5OTFdLCBbLTg3LjU1NzQ2NywgMTMuMDY0NTUyXSwgWy04Ny4zOTIzODYsIDEyLjkxNDAxOF0sIFstODcuMzE2NjU0LCAxMi45ODQ2ODZdLCBbLTg3LjAwNTc2OSwgMTMuMDI1Nzk0XSwgWy04Ni44ODA1NTcsIDEzLjI1NDIwNF0sIFstODYuNzMzODIyLCAxMy4yNjMwOTNdLCBbLTg2Ljc1NTA4NywgMTMuNzU0ODQ1XSwgWy04Ni41MjA3MDgsIDEzLjc3ODQ4N10sIFstODYuMzEyMTQyLCAxMy43NzEzNTZdLCBbLTg2LjA5NjI2NCwgMTQuMDM4MTg3XSwgWy04NS44MDEyOTUsIDEzLjgzNjA1NV0sIFstODUuNjk4NjY1LCAxMy45NjAwNzhdLCBbLTg1LjUxNDQxMywgMTQuMDc5MDEyXSwgWy04NS4xNjUzNjUsIDE0LjM1NDM3XSwgWy04NS4xNDg3NTEsIDE0LjU2MDE5N10sIFstODUuMDUyNzg3LCAxNC41NTE1NDFdLCBbLTg0LjkyNDUwMSwgMTQuNzkwNDkzXSwgWy04NC44MjAwMzcsIDE0LjgxOTU4N10sIFstODQuNjQ5NTgyLCAxNC42NjY4MDVdLCBbLTg0LjQ0OTMzNiwgMTQuNjIxNjE0XSwgWy04NC4yMjgzNDIsIDE0Ljc0ODc2NF0sIFstODMuOTc1NzIxLCAxNC43NDk0MzZdLCBbLTgzLjYyODU4NSwgMTQuODgwMDc0XSwgWy04My40ODk5ODksIDE1LjAxNjI2N10sIFstODMuMTQ3MjE5LCAxNC45OTU4MjldLCBbLTgzLjIzMzIzNCwgMTQuODk5ODY2XSwgWy04My4yODQxNjIsIDE0LjY3NjYyNF0sIFstODMuMTgyMTI2LCAxNC4zMTA3MDNdLCBbLTgzLjQxMjUsIDEzLjk3MDA3OF0sIFstODMuNTE5ODMyLCAxMy41Njc2OTldLCBbLTgzLjU1MjIwNywgMTMuMTI3MDU0XSwgWy04My40OTg1MTUsIDEyLjg2OTI5Ml0sIFstODMuNDczMzIzLCAxMi40MTkwODddLCBbLTgzLjYyNjEwNCwgMTIuMzIwODVdLCBbLTgzLjcxOTYxMywgMTEuODkzMTI0XSwgWy04My42NTA4NTgsIDExLjYyOTAzMl0sIFstODMuODU1NDcsIDExLjM3MzMxMV0sIFstODMuODA4OTM2LCAxMS4xMDMwNDRdLCBbLTgzLjY1NTYxMiwgMTAuOTM4NzY0XSwgWy04My44OTUwNTQsIDEwLjcyNjgzOV0sIFstODQuMTkwMTc5LCAxMC43OTM0NV0sIFstODQuMzU1OTMxLCAxMC45OTkyMjZdLCBbLTg0LjY3MzA2OSwgMTEuMDgyNjU3XSwgWy04NC45MDMwMDMsIDEwLjk1MjMwM10sIFstODUuNTYxODUyLCAxMS4yMTcxMTldLCBbLTg1LjcxMjU0LCAxMS4wODg0NDVdXV19LCAidHlwZSI6ICJGZWF0dXJlIiwgImlkIjogIjkiLCAicHJvcGVydGllcyI6IHsic3R5bGUiOiB7ImNvbG9yIjogImJsYWNrIiwgIm9wYWN0aXkiOiAxLCAiZmlsbE9wYWNpdHkiOiAwLjYsICJ3ZWlnaHQiOiAxLCAiZmlsbENvbG9yIjogIiNkMWU1ZjAifSwgIm5hbWUiOiAiTmljYXJhZ3VhIn19LCB7Imdlb21ldHJ5IjogeyJ0eXBlIjogIlBvbHlnb24iLCAiY29vcmRpbmF0ZXMiOiBbW1stNzcuODgxNTcxLCA3LjIyMzc3MV0sIFstNzguMjE0OTM2LCA3LjUxMjI1NV0sIFstNzguNDI5MTYxLCA4LjA1MjA0MV0sIFstNzguMTgyMDk2LCA4LjMxOTE4Ml0sIFstNzguNDM1NDY1LCA4LjM4NzcwNV0sIFstNzguNjIyMTIxLCA4LjcxODEyNF0sIFstNzkuMTIwMzA3LCA4Ljk5NjA5Ml0sIFstNzkuNTU3ODc3LCA4LjkzMjM3NV0sIFstNzkuNzYwNTc4LCA4LjU4NDUxNV0sIFstODAuMTY0NDgxLCA4LjMzMzMxNl0sIFstODAuMzgyNjU5LCA4LjI5ODQwOV0sIFstODAuNDgwNjg5LCA4LjA5MDMwOF0sIFstODAuMDAzNjksIDcuNTQ3NTI0XSwgWy04MC4yNzY2NzEsIDcuNDE5NzU0XSwgWy04MC40MjExNTgsIDcuMjcxNTcyXSwgWy04MC44ODY0MDEsIDcuMjIwNTQxXSwgWy04MS4wNTk1NDMsIDcuODE3OTIxXSwgWy04MS4xODk3MTYsIDcuNjQ3OTA2XSwgWy04MS41MTk1MTUsIDcuNzA2NjFdLCBbLTgxLjcyMTMxMSwgOC4xMDg5NjNdLCBbLTgyLjEzMTQ0MSwgOC4xNzUzOTNdLCBbLTgyLjM5MDkzNCwgOC4yOTIzNjJdLCBbLTgyLjgyMDA4MSwgOC4yOTA4NjRdLCBbLTgyLjg1MDk1OCwgOC4wNzM4MjNdLCBbLTgyLjk2NTc4MywgOC4yMjUwMjhdLCBbLTgyLjkxMzE3NiwgOC40MjM1MTddLCBbLTgyLjgyOTc3MSwgOC42MjYyOTVdLCBbLTgyLjg2ODY1NywgOC44MDcyNjZdLCBbLTgyLjcxOTE4MywgOC45MjU3MDldLCBbLTgyLjkyNzE1NSwgOS4wNzQzM10sIFstODIuOTMyODkxLCA5LjQ3NjgxMl0sIFstODIuNTQ2MTk2LCA5LjU2NjEzNV0sIFstODIuMTg3MTIzLCA5LjIwNzQ0OV0sIFstODIuMjA3NTg2LCA4Ljk5NTU3NV0sIFstODEuODA4NTY3LCA4Ljk1MDYxN10sIFstODEuNzE0MTU0LCA5LjAzMTk1NV0sIFstODEuNDM5Mjg3LCA4Ljc4NjIzNF0sIFstODAuOTQ3MzAyLCA4Ljg1ODUwNF0sIFstODAuNTIxOTAxLCA5LjExMTA3Ml0sIFstNzkuOTE0NiwgOS4zMTI3NjVdLCBbLTc5LjU3MzMwMywgOS42MTE2MV0sIFstNzkuMDIxMTkyLCA5LjU1MjkzMV0sIFstNzkuMDU4NDUsIDkuNDU0NTY1XSwgWy03OC41MDA4ODgsIDkuNDIwNDU5XSwgWy03OC4wNTU5MjgsIDkuMjQ3NzNdLCBbLTc3LjcyOTUxNCwgOC45NDY4NDRdLCBbLTc3LjM1MzM2MSwgOC42NzA1MDVdLCBbLTc3LjQ3NDcyMywgOC41MjQyODZdLCBbLTc3LjI0MjU2NiwgNy45MzUyNzhdLCBbLTc3LjQzMTEwOCwgNy42MzgwNjFdLCBbLTc3Ljc1MzQxNCwgNy43MDk4NF0sIFstNzcuODgxNTcxLCA3LjIyMzc3MV1dXX0sICJ0eXBlIjogIkZlYXR1cmUiLCAiaWQiOiAiMTAiLCAicHJvcGVydGllcyI6IHsic3R5bGUiOiB7ImNvbG9yIjogImJsYWNrIiwgIm9wYWN0aXkiOiAxLCAiZmlsbE9wYWNpdHkiOiAwLjYsICJ3ZWlnaHQiOiAxLCAiZmlsbENvbG9yIjogIiNlZjhhNjIifSwgIm5hbWUiOiAiUGFuYW1hIn19LCB7Imdlb21ldHJ5IjogeyJ0eXBlIjogIlBvbHlnb24iLCAiY29vcmRpbmF0ZXMiOiBbW1stNjkuNTkwNDI0LCAtMTcuNTgwMDEyXSwgWy02OS44NTg0NDQsIC0xOC4wOTI2OTRdLCBbLTcwLjM3MjU3MiwgLTE4LjM0Nzk3NV0sIFstNzEuMzc1MjUsIC0xNy43NzM3OTldLCBbLTcxLjQ2MjA0MSwgLTE3LjM2MzQ4OF0sIFstNzMuNDQ0NTMsIC0xNi4zNTkzNjNdLCBbLTc1LjIzNzg4MywgLTE1LjI2NTY4M10sIFstNzYuMDA5MjA1LCAtMTQuNjQ5Mjg2XSwgWy03Ni40MjM0NjksIC0xMy44MjMxODddLCBbLTc2LjI1OTI0MiwgLTEzLjUzNTAzOV0sIFstNzcuMTA2MTkyLCAtMTIuMjIyNzE2XSwgWy03OC4wOTIxNTMsIC0xMC4zNzc3MTJdLCBbLTc5LjAzNjk1MywgLTguMzg2NTY4XSwgWy03OS40NDU5MiwgLTcuOTMwODMzXSwgWy03OS43NjA1NzgsIC03LjE5NDM0MV0sIFstODAuNTM3NDgyLCAtNi41NDE2NjhdLCBbLTgxLjI0OTk5NiwgLTYuMTM2ODM0XSwgWy04MC45MjYzNDcsIC01LjY5MDU1N10sIFstODEuNDEwOTQzLCAtNC43MzY3NjVdLCBbLTgxLjA5OTY3LCAtNC4wMzYzOTRdLCBbLTgwLjMwMjU2MSwgLTMuNDA0ODU2XSwgWy04MC4xODQwMTUsIC0zLjgyMTE2Ml0sIFstODAuNDY5Mjk1LCAtNC4wNTkyODddLCBbLTgwLjQ0MjI0MiwgLTQuNDI1NzI0XSwgWy04MC4wMjg5MDgsIC00LjM0NjA5MV0sIFstNzkuNjI0OTc5LCAtNC40NTQxOThdLCBbLTc5LjIwNTI4OSwgLTQuOTU5MTI5XSwgWy03OC42Mzk4OTcsIC00LjU0Nzc4NF0sIFstNzguNDUwNjg0LCAtMy44NzMwOTddLCBbLTc3LjgzNzkwNSwgLTMuMDAzMDIxXSwgWy03Ni42MzUzOTQsIC0yLjYwODY3OF0sIFstNzUuNTQ0OTk2LCAtMS41NjE2MV0sIFstNzUuMjMzNzIzLCAtMC45MTE0MTddLCBbLTc1LjM3MzIyMywgLTAuMTUyMDMyXSwgWy03NS4xMDY2MjUsIC0wLjA1NzIwNV0sIFstNzQuNDQxNjAxLCAtMC41MzA4Ml0sIFstNzQuMTIyMzk1LCAtMS4wMDI4MzNdLCBbLTczLjY1OTUwNCwgLTEuMjYwNDkxXSwgWy03My4wNzAzOTIsIC0yLjMwODk1NF0sIFstNzIuMzI1Nzg3LCAtMi40MzQyMThdLCBbLTcxLjc3NDc2MSwgLTIuMTY5NzldLCBbLTcxLjQxMzY0NiwgLTIuMzQyODAyXSwgWy03MC44MTM0NzYsIC0yLjI1Njg2NV0sIFstNzAuMDQ3NzA5LCAtMi43MjUxNTZdLCBbLTcwLjY5MjY4MiwgLTMuNzQyODcyXSwgWy03MC4zOTQwNDQsIC0zLjc2NjU5MV0sIFstNjkuODkzNjM1LCAtNC4yOTgxODddLCBbLTcwLjc5NDc2OSwgLTQuMjUxMjY1XSwgWy03MC45Mjg4NDMsIC00LjQwMTU5MV0sIFstNzEuNzQ4NDA2LCAtNC41OTM5ODNdLCBbLTcyLjg5MTkyOCwgLTUuMjc0NTYxXSwgWy03Mi45NjQ1MDcsIC01Ljc0MTI1MV0sIFstNzMuMjE5NzExLCAtNi4wODkxODldLCBbLTczLjEyMDAyNywgLTYuNjI5OTMxXSwgWy03My43MjQ0ODcsIC02LjkxODU5NV0sIFstNzMuNzIzNDAxLCAtNy4zNDA5OTldLCBbLTczLjk4NzIzNSwgLTcuNTIzODNdLCBbLTczLjU3MTA1OSwgLTguNDI0NDQ3XSwgWy03My4wMTUzODMsIC05LjAzMjgzM10sIFstNzMuMjI2NzEzLCAtOS40NjIyMTNdLCBbLTcyLjU2MzAzMywgLTkuNTIwMTk0XSwgWy03Mi4xODQ4OTEsIC0xMC4wNTM1OThdLCBbLTcxLjMwMjQxMiwgLTEwLjA3OTQzNl0sIFstNzAuNDgxODk0LCAtOS40OTAxMThdLCBbLTcwLjU0ODY4NiwgLTExLjAwOTE0N10sIFstNzAuMDkzNzUyLCAtMTEuMTIzOTcyXSwgWy02OS41Mjk2NzgsIC0xMC45NTE3MzRdLCBbLTY4LjY2NTA4LCAtMTIuNTYxM10sIFstNjguODgwMDgsIC0xMi44OTk3MjldLCBbLTY4LjkyOTIyNCwgLTEzLjYwMjY4NF0sIFstNjguOTQ4ODg3LCAtMTQuNDUzNjM5XSwgWy02OS4zMzk1MzUsIC0xNC45NTMxOTVdLCBbLTY5LjE2MDM0NywgLTE1LjMyMzk3NF0sIFstNjkuMzg5NzY0LCAtMTUuNjYwMTI5XSwgWy02OC45NTk2MzUsIC0xNi41MDA2OThdLCBbLTY5LjU5MDQyNCwgLTE3LjU4MDAxMl1dXX0sICJ0eXBlIjogIkZlYXR1cmUiLCAiaWQiOiAiMTEiLCAicHJvcGVydGllcyI6IHsic3R5bGUiOiB7ImNvbG9yIjogImJsYWNrIiwgIm9wYWN0aXkiOiAxLCAiZmlsbE9wYWNpdHkiOiAwLjYsICJ3ZWlnaHQiOiAxLCAiZmlsbENvbG9yIjogIiMyMTY2YWMifSwgIm5hbWUiOiAiUGVydSJ9fSwgeyJnZW9tZXRyeSI6IHsidHlwZSI6ICJQb2x5Z29uIiwgImNvb3JkaW5hdGVzIjogW1tbLTYyLjY4NTA1NywgLTIyLjI0OTAyOV0sIFstNjIuMjkxMTc5LCAtMjEuMDUxNjM1XSwgWy02Mi4yNjU5NjEsIC0yMC41MTM3MzVdLCBbLTYxLjc4NjMyNiwgLTE5LjYzMzczN10sIFstNjAuMDQzNTY1LCAtMTkuMzQyNzQ3XSwgWy01OS4xMTUwNDIsIC0xOS4zNTY5MDZdLCBbLTU4LjE4MzQ3MSwgLTE5Ljg2ODM5OV0sIFstNTguMTY2MzkyLCAtMjAuMTc2NzAxXSwgWy01Ny44NzA2NzQsIC0yMC43MzI2ODhdLCBbLTU3LjkzNzE1NiwgLTIyLjA5MDE3Nl0sIFstNTYuODgxNTEsIC0yMi4yODIxNTRdLCBbLTU2LjQ3MzMxNywgLTIyLjA4NjNdLCBbLTU1Ljc5Nzk1OCwgLTIyLjM1NjkzXSwgWy01NS42MTA2ODMsIC0yMi42NTU2MTldLCBbLTU1LjUxNzYzOSwgLTIzLjU3MTk5OF0sIFstNTUuNDAwNzQ3LCAtMjMuOTU2OTM1XSwgWy01NS4wMjc5MDIsIC0yNC4wMDEyNzRdLCBbLTU0LjY1MjgzNCwgLTIzLjgzOTU3OF0sIFstNTQuMjkyOTYsIC0yNC4wMjEwMTRdLCBbLTU0LjI5MzQ3NiwgLTI0LjU3MDhdLCBbLTU0LjQyODk0NiwgLTI1LjE2MjE4NV0sIFstNTQuNjI1MjkxLCAtMjUuNzM5MjU1XSwgWy01NC43ODg3OTUsIC0yNi42MjE3ODZdLCBbLTU1LjY5NTg0NiwgLTI3LjM4NzgzN10sIFstNTYuNDg2NzAyLCAtMjcuNTQ4NDk5XSwgWy01Ny42MDk3NiwgLTI3LjM5NTg5OV0sIFstNTguNjE4MTc0LCAtMjcuMTIzNzE5XSwgWy01Ny42MzM2NiwgLTI1LjYwMzY1N10sIFstNTcuNzc3MjE3LCAtMjUuMTYyMzRdLCBbLTU4LjgwNzEyOCwgLTI0Ljc3MTQ1OV0sIFstNjAuMDI4OTY2LCAtMjQuMDMyNzk2XSwgWy02MC44NDY1NjUsIC0yMy44ODA3MTNdLCBbLTYyLjY4NTA1NywgLTIyLjI0OTAyOV1dXX0sICJ0eXBlIjogIkZlYXR1cmUiLCAiaWQiOiAiMTIiLCAicHJvcGVydGllcyI6IHsic3R5bGUiOiB7ImNvbG9yIjogImJsYWNrIiwgIm9wYWN0aXkiOiAxLCAiZmlsbE9wYWNpdHkiOiAwLjYsICJ3ZWlnaHQiOiAxLCAiZmlsbENvbG9yIjogIiM2N2E5Y2YifSwgIm5hbWUiOiAiUGFyYWd1YXkifX0sIHsiZ2VvbWV0cnkiOiB7InR5cGUiOiAiUG9seWdvbiIsICJjb29yZGluYXRlcyI6IFtbWy04Ny43OTMxMTEsIDEzLjM4NDQ4XSwgWy04Ny45MDQxMTIsIDEzLjE0OTAxN10sIFstODguNDgzMzAyLCAxMy4xNjM5NTFdLCBbLTg4Ljg0MzIyOCwgMTMuMjU5NzM0XSwgWy04OS4yNTY3NDMsIDEzLjQ1ODUzM10sIFstODkuODEyMzk0LCAxMy41MjA2MjJdLCBbLTkwLjA5NTU1NSwgMTMuNzM1MzM4XSwgWy05MC4wNjQ2NzgsIDEzLjg4MTk3XSwgWy04OS43MjE5MzQsIDE0LjEzNDIyOF0sIFstODkuNTM0MjE5LCAxNC4yNDQ4MTZdLCBbLTg5LjU4NzM0MywgMTQuMzYyNTg2XSwgWy04OS4zNTMzMjYsIDE0LjQyNDEzM10sIFstODkuMDU4NTEyLCAxNC4zNDAwMjldLCBbLTg4Ljg0MzA3MywgMTQuMTQwNTA3XSwgWy04OC41NDEyMzEsIDEzLjk4MDE1NV0sIFstODguNTAzOTk4LCAxMy44NDU0ODZdLCBbLTg4LjA2NTM0MywgMTMuOTY0NjI2XSwgWy04Ny44NTk1MTUsIDEzLjg5MzMxMl0sIFstODcuNzIzNTAzLCAxMy43ODUwNV0sIFstODcuNzkzMTExLCAxMy4zODQ0OF1dXX0sICJ0eXBlIjogIkZlYXR1cmUiLCAiaWQiOiAiMTMiLCAicHJvcGVydGllcyI6IHsic3R5bGUiOiB7ImNvbG9yIjogImJsYWNrIiwgIm9wYWN0aXkiOiAxLCAiZmlsbE9wYWNpdHkiOiAwLjYsICJ3ZWlnaHQiOiAxLCAiZmlsbENvbG9yIjogIiM2N2E5Y2YifSwgIm5hbWUiOiAiRWwgU2FsdmFkb3IifX1dfSkKICAgICAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzE1YzZhNjdkNTg3ZTQyYTNiNGZkYmZiZDFiYzQ2NWFlKTsKICAgICAgICAgICAgICAgIGdlb19qc29uX2RkYTI3ZWE5MzNhMTRjYWI4NGQxNDQ0YjRlZmM3ZTg5LnNldFN0eWxlKGZ1bmN0aW9uKGZlYXR1cmUpIHtyZXR1cm4gZmVhdHVyZS5wcm9wZXJ0aWVzLnN0eWxlO30pOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICB2YXIgY29sb3Jfc2NhbGVfODg2ZWYzMzM1MDM3NGQ0NmE1YTEzYTBiMzk4ZDFiMzQgPSB7fTsKCiAgICAKICAgIGNvbG9yX3NjYWxlXzg4NmVmMzMzNTAzNzRkNDZhNWExM2EwYjM5OGQxYjM0LmNvbG9yID0gZDMuc2NhbGUudGhyZXNob2xkKCkKICAgICAgICAgICAgICAuZG9tYWluKFsxLjAsIDEuNCwgMS44LCAyLjIsIDIuNiwgMy4wXSkKICAgICAgICAgICAgICAucmFuZ2UoWycjYjIxODJiJywgJyNlZjhhNjInLCAnI2ZkZGJjNycsICcjZDFlNWYwJywgJyM2N2E5Y2YnLCAnIzIxNjZhYyddKTsKICAgIAoKICAgIGNvbG9yX3NjYWxlXzg4NmVmMzMzNTAzNzRkNDZhNWExM2EwYjM5OGQxYjM0LnggPSBkMy5zY2FsZS5saW5lYXIoKQogICAgICAgICAgICAgIC5kb21haW4oWzEuMCwgMy4wXSkKICAgICAgICAgICAgICAucmFuZ2UoWzAsIDQwMF0pOwoKICAgIGNvbG9yX3NjYWxlXzg4NmVmMzMzNTAzNzRkNDZhNWExM2EwYjM5OGQxYjM0LmxlZ2VuZCA9IEwuY29udHJvbCh7cG9zaXRpb246ICd0b3ByaWdodCd9KTsKICAgIGNvbG9yX3NjYWxlXzg4NmVmMzMzNTAzNzRkNDZhNWExM2EwYjM5OGQxYjM0LmxlZ2VuZC5vbkFkZCA9IGZ1bmN0aW9uIChtYXApIHt2YXIgZGl2ID0gTC5Eb21VdGlsLmNyZWF0ZSgnZGl2JywgJ2xlZ2VuZCcpOyByZXR1cm4gZGl2fTsKICAgIGNvbG9yX3NjYWxlXzg4NmVmMzMzNTAzNzRkNDZhNWExM2EwYjM5OGQxYjM0LmxlZ2VuZC5hZGRUbyhtYXBfMTVjNmE2N2Q1ODdlNDJhM2I0ZmRiZmJkMWJjNDY1YWUpOwoKICAgIGNvbG9yX3NjYWxlXzg4NmVmMzMzNTAzNzRkNDZhNWExM2EwYjM5OGQxYjM0LnhBeGlzID0gZDMuc3ZnLmF4aXMoKQogICAgICAgIC5zY2FsZShjb2xvcl9zY2FsZV84ODZlZjMzMzUwMzc0ZDQ2YTVhMTNhMGIzOThkMWIzNC54KQogICAgICAgIC5vcmllbnQoInRvcCIpCiAgICAgICAgLnRpY2tTaXplKDEpCiAgICAgICAgLnRpY2tWYWx1ZXMoWzEuMCwgMS40LCAxLjgsIDIuMiwgMi42LCAzLjBdKTsKCiAgICBjb2xvcl9zY2FsZV84ODZlZjMzMzUwMzc0ZDQ2YTVhMTNhMGIzOThkMWIzNC5zdmcgPSBkMy5zZWxlY3QoIi5sZWdlbmQubGVhZmxldC1jb250cm9sIikuYXBwZW5kKCJzdmciKQogICAgICAgIC5hdHRyKCJpZCIsICdsZWdlbmQnKQogICAgICAgIC5hdHRyKCJ3aWR0aCIsIDQ1MCkKICAgICAgICAuYXR0cigiaGVpZ2h0IiwgNDApOwoKICAgIGNvbG9yX3NjYWxlXzg4NmVmMzMzNTAzNzRkNDZhNWExM2EwYjM5OGQxYjM0LmcgPSBjb2xvcl9zY2FsZV84ODZlZjMzMzUwMzc0ZDQ2YTVhMTNhMGIzOThkMWIzNC5zdmcuYXBwZW5kKCJnIikKICAgICAgICAuYXR0cigiY2xhc3MiLCAia2V5IikKICAgICAgICAuYXR0cigidHJhbnNmb3JtIiwgInRyYW5zbGF0ZSgyNSwxNikiKTsKCiAgICBjb2xvcl9zY2FsZV84ODZlZjMzMzUwMzc0ZDQ2YTVhMTNhMGIzOThkMWIzNC5nLnNlbGVjdEFsbCgicmVjdCIpCiAgICAgICAgLmRhdGEoY29sb3Jfc2NhbGVfODg2ZWYzMzM1MDM3NGQ0NmE1YTEzYTBiMzk4ZDFiMzQuY29sb3IucmFuZ2UoKS5tYXAoZnVuY3Rpb24oZCwgaSkgewogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgeDA6IGkgPyBjb2xvcl9zY2FsZV84ODZlZjMzMzUwMzc0ZDQ2YTVhMTNhMGIzOThkMWIzNC54KGNvbG9yX3NjYWxlXzg4NmVmMzMzNTAzNzRkNDZhNWExM2EwYjM5OGQxYjM0LmNvbG9yLmRvbWFpbigpW2kgLSAxXSkgOiBjb2xvcl9zY2FsZV84ODZlZjMzMzUwMzc0ZDQ2YTVhMTNhMGIzOThkMWIzNC54LnJhbmdlKClbMF0sCiAgICAgICAgICAgIHgxOiBpIDwgY29sb3Jfc2NhbGVfODg2ZWYzMzM1MDM3NGQ0NmE1YTEzYTBiMzk4ZDFiMzQuY29sb3IuZG9tYWluKCkubGVuZ3RoID8gY29sb3Jfc2NhbGVfODg2ZWYzMzM1MDM3NGQ0NmE1YTEzYTBiMzk4ZDFiMzQueChjb2xvcl9zY2FsZV84ODZlZjMzMzUwMzc0ZDQ2YTVhMTNhMGIzOThkMWIzNC5jb2xvci5kb21haW4oKVtpXSkgOiBjb2xvcl9zY2FsZV84ODZlZjMzMzUwMzc0ZDQ2YTVhMTNhMGIzOThkMWIzNC54LnJhbmdlKClbMV0sCiAgICAgICAgICAgIHo6IGQKICAgICAgICAgIH07CiAgICAgICAgfSkpCiAgICAgIC5lbnRlcigpLmFwcGVuZCgicmVjdCIpCiAgICAgICAgLmF0dHIoImhlaWdodCIsIDEwKQogICAgICAgIC5hdHRyKCJ4IiwgZnVuY3Rpb24oZCkgeyByZXR1cm4gZC54MDsgfSkKICAgICAgICAuYXR0cigid2lkdGgiLCBmdW5jdGlvbihkKSB7IHJldHVybiBkLngxIC0gZC54MDsgfSkKICAgICAgICAuc3R5bGUoImZpbGwiLCBmdW5jdGlvbihkKSB7IHJldHVybiBkLno7IH0pOwoKICAgIGNvbG9yX3NjYWxlXzg4NmVmMzMzNTAzNzRkNDZhNWExM2EwYjM5OGQxYjM0LmcuY2FsbChjb2xvcl9zY2FsZV84ODZlZjMzMzUwMzc0ZDQ2YTVhMTNhMGIzOThkMWIzNC54QXhpcykuYXBwZW5kKCJ0ZXh0IikKICAgICAgICAuYXR0cigiY2xhc3MiLCAiY2FwdGlvbiIpCiAgICAgICAgLmF0dHIoInkiLCAyMSkKICAgICAgICAudGV4dCgnJyk7CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgPC9zY3JpcHQ+CiAgICAgICAg\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;\">\n",
" </iframe>\n",
" </div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x7fea24c19dd0>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"map1 = folium.Map(location=[-15., -60], \n",
" tiles=\"Cartodb Positron\",\n",
" zoom_start=2)\n",
"\n",
"map1.choropleth(geo_str=geo_str,\n",
" data=data_df,\n",
" columns=['Country', 'Score'],\n",
" fill_color='RdBu',\n",
" key_on='feature.properties.name',\n",
" threshold_scale=threshold_scale\n",
" )\n",
"\n",
"map1"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
id Country Score
PER Peru 2.81030047565
HND Honduras 2.73452059052
GUF French Guiana 2.73088624339
SLV El Salvador 2.47313396091
CRI Costa Rica 2.45496258877
PRY Paraguay 2.27359432526
CHL Chile 2.22459594857
ECU Ecuador 2.1062717474
ARG Argentina 2.07731052863
BOL Bolivia 2.04044795703
NIC Nicaragua 2.02057902574
COL Colombia 1.97875064122
MEX Mexico 1.86885576881
GTM Guatemala 1.57594468934
PAN Panama 1.23348283352
@ebrensi
Copy link

ebrensi commented Jun 1, 2016

Thanks! This was helpful.

@ammarsabir15
Copy link

ammarsabir15 commented Oct 14, 2019

I tried to compile your code but I am having following error,
`
Traceback (most recent call last):
File "/home/ammar/.local/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 2897, in get_loc
return self._engine.get_loc(key)
File "pandas/_libs/index.pyx", line 107, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/index.pyx", line 131, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 1607, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 1614, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'geometry'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "ch.py", line 28, in
geo_str = spatial_gdf.to_json()
File "/home/ammar/.local/lib/python3.7/site-packages/geopandas/geodataframe.py", line 381, in to_json
return json.dumps(self._to_geo(na=na, show_bbox=show_bbox), **kwargs)
File "/home/ammar/.local/lib/python3.7/site-packages/geopandas/geodataframe.py", line 468, in _to_geo
"features": list(self.iterfeatures(**kwargs)),
File "/home/ammar/.local/lib/python3.7/site-packages/geopandas/geodataframe.py", line 417, in iterfeatures
geometries = np.array(self[self._geometry_column_name], copy=False)
File "/home/ammar/.local/lib/python3.7/site-packages/geopandas/geodataframe.py", line 546, in getitem
result = super(GeoDataFrame, self).getitem(key)
File "/home/ammar/.local/lib/python3.7/site-packages/pandas/core/frame.py", line 2980, in getitem
indexer = self.columns.get_loc(key)
File "/home/ammar/.local/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 2899, in get_loc
return self._engine.get_loc(self._maybe_cast_indexer(key))
File "pandas/_libs/index.pyx", line 107, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/index.pyx", line 131, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 1607, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 1614, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'geometry
`

@prithwi
Copy link
Author

prithwi commented Nov 11, 2019

@ammarsabircheema I suspect the world-countries.json file you are using doesn't have the requisite columns.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment