Skip to content

Instantly share code, notes, and snippets.

@jaircastruita
Last active May 6, 2016 18:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jaircastruita/dcb503b8219a295a9fc3 to your computer and use it in GitHub Desktop.
Save jaircastruita/dcb503b8219a295a9fc3 to your computer and use it in GitHub Desktop.
Análisis en en clustering de entradas Ecobici
This file has been truncated, but you can view the full file.
{
"metadata": {
"name": "",
"signature": "sha256:96cae78a2fe8ab389c690e26fedf9cf5e0cd595e71a81a0fb4ef6c182b7228d6"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"Clustering sobre registro de entradas en las estaciones de Ecobici"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Desde que se inaugur\u00f3 el sistema de bike sharing Ecobici en la ciudad de M\u00e9xico ocurrieron 2 procesos de expansi\u00f3n al programa en sus primeros 4 a\u00f1os, esto quiere decir que se agregaron nuevas estaciones de bicicletas en nuevas delegaciones mientras el sistema estaba en uso.\n",
"\n",
"Hip\u00f3tesis: Si se realiza un proceso de clustering sobre el comportamiento promedio de las estaciones tomando en cuenta las variables que juegan un factor en el periodo comprendido en cada fase podemos apreciar cambios en el comportamiento de estaciones previas tras la inclusi\u00f3n de nuevas estaciones al programa."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"import folium \n",
"import pandas as pd\n",
"import seaborn as sns; sns.set()"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Se carga en el IDE las coordenadas del \u00e1rea de inter\u00e9s en la ciudad de M\u00e9xico en conjunto con las coordenadas geogr\u00e1ficas de todas las estaciones que forman parte del sistema:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"CDMX_COORDINATES = (19.4186, -99.1686) \n",
"\n",
"#create empty map zoomed in on Mexico City\n",
"station_attrs = pd.read_csv('C:\\Users\\ghost\\Google Drive\\JairCastruitaGastelum\\Progress Reports\\Clustering_ECOBICI\\DATA\\estacion_coordenadas.csv')"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Un ejemplo de como esta conformado el dataset con la informaci\u00f3n de las estaciones:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"station_attrs.head()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>longitud</th>\n",
" <th>latitud</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>-99.16848</td>\n",
" <td>19.43293</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>-99.17151</td>\n",
" <td>19.43159</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>-99.15875</td>\n",
" <td>19.43166</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4</td>\n",
" <td>-99.17169</td>\n",
" <td>19.42849</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>-99.16945</td>\n",
" <td>19.42980</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"text": [
" id longitud latitud\n",
"0 1 -99.16848 19.43293\n",
"1 2 -99.17151 19.43159\n",
"2 3 -99.15875 19.43166\n",
"3 4 -99.17169 19.42849\n",
"4 5 -99.16945 19.42980"
]
}
],
"prompt_number": 3
},
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"Entradas en las estaciones"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"En este proceso se presentan los perfiles de las estaciones de Ecobici realizado sobre los conteos en las bicicletas que llegan a las estaciones. Lo primero es realizar limpieza de los datos con la finalidad de eliminar la mayor informaci\u00f3n que pueda aportar ruido al estudio llevando a obtener resultados espurios del mismo. Para llevar a cabo esta limpieza se realiz\u00f3 lo siguente:\n",
"\n",
"- Debido al comportamiento diferente en el sistema que ocurre en fines de semana y d\u00edas entre semana, el estado del arte recomienda realizar una divisi\u00f3n sobre estos d\u00edas, es por eso que se agrega una etiqueta sobre cada uno de estos d\u00edas, separando d\u00edas entre semana de d\u00edas en fin de semana.\n",
"- Se realiz\u00f3 un conteo de actividad del sistema a lo largo de los d\u00edas. Existen algunos donde el conteo de actividad es inusualmente bajo. Para obtener estos d\u00edas de manera autom\u00e1tica se realiz\u00f3 lo siguiente: Se obtuvo el moving average y el moving standard deviation de los conteos en el sistema a lo largo de 20 d\u00edas anteriores. se removieron todas aquellas fechas cuyos conteos fueran menores al moving average menos dos veces la moving standard deviation.\n",
"- Se eliminaron todas aquellas estaciones cuya ID fuese mayor a 275 debido a que en el sistema de Ecobici no existen estaciones con un ID superior a este n\u00famero hasta principios del a\u00f1o 2015."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"path = r'D:\\ownCloud\\Documentos posgrado\\Posgrado 2do semestre\\Seminario investigacion\\Experimental Data\\Cd Mex\\Movilidad\\Hist Ecobici\\ecobici.csv'\n",
"trips = pd.read_csv(path,\n",
" parse_dates=['date_removed', 'date_arrived'],\n",
" infer_datetime_format=True)\n",
"\n",
"trips = trips.loc[trips['action'] != 'C ']\n",
"\n",
"# Find the start date\n",
"ind = pd.DatetimeIndex(trips.date_arrived)\n",
"trips['date'] = ind.date.astype('datetime64')\n",
"trips['hour'] = ind.hour\n",
"\n",
"# Count trips by date\n",
"by_date = trips.pivot_table('bike',aggfunc='count',\n",
" index='date',\n",
" columns='station_arrived', )\n",
"\n",
"by_date.drop([col for col in list(by_date.columns.values) if col > 275], \n",
" axis=1, inplace=True)\n",
"\n",
"# add a flag indicating weekend\n",
"by_date['weekend'] = (by_date.index.dayofweek >= 5)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stderr",
"text": [
"C:\\Users\\ghost\\AppData\\Local\\Enthought\\Canopy\\App\\appdata\\canopy-1.5.2.2785.win-x86_64\\lib\\site-packages\\IPython\\core\\interactiveshell.py:2741: DtypeWarning: Columns (0,1) have mixed types. Specify dtype option on import or set low_memory=False.\n",
" interactivity=interactivity, compiler=compiler)\n"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Se guardan todos aquellos d\u00edas que cumplen como datos marginales, genera una lista negra con estos d\u00edas de actividad poco usual y se utiliza para omitir aquellos registros que pertenezcan a ese conjunto de d\u00edas."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"by_date_weekday = by_date[by_date['weekend'] == False]\n",
"\n",
"#mavg_wd = pd.rolling_mean(by_date_weekday.sum(axis=1), 20)\n",
"#mstd_wd = pd.rolling_std(by_date_weekday.sum(axis=1), 20)\n",
"mavg_wd = by_date_weekday.sum(axis=1).rolling(window=20,center=False).mean()\n",
"mstd_wd = by_date_weekday.sum(axis=1).rolling(window=20,center=False).std()\n",
"\n",
"black_list = by_date_weekday.sum(axis=1)[by_date_weekday.sum(axis=1) <= mavg_wd-2*mstd_wd].index\n",
"\n",
"by_date_weekend = by_date[by_date['weekend'] == True]\n",
"\n",
"#mavg_we = pd.rolling_mean(by_date_weekend.sum(axis=1), 20)\n",
"#mstd_we = pd.rolling_std(by_date_weekend.sum(axis=1), 20)\n",
"mavg_we = by_date_weekend.sum(axis=1).rolling(window=20,center=False).mean()\n",
"mstd_we = by_date_weekend.sum(axis=1).rolling(window=20,center=False).std()\n",
"\n",
"black_list = black_list.union(by_date_weekend.sum(axis=1)[by_date_weekend.sum(axis=1) <= mavg_we-2*mstd_we].index)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 5
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"D\u00eda representativo de actividad por estaci\u00f3n:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Con la finalidad de obtener un conjunto de datos que sea representativo de cada estaci\u00f3n para ser utilizado en el clustering se realiza lo siguiente:\n",
"- Se separan los d\u00edas de actividad entre fines de semana y entre semana.\n",
"- Para cada hora se realiza un promedio de conteos representativo para cada estaci\u00f3n, de manera que al final obtengamos una matriz de M x N, donde M representan las estaciones y N los conteos por entradas promedio durante un periodo de 24 horas.\n",
"- Para este proceso de clustering en particular solo estamos tomando en consideraci\u00f3n los conteos en entradas realizados end\u00edas entre semana."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# count trips by date and by hour\n",
"by_hour = trips.pivot_table('bike', aggfunc='count',\n",
" index=['date', 'hour'],\n",
" columns='station_arrived').fillna(0).reset_index('hour')\n",
"\n",
"# remove those values on the blacklist\n",
"by_hour = by_hour.loc[~by_hour.index.isin(black_list)]\n",
"\n",
"# average these counts by weekend\n",
"by_hour['weekend'] = (by_hour.index.dayofweek >= 5)\n",
"by_hour = by_hour.groupby(['weekend', 'hour']).mean()\n",
"by_hour.index.set_levels([['weekday', 'weekend'],\n",
" [\"{0}:00\".format(i) for i in range(24)]],\n",
" inplace=True);\n",
"\n",
"by_hour.drop([col for col in list(by_hour.columns.values) if col > 275], axis=1, inplace=True)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 6
},
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"Proceso de clustering"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Primero se decide hacer un proceso de clustering sobre todas las estaciones comprendidas en el periodo de 4 a\u00f1os de funcionamiento en el sistema. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Al tener un d\u00eda representativo en los conteos de las estaciones lo siguiente fue realizar un proceso de clustering bajo la premisa de que aquellas estaciones con un comportamiento similar tender\u00edan a agruparse. N\u00f3tese que para realizar este procedimiento no se esta tomando en cuenta ning\u00fan factor que haga referencia a la ubicaci\u00f3n geogr\u00e1fica de la estaci\u00f3n."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from sklearn import mixture \n",
"\n",
"X = by_hour.loc['weekday'].values.T\n",
"num_clusters = 6\n",
"cv_types = ['spherical', 'tied', 'diag', 'full']\n",
"\n",
"gmm = mixture.GMM(n_components=num_clusters, covariance_type=cv_types[3])\n",
"gmm.fit(X)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 7,
"text": [
"GMM(covariance_type='full', init_params='wmc', min_covar=0.001,\n",
" n_components=6, n_init=1, n_iter=100, params='wmc', random_state=None,\n",
" thresh=None, tol=0.001, verbose=0)"
]
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"En el proceso de clustering que se realiza se toman los 24 conteos por hora correspondiente a cada estaci\u00f3n a lo largo de su d\u00eda promedio, se aplica un proceso de EM (Expectation Maximization) para actualizar los centroides en el clustering de mixture models que consiste en determinar el grado de pertenencia de un punto (los conteos realizados en una estaci\u00f3n) a un centroide en particular. Arbitrariamente se seleccionaron 6 clusters, lo cual nos dejar\u00e1 al final con 6 centroides o puntos representativos de 24 atributos cada uno que sirve de punto representativo para aquellas estaciones que pertenecen cuentan con mayor similitud a ese centroide con respecto a los dem\u00e1s. En los siguientes gr\u00e1ficos se muestra la ilustraci\u00f3n del comportamiento de estos centroides y la posici\u00f3n geogr\u00e1fica de las estaciones con el color perteneciente al cluster al que se les fue asignados:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"color_iter = ['blue', 'red', 'green', '#e017e5', '#d8f604', '#15d4e2', '#e21569']"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import vincent\n",
"vincent.core.initialize_notebook()\n",
"import json\n",
"from vincent import AxisProperties, PropertySet, ValueRef\n",
"\n",
"map = folium.Map(location=CDMX_COORDINATES, tiles='Stamen Toner', zoom_start=14)\n",
"Y_ = gmm.predict(X)\n",
"plt.figure(figsize=(16,8))\n",
"\n",
"for i, (mean, covar, color) in enumerate(zip(\n",
" gmm.means_, gmm._get_covars(), color_iter)):\n",
" \n",
" if not np.any(Y_ == i):\n",
" continue \n",
" \n",
" plot(mean,color=color)\n",
" \n",
" for attr in range(len(Y_)):\n",
" if Y_[attr] == i:\n",
" \n",
" line = vincent.Bar(by_hour.loc['weekday'][station_attrs.iloc[attr,0]], width=650, height=300)\n",
" line.axis_titles(x='Hora', y='Estacion '+str(int(station_attrs.iloc[attr,0]))+': Valor Promedio en un dia')\n",
" line.to_json(str(station_attrs.iloc[attr,0])+'.json')\n",
" line.legend(title=str(station_attrs.iloc[attr,0]))\n",
" \n",
" folium.RegularPolygonMarker(location=[station_attrs.iloc[attr,2],station_attrs.iloc[attr,1]], \n",
" popup=folium.Popup(max_width=700).add_child(\n",
" folium.Vega(json.load(open(str(station_attrs.iloc[attr,0])+'.json')), \n",
" width=700, \n",
" height=350)),\n",
" fill_color=color,\n",
" number_of_sides=8,\n",
" radius=10).add_to(map)\n",
" \n",
"map"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"\n",
" <script>\n",
" \n",
" function vct_load_lib(url, callback){\n",
" if(typeof d3 !== 'undefined' &&\n",
" url === 'http://d3js.org/d3.v3.min.js'){\n",
" callback()\n",
" }\n",
" var s = document.createElement('script');\n",
" s.src = url;\n",
" s.async = true;\n",
" s.onreadystatechange = s.onload = callback;\n",
" s.onerror = function(){\n",
" console.warn(\"failed to load library \" + url);\n",
" };\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" };\n",
" var vincent_event = new CustomEvent(\n",
" \"vincent_libs_loaded\",\n",
" {bubbles: true, cancelable: true}\n",
" );\n",
" \n",
" function load_all_libs(){\n",
" console.log('Loading Vincent libs...')\n",
" vct_load_lib('http://d3js.org/d3.v3.min.js', function(){\n",
" vct_load_lib('http://d3js.org/d3.geo.projection.v0.min.js', function(){\n",
" vct_load_lib('http://wrobstory.github.io/d3-cloud/d3.layout.cloud.js', function(){\n",
" vct_load_lib('http://wrobstory.github.io/vega/vega.v1.3.3.js', function(){\n",
" window.dispatchEvent(vincent_event);\n",
" });\n",
" });\n",
" });\n",
" });\n",
" };\n",
" if(typeof define === \"function\" && define.amd){\n",
" if (window['d3'] === undefined ||\n",
" window['topojson'] === undefined){\n",
" require.config(\n",
" {paths: {\n",
" d3: 'http://d3js.org/d3.v3.min',\n",
" topojson: 'http://d3js.org/topojson.v1.min'\n",
" }\n",
" }\n",
" );\n",
" require([\"d3\"], function(d3){\n",
" console.log('Loading Vincent from require.js...')\n",
" window.d3 = d3;\n",
" require([\"topojson\"], function(topojson){\n",
" window.topojson = topojson;\n",
" load_all_libs();\n",
" });\n",
" });\n",
" } else {\n",
" load_all_libs();\n",
" };\n",
" }else{\n",
" console.log('Require.js not found, loading manually...')\n",
" load_all_libs();\n",
" };\n",
"\n",
" </script>"
],
"metadata": {},
"output_type": "display_data",
"text": [
"<IPython.core.display.HTML at 0x405fb278>"
]
},
{
"html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;base64,CiAgICAgICAgPCFET0NUWVBFIGh0bWw+CiAgICAgICAgPGhlYWQ+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgLz4KICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9sZWFmbGV0LzAuNy4zL2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0yLjEuMC5taW4uanMiPjwvc2NyaXB0PgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2pzL2Jvb3RzdHJhcC5taW4uanMiPjwvc2NyaXB0PgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vcmF3Z2l0aHViLmNvbS9sdm9vZ2R0L0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC9kZXZlbG9wL2Rpc3QvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQubWFya2VyY2x1c3Rlci8wLjQuMC9sZWFmbGV0Lm1hcmtlcmNsdXN0ZXItc3JjLmpzIj48L3NjcmlwdD4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9sZWFmbGV0Lm1hcmtlcmNsdXN0ZXIvMC40LjAvbGVhZmxldC5tYXJrZXJjbHVzdGVyLmpzIj48L3NjcmlwdD4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC8wLjcuMy9sZWFmbGV0LmNzcyIgLz4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIiAvPgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiIC8+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuMS4wL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIgLz4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL2x2b29nZHQvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wL2RldmVsb3AvZGlzdC9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiIC8+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQubWFya2VyY2x1c3Rlci8wLjQuMC9NYXJrZXJDbHVzdGVyLkRlZmF1bHQuY3NzIiAvPgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9sZWFmbGV0Lm1hcmtlcmNsdXN0ZXIvMC40LjAvTWFya2VyQ2x1c3Rlci5jc3MiIC8+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9weXRob24tdmlzdWFsaXphdGlvbi9mb2xpdW0vbWFzdGVyL2ZvbGl1bS90ZW1wbGF0ZXMvbGVhZmxldC5hd2Vzb21lLnJvdGF0ZS5jc3MiIC8+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+CgogICAgICAgICAgICBodG1sLCBib2R5IHsKICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgICAgICAgcGFkZGluZzogMDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICNtYXAgewogICAgICAgICAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7CiAgICAgICAgICAgICAgICB0b3A6MDsKICAgICAgICAgICAgICAgIGJvdHRvbTowOwogICAgICAgICAgICAgICAgcmlnaHQ6MDsKICAgICAgICAgICAgICAgIGxlZnQ6MDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICNtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogMTAwLjAlOwogICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV83ZTBiMjA3NzYzYjA0MzJjYTYzOWQ4OGYyYzU1YWFhMyB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvZDMvMy41LjUvZDMubWluLmpzIj48L3NjcmlwdD4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy92ZWdhLzEuNC4zL3ZlZ2EubWluLmpzIj48L3NjcmlwdD4KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9sZWFmbGV0LWR2Zi8wLjIvbGVhZmxldC1kdmYubWFya2Vycy5taW4uanMiPjwvc2NyaXB0PgogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9lY2RmN2I0YmY2ZTI0MDBmYmI0NTBjYjhiOWVlOTgzYyB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzhkMzFhZmYyOWQxYzQ2YzU4M2Y2NWI2YjcyZDk2ODZjIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfYzk5MjM1YjQwNjM4NGIwMmFmZmFjYmU5ODEwNGU1N2IgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9kNWMxYzVjZDMxZGY0YTc0OGY4ZTZjZWE3ZTVhNmQyNyB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2Y4MjdkMGFmNzg0MzRhMjdhMTY1NjA2YjQ5ZjkyNDBiIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNzg2NjRkMDIyZjk1NDc4ZTg2MjIxNjRhZGQ1NGYyMDcgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV82NTYxN2ZiY2E4ZjQ0Y2U1YmFiMjk2NjYxNzhlYzYyZCB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzlkNzQ5NTYxNmQ3YjRlNGZhZGY3MWFhMTU0ZWE3MzcxIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMWI5YjU3YjNlOTYyNGM3YThkMzQ4MDA3MmZjOTBjNDEgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9jZmQyYzBjYTRiYTE0NWU0OGNiYzE4ZDBiYzU2MDI0ZSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzRkMWQ5ZWIyYjJiNjQ3MzViMzg1ZDdkZmMzYzY3MmU4IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfOTBlZTQ1ZjJlZGEwNDAwZmIwYWYyOTdmMGFmMTVjYjUgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8yOTJlOTNiNzNjNzQ0YWUyODAyZmRhZWUwODIxYWExNiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzE2MTRmOTE4MTM3MzRjMjA4NDFiNjEzMTBiNTk5MTk2IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfY2I4ZWVlNWM5MjlhNDQxMWE2NTdkMGQyMjI3NDY2MzMgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8xOWVhZGQwMzU3ZjU0ZmMyYTU1NWM3MjYzMDhjOGI1YSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzAwNjkzOTcwMzFmZDQwNGZhYjk4MmE1ZGZkNjJiNDc5IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNGQwNzcyYmY0MjkyNDg0YmFiMDViZTc3OTc0N2EwN2IgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8yNTBhYmIyYmI1ZTA0NjZiODJjOGZmYzE5YTgzZTQ4NiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzMxZDhlYzcyOWNiODQzOWRiZTc0MzhlNGIxZTkzOGU2IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNjRmYjE1MTAzOWYwNDFiODk2NDMzNjg0MGYzZTcwYzIgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9mZGM2OTk1MGNmYTg0ZjQwYTlkNmI1Y2FlYmFiZTQ1NiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2FkOTZmOWVmNGY1MzQwZDlhMDlmNTUxNzM4MmJjYWUyIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfM2ZlMDQxYTJjZThiNDMxNThjZTA3OGVlYTc1YmNhY2EgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9iNjgyZDU3MWQ5NjI0MmU1YjE1NjI2NGI3YmM3ODA4OCB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2E1ODZmN2ZmYTY2NDRhMGI4MDMzMTcyNmVhZmU5MzY3IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfYTVhZWM1ZTdkNjZkNGU5YmEzMjUwNmYwOTBlY2ZmOTQgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV84MzkyNDViMzUwYzk0MTU5YjE1NGExZDNkYjdkMWI3YiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2JmOWIyYjU2MmVhMDQzZDJiZjM0NWRkYzZjNThiNzdlIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfZTY5NTE2MmY5YjRhNDhmY2JkMGVkZTM1MTEyYjBlNzIgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8yYmQ5ZjllODBlMmM0NWM3YWQzODY3MGQwMmM0NGY5YyB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2EyMGIyN2FlNTE2YTQ5M2JhYzlmNmJhMmJhZDZiY2I5IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfYzgzN2Y3OTQzYjI4NGFlNDkxNzE0OWZjZjMyNjM1MGUgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV81NzUwMTdhMjgxZGU0YmRjYTkzYWYwNjU4ZGE3Zjk2YyB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2E2ODRkOWE1ZjdkODRjZWU5YzY4OTY1ZGE3OWE3YTBjIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfZWVkZTNlMDAyYWZmNGI4NThlYTYwMDIxZTkyZTJiNDcgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9iNDRjZWE3MTg0OGY0ZTZmOTRmNGJhNmUxNDRmYzAyNSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzYxZTMzOWE0N2M3ZjRmOGJhODc4Y2JjZDU4NzVkNmY1IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfZTY0ZGVjZGM1ZGJkNDk4YWI4YzhkOWM3ZDgyZGU2MWUgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9lZmNhNzNhOWE1YjE0YTNlYTVlNDEwZjgxODA4NGM4MyB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzQwOTI3MjEyNTY4OTRhNzViZTRlM2NhZjk0MGY5Y2UxIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfYTMyZDkxZmZkMGQxNDZmYjk4ZTY2YzY1YjJkZjc5MzcgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV85ZDc0ZGE2ZTAyOGI0NTU3OTQ0ZDRiNzVmZWQ0MDkzZSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzBlZDcxODA1MWI5MTQ3MzQ5ODdiNGZkZmI5NDcyMTczIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfZDk3YjBiMmExZTAyNGE4YWIzNDVhZjAzNThiNTkzMjUgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9jYmQ3NTAwZjllOWY0NWQwOWY5ZWVjNjhmNDBkYjgwNiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzJkOWE4OGZjZGUyYjQ3ODNiMzgwYTViMTBkZGQ2YTFmIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfZWJlNDBkNzFkOTgyNGJmNmI2ZjFjN2JmMWYwMWVjMGYgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV80ZTVjNjJlMDFhMTk0MzA5OWY3NmY4YmJiOWIzMTM3OSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2QyMDI2N2JhNTYwNTQyZWY4ZmUzMzcwOWE0ZWVhYjkxIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNjFjYWVjNjU4NDg5NDNmOGIzZjkwZGRjMmJmODY4OTIgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV84YTA5NjAzMjU5ODk0ZmIzOGZmY2NiYjgxMzM1NzJiMyB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzg1Y2UxNmI2YmMwMzQ0ZTViOGY4OTgzM2FkZjgwZDljIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMGZlODI3YjM5ZDdiNGRhOWI5NTFiZWI4NmE4YzVmNGQgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9lNmY2MDM2NjljNjY0NWQ4YTgwNjI1YTJkYWUzY2Q4ZiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2RiMDQ4MWFhOGIzZTRjNzZhZTFiNTljOGViYTRmZjQxIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfZTk1ZTgzNzFhOGE3NGNlOTk2YWFhZWJiOTA2OTMyMGYgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8xZjcyMjBhZTk4NTQ0MTg3OWE2MzA3ODU0MzJmZWNmOSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2MwYjA0YWQ1Y2EyOTQxODJhY2MwMDExNjA4NTRiNmVlIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNWIyMDA0YzY3ZTlkNGI4Yzk3ZjViNmU5NzZiMTgyYzUgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV84NWQ4NWViMTkzYmU0ZGE1YTVmZTBjODRhYjE5Zjc3OSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzY5NjY0MmIwMjVmODRiMjc4ZmEyNzI5ZWRhNDYwMjRjIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMWI4ZDUyZWEyNGFhNDcyYWJhZWFmNjdjOTMzNDQ5YTUgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV81ZTFmMTNjZjY2MzQ0NDE0YmVjYjFlM2NkODM4M2NlNCB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2U5NzkyYmNiNDc0MDQxOGFhYzFlM2RkZGUwOTRmZDZkIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfYzIzNzZmYjE1OGEyNDU5YmE3ZGExNWQ4MGYwMDM0ZDUgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8wNGRmNDQ1MzllNTE0YmI3OTJiYTBmZTAxMDgyNGI1ZiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2YxODhjMTEzMGIzNzRjNDliMmMwMTI3NDBkNmNlMTgwIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfYWNmZDU1YmEwNzUwNGRlMjg0NWE2NmJlZWQzMDAxYzUgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9hNWJhYmNkNmU1NjE0ODU4YWQwMTQ2NGQ5YTc0YmM1YiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2NlYmEwZDg5NjkyNzQyYWJhY2Q2OWZmM2E4M2UyNTViIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfODk4OTFmMGZhOWJlNDRmZmFhM2VmYmE0ZmUyMjU0MjEgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9iYzBmM2Y1ZjMyNzE0ZmIyYTNiYTIxYmUxYjU1NWZjMiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2RjNmRkOGIzNmZiMzRkNjg5OWIwMzY3OTE2OGY1Y2JmIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfZDlmYmM3MzNlYWU2NDM4YjgwMzI1NThjMjBkNTRhOGMgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8xZThjNTBmMGIxYWQ0YjZlYTQzMGIzYTI2ODBkNjNlYyB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzFlMDk0ODFlN2M4ODQ4NjRhMTNiZDYwY2E2MjM4NTVlIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMjI5NjI4ZDhjY2IwNDUzNzgzOGE4OGUyNmNhMWE2MGQgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8zZmViZTkzOWZjM2U0NTJkYjczNjE2OThmYjc1ZDE0ZSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzhhZGE5NTA2NTIyYzRmOWZhOWRkMGJlYjUxYWMwNzczIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMzkyNzI1NzVjOWMxNGM2MDk2ZGYxODI1ZWU1Y2I4N2QgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9jMjg1MWNjNGNjNTY0YzE2ODE2MTBiMjg3NThjNTc4NCB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2FhMjg1ODg3NzllNTQ5ZDBhZTIwNjE4ZjJlM2RmYjNmIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMTNjMGI2NDc2MTg2NDExOWE5MTFmNDM5ZTYxMjU0MWMgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV82ZGE4ZDAwNTUxZDc0NGZmYWRhZjg1NTI3MTcwMTYzZCB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzY1NzRkNjdkMGQwMDQ4NjI5ZTcxMDFjNjNhYjMyYWRiIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfYTJiOGEzMDZhOWFlNDRkZGIzYTU1NTNjMWM0MGUzNWEgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9jMWZkNDhkZDhjMzY0ZjI1OWNhM2M0NmViMTg3NjJmNSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzI3ZDMxZGYzMzZhNzRlOWJhMjVmYjBkOGJiMDFjZmNjIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfZGMxZWRhZTNmYzcxNGU2NGI2ODc2N2E4OTI4ZDMwMDcgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9hYTNlZjNjMzYxYWQ0NTI4OTkwNDhmNmEyNzgxNjhkZCB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzAyZThiMjY5OGZiMTQzMmZhNjBjOGU0MWZlYWQ0MDZjIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfYWVhYjhiZjNjYzdlNGNiYTk2MWEwNWM3NzU0ZDY5NDggewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9kNWRhNjUzNWUzMjM0NWUwODJmOTQ3OWFkNzI1NzU4ZSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzllMGVjZGQ1NjM1NjRkMzQ4NzlmYjI4YWRmNDZjNTVhIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNGRlMmJiNjBiYzkwNGNkMGFjZGE0NWYxN2ZiMWU4OTAgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9kMWIwNTUwNjdmMDk0MDJiOWNlYTIzNGU4OWMxZDU4NCB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2ZiMzBlZWI2ODE4YjQxMDhhMDE5MjlkM2JlZThlZjUxIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfZmRjZWU2NzlkNmNmNGU5ZmIyYWU1OTc4MjU1YzY1YWMgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV82MTNhMzg0MjRkMGU0NDcyOGMzNDg1NWJkYWZhYzdiZCB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2E5N2JkMjcxYTZlNDQzMDRhODcwZmJlMDgwMWU3ZTZmIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfM2FiZGM3MGY2ODI1NDZmMjlkYTU0NWY1Y2MxYTQ0YWEgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8xNWY3N2FkOWUxNjA0OGM3ODE1ODRjYWFhY2JiYmY4NSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2E2YmJhMDg3ZjlmMjQ4NzlhZjg3MzgzM2Y4Y2JhNjk2IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfOGE4YTEwYjhhYWMwNDQ5NWEyZGZlYjMwOTRhNTdiNzkgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV81Yjk5Njk3ZWM1ZDI0MTBmOGUwOWYxYTM0YmYzMWRlMSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzdmMzdlOWEzMjk4YjRjYzA4NjkyN2VkNGNlODU4NTg1IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNjdlZWE2ODI3NTY2NDY0YmE1ZWUzZWNiODBhY2UyOTUgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV84YWFjYTYzZmYwZTU0ZDFjOTAxNmI5YmI2NmYzMzQzYiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2U1MmIwZjA5YzM1YTRlOTQ5MDEzMjU2YTc4OThlNjk4IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfZThkZTQzYWRhMGFmNGNkNzk1OGQ0MjdlM2QwZGJmOWUgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV81NTY1NGJmMzdlZjY0NWJjOTAxZjRlMWQzMzg4ZDQ2OSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2QyNDJlNWE3MjhmNjRlYTJhNjJjNTRlMTg0YjhiOTVjIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfOWU3NjdiN2UxYzFhNDI2ZGIyNmNmYjlhNmFjNjc0NDUgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9kYTVmZTZhNzA5NzM0NzYwYTVkMWQ2NzllMzY3ZTYxMyB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzAzOWMwZWY1NGViMjQ2MGJiM2Q1MGY3Mzk1YTQ5OWJlIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfODYxNzE0NDIyMDRiNGEyM2EzNDYwNjFhNmJkZWM1NDkgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8zMjI3MzA3ZTQ3Njk0ZWFiYWIyYTIzNjExOWI0MDk0NiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzc0OGM3NzBjOTc2MTQ4NjZiOWU0OWFjNjkyYjdmMmRlIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMmQ0ZmViZTI3ZGExNGI3MjgwMGYyZTkxNTRkYmRlZjcgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV85NWI1NDM2MjAzOTA0OTkyODE3NDY2YjlhMTE0ZTgzOSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzRjYmI4NGM5MTA1ZTRhNWNiZWMzODZmYWZjYWVmMDQ0IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNTlmNmJhNDI0ZDliNGVmZjk0NDBlNzc4NTVhZWQ4NGEgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9lNzczYjg4NTE0ZWY0OThmYTFhNmE0NzM4OWJmZTE0ZCB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzQwMzliNWE4NTNlZDQzYWU5YzFkZTY4YTdkNmQ4NWRhIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMmUyMmEwNjlmYTc5NDkwNDlkNjJiY2UxNDg4MzlhODUgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV83NzJjNGJiNmU5YmE0YjIxOWJlNGQ5YzQ3NTQzZGUxNSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzdiZjZmMzI1M2U3YzQ4NDY5MGFkZjU1ZDdjODVmNzYwIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfODRkOWZjY2VkYmMzNDdkZGIxZjQxYzM4Njg0M2RiMTMgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV80ZTBjNTU3MWQ3MDI0N2U2OWMwYjEyMWZkZTljZWY2NiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzUyN2Y1YTg1M2M4ZTQ2NDJhMTg3M2I5ZDRlMzcyMTk5IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfM2ViMTBlMmU5NzhmNGRjYTlkY2U1M2Q2Yjg1NDJhMmIgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV81MWJmM2UwYWQ0MGY0YWQ0OTNlOTYwMTYzMTBmNzFhMSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2Y2ZTRhZDk5YmQ2NDQzOTJiM2NjODZhMDE3ZjVmOTM0IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfZWZjZTcwYmJlYTdiNDU0YmEwNmJmZTIwZDYxNDQxZDggewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV83OTQ4ODAxMzhkYjA0YzcyYmYyZGYxOWM4NDExN2I5NSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzNlOGM5ZDhjZDliZTQ4ZmY5ZjkxMGMwMjhiZTgxMzJjIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfY2YwNzk2MGEyNWJmNDI5OGJkYzE3NTgwZTkzNjMzNTYgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9jMWIxY2NjOWIzYmM0YzJjYjQ1ZTMxNTJjYWFmZTllNCB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2E5NTM0ZmNhOWI0ODRlOTliNzcxY2UzMGVlNjBhOTQ4IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNmYyYTAzNzQ3MmQ2NDAyNzgzMWM0YjczMGNiZmYzZmIgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9iMDc0NTYwNWQ2OTQ0ZDE1YTVhN2ZmZTcyZjFiNzMzOSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2Q2ZDJlY2JkOTg3YTQ3NGE4ODU1OWNmODc4N2IyNDUwIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfOTU2NWM1NTUxZDNjNDc1OWFhZjA1MDdiOWY5ZDcwNjAgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV82YzFiNjU5MjRjODg0ZDZhODljZjVjZWQ5YTdkMzg1NSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2UxMzk4ZjZhOGU4ODQxMTRhZjZmMjI5YmFiMWMzZGZkIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfYmE3NGRkODhmZTg2NGUxZmI0MmQ5ZGE2OTFlOWY3YzQgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8xYzQ1MDNiZDQzMzc0Mjg3OGNmNjZhNzUwMmE3NDExYSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzdiOGQ0MTVlN2I4ODQyNzk5MmQ0ZWVhZmE3ZDkzMDA5IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMWFjNzdjOTJmMTc4NGEyNzhjNzUwNDJhZDgyNzI1MDcgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV82MmUxMjY5YjkyMDU0YTdiOGU3ZmZmYjlkYjQyZmZhYSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzJmNzlkYzBiOTdmNTRmOWNhNmM1Yzk2NWNkMDQwZjZkIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMDBkYjc0ZjYwNzVjNGYzMmI4N2I1MTNhYWRhZWRhYTggewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9iYzM2MDVkZTBhMjU0YTFhOWM3ZmQ3YmQ4ZDEyY2JhMyB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzcyYTUyNGI3ZGExOTQwNzlhYjZmMDk2NWUwMDA5NWEzIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNGJiNmNlYWUzYTg2NDgwMzllYjczMmNiZmY4MWM2NTYgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV83OGFlMWMxNWUxOTk0MjFkOTZkM2ZhOTkxZDQ2YjM4MCB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzk2NDBkYzhiYzlkNjQ4MWFhZWExZTAzNGE5YjU3ODY0IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNzEwMTA0OGM0ZjlkNGNiMWI0ZTNhZWRlYWE2NWY4NjkgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV81ZmYzMGEzYWFkMDE0MjJhYWRjZDg4MjRkY2ZkNGY2MyB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzU2MTk2Y2U4NWJlODQ0OWFiMDMwZWFjNWJmMTk3MWVhIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNWYyM2FmM2I3OTlkNDVlY2I5YTBjZGJlM2VhMjA1ZmYgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8wMzk3YTYyMWQ3MTc0MGZkOGIzMjBjYjU3NWYyMDRjNSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzg4M2M2ODRhNWZlZDQzOGM4YzlmOGNlZWQ4MTgxMDQ4IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfOWE1YmYxZTRmZmE4NGM1YWIwODRjODc1MzYyNmYxZDkgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9hNjJkZGMwY2NjMDk0NjZlOGQ1OTUyNWY0YzYxNzRlYiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzVlZTFjYjViNmE0YjRiNDlhN2U0ZGUwNzI5Y2E5OTcxIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfYzE0ZGVlZjRiODJjNDlkZjhiOWJhM2U1YWRhNGM0YzAgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9iZjJkN2RhZDIzYzE0NjRlYWJlZGY2YzhlYjNiN2ExMiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2VmZjYxZmRmNTliOTRmNTdhYTI3OTdmMTQwZGI5ZGU3IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfN2JjMjAyMWE5YTg1NDRhNmI3ZGFhMWQ5YTAxM2ZiNDMgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9kMTIwZTRlOTMwMWM0YzQ2YjdhMTUyNGQyODZjOGRkOCB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzhmOWM5MzNkM2YzYzQ5ZTFiNTQ5N2JjYjcxOWQ1NjBmIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMmQwY2NmYjJkYTI3NGMzY2E3ZDc3NzhjOWNjZGVmNmMgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9lY2FiYjZhNzBmYjI0MGQ4ODI1OTliN2JkZWM5NTBmNiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzdhNzU1OGVhYTk2MDQyYzBiZmExZDgzOGVhMjUwZDFjIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfZjJiZWUxZjM1ZjRhNDNkOTljOTQ0N2U4MzI4MjNiNDcgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8xYTQ5M2VjYzk5YjI0YTRiYTY4NWIzODQzZTdhYmE0YiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzdmNDUwNjlhN2NlNzQxOTBiZGQ1ZWMwNzkyZTk1YzU2IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfOThlMmEyZWUyNzdiNGFmMjk3MjVjOGMxYzk1MzY2ZGQgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9lMjI0MjhmYWI2N2I0MTBiYWEwMzNlMDYwMTU2YTY3ZSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzhhNmYyMTI3ZmFhNzQ3MGE4NDRjMDA2YTFmYTc0NGM0IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMGI3MzU0MGM5MWIxNDJlMmJkYTcyYmE0ZDM1YWNkZGIgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV81YjFkYmUwYzVhNjQ0YTMxODMyZGU5YWU5MjlmZDE5NSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2ZjNTJkMDE0YmJjZDQ5ZTNhYjJlZjgyZGYxMzc4YjAxIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfM2YxYjE5Y2ExNzM2NGQ2ZTg0ZWU0NTgxOWNhYzRhNzMgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8zMjFmNjEzM2Y2Y2M0OTkyYTdiMDIzZTU3Nzc0MGU1OSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2RmNjlkMzVmYWZmNDQ4ZTM5ZTI0YWI0MjNiZmExZDUyIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNThlNDU3ZWQzNmI2NDFhZDg4NDBmMDc2YTAyY2RjYzkgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8xZjRhOTkzMjU4NjY0Y2QxOGNhMTIzZjk5YzljM2ZmZSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzZmYzkxOTFkNmMzMjRjNTliZTczMzM5NWMxODlhZjgwIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNzMxMDgxY2NjZGE4NDkzN2E4ZjZiY2I0ZmFkOWUzNmUgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV84ODcyYzg0MjNlMTc0MTcwYWY1NDJkMTkwOWIxNGIxZSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2Q1NWE4YmE1MWQxZDQ0ZDg4OTFlOTQxNDJjNzExMjQyIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMzQ2MjVkNzg0ZGY2NGU2Y2E2YjU0M2NmNTc0MDQ1NzMgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9kNzgzNWIwNTgzODY0ODRkYWJkZmNkZmI0M2U4ZTAxOSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzNjYmVlNWQ3ZWRkOTQ4NDQ4YTJlNTU3MmQ1MTRiNGJhIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMzk2NmIxNDRlN2VkNDE4YjliOTcwZTQwMjFhYmUxOWUgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9jODg2ZDMzYzkxMDg0NmFkODQxMzgzMWQyMzQyNDA0NSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2M2YTdkNzdkMGY3NjQyZDg4Zjc3ZjdiMmExYmU2ZGNhIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMTNiMzQ5OWM3ZWI2NDIyNmEyOTQ4MjJhY2U3YTQwZjIgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8yZmMwN2Y3MTgxMWI0ZDVlYTkxMDA4MmQ4YWIzZWQ0YyB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2IxZGNlMzc1NGI0NjQxZjk4Yzc2ZmJlYjZmYTAzYjRmIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMmMyNDE4NDdkMGUxNDAwNGJmNGJkODEyYjY0MDA0OTQgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV82OTA1OGI5ZTFmM2Q0MGNlYTBiZjU5YjdjMTIxYmIyOSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzlkNjkyOWYzZTVmNTRhMTk4NzUzZWFiMzlkZDE1OTE2IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfZGZiZGFmMGZiYmZhNDlkMzg4ZDMzOTY4NTM2MGNkZjcgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8wZGE2ZTU1NDk5MmY0YWNkODNmNTczMDJkMDM0ODdiMiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2JhOTViZTQxNjYxYTQ4M2M4Zjg2Y2E4MDc5Yjc5YmE1IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNjBkN2ZjYTg5NDE4NDliMjkzNGUwYmUzYmNjZWFmM2QgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9lYWI5MTRiOTVmMTk0NGMyYThjY2Q0OGFhMzY5NGRhNiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzE4ZmZiNzU5Yjk1YzQxMzc5MTBiY2MwNjM3NTA5ZWUyIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMDU4Y2ZjNjgwNzhjNDE4Mjg5OWE2NzRlZDdlYjUxOGMgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8zZmJlYmZlYjM5NjM0YTRhYjkzYzAxZDA4MGQ0YTA0YiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2MyNDQwNTUxOTdhYTRhODRiN2U5MTc1YzYzYTZkYzQ5IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMWNmNzlmZGY2ZmQ1NDQ0YmI1NWVjNDEyZmY3NmM2ZTIgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9iMzQwYzdmMDM0MGM0MTFhYjZjMjJmMGI1MmFkODk0ZSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2MyNDZlNzljOTcwZjQ0NTU5ZjcxNTExYzI5NWM2YzQwIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMjg0MTNkMWE3Zjk4NGQ0ZDgxYTIzOThlNjJjMTFiNGMgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8wYjlkYWQ2YjlkZWE0YmRkOTc2ZTExYzZiZThkOThmMyB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2EyOTQzMDJhMmYwZjQ2Yzg4MjhiNTkyZmE3M2MwZDc5IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNjRjNzVlYmIyMTc1NGM5MTk3MjA3ZTI4ODBiYzRiNDEgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8yNmU5MWU5NmMwMjk0ZDk1OTMwZWYyZmIwMDRjODkyMyB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzJiMjM2NDE5MzA2OTRlYWJhNzQxNTAzY2QyYThhYTgwIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMTNhMjE3MDg0Mjc4NDdlZGEzYmM1NTcxMDc3MzhkZDQgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9kNjFiM2E0NjViOGI0ZTk1YjYzYzBhNjczMzlkYjU3ZiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2JlODdiZDJhYTIzZTQ1MGNhYzhmY2U2MTUwMzdhYmUyIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNjFlMGIwNDdmM2ZhNDczY2I4NjMyODVjZmMzNGNiOTAgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV84MWQ1NzlkMDA1Y2Q0M2EzOTRjNWI4NWMyOTgxMTc1NyB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2I1NGM5OGExMGQ2ZTQzYWY4OTdkMWM1MGZkYjhlMDE3IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMmViMjY2MTc0YmQwNGUwMGJiZWZhMWI5MmE2ZTc0OGIgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9hNmVmYjcwNTVlOWM0YjJkYTc2ZTY0ZWYzNDg3MDExMSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzQ5MWYxNDEyMjQzNjRkZDE4NDE4ODVjMGE1NjI5ZjgwIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfYjQ0ZWM3NjM0Zjc0NGEyYzhhOTQ1YTVmMDEwNzA2ODcgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9jMDA1ODI5NzkxMjM0Mjk5YmNiMjk2NTI2MmUwMDUwNCB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2YyZWJiZGY0OGY1ZjRiZmFhMTUwYjFhM2ZlNjE2MTA0IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfYWE2YzlhMWYwMDFkNDlmNDljMGQwYmE3ZDk1YjI5YTcgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV83MGE3ZDk5MzAyYTE0MjU5OTE1ZGFjODJkNjA3N2JjZiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2RlYjE4NDBkODFmZTRmY2I4ZGY0NzFkZWNjOWJjNDVlIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNmMwNzUxMThiNzRkNGU2Mzk5ZWFhMmIyYWQzN2RiOGEgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV8wOGYxMGI0YWViZWE0NWZlODg1YmM2ZDhmOTExMjhkNiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2MxNWUyOGZhMTFmYjQzZDBiOTM4NTAyZWVmNDY5YWQ0IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfM2QxODYwYmE5MGIxNGVhNzgyOWZkODIxZjAzNmVlNmMgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9mMmU0MTJiZjkzNmQ0ZDc1OWJlZTcyZWY5NDM3NmYzNyB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2QzMmU3MWU2MjM4YzRkMWRhZmZmZGU5MjBjZGM3NGViIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMTY5YWYwYzk3OTM1NGFmNmJmYjMwM2M1ODdlNDdkMDIgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV80OGM1MDA2ZDFiNGY0NzQ1ODAzNWI3ZmE5ODhjZDY5NiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2NhMmYyOGM2OTA5YTRiNzFiZGZlN2ZhNmQwNjBmYjI3IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfOTAyODMyNDNjYjg3NDMwZmE1ZmU4MzYzZWRhYjYwYzggewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV82MDI5MzliNjg3ZDc0ODM4YjljYTllZTViMTgwYzgxZCB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2FkNWQ4Njc2YmZmYTRlNzc4YzVjYjMyNTRlZWUwZTJmIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNGMwNDdiYzdhZTFjNDg4NTllYmM0ZDg2ZmU2NWE5NGUgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9jMDBhOTE5YjFhYjg0YjE5YTViZDU4YWIxOGY1NjY2NSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2E0YmUwMjRiMDk3NDRjNzQ5YTNhMjVlZjRmMTViNzNlIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMjA1MjZhMzI1Y2RkNDA0ODgzYzhkNzhmMThmNjRlOTkgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV80ODJiMDkyNDcwMDg0MGQ0YTg0ZWUwZTE5ZjFhYzFmOCB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzAxMjEwZjNjYjE5YjRhMTE5YTVmYWJhN2U0ZWQ3NDY1IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNTJhNjY0MzgyM2Q2NDNiYjg5YzUzMDdlNGJhZGVkNTUgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV80ZTRmMjAwMTNlZjA0NTY0YmU5MjhjZmE0NGQ5MDViYyB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2QyYzE4OGU5MzhiYjRjYTA4ZjcxYTFjZTJlZGRkZTNkIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMzVjYWM0Y2E3OGEwNGYzYjg4ZTM1NTY5NzY5YWVkMWQgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV83Y2I2NTJmMTA1NzM0OTgzYWQ2ZWJiMWQ3ZTZjNWVjZSB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhX2ZhOGQwODIzNTUxNTQ0NWE5ZjI1ZDFiNjNkODczODAzIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfNDI1MGJkMGRiYjIwNDc0YzgzZTZjOGI0NjY5NTBhNjcgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPHN0eWxlPiAjdmVnYV9jMjlhNTNlMjg2NWQ0YTU1YTM2MDQyODZhOWI2NGZlNiB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgd2lkdGggOiA3MDAuMHB4OwogICAgICAgICAgICAgICAgaGVpZ2h0OiAzNTAuMHB4OwogICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgIHRvcDogMC4wJTsKICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8c3R5bGU+ICN2ZWdhXzIyNDU2NjcwNWM4MDRkOTY4ZjczMDE5OTRkYjcwOTY0IHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7CiAgICAgICAgICAgICAgICB3aWR0aCA6IDcwMC4wcHg7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM1MC4wcHg7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxzdHlsZT4gI3ZlZ2FfMzJlMDViMDViOTI4NGJiYzlmN2ZkYTcwNGNlNjExMGYgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogNzAwLjBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMzUwLjBweDsKICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgIDwvaGVhZD4KICAgICAgICA8Ym9keT4KICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkIiA+PC9kaXY+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgPC9ib2R5PgogICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKCiAgICAgICAgICAgIHZhciBzb3V0aFdlc3QgPSBMLmxhdExuZygtOTAsIC0xODApOwogICAgICAgICAgICB2YXIgbm9ydGhFYXN0ID0gTC5sYXRMbmcoOTAsIDE4MCk7CiAgICAgICAgICAgIHZhciBib3VuZHMgPSBMLmxhdExuZ0JvdW5kcyhzb3V0aFdlc3QsIG5vcnRoRWFzdCk7CgogICAgICAgICAgICB2YXIgbWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkID0gTC5tYXAoJ21hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCcsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbnRlcjpbMTkuNDE4NiwtOTkuMTY4Nl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b29tOiAxNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJzOiBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgdGlsZV9sYXllcl9mZjVlZWU0NmYwMTc0ZWMyOGRiMTk2MDBhN2VmNWExZSA9IEwudGlsZUxheWVyKAogICAgICAgICAgICAgICAgJ2h0dHBzOi8vc3RhbWVuLXRpbGVzLXtzfS5hLnNzbC5mYXN0bHkubmV0L3RvbmVyL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbWF4Wm9vbTogMTgsCiAgICAgICAgICAgICAgICAgICAgbWluWm9vbTogMSwKICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGlvbjogJ01hcCB0aWxlcyBieSA8YSBocmVmPSJodHRwOi8vc3RhbWVuLmNvbSI+U3RhbWVuIERlc2lnbjwvYT4sIHVuZGVyIDxhIGhyZWY9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMCI+Q0MgQlkgMy4wPC9hPi4gRGF0YSBieSA8YSBocmVmPSJodHRwOi8vb3BlbnN0cmVldG1hcC5vcmciPk9wZW5TdHJlZXRNYXA8L2E+LCB1bmRlciA8YSBocmVmPSJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodCI+T0RiTDwvYT4uJywKICAgICAgICAgICAgICAgICAgICBkZXRlY3RSZXRpbmE6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwoKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyX2JjNDlmYWVjYjdiMzQ0MTJhZTdmMWMyMmE2MjMwMTU1ID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDMwOTEsLTk5LjE2MDE1KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAnYmx1ZScsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICBmdW5jdGlvbiB2ZWdhX3BhcnNlKHNwZWMsIGRpdikgewogICAgICAgICAgICB2Zy5wYXJzZS5zcGVjKHNwZWMsIGZ1bmN0aW9uKGNoYXJ0KSB7IGNoYXJ0KHtlbDpkaXZ9KS51cGRhdGUoKTsgfSk7fQogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzQ2NDU4MmNhNzU3NDQ5OWJhNDNiMDI3ODc5NmYyMjM0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzdlMGIyMDc3NjNiMDQzMmNhNjM5ZDg4ZjJjNTVhYWEzID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfN2UwYjIwNzc2M2IwNDMyY2E2MzlkODhmMmM1NWFhYTMiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzQ2NDU4MmNhNzU3NDQ5OWJhNDNiMDI3ODc5NmYyMjM0LnNldENvbnRlbnQodmVnYV83ZTBiMjA3NzYzYjA0MzJjYTYzOWQ4OGYyYzU1YWFhMyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9iYzQ5ZmFlY2I3YjM0NDEyYWU3ZjFjMjJhNjIzMDE1NS5iaW5kUG9wdXAocG9wdXBfNDY0NTgyY2E3NTc0NDk5YmE0M2IwMjc4Nzk2ZjIyMzQpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMjA6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjE2NTk0ODI3NTg2MjA2ODk4LCAiY29sIjogMjAsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDA1MTgxMzQ3MTUwMjU5MDY3NiwgImNvbCI6IDIwLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwMzA3NjkyMzA3NjkyMzA3NywgImNvbCI6IDIwLCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAxOTY2MjkyMTM0ODMxNDYwNiwgImNvbCI6IDIwLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAxNDY1MjAxNDY1MjAxNDY1MiwgImNvbCI6IDIwLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAxMTU2MDY5MzY0MTYxODQ5NywgImNvbCI6IDIwLCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjY1MDg4NzU3Mzk2NDQ5NywgImNvbCI6IDIwLCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAyLjExMzQ2NzY1NjQxNTY5NDcsICJjb2wiOiAyMCwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogNS45ODgzNDc0NTc2MjcxMTg1LCAiY29sIjogMjAsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDkuNDEzMTM1NTkzMjIwMzM5LCAiY29sIjogMjAsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDUuNDAwMjExMTkzMjQxODE2LCAiY29sIjogMjAsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAzLjMwOTQ3MzY4NDIxMDUyNiwgImNvbCI6IDIwLCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMy4yMTY4NDIxMDUyNjMxNTgsICJjb2wiOiAyMCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDMuNTE3MzUwMTU3NzI4NzA2NSwgImNvbCI6IDIwLCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogNC41MDY4NDkzMTUwNjg0OTMsICJjb2wiOiAyMCwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDQuOTg4NDA4ODUxNDIyNTUsICJjb2wiOiAyMCwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDQuNzI0OTczNjU2NDgwNTA2LCAiY29sIjogMjAsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiA1LjEwMTE1OTExNDg1Nzc0NSwgImNvbCI6IDIwLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMTEuMjE5NDA5MjgyNzAwNDIyLCAiY29sIjogMjAsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiA5LjAzMTY0NTU2OTYyMDI1MiwgImNvbCI6IDIwLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogNC45NjUxNTMxMTUxMDAzMTcsICJjb2wiOiAyMCwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDIuNjM5NjIwNjUzMzE5MjgzNCwgImNvbCI6IDIwLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMS4zMTA0NTQwNjU0Njk5MDUsICJjb2wiOiAyMCwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuNjI2NTk1NzQ0NjgwODUxMSwgImNvbCI6IDIwLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzdlMGIyMDc3NjNiMDQzMmNhNjM5ZDg4ZjJjNTVhYWEzKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfMWFmOTI5ZWU4YzdjNDhiNTk0MDJlOWUxNzhkN2I1MWUgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MjQ1OCwtOTkuMTYzNjkpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdibHVlJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzZhZTMxZjQ1ZTFhNDk4ODlhOThkYTllZmQ0YTRjNGEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfZWNkZjdiNGJmNmUyNDAwZmJiNDUwY2I4YjllZTk4M2MgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9lY2RmN2I0YmY2ZTI0MDBmYmI0NTBjYjhiOWVlOTgzYyI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzZhZTMxZjQ1ZTFhNDk4ODlhOThkYTllZmQ0YTRjNGEuc2V0Q29udGVudCh2ZWdhX2VjZGY3YjRiZjZlMjQwMGZiYjQ1MGNiOGI5ZWU5ODNjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzFhZjkyOWVlOGM3YzQ4YjU5NDAyZTllMTc4ZDdiNTFlLmJpbmRQb3B1cChwb3B1cF9jNmFlMzFmNDVlMWE0OTg4OWE5OGRhOWVmZDRhNGM0YSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAzNDogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMTQ2NTUxNzI0MTM3OTMxMDIsICJjb2wiOiAzNCwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMTM4MTY5MjU3MzQwMjQxNzksICJjb2wiOiAzNCwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMjc2OTIzMDc2OTIzMDc2OTMsICJjb2wiOiAzNCwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMzY1MTY4NTM5MzI1ODQyNywgImNvbCI6IDM0LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAyNTY0MTAyNTY0MTAyNTY0LCAiY29sIjogMzQsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMDc1MTQ0NTA4NjcwNTIwMjQsICJjb2wiOiAzNCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMS40ODUyMDcxMDA1OTE3MTYsICJjb2wiOiAzNCwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMi44NDMwNTQwODI3MTQ3NDA0LCAiY29sIjogMzQsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDQuMjUzMTc3OTY2MTAxNjk1LCAiY29sIjogMzQsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDQuODEyNSwgImNvbCI6IDM0LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAzLjE3MDAxMDU1OTY2MjA5MSwgImNvbCI6IDM0LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMi44OTg5NDczNjg0MjEwNTI1LCAiY29sIjogMzQsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAyLjk5MjYzMTU3ODk0NzM2ODUsICJjb2wiOiAzNCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDMuNTY0NjY4NzY5NzE2MDg4NCwgImNvbCI6IDM0LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogNS41ODQ4MjYxMzI3NzEzMzgsICJjb2wiOiAzNCwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDUuNjQ2OTk2ODM4Nzc3NjYsICJjb2wiOiAzNCwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDQuMTM2OTg2MzAxMzY5ODYzLCAiY29sIjogMzQsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiA0Ljc1NzYzOTYyMDY1MzMxOSwgImNvbCI6IDM0LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogOC4xNjY2NjY2NjY2NjY2NjYsICJjb2wiOiAzNCwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDcuOTY4MzU0NDMwMzc5NzQ3LCAiY29sIjogMzQsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiA0Ljc0NTUxMjE0MzYxMTQwNCwgImNvbCI6IDM0LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMy41OTUzNjM1NDA1NjkwMiwgImNvbCI6IDM0LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMi4zNjMyNTIzNzU5MjM5NzAzLCAiY29sIjogMzQsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAxLjE1NTMxOTE0ODkzNjE3MDMsICJjb2wiOiAzNCwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9lY2RmN2I0YmY2ZTI0MDBmYmI0NTBjYjhiOWVlOTgzYyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzU4NzQ4M2YzZTQ5ZDQ2OGZiODc3NGFjOGI2ZTM4ZmJhID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDI0NTYsLTk5LjE2MzUyKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAnYmx1ZScsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Q0OGIxMzA1Zjg5MzRjOWQ5YTllMmM1NTlmYmFiYjgyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzhkMzFhZmYyOWQxYzQ2YzU4M2Y2NWI2YjcyZDk2ODZjID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfOGQzMWFmZjI5ZDFjNDZjNTgzZjY1YjZiNzJkOTY4NmMiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Q0OGIxMzA1Zjg5MzRjOWQ5YTllMmM1NTlmYmFiYjgyLnNldENvbnRlbnQodmVnYV84ZDMxYWZmMjlkMWM0NmM1ODNmNjViNmI3MmQ5Njg2Yyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl81ODc0ODNmM2U0OWQ0NjhmYjg3NzRhYzhiNmUzOGZiYS5iaW5kUG9wdXAocG9wdXBfZDQ4YjEzMDVmODkzNGM5ZDlhOWUyYzU1OWZiYWJiODIpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMzU6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjEzNDY5ODI3NTg2MjA2ODk4LCAiY29sIjogMzUsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDEzODE2OTI1NzM0MDI0MTc5LCAiY29sIjogMzUsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMDEyMzA3NjkyMzA3NjkyMzA4LCAiY29sIjogMzUsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDczMDMzNzA3ODY1MTY4NTQsICJjb2wiOiAzNSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMTA5ODkwMTA5ODkwMTA5OSwgImNvbCI6IDM1LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjA0NjI0Mjc3NDU2NjQ3Mzk4NiwgImNvbCI6IDM1LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAyLjExMjQyNjAzNTUwMjk1ODUsICJjb2wiOiAzNSwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMy42ODM5ODcyNzQ2NTUzNTU1LCAiY29sIjogMzUsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDQuNzc4NjAxNjk0OTE1MjU0LCAiY29sIjogMzUsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDQuNjAzODEzNTU5MzIyMDM0LCAiY29sIjogMzUsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDMuNDYyNTEzMTk5NTc3NjEzNSwgImNvbCI6IDM1LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMi42ODMxNTc4OTQ3MzY4NDIsICJjb2wiOiAzNSwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDIuNjA2MzE1Nzg5NDczNjg0LCAiY29sIjogMzUsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAzLjI1ODY3NTA3ODg2NDM1MzUsICJjb2wiOiAzNSwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDQuOTEwNDMyMDMzNzE5NzA1LCAiY29sIjogMzUsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiA1LjIwMTI2NDQ4ODkzNTcyMiwgImNvbCI6IDM1LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogNC4xMTI3NTAyNjM0MzUxOTUsICJjb2wiOiAzNSwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDUuMDUyNjg3MDM4OTg4NDA5LCAiY29sIjogMzUsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiA5LjIwNjc1MTA1NDg1MjMyLCAiY29sIjogMzUsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiA4Ljk0NzI1NzM4Mzk2NjI0NCwgImNvbCI6IDM1LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogNS4yNjM5OTE1NTIyNzAzMjcsICJjb2wiOiAzNSwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDMuNjE3NDkyMDk2OTQ0MTUxNywgImNvbCI6IDM1LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMi42MDcxODA1NzAyMjE3NTMsICJjb2wiOiAzNSwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDEuMjQ4OTM2MTcwMjEyNzY2LCAiY29sIjogMzUsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfOGQzMWFmZjI5ZDFjNDZjNTgzZjY1YjZiNzJkOTY4NmMpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl81NTNiYTU2ODcxYjg0NTJkYjdkMWVhOTFmYTdjOWE0YSA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQyMTMsLTk5LjE3MTU4KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAnYmx1ZScsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2FhOWFiNzE4N2E1OTRiM2VhM2Y1NGExYmYyODNjZGRmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2M5OTIzNWI0MDYzODRiMDJhZmZhY2JlOTgxMDRlNTdiID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfYzk5MjM1YjQwNjM4NGIwMmFmZmFjYmU5ODEwNGU1N2IiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2FhOWFiNzE4N2E1OTRiM2VhM2Y1NGExYmYyODNjZGRmLnNldENvbnRlbnQodmVnYV9jOTkyMzViNDA2Mzg0YjAyYWZmYWNiZTk4MTA0ZTU3Yik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl81NTNiYTU2ODcxYjg0NTJkYjdkMWVhOTFmYTdjOWE0YS5iaW5kUG9wdXAocG9wdXBfYWE5YWI3MTg3YTU5NGIzZWEzZjU0YTFiZjI4M2NkZGYpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMzg6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjI3MjYyOTMxMDM0NDgyNzU3LCAiY29sIjogMzgsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDI5MzYwOTY3MTg0ODAxMzgsICJjb2wiOiAzOCwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMTUzODQ2MTUzODQ2MTUzODUsICJjb2wiOiAzOCwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMjgwODk4ODc2NDA0NDk0MzcsICJjb2wiOiAzOCwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMTQ2NTIwMTQ2NTIwMTQ2NTIsICJjb2wiOiAzOCwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wMTE1NjA2OTM2NDE2MTg0OTcsICJjb2wiOiAzOCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMS43NTg1Nzk4ODE2NTY4MDQ4LCAiY29sIjogMzgsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDMuOTI2ODI5MjY4MjkyNjgzLCAiY29sIjogMzgsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDkuMjE4MjIwMzM4OTgzMDUsICJjb2wiOiAzOCwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogOC45ODMwNTA4NDc0NTc2MjYsICJjb2wiOiAzOCwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogNC44NzMyODQwNTQ5MTAyNDI1LCAiY29sIjogMzgsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiA0LjAyLCAiY29sIjogMzgsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAzLjczNTc4OTQ3MzY4NDIxMDUsICJjb2wiOiAzOCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDQuMzcyMjM5NzQ3NjM0MDcsICJjb2wiOiAzOCwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDcuMDMxNjEyMjIzMzkzMDQ1LCAiY29sIjogMzgsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiA3LjE0NTQxNjIyNzYwODAwOCwgImNvbCI6IDM4LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogNi41OTc0NzEwMjIxMjg1NTYsICJjb2wiOiAzOCwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDYuNDkxMDQzMjAzMzcxOTcsICJjb2wiOiAzOCwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDkuMTI2NTgyMjc4NDgxMDEzLCAiY29sIjogMzgsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiA4LjE1OTI4MjcwMDQyMTk0LCAiY29sIjogMzgsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiA1LjUzOTU5ODczMjg0MDU0OSwgImNvbCI6IDM4LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogNC4wMjAwMjEwNzQ4MTU1OTUsICJjb2wiOiAzOCwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDIuNDgwNDY0NjI1MTMxOTk2LCAiY29sIjogMzgsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAxLjM3OTc4NzIzNDA0MjU1MzIsICJjb2wiOiAzOCwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9jOTkyMzViNDA2Mzg0YjAyYWZmYWNiZTk4MTA0ZTU3Yik7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzVmNGU4YWZiNDNlNDRmNmM5ZWQyYTRhMWFkNGZkY2E0ID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDM1NDIsLTk5LjE1MDMyKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAnYmx1ZScsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzdkMTEzNGJlZTJlNjQ4YjU5NzQxZGYzYjQyNDk4MzQyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2Q1YzFjNWNkMzFkZjRhNzQ4ZjhlNmNlYTdlNWE2ZDI3ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfZDVjMWM1Y2QzMWRmNGE3NDhmOGU2Y2VhN2U1YTZkMjciPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzdkMTEzNGJlZTJlNjQ4YjU5NzQxZGYzYjQyNDk4MzQyLnNldENvbnRlbnQodmVnYV9kNWMxYzVjZDMxZGY0YTc0OGY4ZTZjZWE3ZTVhNmQyNyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl81ZjRlOGFmYjQzZTQ0ZjZjOWVkMmE0YTFhZDRmZGNhNC5iaW5kUG9wdXAocG9wdXBfN2QxMTM0YmVlMmU2NDhiNTk3NDFkZjNiNDI0OTgzNDIpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gNDE6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjM5MjI0MTM3OTMxMDM0NDgsICJjb2wiOiA0MSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wNDQ5MDUwMDg2MzU1Nzg1ODYsICJjb2wiOiA0MSwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMjQ2MTUzODQ2MTUzODQ2MTUsICJjb2wiOiA0MSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMzY1MTY4NTM5MzI1ODQyNywgImNvbCI6IDQxLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAzMjk2NzAzMjk2NzAzMjk3LCAiY29sIjogNDEsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMDI4OTAxNzM0MTA0MDQ2MjQyLCAiY29sIjogNDEsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuNjkxMTI0MjYwMzU1MDI5NiwgImNvbCI6IDQxLCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAxLjc0ODY3NDQ0MzI2NjE3MTgsICJjb2wiOiA0MSwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogNC4wMDUyOTY2MTAxNjk0OTEsICJjb2wiOiA0MSwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogNC4wLCAiY29sIjogNDEsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDIuODA5OTI2MDgyMzY1MzY0MiwgImNvbCI6IDQxLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMy4yMTM2ODQyMTA1MjYzMTU3LCAiY29sIjogNDEsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAzLjU1MTU3ODk0NzM2ODQyMSwgImNvbCI6IDQxLCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogNC4yNjQ5ODQyMjcxMjkzMzgsICJjb2wiOiA0MSwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDYuMDIwMDIxMDc0ODE1NTk1LCAiY29sIjogNDEsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiA3LjI0MDI1Mjg5Nzc4NzE0NCwgImNvbCI6IDQxLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogNi44NDE5Mzg4ODMwMzQ3NzMsICJjb2wiOiA0MSwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDcuMjM2MDM3OTM0NjY4MDcxLCAiY29sIjogNDEsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxNC43MDU2OTYyMDI1MzE2NDYsICJjb2wiOiA0MSwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDE3LjM1MDIxMDk3MDQ2NDEzNiwgImNvbCI6IDQxLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogOS42ODk1NDU5MzQ1MzAwOTUsICJjb2wiOiA0MSwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDUuODA3MTY1NDM3MzAyNDI0LCAiY29sIjogNDEsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAyLjk5ODk0NDAzMzc5MDkxOSwgImNvbCI6IDQxLCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMS4zMjM0MDQyNTUzMTkxNDksICJjb2wiOiA0MSwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9kNWMxYzVjZDMxZGY0YTc0OGY4ZTZjZWE3ZTVhNmQyNyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyX2ExN2Q5MGQ4MGJiMzQxNWJhMmFiNmVmMjhmOTk3OGM1ID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDM1MjEsLTk5LjE0NTkxKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAnYmx1ZScsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2JiZGFiYjU2ZmM3NTQ3YmI5OWQ0ZDc0NDcyODQ3ZTg2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2Y4MjdkMGFmNzg0MzRhMjdhMTY1NjA2YjQ5ZjkyNDBiID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfZjgyN2QwYWY3ODQzNGEyN2ExNjU2MDZiNDlmOTI0MGIiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2JiZGFiYjU2ZmM3NTQ3YmI5OWQ0ZDc0NDcyODQ3ZTg2LnNldENvbnRlbnQodmVnYV9mODI3ZDBhZjc4NDM0YTI3YTE2NTYwNmI0OWY5MjQwYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9hMTdkOTBkODBiYjM0MTViYTJhYjZlZjI4Zjk5NzhjNS5iaW5kUG9wdXAocG9wdXBfYmJkYWJiNTZmYzc1NDdiYjk5ZDRkNzQ0NzI4NDdlODYpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gNDM6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjI3NjkzOTY1NTE3MjQxMzgsICJjb2wiOiA0MywgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMTIwODk4MTAwMTcyNzExNTgsICJjb2wiOiA0MywgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMDMwNzY5MjMwNzY5MjMwNzcsICJjb2wiOiA0MywgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMTY4NTM5MzI1ODQyNjk2NjIsICJjb2wiOiA0MywgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMTA5ODkwMTA5ODkwMTA5OSwgImNvbCI6IDQzLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAyODkwMTczNDEwNDA0NjI0MiwgImNvbCI6IDQzLCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjUyNTQ0Mzc4Njk4MjI0ODUsICJjb2wiOiA0MywgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMS40MzA1NDA4MjcxNDc0MDE4LCAiY29sIjogNDMsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDMuNTYyNSwgImNvbCI6IDQzLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiA0LjY3Nzk2NjEwMTY5NDkxNSwgImNvbCI6IDQzLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAzLjg5ODYyNzI0MzkyODE5NDQsICJjb2wiOiA0MywgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDQuNDA2MzE1Nzg5NDczNjg0LCAiY29sIjogNDMsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiA0LjkzNDczNjg0MjEwNTI2MywgImNvbCI6IDQzLCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogNS41Njk5MjYzOTMyNzAyNDIsICJjb2wiOiA0MywgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDYuNzgwODIxOTE3ODA4MjE5LCAiY29sIjogNDMsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiA4LjE1Mzg0NjE1Mzg0NjE1MywgImNvbCI6IDQzLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogNy41NDQ3ODM5ODMxNDAxNDgsICJjb2wiOiA0MywgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDcuNjk5NjgzODc3NzY2MDcsICJjb2wiOiA0MywgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDEzLjM0MDcxNzI5OTU3ODA2LCAiY29sIjogNDMsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxMi4zNDgxMDEyNjU4MjI3ODQsICJjb2wiOiA0MywgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDguNTA0NzUxODQ3OTQwODY3LCAiY29sIjogNDMsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiA0Ljk0MzA5Nzk5Nzg5MjUxOSwgImNvbCI6IDQzLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMi43MDQzMjk0NjE0NTcyMzMzLCAiY29sIjogNDMsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAxLjQzNTEwNjM4Mjk3ODcyMzQsICJjb2wiOiA0MywgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9mODI3ZDBhZjc4NDM0YTI3YTE2NTYwNmI0OWY5MjQwYik7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzE3MDI4NzNlMDUyMTQyNjhhNzZmNmRiZWI0MjhhNTI3ID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDE5MTksLTk5LjE2OTc2KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAnYmx1ZScsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzA1NmE0YmFjZjcyZTQ0M2E4MDI3NWM4NGNjNzg0YzNhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzc4NjY0ZDAyMmY5NTQ3OGU4NjIyMTY0YWRkNTRmMjA3ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfNzg2NjRkMDIyZjk1NDc4ZTg2MjIxNjRhZGQ1NGYyMDciPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzA1NmE0YmFjZjcyZTQ0M2E4MDI3NWM4NGNjNzg0YzNhLnNldENvbnRlbnQodmVnYV83ODY2NGQwMjJmOTU0NzhlODYyMjE2NGFkZDU0ZjIwNyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl8xNzAyODczZTA1MjE0MjY4YTc2ZjZkYmViNDI4YTUyNy5iaW5kUG9wdXAocG9wdXBfMDU2YTRiYWNmNzJlNDQzYTgwMjc1Yzg0Y2M3ODRjM2EpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gNDY6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjMyNTQzMTAzNDQ4Mjc1ODYsICJjb2wiOiA0NiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDUxODEzNDcxNTAyNTkwNjc2LCAiY29sIjogNDYsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMDE1Mzg0NjE1Mzg0NjE1Mzg1LCAiY29sIjogNDYsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDA1NjE3OTc3NTI4MDg5ODg3NSwgImNvbCI6IDQ2LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAyNTY0MTAyNTY0MTAyNTY0LCAiY29sIjogNDYsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMDExNTYwNjkzNjQxNjE4NDk3LCAiY29sIjogNDYsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMzU3Mzk2NDQ5NzA0MTQyLCAiY29sIjogNDYsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDIuMDQ1NTk5MTUxNjQzNjksICJjb2wiOiA0NiwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogNy4wOTMyMjAzMzg5ODMwNTEsICJjb2wiOiA0NiwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogNi41MTE2NTI1NDIzNzI4ODE1LCAiY29sIjogNDYsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDUuOTAwNzM5MTc2MzQ2MzU3LCAiY29sIjogNDYsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiA1LjM1Njg0MjEwNTI2MzE1OCwgImNvbCI6IDQ2LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogNS4yNTQ3MzY4NDIxMDUyNjMsICJjb2wiOiA0NiwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDYuMDU5OTM2OTA4NTE3MzUsICJjb2wiOiA0NiwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDkuMjY5NzU3NjM5NjIwNjU0LCAiY29sIjogNDYsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiA5LjIzMDc2OTIzMDc2OTIzLCAiY29sIjogNDYsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiA2Ljk5NjgzODc3NzY2MDY5NSwgImNvbCI6IDQ2LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogNS43NjgxNzcwMjg0NTEwMDEsICJjb2wiOiA0NiwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDcuNTI1MzE2NDU1Njk2MjAzLCAiY29sIjogNDYsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiA3LjE3OTMyNDg5NDUxNDc2OCwgImNvbCI6IDQ2LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogNC43MTU5NDUwODk3NTcxMjgsICJjb2wiOiA0NiwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDIuNDUyMDU0Nzk0NTIwNTQ4LCAiY29sIjogNDYsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAxLjQ5NDE5MjE4NTg1MDA1MjksICJjb2wiOiA0NiwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuODc1NTMxOTE0ODkzNjE3LCAiY29sIjogNDYsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfNzg2NjRkMDIyZjk1NDc4ZTg2MjIxNjRhZGQ1NGYyMDcpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl80ODk4MzA1Y2JiNDY0MDFlYjMwNTdmNzU3MTZiNWJmNCA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQxOTcxLC05OS4xNjYyNyksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ2JsdWUnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iNzMyMTQ3NjkzYmE0YzNjOTY2Yjk4NDIxZTE0ODBlYyA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV82NTYxN2ZiY2E4ZjQ0Y2U1YmFiMjk2NjYxNzhlYzYyZCA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzY1NjE3ZmJjYThmNDRjZTViYWIyOTY2NjE3OGVjNjJkIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iNzMyMTQ3NjkzYmE0YzNjOTY2Yjk4NDIxZTE0ODBlYy5zZXRDb250ZW50KHZlZ2FfNjU2MTdmYmNhOGY0NGNlNWJhYjI5NjY2MTc4ZWM2MmQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNDg5ODMwNWNiYjQ2NDAxZWIzMDU3Zjc1NzE2YjViZjQuYmluZFBvcHVwKHBvcHVwX2I3MzIxNDc2OTNiYTRjM2M5NjZiOTg0MjFlMTQ4MGVjKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDQ3OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC40MDg0MDUxNzI0MTM3OTMxLCAiY29sIjogNDcsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDMxMDg4MDgyOTAxNTU0NDA0LCAiY29sIjogNDcsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMDE1Mzg0NjE1Mzg0NjE1Mzg1LCAiY29sIjogNDcsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDE0MDQ0OTQzODIwMjI0NzE5LCAiY29sIjogNDcsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDQ3LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiA0NywgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4zNTk3NjMzMTM2MDk0Njc0NSwgImNvbCI6IDQ3LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAyLjE5NzI0Mjg0MTk5MzYzNywgImNvbCI6IDQ3LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiA3LjkwNTcyMDMzODk4MzA1MSwgImNvbCI6IDQ3LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiA5LjQ1ODY4NjQ0MDY3Nzk2NSwgImNvbCI6IDQ3LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiA1Ljk5NDcyMDE2ODk1NDU5MzUsICJjb2wiOiA0NywgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDUuMDQxMDUyNjMxNTc4OTQ3LCAiY29sIjogNDcsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiA1LjU0NzM2ODQyMTA1MjYzMTUsICJjb2wiOiA0NywgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDYuMzQxNzQ1NTMxMDE5OTc5LCAiY29sIjogNDcsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxMC4xNjk2NTIyNjU1NDI2NzcsICJjb2wiOiA0NywgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDkuMjI2NTU0MjY3NjUwMTU4LCAiY29sIjogNDcsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiA3Ljg3MDM4OTg4NDA4ODUxNCwgImNvbCI6IDQ3LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogNi4wMTI2NDQ4ODkzNTcyMTgsICJjb2wiOiA0NywgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDcuNTg0Mzg4MTg1NjU0MDA4LCAiY29sIjogNDcsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiA3LjI2MTYwMzM3NTUyNzQyNiwgImNvbCI6IDQ3LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogNS43MjEyMjQ5MjA4MDI1MzQsICJjb2wiOiA0NywgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDQuMDEyNjQ0ODg5MzU3MjE4LCAiY29sIjogNDcsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAyLjU2MDcxODA1NzAyMjE3NTUsICJjb2wiOiA0NywgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDEuNTMxOTE0ODkzNjE3MDIxMywgImNvbCI6IDQ3LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzY1NjE3ZmJjYThmNDRjZTViYWIyOTY2NjE3OGVjNjJkKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfMjNiZGJiOGFjNDRiNDE0ODhjNGU2NGZhOGNjYjYxMGIgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MTgwMywtOTkuMTY4NDQpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdibHVlJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMWNlZGFiOTA5NmMyNDU3ZjlmZThiZTQ4MmIyYmE4NjcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfOWQ3NDk1NjE2ZDdiNGU0ZmFkZjcxYWExNTRlYTczNzEgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV85ZDc0OTU2MTZkN2I0ZTRmYWRmNzFhYTE1NGVhNzM3MSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMWNlZGFiOTA5NmMyNDU3ZjlmZThiZTQ4MmIyYmE4Njcuc2V0Q29udGVudCh2ZWdhXzlkNzQ5NTYxNmQ3YjRlNGZhZGY3MWFhMTU0ZWE3MzcxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzIzYmRiYjhhYzQ0YjQxNDg4YzRlNjRmYThjY2I2MTBiLmJpbmRQb3B1cChwb3B1cF8xY2VkYWI5MDk2YzI0NTdmOWZlOGJlNDgyYjJiYTg2Nyk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiA1MTogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMjAwNDMxMDM0NDgyNzU4NjIsICJjb2wiOiA1MSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDY5MDg0NjI4NjcwMTIwODk1LCAiY29sIjogNTEsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMDA2MTUzODQ2MTUzODQ2MTU0LCAiY29sIjogNTEsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDA4NDI2OTY2MjkyMTM0ODMxLCAiY29sIjogNTEsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMDE0NjUyMDE0NjUyMDE0NjUyLCAiY29sIjogNTEsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMDA1NzgwMzQ2ODIwODA5MjQ4LCAiY29sIjogNTEsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMTM2MDk0Njc0NTU2MjEzMDIsICJjb2wiOiA1MSwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMy42OTk4OTM5NTU0NjEyOTQsICJjb2wiOiA1MSwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogNy42NTA0MjM3Mjg4MTM1NiwgImNvbCI6IDUxLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiA1LjkzMzI2MjcxMTg2NDQwNywgImNvbCI6IDUxLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiA0Ljk4NjI3MjQzOTI4MTk0MywgImNvbCI6IDUxLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogNS40Mjg0MjEwNTI2MzE1NzksICJjb2wiOiA1MSwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDUuNzUwNTI2MzE1Nzg5NDczNSwgImNvbCI6IDUxLCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogNi4yNTQ0Njg5ODAwMjEwMzEsICJjb2wiOiA1MSwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDkuMDUyNjg3MDM4OTg4NDEsICJjb2wiOiA1MSwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDkuNzk4NzM1NTExMDY0Mjc4LCAiY29sIjogNTEsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiA2LjEzMDY2Mzg1NjY5MTI1NCwgImNvbCI6IDUxLCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogNC45NTQ2ODkxNDY0Njk5NjksICJjb2wiOiA1MSwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDYuMjQwNTA2MzI5MTEzOTI0NCwgImNvbCI6IDUxLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogNi40NjIwMjUzMTY0NTU2OTYsICJjb2wiOiA1MSwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDQuNTgyODkzMzQ3NDEyODgzLCAiY29sIjogNTEsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAyLjQ2OTk2ODM4Nzc3NjYwNywgImNvbCI6IDUxLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMS40NTMwMDk1MDM2OTU4ODE3LCAiY29sIjogNTEsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjUzMDg1MTA2MzgyOTc4NzIsICJjb2wiOiA1MSwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV85ZDc0OTU2MTZkN2I0ZTRmYWRmNzFhYTE1NGVhNzM3MSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyX2E5ZjExN2Y0YmE5OTQwNWE4OGZkMjc4MjlmYTY0ZTYxID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDE2MTYsLTk5LjE3MDgpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdibHVlJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjZlOGFjZTRiNDM1NGI0N2FmYmM3YWY1NGRhZWE2ZmEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfMWI5YjU3YjNlOTYyNGM3YThkMzQ4MDA3MmZjOTBjNDEgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV8xYjliNTdiM2U5NjI0YzdhOGQzNDgwMDcyZmM5MGM0MSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjZlOGFjZTRiNDM1NGI0N2FmYmM3YWY1NGRhZWE2ZmEuc2V0Q29udGVudCh2ZWdhXzFiOWI1N2IzZTk2MjRjN2E4ZDM0ODAwNzJmYzkwYzQxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2E5ZjExN2Y0YmE5OTQwNWE4OGZkMjc4MjlmYTY0ZTYxLmJpbmRQb3B1cChwb3B1cF82NmU4YWNlNGI0MzU0YjQ3YWZiYzdhZjU0ZGFlYTZmYSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiA1NDogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMzcwNjg5NjU1MTcyNDEzOCwgImNvbCI6IDU0LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAwODYzNTU3ODU4Mzc2NTExMiwgImNvbCI6IDU0LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwOTIzMDc2OTIzMDc2OTIzMiwgImNvbCI6IDU0LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAyMjQ3MTkxMDExMjM1OTU1LCAiY29sIjogNTQsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMDE4MzE1MDE4MzE1MDE4MzE2LCAiY29sIjogNTQsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMDA1NzgwMzQ2ODIwODA5MjQ4LCAiY29sIjogNTQsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuOTA4ODc1NzM5NjQ0OTcwNCwgImNvbCI6IDU0LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAzLjAzNDk5NDY5Nzc3MzA2NSwgImNvbCI6IDU0LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiA0LjgxODg1NTkzMjIwMzM5LCAiY29sIjogNTQsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDYuMDU1MDg0NzQ1NzYyNzEyLCAiY29sIjogNTQsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDQuNzQ0NDU2MTc3NDAyMzIzNSwgImNvbCI6IDU0LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogNC4wMzM2ODQyMTA1MjYzMTU1LCAiY29sIjogNTQsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAzLjUzMTU3ODk0NzM2ODQyMSwgImNvbCI6IDU0LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMy45NzI2NjAzNTc1MTg0MDIsICJjb2wiOiA1NCwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDUuNjcyMjg2NjE3NDkyMDk3LCAiY29sIjogNTQsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiA1LjQ4MzY2NzAxNzkxMzU5MywgImNvbCI6IDU0LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogNS4zMDU1ODQ4MjYxMzI3NzIsICJjb2wiOiA1NCwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDQuOTU4OTA0MTA5NTg5MDQxLCAiY29sIjogNTQsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiA1LjkwNTA2MzI5MTEzOTI0MSwgImNvbCI6IDU0LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogNi4xNTUwNjMyOTExMzkyNDEsICJjb2wiOiA1NCwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDUuMzQyMTMzMDUxNzQyMzQ0LCAiY29sIjogNTQsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAzLjcwNjAwNjMyMjQ0NDY3ODQsICJjb2wiOiA1NCwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDIuMjUwMjYzOTkxNTUyMjcwNCwgImNvbCI6IDU0LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMS4zNTIxMjc2NTk1NzQ0NjgsICJjb2wiOiA1NCwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV8xYjliNTdiM2U5NjI0YzdhOGQzNDgwMDcyZmM5MGM0MSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyX2RmMGIxYTc1NGNkMDQ3Mjk5ZDFkZWJmZjE1MWFkN2FiID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDE3MSwtOTkuMTY1NjEpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdibHVlJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZGYxMzkwMTc3NTY3NGUyY2E4ZWZlNzUwMmMzN2RmZDIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfY2ZkMmMwY2E0YmExNDVlNDhjYmMxOGQwYmM1NjAyNGUgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9jZmQyYzBjYTRiYTE0NWU0OGNiYzE4ZDBiYzU2MDI0ZSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZGYxMzkwMTc3NTY3NGUyY2E4ZWZlNzUwMmMzN2RmZDIuc2V0Q29udGVudCh2ZWdhX2NmZDJjMGNhNGJhMTQ1ZTQ4Y2JjMThkMGJjNTYwMjRlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2RmMGIxYTc1NGNkMDQ3Mjk5ZDFkZWJmZjE1MWFkN2FiLmJpbmRQb3B1cChwb3B1cF9kZjEzOTAxNzc1Njc0ZTJjYThlZmU3NTAyYzM3ZGZkMik7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiA1NjogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMzU3NzU4NjIwNjg5NjU1MiwgImNvbCI6IDU2LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAxNTU0NDA0MTQ1MDc3NzIwMiwgImNvbCI6IDU2LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAyMTUzODQ2MTUzODQ2MTUzOCwgImNvbCI6IDU2LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAyMjQ3MTkxMDExMjM1OTU1LCAiY29sIjogNTYsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMDEwOTg5MDEwOTg5MDEwOTksICJjb2wiOiA1NiwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wMDU3ODAzNDY4MjA4MDkyNDgsICJjb2wiOiA1NiwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMS4wODI4NDAyMzY2ODYzOTA1LCAiY29sIjogNTYsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDIuNjUwMDUzMDIyMjY5MzUzMiwgImNvbCI6IDU2LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiA3LjU1ODI2MjcxMTg2NDQwNywgImNvbCI6IDU2LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAxMC43MzYyMjg4MTM1NTkzMjIsICJjb2wiOiA1NiwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogNy40MTM5Mzg3NTM5NTk4NzMsICJjb2wiOiA1NiwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDYuMDcyNjMxNTc4OTQ3MzY5LCAiY29sIjogNTYsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiA1LjkzMDUyNjMxNTc4OTQ3NCwgImNvbCI6IDU2LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogNi40MjE2NjE0MDkwNDMxMTMsICJjb2wiOiA1NiwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDguNzA2MDA2MzIyNDQ0NjgsICJjb2wiOiA1NiwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDguNDYyNTkyMjAyMzE4MjMsICJjb2wiOiA1NiwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDcuNDM2MjQ4NjgyODI0MDI1LCAiY29sIjogNTYsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiA2Ljk4MTAzMjY2NTk2NDE3MywgImNvbCI6IDU2LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMTAuNDE3NzIxNTE4OTg3MzQyLCAiY29sIjogNTYsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiA5LjYyMDI1MzE2NDU1Njk2MiwgImNvbCI6IDU2LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogNi42NTA0NzUxODQ3OTQwODcsICJjb2wiOiA1NiwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDQuNDM0MTQxMjAxMjY0NDg5LCAiY29sIjogNTYsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAyLjczNzA2NDQxMzkzODc1NCwgImNvbCI6IDU2LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMS42MzE5MTQ4OTM2MTcwMjE0LCAiY29sIjogNTYsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfY2ZkMmMwY2E0YmExNDVlNDhjYmMxOGQwYmM1NjAyNGUpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl8xMzViNmVkZTgzYjM0NzBlOWNmZmM4MTllZjI4YzMxNSA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQxNDk3LC05OS4xNzQ3NyksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ2JsdWUnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xZjA4MWQ4YzJjMDY0YThmYTEyZWVjODEyODM1NjljMyA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV80ZDFkOWViMmIyYjY0NzM1YjM4NWQ3ZGZjM2M2NzJlOCA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzRkMWQ5ZWIyYjJiNjQ3MzViMzg1ZDdkZmMzYzY3MmU4Ij48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xZjA4MWQ4YzJjMDY0YThmYTEyZWVjODEyODM1NjljMy5zZXRDb250ZW50KHZlZ2FfNGQxZDllYjJiMmI2NDczNWIzODVkN2RmYzNjNjcyZTgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfMTM1YjZlZGU4M2IzNDcwZTljZmZjODE5ZWYyOGMzMTUuYmluZFBvcHVwKHBvcHVwXzFmMDgxZDhjMmMwNjRhOGZhMTJlZWM4MTI4MzU2OWMzKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDU3OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4yMDc5NzQxMzc5MzEwMzQ0OCwgImNvbCI6IDU3LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAwNjkwODQ2Mjg2NzAxMjA4OTUsICJjb2wiOiA1NywgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMDMwNzY5MjMwNzY5MjMwNzcsICJjb2wiOiA1NywgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogNTcsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMDAzNjYzMDAzNjYzMDAzNjYzLCAiY29sIjogNTcsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDU3LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjE5MDUzMjU0NDM3ODY5ODI0LCAiY29sIjogNTcsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuNjM0MTQ2MzQxNDYzNDE0NiwgImNvbCI6IDU3LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAyLjg3Mjg4MTM1NTkzMjIwMzMsICJjb2wiOiA1NywgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogNC4yNDE1MjU0MjM3Mjg4MTMsICJjb2wiOiA1NywgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogNC4wMTM3Mjc1NjA3MTgwNTcsICJjb2wiOiA1NywgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDIuNzczNjg0MjEwNTI2MzE1OCwgImNvbCI6IDU3LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMi41NTA1MjYzMTU3ODk0NzM4LCAiY29sIjogNTcsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAyLjkxMDYyMDM5OTU3OTM5MDIsICJjb2wiOiA1NywgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDQuMTg2NTEyMTE4MDE4OTY3NSwgImNvbCI6IDU3LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogNC40MDg4NTE0MjI1NTAwNTMsICJjb2wiOiA1NywgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDMuNTU2Mzc1MTMxNzE3NTk3MywgImNvbCI6IDU3LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMy4yODEzNDg3ODgxOTgxMDMsICJjb2wiOiA1NywgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDMuNDY0MTM1MDIxMDk3MDQ2NSwgImNvbCI6IDU3LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMy43NzEwOTcwNDY0MTM1MDIsICJjb2wiOiA1NywgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDMuMTc5NTE0MjU1NTQzODIyNywgImNvbCI6IDU3LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMi40MDY3NDM5NDA5OTA1MTYzLCAiY29sIjogNTcsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAxLjczNzA2NDQxMzkzODc1MzksICJjb2wiOiA1NywgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuNzQ1NzQ0NjgwODUxMDYzOCwgImNvbCI6IDU3LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzRkMWQ5ZWIyYjJiNjQ3MzViMzg1ZDdkZmMzYzY3MmU4KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfY2I5N2VmMjIyNjQzNDdkOThkZTI2MTBhZTZkMzFlMjYgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MTUyNCwtOTkuMTY2NTkpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdibHVlJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZDgwOTdkN2QyMGFmNDE5Mjk5MjBjMDFhZmM5OTI4Y2UgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfOTBlZTQ1ZjJlZGEwNDAwZmIwYWYyOTdmMGFmMTVjYjUgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV85MGVlNDVmMmVkYTA0MDBmYjBhZjI5N2YwYWYxNWNiNSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZDgwOTdkN2QyMGFmNDE5Mjk5MjBjMDFhZmM5OTI4Y2Uuc2V0Q29udGVudCh2ZWdhXzkwZWU0NWYyZWRhMDQwMGZiMGFmMjk3ZjBhZjE1Y2I1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2NiOTdlZjIyMjY0MzQ3ZDk4ZGUyNjEwYWU2ZDMxZTI2LmJpbmRQb3B1cChwb3B1cF9kODA5N2Q3ZDIwYWY0MTkyOTkyMGMwMWFmYzk5MjhjZSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiA1OTogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuNDQwNzMyNzU4NjIwNjg5NjcsICJjb2wiOiA1OSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMTg5OTgyNzI4ODQyODMyNDcsICJjb2wiOiA1OSwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMTIzMDc2OTIzMDc2OTIzMDgsICJjb2wiOiA1OSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMzA4OTg4NzY0MDQ0OTQzOCwgImNvbCI6IDU5LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAxODMxNTAxODMxNTAxODMxNiwgImNvbCI6IDU5LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAxMTU2MDY5MzY0MTYxODQ5NywgImNvbCI6IDU5LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAxLjA2NzQ1NTYyMTMwMTc3NTIsICJjb2wiOiA1OSwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMy4yODczODA2OTk4OTM5NTU0LCAiY29sIjogNTksICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDUuNjE5NzAzMzg5ODMwNTA5LCAiY29sIjogNTksICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDguOTU3NjI3MTE4NjQ0MDY3LCAiY29sIjogNTksICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDYuNzU3MTI3NzcxOTExMjk5LCAiY29sIjogNTksICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiA1LjIzODk0NzM2ODQyMTA1MiwgImNvbCI6IDU5LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogNC41MzI2MzE1Nzg5NDczNjksICJjb2wiOiA1OSwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDQuOTYxMDkzNTg1Njk5MjY0LCAiY29sIjogNTksICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiA2Ljg0NzIwNzU4NjkzMzYxNSwgImNvbCI6IDU5LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogNi41MzAwMzE2MTIyMjMzOTMsICJjb2wiOiA1OSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDUuNzI4MTM0ODc4ODE5ODEwNSwgImNvbCI6IDU5LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogNS44MjQwMjUyODk3Nzg3MTUsICJjb2wiOiA1OSwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDguOTYzMDgwMTY4Nzc2MzcyLCAiY29sIjogNTksICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiA5LjE5OTM2NzA4ODYwNzU5NSwgImNvbCI6IDU5LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogNy43MTQ4ODkxMjM1NDgwNDcsICJjb2wiOiA1OSwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDQuNDI4ODcyNDk3MzY1NjQ4LCAiY29sIjogNTksICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAyLjU3MjMzMzY4NTMyMjA2OTcsICJjb2wiOiA1OSwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDEuNTgyOTc4NzIzNDA0MjU1NCwgImNvbCI6IDU5LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzkwZWU0NWYyZWRhMDQwMGZiMGFmMjk3ZjBhZjE1Y2I1KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZDg3ZTcyNTM0MWRkNGNiN2E5ZDYwZGUyMmZkYjU2ZmUgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MTM3OSwtOTkuMTY5NDMpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdibHVlJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfY2NhMDk0MzU2ZWYxNDkyMWJjYzk4NDU0ZTRjN2E2MjEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfMjkyZTkzYjczYzc0NGFlMjgwMmZkYWVlMDgyMWFhMTYgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV8yOTJlOTNiNzNjNzQ0YWUyODAyZmRhZWUwODIxYWExNiI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfY2NhMDk0MzU2ZWYxNDkyMWJjYzk4NDU0ZTRjN2E2MjEuc2V0Q29udGVudCh2ZWdhXzI5MmU5M2I3M2M3NDRhZTI4MDJmZGFlZTA4MjFhYTE2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2Q4N2U3MjUzNDFkZDRjYjdhOWQ2MGRlMjJmZGI1NmZlLmJpbmRQb3B1cChwb3B1cF9jY2EwOTQzNTZlZjE0OTIxYmNjOTg0NTRlNGM3YTYyMSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiA2MTogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMzgwMzg3OTMxMDM0NDgyNzYsICJjb2wiOiA2MSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMjQxNzk2MjAwMzQ1NDIzMTYsICJjb2wiOiA2MSwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMzM4NDYxNTM4NDYxNTM4NDUsICJjb2wiOiA2MSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wNTYxNzk3NzUyODA4OTg4NzUsICJjb2wiOiA2MSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wNTEyODIwNTEyODIwNTEyOCwgImNvbCI6IDYxLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAxNzM0MTA0MDQ2MjQyNzc0NCwgImNvbCI6IDYxLCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjk4NDYxNTM4NDYxNTM4NDcsICJjb2wiOiA2MSwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMy4yNjUxMTEzNDY3NjU2NDE2LCAiY29sIjogNjEsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDUuNzE4MjIwMzM4OTgzMDUxLCAiY29sIjogNjEsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDkuMjkzNDMyMjAzMzg5ODMsICJjb2wiOiA2MSwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogNi40OTg0MTYwNTA2ODYzNzgsICJjb2wiOiA2MSwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDUuNTE1Nzg5NDczNjg0MjExLCAiY29sIjogNjEsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiA1LjA3Njg0MjEwNTI2MzE1OCwgImNvbCI6IDYxLCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogNS44NDY0NzczOTIyMTg3MTcsICJjb2wiOiA2MSwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDkuNDI1NzExMjc1MDI2MzQzLCAiY29sIjogNjEsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiA4LjkxOTkxNTcwMDczNzYxOSwgImNvbCI6IDYxLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogNy4xMjMyODc2NzEyMzI4NzcsICJjb2wiOiA2MSwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDYuODEwMzI2NjU5NjQxNzI4LCAiY29sIjogNjEsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiA5LjI3MDA0MjE5NDA5MjgyNywgImNvbCI6IDYxLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogOS4xMzcxMzA4MDE2ODc3NjQsICJjb2wiOiA2MSwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDYuOTUzNTM3NDg2ODAwNDIyLCAiY29sIjogNjEsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiA0LjYwMDYzMjI0NDQ2Nzg2MSwgImNvbCI6IDYxLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMi44Mzg0MzcxNzAwMTA1NTk3LCAiY29sIjogNjEsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAxLjQ2ODA4NTEwNjM4Mjk3ODcsICJjb2wiOiA2MSwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV8yOTJlOTNiNzNjNzQ0YWUyODAyZmRhZWUwODIxYWExNik7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzhkYTI1MGU4ZWU0MTRjMjM4NDFiZjk4Y2ZjMTQzNDQxID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDEzMzEsLTk5LjE3NTIzKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAnYmx1ZScsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzZiYjIyNDE3YTYxNjQxOTI5NTdlNTBhMGRkM2U5OTE2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzE2MTRmOTE4MTM3MzRjMjA4NDFiNjEzMTBiNTk5MTk2ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfMTYxNGY5MTgxMzczNGMyMDg0MWI2MTMxMGI1OTkxOTYiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzZiYjIyNDE3YTYxNjQxOTI5NTdlNTBhMGRkM2U5OTE2LnNldENvbnRlbnQodmVnYV8xNjE0ZjkxODEzNzM0YzIwODQxYjYxMzEwYjU5OTE5Nik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl84ZGEyNTBlOGVlNDE0YzIzODQxYmY5OGNmYzE0MzQ0MS5iaW5kUG9wdXAocG9wdXBfNmJiMjI0MTdhNjE2NDE5Mjk1N2U1MGEwZGQzZTk5MTYpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gNjI6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjIxOTgyNzU4NjIwNjg5NjU1LCAiY29sIjogNjIsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDIyNDUyNTA0MzE3Nzg5MjkzLCAiY29sIjogNjIsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMDE4NDYxNTM4NDYxNTM4NDYzLCAiY29sIjogNjIsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDExMjM1OTU1MDU2MTc5Nzc1LCAiY29sIjogNjIsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMDA3MzI2MDA3MzI2MDA3MzI2LCAiY29sIjogNjIsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMDA1NzgwMzQ2ODIwODA5MjQ4LCAiY29sIjogNjIsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuNDQzNzg2OTgyMjQ4NTIwNywgImNvbCI6IDYyLCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAxLjU5ODA5MTE5ODMwMzI4NzMsICJjb2wiOiA2MiwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMy4wOTc0NTc2MjcxMTg2NDQsICJjb2wiOiA2MiwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogNC41MzcwNzYyNzExODY0NCwgImNvbCI6IDYyLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiA0LjI0NzA5NjA5MjkyNTAyNywgImNvbCI6IDYyLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMi45NDYzMTU3ODk0NzM2ODQsICJjb2wiOiA2MiwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDIuNTcxNTc4OTQ3MzY4NDIxLCAiY29sIjogNjIsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAzLjExMjUxMzE0NDA1ODg4NTYsICJjb2wiOiA2MiwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDQuMTMxNzE3NTk3NDcxMDIyLCAiY29sIjogNjIsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiA0LjU2NTg1ODc5ODczNTUxMSwgImNvbCI6IDYyLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMy44NDcyMDc1ODY5MzM2MTQsICJjb2wiOiA2MiwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDMuODIyOTcxNTQ4OTk4OTQ2LCAiY29sIjogNjIsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiA0LjAyMTA5NzA0NjQxMzUwMjUsICJjb2wiOiA2MiwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDQuNzkwMDg0Mzg4MTg1NjU0LCAiY29sIjogNjIsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAzLjQ0MzUwNTgwNzgxNDE1LCAiY29sIjogNjIsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAyLjU1MTEwNjQyNzgxODc1NjcsICJjb2wiOiA2MiwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDEuNjAxOTAwNzM5MTc2MzQ2NSwgImNvbCI6IDYyLCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC43NjkxNDg5MzYxNzAyMTI3LCAiY29sIjogNjIsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfMTYxNGY5MTgxMzczNGMyMDg0MWI2MTMxMGI1OTkxOTYpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl8wYTE5YWFiMzdiMWQ0NTlkODc4ODhmYmNjODdkY2JiYyA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQxMjk5LC05OS4xNzE2OCksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ2JsdWUnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hOTM0YWQxOTc3N2Q0OTQ5YTRlZjY1YzQ0MGFmMDMzNCA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV9jYjhlZWU1YzkyOWE0NDExYTY1N2QwZDIyMjc0NjYzMyA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhX2NiOGVlZTVjOTI5YTQ0MTFhNjU3ZDBkMjIyNzQ2NjMzIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hOTM0YWQxOTc3N2Q0OTQ5YTRlZjY1YzQ0MGFmMDMzNC5zZXRDb250ZW50KHZlZ2FfY2I4ZWVlNWM5MjlhNDQxMWE2NTdkMGQyMjI3NDY2MzMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfMGExOWFhYjM3YjFkNDU5ZDg3ODg4ZmJjYzg3ZGNiYmMuYmluZFBvcHVwKHBvcHVwX2E5MzRhZDE5Nzc3ZDQ5NDlhNGVmNjVjNDQwYWYwMzM0KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDYzOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC41Njg5NjU1MTcyNDEzNzkzLCAiY29sIjogNjMsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDIwNzI1Mzg4NjAxMDM2MjcsICJjb2wiOiA2MywgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMDYxNTM4NDYxNTM4NDYxNTQsICJjb2wiOiA2MywgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMzA4OTg4NzY0MDQ0OTQzOCwgImNvbCI6IDYzLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAwMzY2MzAwMzY2MzAwMzY2MywgImNvbCI6IDYzLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiA2MywgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC43MTM2MDk0Njc0NTU2MjEzLCAiY29sIjogNjMsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDEuODE2NTQyOTQ4MDM4MTc2LCAiY29sIjogNjMsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDYuNTUyOTY2MTAxNjk0OTE1LCAiY29sIjogNjMsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDEyLjcwMzM4OTgzMDUwODQ3NCwgImNvbCI6IDYzLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiA3LjA1Mjc5ODMxMDQ1NDA2NSwgImNvbCI6IDYzLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogNS4zODYzMTU3ODk0NzM2ODQsICJjb2wiOiA2MywgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDQuNzI0MjEwNTI2MzE1Nzg5LCAiY29sIjogNjMsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiA1LjEwNTE1MjQ3MTA4MzA3MSwgImNvbCI6IDYzLCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogNy42OTc1NzYzOTYyMDY1MzMsICJjb2wiOiA2MywgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDguMjU4MTY2NDkxMDQzMjA0LCAiY29sIjogNjMsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiA2LjY1ODU4Nzk4NzM1NTExLCAiY29sIjogNjMsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiA2LjEyMzI4NzY3MTIzMjg3NywgImNvbCI6IDYzLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogNy4wMTI2NTgyMjc4NDgxMDEsICJjb2wiOiA2MywgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDYuNDcxNTE4OTg3MzQxNzcyNCwgImNvbCI6IDYzLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogNi4yNTQ0ODc4NTYzODg1OTYsICJjb2wiOiA2MywgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDUuMTAxMTU5MTE0ODU3NzQ1LCAiY29sIjogNjMsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAzLjgwMjUzNDMxODkwMTc5NTMsICJjb2wiOiA2MywgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDIuMTY4MDg1MTA2MzgyOTc5LCAiY29sIjogNjMsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfY2I4ZWVlNWM5MjlhNDQxMWE2NTdkMGQyMjI3NDY2MzMpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl8xOGExMTEzMDFlYTQ0MzI4OTM5MDhjZWU3ZmFhODZhOCA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQxMTgxLC05OS4xNzg0OCksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ2JsdWUnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lNjBlZjg4MzczODg0ZTEzODc1NzdhMTg0NDk1YTU0YSA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV8xOWVhZGQwMzU3ZjU0ZmMyYTU1NWM3MjYzMDhjOGI1YSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzE5ZWFkZDAzNTdmNTRmYzJhNTU1YzcyNjMwOGM4YjVhIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lNjBlZjg4MzczODg0ZTEzODc1NzdhMTg0NDk1YTU0YS5zZXRDb250ZW50KHZlZ2FfMTllYWRkMDM1N2Y1NGZjMmE1NTVjNzI2MzA4YzhiNWEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfMThhMTExMzAxZWE0NDMyODkzOTA4Y2VlN2ZhYTg2YTguYmluZFBvcHVwKHBvcHVwX2U2MGVmODgzNzM4ODRlMTM4NzU3N2ExODQ0OTVhNTRhKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDY2OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC41MjU4NjIwNjg5NjU1MTcyLCAiY29sIjogNjYsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDE3MjcxMTU3MTY3NTMwMjI1LCAiY29sIjogNjYsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMDE1Mzg0NjE1Mzg0NjE1Mzg1LCAiY29sIjogNjYsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDYxNzk3NzUyODA4OTg4NzYsICJjb2wiOiA2NiwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMTQ2NTIwMTQ2NTIwMTQ2NTIsICJjb2wiOiA2NiwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wMDU3ODAzNDY4MjA4MDkyNDgsICJjb2wiOiA2NiwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC45NTM4NDYxNTM4NDYxNTM5LCAiY29sIjogNjYsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDEuMjIxNjMzMDg1ODk2MDc2NCwgImNvbCI6IDY2LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiA1LjA0MjM3Mjg4MTM1NTkzMjUsICJjb2wiOiA2NiwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogNy42ODg1NTkzMjIwMzM4OTgsICJjb2wiOiA2NiwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogNC43NzQwMjMyMzEyNTY2LCAiY29sIjogNjYsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiA0LjU3MDUyNjMxNTc4OTQ3NCwgImNvbCI6IDY2LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogNC40MTU3ODk0NzM2ODQyMSwgImNvbCI6IDY2LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogNC43OTcwNTU3MzA4MDk2NzQsICJjb2wiOiA2NiwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDcuMDg4NTE0MjI1NTAwNTI3LCAiY29sIjogNjYsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiA3LjYyNjk3NTc2Mzk2MjA2NSwgImNvbCI6IDY2LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogNy4zNzA5MTY3NTQ0NzgzOTgsICJjb2wiOiA2NiwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDUuNzUxMzE3MTc1OTc0NzExLCAiY29sIjogNjYsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiA3LjM4NTAyMTA5NzA0NjQxNCwgImNvbCI6IDY2LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogOC4wMjAwNDIxOTQwOTI4MjcsICJjb2wiOiA2NiwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDYuNDU0MDY1NDY5OTA0OTYzLCAiY29sIjogNjYsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiA0LjgyNDAyNTI4OTc3ODcxNSwgImNvbCI6IDY2LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMy4xMjk4ODM4NDM3MTcwMDEsICJjb2wiOiA2NiwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDEuNzQ4OTM2MTcwMjEyNzY2LCAiY29sIjogNjYsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfMTllYWRkMDM1N2Y1NGZjMmE1NTVjNzI2MzA4YzhiNWEpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9lNjVjZGNmN2QxNDk0ZDQyYjVlZGM0NmIxYzg2OWNjNyA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQxMTc3LC05OS4xNzM3OCksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ2JsdWUnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81ZDlkYjJjZDEwMTA0N2NlOGY0M2MwZmU2ODE3M2Y2NiA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV8wMDY5Mzk3MDMxZmQ0MDRmYWI5ODJhNWRmZDYyYjQ3OSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzAwNjkzOTcwMzFmZDQwNGZhYjk4MmE1ZGZkNjJiNDc5Ij48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81ZDlkYjJjZDEwMTA0N2NlOGY0M2MwZmU2ODE3M2Y2Ni5zZXRDb250ZW50KHZlZ2FfMDA2OTM5NzAzMWZkNDA0ZmFiOTgyYTVkZmQ2MmI0NzkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZTY1Y2RjZjdkMTQ5NGQ0MmI1ZWRjNDZiMWM4NjljYzcuYmluZFBvcHVwKHBvcHVwXzVkOWRiMmNkMTAxMDQ3Y2U4ZjQzYzBmZTY4MTczZjY2KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDY4OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC40NTA0MzEwMzQ0ODI3NTg2LCAiY29sIjogNjgsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDEyMDg5ODEwMDE3MjcxMTU4LCAiY29sIjogNjgsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMDAzMDc2OTIzMDc2OTIzMDc3LCAiY29sIjogNjgsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDIyNDcxOTEwMTEyMzU5NTUsICJjb2wiOiA2OCwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMjU2NDEwMjU2NDEwMjU2NCwgImNvbCI6IDY4LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAwNTc4MDM0NjgyMDgwOTI0OCwgImNvbCI6IDY4LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAxLjA1MDg4NzU3Mzk2NDQ5NywgImNvbCI6IDY4LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAxLjM3MjIxNjMzMDg1ODk2MDgsICJjb2wiOiA2OCwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogNC4wMjIyNDU3NjI3MTE4NjQsICJjb2wiOiA2OCwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogNy4yMjAzMzg5ODMwNTA4NDgsICJjb2wiOiA2OCwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogNS4zOTQ5MzEzNjIxOTY0MDk1LCAiY29sIjogNjgsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiA0LjEwMTA1MjYzMTU3ODk0NzUsICJjb2wiOiA2OCwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDQuMjI1MjYzMTU3ODk0NzM3LCAiY29sIjogNjgsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiA1LjA0NzMxODYxMTk4NzM4MSwgImNvbCI6IDY4LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogNi45NDgzNjY3MDE3OTEzNTksICJjb2wiOiA2OCwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDcuMDUwNTc5NTU3NDI4ODczLCAiY29sIjogNjgsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiA1LjUyNTgxNjY0OTEwNDMyLCAiY29sIjogNjgsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiA1LjEwMjIxMjg1NTYzNzUxMzUsICJjb2wiOiA2OCwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDYuMTU2MTE4MTQzNDU5OTE1LCAiY29sIjogNjgsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiA3LjE0NzY3OTMyNDg5NDUxNSwgImNvbCI6IDY4LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogNi40NzA5NjA5MjkyNTAyNjQsICJjb2wiOiA2OCwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDQuOTI0MTMwNjYzODU2NjkxLCAiY29sIjogNjgsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAzLjQzODIyNTk3Njc2ODc0MzMsICJjb2wiOiA2OCwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDEuOTYwNjM4Mjk3ODcyMzQwNSwgImNvbCI6IDY4LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzAwNjkzOTcwMzFmZDQwNGZhYjk4MmE1ZGZkNjJiNDc5KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfMDE1MmExMmM2MzIxNGRkYmFkM2FkZjY3ZWU3NDZlY2YgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MTEyOCwtOTkuMTY5ODMpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdibHVlJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTczYzU5ZDMxMDc5NDI4NmFlZjQ0ZmJiMTVjZGI5ODUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfNGQwNzcyYmY0MjkyNDg0YmFiMDViZTc3OTc0N2EwN2IgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV80ZDA3NzJiZjQyOTI0ODRiYWIwNWJlNzc5NzQ3YTA3YiI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTczYzU5ZDMxMDc5NDI4NmFlZjQ0ZmJiMTVjZGI5ODUuc2V0Q29udGVudCh2ZWdhXzRkMDc3MmJmNDI5MjQ4NGJhYjA1YmU3Nzk3NDdhMDdiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzAxNTJhMTJjNjMyMTRkZGJhZDNhZGY2N2VlNzQ2ZWNmLmJpbmRQb3B1cChwb3B1cF9lNzNjNTlkMzEwNzk0Mjg2YWVmNDRmYmIxNWNkYjk4NSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiA3MDogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMjY3MjQxMzc5MzEwMzQ0OCwgImNvbCI6IDcwLCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAxMjA4OTgxMDAxNzI3MTE1OCwgImNvbCI6IDcwLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjA2MTUzODQ2MTUzODQ2MTU0LCAiY29sIjogNzAsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDMwODk4ODc2NDA0NDk0MzgsICJjb2wiOiA3MCwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMDczMjYwMDczMjYwMDczMjYsICJjb2wiOiA3MCwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogNzAsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuNzIxODkzNDkxMTI0MjYwNCwgImNvbCI6IDcwLCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAzLjEwMzkyMzY0NzkzMjEzMTUsICJjb2wiOiA3MCwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMy41OTExMDE2OTQ5MTUyNTQzLCAiY29sIjogNzAsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDQuMzAwODQ3NDU3NjI3MTE4NSwgImNvbCI6IDcwLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiA0LjE1MTAwMzE2Nzg5ODYyOCwgImNvbCI6IDcwLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMy40MzQ3MzY4NDIxMDUyNjMzLCAiY29sIjogNzAsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAzLjQ4NzM2ODQyMTA1MjYzMTUsICJjb2wiOiA3MCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDMuODY0MzUzMzEyMzAyODM5LCAiY29sIjogNzAsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiA1LjIzNzA5MTY3NTQ0Nzg0LCAiY29sIjogNzAsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiA1LjgwNDAwNDIxNDk2MzExOSwgImNvbCI6IDcwLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogNS4xMDIyMTI4NTU2Mzc1MTM1LCAiY29sIjogNzAsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiA1LjM1NzIxODEyNDM0MTQxMiwgImNvbCI6IDcwLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogNy40MTk4MzEyMjM2Mjg2OTIsICJjb2wiOiA3MCwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDcuOTQ2MjAyNTMxNjQ1NTcsICJjb2wiOiA3MCwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDYuNjAxOTAwNzM5MTc2MzQ2NSwgImNvbCI6IDcwLCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMy44ODYxOTU5OTU3ODUwMzcsICJjb2wiOiA3MCwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDEuOTQyOTc3ODI0NzA5NjA5MiwgImNvbCI6IDcwLCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMS4wODYxNzAyMTI3NjU5NTc0LCAiY29sIjogNzAsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfNGQwNzcyYmY0MjkyNDg0YmFiMDViZTc3OTc0N2EwN2IpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9lZjZjYmMxNDg0NDA0NDk1YjA3MmQxNTY5OTczMWMxOCA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQxMTM2LC05OS4xNzEyNyksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ2JsdWUnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yN2I0NmQ5ZDFlMDA0ZDljOThhZGE0Y2EzODk0NWQzOCA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV8yNTBhYmIyYmI1ZTA0NjZiODJjOGZmYzE5YTgzZTQ4NiA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzI1MGFiYjJiYjVlMDQ2NmI4MmM4ZmZjMTlhODNlNDg2Ij48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yN2I0NmQ5ZDFlMDA0ZDljOThhZGE0Y2EzODk0NWQzOC5zZXRDb250ZW50KHZlZ2FfMjUwYWJiMmJiNWUwNDY2YjgyYzhmZmMxOWE4M2U0ODYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZWY2Y2JjMTQ4NDQwNDQ5NWIwNzJkMTU2OTk3MzFjMTguYmluZFBvcHVwKHBvcHVwXzI3YjQ2ZDlkMWUwMDRkOWM5OGFkYTRjYTM4OTQ1ZDM4KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDcxOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4xNzM0OTEzNzkzMTAzNDQ4MywgImNvbCI6IDcxLCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAxMDM2MjY5NDMwMDUxODEzNSwgImNvbCI6IDcxLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwMzA3NjkyMzA3NjkyMzA3NywgImNvbCI6IDcxLCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAxNjg1MzkzMjU4NDI2OTY2MiwgImNvbCI6IDcxLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAwMzY2MzAwMzY2MzAwMzY2MywgImNvbCI6IDcxLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAxNzM0MTA0MDQ2MjQyNzc0NCwgImNvbCI6IDcxLCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjc1ODU3OTg4MTY1NjgwNDgsICJjb2wiOiA3MSwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMS40NTQ5MzEwNzEwNDk4NDA5LCAiY29sIjogNzEsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDQuMzI5NDQ5MTUyNTQyMzczLCAiY29sIjogNzEsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDcuMTE4NjQ0MDY3Nzk2NjEsICJjb2wiOiA3MSwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogNS4zMTU3MzM4OTY1MTUzMTIsICJjb2wiOiA3MSwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDQuNjE0NzM2ODQyMTA1MjYzNSwgImNvbCI6IDcxLCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogNC40Njk0NzM2ODQyMTA1MjYsICJjb2wiOiA3MSwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDUuMjAyOTQ0MjY5MTkwMzI2LCAiY29sIjogNzEsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiA3LjAzMjY2NTk2NDE3MjgxMywgImNvbCI6IDcxLCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogNy4wMzc5MzQ2NjgwNzE2NTUsICJjb2wiOiA3MSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDUuNjExMTY5NjUyMjY1NTQyLCAiY29sIjogNzEsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiA1LjM0ODc4ODE5ODEwMzI2NywgImNvbCI6IDcxLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogNy4yMjM2Mjg2OTE5ODMxMjIsICJjb2wiOiA3MSwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDguMzYwNzU5NDkzNjcwODg1LCAiY29sIjogNzEsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiA4LjQ3NzI5NjcyNjUwNDc1MiwgImNvbCI6IDcxLCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogNi4yOTA4MzI0NTUyMTYwMTcsICJjb2wiOiA3MSwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDMuNjYyMDkwODEzMDkzOTgxLCAiY29sIjogNzEsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjY2Mjc2NTk1NzQ0NjgwODYsICJjb2wiOiA3MSwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV8yNTBhYmIyYmI1ZTA0NjZiODJjOGZmYzE5YTgzZTQ4Nik7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyX2Q2NmFhZjIzOTZjMTQzMDg5YzhhNzk5ZTBjZDQwZDBlID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDA5ODYsLTk5LjE3OTU3KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAnYmx1ZScsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Y3NDU5OTdjYjhmMjRlZDc4ZWFlYWYwYWFiMTA3NzcyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzMxZDhlYzcyOWNiODQzOWRiZTc0MzhlNGIxZTkzOGU2ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfMzFkOGVjNzI5Y2I4NDM5ZGJlNzQzOGU0YjFlOTM4ZTYiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Y3NDU5OTdjYjhmMjRlZDc4ZWFlYWYwYWFiMTA3NzcyLnNldENvbnRlbnQodmVnYV8zMWQ4ZWM3MjljYjg0MzlkYmU3NDM4ZTRiMWU5MzhlNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9kNjZhYWYyMzk2YzE0MzA4OWM4YTc5OWUwY2Q0MGQwZS5iaW5kUG9wdXAocG9wdXBfZjc0NTk5N2NiOGYyNGVkNzhlYWVhZjBhYWIxMDc3NzIpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gNzI6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjQzMjExMjA2ODk2NTUxNzI0LCAiY29sIjogNzIsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDEwMzYyNjk0MzAwNTE4MTM1LCAiY29sIjogNzIsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMDA2MTUzODQ2MTUzODQ2MTU0LCAiY29sIjogNzIsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDExMjM1OTU1MDU2MTc5Nzc1LCAiY29sIjogNzIsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMDEwOTg5MDEwOTg5MDEwOTksICJjb2wiOiA3MiwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wMTE1NjA2OTM2NDE2MTg0OTcsICJjb2wiOiA3MiwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMS43ODIyNDg1MjA3MTAwNTkxLCAiY29sIjogNzIsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDQuNTM3NjQ1ODExMjQwNzIxLCAiY29sIjogNzIsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDUuMjU2MzU1OTMyMjAzMzksICJjb2wiOiA3MiwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogNS4xNzY5MDY3Nzk2NjEwMTcsICJjb2wiOiA3MiwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogNC4zNTY5MTY1Nzg2Njk0ODMsICJjb2wiOiA3MiwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDMuNjUyNjMxNTc4OTQ3MzY4MiwgImNvbCI6IDcyLCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMy43NDczNjg0MjEwNTI2MzE3LCAiY29sIjogNzIsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiA0Ljg5ODAwMjEwMzA0OTQyMSwgImNvbCI6IDcyLCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogNy41Mzc0MDc3OTc2ODE3NywgImNvbCI6IDcyLCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogOC42MzY0NTk0MzA5Nzk5OCwgImNvbCI6IDcyLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogNy4zMjU2MDU5MDA5NDgzNjcsICJjb2wiOiA3MiwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDUuNjkwMjAwMjEwNzQ4MTU2LCAiY29sIjogNzIsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiA5LjIxOTQwOTI4MjcwMDQyMiwgImNvbCI6IDcyLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogNy45MjQwNTA2MzI5MTEzOTIsICJjb2wiOiA3MiwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDYuMzI1MjM3NTkyMzk3MDQzLCAiY29sIjogNzIsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiA0LjIxOTE3ODA4MjE5MTc4MSwgImNvbCI6IDcyLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMi43MzkxNzYzNDYzNTY5MTY1LCAiY29sIjogNzIsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAxLjQ5ODkzNjE3MDIxMjc2NiwgImNvbCI6IDcyLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzMxZDhlYzcyOWNiODQzOWRiZTc0MzhlNGIxZTkzOGU2KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfMjg5ZGRiZWE4MGMyNDI5OTk0ZGE5MGY2ZWYzOGEzNmMgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MTA0NywtOTkuMTcyOCksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ2JsdWUnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zYWE1N2EyMWMzNTA0YTNlODAwYjQ5NzkyN2U5Y2U3ZCA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV82NGZiMTUxMDM5ZjA0MWI4OTY0MzM2ODQwZjNlNzBjMiA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzY0ZmIxNTEwMzlmMDQxYjg5NjQzMzY4NDBmM2U3MGMyIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zYWE1N2EyMWMzNTA0YTNlODAwYjQ5NzkyN2U5Y2U3ZC5zZXRDb250ZW50KHZlZ2FfNjRmYjE1MTAzOWYwNDFiODk2NDMzNjg0MGYzZTcwYzIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfMjg5ZGRiZWE4MGMyNDI5OTk0ZGE5MGY2ZWYzOGEzNmMuYmluZFBvcHVwKHBvcHVwXzNhYTU3YTIxYzM1MDRhM2U4MDBiNDk3OTI3ZTljZTdkKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDc0OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC41NTcxMTIwNjg5NjU1MTcyLCAiY29sIjogNzQsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDQzMTc3ODkyOTE4ODI1NTYsICJjb2wiOiA3NCwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMjE1Mzg0NjE1Mzg0NjE1MzgsICJjb2wiOiA3NCwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wNTMzNzA3ODY1MTY4NTM5MywgImNvbCI6IDc0LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAwMzY2MzAwMzY2MzAwMzY2MywgImNvbCI6IDc0LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAxNzM0MTA0MDQ2MjQyNzc0NCwgImNvbCI6IDc0LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjQwNDczMzcyNzgxMDY1MDg3LCAiY29sIjogNzQsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDMuMDcyMTEwMjg2MzIwMjU0NSwgImNvbCI6IDc0LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiA0LjY0OTM2NDQwNjc3OTY2MSwgImNvbCI6IDc0LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAxMC4wMzgxMzU1OTMyMjAzMzksICJjb2wiOiA3NCwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogNy40MzcxNzAwMTA1NTk2NjIsICJjb2wiOiA3NCwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDYuMjY5NDczNjg0MjEwNTI2LCAiY29sIjogNzQsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiA2LjQ3Nzg5NDczNjg0MjEwNiwgImNvbCI6IDc0LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogNy4zNjE3MjQ1MDA1MjU3NjMsICJjb2wiOiA3NCwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDExLjE0MDE0NzUyMzcwOTE2NywgImNvbCI6IDc0LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMTAuNzU3NjM5NjIwNjUzMzIsICJjb2wiOiA3NCwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDYuNDc1MjM3MDkxNjc1NDQ4LCAiY29sIjogNzQsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiA1LjI5Mzk5MzY3NzU1NTMyMiwgImNvbCI6IDc0LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogNi43NzIxNTE4OTg3MzQxNzcsICJjb2wiOiA3NCwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDcuNDg4Mzk2NjI0NDcyNTc0LCAiY29sIjogNzQsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiA2LjUxNDI1NTU0MzgyMjU5OCwgImNvbCI6IDc0LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogNC43ODUwMzY4ODA5MjcyOTIsICJjb2wiOiA3NCwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDMuNDc2MjQwNzYwMjk1NjcwNiwgImNvbCI6IDc0LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMS45MzI5Nzg3MjM0MDQyNTUzLCAiY29sIjogNzQsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfNjRmYjE1MTAzOWYwNDFiODk2NDMzNjg0MGYzZTcwYzIpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl80NmFhZTgyMWY4ZmM0Y2NiOTYyNDZlNGI0NDlmY2JhYiA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQwNjg3LC05OS4xNjk1NyksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ2JsdWUnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83N2Y2MmFhMTA2ZDI0Y2M5YjUxOTFjOTg3MmM2NjY5OCA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV9mZGM2OTk1MGNmYTg0ZjQwYTlkNmI1Y2FlYmFiZTQ1NiA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhX2ZkYzY5OTUwY2ZhODRmNDBhOWQ2YjVjYWViYWJlNDU2Ij48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83N2Y2MmFhMTA2ZDI0Y2M5YjUxOTFjOTg3MmM2NjY5OC5zZXRDb250ZW50KHZlZ2FfZmRjNjk5NTBjZmE4NGY0MGE5ZDZiNWNhZWJhYmU0NTYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNDZhYWU4MjFmOGZjNGNjYjk2MjQ2ZTRiNDQ5ZmNiYWIuYmluZFBvcHVwKHBvcHVwXzc3ZjYyYWExMDZkMjRjYzliNTE5MWM5ODcyYzY2Njk4KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDg0OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4yODQ0ODI3NTg2MjA2ODk2NywgImNvbCI6IDg0LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAxMzgxNjkyNTczNDAyNDE3OSwgImNvbCI6IDg0LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAxMjMwNzY5MjMwNzY5MjMwOCwgImNvbCI6IDg0LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjA1NjE3OTc3NTI4MDg5ODg3NSwgImNvbCI6IDg0LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAyMTk3ODAyMTk3ODAyMTk4LCAiY29sIjogODQsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMDIzMTIxMzg3MjgzMjM2OTkzLCAiY29sIjogODQsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDEuMzk2NDQ5NzA0MTQyMDExOSwgImNvbCI6IDg0LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAzLjEwNDk4NDA5MzMxOTE5NCwgImNvbCI6IDg0LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiA2LjAxNTg4OTgzMDUwODQ3NSwgImNvbCI6IDg0LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiA3LjM2ODY0NDA2Nzc5NjYxLCAiY29sIjogODQsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDUuNjE1NjI4Mjk5ODk0NDA0LCAiY29sIjogODQsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiA1LjI2MjEwNTI2MzE1Nzg5NSwgImNvbCI6IDg0LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogNS4xMjg0MjEwNTI2MzE1Nzg1LCAiY29sIjogODQsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiA2LjQ4NTgwNDQxNjQwMzc4NSwgImNvbCI6IDg0LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogOS4xNjEyMjIzMzkzMDQ1MzIsICJjb2wiOiA4NCwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDkuMDExNTkxMTQ4NTc3NDUsICJjb2wiOiA4NCwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDcuODE4NzU2NTg1ODc5ODc0LCAiY29sIjogODQsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiA3LjgwNzE2NTQzNzMwMjQyNCwgImNvbCI6IDg0LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMTIuMjIzNjI4NjkxOTgzMTIzLCAiY29sIjogODQsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxMi41MzQ4MTAxMjY1ODIyNzksICJjb2wiOiA4NCwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDguNDY3NzkzMDMwNjIzMDIxLCAiY29sIjogODQsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiA1LjY1MjI2NTU0MjY3NjUwMiwgImNvbCI6IDg0LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMy41NjI4Mjk5ODk0NDAzMzgsICJjb2wiOiA4NCwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDIuMDc2NTk1NzQ0NjgwODUxLCAiY29sIjogODQsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfZmRjNjk5NTBjZmE4NGY0MGE5ZDZiNWNhZWJhYmU0NTYpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl80MTMyMDkzZjZhZjc0NzEyYmQ5ZTI4ZGQyYzM1NWIxYyA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQzMjQ1LC05OS4xNTkyNCksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ2JsdWUnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84ZWJmNGE0MGQ2NDg0YmJmODI5OGZhMjU3M2RjODAxMSA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV9hZDk2ZjllZjRmNTM0MGQ5YTA5ZjU1MTczODJiY2FlMiA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhX2FkOTZmOWVmNGY1MzQwZDlhMDlmNTUxNzM4MmJjYWUyIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84ZWJmNGE0MGQ2NDg0YmJmODI5OGZhMjU3M2RjODAxMS5zZXRDb250ZW50KHZlZ2FfYWQ5NmY5ZWY0ZjUzNDBkOWEwOWY1NTE3MzgyYmNhZTIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNDEzMjA5M2Y2YWY3NDcxMmJkOWUyOGRkMmMzNTViMWMuYmluZFBvcHVwKHBvcHVwXzhlYmY0YTQwZDY0ODRiYmY4Mjk4ZmEyNTczZGM4MDExKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDg2OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4yNTIxNTUxNzI0MTM3OTMxLCAiY29sIjogODYsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDI1OTA2NzM1NzUxMjk1MzM1LCAiY29sIjogODYsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMDE4NDYxNTM4NDYxNTM4NDYzLCAiY29sIjogODYsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDA4NDI2OTY2MjkyMTM0ODMxLCAiY29sIjogODYsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMDI1NjQxMDI1NjQxMDI1NjQsICJjb2wiOiA4NiwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wMDU3ODAzNDY4MjA4MDkyNDgsICJjb2wiOiA4NiwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMS40NDI2MDM1NTAyOTU4NTgsICJjb2wiOiA4NiwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMy4wMzkyMzY0NzkzMjEzMTUsICJjb2wiOiA4NiwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogNi4yNzIyNDU3NjI3MTE4NjQsICJjb2wiOiA4NiwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogNC4yNzY0ODMwNTA4NDc0NTgsICJjb2wiOiA4NiwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMy4zNDUzMDA5NTAzNjk1ODgzLCAiY29sIjogODYsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAyLjYyNjMxNTc4OTQ3MzY4NCwgImNvbCI6IDg2LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMi44MzE1Nzg5NDczNjg0MjEsICJjb2wiOiA4NiwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDMuMzE1NDU3NDEzMjQ5MjExLCAiY29sIjogODYsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiA0Ljc1MzQyNDY1NzUzNDI0NjUsICJjb2wiOiA4NiwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDUuMzUwODk1Njc5NjYyODAzLCAiY29sIjogODYsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiA0Ljc5NjYyODAyOTUwNDc0MiwgImNvbCI6IDg2LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogNi45OTA1MTYzMzI5ODIwODcsICJjb2wiOiA4NiwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDkuMzA5MDcxNzI5OTU3ODA2LCAiY29sIjogODYsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiA3Ljc0Nzg5MDI5NTM1ODY0OTUsICJjb2wiOiA4NiwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDUuMzY1MzY0MzA4MzQyMTMzLCAiY29sIjogODYsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiA0LjA1Mzc0MDc3OTc2ODE3NywgImNvbCI6IDg2LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMi45NTQ1OTM0NTMwMDk1MDM3LCAiY29sIjogODYsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAxLjUyNjU5NTc0NDY4MDg1MTEsICJjb2wiOiA4NiwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9hZDk2ZjllZjRmNTM0MGQ5YTA5ZjU1MTczODJiY2FlMik7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzM0NzAwMzBmNDc5MzQ5ZmE5MjE4ZTQyMzNhZWUzNzY5ID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDMwMzY5LC05OS4xNTQ0MTkpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdibHVlJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTFhNWU2YTdhMTM5NDM3NmJmZjkyM2Y4YTBiZTAzYzEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfM2ZlMDQxYTJjZThiNDMxNThjZTA3OGVlYTc1YmNhY2EgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV8zZmUwNDFhMmNlOGI0MzE1OGNlMDc4ZWVhNzViY2FjYSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTFhNWU2YTdhMTM5NDM3NmJmZjkyM2Y4YTBiZTAzYzEuc2V0Q29udGVudCh2ZWdhXzNmZTA0MWEyY2U4YjQzMTU4Y2UwNzhlZWE3NWJjYWNhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzM0NzAwMzBmNDc5MzQ5ZmE5MjE4ZTQyMzNhZWUzNzY5LmJpbmRQb3B1cChwb3B1cF9lMWE1ZTZhN2ExMzk0Mzc2YmZmOTIzZjhhMGJlMDNjMSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxMTM6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjA1NDk1Njg5NjU1MTcyNDE0LCAiY29sIjogMTEzLCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAwMTcyNzExNTcxNjc1MzAyMjQsICJjb2wiOiAxMTMsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDExMywgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDI4MDg5ODg3NjQwNDQ5NDM3LCAiY29sIjogMTEzLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMTMsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDExMywgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMS45Mzg0NjE1Mzg0NjE1Mzg1LCAiY29sIjogMTEzLCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjQ2NzY1NjQxNTY5NDU5MTcsICJjb2wiOiAxMTMsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDEuMzAxOTA2Nzc5NjYxMDE2OSwgImNvbCI6IDExMywgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMi4xNDcyNDU3NjI3MTE4NjQ2LCAiY29sIjogMTEzLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAxLjEwNzcwODU1MzMyNjI5MzYsICJjb2wiOiAxMTMsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjcwNzM2ODQyMTA1MjYzMTUsICJjb2wiOiAxMTMsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjYyMTA1MjYzMTU3ODk0NzQsICJjb2wiOiAxMTMsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjc1NjA0NjI2NzA4NzI3NjUsICJjb2wiOiAxMTMsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAyLjA0NzQxODMzNTA4OTU2OCwgImNvbCI6IDExMywgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuMTczODY3MjI4NjYxNzQ5MywgImNvbCI6IDExMywgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuOTIzMDc2OTIzMDc2OTIzMSwgImNvbCI6IDExMywgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuOTg5NDYyNTkyMjAyMzE4MiwgImNvbCI6IDExMywgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDAuOTQzMDM3OTc0NjgzNTQ0MywgImNvbCI6IDExMywgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDAuOTEwMzM3NTUyNzQyNjE2MSwgImNvbCI6IDExMywgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuNzcyOTY3MjY1MDQ3NTE4NCwgImNvbCI6IDExMywgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuNzU4NjkzMzYxNDMzMDg3NCwgImNvbCI6IDExMywgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDEuNjc4OTg2MjcyNDM5MjgyLCAiY29sIjogMTEzLCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4xNzIzNDA0MjU1MzE5MTQ5LCAiY29sIjogMTEzLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzNmZTA0MWEyY2U4YjQzMTU4Y2UwNzhlZWE3NWJjYWNhKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZGUwN2NjNzAzYjliNDg1ZmE5OTIwM2E2MDllYjk0NjUgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MzYxNywtOTkuMTk4OTQzKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAnYmx1ZScsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2RiOWEwZjAxMjNhNzRiMjQ4ZDQ3NjA4NWE0Yjg1YWRmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2I2ODJkNTcxZDk2MjQyZTViMTU2MjY0YjdiYzc4MDg4ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfYjY4MmQ1NzFkOTYyNDJlNWIxNTYyNjRiN2JjNzgwODgiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2RiOWEwZjAxMjNhNzRiMjQ4ZDQ3NjA4NWE0Yjg1YWRmLnNldENvbnRlbnQodmVnYV9iNjgyZDU3MWQ5NjI0MmU1YjE1NjI2NGI3YmM3ODA4OCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9kZTA3Y2M3MDNiOWI0ODVmYTk5MjAzYTYwOWViOTQ2NS5iaW5kUG9wdXAocG9wdXBfZGI5YTBmMDEyM2E3NGIyNDhkNDc2MDg1YTRiODVhZGYpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMjAyOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wMDY0NjU1MTcyNDEzNzkzMSwgImNvbCI6IDIwMiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjAyLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMDIsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIwMiwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjAyLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMDIsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMjEzMDE3NzUxNDc5Mjg5OTUsICJjb2wiOiAyMDIsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDIuMjc5OTU3NTgyMTg0NTE3NSwgImNvbCI6IDIwMiwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMS40MDY3Nzk2NjEwMTY5NDkyLCAiY29sIjogMjAyLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAxLjI4MjgzODk4MzA1MDg0NzUsICJjb2wiOiAyMDIsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuNjI0MDc2MDI5NTY3MDUzOSwgImNvbCI6IDIwMiwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNTU4OTQ3MzY4NDIxMDUyNiwgImNvbCI6IDIwMiwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNTY3MzY4NDIxMDUyNjMxNiwgImNvbCI6IDIwMiwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuNjM2MTcyNDUwMDUyNTc2MywgImNvbCI6IDIwMiwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuNjE0MzMwODc0NjA0ODQ3MywgImNvbCI6IDIwMiwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuNDc0MTgzMzUwODk1Njc5NiwgImNvbCI6IDIwMiwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuNzA4MTEzODA0MDA0MjE1LCAiY29sIjogMjAyLCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC43MzEyOTYxMDExNTkxMTQ4LCAiY29sIjogMjAyLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMC45Mzg4MTg1NjU0MDA4NDM5LCAiY29sIjogMjAyLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMC42OTYyMDI1MzE2NDU1Njk3LCAiY29sIjogMjAyLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC40NjE0NTcyMzMzNjg1MzIyLCAiY29sIjogMjAyLCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC4yMzA3NjkyMzA3NjkyMzA3OCwgImNvbCI6IDIwMiwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMTM3Mjc1NjA3MTgwNTcwMjIsICJjb2wiOiAyMDIsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjAzNTEwNjM4Mjk3ODcyMzQwNiwgImNvbCI6IDIwMiwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9iNjgyZDU3MWQ5NjI0MmU1YjE1NjI2NGI3YmM3ODA4OCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyX2VjNDU1M2YwYWY3ZDQxYmE5YjI5ZTFmYTZhZjk5NjI3ID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDM0OTYsLTk5LjEzMzczKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTNlMjdkMzljMDY3NDY2ZmE5OWM5OWFhYWE0ZWUzM2UgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfYTU4NmY3ZmZhNjY0NGEwYjgwMzMxNzI2ZWFmZTkzNjcgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9hNTg2ZjdmZmE2NjQ0YTBiODAzMzE3MjZlYWZlOTM2NyI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTNlMjdkMzljMDY3NDY2ZmE5OWM5OWFhYWE0ZWUzM2Uuc2V0Q29udGVudCh2ZWdhX2E1ODZmN2ZmYTY2NDRhMGI4MDMzMTcyNmVhZmU5MzY3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2VjNDU1M2YwYWY3ZDQxYmE5YjI5ZTFmYTZhZjk5NjI3LmJpbmRQb3B1cChwb3B1cF8xM2UyN2QzOWMwNjc0NjZmYTk5Yzk5YWFhYTRlZTMzZSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiA4OTogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDk1OTA1MTcyNDEzNzkzMTEsICJjb2wiOiA4OSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMTAzNjI2OTQzMDA1MTgxMzUsICJjb2wiOiA4OSwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMDMwNzY5MjMwNzY5MjMwNzcsICJjb2wiOiA4OSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDg0MjY5NjYyOTIxMzQ4MzEsICJjb2wiOiA4OSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMDM2NjMwMDM2NjMwMDM2NjMsICJjb2wiOiA4OSwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogODksICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDYxNTM4NDYxNTM4NDYxNTQsICJjb2wiOiA4OSwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC4zNzExNTU4ODU0NzE4OTgyLCAiY29sIjogODksICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuODc1LCAiY29sIjogODksICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDEuOTIwNTUwODQ3NDU3NjI3MiwgImNvbCI6IDg5LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAxLjYzNTY5MTY1Nzg2Njk0ODMsICJjb2wiOiA4OSwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDEuNTQzMTU3ODk0NzM2ODQyLCAiY29sIjogODksICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAxLjQ4ODQyMTA1MjYzMTU3ODksICJjb2wiOiA4OSwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDEuNzA3Njc2MTMwMzg5MDY0MiwgImNvbCI6IDg5LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMS44Nzk4NzM1NTExMDY0Mjc3LCAiY29sIjogODksICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAyLjEwNzQ4MTU1OTUzNjM1NCwgImNvbCI6IDg5LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMS44MTAzMjY2NTk2NDE3MjgyLCAiY29sIjogODksICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAxLjc0ODE1NTk1MzYzNTQwNTcsICJjb2wiOiA4OSwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDEuODk1NTY5NjIwMjUzMTY0NywgImNvbCI6IDg5LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS44MjcwMDQyMTk0MDkyODI2LCAiY29sIjogODksICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAxLjM1NDgwNDY0NjI1MTMyLCAiY29sIjogODksICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjk4MTAzMjY2NTk2NDE3MjgsICJjb2wiOiA4OSwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuNTQ0ODc4NTYzODg1OTU1NywgImNvbCI6IDg5LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4yOTQ2ODA4NTEwNjM4Mjk4LCAiY29sIjogODksICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfYTU4NmY3ZmZhNjY0NGEwYjgwMzMxNzI2ZWFmZTkzNjcpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9lMDE1ZWNhM2VlZDc0MTFlOGE3OTg1ZDU5YmQwNWUxNCA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQzNzQsLTk5LjEzNzU3MSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzMyNjlhZDFkZGNkZTQ4Zjk4MDk2ZWQyOWNmZjgzOTFiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2E1YWVjNWU3ZDY2ZDRlOWJhMzI1MDZmMDkwZWNmZjk0ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfYTVhZWM1ZTdkNjZkNGU5YmEzMjUwNmYwOTBlY2ZmOTQiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzMyNjlhZDFkZGNkZTQ4Zjk4MDk2ZWQyOWNmZjgzOTFiLnNldENvbnRlbnQodmVnYV9hNWFlYzVlN2Q2NmQ0ZTliYTMyNTA2ZjA5MGVjZmY5NCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9lMDE1ZWNhM2VlZDc0MTFlOGE3OTg1ZDU5YmQwNWUxNC5iaW5kUG9wdXAocG9wdXBfMzI2OWFkMWRkY2RlNDhmOTgwOTZlZDI5Y2ZmODM5MWIpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gOTE6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjA5Mzc1LCAiY29sIjogOTEsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDkxLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiA5MSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDU2MTc5Nzc1MjgwODk4ODc1LCAiY29sIjogOTEsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMDEwOTg5MDEwOTg5MDEwOTksICJjb2wiOiA5MSwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogOTEsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDIwMTE4MzQzMTk1MjY2MjcyLCAiY29sIjogOTEsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMDM4MTc2MDMzOTM0MjUyMzksICJjb2wiOiA5MSwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC4zMTE0NDA2Nzc5NjYxMDE3LCAiY29sIjogOTEsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDAuMjkwMjU0MjM3Mjg4MTM1NiwgImNvbCI6IDkxLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjQzMjk0NjE0NTcyMzMzNjg0LCAiY29sIjogOTEsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjU1MDUyNjMxNTc4OTQ3MzYsICJjb2wiOiA5MSwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuMzk4OTQ3MzY4NDIxMDUyNiwgImNvbCI6IDkxLCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC40MDc5OTE1ODc4MDIzMTMzNywgImNvbCI6IDkxLCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMC42NTY0ODA1MDU3OTU1NzQzLCAiY29sIjogOTEsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjU1NjM3NTEzMTcxNzU5NzQsICJjb2wiOiA5MSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuNzEzMzgyNTA3OTAzMDU1OCwgImNvbCI6IDkxLCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC41MzMxOTI4MzQ1NjI2OTc2LCAiY29sIjogOTEsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAwLjY3NjE2MDMzNzU1Mjc0MjYsICJjb2wiOiA5MSwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDEuMDkxNzcyMTUxODk4NzM0MiwgImNvbCI6IDkxLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC44NDI2NjEwMzQ4NDY4ODQ5LCAiY29sIjogOTEsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjU2NDgwNTA1Nzk1NTc0MjksICJjb2wiOiA5MSwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMzY4NTMyMjA2OTY5Mzc3LCAiY29sIjogOTEsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjI4ODI5Nzg3MjM0MDQyNTUzLCAiY29sIjogOTEsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfYTVhZWM1ZTdkNjZkNGU5YmEzMjUwNmYwOTBlY2ZmOTQpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9hYjExOWZmODA2NmQ0YTlmODUwODVjNTczODI5NWNjMCA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQzNjUzMSwtOTkuMTMxNDk3KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjU0MDkxN2I1ODIzNGM4ODk3ZTlkMGE1ZWI3NGRhZDIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfODM5MjQ1YjM1MGM5NDE1OWIxNTRhMWQzZGI3ZDFiN2IgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV84MzkyNDViMzUwYzk0MTU5YjE1NGExZDNkYjdkMWI3YiI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjU0MDkxN2I1ODIzNGM4ODk3ZTlkMGE1ZWI3NGRhZDIuc2V0Q29udGVudCh2ZWdhXzgzOTI0NWIzNTBjOTQxNTliMTU0YTFkM2RiN2QxYjdiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2FiMTE5ZmY4MDY2ZDRhOWY4NTA4NWM1NzM4Mjk1Y2MwLmJpbmRQb3B1cChwb3B1cF82NTQwOTE3YjU4MjM0Yzg4OTdlOWQwYTVlYjc0ZGFkMik7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiA5MjogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDU5MjY3MjQxMzc5MzEwMzQ1LCAiY29sIjogOTIsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDEwMzYyNjk0MzAwNTE4MTM1LCAiY29sIjogOTIsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDkyLCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiA5MiwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogOTIsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDkyLCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjExMjQyNjAzNTUwMjk1ODU5LCAiY29sIjogOTIsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuNDk3MzQ4ODg2NTMyMzQzNiwgImNvbCI6IDkyLCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAwLjczNjIyODgxMzU1OTMyMiwgImNvbCI6IDkyLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAxLjIyODgxMzU1OTMyMjAzNCwgImNvbCI6IDkyLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjg2MDYxMjQ2MDQwMTI2NzIsICJjb2wiOiA5MiwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNTA1MjYzMTU3ODk0NzM2OSwgImNvbCI6IDkyLCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC40OCwgImNvbCI6IDkyLCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC40Njg5ODAwMjEwMzA0OTQyNCwgImNvbCI6IDkyLCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMC42MjE3MDcwNjAwNjMyMjQ0LCAiY29sIjogOTIsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjc4NzE0NDM2MjQ4NjgyODMsICJjb2wiOiA5MiwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuNjI0ODY4MjgyNDAyNTI5LCAiY29sIjogOTIsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjU5NDMwOTc5OTc4OTI1MTgsICJjb2wiOiA5MiwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDAuNTQ2NDEzNTAyMTA5NzA0NiwgImNvbCI6IDkyLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMC41NjExODE0MzQ1OTkxNTYxLCAiY29sIjogOTIsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjUyMDU5MTM0MTA3NzA4NTUsICJjb2wiOiA5MiwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuMzI0NTUyMTYwMTY4NTk4NSwgImNvbCI6IDkyLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4yMTExOTMyNDE4MTYyNjE4NywgImNvbCI6IDkyLCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4xMDIxMjc2NTk1NzQ0NjgwOCwgImNvbCI6IDkyLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzgzOTI0NWIzNTBjOTQxNTliMTU0YTFkM2RiN2QxYjdiKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNjFiZDFkYTg5ZmQwNGRmZDk4MDczNWM5ZWM0NGQ2NmQgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MzY3NDEsLTk5LjEzNDgxMSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzZhN2JiMDRkOWIzOTQzNTU5ODcxNWM1NmE1NmQwY2UyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2JmOWIyYjU2MmVhMDQzZDJiZjM0NWRkYzZjNThiNzdlID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfYmY5YjJiNTYyZWEwNDNkMmJmMzQ1ZGRjNmM1OGI3N2UiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzZhN2JiMDRkOWIzOTQzNTU5ODcxNWM1NmE1NmQwY2UyLnNldENvbnRlbnQodmVnYV9iZjliMmI1NjJlYTA0M2QyYmYzNDVkZGM2YzU4Yjc3ZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl82MWJkMWRhODlmZDA0ZGZkOTgwNzM1YzllYzQ0ZDY2ZC5iaW5kUG9wdXAocG9wdXBfNmE3YmIwNGQ5YjM5NDM1NTk4NzE1YzU2YTU2ZDBjZTIpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gOTM6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjA0MDk0ODI3NTg2MjA2ODk2NCwgImNvbCI6IDkzLCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAwMzQ1NDIzMTQzMzUwNjA0NDcsICJjb2wiOiA5MywgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogOTMsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDA1NjE3OTc3NTI4MDg5ODg3NSwgImNvbCI6IDkzLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAwMzY2MzAwMzY2MzAwMzY2MywgImNvbCI6IDkzLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiA5MywgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wNzgxMDY1MDg4NzU3Mzk2NCwgImNvbCI6IDkzLCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjA5NTQ0MDA4NDgzNTYzMDk2LCAiY29sIjogOTMsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuMzIyMDMzODk4MzA1MDg0NywgImNvbCI6IDkzLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjQwMDQyMzcyODgxMzU1OTMsICJjb2wiOiA5MywgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC40MzE4OTAxNzk1MTQyNTU1NywgImNvbCI6IDkzLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC41MDMxNTc4OTQ3MzY4NDIxLCAiY29sIjogOTMsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjU4MjEwNTI2MzE1Nzg5NDgsICJjb2wiOiA5MywgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuNTgwNDQxNjQwMzc4NTQ5LCAiY29sIjogOTMsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjYxNDMzMDg3NDYwNDg0NzMsICJjb2wiOiA5MywgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDAuNjU3NTM0MjQ2NTc1MzQyNCwgImNvbCI6IDkzLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC41NTk1MzYzNTQwNTY5MDIsICJjb2wiOiA5MywgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNzMwMjQyMzYwMzc5MzQ2NiwgImNvbCI6IDkzLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMC42MjIzNjI4NjkxOTgzMTIyLCAiY29sIjogOTMsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAwLjY2OTgzMTIyMzYyODY5MiwgImNvbCI6IDkzLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC41NDkxMDI0Mjg3MjIyODA5LCAiY29sIjogOTMsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjM3NjE4NTQ1ODM3NzIzOTIsICJjb2wiOiA5MywgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMzE5OTU3NzYxMzUxNjM2NywgImNvbCI6IDkzLCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4xOTY4MDg1MTA2MzgyOTc4OCwgImNvbCI6IDkzLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2JmOWIyYjU2MmVhMDQzZDJiZjM0NWRkYzZjNThiNzdlKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZWQ5ZmIzZGEzNzExNGVkMmIzYzVhOTQ2NzVkYTg3NDIgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MzM3NjYsLTk5LjEzMDkxOCksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzczNzVkM2FhMzQ3YjRhNjA4MTA2MGViM2IzZWQ2ZjRhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2U2OTUxNjJmOWI0YTQ4ZmNiZDBlZGUzNTExMmIwZTcyID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfZTY5NTE2MmY5YjRhNDhmY2JkMGVkZTM1MTEyYjBlNzIiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzczNzVkM2FhMzQ3YjRhNjA4MTA2MGViM2IzZWQ2ZjRhLnNldENvbnRlbnQodmVnYV9lNjk1MTYyZjliNGE0OGZjYmQwZWRlMzUxMTJiMGU3Mik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9lZDlmYjNkYTM3MTE0ZWQyYjNjNWE5NDY3NWRhODc0Mi5iaW5kUG9wdXAocG9wdXBfNzM3NWQzYWEzNDdiNGE2MDgxMDYwZWIzYjNlZDZmNGEpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gOTQ6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAzMTI1LCAiY29sIjogOTQsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDk0LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiA5NCwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogOTQsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDk0LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiA5NCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wNTIwNzEwMDU5MTcxNTk3NiwgImNvbCI6IDk0LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjE1Mzc2NDU4MTEyNDA3MjEsICJjb2wiOiA5NCwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC4xMzQ1MzM4OTgzMDUwODQ3NSwgImNvbCI6IDk0LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjMzMDUwODQ3NDU3NjI3MTIsICJjb2wiOiA5NCwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC4zNzgwMzU5MDI4NTExMDg4LCAiY29sIjogOTQsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjIxNTc4OTQ3MzY4NDIxMDUzLCAiY29sIjogOTQsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjE3Njg0MjEwNTI2MzE1Nzg4LCAiY29sIjogOTQsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjE5NjYzNTEyMDkyNTM0MTc0LCAiY29sIjogOTQsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjIzMzkzMDQ1MzEwODUzNTMsICJjb2wiOiA5NCwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDAuMjAzMzcxOTcwNDk1MjU4MTUsICJjb2wiOiA5NCwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuMjQ1NTIxNjAxNjg1OTg1MjUsICJjb2wiOiA5NCwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuMjA3NTg2OTMzNjE0MzMwODcsICJjb2wiOiA5NCwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDAuMTQ4NzM0MTc3MjE1MTg5ODYsICJjb2wiOiA5NCwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDAuMTM2MDc1OTQ5MzY3MDg4NiwgImNvbCI6IDk0LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC4xMzUxNjM2NzQ3NjI0MDc2LCAiY29sIjogOTQsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjEyNTM5NTE1Mjc5MjQxMzA2LCAiY29sIjogOTQsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjA1OTEzNDEwNzcwODU1MzMyNSwgImNvbCI6IDk0LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4wNTk1NzQ0NjgwODUxMDYzODYsICJjb2wiOiA5NCwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9lNjk1MTYyZjliNGE0OGZjYmQwZWRlMzUxMTJiMGU3Mik7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzAwMDc3NThiODNhYjQxNDJhYzZmZWQwNTc4N2I3NDZiID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDMwNzIyLC05OS4xMzM2OTgpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82NjEyNzc3YWVlN2U0MTY5YWQyYzE3NGQ4MTk4MDc0MyA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV8yYmQ5ZjllODBlMmM0NWM3YWQzODY3MGQwMmM0NGY5YyA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzJiZDlmOWU4MGUyYzQ1YzdhZDM4NjcwZDAyYzQ0ZjljIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82NjEyNzc3YWVlN2U0MTY5YWQyYzE3NGQ4MTk4MDc0My5zZXRDb250ZW50KHZlZ2FfMmJkOWY5ZTgwZTJjNDVjN2FkMzg2NzBkMDJjNDRmOWMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfMDAwNzc1OGI4M2FiNDE0MmFjNmZlZDA1Nzg3Yjc0NmIuYmluZFBvcHVwKHBvcHVwXzY2MTI3NzdhZWU3ZTQxNjlhZDJjMTc0ZDgxOTgwNzQzKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDk1OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wMDk2OTgyNzU4NjIwNjg5NjYsICJjb2wiOiA5NSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogOTUsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDk1LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiA5NSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMDM2NjMwMDM2NjMwMDM2NjMsICJjb2wiOiA5NSwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wMDU3ODAzNDY4MjA4MDkyNDgsICJjb2wiOiA5NSwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wNDQ5NzA0MTQyMDExODM0MywgImNvbCI6IDk1LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjEzODkxODM0NTcwNTE5NjE4LCAiY29sIjogOTUsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuNDU5NzQ1NzYyNzExODY0NCwgImNvbCI6IDk1LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjMwMjk2NjEwMTY5NDkxNTMsICJjb2wiOiA5NSwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC4zNTY5MTY1Nzg2Njk0ODI1NiwgImNvbCI6IDk1LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC41MzQ3MzY4NDIxMDUyNjMyLCAiY29sIjogOTUsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjYzNzg5NDczNjg0MjEwNTMsICJjb2wiOiA5NSwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuNjg0NTQyNTg2NzUwNzg4NiwgImNvbCI6IDk1LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMC44NDQwNDYzNjQ1OTQzMDk4LCAiY29sIjogOTUsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjk4MTAzMjY2NTk2NDE3MjgsICJjb2wiOiA5NSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuOTI0MTMwNjYzODU2NjkxMywgImNvbCI6IDk1LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC43Nzc2NjA2OTU0Njg5MTQ3LCAiY29sIjogOTUsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAwLjk3ODkwMjk1MzU4NjQ5NzksICJjb2wiOiA5NSwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDAuOTA5MjgyNzAwNDIxOTQwOSwgImNvbCI6IDk1LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC42Mzg4NTk1NTY0OTQxOTIyLCAiY29sIjogOTUsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjI4MjQwMjUyODk3Nzg3MTQ0LCAiY29sIjogOTUsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjE0OTk0NzIwMTY4OTU0NTkyLCAiY29sIjogOTUsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjA2MzgyOTc4NzIzNDA0MjU1LCAiY29sIjogOTUsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfMmJkOWY5ZTgwZTJjNDVjN2FkMzg2NzBkMDJjNDRmOWMpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9hYTkzYWQ5NjJiOTk0NDg3YjRjYjg3ZWRmN2ZjODMyYyA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQyOTE4OSwtOTkuMTMyNzU5KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYTE3MWFjMWQzZmQ4NDAyYzk1M2E3ZjE5MjBjNGEyOTggPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfYTIwYjI3YWU1MTZhNDkzYmFjOWY2YmEyYmFkNmJjYjkgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9hMjBiMjdhZTUxNmE0OTNiYWM5ZjZiYTJiYWQ2YmNiOSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTE3MWFjMWQzZmQ4NDAyYzk1M2E3ZjE5MjBjNGEyOTguc2V0Q29udGVudCh2ZWdhX2EyMGIyN2FlNTE2YTQ5M2JhYzlmNmJhMmJhZDZiY2I5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2FhOTNhZDk2MmI5OTQ0ODdiNGNiODdlZGY3ZmM4MzJjLmJpbmRQb3B1cChwb3B1cF9hMTcxYWMxZDNmZDg0MDJjOTUzYTdmMTkyMGM0YTI5OCk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiA5NzogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDI4MDE3MjQxMzc5MzEwMzQ1LCAiY29sIjogOTcsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDk3LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiA5NywgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDI4MDg5ODg3NjQwNDQ5NDM3LCAiY29sIjogOTcsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDk3LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAwNTc4MDM0NjgyMDgwOTI0OCwgImNvbCI6IDk3LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjAxMzAxNzc1MTQ3OTI4OTk0LCAiY29sIjogOTcsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMDY1NzQ3NjEzOTk3ODc5MTEsICJjb2wiOiA5NywgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC4yNDI1ODQ3NDU3NjI3MTE4NiwgImNvbCI6IDk3LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjUxMzc3MTE4NjQ0MDY3OCwgImNvbCI6IDk3LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjM4MTIwMzgwMTQ3ODM1MjcsICJjb2wiOiA5NywgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNDYxMDUyNjMxNTc4OTQ3NCwgImNvbCI6IDk3LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC40OTQ3MzY4NDIxMDUyNjMxNCwgImNvbCI6IDk3LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC40NzQyMzc2NDQ1ODQ2NDc3MywgImNvbCI6IDk3LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMC42MTAxMTU5MTE0ODU3NzQ1LCAiY29sIjogOTcsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjc2MTg1NDU4Mzc3MjM5MiwgImNvbCI6IDk3LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC42NTMzMTkyODM0NTYyNjk4LCAiY29sIjogOTcsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjU5NjQxNzI4MTM0ODc4ODIsICJjb2wiOiA5NywgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDAuNjAwMjEwOTcwNDY0MTM1MSwgImNvbCI6IDk3LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMC43OTUzNTg2NDk3ODkwMjk1LCAiY29sIjogOTcsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjY2MzE0Njc3OTMwMzA2MjMsICJjb2wiOiA5NywgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuMjA1NDc5NDUyMDU0Nzk0NSwgImNvbCI6IDk3LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4xNDI1NTU0MzgyMjU5NzY3NywgImNvbCI6IDk3LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4xMTcwMjEyNzY1OTU3NDQ2OCwgImNvbCI6IDk3LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2EyMGIyN2FlNTE2YTQ5M2JhYzlmNmJhMmJhZDZiY2I5KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNTkwNTE3NTViYjYwNDc4ZjhlNGU5NmQ3ZGUzYzI0ZTEgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MzAyNjcsLTk5LjE0ODYxKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZjQ3NDYyMDQ1YmE4NDU0OWJiMzE1NjEwNGE1YjdhOGIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfYzgzN2Y3OTQzYjI4NGFlNDkxNzE0OWZjZjMyNjM1MGUgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9jODM3Zjc5NDNiMjg0YWU0OTE3MTQ5ZmNmMzI2MzUwZSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZjQ3NDYyMDQ1YmE4NDU0OWJiMzE1NjEwNGE1YjdhOGIuc2V0Q29udGVudCh2ZWdhX2M4MzdmNzk0M2IyODRhZTQ5MTcxNDlmY2YzMjYzNTBlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzU5MDUxNzU1YmI2MDQ3OGY4ZTRlOTZkN2RlM2MyNGUxLmJpbmRQb3B1cChwb3B1cF9mNDc0NjIwNDViYTg0NTQ5YmIzMTU2MTA0YTViN2E4Yik7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiA5ODogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDQwOTQ4Mjc1ODYyMDY4OTY0LCAiY29sIjogOTgsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDAxNzI3MTE1NzE2NzUzMDIyNCwgImNvbCI6IDk4LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiA5OCwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDI4MDg5ODg3NjQwNDQ5NDM3LCAiY29sIjogOTgsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDk4LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiA5OCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wMzU1MDI5NTg1Nzk4ODE2NiwgImNvbCI6IDk4LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjA5OTY4MTg2NjM4Mzg4MTIzLCAiY29sIjogOTgsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuMjMwOTMyMjAzMzg5ODMwNSwgImNvbCI6IDk4LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjMwNDAyNTQyMzcyODgxMzYsICJjb2wiOiA5OCwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC40NDAzMzc5MDkxODY5MDYsICJjb2wiOiA5OCwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuMzQxMDUyNjMxNTc4OTQ3NCwgImNvbCI6IDk4LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC40MDczNjg0MjEwNTI2MzE2LCAiY29sIjogOTgsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjQ2NTgyNTQ0Njg5ODAwMjEsICJjb2wiOiA5OCwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDAuODAxODk2NzMzNDAzNTgyNywgImNvbCI6IDk4LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMC45MDgzMjQ1NTIxNjAxNjg2LCAiY29sIjogOTgsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjY2NDkxMDQzMjAzMzcxOTcsICJjb2wiOiA5OCwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNTYyNjk3NTc2Mzk2MjA2NSwgImNvbCI6IDk4LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMC44MzY0OTc4OTAyOTUzNTg3LCAiY29sIjogOTgsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAwLjk3Nzg0ODEwMTI2NTgyMjgsICJjb2wiOiA5OCwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuNzA2NDQxMzkzODc1Mzk2LCAiY29sIjogOTgsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjQyMzYwMzc5MzQ2NjgwNzE1LCAiY29sIjogOTgsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjMxNzg0NTgyODkzMzQ3NDEzLCAiY29sIjogOTgsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjE3MTI3NjU5NTc0NDY4MDg1LCAiY29sIjogOTgsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfYzgzN2Y3OTQzYjI4NGFlNDkxNzE0OWZjZjMyNjM1MGUpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl82MzMwZjkyMWMyMDQ0OWIzODk5Y2FiMGI3YTcxYzA0ZiA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQyOTk0NywtOTkuMTQ1OTEpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xOGRjNTcwODliY2Q0ZWU5YTkxOGJkNTZmYjdlMDU0YSA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV81NzUwMTdhMjgxZGU0YmRjYTkzYWYwNjU4ZGE3Zjk2YyA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzU3NTAxN2EyODFkZTRiZGNhOTNhZjA2NThkYTdmOTZjIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xOGRjNTcwODliY2Q0ZWU5YTkxOGJkNTZmYjdlMDU0YS5zZXRDb250ZW50KHZlZ2FfNTc1MDE3YTI4MWRlNGJkY2E5M2FmMDY1OGRhN2Y5NmMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNjMzMGY5MjFjMjA0NDliMzg5OWNhYjBiN2E3MWMwNGYuYmluZFBvcHVwKHBvcHVwXzE4ZGM1NzA4OWJjZDRlZTlhOTE4YmQ1NmZiN2UwNTRhKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDk5OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4xMTIwNjg5NjU1MTcyNDEzOCwgImNvbCI6IDk5LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiA5OSwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogOTksICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDAyODA4OTg4NzY0MDQ0OTQzNywgImNvbCI6IDk5LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiA5OSwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogOTksICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDg1MjA3MTAwNTkxNzE1OTgsICJjb2wiOiA5OSwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC43MDIwMTQ4NDYyMzU0MTg5LCAiY29sIjogOTksICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuODI4Mzg5ODMwNTA4NDc0NiwgImNvbCI6IDk5LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjY2NjMxMzU1OTMyMjAzMzgsICJjb2wiOiA5OSwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC40NjE0NTcyMzMzNjg1MzIyLCAiY29sIjogOTksICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjQxMDUyNjMxNTc4OTQ3MzcsICJjb2wiOiA5OSwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNTMzNjg0MjEwNTI2MzE1OCwgImNvbCI6IDk5LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC45NzQ3NjM0MDY5NDAwNjMxLCAiY29sIjogOTksICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiA1LjY1ODU4Nzk4NzM1NTExLCAiY29sIjogOTksICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjY2NzAxNzkxMzU5MzI1NjEsICJjb2wiOiA5OSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuOTMxNTA2ODQ5MzE1MDY4NCwgImNvbCI6IDk5LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC43OTU1NzQyODg3MjQ5NzM3LCAiY29sIjogOTksICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjA3Mjc4NDgxMDEyNjU4MjIsICJjb2wiOiA5OSwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDEuMDcxNzI5OTU3ODA1OTA3MiwgImNvbCI6IDk5LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC44NTYzODg1OTU1NjQ5NDIsICJjb2wiOiA5OSwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuNjEyMjIzMzkzMDQ1MzEwOCwgImNvbCI6IDk5LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC42MTI0NjA0MDEyNjcxNTk1LCAiY29sIjogOTksICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjI1NjM4Mjk3ODcyMzQwNDI2LCAiY29sIjogOTksICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfNTc1MDE3YTI4MWRlNGJkY2E5M2FmMDY1OGRhN2Y5NmMpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl8wNTZjMWY2YzFkZDg0ZDMwODM3NzBiYzAxZDcxMGIxYSA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQyODQ4NSwtOTkuMTMzOCksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzgwODM2ODdlMTM3OTQzNzM5MzcwMGY2NGI3OGQxOWQyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2E2ODRkOWE1ZjdkODRjZWU5YzY4OTY1ZGE3OWE3YTBjID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfYTY4NGQ5YTVmN2Q4NGNlZTljNjg5NjVkYTc5YTdhMGMiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzgwODM2ODdlMTM3OTQzNzM5MzcwMGY2NGI3OGQxOWQyLnNldENvbnRlbnQodmVnYV9hNjg0ZDlhNWY3ZDg0Y2VlOWM2ODk2NWRhNzlhN2EwYyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl8wNTZjMWY2YzFkZDg0ZDMwODM3NzBiYzAxZDcxMGIxYS5iaW5kUG9wdXAocG9wdXBfODA4MzY4N2UxMzc5NDM3MzkzNzAwZjY0Yjc4ZDE5ZDIpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTAwOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wMjU4NjIwNjg5NjU1MTcyNCwgImNvbCI6IDEwMCwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDE3MjcxMTU3MTY3NTMwMjI0LCAiY29sIjogMTAwLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMDAsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEwMCwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTAwLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAwNTc4MDM0NjgyMDgwOTI0OCwgImNvbCI6IDEwMCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wMjg0MDIzNjY4NjM5MDUzMjQsICJjb2wiOiAxMDAsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMTYwMTI3MjUzNDQ2NDQ3NTIsICJjb2wiOiAxMDAsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuMTI2MDU5MzIyMDMzODk4MywgImNvbCI6IDEwMCwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC4xNjk0OTE1MjU0MjM3Mjg4LCAiY29sIjogMTAwLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjE4NjkwNjAxOTAwNzM5MTc2LCAiY29sIjogMTAwLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC4xOTc4OTQ3MzY4NDIxMDUyNiwgImNvbCI6IDEwMCwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuMjY5NDczNjg0MjEwNTI2MywgImNvbCI6IDEwMCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuMzEzMzU0MzYzODI3NTQ5OTQsICJjb2wiOiAxMDAsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjMzNzE5NzA0OTUyNTgxNjY0LCAiY29sIjogMTAwLCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMC40MTUxNzM4NjcyMjg2NjE3MywgImNvbCI6IDEwMCwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuMzQ1NjI2OTc1NzYzOTYyMDYsICJjb2wiOiAxMDAsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjI5MDgzMjQ1NTIxNjAxNjg2LCAiY29sIjogMTAwLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMC40MTM1MDIxMDk3MDQ2NDEzNSwgImNvbCI6IDEwMCwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDAuNDcwNDY0MTM1MDIxMDk3MSwgImNvbCI6IDEwMCwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuMzU3OTcyNTQ0ODc4NTYzOSwgImNvbCI6IDEwMCwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuMjMzOTMwNDUzMTA4NTM1MywgImNvbCI6IDEwMCwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMTQyNTU1NDM4MjI1OTc2NzcsICJjb2wiOiAxMDAsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjExMTcwMjEyNzY1OTU3NDQ2LCAiY29sIjogMTAwLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2E2ODRkOWE1ZjdkODRjZWU5YzY4OTY1ZGE3OWE3YTBjKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZTNkZjY4MGFmYzE0NGUyYmJjZDUxYmFhZjM1MzU3ZTUgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MjgzNjYsLTk5LjEzNTg5NSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzY1NjgzZmIyOWEyMDRlM2ZhOGY2Mjc0YTVlOTg4ZTRhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2VlZGUzZTAwMmFmZjRiODU4ZWE2MDAyMWU5MmUyYjQ3ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfZWVkZTNlMDAyYWZmNGI4NThlYTYwMDIxZTkyZTJiNDciPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzY1NjgzZmIyOWEyMDRlM2ZhOGY2Mjc0YTVlOTg4ZTRhLnNldENvbnRlbnQodmVnYV9lZWRlM2UwMDJhZmY0Yjg1OGVhNjAwMjFlOTJlMmI0Nyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9lM2RmNjgwYWZjMTQ0ZTJiYmNkNTFiYWFmMzUzNTdlNS5iaW5kUG9wdXAocG9wdXBfNjU2ODNmYjI5YTIwNGUzZmE4ZjYyNzRhNWU5ODhlNGEpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTAxOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wNDMxMDM0NDgyNzU4NjIwNywgImNvbCI6IDEwMSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDM0NTQyMzE0MzM1MDYwNDQ3LCAiY29sIjogMTAxLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMDEsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEwMSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMDM2NjMwMDM2NjMwMDM2NjMsICJjb2wiOiAxMDEsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEwMSwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wMTUzODQ2MTUzODQ2MTUzODUsICJjb2wiOiAxMDEsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMDMzOTM0MjUyMzg2MDAyMTI0LCAiY29sIjogMTAxLCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAwLjEzOTgzMDUwODQ3NDU3NjI2LCAiY29sIjogMTAxLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjI4Mzg5ODMwNTA4NDc0NTgsICJjb2wiOiAxMDEsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuMzMxNTczMzg5NjUxNTMxMTYsICJjb2wiOiAxMDEsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjIzNjg0MjEwNTI2MzE1Nzg4LCAiY29sIjogMTAxLCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC4yNjIxMDUyNjMxNTc4OTQ3MywgImNvbCI6IDEwMSwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuMjc4NjU0MDQ4MzcwMTM2NywgImNvbCI6IDEwMSwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDAuMzU2MTY0MzgzNTYxNjQzOCwgImNvbCI6IDEwMSwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDAuNDg2ODI4MjQwMjUyODk3OCwgImNvbCI6IDEwMSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuMzkwOTM3ODI5MjkzOTkzNywgImNvbCI6IDEwMSwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNDA2NzQzOTQwOTkwNTE2MywgImNvbCI6IDEwMSwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDAuNDA2MTE4MTQzNDU5OTE1NiwgImNvbCI6IDEwMSwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDAuNDIyOTk1NzgwNTkwNzE3MywgImNvbCI6IDEwMSwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuMzkxNzYzNDYzNTY5MTY1OCwgImNvbCI6IDEwMSwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuMzIwMzM3MTk3MDQ5NTI1OCwgImNvbCI6IDEwMSwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMjQyODcyMjI4MDg4NzAxMTUsICJjb2wiOiAxMDEsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjEzNzIzNDA0MjU1MzE5MTUsICJjb2wiOiAxMDEsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfZWVkZTNlMDAyYWZmNGI4NThlYTYwMDIxZTkyZTJiNDcpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl8zZjc1ZjU4OWMyMWY0OGU2OGRkMDk4ZmNkNjhlYzE5YSA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQyODIxNCwtOTkuMTM5NDk0KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZDY5YzZlM2I0NDA3NDlhNWJmNWNlZDI2OTBkMmE4MDAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfYjQ0Y2VhNzE4NDhmNGU2Zjk0ZjRiYTZlMTQ0ZmMwMjUgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9iNDRjZWE3MTg0OGY0ZTZmOTRmNGJhNmUxNDRmYzAyNSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZDY5YzZlM2I0NDA3NDlhNWJmNWNlZDI2OTBkMmE4MDAuc2V0Q29udGVudCh2ZWdhX2I0NGNlYTcxODQ4ZjRlNmY5NGY0YmE2ZTE0NGZjMDI1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzNmNzVmNTg5YzIxZjQ4ZTY4ZGQwOThmY2Q2OGVjMTlhLmJpbmRQb3B1cChwb3B1cF9kNjljNmUzYjQ0MDc0OWE1YmY1Y2VkMjY5MGQyYTgwMCk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxMDI6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjA3MjE5ODI3NTg2MjA2ODk2LCAiY29sIjogMTAyLCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMDIsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMDA2MTUzODQ2MTUzODQ2MTU0LCAiY29sIjogMTAyLCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMDIsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEwMiwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTAyLCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjAzMDc2OTIzMDc2OTIzMDc3LCAiY29sIjogMTAyLCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjA4MjcxNDc0MDE5MDg4MDE3LCAiY29sIjogMTAyLCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAwLjIxMDgwNTA4NDc0NTc2MjcsICJjb2wiOiAxMDIsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDAuMjg4MTM1NTkzMjIwMzM5LCAiY29sIjogMTAyLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjI3NzcxOTExMjk4ODM4NDM2LCAiY29sIjogMTAyLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC4yOTA1MjYzMTU3ODk0NzM3LCAiY29sIjogMTAyLCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC4zMjQyMTA1MjYzMTU3ODk0NSwgImNvbCI6IDEwMiwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuMzg1OTA5NTY4ODc0ODY4NTUsICJjb2wiOiAxMDIsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjUxMjExODAxODk2NzMzNCwgImNvbCI6IDEwMiwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDAuNTgxNjY0OTEwNDMyMDMzNywgImNvbCI6IDEwMiwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuNTIyNjU1NDI2NzY1MDE1OCwgImNvbCI6IDEwMiwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNDU4Mzc3MjM5MTk5MTU3LCAiY29sIjogMTAyLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMC40NjUxODk4NzM0MTc3MjE1LCAiY29sIjogMTAyLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMC41ODQzODgxODU2NTQwMDg0LCAiY29sIjogMTAyLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC40NzcyOTY3MjY1MDQ3NTE4NiwgImNvbCI6IDEwMiwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuNTg3OTg3MzU1MTEwNjQyOCwgImNvbCI6IDEwMiwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMzM4OTY1MTUzMTE1MTAwMzQsICJjb2wiOiAxMDIsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjE4NjE3MDIxMjc2NTk1NzQ0LCAiY29sIjogMTAyLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2I0NGNlYTcxODQ4ZjRlNmY5NGY0YmE2ZTE0NGZjMDI1KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZWNiOWYyMDI3ZjAxNDNkNjgzYWI5YWI1ZTRhOWFhZWEgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MjcwNTksLTk5LjEzNzExNiksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzc4NzcxODA4MzVmMzQ3OTZhZTU0ZGU1ZTM1MmJkNDM0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzYxZTMzOWE0N2M3ZjRmOGJhODc4Y2JjZDU4NzVkNmY1ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfNjFlMzM5YTQ3YzdmNGY4YmE4NzhjYmNkNTg3NWQ2ZjUiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzc4NzcxODA4MzVmMzQ3OTZhZTU0ZGU1ZTM1MmJkNDM0LnNldENvbnRlbnQodmVnYV82MWUzMzlhNDdjN2Y0ZjhiYTg3OGNiY2Q1ODc1ZDZmNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9lY2I5ZjIwMjdmMDE0M2Q2ODNhYjlhYjVlNGE5YWFlYS5iaW5kUG9wdXAocG9wdXBfNzg3NzE4MDgzNWYzNDc5NmFlNTRkZTVlMzUyYmQ0MzQpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTA0OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wNzY1MDg2MjA2ODk2NTUxNywgImNvbCI6IDEwNCwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDM0NTQyMzE0MzM1MDYwNDQ3LCAiY29sIjogMTA0LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwMzA3NjkyMzA3NjkyMzA3NywgImNvbCI6IDEwNCwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTA0LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAwNzMyNjAwNzMyNjAwNzMyNiwgImNvbCI6IDEwNCwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTA0LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjE1MTQ3OTI4OTk0MDgyODQsICJjb2wiOiAxMDQsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMzI4NzM4MDY5OTg5Mzk1NTMsICJjb2wiOiAxMDQsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuNDg3Mjg4MTM1NTkzMjIwMywgImNvbCI6IDEwNCwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC41NjY3MzcyODgxMzU1OTMyLCAiY29sIjogMTA0LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjQ1NDA2NTQ2OTkwNDk2MzA1LCAiY29sIjogMTA0LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC40Njk0NzM2ODQyMTA1MjYzLCAiY29sIjogMTA0LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC40Nzc4OTQ3MzY4NDIxMDUyNiwgImNvbCI6IDEwNCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuNTQ3ODQ0Mzc0MzQyNzk3MSwgImNvbCI6IDEwNCwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDAuNjUzMzE5MjgzNDU2MjY5OCwgImNvbCI6IDEwNCwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDAuNzA0OTUyNTgxNjY0OTEwNSwgImNvbCI6IDEwNCwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuNjkyMzA3NjkyMzA3NjkyMywgImNvbCI6IDEwNCwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuODczNTUxMTA2NDI3ODE4NywgImNvbCI6IDEwNCwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDAuODQ4MTAxMjY1ODIyNzg0OCwgImNvbCI6IDEwNCwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDEuMDU1OTA3MTcyOTk1NzgwNSwgImNvbCI6IDEwNCwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuNzgxNDE0OTk0NzIwMTY5LCAiY29sIjogMTA0LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC41MDI2MzQzNTE5NDk0MjA0LCAiY29sIjogMTA0LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4zMzY4NTMyMjA2OTY5Mzc3LCAiY29sIjogMTA0LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4zNTIxMjc2NTk1NzQ0NjgwNywgImNvbCI6IDEwNCwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV82MWUzMzlhNDdjN2Y0ZjhiYTg3OGNiY2Q1ODc1ZDZmNSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzE5YmU1NjJlNGQxNzQxZjViYmI1M2YxMTIyNWQxNTUxID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDI2NzU1LC05OS4xMzUwMTQpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83Y2EwNWI2ZTc4ZjA0MzRjODgzOGFiMjJhYzc3M2JjNyA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV9lNjRkZWNkYzVkYmQ0OThhYjhjOGQ5YzdkODJkZTYxZSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhX2U2NGRlY2RjNWRiZDQ5OGFiOGM4ZDljN2Q4MmRlNjFlIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83Y2EwNWI2ZTc4ZjA0MzRjODgzOGFiMjJhYzc3M2JjNy5zZXRDb250ZW50KHZlZ2FfZTY0ZGVjZGM1ZGJkNDk4YWI4YzhkOWM3ZDgyZGU2MWUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfMTliZTU2MmU0ZDE3NDFmNWJiYjUzZjExMjI1ZDE1NTEuYmluZFBvcHVwKHBvcHVwXzdjYTA1YjZlNzhmMDQzNGM4ODM4YWIyMmFjNzczYmM3KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDEwNTogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDM0NDgyNzU4NjIwNjg5NjU1LCAiY29sIjogMTA1LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMDUsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEwNSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTA1LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMDUsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEwNSwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4xMTQ3OTI4OTk0MDgyODQwMiwgImNvbCI6IDEwNSwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC4yNzg4OTcxMzY3OTc0NTQ5LCAiY29sIjogMTA1LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAwLjI0MjU4NDc0NTc2MjcxMTg2LCAiY29sIjogMTA1LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjMzNzkyMzcyODgxMzU1OTMsICJjb2wiOiAxMDUsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuMjE2NDczMDcyODYxNjY4NDIsICJjb2wiOiAxMDUsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjIwODQyMTA1MjYzMTU3ODk1LCAiY29sIjogMTA1LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC4yNjUyNjMxNTc4OTQ3MzY4NywgImNvbCI6IDEwNSwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuMzQ5MTA2MjAzOTk1NzkzOSwgImNvbCI6IDEwNSwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDAuNDYyNTkyMjAyMzE4MjI5NzMsICJjb2wiOiAxMDUsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjU1MzIxMzkwOTM3ODI5MywgImNvbCI6IDEwNSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuMzgwNDAwNDIxNDk2MzExOSwgImNvbCI6IDEwNSwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNDY5OTY4Mzg3Nzc2NjA2OTMsICJjb2wiOiAxMDUsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAwLjYzOTI0MDUwNjMyOTExMzksICJjb2wiOiAxMDUsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAwLjUzMDU5MDcxNzI5OTU3ODEsICJjb2wiOiAxMDUsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjY1MDQ3NTE4NDc5NDA4NjYsICJjb2wiOiAxMDUsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjM3OTM0NjY4MDcxNjU0MzcsICJjb2wiOiAxMDUsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjI4MDg4NzAxMTYxNTYyODMsICJjb2wiOiAxMDUsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjEzMjk3ODcyMzQwNDI1NTMyLCAiY29sIjogMTA1LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2U2NGRlY2RjNWRiZDQ5OGFiOGM4ZDljN2Q4MmRlNjFlKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNGRlMTY4MWEzMDVkNDc4ZDk4ODFkMmI1MDVlOWM4ZDUgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MjY0OSwtOTkuMTMzNTM3KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTY0ZWJhZGFmZWFkNDk0ZDg5YmU2ZTg5MDgyMzQ0YmIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfZWZjYTczYTlhNWIxNGEzZWE1ZTQxMGY4MTgwODRjODMgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9lZmNhNzNhOWE1YjE0YTNlYTVlNDEwZjgxODA4NGM4MyI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTY0ZWJhZGFmZWFkNDk0ZDg5YmU2ZTg5MDgyMzQ0YmIuc2V0Q29udGVudCh2ZWdhX2VmY2E3M2E5YTViMTRhM2VhNWU0MTBmODE4MDg0YzgzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzRkZTE2ODFhMzA1ZDQ3OGQ5ODgxZDJiNTA1ZTljOGQ1LmJpbmRQb3B1cChwb3B1cF9lNjRlYmFkYWZlYWQ0OTRkODliZTZlODkwODIzNDRiYik7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxMDY6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjA1NjAzNDQ4Mjc1ODYyMDY5LCAiY29sIjogMTA2LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMDYsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMDAzMDc2OTIzMDc2OTIzMDc3LCAiY29sIjogMTA2LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAwMjgwODk4ODc2NDA0NDk0MzcsICJjb2wiOiAxMDYsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEwNiwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wMDU3ODAzNDY4MjA4MDkyNDgsICJjb2wiOiAxMDYsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDYxNTM4NDYxNTM4NDYxNTQsICJjb2wiOiAxMDYsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMzcyMjE2MzMwODU4OTYwOCwgImNvbCI6IDEwNiwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC40NjgyMjAzMzg5ODMwNTA4LCAiY29sIjogMTA2LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjYyMDc2MjcxMTg2NDQwNjgsICJjb2wiOiAxMDYsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuMzgxMjAzODAxNDc4MzUyNywgImNvbCI6IDEwNiwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNDIsICJjb2wiOiAxMDYsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjY3MDUyNjMxNTc4OTQ3MzYsICJjb2wiOiAxMDYsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjY2NTYxNTE0MTk1NTgzNTksICJjb2wiOiAxMDYsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjc1NzYzOTYyMDY1MzMxOTIsICJjb2wiOiAxMDYsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjE0NjQ2OTk2ODM4Nzc3NjYsICJjb2wiOiAxMDYsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjk3MTU0ODk5ODk0NjI1OTIsICJjb2wiOiAxMDYsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjk3MzY1NjQ4MDUwNTc5NTYsICJjb2wiOiAxMDYsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjY3NDA1MDYzMjkxMTM5MjQsICJjb2wiOiAxMDYsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjg2NjAzMzc1NTI3NDI2MTYsICJjb2wiOiAxMDYsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAxLjMyMzEyNTY1OTk3ODg4MDgsICJjb2wiOiAxMDYsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjU2OTAyMDAyMTA3NDgxNTYsICJjb2wiOiAxMDYsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjMzMzY4NTMyMjA2OTY5Mzc2LCAiY29sIjogMTA2LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4xNTk1NzQ0NjgwODUxMDY0LCAiY29sIjogMTA2LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2VmY2E3M2E5YTViMTRhM2VhNWU0MTBmODE4MDg0YzgzKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNWQ4YTE2YWQ4YTI4NDg2OGE4YWEwMzk1ZTQ1YjYxNmYgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MjczMDUsLTk5LjE0OTUzMyksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Y4ODk0MDBkNmE0NjQ4MGNiMGY4MWFiMTEwNzY2MmY3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzQwOTI3MjEyNTY4OTRhNzViZTRlM2NhZjk0MGY5Y2UxID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfNDA5MjcyMTI1Njg5NGE3NWJlNGUzY2FmOTQwZjljZTEiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Y4ODk0MDBkNmE0NjQ4MGNiMGY4MWFiMTEwNzY2MmY3LnNldENvbnRlbnQodmVnYV80MDkyNzIxMjU2ODk0YTc1YmU0ZTNjYWY5NDBmOWNlMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl81ZDhhMTZhZDhhMjg0ODY4YThhYTAzOTVlNDViNjE2Zi5iaW5kUG9wdXAocG9wdXBfZjg4OTQwMGQ2YTQ2NDgwY2IwZjgxYWIxMTA3NjYyZjcpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTA4OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wMzIzMjc1ODYyMDY4OTY1NTQsICJjb2wiOiAxMDgsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEwOCwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMDMwNzY5MjMwNzY5MjMwNzcsICJjb2wiOiAxMDgsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEwOCwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTA4LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMDgsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuNDYzOTA1MzI1NDQzNzg3LCAiY29sIjogMTA4LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjYyMTQyMDk5NjgxODY2MzgsICJjb2wiOiAxMDgsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuOTQxNzM3Mjg4MTM1NTkzMiwgImNvbCI6IDEwOCwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS4xOTkxNTI1NDIzNzI4ODEzLCAiY29sIjogMTA4LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAxLjE3MDAxMDU1OTY2MjA5MDksICJjb2wiOiAxMDgsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjY2LCAiY29sIjogMTA4LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC43ODUyNjMxNTc4OTQ3MzY5LCAiY29sIjogMTA4LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC42OTkyNjM5MzI3MDI0MTg1LCAiY29sIjogMTA4LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMC44MTg3NTY1ODU4Nzk4NzM1LCAiY29sIjogMTA4LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS4zODA0MDA0MjE0OTYzMTIsICJjb2wiOiAxMDgsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAxLjMyMTM5MDkzNzgyOTI5NCwgImNvbCI6IDEwOCwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDEuMTg2NTEyMTE4MDE4OTY3MywgImNvbCI6IDEwOCwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDEuNjAyMzIwNjc1MTA1NDg1MywgImNvbCI6IDEwOCwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDIuMDcxNzI5OTU3ODA1OTA3LCAiY29sIjogMTA4LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMS4xMDk4MjA0ODU3NDQ0NTYyLCAiY29sIjogMTA4LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC42NzIyODY2MTc0OTIwOTcsICJjb2wiOiAxMDgsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjYwMDg0NDc3Mjk2NzI2NSwgImNvbCI6IDEwOCwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMTg0MDQyNTUzMTkxNDg5MzUsICJjb2wiOiAxMDgsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfNDA5MjcyMTI1Njg5NGE3NWJlNGUzY2FmOTQwZjljZTEpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl81ZDhjMWUwYmQ2OWQ0NDA2OTRjMGYxNWRlYzM3Y2QwZSA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQyNTMxMSwtOTkuMTM3NDIxKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfY2U4NjBlZmQ3ZDFiNGFhMTlkMzdlNDExMjFkMDk4YzYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfYTMyZDkxZmZkMGQxNDZmYjk4ZTY2YzY1YjJkZjc5MzcgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9hMzJkOTFmZmQwZDE0NmZiOThlNjZjNjViMmRmNzkzNyI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfY2U4NjBlZmQ3ZDFiNGFhMTlkMzdlNDExMjFkMDk4YzYuc2V0Q29udGVudCh2ZWdhX2EzMmQ5MWZmZDBkMTQ2ZmI5OGU2NmM2NWIyZGY3OTM3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzVkOGMxZTBiZDY5ZDQ0MDY5NGMwZjE1ZGVjMzdjZDBlLmJpbmRQb3B1cChwb3B1cF9jZTg2MGVmZDdkMWI0YWExOWQzN2U0MTEyMWQwOThjNik7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxMDk6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjA0MDk0ODI3NTg2MjA2ODk2NCwgImNvbCI6IDEwOSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDM0NTQyMzE0MzM1MDYwNDQ3LCAiY29sIjogMTA5LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwMzA3NjkyMzA3NjkyMzA3NywgImNvbCI6IDEwOSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTA5LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAwMzY2MzAwMzY2MzAwMzY2MywgImNvbCI6IDEwOSwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTA5LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjA3MzM3Mjc4MTA2NTA4ODc1LCAiY29sIjogMTA5LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjMyNDQ5NjI4ODQ0MTE0NTMsICJjb2wiOiAxMDksICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuNzk3NjY5NDkxNTI1NDIzOCwgImNvbCI6IDEwOSwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC43MjM1MTY5NDkxNTI1NDI0LCAiY29sIjogMTA5LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjM5Mzg3NTM5NTk4NzMyODQsICJjb2wiOiAxMDksICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjQzMjYzMTU3ODk0NzM2ODQsICJjb2wiOiAxMDksICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjQ0NTI2MzE1Nzg5NDczNjg2LCAiY29sIjogMTA5LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC40MTg1MDY4MzQ5MTA2MjA0LCAiY29sIjogMTA5LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMC41ODA2MTExNjk2NTIyNjU2LCAiY29sIjogMTA5LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMC43NDkyMDk2OTQ0MTUxNzM4LCAiY29sIjogMTA5LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC40OTczNjU2NDgwNTA1Nzk1MywgImNvbCI6IDEwOSwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNzMxMjk2MTAxMTU5MTE0OCwgImNvbCI6IDEwOSwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDAuODQxNzcyMTUxODk4NzM0MiwgImNvbCI6IDEwOSwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDAuNjY1NjExODE0MzQ1OTkxNiwgImNvbCI6IDEwOSwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuNTM2NDMwODM0MjEzMzA1MiwgImNvbCI6IDEwOSwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuMzk2MjA2NTMzMTkyODM0NTUsICJjb2wiOiAxMDksICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjE4NDc5NDA4NjU4OTIyOTEzLCAiY29sIjogMTA5LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4wODgyOTc4NzIzNDA0MjU1MywgImNvbCI6IDEwOSwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9hMzJkOTFmZmQwZDE0NmZiOThlNjZjNjViMmRmNzkzNyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyX2EyNGY1ZGZmODE1OTQ5Nzk5ZDYxOWY3NDU2ZDhhYWZlID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDI1MTI2LC05OS4xNDMzOTEpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yZDllZTRiOTZmYWM0ODM4YTVlMWNkN2VlNjM0M2ZmZiA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV85ZDc0ZGE2ZTAyOGI0NTU3OTQ0ZDRiNzVmZWQ0MDkzZSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzlkNzRkYTZlMDI4YjQ1NTc5NDRkNGI3NWZlZDQwOTNlIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yZDllZTRiOTZmYWM0ODM4YTVlMWNkN2VlNjM0M2ZmZi5zZXRDb250ZW50KHZlZ2FfOWQ3NGRhNmUwMjhiNDU1Nzk0NGQ0Yjc1ZmVkNDA5M2UpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfYTI0ZjVkZmY4MTU5NDk3OTlkNjE5Zjc0NTZkOGFhZmUuYmluZFBvcHVwKHBvcHVwXzJkOWVlNGI5NmZhYzQ4MzhhNWUxY2Q3ZWU2MzQzZmZmKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDExMDogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDIzNzA2ODk2NTUxNzI0MTM3LCAiY29sIjogMTEwLCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMTAsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDExMCwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDI4MDg5ODg3NjQwNDQ5NDM3LCAiY29sIjogMTEwLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMTAsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDExMCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wOTM0OTExMjQyNjAzNTUwMiwgImNvbCI6IDExMCwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC4yMDA0MjQxNzgxNTQ4MjUwMiwgImNvbCI6IDExMCwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC40MTQxOTQ5MTUyNTQyMzczLCAiY29sIjogMTEwLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjc2Njk0OTE1MjU0MjM3MjgsICJjb2wiOiAxMTAsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuNDgyNTc2NTU3NTUwMTU4NCwgImNvbCI6IDExMCwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNTM3ODk0NzM2ODQyMTA1MywgImNvbCI6IDExMCwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNjczNjg0MjEwNTI2MzE1OCwgImNvbCI6IDExMCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuNzQ5NzM3MTE4ODIyMjkyMywgImNvbCI6IDExMCwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDAuNjk0NDE1MTczODY3MjI4NiwgImNvbCI6IDExMCwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDAuNjMyMjQ0NDY3ODYwOTA2MywgImNvbCI6IDExMCwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuNTE2MzMyOTgyMDg2NDA2OCwgImNvbCI6IDExMCwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNjExMTY5NjUyMjY1NTQyNywgImNvbCI6IDExMCwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDEuMDY1NDAwODQzODgxODU2NSwgImNvbCI6IDExMCwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDEuNTkwNzE3Mjk5NTc4MDU5LCAiY29sIjogMTEwLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC45NTI0ODE1MjA1OTEzNDExLCAiY29sIjogMTEwLCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC40MTkzODg4MzAzNDc3MzQ0NCwgImNvbCI6IDExMCwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMjI5MTQ0NjY3MzcwNjQ0MTUsICJjb2wiOiAxMTAsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjEzOTM2MTcwMjEyNzY1OTU4LCAiY29sIjogMTEwLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzlkNzRkYTZlMDI4YjQ1NTc5NDRkNGI3NWZlZDQwOTNlKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfYjViZTljZWI0ODQwNDJhMWE1ZGY5MjEwNDRmYzJhYTEgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MzI4MTksLTk5LjE1MTczNCksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Y2NmUxNWNlMzEzNDRhMjhiNDZhMGNhZDkyZjE0NmM4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzBlZDcxODA1MWI5MTQ3MzQ5ODdiNGZkZmI5NDcyMTczID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfMGVkNzE4MDUxYjkxNDczNDk4N2I0ZmRmYjk0NzIxNzMiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Y2NmUxNWNlMzEzNDRhMjhiNDZhMGNhZDkyZjE0NmM4LnNldENvbnRlbnQodmVnYV8wZWQ3MTgwNTFiOTE0NzM0OTg3YjRmZGZiOTQ3MjE3Myk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9iNWJlOWNlYjQ4NDA0MmExYTVkZjkyMTA0NGZjMmFhMS5iaW5kUG9wdXAocG9wdXBfZjY2ZTE1Y2UzMTM0NGEyOGI0NmEwY2FkOTJmMTQ2YzgpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTEyOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wNTYwMzQ0ODI3NTg2MjA2OSwgImNvbCI6IDExMiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDUxODEzNDcxNTAyNTkwNjc2LCAiY29sIjogMTEyLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMTIsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDExMiwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTEyLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMTIsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDcxMDA1OTE3MTU5NzYzMzIsICJjb2wiOiAxMTIsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMjU1NTY3MzM4MjgyMDc4NDUsICJjb2wiOiAxMTIsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuNjg5NjE4NjQ0MDY3Nzk2NiwgImNvbCI6IDExMiwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS4zOTA4ODk4MzA1MDg0NzQ1LCAiY29sIjogMTEyLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjY3NDc2MjQwNzYwMjk1NjcsICJjb2wiOiAxMTIsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjU4NjMxNTc4OTQ3MzY4NDIsICJjb2wiOiAxMTIsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjY0NDIxMDUyNjMxNTc4OTUsICJjb2wiOiAxMTIsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjc1Mzk0MzIxNzY2NTYxNTEsICJjb2wiOiAxMTIsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjMwNTU4NDgyNjEzMjc3MTQsICJjb2wiOiAxMTIsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjExMjc1MDI2MzQzNTE5NSwgImNvbCI6IDExMiwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDEuMzgxNDU0MTYyMjc2MDgsICJjb2wiOiAxMTIsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjk3Nzg3MTQ0MzYyNDg2ODMsICJjb2wiOiAxMTIsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjg2MTgxNDM0NTk5MTU2MTMsICJjb2wiOiAxMTIsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjY3MDg4NjA3NTk0OTM2NzEsICJjb2wiOiAxMTIsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAxLjI4OTMzNDc0MTI4ODI3ODcsICJjb2wiOiAxMTIsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjkyODM0NTYyNjk3NTc2NCwgImNvbCI6IDExMiwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuNDc1MTg0Nzk0MDg2NTg5MiwgImNvbCI6IDExMiwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMjE5MTQ4OTM2MTcwMjEyNzgsICJjb2wiOiAxMTIsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfMGVkNzE4MDUxYjkxNDczNDk4N2I0ZmRmYjk0NzIxNzMpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl82NDA3ODlmZTNkY2Y0OTJmYjczYTI0NTZlMDViZjZkMSA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQyODk4OSwtOTkuMTUzNjE4KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfN2ViNjdhMjc5ODk3NDM4ODk1YTc4Mjg2MTNhYWQ3ZTYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfZDk3YjBiMmExZTAyNGE4YWIzNDVhZjAzNThiNTkzMjUgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9kOTdiMGIyYTFlMDI0YThhYjM0NWFmMDM1OGI1OTMyNSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfN2ViNjdhMjc5ODk3NDM4ODk1YTc4Mjg2MTNhYWQ3ZTYuc2V0Q29udGVudCh2ZWdhX2Q5N2IwYjJhMWUwMjRhOGFiMzQ1YWYwMzU4YjU5MzI1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzY0MDc4OWZlM2RjZjQ5MmZiNzNhMjQ1NmUwNWJmNmQxLmJpbmRQb3B1cChwb3B1cF83ZWI2N2EyNzk4OTc0Mzg4OTVhNzgyODYxM2FhZDdlNik7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxMTQ6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjEyOTMxMDM0NDgyNzU4NjIyLCAiY29sIjogMTE0LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMTQsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDExNCwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTE0LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAwMzY2MzAwMzY2MzAwMzY2MywgImNvbCI6IDExNCwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTE0LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjA3ODEwNjUwODg3NTczOTY0LCAiY29sIjogMTE0LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjIyNTg3NDg2NzQ0NDMyNjYsICJjb2wiOiAxMTQsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuMzcwNzYyNzExODY0NDA2OCwgImNvbCI6IDExNCwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC44NjMzNDc0NTc2MjcxMTg2LCAiY29sIjogMTE0LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjU0NTkzNDUzMDA5NTAzNywgImNvbCI6IDExNCwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNDE2ODQyMTA1MjYzMTU3OSwgImNvbCI6IDExNCwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNDE0NzM2ODQyMTA1MjYzMiwgImNvbCI6IDExNCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuNDk4NDIyNzEyOTMzNzUzOTUsICJjb2wiOiAxMTQsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjgyMjk3MTU0ODk5ODk0NjMsICJjb2wiOiAxMTQsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjU2NDgwNTA1Nzk1NTc0MjksICJjb2wiOiAxMTQsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjYyNTkyMjAyMzE4MjI5NzIsICJjb2wiOiAxMTQsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjU4MDYxMTE2OTY1MjI2NTYsICJjb2wiOiAxMTQsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAwLjc3NjM3MTMwODAxNjg3NzYsICJjb2wiOiAxMTQsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAwLjY3NTEwNTQ4NTIzMjA2NzUsICJjb2wiOiAxMTQsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjU2MTc3NDAyMzIzMTI1NjYsICJjb2wiOiAxMTQsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjQxMDk1ODkwNDEwOTU4OSwgImNvbCI6IDExNCwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMzQ5NTI0ODE1MjA1OTEzNCwgImNvbCI6IDExNCwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMjQ4OTM2MTcwMjEyNzY1OTYsICJjb2wiOiAxMTQsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfZDk3YjBiMmExZTAyNGE4YWIzNDVhZjAzNThiNTkzMjUpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9lYTA4NTk2OTdiMjE0OWE0OWQ2NDBlNzJiZWIyMmM4MiA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQyOTk0NywtOTkuMTU5Njk4KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZWEzMWNhMmIxMmIyNDVkMTlmZjRlNzY1ZjUwMzkwMjYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfY2JkNzUwMGY5ZTlmNDVkMDlmOWVlYzY4ZjQwZGI4MDYgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9jYmQ3NTAwZjllOWY0NWQwOWY5ZWVjNjhmNDBkYjgwNiI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZWEzMWNhMmIxMmIyNDVkMTlmZjRlNzY1ZjUwMzkwMjYuc2V0Q29udGVudCh2ZWdhX2NiZDc1MDBmOWU5ZjQ1ZDA5ZjllZWM2OGY0MGRiODA2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2VhMDg1OTY5N2IyMTQ5YTQ5ZDY0MGU3MmJlYjIyYzgyLmJpbmRQb3B1cChwb3B1cF9lYTMxY2EyYjEyYjI0NWQxOWZmNGU3NjVmNTAzOTAyNik7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxMTU6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjA3NTQzMTAzNDQ4Mjc1ODYyLCAiY29sIjogMTE1LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAwNjkwODQ2Mjg2NzAxMjA4OTUsICJjb2wiOiAxMTUsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDExNSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTE1LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMTUsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDExNSwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC41NTM4NDYxNTM4NDYxNTM5LCAiY29sIjogMTE1LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjY2OTE0MTAzOTIzNjQ3OTMsICJjb2wiOiAxMTUsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDIuNDI3OTY2MTAxNjk0OTE1MiwgImNvbCI6IDExNSwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMi43OTQ0OTE1MjU0MjM3MjksICJjb2wiOiAxMTUsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDEuNDY5OTA0OTYzMDQxMTgyNywgImNvbCI6IDExNSwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDEuMTUxNTc4OTQ3MzY4NDIxLCAiY29sIjogMTE1LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMS4zNTI2MzE1Nzg5NDczNjg0LCAiY29sIjogMTE1LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMS41NjQ2Njg3Njk3MTYwODg0LCAiY29sIjogMTE1LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMS41Nzg1MDM2ODgwOTI3MjkyLCAiY29sIjogMTE1LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS43NzM0NDU3MzIzNDk4NDIsICJjb2wiOiAxMTUsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAxLjY0ODA1MDU3OTU1NzQyOSwgImNvbCI6IDExNSwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDEuNTYxNjQzODM1NjE2NDM4NCwgImNvbCI6IDExNSwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDEuMzk4NzM0MTc3MjE1MTg5OCwgImNvbCI6IDExNSwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDEuNjQxMzUwMjEwOTcwNDY0LCAiY29sIjogMTE1LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC45NzQ2NTY4MTA5ODIwNDg2LCAiY29sIjogMTE1LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC42NTc1MzQyNDY1NzUzNDI0LCAiY29sIjogMTE1LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC40ODE1MjA1OTEzNDEwNzcxLCAiY29sIjogMTE1LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4yMjg3MjM0MDQyNTUzMTkxNSwgImNvbCI6IDExNSwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9jYmQ3NTAwZjllOWY0NWQwOWY5ZWVjNjhmNDBkYjgwNik7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyX2MwODc3MmZmNGVhYjQ3OTJiYTk3MzUzOTY5MzM5NzNjID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDI4OTg1LC05OS4xNTY2NCksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzY4N2Y4NTZkNGM0NzRmYTRiNThhNTg5YWU1YzkxZTg3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzJkOWE4OGZjZGUyYjQ3ODNiMzgwYTViMTBkZGQ2YTFmID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfMmQ5YTg4ZmNkZTJiNDc4M2IzODBhNWIxMGRkZDZhMWYiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzY4N2Y4NTZkNGM0NzRmYTRiNThhNTg5YWU1YzkxZTg3LnNldENvbnRlbnQodmVnYV8yZDlhODhmY2RlMmI0NzgzYjM4MGE1YjEwZGRkNmExZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9jMDg3NzJmZjRlYWI0NzkyYmE5NzM1Mzk2OTMzOTczYy5iaW5kUG9wdXAocG9wdXBfNjg3Zjg1NmQ0YzQ3NGZhNGI1OGE1ODlhZTVjOTFlODcpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTE2OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4xNTMwMTcyNDEzNzkzMTAzMywgImNvbCI6IDExNiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTE2LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwMzA3NjkyMzA3NjkyMzA3NywgImNvbCI6IDExNiwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDI4MDg5ODg3NjQwNDQ5NDM3LCAiY29sIjogMTE2LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMTYsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDExNiwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC40MzA3NjkyMzA3NjkyMzA4LCAiY29sIjogMTE2LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjc5MjE1MjcwNDEzNTczNywgImNvbCI6IDExNiwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMS4yODE3Nzk2NjEwMTY5NDkyLCAiY29sIjogMTE2LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAxLjk2NTA0MjM3Mjg4MTM1NiwgImNvbCI6IDExNiwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMS4xNTIwNTkxMzQxMDc3MDg3LCAiY29sIjogMTE2LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMS4yMTQ3MzY4NDIxMDUyNjMxLCAiY29sIjogMTE2LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMS4yODYzMTU3ODk0NzM2ODQzLCAiY29sIjogMTE2LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMS40NTIxNTU2MjU2NTcyMDMsICJjb2wiOiAxMTYsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAyLjEyMDEyNjQ0ODg5MzU3MiwgImNvbCI6IDExNiwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDIuMjI2NTU0MjY3NjUwMTU4LCAiY29sIjogMTE2LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMS44ODMwMzQ3NzM0NDU3MzI0LCAiY29sIjogMTE2LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMS45MTg4NjE5NTk5NTc4NTA1LCAiY29sIjogMTE2LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMi40OTg5NDUxNDc2NzkzMjQ3LCAiY29sIjogMTE2LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMy40MDkyODI3MDA0MjE5NDEsICJjb2wiOiAxMTYsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAyLjEzOTM4NzUzOTU5ODczMywgImNvbCI6IDExNiwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDEuNTM3NDA3Nzk3NjgxNzcwNCwgImNvbCI6IDExNiwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDEuMDY5NjkzNzY5Nzk5MzY2NSwgImNvbCI6IDExNiwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuNDgwODUxMDYzODI5Nzg3MiwgImNvbCI6IDExNiwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV8yZDlhODhmY2RlMmI0NzgzYjM4MGE1YjEwZGRkNmExZik7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyX2IwN2U2ZTVmNzk5MDQ4ZThiNjZiZDdiNDQ5M2Y5ODFlID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDI3MTMyLC05OS4xNjAzNjkpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81MzAxZjIxNDlhMmU0N2IyOWJkOTljZjcyMTI5ZjZmZCA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV9lYmU0MGQ3MWQ5ODI0YmY2YjZmMWM3YmYxZjAxZWMwZiA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhX2ViZTQwZDcxZDk4MjRiZjZiNmYxYzdiZjFmMDFlYzBmIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81MzAxZjIxNDlhMmU0N2IyOWJkOTljZjcyMTI5ZjZmZC5zZXRDb250ZW50KHZlZ2FfZWJlNDBkNzFkOTgyNGJmNmI2ZjFjN2JmMWYwMWVjMGYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfYjA3ZTZlNWY3OTkwNDhlOGI2NmJkN2I0NDkzZjk4MWUuYmluZFBvcHVwKHBvcHVwXzUzMDFmMjE0OWEyZTQ3YjI5YmQ5OWNmNzIxMjlmNmZkKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDExNzogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMTE5NjEyMDY4OTY1NTE3MjQsICJjb2wiOiAxMTcsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDExNywgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTE3LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAwMjgwODk4ODc2NDA0NDk0MzcsICJjb2wiOiAxMTcsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMDEwOTg5MDEwOTg5MDEwOTksICJjb2wiOiAxMTcsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMDA1NzgwMzQ2ODIwODA5MjQ4LCAiY29sIjogMTE3LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjA5MzQ5MTEyNDI2MDM1NTAyLCAiY29sIjogMTE3LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjQ5MDk4NjIxNDIwOTk2ODIsICJjb2wiOiAxMTcsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDEuMTQ4MzA1MDg0NzQ1NzYyOCwgImNvbCI6IDExNywgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS4zNjc1ODQ3NDU3NjI3MTIsICJjb2wiOiAxMTcsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDEuMjE5NjQwOTcxNDg4OTEyMywgImNvbCI6IDExNywgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuOTcxNTc4OTQ3MzY4NDIxMSwgImNvbCI6IDExNywgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDEuMDc4OTQ3MzY4NDIxMDUyNywgImNvbCI6IDExNywgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDEuMDU5OTM2OTA4NTE3MzUwMiwgImNvbCI6IDExNywgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuNjE1Mzg0NjE1Mzg0NjE1NCwgImNvbCI6IDExNywgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuNTkwMDk0ODM2NjcwMTc5LCAiY29sIjogMTE3LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC45OTE1NzAwNzM3NjE4NTQ2LCAiY29sIjogMTE3LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC45ODYzMDEzNjk4NjMwMTM2LCAiY29sIjogMTE3LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS40NjIwMjUzMTY0NTU2OTYyLCAiY29sIjogMTE3LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS41MTg5ODczNDE3NzIxNTIsICJjb2wiOiAxMTcsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAxLjAwOTUwMzY5NTg4MTczMTgsICJjb2wiOiAxMTcsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjg3MTQ0MzYyNDg2ODI4MjQsICJjb2wiOiAxMTcsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjY4NjM3ODAzNTkwMjg1MTEsICJjb2wiOiAxMTcsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjM0MTQ4OTM2MTcwMjEyNzcsICJjb2wiOiAxMTcsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfZWJlNDBkNzFkOTgyNGJmNmI2ZjFjN2JmMWYwMWVjMGYpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9jY2M1NDIwODRkOGQ0Y2RkOGMzZDI1ZDk3MTIxZWMyNSA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQyNzExNCwtOTkuMTU4MjUxKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODAwYTE0M2ZhNzM4NGIxNTk0M2NhMWFhOGJlYmIwYTAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfNGU1YzYyZTAxYTE5NDMwOTlmNzZmOGJiYjliMzEzNzkgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV80ZTVjNjJlMDFhMTk0MzA5OWY3NmY4YmJiOWIzMTM3OSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODAwYTE0M2ZhNzM4NGIxNTk0M2NhMWFhOGJlYmIwYTAuc2V0Q29udGVudCh2ZWdhXzRlNWM2MmUwMWExOTQzMDk5Zjc2ZjhiYmI5YjMxMzc5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2NjYzU0MjA4NGQ4ZDRjZGQ4YzNkMjVkOTcxMjFlYzI1LmJpbmRQb3B1cChwb3B1cF84MDBhMTQzZmE3Mzg0YjE1OTQzY2ExYWE4YmViYjBhMCk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxMTg6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjExNjM3OTMxMDM0NDgyNzU4LCAiY29sIjogMTE4LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMTgsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDExOCwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTE4LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMTgsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDExOCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4xNDIwMTE4MzQzMTk1MjY2MywgImNvbCI6IDExOCwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC45MjE1MjcwNDEzNTczNzAxLCAiY29sIjogMTE4LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAyLjA4Njg2NDQwNjc3OTY2MSwgImNvbCI6IDExOCwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMi4yNjQ4MzA1MDg0NzQ1NzYsICJjb2wiOiAxMTgsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuODU1MzMyNjI5MzU1ODYwNiwgImNvbCI6IDExOCwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNzkxNTc4OTQ3MzY4NDIxLCAiY29sIjogMTE4LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC43OTc4OTQ3MzY4NDIxMDUyLCAiY29sIjogMTE4LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMS4xMTQ2MTYxOTM0ODA1NDY3LCAiY29sIjogMTE4LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMS41MDA1MjY4NzAzODk4ODQyLCAiY29sIjogMTE4LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS42MDA2MzIyNDQ0Njc4NjEsICJjb2wiOiAxMTgsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAxLjQ2MTUzODQ2MTUzODQ2MTUsICJjb2wiOiAxMTgsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAxLjE3NzAyODQ1MTAwMTA1MzgsICJjb2wiOiAxMTgsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjY2NjY2NjY2NjY2NjY2NjcsICJjb2wiOiAxMTgsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjUxMTYwMzM3NTUyNzQyNiwgImNvbCI6IDExOCwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuOTM5ODA5OTI2MDgyMzY1NCwgImNvbCI6IDExOCwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuNjc4NjA5MDYyMTcwNzA2LCAiY29sIjogMTE4LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC41NjkxNjU3ODY2OTQ4MjU4LCAiY29sIjogMTE4LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4yNjA2MzgyOTc4NzIzNDA0NCwgImNvbCI6IDExOCwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV80ZTVjNjJlMDFhMTk0MzA5OWY3NmY4YmJiOWIzMTM3OSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzljYWRhYzFiYTRhZjRjYjI4M2NmMDM0YTQyYzc2MmE5ID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDI2Nzg1LC05OS4xNTU1MzUpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xN2NmZTQ1NGE5MWY0MGJiYWYzNjEwYWZmMmI0MmNhMyA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV9kMjAyNjdiYTU2MDU0MmVmOGZlMzM3MDlhNGVlYWI5MSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhX2QyMDI2N2JhNTYwNTQyZWY4ZmUzMzcwOWE0ZWVhYjkxIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xN2NmZTQ1NGE5MWY0MGJiYWYzNjEwYWZmMmI0MmNhMy5zZXRDb250ZW50KHZlZ2FfZDIwMjY3YmE1NjA1NDJlZjhmZTMzNzA5YTRlZWFiOTEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfOWNhZGFjMWJhNGFmNGNiMjgzY2YwMzRhNDJjNzYyYTkuYmluZFBvcHVwKHBvcHVwXzE3Y2ZlNDU0YTkxZjQwYmJhZjM2MTBhZmYyYjQyY2EzKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDExOTogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMTA0NTI1ODYyMDY4OTY1NTEsICJjb2wiOiAxMTksICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDAxNzI3MTE1NzE2NzUzMDIyNCwgImNvbCI6IDExOSwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTE5LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAwMjgwODk4ODc2NDA0NDk0MzcsICJjb2wiOiAxMTksICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMDAzNjYzMDAzNjYzMDAzNjYzLCAiY29sIjogMTE5LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAwNTc4MDM0NjgyMDgwOTI0OCwgImNvbCI6IDExOSwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC41NzUxNDc5Mjg5OTQwODI4LCAiY29sIjogMTE5LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjM4NzA2MjU2NjI3NzgzNjcsICJjb2wiOiAxMTksICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuODg3NzExODY0NDA2Nzc5NiwgImNvbCI6IDExOSwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC44NDAwNDIzNzI4ODEzNTYsICJjb2wiOiAxMTksICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuNjg5NTQ1OTM0NTMwMDk1LCAiY29sIjogMTE5LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC43ODczNjg0MjEwNTI2MzE2LCAiY29sIjogMTE5LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMS4wMjMxNTc4OTQ3MzY4NDIsICJjb2wiOiAxMTksICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAxLjI2NzA4NzI3NjU1MDk5ODgsICJjb2wiOiAxMTksICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjc5MDMwNTU4NDgyNjEzMjcsICJjb2wiOiAxMTksICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjkwOTM3ODI5MjkzOTkzNjgsICJjb2wiOiAxMTksICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAxLjM0MDM1ODI3MTg2NTEyMTIsICJjb2wiOiAxMTksICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAxLjE4MTI0MzQxNDEyMDEyNjUsICJjb2wiOiAxMTksICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjc2MDU0ODUyMzIwNjc1MSwgImNvbCI6IDExOSwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDEuODA5MDcxNzI5OTU3ODA1OSwgImNvbCI6IDExOSwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDEuNTY4MTA5ODIwNDg1NzQ0NCwgImNvbCI6IDExOSwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDEuMTY1NDM3MzAyNDIzNjAzOCwgImNvbCI6IDExOSwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDEuMTIzNTQ4MDQ2NDYyNTEzMiwgImNvbCI6IDExOSwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuNDM1MTA2MzgyOTc4NzIzNCwgImNvbCI6IDExOSwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9kMjAyNjdiYTU2MDU0MmVmOGZlMzM3MDlhNGVlYWI5MSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzY0OTY2MTMyNGJmZDQ2NjE5Y2JkMTZlMzkxZWU1ODE0ID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDI1NDM3LC05OS4xNTk0NTgpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82ZjQ3M2JhZjZjZjM0OWMyODJlMDg4MWQ3YzYxNjdkMyA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV82MWNhZWM2NTg0ODk0M2Y4YjNmOTBkZGMyYmY4Njg5MiA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzYxY2FlYzY1ODQ4OTQzZjhiM2Y5MGRkYzJiZjg2ODkyIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82ZjQ3M2JhZjZjZjM0OWMyODJlMDg4MWQ3YzYxNjdkMy5zZXRDb250ZW50KHZlZ2FfNjFjYWVjNjU4NDg5NDNmOGIzZjkwZGRjMmJmODY4OTIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNjQ5NjYxMzI0YmZkNDY2MTljYmQxNmUzOTFlZTU4MTQuYmluZFBvcHVwKHBvcHVwXzZmNDczYmFmNmNmMzQ5YzI4MmUwODgxZDdjNjE2N2QzKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDEyMDogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMTI5MzEwMzQ0ODI3NTg2MjIsICJjb2wiOiAxMjAsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDEyMDg5ODEwMDE3MjcxMTU4LCAiY29sIjogMTIwLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMjAsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDA1NjE3OTc3NTI4MDg5ODg3NSwgImNvbCI6IDEyMCwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTIwLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMjAsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDk0Njc0NTU2MjEzMDE3NzUsICJjb2wiOiAxMjAsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuNDM5MDI0MzkwMjQzOTAyNDQsICJjb2wiOiAxMjAsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDEuMzIwOTc0NTc2MjcxMTg2NCwgImNvbCI6IDEyMCwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS4wNTkzMjIwMzM4OTgzMDUxLCAiY29sIjogMTIwLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjU5NTU2NDk0MTkyMTg1ODUsICJjb2wiOiAxMjAsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjU1MTU3ODk0NzM2ODQyMTEsICJjb2wiOiAxMjAsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjYwNzM2ODQyMTA1MjYzMTYsICJjb2wiOiAxMjAsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjcxODE5MTM3NzQ5NzM3MTIsICJjb2wiOiAxMjAsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjkzMTUwNjg0OTMxNTA2ODQsICJjb2wiOiAxMjAsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjc4NTAzNjg4MDkyNzI5MTgsICJjb2wiOiAxMjAsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjg4ODMwMzQ3NzM0NDU3MzMsICJjb2wiOiAxMjAsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjg4NDA4ODUxNDIyNTUwMDUsICJjb2wiOiAxMjAsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjMxNDM0NTk5MTU2MTE4MTUsICJjb2wiOiAxMjAsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjI0MjYxNjAzMzc1NTI3NDMsICJjb2wiOiAxMjAsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjg4MDY3NTgxODM3MzgxMiwgImNvbCI6IDEyMCwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuNzM4NjcyMjg2NjE3NDkyMSwgImNvbCI6IDEyMCwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuNTYzODg1OTU1NjQ5NDE5MiwgImNvbCI6IDEyMCwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMzkwNDI1NTMxOTE0ODkzNiwgImNvbCI6IDEyMCwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV82MWNhZWM2NTg0ODk0M2Y4YjNmOTBkZGMyYmY4Njg5Mik7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzkzOTg1OTFhMGZhMTQyY2VhMmI0NDhjNjEyNjVjYTZhID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDI0MTM3LC05OS4xNjEzMTcpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iOTE2NmJmMjcyYjQ0YTc4Yjk3Y2M3ZDJlMmIyYzVhMSA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV84YTA5NjAzMjU5ODk0ZmIzOGZmY2NiYjgxMzM1NzJiMyA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzhhMDk2MDMyNTk4OTRmYjM4ZmZjY2JiODEzMzU3MmIzIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iOTE2NmJmMjcyYjQ0YTc4Yjk3Y2M3ZDJlMmIyYzVhMS5zZXRDb250ZW50KHZlZ2FfOGEwOTYwMzI1OTg5NGZiMzhmZmNjYmI4MTMzNTcyYjMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfOTM5ODU5MWEwZmExNDJjZWEyYjQ0OGM2MTI2NWNhNmEuYmluZFBvcHVwKHBvcHVwX2I5MTY2YmYyNzJiNDRhNzhiOTdjYzdkMmUyYjJjNWExKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDEyMTogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDYxNDIyNDEzNzkzMTAzNDQ2LCAiY29sIjogMTIxLCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAwNTE4MTM0NzE1MDI1OTA2NzYsICJjb2wiOiAxMjEsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEyMSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDU2MTc5Nzc1MjgwODk4ODc1LCAiY29sIjogMTIxLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAwMzY2MzAwMzY2MzAwMzY2MywgImNvbCI6IDEyMSwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wMTE1NjA2OTM2NDE2MTg0OTcsICJjb2wiOiAxMjEsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMTg1Nzk4ODE2NTY4MDQ3MzQsICJjb2wiOiAxMjEsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDEuMzcwMDk1NDQwMDg0ODM1NSwgImNvbCI6IDEyMSwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMi4xMzQ1MzM4OTgzMDUwODQ4LCAiY29sIjogMTIxLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAxLjEzMDI5NjYxMDE2OTQ5MTYsICJjb2wiOiAxMjEsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuNzI2NTA0NzUxODQ3OTQwOCwgImNvbCI6IDEyMSwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNjcyNjMxNTc4OTQ3MzY4NSwgImNvbCI6IDEyMSwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNzkxNTc4OTQ3MzY4NDIxLCAiY29sIjogMTIxLCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMS4wNzI1NTUyMDUwNDczMTg2LCAiY29sIjogMTIxLCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMS4zNTgyNzE4NjUxMjExODAzLCAiY29sIjogMTIxLCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS4xNzE3NTk3NDcxMDIyMTI4LCAiY29sIjogMTIxLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMS4wMTM2OTg2MzAxMzY5ODY0LCAiY29sIjogMTIxLCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC45NjYyODAyOTUwNDc0MTgzLCAiY29sIjogMTIxLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS40ODYyODY5MTk4MzEyMjM2LCAiY29sIjogMTIxLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS40NTI1MzE2NDU1Njk2MjAyLCAiY29sIjogMTIxLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC44ODM4NDM3MTcwMDEwNTYsICJjb2wiOiAxMjEsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjc5ODczNTUxMTA2NDI3ODIsICJjb2wiOiAxMjEsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjQ1ODI4OTMzNDc0MTI4ODMsICJjb2wiOiAxMjEsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjIxOTE0ODkzNjE3MDIxMjc4LCAiY29sIjogMTIxLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzhhMDk2MDMyNTk4OTRmYjM4ZmZjY2JiODEzMzU3MmIzKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfY2Q2NjM5NjgzN2M3NGZlMzk1ODdiNzc4YTU0OWFmZTAgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MjU1MDIsLTk5LjE0NjMzNyksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzU3NzJiNTJkN2M5MDQ5YjZhMjA5ZTdlMDJjMGZlYmM0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzg1Y2UxNmI2YmMwMzQ0ZTViOGY4OTgzM2FkZjgwZDljID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfODVjZTE2YjZiYzAzNDRlNWI4Zjg5ODMzYWRmODBkOWMiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzU3NzJiNTJkN2M5MDQ5YjZhMjA5ZTdlMDJjMGZlYmM0LnNldENvbnRlbnQodmVnYV84NWNlMTZiNmJjMDM0NGU1YjhmODk4MzNhZGY4MGQ5Yyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9jZDY2Mzk2ODM3Yzc0ZmUzOTU4N2I3NzhhNTQ5YWZlMC5iaW5kUG9wdXAocG9wdXBfNTc3MmI1MmQ3YzkwNDliNmEyMDllN2UwMmMwZmViYzQpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTIyOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wNDIwMjU4NjIwNjg5NjU1MiwgImNvbCI6IDEyMiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDE3MjcxMTU3MTY3NTMwMjI0LCAiY29sIjogMTIyLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMjIsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDAyODA4OTg4NzY0MDQ0OTQzNywgImNvbCI6IDEyMiwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTIyLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMjIsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMzE3MTU5NzYzMzEzNjA5NDYsICJjb2wiOiAxMjIsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMjMzMjk3OTg1MTUzNzY0NTcsICJjb2wiOiAxMjIsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuMzc1LCAiY29sIjogMTIyLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjc1OTUzMzg5ODMwNTA4NDgsICJjb2wiOiAxMjIsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuNTcyMzMzNjg1MzIyMDY5NywgImNvbCI6IDEyMiwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNjA1MjYzMTU3ODk0NzM2OCwgImNvbCI6IDEyMiwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNTc4OTQ3MzY4NDIxMDUyNywgImNvbCI6IDEyMiwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuNTMyMDcxNTAzNjgwMzM2NSwgImNvbCI6IDEyMiwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDAuNTk2NDE3MjgxMzQ4Nzg4MiwgImNvbCI6IDEyMiwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDAuNTgwNjExMTY5NjUyMjY1NiwgImNvbCI6IDEyMiwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuNjA1OTAwOTQ4MzY2NzAxOCwgImNvbCI6IDEyMiwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNjI5MDgzMjQ1NTIxNjAxNywgImNvbCI6IDEyMiwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDAuODcyMzYyODY5MTk4MzEyMiwgImNvbCI6IDEyMiwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDAuNzE4MzU0NDMwMzc5NzQ2OSwgImNvbCI6IDEyMiwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuNjIxOTY0MDk3MTQ4ODkxMiwgImNvbCI6IDEyMiwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuMzg1NjY5MTI1Mzk1MTUyOCwgImNvbCI6IDEyMiwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMzE1NzMzODk2NTE1MzExNTMsICJjb2wiOiAxMjIsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjExNzAyMTI3NjU5NTc0NDY4LCAiY29sIjogMTIyLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzg1Y2UxNmI2YmMwMzQ0ZTViOGY4OTgzM2FkZjgwZDljKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNTM1YTUwZjQ1NWE2NDdkMThjODUzMzEwY2Y5ZDAzMTIgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MjQxNjEsLTk5LjE1MzExNyksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzI5MTU2YzMzMzYyODQyZjRhYjA5NjM5MzU4YmJiNDAwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzBmZTgyN2IzOWQ3YjRkYTliOTUxYmViODZhOGM1ZjRkID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfMGZlODI3YjM5ZDdiNGRhOWI5NTFiZWI4NmE4YzVmNGQiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzI5MTU2YzMzMzYyODQyZjRhYjA5NjM5MzU4YmJiNDAwLnNldENvbnRlbnQodmVnYV8wZmU4MjdiMzlkN2I0ZGE5Yjk1MWJlYjg2YThjNWY0ZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl81MzVhNTBmNDU1YTY0N2QxOGM4NTMzMTBjZjlkMDMxMi5iaW5kUG9wdXAocG9wdXBfMjkxNTZjMzMzNjI4NDJmNGFiMDk2MzkzNThiYmI0MDApOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTIzOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wODcyODQ0ODI3NTg2MjA2OSwgImNvbCI6IDEyMywgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDM0NTQyMzE0MzM1MDYwNDQ3LCAiY29sIjogMTIzLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwMzA3NjkyMzA3NjkyMzA3NywgImNvbCI6IDEyMywgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDI4MDg5ODg3NjQwNDQ5NDM3LCAiY29sIjogMTIzLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAwNzMyNjAwNzMyNjAwNzMyNiwgImNvbCI6IDEyMywgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTIzLCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjMzNDkxMTI0MjYwMzU1MDMsICJjb2wiOiAxMjMsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuNDEwMzkyMzY0NzkzMjEzMTcsICJjb2wiOiAxMjMsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuODQ1MzM4OTgzMDUwODQ3NCwgImNvbCI6IDEyMywgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC45NDA2Nzc5NjYxMDE2OTUsICJjb2wiOiAxMjMsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuOTQ0MDMzNzkwOTE4NjkwNiwgImNvbCI6IDEyMywgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNjQ0MjEwNTI2MzE1Nzg5NSwgImNvbCI6IDEyMywgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNjgzMTU3ODk0NzM2ODQyMSwgImNvbCI6IDEyMywgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuODIyMjkyMzIzODY5NjEwOSwgImNvbCI6IDEyMywgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuMTg0NDA0NjM2NDU5NDMxLCAiY29sIjogMTIzLCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS4xNTkxMTQ4NTc3NDQ5OTQ4LCAiY29sIjogMTIzLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMS4wODg1MTQyMjU1MDA1MjcsICJjb2wiOiAxMjMsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAxLjA1OTAwOTQ4MzY2NzAxNzksICJjb2wiOiAxMjMsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjYwNjU0MDA4NDM4ODE4NTYsICJjb2wiOiAxMjMsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjU4NzU1Mjc0MjYxNjAzMzksICJjb2wiOiAxMjMsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAxLjE5MDA3MzkxNzYzNDYzNTgsICJjb2wiOiAxMjMsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjg5NTY3OTY2MjgwMjk1MDUsICJjb2wiOiAxMjMsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjYxOTg1MjE2NDczMDcyODYsICJjb2wiOiAxMjMsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjM1LCAiY29sIjogMTIzLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzBmZTgyN2IzOWQ3YjRkYTliOTUxYmViODZhOGM1ZjRkKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZWFlNmFjMzI5NzQ4NGI1OWE5OWZjNWZlYzIzYzZjOGEgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MjQ1NDEsLTk5LjE1NjIwNCksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzE4Y2JlMGU0N2YzNDQwNjNhYzAyNzU1ZWU0YWMxMGU5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2U2ZjYwMzY2OWM2NjQ1ZDhhODA2MjVhMmRhZTNjZDhmID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfZTZmNjAzNjY5YzY2NDVkOGE4MDYyNWEyZGFlM2NkOGYiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzE4Y2JlMGU0N2YzNDQwNjNhYzAyNzU1ZWU0YWMxMGU5LnNldENvbnRlbnQodmVnYV9lNmY2MDM2NjljNjY0NWQ4YTgwNjI1YTJkYWUzY2Q4Zik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9lYWU2YWMzMjk3NDg0YjU5YTk5ZmM1ZmVjMjNjNmM4YS5iaW5kUG9wdXAocG9wdXBfMThjYmUwZTQ3ZjM0NDA2M2FjMDI3NTVlZTRhYzEwZTkpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTI1OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4xNDMzMTg5NjU1MTcyNDEzOCwgImNvbCI6IDEyNSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDE3MjcxMTU3MTY3NTMwMjI0LCAiY29sIjogMTI1LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMjUsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEyNSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTI1LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMjUsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDk1ODU3OTg4MTY1NjgwNDcsICJjb2wiOiAxMjUsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMjkyNjgyOTI2ODI5MjY4MywgImNvbCI6IDEyNSwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC45NDcwMzM4OTgzMDUwODQ4LCAiY29sIjogMTI1LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAxLjE4NDMyMjAzMzg5ODMwNTEsICJjb2wiOiAxMjUsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuOTY5Mzc2OTc5OTM2NjQyMSwgImNvbCI6IDEyNSwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuODM2ODQyMTA1MjYzMTU3OSwgImNvbCI6IDEyNSwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuOTI3MzY4NDIxMDUyNjMxNiwgImNvbCI6IDEyNSwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDEuMTYyOTg2MzMwMTc4NzU5MywgImNvbCI6IDEyNSwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuNzMxMjk2MTAxMTU5MTE0OCwgImNvbCI6IDEyNSwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuNTk5NTc4NTAzNjg4MDkyNywgImNvbCI6IDEyNSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDEuMTcyODEzNDg3ODgxOTgxMSwgImNvbCI6IDEyNSwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDEuMTQ0MzYyNDg2ODI4MjQwMywgImNvbCI6IDEyNSwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDEuODY5MTk4MzEyMjM2Mjg3LCAiY29sIjogMTI1LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS43ODc5NzQ2ODM1NDQzMDM4LCAiY29sIjogMTI1LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMS4zMjYyOTM1NTg2MDYxMjQ2LCAiY29sIjogMTI1LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMS4yMDEyNjQ0ODg5MzU3MjE4LCAiY29sIjogMTI1LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC44OTU0NTkzNDUzMDA5NTA0LCAiY29sIjogMTI1LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC41NTk1NzQ0NjgwODUxMDY0LCAiY29sIjogMTI1LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2U2ZjYwMzY2OWM2NjQ1ZDhhODA2MjVhMmRhZTNjZDhmKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNjM2YWQ3NWU1NmYzNGMyYWEzMTdiZTBhZDUzNDRjYjAgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MjIyODgsLTk5LjE2MjEzOCksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2I4YTA5M2M0Mjc2ZjRmMWI5NTcwNTY1YTRkMDk4NTE5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2RiMDQ4MWFhOGIzZTRjNzZhZTFiNTljOGViYTRmZjQxID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfZGIwNDgxYWE4YjNlNGM3NmFlMWI1OWM4ZWJhNGZmNDEiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2I4YTA5M2M0Mjc2ZjRmMWI5NTcwNTY1YTRkMDk4NTE5LnNldENvbnRlbnQodmVnYV9kYjA0ODFhYThiM2U0Yzc2YWUxYjU5YzhlYmE0ZmY0MSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl82MzZhZDc1ZTU2ZjM0YzJhYTMxN2JlMGFkNTM0NGNiMC5iaW5kUG9wdXAocG9wdXBfYjhhMDkzYzQyNzZmNGYxYjk1NzA1NjVhNGQwOTg1MTkpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTI2OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wNDk1Njg5NjU1MTcyNDEzOCwgImNvbCI6IDEyNiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTI2LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMjYsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEyNiwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTI2LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMjYsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMjk5NDA4Mjg0MDIzNjY4NjUsICJjb2wiOiAxMjYsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuOTU5NzAzMDc1MjkxNjIyNSwgImNvbCI6IDEyNiwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMS42MTk3MDMzODk4MzA1MDg0LCAiY29sIjogMTI2LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAxLjQ0NTk3NDU3NjI3MTE4NjQsICJjb2wiOiAxMjYsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDEuMzg1NDI3NjY2MzE0Njc3OCwgImNvbCI6IDEyNiwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDEuMDg1MjYzMTU3ODk0NzM3LCAiY29sIjogMTI2LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMS4wMDQyMTA1MjYzMTU3ODk0LCAiY29sIjogMTI2LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMS4xOTQ1MzIwNzE1MDM2ODAyLCAiY29sIjogMTI2LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMS4yODM0NTYyNjk3NTc2Mzk3LCAiY29sIjogMTI2LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS4yNzA4MTEzODA0MDA0MjE1LCAiY29sIjogMTI2LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMS40MDg4NTE0MjI1NTAwNTI2LCAiY29sIjogMTI2LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMS4zNDM1MTk0OTQyMDQ0MjU3LCAiY29sIjogMTI2LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS42NDEzNTAyMTA5NzA0NjQsICJjb2wiOiAxMjYsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjc4Nzk3NDY4MzU0NDMwMzgsICJjb2wiOiAxMjYsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAxLjI4NTExMDg3NjQ1MTk1MzQsICJjb2wiOiAxMjYsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjk4NzM1NTExMDY0Mjc4MTksICJjb2wiOiAxMjYsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjU3ODY2OTQ4MjU3NjU1NzYsICJjb2wiOiAxMjYsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjI4NDA0MjU1MzE5MTQ4OTM2LCAiY29sIjogMTI2LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2RiMDQ4MWFhOGIzZTRjNzZhZTFiNTljOGViYTRmZjQxKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNTBhMDMyOWI2YTUyNGUwNWEyYjBiZDVmMWYwYWNkNjggPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MjMzMTgsLTk5LjE1ODMzKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfM2RiNWFkMmUzZDgzNDRjMjg4YmU2YjJhMjc3YzYxYWYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfZTk1ZTgzNzFhOGE3NGNlOTk2YWFhZWJiOTA2OTMyMGYgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9lOTVlODM3MWE4YTc0Y2U5OTZhYWFlYmI5MDY5MzIwZiI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfM2RiNWFkMmUzZDgzNDRjMjg4YmU2YjJhMjc3YzYxYWYuc2V0Q29udGVudCh2ZWdhX2U5NWU4MzcxYThhNzRjZTk5NmFhYWViYjkwNjkzMjBmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzUwYTAzMjliNmE1MjRlMDVhMmIwYmQ1ZjFmMGFjZDY4LmJpbmRQb3B1cChwb3B1cF8zZGI1YWQyZTNkODM0NGMyODhiZTZiMmEyNzdjNjFhZik7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxMjc6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjExMzE0NjU1MTcyNDEzNzkzLCAiY29sIjogMTI3LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAwMTcyNzExNTcxNjc1MzAyMjQsICJjb2wiOiAxMjcsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEyNywgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTI3LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAwMzY2MzAwMzY2MzAwMzY2MywgImNvbCI6IDEyNywgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTI3LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjM3NTE0NzkyODk5NDA4Mjg0LCAiY29sIjogMTI3LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjc3NDEyNTEzMjU1NTY3MzQsICJjb2wiOiAxMjcsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuODY5NzAzMzg5ODMwNTA4NCwgImNvbCI6IDEyNywgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS4xNjg0MzIyMDMzODk4MzA0LCAiY29sIjogMTI3LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjgzNDIxMzMwNTE3NDIzNDQsICJjb2wiOiAxMjcsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjU0OTQ3MzY4NDIxMDUyNjMsICJjb2wiOiAxMjcsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjU3MDUyNjMxNTc4OTQ3MzcsICJjb2wiOiAxMjcsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjc2MzQwNjk0MDA2MzA5MTUsICJjb2wiOiAxMjcsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjEyMDEyNjQ0ODg5MzU3MjMsICJjb2wiOiAxMjcsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjE5ODEwMzI2NjU5NjQxNzMsICJjb2wiOiAxMjcsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjg1MDM2ODgwOTI3MjkxODksICJjb2wiOiAxMjcsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjg2MDkwNjIxNzA3MDYwMDcsICJjb2wiOiAxMjcsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjM1MzM3NTUyNzQyNjE2MDMsICJjb2wiOiAxMjcsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjM2MDc1OTQ5MzY3MDg4NiwgImNvbCI6IDEyNywgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuOTU2NzA1Mzg1NDI3NjY2NCwgImNvbCI6IDEyNywgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuODg0MDg4NTE0MjI1NTAwNSwgImNvbCI6IDEyNywgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuODg0ODk5NjgzMjEwMTM3MiwgImNvbCI6IDEyNywgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuNDY1OTU3NDQ2ODA4NTEwNjQsICJjb2wiOiAxMjcsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfZTk1ZTgzNzFhOGE3NGNlOTk2YWFhZWJiOTA2OTMyMGYpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl83NGQ5OThkYTY4Njg0OTkwODIxODgyMTQxNWFmNjU0YSA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQyMjE0OCwtOTkuMTYwNjQ1KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfY2NhZTQ3NmMzOTI3NGI1NGE4NmRhMDY2YmYwZjlhNWMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfMWY3MjIwYWU5ODU0NDE4NzlhNjMwNzg1NDMyZmVjZjkgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV8xZjcyMjBhZTk4NTQ0MTg3OWE2MzA3ODU0MzJmZWNmOSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfY2NhZTQ3NmMzOTI3NGI1NGE4NmRhMDY2YmYwZjlhNWMuc2V0Q29udGVudCh2ZWdhXzFmNzIyMGFlOTg1NDQxODc5YTYzMDc4NTQzMmZlY2Y5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzc0ZDk5OGRhNjg2ODQ5OTA4MjE4ODIxNDE1YWY2NTRhLmJpbmRQb3B1cChwb3B1cF9jY2FlNDc2YzM5Mjc0YjU0YTg2ZGEwNjZiZjBmOWE1Yyk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxMjg6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjA3MTEyMDY4OTY1NTE3MjQyLCAiY29sIjogMTI4LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMjgsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEyOCwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTI4LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMjgsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEyOCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4xODM0MzE5NTI2NjI3MjE5LCAiY29sIjogMTI4LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAxLjAxMTY2NDg5OTI1NzY4ODIsICJjb2wiOiAxMjgsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDIuMjExODY0NDA2Nzc5NjYxLCAiY29sIjogMTI4LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAyLjMwNjE0NDA2Nzc5NjYxMDMsICJjb2wiOiAxMjgsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDEuODAyNTM0MzE4OTAxNzk1LCAiY29sIjogMTI4LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMS4zMiwgImNvbCI6IDEyOCwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDEuMjA2MzE1Nzg5NDczNjg0MiwgImNvbCI6IDEyOCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDEuNDE5NTU4MzU5NjIxNDUxMiwgImNvbCI6IDEyOCwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDIuMDQ0MjU3MTEyNzUwMjYzMywgImNvbCI6IDEyOCwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuODQyOTkyNjIzODE0NTQxNSwgImNvbCI6IDEyOCwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDEuNTIwNTQ3OTQ1MjA1NDc5NSwgImNvbCI6IDEyOCwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDEuMjk5MjYyMzgxNDU0MTYyMiwgImNvbCI6IDEyOCwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDEuNjQwMjk1MzU4NjQ5Nzg5LCAiY29sIjogMTI4LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS42MzE4NTY1NDAwODQzODgzLCAiY29sIjogMTI4LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMS41NTQzODIyNTk3Njc2ODc1LCAiY29sIjogMTI4LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMS4wMzI2NjU5NjQxNzI4MTM1LCAiY29sIjogMTI4LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC41NTMzMjYyOTM1NTg2MDYxLCAiY29sIjogMTI4LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4zNSwgImNvbCI6IDEyOCwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV8xZjcyMjBhZTk4NTQ0MTg3OWE2MzA3ODU0MzJmZWNmOSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzE5MTlhZjAyNDI3MDQ4NWJhZjkzNDhjNzZkNTZhM2VjID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDIwNiwtOTkuMTYzMzEyKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjE1YTBiN2I5M2IwNDk1Yzg5YTlhOTcwNWI5MzM0OTggPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfYzBiMDRhZDVjYTI5NDE4MmFjYzAwMTE2MDg1NGI2ZWUgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9jMGIwNGFkNWNhMjk0MTgyYWNjMDAxMTYwODU0YjZlZSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjE1YTBiN2I5M2IwNDk1Yzg5YTlhOTcwNWI5MzM0OTguc2V0Q29udGVudCh2ZWdhX2MwYjA0YWQ1Y2EyOTQxODJhY2MwMDExNjA4NTRiNmVlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzE5MTlhZjAyNDI3MDQ4NWJhZjkzNDhjNzZkNTZhM2VjLmJpbmRQb3B1cChwb3B1cF82MTVhMGI3YjkzYjA0OTVjODlhOWE5NzA1YjkzMzQ5OCk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxMjk6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjA1MTcyNDEzNzkzMTAzNDQ4LCAiY29sIjogMTI5LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAwMzQ1NDIzMTQzMzUwNjA0NDcsICJjb2wiOiAxMjksICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEyOSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDI4MDg5ODg3NjQwNDQ5NDM3LCAiY29sIjogMTI5LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMjksICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEyOSwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC41NzA0MTQyMDExODM0MzIsICJjb2wiOiAxMjksICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuOTk1NzU4MjE4NDUxNzQ5NywgImNvbCI6IDEyOSwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMS4xODc1LCAiY29sIjogMTI5LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAxLjgzODk4MzA1MDg0NzQ1NzYsICJjb2wiOiAxMjksICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDEuMzA4MzQyMTMzMDUxNzQyNCwgImNvbCI6IDEyOSwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuOTQsICJjb2wiOiAxMjksICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAxLjEwNDIxMDUyNjMxNTc4OTUsICJjb2wiOiAxMjksICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAxLjE5OTc4OTY5NTA1NzgzNCwgImNvbCI6IDEyOSwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuMzk4MzE0MDE0NzUyMzcxLCAiY29sIjogMTI5LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS4zNjg4MDkyNzI5MTg4NjIsICJjb2wiOiAxMjksICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAxLjE0MTIwMTI2NDQ4ODkzNTgsICJjb2wiOiAxMjksICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAxLjQ2NDY5OTY4Mzg3Nzc2NjIsICJjb2wiOiAxMjksICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjYwNzU5NDkzNjcwODg2MDcsICJjb2wiOiAxMjksICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjM5MzQ1OTkxNTYxMTgxNDQsICJjb2wiOiAxMjksICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAxLjAzMzc5MDkxODY5MDYwMTgsICJjb2wiOiAxMjksICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjY3NDM5NDA5OTA1MTYzMzMsICJjb2wiOiAxMjksICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjQyNDQ5ODQxNjA1MDY4NjQsICJjb2wiOiAxMjksICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjIzNDA0MjU1MzE5MTQ4OTM3LCAiY29sIjogMTI5LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2MwYjA0YWQ1Y2EyOTQxODJhY2MwMDExNjA4NTRiNmVlKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNmUyNThjYzFjODI0NDZiNGI5ZDk5NzRjMzE2M2QxMTMgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MjE1NzYsLTk5LjE1ODAxNSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2E0Y2VkM2IyZTQ0NjQ1MTc4NGY4YzRmOTMxZTU2OTdmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzViMjAwNGM2N2U5ZDRiOGM5N2Y1YjZlOTc2YjE4MmM1ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfNWIyMDA0YzY3ZTlkNGI4Yzk3ZjViNmU5NzZiMTgyYzUiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2E0Y2VkM2IyZTQ0NjQ1MTc4NGY4YzRmOTMxZTU2OTdmLnNldENvbnRlbnQodmVnYV81YjIwMDRjNjdlOWQ0YjhjOTdmNWI2ZTk3NmIxODJjNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl82ZTI1OGNjMWM4MjQ0NmI0YjlkOTk3NGMzMTYzZDExMy5iaW5kUG9wdXAocG9wdXBfYTRjZWQzYjJlNDQ2NDUxNzg0ZjhjNGY5MzFlNTY5N2YpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTMwOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wNTgxODk2NTUxNzI0MTM3OSwgImNvbCI6IDEzMCwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDE3MjcxMTU3MTY3NTMwMjI0LCAiY29sIjogMTMwLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMzAsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEzMCwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTMwLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMzAsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMjE0MjAxMTgzNDMxOTUyNjYsICJjb2wiOiAxMzAsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuNjU1MzU1MjQ5MjA0NjY1OSwgImNvbCI6IDEzMCwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC43NDM2NDQwNjc3OTY2MTAyLCAiY29sIjogMTMwLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAxLjMxMDM4MTM1NTkzMjIwMzMsICJjb2wiOiAxMzAsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDEuMjAzODAxNDc4MzUyNjkyNywgImNvbCI6IDEzMCwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNzUyNjMxNTc4OTQ3MzY4NCwgImNvbCI6IDEzMCwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuODQ5NDczNjg0MjEwNTI2MywgImNvbCI6IDEzMCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDEuMDU5OTM2OTA4NTE3MzUwMiwgImNvbCI6IDEzMCwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuNjQ0ODg5MzU3MjE4MTI0MiwgImNvbCI6IDEzMCwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuNDEwOTU4OTA0MTA5NTg5MSwgImNvbCI6IDEzMCwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDEuMTIyMjMzOTMwNDUzMTA4NiwgImNvbCI6IDEzMCwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDEuMTQ5NjMxMTkwNzI3MDgxLCAiY29sIjogMTMwLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS43Nzg0ODEwMTI2NTgyMjc4LCAiY29sIjogMTMwLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS45OTM2NzA4ODYwNzU5NDkzLCAiY29sIjogMTMwLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMS42MDA4NDQ3NzI5NjcyNjUsICJjb2wiOiAxMzAsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAxLjI1MDc5MDMwNTU4NDgyNjIsICJjb2wiOiAxMzAsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjY2MjA5MDgxMzA5Mzk4MSwgImNvbCI6IDEzMCwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMzIwMjEyNzY1OTU3NDQ2OCwgImNvbCI6IDEzMCwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV81YjIwMDRjNjdlOWQ0YjhjOTdmNWI2ZTk3NmIxODJjNSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyX2M0ZDkyZGU5ODEwMDRkOTI4OTkzYzI5MDNlZjVhMDE3ID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDE5NTc5LC05OS4xNjEzMTQpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mMmQwNGIyZWZjNTk0NmZmOGQ4YmIxNzljYzQzMmU1NiA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV84NWQ4NWViMTkzYmU0ZGE1YTVmZTBjODRhYjE5Zjc3OSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzg1ZDg1ZWIxOTNiZTRkYTVhNWZlMGM4NGFiMTlmNzc5Ij48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mMmQwNGIyZWZjNTk0NmZmOGQ4YmIxNzljYzQzMmU1Ni5zZXRDb250ZW50KHZlZ2FfODVkODVlYjE5M2JlNGRhNWE1ZmUwYzg0YWIxOWY3NzkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfYzRkOTJkZTk4MTAwNGQ5Mjg5OTNjMjkwM2VmNWEwMTcuYmluZFBvcHVwKHBvcHVwX2YyZDA0YjJlZmM1OTQ2ZmY4ZDhiYjE3OWNjNDMyZTU2KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDEzMTogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDMwMTcyNDEzNzkzMTAzNDUsICJjb2wiOiAxMzEsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDAxNzI3MTE1NzE2NzUzMDIyNCwgImNvbCI6IDEzMSwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTMxLCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAwODQyNjk2NjI5MjEzNDgzMSwgImNvbCI6IDEzMSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMDM2NjMwMDM2NjMwMDM2NjMsICJjb2wiOiAxMzEsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEzMSwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4xODQ2MTUzODQ2MTUzODQ2MywgImNvbCI6IDEzMSwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC4yNDkyMDQ2NjU5NTk3MDMxLCAiY29sIjogMTMxLCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAxLjEzNTU5MzIyMDMzODk4MzEsICJjb2wiOiAxMzEsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDEuODE3Nzk2NjEwMTY5NDkxNiwgImNvbCI6IDEzMSwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMS40MTcxMDY2NTI1ODcxMTcyLCAiY29sIjogMTMxLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC45NzE1Nzg5NDczNjg0MjExLCAiY29sIjogMTMxLCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC44NDczNjg0MjEwNTI2MzE1LCAiY29sIjogMTMxLCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMS4wMzk5NTc5MzkwMTE1NjY3LCAiY29sIjogMTMxLCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMS40NTgzNzcyMzkxOTkxNTcsICJjb2wiOiAxMzEsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjMyMTM5MDkzNzgyOTI5NCwgImNvbCI6IDEzMSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDEuMTU5MTE0ODU3NzQ0OTk0OCwgImNvbCI6IDEzMSwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDEuMDAzMTYxMjIyMzM5MzA0NSwgImNvbCI6IDEzMSwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDEuMjU4NDM4ODE4NTY1NDAwNywgImNvbCI6IDEzMSwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDEuNTQ2NDEzNTAyMTA5NzA0NywgImNvbCI6IDEzMSwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuNzk1MTQyNTU1NDM4MjI2LCAiY29sIjogMTMxLCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC41NDg5OTg5NDYyNTkyMjAyLCAiY29sIjogMTMxLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4zMzE1NzMzODk2NTE1MzExNiwgImNvbCI6IDEzMSwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMTM0MDQyNTUzMTkxNDg5MzYsICJjb2wiOiAxMzEsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfODVkODVlYjE5M2JlNGRhNWE1ZmUwYzg0YWIxOWY3NzkpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9jNmRiZTE0NTFiMzU0Y2Q4OWJmMGUwNWNkOWU1MjcwNiA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQyMDY2NywtOTkuMTU2NDUpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jODQzYTQzOTQ5Yjc0ZGE1YjcwM2NiYTQ3MGVjYWUwZiA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV82OTY2NDJiMDI1Zjg0YjI3OGZhMjcyOWVkYTQ2MDI0YyA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzY5NjY0MmIwMjVmODRiMjc4ZmEyNzI5ZWRhNDYwMjRjIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jODQzYTQzOTQ5Yjc0ZGE1YjcwM2NiYTQ3MGVjYWUwZi5zZXRDb250ZW50KHZlZ2FfNjk2NjQyYjAyNWY4NGIyNzhmYTI3MjllZGE0NjAyNGMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfYzZkYmUxNDUxYjM1NGNkODliZjBlMDVjZDllNTI3MDYuYmluZFBvcHVwKHBvcHVwX2M4NDNhNDM5NDliNzRkYTViNzAzY2JhNDcwZWNhZTBmKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDEzMjogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDUxNzI0MTM3OTMxMDM0NDgsICJjb2wiOiAxMzIsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEzMiwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMDMwNzY5MjMwNzY5MjMwNzcsICJjb2wiOiAxMzIsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDAyODA4OTg4NzY0MDQ0OTQzNywgImNvbCI6IDEzMiwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMDM2NjMwMDM2NjMwMDM2NjMsICJjb2wiOiAxMzIsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEzMiwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wNDYxNTM4NDYxNTM4NDYxNTYsICJjb2wiOiAxMzIsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuNDEyNTEzMjU1NTY3MzM4MjYsICJjb2wiOiAxMzIsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuNTIyMjQ1NzYyNzExODY0NCwgImNvbCI6IDEzMiwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS4yODA3MjAzMzg5ODMwNTA4LCAiY29sIjogMTMyLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjg1NzQ0NDU2MTc3NDAyMzMsICJjb2wiOiAxMzIsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjU1NDczNjg0MjEwNTI2MzIsICJjb2wiOiAxMzIsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjU2ODQyMTA1MjYzMTU3ODksICJjb2wiOiAxMzIsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjcwNTU3MzA4MDk2NzQwMjgsICJjb2wiOiAxMzIsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjE3MDcwNjAwNjMyMjQ0NDYsICJjb2wiOiAxMzIsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjkxODg2MTk1OTk1Nzg1MDQsICJjb2wiOiAxMzIsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjc4MDgyMTkxNzgwODIxOTIsICJjb2wiOiAxMzIsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjc3MTMzODI1MDc5MDMwNTYsICJjb2wiOiAxMzIsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjIxNDEzNTAyMTA5NzA0NjUsICJjb2wiOiAxMzIsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjQwNDAwODQzODgxODU2NTQsICJjb2wiOiAxMzIsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAxLjAxMDU1OTY2MjA5MDgxMywgImNvbCI6IDEzMiwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuNzc4NzE0NDM2MjQ4NjgyOSwgImNvbCI6IDEzMiwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuNTU1NDM4MjI1OTc2NzY4NywgImNvbCI6IDEzMiwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMjU2MzgyOTc4NzIzNDA0MjYsICJjb2wiOiAxMzIsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfNjk2NjQyYjAyNWY4NGIyNzhmYTI3MjllZGE0NjAyNGMpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9lOTllMGQwMDgxMjA0ZmI2Yjc1MjUzMTRmNTFkZTI5NyA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQyMTEzOCwtOTkuMTU0NzI1KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOGE0YjQ2NjlkOWQ4NGE1YmJjM2ExZjJiNjZjNTZmNTQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfMWI4ZDUyZWEyNGFhNDcyYWJhZWFmNjdjOTMzNDQ5YTUgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV8xYjhkNTJlYTI0YWE0NzJhYmFlYWY2N2M5MzM0NDlhNSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOGE0YjQ2NjlkOWQ4NGE1YmJjM2ExZjJiNjZjNTZmNTQuc2V0Q29udGVudCh2ZWdhXzFiOGQ1MmVhMjRhYTQ3MmFiYWVhZjY3YzkzMzQ0OWE1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2U5OWUwZDAwODEyMDRmYjZiNzUyNTMxNGY1MWRlMjk3LmJpbmRQb3B1cChwb3B1cF84YTRiNDY2OWQ5ZDg0YTViYmMzYTFmMmI2NmM1NmY1NCk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxMzM6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjA5NDgyNzU4NjIwNjg5NjU1LCAiY29sIjogMTMzLCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAwMTcyNzExNTcxNjc1MzAyMjQsICJjb2wiOiAxMzMsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMDAzMDc2OTIzMDc2OTIzMDc3LCAiY29sIjogMTMzLCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMzMsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEzMywgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTMzLCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjE2ODA0NzMzNzI3ODEwNjUsICJjb2wiOiAxMzMsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMjM5NjYwNjU3NDc2MTQsICJjb2wiOiAxMzMsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuNDM5NjE4NjQ0MDY3Nzk2NiwgImNvbCI6IDEzMywgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC41NDk3ODgxMzU1OTMyMjA0LCAiY29sIjogMTMzLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjQ4NDY4ODQ4OTk2ODMyMTAzLCAiY29sIjogMTMzLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC41MDQyMTA1MjYzMTU3ODk0LCAiY29sIjogMTMzLCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC41NCwgImNvbCI6IDEzMywgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuNzYwMjUyMzY1OTMwNTk5NCwgImNvbCI6IDEzMywgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDAuODQ1MTAwMTA1Mzc0MDc4LCAiY29sIjogMTMzLCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMC44NzQ2MDQ4NDcyMDc1ODY5LCAiY29sIjogMTMzLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC44ODkzNTcyMTgxMjQzNDE0LCAiY29sIjogMTMzLCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC43MjM5MTk5MTU3MDA3Mzc3LCAiY29sIjogMTMzLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS4yOTUzNTg2NDk3ODkwMjk1LCAiY29sIjogMTMzLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS40ODUyMzIwNjc1MTA1NDg2LCAiY29sIjogMTMzLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMS4yMzIzMTI1NjU5OTc4ODgsICJjb2wiOiAxMzMsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjkyMzA3NjkyMzA3NjkyMzEsICJjb2wiOiAxMzMsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjU5ODczMjg0MDU0OTEwMjUsICJjb2wiOiAxMzMsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjMxNzAyMTI3NjU5NTc0NDcsICJjb2wiOiAxMzMsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfMWI4ZDUyZWEyNGFhNDcyYWJhZWFmNjdjOTMzNDQ5YTUpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl83ZjJjMmQyNmMwNjk0MmRlYWE4NGZlMzJkY2QzZDQyNiA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQxOTIyNSwtOTkuMTU1MDk5KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjQ0ODIyMjkwNTc3NGRhY2E3MWQyY2E1MWU0ODI5NDYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfNWUxZjEzY2Y2NjM0NDQxNGJlY2IxZTNjZDgzODNjZTQgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV81ZTFmMTNjZjY2MzQ0NDE0YmVjYjFlM2NkODM4M2NlNCI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMjQ0ODIyMjkwNTc3NGRhY2E3MWQyY2E1MWU0ODI5NDYuc2V0Q29udGVudCh2ZWdhXzVlMWYxM2NmNjYzNDQ0MTRiZWNiMWUzY2Q4MzgzY2U0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzdmMmMyZDI2YzA2OTQyZGVhYTg0ZmUzMmRjZDNkNDI2LmJpbmRQb3B1cChwb3B1cF8yNDQ4MjIyOTA1Nzc0ZGFjYTcxZDJjYTUxZTQ4Mjk0Nik7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxMzU6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjExNDIyNDEzNzkzMTAzNDQ5LCAiY29sIjogMTM1LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAwMzQ1NDIzMTQzMzUwNjA0NDcsICJjb2wiOiAxMzUsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEzNSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDI4MDg5ODg3NjQwNDQ5NDM3LCAiY29sIjogMTM1LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAwMzY2MzAwMzY2MzAwMzY2MywgImNvbCI6IDEzNSwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTM1LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjE4OTM0OTExMjQyNjAzNTUsICJjb2wiOiAxMzUsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuNDE4ODc1OTI3ODg5NzEzNywgImNvbCI6IDEzNSwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC41NTkzMjIwMzM4OTgzMDUsICJjb2wiOiAxMzUsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDAuNzU4NDc0NTc2MjcxMTg2NCwgImNvbCI6IDEzNSwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC42ODk1NDU5MzQ1MzAwOTUsICJjb2wiOiAxMzUsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjY3Njg0MjEwNTI2MzE1NzksICJjb2wiOiAxMzUsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjc4MTA1MjYzMTU3ODk0NzMsICJjb2wiOiAxMzUsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjg3ODAyMzEzMzU0MzYzODMsICJjb2wiOiAxMzUsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjMxNTA2ODQ5MzE1MDY4NDksICJjb2wiOiAxMzUsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjM2MjQ4NjgyODI0MDI1MywgImNvbCI6IDEzNSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDEuMDI2MzQzNTE5NDk0MjA0MywgImNvbCI6IDEzNSwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDEuMjQ4NjgyODI0MDI1Mjg5OSwgImNvbCI6IDEzNSwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDIuNDA3MTcyOTk1NzgwNTkwNSwgImNvbCI6IDEzNSwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDIuNzE4MzU0NDMwMzc5NzQ2NywgImNvbCI6IDEzNSwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDIuMjg1MTEwODc2NDUxOTUzNywgImNvbCI6IDEzNSwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDEuNDM0MTQxMjAxMjY0NDg5LCAiY29sIjogMTM1LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMS4wNjQ0MTM5Mzg3NTM5NiwgImNvbCI6IDEzNSwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuNDY5MTQ4OTM2MTcwMjEyNzUsICJjb2wiOiAxMzUsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfNWUxZjEzY2Y2NjM0NDQxNGJlY2IxZTNjZDgzODNjZTQpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9hZWI4MGUwNjQwNmQ0N2Q1YmFkMDllM2QxYzQzNzM1NiA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQxNzcxNSwtOTkuMTYyNzI5KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMGQ1NTFmMGRiZjFmNDYyZmFhMTIxZDk5ZTFkZGMwYjAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfZTk3OTJiY2I0NzQwNDE4YWFjMWUzZGRkZTA5NGZkNmQgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9lOTc5MmJjYjQ3NDA0MThhYWMxZTNkZGRlMDk0ZmQ2ZCI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMGQ1NTFmMGRiZjFmNDYyZmFhMTIxZDk5ZTFkZGMwYjAuc2V0Q29udGVudCh2ZWdhX2U5NzkyYmNiNDc0MDQxOGFhYzFlM2RkZGUwOTRmZDZkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2FlYjgwZTA2NDA2ZDQ3ZDViYWQwOWUzZDFjNDM3MzU2LmJpbmRQb3B1cChwb3B1cF8wZDU1MWYwZGJmMWY0NjJmYWExMjFkOTllMWRkYzBiMCk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxMzY6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjE1MDg2MjA2ODk2NTUxNzI0LCAiY29sIjogMTM2LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAwMzQ1NDIzMTQzMzUwNjA0NDcsICJjb2wiOiAxMzYsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEzNiwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDU2MTc5Nzc1MjgwODk4ODc1LCAiY29sIjogMTM2LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAwMzY2MzAwMzY2MzAwMzY2MywgImNvbCI6IDEzNiwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTM2LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjc5NTI2NjI3MjE4OTM0OTEsICJjb2wiOiAxMzYsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuODA2OTk4OTM5NTU0NjEzLCAiY29sIjogMTM2LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAyLjIwNzYyNzExODY0NDA2OCwgImNvbCI6IDEzNiwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMi41NDAyNTQyMzcyODgxMzU0LCAiY29sIjogMTM2LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAxLjkwNjAxOTAwNzM5MTc2MzYsICJjb2wiOiAxMzYsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAxLjY1NDczNjg0MjEwNTI2MywgImNvbCI6IDEzNiwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDEuNjI2MzE1Nzg5NDczNjg0MiwgImNvbCI6IDEzNiwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDIuMDQ0MTY0MDM3ODU0ODg5OCwgImNvbCI6IDEzNiwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDIuODEzNDg3ODgxOTgxMDMyNSwgImNvbCI6IDEzNiwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDIuNTIxNjAxNjg1OTg1MjQ3NywgImNvbCI6IDEzNiwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDIuMjI3NjA4MDA4NDI5OTI2LCAiY29sIjogMTM2LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMS44Nzk4NzM1NTExMDY0Mjc3LCAiY29sIjogMTM2LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMi41ODc1NTI3NDI2MTYwMzM2LCAiY29sIjogMTM2LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMi43NzAwNDIxOTQwOTI4MjcsICJjb2wiOiAxMzYsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAyLjA3NDk3MzYwMDg0NDc3MywgImNvbCI6IDEzNiwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDEuMzYwMzc5MzQ2NjgwNzE2NiwgImNvbCI6IDEzNiwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuODQ0NzcyOTY3MjY1MDQ3NSwgImNvbCI6IDEzNiwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuNDI5Nzg3MjM0MDQyNTUzMiwgImNvbCI6IDEzNiwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9lOTc5MmJjYjQ3NDA0MThhYWMxZTNkZGRlMDk0ZmQ2ZCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzg5NmE5YmZmMjc5YjQ4NDRiNTJjMzQ2ODk5MDU1MDgxID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDE4Nzc0LC05OS4xNTcwODEpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80NGMyNGI2MWY1ZDk0OTVmYTg2YmRiNTU0NmNmZGU5NyA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV9jMjM3NmZiMTU4YTI0NTliYTdkYTE1ZDgwZjAwMzRkNSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhX2MyMzc2ZmIxNThhMjQ1OWJhN2RhMTVkODBmMDAzNGQ1Ij48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80NGMyNGI2MWY1ZDk0OTVmYTg2YmRiNTU0NmNmZGU5Ny5zZXRDb250ZW50KHZlZ2FfYzIzNzZmYjE1OGEyNDU5YmE3ZGExNWQ4MGYwMDM0ZDUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfODk2YTliZmYyNzliNDg0NGI1MmMzNDY4OTkwNTUwODEuYmluZFBvcHVwKHBvcHVwXzQ0YzI0YjYxZjVkOTQ5NWZhODZiZGI1NTQ2Y2ZkZTk3KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDEzNzogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMTIyODQ0ODI3NTg2MjA2ODksICJjb2wiOiAxMzcsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDA2OTA4NDYyODY3MDEyMDg5NSwgImNvbCI6IDEzNywgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMTIzMDc2OTIzMDc2OTIzMDgsICJjb2wiOiAxMzcsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDExMjM1OTU1MDU2MTc5Nzc1LCAiY29sIjogMTM3LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAxODMxNTAxODMxNTAxODMxNiwgImNvbCI6IDEzNywgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTM3LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjA3NjkyMzA3NjkyMzA3NjkzLCAiY29sIjogMTM3LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjI3MDQxMzU3MzcwMDk1NDQsICJjb2wiOiAxMzcsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuNjM3NzExODY0NDA2Nzc5NiwgImNvbCI6IDEzNywgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS40MjI2Njk0OTE1MjU0MjM3LCAiY29sIjogMTM3LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAxLjMwMjAwNjMzNTc5NzI1NDQsICJjb2wiOiAxMzcsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAxLjEsICJjb2wiOiAxMzcsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAxLjI2NzM2ODQyMTA1MjYzMTUsICJjb2wiOiAxMzcsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAxLjI5OTY4NDU0MjU4Njc1MDcsICJjb2wiOiAxMzcsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAyLjA2MzIyNDQ0Njc4NjA5MDcsICJjb2wiOiAxMzcsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAyLjA1Nzk1NTc0Mjg4NzI0OTcsICJjb2wiOiAxMzcsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAxLjU1MzIxMzkwOTM3ODI5MjgsICJjb2wiOiAxMzcsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAxLjU2Mzc1MTMxNzE3NTk3NDcsICJjb2wiOiAxMzcsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAyLjAyODQ4MTAxMjY1ODIyOCwgImNvbCI6IDEzNywgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDIuMzg4MTg1NjU0MDA4NDM5LCAiY29sIjogMTM3LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMi4yODQwNTQ5MTAyNDI4NzI0LCAiY29sIjogMTM3LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMS44NDQwNDYzNjQ1OTQzMDk3LCAiY29sIjogMTM3LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMS4zMDA5NTAzNjk1ODgxNzMyLCAiY29sIjogMTM3LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC42MTkxNDg5MzYxNzAyMTI3LCAiY29sIjogMTM3LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2MyMzc2ZmIxNThhMjQ1OWJhN2RhMTVkODBmMDAzNGQ1KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfYWQ1NGYxOWI2MGQ1NDg0NWI4M2NlY2Q5OWZhZDJmMzAgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MTc3MDIsLTk5LjE1NTMxMyksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2JhZDQyNGI5ZDlmNzQwZTBhMDBhMGNlYWQyNjY4MzIxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzA0ZGY0NDUzOWU1MTRiYjc5MmJhMGZlMDEwODI0YjVmID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfMDRkZjQ0NTM5ZTUxNGJiNzkyYmEwZmUwMTA4MjRiNWYiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2JhZDQyNGI5ZDlmNzQwZTBhMDBhMGNlYWQyNjY4MzIxLnNldENvbnRlbnQodmVnYV8wNGRmNDQ1MzllNTE0YmI3OTJiYTBmZTAxMDgyNGI1Zik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9hZDU0ZjE5YjYwZDU0ODQ1YjgzY2VjZDk5ZmFkMmYzMC5iaW5kUG9wdXAocG9wdXBfYmFkNDI0YjlkOWY3NDBlMGEwMGEwY2VhZDI2NjgzMjEpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTM4OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wNzY1MDg2MjA2ODk2NTUxNywgImNvbCI6IDEzOCwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTM4LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwMzA3NjkyMzA3NjkyMzA3NywgImNvbCI6IDEzOCwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTM4LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMzgsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDEzOCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wMjI0ODUyMDcxMDA1OTE3MTYsICJjb2wiOiAxMzgsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMTc3MDk0Mzc5NjM5NDQ4NTcsICJjb2wiOiAxMzgsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuMjA3NjI3MTE4NjQ0MDY3OCwgImNvbCI6IDEzOCwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC40MzUzODEzNTU5MzIyMDM0LCAiY29sIjogMTM4LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjQ5MTAyNDI4NzIyMjgwODksICJjb2wiOiAxMzgsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjQ0ODQyMTA1MjYzMTU3ODk0LCAiY29sIjogMTM4LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC41MDg0MjEwNTI2MzE1NzksICJjb2wiOiAxMzgsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjQ4NTgwNDQxNjQwMzc4NTQ3LCAiY29sIjogMTM4LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMC43NTc2Mzk2MjA2NTMzMTkyLCAiY29sIjogMTM4LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMC43ODYwOTA2MjE3MDcwNiwgImNvbCI6IDEzOCwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuODQ2MTUzODQ2MTUzODQ2MSwgImNvbCI6IDEzOCwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuODY2MTc0OTIwOTY5NDQxNSwgImNvbCI6IDEzOCwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDEuMjAwNDIxOTQwOTI4MjcwMSwgImNvbCI6IDEzOCwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDEuMjE1MTg5ODczNDE3NzIxNiwgImNvbCI6IDEzOCwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuOTQ4MjU3NjU1NzU1MDE1OSwgImNvbCI6IDEzOCwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuNjY1OTY0MTcyODEzNDg3OSwgImNvbCI6IDEzOCwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuNTAxNTgzOTQ5MzEzNjIxOSwgImNvbCI6IDEzOCwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMzQxNDg5MzYxNzAyMTI3NywgImNvbCI6IDEzOCwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV8wNGRmNDQ1MzllNTE0YmI3OTJiYTBmZTAxMDgyNGI1Zik7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzdmMTcxOWQ4ZDI1YjQxOTdhOTVhMjgzMjljYWFkYTk0ID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDE2MTI4LC05OS4xNjIwOTcpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82MjE2ZDk2YmMxNzg0YjE2YTI5NTZjN2M0MzI4Mzc4OSA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV9mMTg4YzExMzBiMzc0YzQ5YjJjMDEyNzQwZDZjZTE4MCA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhX2YxODhjMTEzMGIzNzRjNDliMmMwMTI3NDBkNmNlMTgwIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82MjE2ZDk2YmMxNzg0YjE2YTI5NTZjN2M0MzI4Mzc4OS5zZXRDb250ZW50KHZlZ2FfZjE4OGMxMTMwYjM3NGM0OWIyYzAxMjc0MGQ2Y2UxODApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfN2YxNzE5ZDhkMjViNDE5N2E5NWEyODMyOWNhYWRhOTQuYmluZFBvcHVwKHBvcHVwXzYyMTZkOTZiYzE3ODRiMTZhMjk1NmM3YzQzMjgzNzg5KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDEzOTogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMTYxNjM3OTMxMDM0NDgyNzYsICJjb2wiOiAxMzksICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDA2OTA4NDYyODY3MDEyMDg5NSwgImNvbCI6IDEzOSwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTM5LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMzksICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMDE4MzE1MDE4MzE1MDE4MzE2LCAiY29sIjogMTM5LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxMzksICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMTkwNTMyNTQ0Mzc4Njk4MjQsICJjb2wiOiAxMzksICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuODU1Nzc5NDI3MzU5NDkxLCAiY29sIjogMTM5LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAxLjY5NDkxNTI1NDIzNzI4OCwgImNvbCI6IDEzOSwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMi41OTAwNDIzNzI4ODEzNTYsICJjb2wiOiAxMzksICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDEuNjIzMDIwMDYzMzU3OTcyNiwgImNvbCI6IDEzOSwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDEuNDkzNjg0MjEwNTI2MzE1NywgImNvbCI6IDEzOSwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDEuMzEwNTI2MzE1Nzg5NDczOCwgImNvbCI6IDEzOSwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDEuNTIzNjU5MzA1OTkzNjkxLCAiY29sIjogMTM5LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMi4zMzI5ODIwODY0MDY3NDQsICJjb2wiOiAxMzksICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAyLjE0ODU3NzQ0OTk0NzMxMywgImNvbCI6IDEzOSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDEuODE0NTQxNjIyNzYwODAwOSwgImNvbCI6IDEzOSwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDEuNzgyOTI5Mzk5MzY3NzU1NSwgImNvbCI6IDEzOSwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDIuMzUzMzc1NTI3NDI2MTYwMywgImNvbCI6IDEzOSwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDIuMzQ1OTkxNTYxMTgxNDM1LCAiY29sIjogMTM5LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMS43OTUxNDI1NTU0MzgyMjU5LCAiY29sIjogMTM5LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMS4xNTI3OTI0MTMwNjYzODU2LCAiY29sIjogMTM5LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC43OTE5NzQ2NTY4MTA5ODIsICJjb2wiOiAxMzksICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjQ1NDI1NTMxOTE0ODkzNjIsICJjb2wiOiAxMzksICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfZjE4OGMxMTMwYjM3NGM0OWIyYzAxMjc0MGQ2Y2UxODApOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl85MDllYjg2MGNkY2Q0M2QzYTMyZmI5NDdlOWI3ZjFkNCA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQxNjYwNSwtOTkuMTU2ODUzKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZGI0N2E1MzI4ZGU2NDIzMDk1Njk1NThhYTJjNzg4ZjggPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfYWNmZDU1YmEwNzUwNGRlMjg0NWE2NmJlZWQzMDAxYzUgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9hY2ZkNTViYTA3NTA0ZGUyODQ1YTY2YmVlZDMwMDFjNSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZGI0N2E1MzI4ZGU2NDIzMDk1Njk1NThhYTJjNzg4Zjguc2V0Q29udGVudCh2ZWdhX2FjZmQ1NWJhMDc1MDRkZTI4NDVhNjZiZWVkMzAwMWM1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzkwOWViODYwY2RjZDQzZDNhMzJmYjk0N2U5YjdmMWQ0LmJpbmRQb3B1cChwb3B1cF9kYjQ3YTUzMjhkZTY0MjMwOTU2OTU1OGFhMmM3ODhmOCk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxNDA6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjExMDk5MTM3OTMxMDM0NDgzLCAiY29sIjogMTQwLCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAwMTcyNzExNTcxNjc1MzAyMjQsICJjb2wiOiAxNDAsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE0MCwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDU2MTc5Nzc1MjgwODk4ODc1LCAiY29sIjogMTQwLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNDAsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE0MCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wODE2NTY4MDQ3MzM3Mjc4MSwgImNvbCI6IDE0MCwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC4xNjAxMjcyNTM0NDY0NDc1MiwgImNvbCI6IDE0MCwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC40OTM2NDQwNjc3OTY2MTAyLCAiY29sIjogMTQwLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjgzNzkyMzcyODgxMzU1OTQsICJjb2wiOiAxNDAsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDEuMTEyOTg4Mzg0MzcxNzAwMSwgImNvbCI6IDE0MCwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNzc1Nzg5NDczNjg0MjEwNSwgImNvbCI6IDE0MCwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuODAyMTA1MjYzMTU3ODk0OCwgImNvbCI6IDE0MCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuODQ5NjMxOTY2MzUxMjA5MywgImNvbCI6IDE0MCwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuMTgxMjQzNDE0MTIwMTI2NSwgImNvbCI6IDE0MCwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuMjkzOTkzNjc3NTU1MzIxNCwgImNvbCI6IDE0MCwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDEuMDYwMDYzMjI0NDQ2Nzg2LCAiY29sIjogMTQwLCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC45NzQ3MTAyMjEyODU1NjM3LCAiY29sIjogMTQwLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS4zOTAyOTUzNTg2NDk3ODksICJjb2wiOiAxNDAsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjYxODE0MzQ1OTkxNTYxMTcsICJjb2wiOiAxNDAsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAxLjE3NzQwMjMyMzEyNTY2LCAiY29sIjogMTQwLCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC45MDA5NDgzNjY3MDE3OTEzLCAiY29sIjogMTQwLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC41NTQzODIyNTk3Njc2ODc0LCAiY29sIjogMTQwLCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4zMzkzNjE3MDIxMjc2NTk2LCAiY29sIjogMTQwLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2FjZmQ1NWJhMDc1MDRkZTI4NDVhNjZiZWVkMzAwMWM1KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZGEyOTJlYWVhMWY3NDNlODg4NjMzNWZmY2IyMWU4ZWIgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MTMyMzIsLTk5LjE2NDEyMSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Y3ZThiZmJhYzcwMDQwMDc4ZGFkNzI1MDNjM2JhNzE3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2E1YmFiY2Q2ZTU2MTQ4NThhZDAxNDY0ZDlhNzRiYzViID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfYTViYWJjZDZlNTYxNDg1OGFkMDE0NjRkOWE3NGJjNWIiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Y3ZThiZmJhYzcwMDQwMDc4ZGFkNzI1MDNjM2JhNzE3LnNldENvbnRlbnQodmVnYV9hNWJhYmNkNmU1NjE0ODU4YWQwMTQ2NGQ5YTc0YmM1Yik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9kYTI5MmVhZWExZjc0M2U4ODg2MzM1ZmZjYjIxZThlYi5iaW5kUG9wdXAocG9wdXBfZjdlOGJmYmFjNzAwNDAwNzhkYWQ3MjUwM2MzYmE3MTcpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTQyOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4xMTYzNzkzMTAzNDQ4Mjc1OCwgImNvbCI6IDE0MiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTQyLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwMzA3NjkyMzA3NjkyMzA3NywgImNvbCI6IDE0MiwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTQyLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNDIsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE0MiwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC41NTM4NDYxNTM4NDYxNTM5LCAiY29sIjogMTQyLCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjc2NjcwMjAxNDg0NjIzNTUsICJjb2wiOiAxNDIsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDEuNTEwNTkzMjIwMzM4OTgzMSwgImNvbCI6IDE0MiwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS41MDIxMTg2NDQwNjc3OTY3LCAiY29sIjogMTQyLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjk4MzEwNDU0MDY1NDY5OTEsICJjb2wiOiAxNDIsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAxLjAzODk0NzM2ODQyMTA1MjYsICJjb2wiOiAxNDIsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAxLjAxODk0NzM2ODQyMTA1MjYsICJjb2wiOiAxNDIsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAxLjIwODIwMTg5Mjc0NDQ3OTUsICJjb2wiOiAxNDIsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAyLjAwMzE2MTIyMjMzOTMwNDcsICJjb2wiOiAxNDIsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjY0OTEwNDMyMDMzNzE5NzEsICJjb2wiOiAxNDIsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAxLjI0MzQxNDEyMDEyNjQ0ODgsICJjb2wiOiAxNDIsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAxLjMyOTgyMDg2NDA2NzQzOTQsICJjb2wiOiAxNDIsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjg2MDc1OTQ5MzY3MDg4NiwgImNvbCI6IDE0MiwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDEuOTEyNDQ3MjU3MzgzOTY2MSwgImNvbCI6IDE0MiwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDEuNjYxMDM0ODQ2ODg0ODk5NywgImNvbCI6IDE0MiwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDEuMDMyNjY1OTY0MTcyODEzNSwgImNvbCI6IDE0MiwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuNjQwOTcxNDg4OTEyMzU0OCwgImNvbCI6IDE0MiwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMzk0NjgwODUxMDYzODI5OCwgImNvbCI6IDE0MiwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9hNWJhYmNkNmU1NjE0ODU4YWQwMTQ2NGQ5YTc0YmM1Yik7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzYyMzc1ZjJlYjE1MzRlOWU4YmVjMDBiNmEwNzVmYzVlID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDE0MzAzLC05OS4xNTc1NDIpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82NmUyYzFhOWJiYTU0NzFkOTMwODQwNzZlZjZhNTk1MCA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV9jZWJhMGQ4OTY5Mjc0MmFiYWNkNjlmZjNhODNlMjU1YiA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhX2NlYmEwZDg5NjkyNzQyYWJhY2Q2OWZmM2E4M2UyNTViIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82NmUyYzFhOWJiYTU0NzFkOTMwODQwNzZlZjZhNTk1MC5zZXRDb250ZW50KHZlZ2FfY2ViYTBkODk2OTI3NDJhYmFjZDY5ZmYzYTgzZTI1NWIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNjIzNzVmMmViMTUzNGU5ZThiZWMwMGI2YTA3NWZjNWUuYmluZFBvcHVwKHBvcHVwXzY2ZTJjMWE5YmJhNTQ3MWQ5MzA4NDA3NmVmNmE1OTUwKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDE0MzogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMTE0MjI0MTM3OTMxMDM0NDksICJjb2wiOiAxNDMsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDAxNzI3MTE1NzE2NzUzMDIyNCwgImNvbCI6IDE0MywgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTQzLCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAwMjgwODk4ODc2NDA0NDk0MzcsICJjb2wiOiAxNDMsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE0MywgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTQzLCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjEzNDkxMTI0MjYwMzU1MDMsICJjb2wiOiAxNDMsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMTcxNzkyMTUyNzA0MTM1NzMsICJjb2wiOiAxNDMsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuNTIzMzA1MDg0NzQ1NzYyOCwgImNvbCI6IDE0MywgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC43NTIxMTg2NDQwNjc3OTY2LCAiY29sIjogMTQzLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjU2NTk5Nzg4ODA2NzU4MTksICJjb2wiOiAxNDMsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjU1MDUyNjMxNTc4OTQ3MzYsICJjb2wiOiAxNDMsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjYwMTA1MjYzMTU3ODk0NzQsICJjb2wiOiAxNDMsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjgwNzU3MDk3NzkxNzk4MSwgImNvbCI6IDE0MywgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuMDUyNjg3MDM4OTg4NDA4OSwgImNvbCI6IDE0MywgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuMTU1OTUzNjM1NDA1NjkwMywgImNvbCI6IDE0MywgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuOTkzNjc3NTU1MzIxMzkwOSwgImNvbCI6IDE0MywgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuOTg1MjQ3NjI5MDgzMjQ1NSwgImNvbCI6IDE0MywgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDEuMjYzNzEzMDgwMTY4Nzc2NCwgImNvbCI6IDE0MywgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDIuMDA5NDkzNjcwODg2MDc2LCAiY29sIjogMTQzLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMS4zMzM2ODUzMjIwNjk2OTM4LCAiY29sIjogMTQzLCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC45NjYyODAyOTUwNDc0MTgzLCAiY29sIjogMTQzLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC41NzAyMjE3NTI5MDM5MDcxLCAiY29sIjogMTQzLCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4zNDM2MTcwMjEyNzY1OTU3NywgImNvbCI6IDE0MywgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9jZWJhMGQ4OTY5Mjc0MmFiYWNkNjlmZjNhODNlMjU1Yik7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyX2I2ZDU5ZTI0MjhlYTQzZmU5ZjcwY2FkMmIxYjliYTY5ID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDE1MTkyLC05OS4xNTQ4MzcpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wY2I2MmZlMjllNjg0ZGQ3ODJkZTIyMzU4ZGI1MTM3ZiA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV84OTg5MWYwZmE5YmU0NGZmYWEzZWZiYTRmZTIyNTQyMSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzg5ODkxZjBmYTliZTQ0ZmZhYTNlZmJhNGZlMjI1NDIxIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wY2I2MmZlMjllNjg0ZGQ3ODJkZTIyMzU4ZGI1MTM3Zi5zZXRDb250ZW50KHZlZ2FfODk4OTFmMGZhOWJlNDRmZmFhM2VmYmE0ZmUyMjU0MjEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfYjZkNTllMjQyOGVhNDNmZTlmNzBjYWQyYjFiOWJhNjkuYmluZFBvcHVwKHBvcHVwXzBjYjYyZmUyOWU2ODRkZDc4MmRlMjIzNThkYjUxMzdmKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDE0NDogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMTU2MjUsICJjb2wiOiAxNDQsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDA1MTgxMzQ3MTUwMjU5MDY3NiwgImNvbCI6IDE0NCwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMDMwNzY5MjMwNzY5MjMwNzcsICJjb2wiOiAxNDQsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE0NCwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMDM2NjMwMDM2NjMwMDM2NjMsICJjb2wiOiAxNDQsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE0NCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4yMTg5MzQ5MTEyNDI2MDM1NiwgImNvbCI6IDE0NCwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC40MzE2MDEyNzI1MzQ0NjQ0NSwgImNvbCI6IDE0NCwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC43ODgxMzU1OTMyMjAzMzksICJjb2wiOiAxNDQsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDAuNTc0MTUyNTQyMzcyODgxNCwgImNvbCI6IDE0NCwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC40NTQwNjU0Njk5MDQ5NjMwNSwgImNvbCI6IDE0NCwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNjgyMTA1MjYzMTU3ODk0OCwgImNvbCI6IDE0NCwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNjUwNTI2MzE1Nzg5NDczNywgImNvbCI6IDE0NCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuNzU3MDk3NzkxNzk4MTA3MiwgImNvbCI6IDE0NCwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuMzk2MjA2NTMzMTkyODM0NiwgImNvbCI6IDE0NCwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuMjAwMjEwNzQ4MTU1OTUzNiwgImNvbCI6IDE0NCwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuOTgxMDMyNjY1OTY0MTcyOCwgImNvbCI6IDE0NCwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDEuMTAyMjEyODU1NjM3NTEzMywgImNvbCI6IDE0NCwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDEuNTQzMjQ4OTQ1MTQ3Njc5NCwgImNvbCI6IDE0NCwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDIuMTU0MDA4NDM4ODE4NTY1LCAiY29sIjogMTQ0LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMS41MzExNTEwMDMxNjc4OTg1LCAiY29sIjogMTQ0LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMS4xNTI3OTI0MTMwNjYzODU2LCAiY29sIjogMTQ0LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC42MzI1MjM3NTkyMzk3MDQzLCAiY29sIjogMTQ0LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4zMzkzNjE3MDIxMjc2NTk2LCAiY29sIjogMTQ0LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzg5ODkxZjBmYTliZTQ0ZmZhYTNlZmJhNGZlMjI1NDIxKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfM2EwNDQyOGZlMDVlNDBlNjk3NDY1ZTc4MjYwNWJiM2UgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MTI4NiwtOTkuMTYwNjYxKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZmUzNzJmOTlmMzUzNDk0Y2IzM2E1N2E5NDRhMTNjYjAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfYmMwZjNmNWYzMjcxNGZiMmEzYmEyMWJlMWI1NTVmYzIgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9iYzBmM2Y1ZjMyNzE0ZmIyYTNiYTIxYmUxYjU1NWZjMiI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZmUzNzJmOTlmMzUzNDk0Y2IzM2E1N2E5NDRhMTNjYjAuc2V0Q29udGVudCh2ZWdhX2JjMGYzZjVmMzI3MTRmYjJhM2JhMjFiZTFiNTU1ZmMyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzNhMDQ0MjhmZTA1ZTQwZTY5NzQ2NWU3ODI2MDViYjNlLmJpbmRQb3B1cChwb3B1cF9mZTM3MmY5OWYzNTM0OTRjYjMzYTU3YTk0NGExM2NiMCk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxNDU6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjEwODgzNjIwNjg5NjU1MTczLCAiY29sIjogMTQ1LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNDUsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE0NSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDg0MjY5NjYyOTIxMzQ4MzEsICJjb2wiOiAxNDUsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE0NSwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTQ1LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjE1Mzg0NjE1Mzg0NjE1Mzg1LCAiY29sIjogMTQ1LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjQ5MzEwNzEwNDk4NDA5MzMsICJjb2wiOiAxNDUsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDEuMDUyOTY2MTAxNjk0OTE1MiwgImNvbCI6IDE0NSwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC45MjE2MTAxNjk0OTE1MjU0LCAiY29sIjogMTQ1LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjkxMDI0Mjg3MjIyODA4ODgsICJjb2wiOiAxNDUsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjg0MTA1MjYzMTU3ODk0NzQsICJjb2wiOiAxNDUsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAxLjA4MjEwNTI2MzE1Nzg5NDcsICJjb2wiOiAxNDUsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAxLjQwMzc4NTQ4ODk1ODk5MDUsICJjb2wiOiAxNDUsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjc3MjM5MTk5MTU3MDA3MzcsICJjb2wiOiAxNDUsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjY2OTEyNTM5NTE1Mjc5MjUsICJjb2wiOiAxNDUsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAxLjM2Nzc1NTUzMjEzOTA5MzcsICJjb2wiOiAxNDUsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAxLjM0NjY4MDcxNjU0MzczMDIsICJjb2wiOiAxNDUsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjk5NjgzNTQ0MzAzNzk3NDcsICJjb2wiOiAxNDUsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAyLjI3MDA0MjE5NDA5MjgyNywgImNvbCI6IDE0NSwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDIuMTAyNDI4NzIyMjgwODg3LCAiY29sIjogMTQ1LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMS4zODc3NzY2MDY5NTQ2ODksICJjb2wiOiAxNDUsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjcwNTM4NTQyNzY2NjMxNDYsICJjb2wiOiAxNDUsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjQwNjM4Mjk3ODcyMzQwNDIzLCAiY29sIjogMTQ1LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2JjMGYzZjVmMzI3MTRmYjJhM2JhMjFiZTFiNTU1ZmMyKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfMWNmYzYwNGFjZjU2NDI2Mzg4NTlmOTg3NmQyMzM2ZTAgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MTA3MzcsLTk5LjE2NTcxNiksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2MwMzYyODI0Y2RlNDQzMTc5YzBlOWE4MDM0ODEzNGM3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2RjNmRkOGIzNmZiMzRkNjg5OWIwMzY3OTE2OGY1Y2JmID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfZGM2ZGQ4YjM2ZmIzNGQ2ODk5YjAzNjc5MTY4ZjVjYmYiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2MwMzYyODI0Y2RlNDQzMTc5YzBlOWE4MDM0ODEzNGM3LnNldENvbnRlbnQodmVnYV9kYzZkZDhiMzZmYjM0ZDY4OTliMDM2NzkxNjhmNWNiZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl8xY2ZjNjA0YWNmNTY0MjYzODg1OWY5ODc2ZDIzMzZlMC5iaW5kUG9wdXAocG9wdXBfYzAzNjI4MjRjZGU0NDMxNzljMGU5YTgwMzQ4MTM0YzcpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTQ2OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4xMTg1MzQ0ODI3NTg2MjA2OSwgImNvbCI6IDE0NiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTQ2LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNDYsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE0NiwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTQ2LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNDYsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuNDc5Mjg5OTQwODI4NDAyMzcsICJjb2wiOiAxNDYsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuNjE3MTc5MjE1MjcwNDEzNSwgImNvbCI6IDE0NiwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMS4yOTU1NTA4NDc0NTc2MjcyLCAiY29sIjogMTQ2LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAxLjc0ODk0MDY3Nzk2NjEwMTYsICJjb2wiOiAxNDYsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDEuNDkyMDgwMjUzNDMxODkwMiwgImNvbCI6IDE0NiwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDEuMzk1Nzg5NDczNjg0MjEwNSwgImNvbCI6IDE0NiwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDEuNDE4OTQ3MzY4NDIxMDUyNywgImNvbCI6IDE0NiwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDEuNzUyODkxNjkyOTU0Nzg0NCwgImNvbCI6IDE0NiwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDIuNDY3ODYwOTA2MjE3MDcwNywgImNvbCI6IDE0NiwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDIuMzAyNDIzNjAzNzkzNDY3LCAiY29sIjogMTQ2LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMS43OTY2MjgwMjk1MDQ3NDE5LCAiY29sIjogMTQ2LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMi4xMzY5ODYzMDEzNjk4NjMsICJjb2wiOiAxNDYsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAzLjI5MzI0ODk0NTE0NzY3OTQsICJjb2wiOiAxNDYsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAzLjQzNDU5OTE1NjExODE0MzMsICJjb2wiOiAxNDYsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAyLjU0MDY1NDY5OTA0OTYzMDYsICJjb2wiOiAxNDYsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAxLjQzNDE0MTIwMTI2NDQ4OSwgImNvbCI6IDE0NiwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuODI0NzA5NjA5MjkyNTAyNiwgImNvbCI6IDE0NiwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuNDY0ODkzNjE3MDIxMjc2NiwgImNvbCI6IDE0NiwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9kYzZkZDhiMzZmYjM0ZDY4OTliMDM2NzkxNjhmNWNiZik7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzk3NWMwMzZjZmU4MjQ5YTY4NjUxZWIzNjQ1NmVmMjkzID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDEyMTgyLC05OS4xNTg0NDMpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iZmE1NjVlMjg4YjU0NTRiOWE2N2UwODA5MzRlNDBlYSA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV9kOWZiYzczM2VhZTY0MzhiODAzMjU1OGMyMGQ1NGE4YyA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhX2Q5ZmJjNzMzZWFlNjQzOGI4MDMyNTU4YzIwZDU0YThjIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iZmE1NjVlMjg4YjU0NTRiOWE2N2UwODA5MzRlNDBlYS5zZXRDb250ZW50KHZlZ2FfZDlmYmM3MzNlYWU2NDM4YjgwMzI1NThjMjBkNTRhOGMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfOTc1YzAzNmNmZTgyNDlhNjg2NTFlYjM2NDU2ZWYyOTMuYmluZFBvcHVwKHBvcHVwX2JmYTU2NWUyODhiNTQ1NGI5YTY3ZTA4MDkzNGU0MGVhKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDE0NzogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMTAwMjE1NTE3MjQxMzc5MzEsICJjb2wiOiAxNDcsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDA1MTgxMzQ3MTUwMjU5MDY3NiwgImNvbCI6IDE0NywgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTQ3LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNDcsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE0NywgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wMTE1NjA2OTM2NDE2MTg0OTcsICJjb2wiOiAxNDcsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDgyODQwMjM2Njg2MzkwNTQsICJjb2wiOiAxNDcsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMjI1ODc0ODY3NDQ0MzI2NiwgImNvbCI6IDE0NywgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC41ODE1Njc3OTY2MTAxNjk0LCAiY29sIjogMTQ3LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjU3NTIxMTg2NDQwNjc3OTYsICJjb2wiOiAxNDcsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuNTM2NDMwODM0MjEzMzA1MiwgImNvbCI6IDE0NywgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNjIxMDUyNjMxNTc4OTQ3NCwgImNvbCI6IDE0NywgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNzU2ODQyMTA1MjYzMTU3OSwgImNvbCI6IDE0NywgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuODEwNzI1NTUyMDUwNDczMSwgImNvbCI6IDE0NywgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDAuOTc1NzYzOTYyMDY1MzMxOSwgImNvbCI6IDE0NywgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDAuODgxOTgxMDMyNjY1OTY0MiwgImNvbCI6IDE0NywgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuOTE2NzU0NDc4Mzk4MzE0LCAiY29sIjogMTQ3LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMS4wMDk0ODM2NjcwMTc5MTM3LCAiY29sIjogMTQ3LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS4wNDY0MTM1MDIxMDk3MDQ3LCAiY29sIjogMTQ3LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS4xODY3MDg4NjA3NTk0OTM4LCAiY29sIjogMTQ3LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMS4wLCAiY29sIjogMTQ3LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC44NjMwMTM2OTg2MzAxMzcsICJjb2wiOiAxNDcsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjYwNzE4MDU3MDIyMTc1MjksICJjb2wiOiAxNDcsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjM2OTE0ODkzNjE3MDIxMjc3LCAiY29sIjogMTQ3LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2Q5ZmJjNzMzZWFlNjQzOGI4MDMyNTU4YzIwZDU0YThjKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfYTQ3ZjFlM2RkMzY3NDRkNzg1MzI3ZTM0ODVhZTM2YjIgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MTI4MjksLTk5LjE1NTExNiksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzRmOWY4YzU5ZDgwMDRkNTU4MmU1YWExMDVjZmJmNGY2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzFlOGM1MGYwYjFhZDRiNmVhNDMwYjNhMjY4MGQ2M2VjID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfMWU4YzUwZjBiMWFkNGI2ZWE0MzBiM2EyNjgwZDYzZWMiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzRmOWY4YzU5ZDgwMDRkNTU4MmU1YWExMDVjZmJmNGY2LnNldENvbnRlbnQodmVnYV8xZThjNTBmMGIxYWQ0YjZlYTQzMGIzYTI2ODBkNjNlYyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9hNDdmMWUzZGQzNjc0NGQ3ODUzMjdlMzQ4NWFlMzZiMi5iaW5kUG9wdXAocG9wdXBfNGY5ZjhjNTlkODAwNGQ1NTgyZTVhYTEwNWNmYmY0ZjYpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTQ4OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wODQwNTE3MjQxMzc5MzEwNCwgImNvbCI6IDE0OCwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDE3MjcxMTU3MTY3NTMwMjI0LCAiY29sIjogMTQ4LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwMzA3NjkyMzA3NjkyMzA3NywgImNvbCI6IDE0OCwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTQ4LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNDgsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE0OCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC40MDcxMDA1OTE3MTU5NzYzNSwgImNvbCI6IDE0OCwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMS4wMzI4NzM4MDY5OTg5Mzk2LCAiY29sIjogMTQ4LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAxLjA3MzA5MzIyMDMzODk4MzEsICJjb2wiOiAxNDgsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDAuNTgxNTY3Nzk2NjEwMTY5NCwgImNvbCI6IDE0OCwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC40OTczNjAwODQ0NzcyOTY3NCwgImNvbCI6IDE0OCwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNDU0NzM2ODQyMTA1MjYzMTYsICJjb2wiOiAxNDgsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjYyMTA1MjYzMTU3ODk0NzQsICJjb2wiOiAxNDgsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjgxODA4NjIyNTAyNjI4ODEsICJjb2wiOiAxNDgsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjgzNDU2MjY5NzU3NjM5NjIsICJjb2wiOiAxNDgsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjA5Nzk5Nzg5MjUxODQ0MDQsICJjb2wiOiAxNDgsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjYzOTYyMDY1MzMxOTI4MzQsICJjb2wiOiAxNDgsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjcyMzkxOTkxNTcwMDczNzcsICJjb2wiOiAxNDgsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjEzMDgwMTY4Nzc2MzcxMywgImNvbCI6IDE0OCwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDEuMDg3NTUyNzQyNjE2MDMzOSwgImNvbCI6IDE0OCwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuODg1OTU1NjQ5NDE5MjE4NiwgImNvbCI6IDE0OCwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuNjYwNjk1NDY4OTE0NjQ3LCAiY29sIjogMTQ4LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4zODg1OTU1NjQ5NDE5MjE5LCAiY29sIjogMTQ4LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4yNDY4MDg1MTA2MzgyOTc4NywgImNvbCI6IDE0OCwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV8xZThjNTBmMGIxYWQ0YjZlYTQzMGIzYTI2ODBkNjNlYyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzQzMDEwZTllMDAzYzQ4NGM4NzQ2MzI5Y2I5MDJkMWUzID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDExOTksLTk5LjE1NTY5OSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2I4ZGZjOWE3MjZiNzQ5ZGQ4NWI2M2Y5NDQ5ODMyZTZiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzFlMDk0ODFlN2M4ODQ4NjRhMTNiZDYwY2E2MjM4NTVlID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfMWUwOTQ4MWU3Yzg4NDg2NGExM2JkNjBjYTYyMzg1NWUiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2I4ZGZjOWE3MjZiNzQ5ZGQ4NWI2M2Y5NDQ5ODMyZTZiLnNldENvbnRlbnQodmVnYV8xZTA5NDgxZTdjODg0ODY0YTEzYmQ2MGNhNjIzODU1ZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl80MzAxMGU5ZTAwM2M0ODRjODc0NjMyOWNiOTAyZDFlMy5iaW5kUG9wdXAocG9wdXBfYjhkZmM5YTcyNmI3NDlkZDg1YjYzZjk0NDk4MzJlNmIpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTQ5OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4xMDM0NDgyNzU4NjIwNjg5NiwgImNvbCI6IDE0OSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDE3MjcxMTU3MTY3NTMwMjI0LCAiY29sIjogMTQ5LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNDksICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDAyODA4OTg4NzY0MDQ0OTQzNywgImNvbCI6IDE0OSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMDczMjYwMDczMjYwMDczMjYsICJjb2wiOiAxNDksICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE0OSwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC41NjQ0OTcwNDE0MjAxMTg0LCAiY29sIjogMTQ5LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjc1MjkxNjIyNDgxNDQyMjEsICJjb2wiOiAxNDksICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuODg0NTMzODk4MzA1MDg0OCwgImNvbCI6IDE0OSwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC45NjA4MDUwODQ3NDU3NjI4LCAiY29sIjogMTQ5LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjg3NzUwNzkxOTc0NjU2OCwgImNvbCI6IDE0OSwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuOTEyNjMxNTc4OTQ3MzY4NSwgImNvbCI6IDE0OSwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuOTc0NzM2ODQyMTA1MjYzMSwgImNvbCI6IDE0OSwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDEuMTcwMzQ3MDAzMTU0NTc0MiwgImNvbCI6IDE0OSwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuNDczMTI5NjEwMTE1OTExNSwgImNvbCI6IDE0OSwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuMjE2MDE2ODU5ODUyNDc2MywgImNvbCI6IDE0OSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuOTgzMTQwMTQ3NTIzNzA5MiwgImNvbCI6IDE0OSwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDEuMDc3OTc2ODE3NzAyODQ1LCAiY29sIjogMTQ5LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS41MzE2NDU1Njk2MjAyNTMxLCAiY29sIjogMTQ5LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS44NDA3MTcyOTk1NzgwNTksICJjb2wiOiAxNDksICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAxLjM5NDkzMTM2MjE5NjQwOTcsICJjb2wiOiAxNDksICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjk1ODkwNDEwOTU4OTA0MSwgImNvbCI6IDE0OSwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuNDYyNTEzMTk5NTc3NjEzNSwgImNvbCI6IDE0OSwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMjE5MTQ4OTM2MTcwMjEyNzgsICJjb2wiOiAxNDksICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfMWUwOTQ4MWU3Yzg4NDg2NGExM2JkNjBjYTYyMzg1NWUpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl82NTczZjc3NjU4NGI0NDc4YmIyZTYwYzY1ZTIxZjRjMSA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQwOTk2NSwtOTkuMTY0MjkyKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTY5Zjg3NDVmZjI2NDc1MjgzZGY0MDAxNjQ1OTgzY2YgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfMjI5NjI4ZDhjY2IwNDUzNzgzOGE4OGUyNmNhMWE2MGQgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV8yMjk2MjhkOGNjYjA0NTM3ODM4YTg4ZTI2Y2ExYTYwZCI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTY5Zjg3NDVmZjI2NDc1MjgzZGY0MDAxNjQ1OTgzY2Yuc2V0Q29udGVudCh2ZWdhXzIyOTYyOGQ4Y2NiMDQ1Mzc4MzhhODhlMjZjYTFhNjBkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzY1NzNmNzc2NTg0YjQ0NzhiYjJlNjBjNjVlMjFmNGMxLmJpbmRQb3B1cChwb3B1cF9lNjlmODc0NWZmMjY0NzUyODNkZjQwMDE2NDU5ODNjZik7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxNTA6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjEzMDM4NzkzMTAzNDQ4Mjc2LCAiY29sIjogMTUwLCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAwMzQ1NDIzMTQzMzUwNjA0NDcsICJjb2wiOiAxNTAsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMDA2MTUzODQ2MTUzODQ2MTU0LCAiY29sIjogMTUwLCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNTAsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMDA3MzI2MDA3MzI2MDA3MzI2LCAiY29sIjogMTUwLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNTAsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMTIzMDc2OTIzMDc2OTIzMDgsICJjb2wiOiAxNTAsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMjYwODY5NTY1MjE3MzkxMywgImNvbCI6IDE1MCwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC40NzU2MzU1OTMyMjAzMzksICJjb2wiOiAxNTAsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDAuOTc4ODEzNTU5MzIyMDMzOCwgImNvbCI6IDE1MCwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMS4wMjYzOTkxNTUyMjcwMzI4LCAiY29sIjogMTUwLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMS4wNTY4NDIxMDUyNjMxNTc4LCAiY29sIjogMTUwLCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMS4wNTU3ODk0NzM2ODQyMTA2LCAiY29sIjogMTUwLCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMS4zNTg1Njk5MjYzOTMyNzAyLCAiY29sIjogMTUwLCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMS45NzE1NDg5OTg5NDYyNTkxLCAiY29sIjogMTUwLCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS43NjA4MDA4NDI5OTI2MjM4LCAiY29sIjogMTUwLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMS43MTk3MDQ5NTI1ODE2NjUsICJjb2wiOiAxNTAsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAxLjQ3NDE4MzM1MDg5NTY3OTYsICJjb2wiOiAxNTAsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjc5NjQxMzUwMjEwOTcwNDcsICJjb2wiOiAxNTAsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjc5NzQ2ODM1NDQzMDM3OTgsICJjb2wiOiAxNTAsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAxLjYwNDAxMjY3MTU5NDUwODksICJjb2wiOiAxNTAsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjk5MTU3MDA3Mzc2MTg1NDYsICJjb2wiOiAxNTAsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjYyODI5OTg5NDQwMzM3OTEsICJjb2wiOiAxNTAsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjQ4NzIzNDA0MjU1MzE5MTQ3LCAiY29sIjogMTUwLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzIyOTYyOGQ4Y2NiMDQ1Mzc4MzhhODhlMjZjYTFhNjBkKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfYzgyNWI1NTVkODdmNDY0OTk3MTlkNGI3NGM0OWZhMTggPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MTA1MjksLTk5LjE2MDg3MyksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzUyMzE5NWRmYzhhZjQ2NDQ5ZjViNTdiMWU5MjkxODUzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzNmZWJlOTM5ZmMzZTQ1MmRiNzM2MTY5OGZiNzVkMTRlID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfM2ZlYmU5MzlmYzNlNDUyZGI3MzYxNjk4ZmI3NWQxNGUiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzUyMzE5NWRmYzhhZjQ2NDQ5ZjViNTdiMWU5MjkxODUzLnNldENvbnRlbnQodmVnYV8zZmViZTkzOWZjM2U0NTJkYjczNjE2OThmYjc1ZDE0ZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9jODI1YjU1NWQ4N2Y0NjQ5OTcxOWQ0Yjc0YzQ5ZmExOC5iaW5kUG9wdXAocG9wdXBfNTIzMTk1ZGZjOGFmNDY0NDlmNWI1N2IxZTkyOTE4NTMpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTUxOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wOTI2NzI0MTM3OTMxMDM0NSwgImNvbCI6IDE1MSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTUxLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNTEsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE1MSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTUxLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNTEsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMTQzMTk1MjY2MjcyMTg5MzQsICJjb2wiOiAxNTEsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMzAwMTA2MDQ0NTM4NzA2MjYsICJjb2wiOiAxNTEsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuODE0NjE4NjQ0MDY3Nzk2NiwgImNvbCI6IDE1MSwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC42NTc4Mzg5ODMwNTA4NDc0LCAiY29sIjogMTUxLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjY2MzE0Njc3OTMwMzA2MjMsICJjb2wiOiAxNTEsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjY4MTA1MjYzMTU3ODk0NzQsICJjb2wiOiAxNTEsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjc1MTU3ODk0NzM2ODQyMSwgImNvbCI6IDE1MSwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuNzAxMzY2OTgyMTI0MDc5OSwgImNvbCI6IDE1MSwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuMjUwNzkwMzA1NTg0ODI2MiwgImNvbCI6IDE1MSwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuMTQ3NTIzNzA5MTY3NTQ0OCwgImNvbCI6IDE1MSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDEuMTk1OTk1Nzg1MDM2ODgxLCAiY29sIjogMTUxLCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMS4wMDUyNjg3MDM4OTg4NDA4LCAiY29sIjogMTUxLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS4zNDcwNDY0MTM1MDIxMDk2LCAiY29sIjogMTUxLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS41NTM3OTc0NjgzNTQ0MzA0LCAiY29sIjogMTUxLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMS41NzAyMjE3NTI5MDM5MDcsICJjb2wiOiAxNTEsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAxLjI0OTczNjU2NDgwNTA1OCwgImNvbCI6IDE1MSwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuODQzNzE3MDAxMDU1OTY2MywgImNvbCI6IDE1MSwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuNDI1NTMxOTE0ODkzNjE3LCAiY29sIjogMTUxLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzNmZWJlOTM5ZmMzZTQ1MmRiNzM2MTY5OGZiNzVkMTRlKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZDFkZjljMjkyOGI0NDY1OTliMjE0NmY0OTdjODE1YjEgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MDkwOTgsLTk5LjE2NzE4MSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzJmZDVlMzM1NTliYjQzZjE4YzY1OTg1MzYwNzk0ZjI5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzhhZGE5NTA2NTIyYzRmOWZhOWRkMGJlYjUxYWMwNzczID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfOGFkYTk1MDY1MjJjNGY5ZmE5ZGQwYmViNTFhYzA3NzMiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzJmZDVlMzM1NTliYjQzZjE4YzY1OTg1MzYwNzk0ZjI5LnNldENvbnRlbnQodmVnYV84YWRhOTUwNjUyMmM0ZjlmYTlkZDBiZWI1MWFjMDc3Myk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9kMWRmOWMyOTI4YjQ0NjU5OWIyMTQ2ZjQ5N2M4MTViMS5iaW5kUG9wdXAocG9wdXBfMmZkNWUzMzU1OWJiNDNmMThjNjU5ODUzNjA3OTRmMjkpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTUyOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4xMjI4NDQ4Mjc1ODYyMDY4OSwgImNvbCI6IDE1MiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMjI0NTI1MDQzMTc3ODkyOTMsICJjb2wiOiAxNTIsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE1MiwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDU2MTc5Nzc1MjgwODk4ODc1LCAiY29sIjogMTUyLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNTIsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE1MiwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4zMzM3Mjc4MTA2NTA4ODc2LCAiY29sIjogMTUyLCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjMxMjgzMTM4OTE4MzQ1NzA0LCAiY29sIjogMTUyLCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAwLjc0NjgyMjAzMzg5ODMwNSwgImNvbCI6IDE1MiwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS4xMjI4ODEzNTU5MzIyMDMzLCAiY29sIjogMTUyLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjU1OTY2MjA5MDgxMzA5MzksICJjb2wiOiAxNTIsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjU4MTA1MjYzMTU3ODk0NzQsICJjb2wiOiAxNTIsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjUzNzg5NDczNjg0MjEwNTMsICJjb2wiOiAxNTIsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjY3NzE4MTkxMzc3NDk3MzcsICJjb2wiOiAxNTIsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjc3NDQ5OTQ3MzEyOTYxMDEsICJjb2wiOiAxNTIsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjA5Nzk5Nzg5MjUxODQ0MDQsICJjb2wiOiAxNTIsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjk2NTIyNjU1NDI2NzY1MDEsICJjb2wiOiAxNTIsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjgyNjEzMjc3MTMzODI1MDgsICJjb2wiOiAxNTIsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAwLjkwNjExODE0MzQ1OTkxNTYsICJjb2wiOiAxNTIsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjA1MDYzMjkxMTM5MjQwNTEsICJjb2wiOiAxNTIsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjcxNzAwMTA1NTk2NjIwOTEsICJjb2wiOiAxNTIsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjQ5NDIwNDQyNTcxMTI3NTA0LCAiY29sIjogMTUyLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4yNzI0MzkyODE5NDI5Nzc4NCwgImNvbCI6IDE1MiwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMjEyNzY1OTU3NDQ2ODA4NSwgImNvbCI6IDE1MiwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV84YWRhOTUwNjUyMmM0ZjlmYTlkZDBiZWI1MWFjMDc3Myk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyX2IyYjdjNTczMzNkODQyZDFhMGFhMGFhNjdjM2Q5ZWUyID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDA3NDY4LC05OS4xNjUxNDEpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84MzI4YzVhNjhhYzg0ZDBlOTMyOTkyODFjOTZiMDJmYSA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV8zOTI3MjU3NWM5YzE0YzYwOTZkZjE4MjVlZTVjYjg3ZCA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzM5MjcyNTc1YzljMTRjNjA5NmRmMTgyNWVlNWNiODdkIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84MzI4YzVhNjhhYzg0ZDBlOTMyOTkyODFjOTZiMDJmYS5zZXRDb250ZW50KHZlZ2FfMzkyNzI1NzVjOWMxNGM2MDk2ZGYxODI1ZWU1Y2I4N2QpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfYjJiN2M1NzMzM2Q4NDJkMWEwYWEwYWE2N2MzZDllZTIuYmluZFBvcHVwKHBvcHVwXzgzMjhjNWE2OGFjODRkMGU5MzI5OTI4MWM5NmIwMmZhKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDE1MzogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMTE2Mzc5MzEwMzQ0ODI3NTgsICJjb2wiOiAxNTMsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDAxNzI3MTE1NzE2NzUzMDIyNCwgImNvbCI6IDE1MywgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTUzLCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNTMsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE1MywgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTUzLCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjA1MjA3MTAwNTkxNzE1OTc2LCAiY29sIjogMTUzLCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjE2MTE4NzY5ODgzMzUxMDA4LCAiY29sIjogMTUzLCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAwLjM5NzI0NTc2MjcxMTg2NDQsICJjb2wiOiAxNTMsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDAuNzk2NjEwMTY5NDkxNTI1NCwgImNvbCI6IDE1MywgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC41NDI3NjY2MzE0Njc3OTMsICJjb2wiOiAxNTMsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjQ2NzM2ODQyMTA1MjYzMTYsICJjb2wiOiAxNTMsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjUyLCAiY29sIjogMTUzLCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC41NDM2MzgyNzU0OTk0NzQyLCAiY29sIjogMTUzLCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMC44MzM1MDg5NTY3OTY2MjgxLCAiY29sIjogMTUzLCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMC45MjcyOTE4ODYxOTU5OTU4LCAiY29sIjogMTUzLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC44MzE0MDE0NzUyMzcwOTE2LCAiY29sIjogMTUzLCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC44MjYxMzI3NzEzMzgyNTA4LCAiY29sIjogMTUzLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMC45OTM2NzA4ODYwNzU5NDkzLCAiY29sIjogMTUzLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS4wMjYzNzEzMDgwMTY4Nzc3LCAiY29sIjogMTUzLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC45MDgxMzA5Mzk4MDk5MjYxLCAiY29sIjogMTUzLCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC44MTAzMjY2NTk2NDE3MjgxLCAiY29sIjogMTUzLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC41NDY5OTA0OTYzMDQxMTgyLCAiY29sIjogMTUzLCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4zMzcyMzQwNDI1NTMxOTE1LCAiY29sIjogMTUzLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzM5MjcyNTc1YzljMTRjNjA5NmRmMTgyNWVlNWNiODdkKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNjU0N2M1MWRjNDc2NGY2MGE5NWFkOWFhYmQ0NmUxOGMgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MDY2ODMsLTk5LjE2Nzk2MiksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzQ5YmJiMTE1Yjk5ZTRjODhiZGM2OGFhNzJiMDY2ZTAxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2MyODUxY2M0Y2M1NjRjMTY4MTYxMGIyODc1OGM1Nzg0ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfYzI4NTFjYzRjYzU2NGMxNjgxNjEwYjI4NzU4YzU3ODQiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzQ5YmJiMTE1Yjk5ZTRjODhiZGM2OGFhNzJiMDY2ZTAxLnNldENvbnRlbnQodmVnYV9jMjg1MWNjNGNjNTY0YzE2ODE2MTBiMjg3NThjNTc4NCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl82NTQ3YzUxZGM0NzY0ZjYwYTk1YWQ5YWFiZDQ2ZTE4Yy5iaW5kUG9wdXAocG9wdXBfNDliYmIxMTViOTllNGM4OGJkYzY4YWE3MmIwNjZlMDEpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTU0OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wMTgzMTg5NjU1MTcyNDEzNzgsICJjb2wiOiAxNTQsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDAxNzI3MTE1NzE2NzUzMDIyNCwgImNvbCI6IDE1NCwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTU0LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAwMjgwODk4ODc2NDA0NDk0MzcsICJjb2wiOiAxNTQsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMDAzNjYzMDAzNjYzMDAzNjYzLCAiY29sIjogMTU0LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNTQsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMjUyMDcxMDA1OTE3MTU5NzUsICJjb2wiOiAxNTQsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuNjg5Mjg5NTAxNTkwNjY4LCAiY29sIjogMTU0LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAwLjkzNDMyMjAzMzg5ODMwNSwgImNvbCI6IDE1NCwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC45NDI3OTY2MTAxNjk0OTE2LCAiY29sIjogMTU0LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjYwNDAxMjY3MTU5NDUwOSwgImNvbCI6IDE1NCwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNjgyMTA1MjYzMTU3ODk0OCwgImNvbCI6IDE1NCwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNjM3ODk0NzM2ODQyMTA1MywgImNvbCI6IDE1NCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuNzY4NjY0NTYzNjE3MjQ1LCAiY29sIjogMTU0LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMC44NjA5MDYyMTcwNzA2MDA3LCAiY29sIjogMTU0LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMC44NDE5Mzg4ODMwMzQ3NzM1LCAiY29sIjogMTU0LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC44NzQ2MDQ4NDcyMDc1ODY5LCAiY29sIjogMTU0LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC44MDA4NDI5OTI2MjM4MTQ1LCAiY29sIjogMTU0LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS4xODU2NTQwMDg0Mzg4MTg1LCAiY29sIjogMTU0LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS4xNzQwNTA2MzI5MTEzOTI0LCAiY29sIjogMTU0LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC42ODg0ODk5NjgzMjEwMTM3LCAiY29sIjogMTU0LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC41MDU3OTU1NzQyODg3MjUsICJjb2wiOiAxNTQsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjM1NTg2MDYxMjQ2MDQwMTMsICJjb2wiOiAxNTQsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjE1ODUxMDYzODI5Nzg3MjM1LCAiY29sIjogMTU0LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2MyODUxY2M0Y2M1NjRjMTY4MTYxMGIyODc1OGM1Nzg0KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfODM3ZTJmOTdmYWI4NDE0NTk2MWMzYTcxYWQ3YzRmMWQgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MDgyMTgsLTk5LjE1OTkxMSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzVkODVhZDMxYzE0ZTQ5ODY5MTQyNmNmNDYyMmQ3N2VkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2FhMjg1ODg3NzllNTQ5ZDBhZTIwNjE4ZjJlM2RmYjNmID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfYWEyODU4ODc3OWU1NDlkMGFlMjA2MThmMmUzZGZiM2YiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzVkODVhZDMxYzE0ZTQ5ODY5MTQyNmNmNDYyMmQ3N2VkLnNldENvbnRlbnQodmVnYV9hYTI4NTg4Nzc5ZTU0OWQwYWUyMDYxOGYyZTNkZmIzZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl84MzdlMmY5N2ZhYjg0MTQ1OTYxYzNhNzFhZDdjNGYxZC5iaW5kUG9wdXAocG9wdXBfNWQ4NWFkMzFjMTRlNDk4NjkxNDI2Y2Y0NjIyZDc3ZWQpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTU1OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4xMDg4MzYyMDY4OTY1NTE3MywgImNvbCI6IDE1NSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMjQxNzk2MjAwMzQ1NDIzMTYsICJjb2wiOiAxNTUsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE1NSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTU1LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNTUsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE1NSwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4yNTkxNzE1OTc2MzMxMzYxLCAiY29sIjogMTU1LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjMzODI4MjA3ODQ3Mjk1ODY2LCAiY29sIjogMTU1LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAwLjU3ODM4OTgzMDUwODQ3NDYsICJjb2wiOiAxNTUsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDAuODI0MTUyNTQyMzcyODgxNCwgImNvbCI6IDE1NSwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC42OTkwNDk2MzA0MTE4MjY4LCAiY29sIjogMTU1LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC42NjEwNTI2MzE1Nzg5NDczLCAiY29sIjogMTU1LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC42NTM2ODQyMTA1MjYzMTU4LCAiY29sIjogMTU1LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC43NDU1MzEwMTk5Nzg5Njk1LCAiY29sIjogMTU1LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMC45NjYyODAyOTUwNDc0MTgzLCAiY29sIjogMTU1LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS4yNzgxODc1NjU4NTg3OTg3LCAiY29sIjogMTU1LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMS4zMDg3NDYwNDg0NzIwNzU5LCAiY29sIjogMTU1LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMS4zNTE5NDk0MjA0NDI1NzEsICJjb2wiOiAxNTUsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjc5OTU3ODA1OTA3MTcyOTksICJjb2wiOiAxNTUsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAyLjAzMzc1NTI3NDI2MTYwMzQsICJjb2wiOiAxNTUsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAxLjkyMjkxNDQ2NjczNzA2NDMsICJjb2wiOiAxNTUsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAxLjM4Nzc3NjYwNjk1NDY4OSwgImNvbCI6IDE1NSwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuODAwNDIyMzg2NDgzNjMyNSwgImNvbCI6IDE1NSwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuNDkzNjE3MDIxMjc2NTk1NzQsICJjb2wiOiAxNTUsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfYWEyODU4ODc3OWU1NDlkMGFlMjA2MThmMmUzZGZiM2YpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl82M2RlYjUyMGJhMjg0ZDlkYTU4OWRmMGViNWI0ODFmYyA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQwNzEyNCwtOTkuMTYyMTcxKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTFkMzcxODFhNzMyNDI0MWFjZTc2Y2QwM2QyZTM0MzcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfMTNjMGI2NDc2MTg2NDExOWE5MTFmNDM5ZTYxMjU0MWMgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV8xM2MwYjY0NzYxODY0MTE5YTkxMWY0MzllNjEyNTQxYyI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTFkMzcxODFhNzMyNDI0MWFjZTc2Y2QwM2QyZTM0Mzcuc2V0Q29udGVudCh2ZWdhXzEzYzBiNjQ3NjE4NjQxMTlhOTExZjQzOWU2MTI1NDFjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzYzZGViNTIwYmEyODRkOWRhNTg5ZGYwZWI1YjQ4MWZjLmJpbmRQb3B1cChwb3B1cF8xMWQzNzE4MWE3MzI0MjQxYWNlNzZjZDAzZDJlMzQzNyk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxNTY6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjA3NDM1MzQ0ODI3NTg2MjA3LCAiY29sIjogMTU2LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAwMzQ1NDIzMTQzMzUwNjA0NDcsICJjb2wiOiAxNTYsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE1NiwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTU2LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNTYsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE1NiwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wMTE4MzQzMTk1MjY2MjcyMTksICJjb2wiOiAxNTYsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMTAwNzQyMzExNzcwOTQzOCwgImNvbCI6IDE1NiwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC4yNTMxNzc5NjYxMDE2OTQ5LCAiY29sIjogMTU2LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjgyNDE1MjU0MjM3Mjg4MTQsICJjb2wiOiAxNTYsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuNDE2MDUwNjg2Mzc4MDM1OSwgImNvbCI6IDE1NiwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuMzQ5NDczNjg0MjEwNTI2MywgImNvbCI6IDE1NiwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuMzUwNTI2MzE1Nzg5NDczNywgImNvbCI6IDE1NiwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuNDI0ODE1OTgzMTc1NjA0NjUsICJjb2wiOiAxNTYsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjU4Mzc3MjM5MTk5MTU3LCAiY29sIjogMTU2LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMC42NDM4MzU2MTY0MzgzNTYyLCAiY29sIjogMTU2LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC43MjI4NjYxNzQ5MjA5Njk1LCAiY29sIjogMTU2LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC41MTczODY3MjI4NjYxNzQ5LCAiY29sIjogMTU2LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMC42MTkxOTgzMTIyMzYyODcsICJjb2wiOiAxNTYsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAwLjY4MDM3OTc0NjgzNTQ0MywgImNvbCI6IDE1NiwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuNzE1OTQ1MDg5NzU3MTI3OCwgImNvbCI6IDE1NiwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuNjExMTY5NjUyMjY1NTQyNywgImNvbCI6IDE1NiwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuNTIxNjQ3MzA3Mjg2MTY2OCwgImNvbCI6IDE1NiwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMjk3ODcyMzQwNDI1NTMxOSwgImNvbCI6IDE1NiwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV8xM2MwYjY0NzYxODY0MTE5YTkxMWY0MzllNjEyNTQxYyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyX2QwZTk5ZmIxMDAzZTQxZDY5YjE5MDEwNGIwZjdkZTg0ID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDA2MjM2LC05OS4xNjY2MTYpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80ZWRiNTg1NDEzOWY0YzRjOTBlOGQxOWYzYjM0NjVkYyA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV82ZGE4ZDAwNTUxZDc0NGZmYWRhZjg1NTI3MTcwMTYzZCA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzZkYThkMDA1NTFkNzQ0ZmZhZGFmODU1MjcxNzAxNjNkIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80ZWRiNTg1NDEzOWY0YzRjOTBlOGQxOWYzYjM0NjVkYy5zZXRDb250ZW50KHZlZ2FfNmRhOGQwMDU1MWQ3NDRmZmFkYWY4NTUyNzE3MDE2M2QpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZDBlOTlmYjEwMDNlNDFkNjliMTkwMTA0YjBmN2RlODQuYmluZFBvcHVwKHBvcHVwXzRlZGI1ODU0MTM5ZjRjNGM5MGU4ZDE5ZjNiMzQ2NWRjKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDE1NzogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDI1ODYyMDY4OTY1NTE3MjQsICJjb2wiOiAxNTcsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE1NywgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTU3LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNTcsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE1NywgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTU3LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjI2NTA4ODc1NzM5NjQ0OTcsICJjb2wiOiAxNTcsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuOTA4ODAxNjk2NzEyNjE5MywgImNvbCI6IDE1NywgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC44ODk4MzA1MDg0NzQ1NzYyLCAiY29sIjogMTU3LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjkwODg5ODMwNTA4NDc0NTgsICJjb2wiOiAxNTcsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuNzUzOTU5ODczMjg0MDU0OSwgImNvbCI6IDE1NywgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNjc0NzM2ODQyMTA1MjYzMiwgImNvbCI6IDE1NywgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNjY2MzE1Nzg5NDczNjg0MiwgImNvbCI6IDE1NywgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuNjc3MTgxOTEzNzc0OTczNywgImNvbCI6IDE1NywgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDAuOTkzNjc3NTU1MzIxMzkwOSwgImNvbCI6IDE1NywgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDAuOTQzMDk3OTk3ODkyNTE4NSwgImNvbCI6IDE1NywgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuNzk1NTc0Mjg4NzI0OTczNywgImNvbCI6IDE1NywgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNzIxODEyNDM0MTQxMjAxMiwgImNvbCI6IDE1NywgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDAuNzgyNzAwNDIxOTQwOTI4MywgImNvbCI6IDE1NywgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDAuOTE1NjExODE0MzQ1OTkxNiwgImNvbCI6IDE1NywgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuNTU3NTUwMTU4Mzk0OTMxNCwgImNvbCI6IDE1NywgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuMzI2NjU5NjQxNzI4MTM0OSwgImNvbCI6IDE1NywgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMjAyNzQ1NTEyMTQzNjExNDIsICJjb2wiOiAxNTcsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjEwODUxMDYzODI5Nzg3MjM0LCAiY29sIjogMTU3LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzZkYThkMDA1NTFkNzQ0ZmZhZGFmODU1MjcxNzAxNjNkKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfYWFjNTVhZjE3Y2I0NGY4N2E4ZDhmYTFhOWVhNWU2OTUgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MDc1MDcsLTk5LjE1NTU0MSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2YzYzEzOGEyNmI4MjQ2MTZiYjA4NDVmMTk4NzIwOTYzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzY1NzRkNjdkMGQwMDQ4NjI5ZTcxMDFjNjNhYjMyYWRiID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfNjU3NGQ2N2QwZDAwNDg2MjllNzEwMWM2M2FiMzJhZGIiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2YzYzEzOGEyNmI4MjQ2MTZiYjA4NDVmMTk4NzIwOTYzLnNldENvbnRlbnQodmVnYV82NTc0ZDY3ZDBkMDA0ODYyOWU3MTAxYzYzYWIzMmFkYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9hYWM1NWFmMTdjYjQ0Zjg3YThkOGZhMWE5ZWE1ZTY5NS5iaW5kUG9wdXAocG9wdXBfZjNjMTM4YTI2YjgyNDYxNmJiMDg0NWYxOTg3MjA5NjMpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTU4OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wNTI4MDE3MjQxMzc5MzEwMzYsICJjb2wiOiAxNTgsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDAxNzI3MTE1NzE2NzUzMDIyNCwgImNvbCI6IDE1OCwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMDMwNzY5MjMwNzY5MjMwNzcsICJjb2wiOiAxNTgsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDAyODA4OTg4NzY0MDQ0OTQzNywgImNvbCI6IDE1OCwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTU4LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAxNzM0MTA0MDQ2MjQyNzc0NCwgImNvbCI6IDE1OCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC41NDkxMTI0MjYwMzU1MDI5LCAiY29sIjogMTU4LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAxLjQzNDc4MjYwODY5NTY1MiwgImNvbCI6IDE1OCwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMi4xMTU0NjYxMDE2OTQ5MTUyLCAiY29sIjogMTU4LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAxLjk1OTc0NTc2MjcxMTg2NDQsICJjb2wiOiAxNTgsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDEuMzA2MjMwMjAwNjMzNTc5OCwgImNvbCI6IDE1OCwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDEuMTY4NDIxMDUyNjMxNTc5LCAiY29sIjogMTU4LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMS4wOTY4NDIxMDUyNjMxNTc4LCAiY29sIjogMTU4LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMS4yNDA3OTkxNTg3ODAyMzE0LCAiY29sIjogMTU4LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMS42NjM4NTY2OTEyNTM5NTE2LCAiY29sIjogMTU4LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS43OTg3MzU1MTEwNjQyNzgyLCAiY29sIjogMTU4LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMS42MzU0MDU2OTAyMDAyMTA4LCAiY29sIjogMTU4LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMi4wMTU4MDYxMTE2OTY1MjI3LCAiY29sIjogMTU4LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMy43MTk0MDkyODI3MDA0MjIsICJjb2wiOiAxNTgsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiA0LjU0ODUyMzIwNjc1MTA1NSwgImNvbCI6IDE1OCwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDIuNzE1OTQ1MDg5NzU3MTI3NiwgImNvbCI6IDE1OCwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDEuNTkyMjAyMzE4MjI5NzE1NiwgImNvbCI6IDE1OCwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuODAxNDc4MzUyNjkyNzEzOCwgImNvbCI6IDE1OCwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuNDc2NTk1NzQ0NjgwODUxMSwgImNvbCI6IDE1OCwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV82NTc0ZDY3ZDBkMDA0ODYyOWU3MTAxYzYzYWIzMmFkYik7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyX2YxZTc1NjcxOTNkOTRmNDg4ZWVlNTBjN2UzOGI4ZTdjID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDA3NTE3LC05OS4xNTUzNzMpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83Yjg4MjVkYjlhNjY0NjI3ODI5NTg0NzExMWI5OGYzYyA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV9hMmI4YTMwNmE5YWU0NGRkYjNhNTU1M2MxYzQwZTM1YSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhX2EyYjhhMzA2YTlhZTQ0ZGRiM2E1NTUzYzFjNDBlMzVhIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83Yjg4MjVkYjlhNjY0NjI3ODI5NTg0NzExMWI5OGYzYy5zZXRDb250ZW50KHZlZ2FfYTJiOGEzMDZhOWFlNDRkZGIzYTU1NTNjMWM0MGUzNWEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZjFlNzU2NzE5M2Q5NGY0ODhlZWU1MGM3ZTM4YjhlN2MuYmluZFBvcHVwKHBvcHVwXzdiODgyNWRiOWE2NjQ2Mjc4Mjk1ODQ3MTExYjk4ZjNjKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDE1OTogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDQ2MzM2MjA2ODk2NTUxNzMsICJjb2wiOiAxNTksICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE1OSwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMDMwNzY5MjMwNzY5MjMwNzcsICJjb2wiOiAxNTksICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE1OSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMDM2NjMwMDM2NjMwMDM2NjMsICJjb2wiOiAxNTksICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE1OSwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4yNjE1Mzg0NjE1Mzg0NjE1NSwgImNvbCI6IDE1OSwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC44MTEyNDA3MjExMDI4NjMyLCAiY29sIjogMTU5LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAwLjk2MDgwNTA4NDc0NTc2MjgsICJjb2wiOiAxNTksICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDAuNzA0NDQ5MTUyNTQyMzcyOCwgImNvbCI6IDE1OSwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC42MTAzNDg0Njg4NDg5OTY5LCAiY29sIjogMTU5LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC41MTc4OTQ3MzY4NDIxMDUzLCAiY29sIjogMTU5LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC41OTA1MjYzMTU3ODk0NzM3LCAiY29sIjogMTU5LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC42MTUxNDE5NTU4MzU5NjIxLCAiY29sIjogMTU5LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMC44MDgyMTkxNzgwODIxOTE4LCAiY29sIjogMTU5LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS4wMDg0Mjk5MjYyMzgxNDUzLCAiY29sIjogMTU5LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC45NDgzNjY3MDE3OTEzNTkzLCAiY29sIjogMTU5LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC45Nzc4NzE0NDM2MjQ4NjgzLCAiY29sIjogMTU5LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS45OTQ3MjU3MzgzOTY2MjQ0LCAiY29sIjogMTU5LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMi44NjYwMzM3NTUyNzQyNjE2LCAiY29sIjogMTU5LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMS42MTg3OTYxOTg1MjE2NDcyLCAiY29sIjogMTU5LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC45MDMwNTU4NDgyNjEzMjc3LCAiY29sIjogMTU5LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC41MDA1Mjc5ODMxMDQ1NDA2LCAiY29sIjogMTU5LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4yNTQyNTUzMTkxNDg5MzYyLCAiY29sIjogMTU5LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2EyYjhhMzA2YTlhZTQ0ZGRiM2E1NTUzYzFjNDBlMzVhKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZGQxNTdhYzg2ZDQxNGM3ZTk3ZjE1OTgyZGM0NWRlNGYgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40NDAyNTIsLTk5LjE2MzQ1NSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzA2OGYzMzdhMTFmMDQzZWU5MzY0ZmZmMGUwNzkwZDAyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2MxZmQ0OGRkOGMzNjRmMjU5Y2EzYzQ2ZWIxODc2MmY1ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfYzFmZDQ4ZGQ4YzM2NGYyNTljYTNjNDZlYjE4NzYyZjUiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzA2OGYzMzdhMTFmMDQzZWU5MzY0ZmZmMGUwNzkwZDAyLnNldENvbnRlbnQodmVnYV9jMWZkNDhkZDhjMzY0ZjI1OWNhM2M0NmViMTg3NjJmNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9kZDE1N2FjODZkNDE0YzdlOTdmMTU5ODJkYzQ1ZGU0Zi5iaW5kUG9wdXAocG9wdXBfMDY4ZjMzN2ExMWYwNDNlZTkzNjRmZmYwZTA3OTBkMDIpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTYwOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4xMjgyMzI3NTg2MjA2ODk2NywgImNvbCI6IDE2MCwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDUxODEzNDcxNTAyNTkwNjc2LCAiY29sIjogMTYwLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNjAsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE2MCwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTYwLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNjAsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMjI0ODUyMDcxMDA1OTE3MTcsICJjb2wiOiAxNjAsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMzAzMjg3MzgwNjk5ODkzOTcsICJjb2wiOiAxNjAsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuNjExMjI4ODEzNTU5MzIyLCAiY29sIjogMTYwLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjY3MjY2OTQ5MTUyNTQyMzgsICJjb2wiOiAxNjAsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuNjA0MDEyNjcxNTk0NTA5LCAiY29sIjogMTYwLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC43MiwgImNvbCI6IDE2MCwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNzMxNTc4OTQ3MzY4NDIxMSwgImNvbCI6IDE2MCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDEuMDMwNDk0MjE2NjE0MDkwNSwgImNvbCI6IDE2MCwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuMzgzNTYxNjQzODM1NjE2NCwgImNvbCI6IDE2MCwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuNjA0ODQ3MjA3NTg2OTMzNiwgImNvbCI6IDE2MCwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDEuNDI2NzY1MDE1ODA2MTExNiwgImNvbCI6IDE2MCwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDEuMzQ1NjI2OTc1NzYzOTYyLCAiY29sIjogMTYwLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMi40NTE0NzY3OTMyNDg5NDUsICJjb2wiOiAxNjAsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAyLjc4MDU5MDcxNzI5OTU3OCwgImNvbCI6IDE2MCwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDIuMTQ2Nzc5MzAzMDYyMzAyLCAiY29sIjogMTYwLCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMS40NzQxODMzNTA4OTU2Nzk2LCAiY29sIjogMTYwLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC45MTg2OTA2MDE5MDA3MzkxLCAiY29sIjogMTYwLCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC41MDEwNjM4Mjk3ODcyMzQxLCAiY29sIjogMTYwLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2MxZmQ0OGRkOGMzNjRmMjU5Y2EzYzQ2ZWIxODc2MmY1KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNmM2YWZjZDZlMjYyNDk3ZDg4YTg4OWU0OWE1MWYzNDIgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MDU1MzMsLTk5LjE2NDkxMyksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzEyNGEzNGMwYTY5NjQ3ZWFhMDU2NmY5NDYwMGM0MTViID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzI3ZDMxZGYzMzZhNzRlOWJhMjVmYjBkOGJiMDFjZmNjID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfMjdkMzFkZjMzNmE3NGU5YmEyNWZiMGQ4YmIwMWNmY2MiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzEyNGEzNGMwYTY5NjQ3ZWFhMDU2NmY5NDYwMGM0MTViLnNldENvbnRlbnQodmVnYV8yN2QzMWRmMzM2YTc0ZTliYTI1ZmIwZDhiYjAxY2ZjYyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl82YzZhZmNkNmUyNjI0OTdkODhhODg5ZTQ5YTUxZjM0Mi5iaW5kUG9wdXAocG9wdXBfMTI0YTM0YzBhNjk2NDdlYWEwNTY2Zjk0NjAwYzQxNWIpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTYxOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wOTE1OTQ4Mjc1ODYyMDY4OSwgImNvbCI6IDE2MSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDM0NTQyMzE0MzM1MDYwNDQ3LCAiY29sIjogMTYxLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwMzA3NjkyMzA3NjkyMzA3NywgImNvbCI6IDE2MSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDU2MTc5Nzc1MjgwODk4ODc1LCAiY29sIjogMTYxLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNjEsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE2MSwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wODQwMjM2Njg2MzkwNTMyNSwgImNvbCI6IDE2MSwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC4xNjAxMjcyNTM0NDY0NDc1MiwgImNvbCI6IDE2MSwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC4yNDU3NjI3MTE4NjQ0MDY4LCAiY29sIjogMTYxLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjQ4NjIyODgxMzU1OTMyMiwgImNvbCI6IDE2MSwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC40NTUxMjE0MzYxMTQwNDQ0LCAiY29sIjogMTYxLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC40MDk0NzM2ODQyMTA1MjYzLCAiY29sIjogMTYxLCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC4zODIxMDUyNjMxNTc4OTQ3LCAiY29sIjogMTYxLCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC4zNzQzNDI3OTcwNTU3MzA4LCAiY29sIjogMTYxLCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMC42MTg1NDU4Mzc3MjM5MTk5LCAiY29sIjogMTYxLCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMC43ODM5ODMxNDAxNDc1MjM3LCAiY29sIjogMTYxLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC41Njc5NjYyODAyOTUwNDc0LCAiY29sIjogMTYxLCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC40ODc4ODE5ODEwMzI2NjU5NSwgImNvbCI6IDE2MSwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDAuODM5NjYyNDQ3MjU3MzgzOSwgImNvbCI6IDE2MSwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDEuMDc1OTQ5MzY3MDg4NjA3NiwgImNvbCI6IDE2MSwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuNzYwMjk1NjcwNTM4NTQyNywgImNvbCI6IDE2MSwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuNjE0MzMwODc0NjA0ODQ3MywgImNvbCI6IDE2MSwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuNjEwMzQ4NDY4ODQ4OTk2OSwgImNvbCI6IDE2MSwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMjk2ODA4NTEwNjM4Mjk3OSwgImNvbCI6IDE2MSwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV8yN2QzMWRmMzM2YTc0ZTliYTI1ZmIwZDhiYjAxY2ZjYyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzcxNzIwZmRmMjE4MDQwMGViOTM5ZGE4Nzk5YjE2MWIzID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDA0OTA3LC05OS4xNjI0ODUpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81MGFlOWRkZGEyOGY0YTc5YWM4ZjdhM2M2Zjg5NWYyNyA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV9kYzFlZGFlM2ZjNzE0ZTY0YjY4NzY3YTg5MjhkMzAwNyA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhX2RjMWVkYWUzZmM3MTRlNjRiNjg3NjdhODkyOGQzMDA3Ij48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81MGFlOWRkZGEyOGY0YTc5YWM4ZjdhM2M2Zjg5NWYyNy5zZXRDb250ZW50KHZlZ2FfZGMxZWRhZTNmYzcxNGU2NGI2ODc2N2E4OTI4ZDMwMDcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNzE3MjBmZGYyMTgwNDAwZWI5MzlkYTg3OTliMTYxYjMuYmluZFBvcHVwKHBvcHVwXzUwYWU5ZGRkYTI4ZjRhNzlhYzhmN2EzYzZmODk1ZjI3KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDE2MjogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMTQxMTYzNzkzMTAzNDQ4MywgImNvbCI6IDE2MiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDE3MjcxMTU3MTY3NTMwMjI0LCAiY29sIjogMTYyLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwMzA3NjkyMzA3NjkyMzA3NywgImNvbCI6IDE2MiwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDI4MDg5ODg3NjQwNDQ5NDM3LCAiY29sIjogMTYyLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAwMzY2MzAwMzY2MzAwMzY2MywgImNvbCI6IDE2MiwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTYyLCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjA3ODEwNjUwODg3NTczOTY0LCAiY29sIjogMTYyLCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjUyODEwMTgwMjc1NzE1OCwgImNvbCI6IDE2MiwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC41MTI3MTE4NjQ0MDY3Nzk2LCAiY29sIjogMTYyLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjg4MzQ3NDU3NjI3MTE4NjQsICJjb2wiOiAxNjIsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuNjIxOTY0MDk3MTQ4ODkxMiwgImNvbCI6IDE2MiwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNDIyMTA1MjYzMTU3ODk0NzYsICJjb2wiOiAxNjIsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjUzMzY4NDIxMDUyNjMxNTgsICJjb2wiOiAxNjIsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjY1NDA0ODM3MDEzNjY5ODMsICJjb2wiOiAxNjIsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjg1MzUzMDAzMTYxMjIyMzQsICJjb2wiOiAxNjIsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjE4MDE4OTY3MzM0MDM1ODMsICJjb2wiOiAxNjIsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjg5Nzc4NzE0NDM2MjQ4NjksICJjb2wiOiAxNjIsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAxLjE0MzMwODc0NjA0ODQ3MiwgImNvbCI6IDE2MiwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDEuMzYwNzU5NDkzNjcwODg2LCAiY29sIjogMTYyLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS43NjA1NDg1MjMyMDY3NTEsICJjb2wiOiAxNjIsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAxLjM4ODU5NTU2NDk0MTkyMiwgImNvbCI6IDE2MiwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDEuMzIzNDk4NDE5Mzg4ODMwNCwgImNvbCI6IDE2MiwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuODczMjg0MDU0OTEwMjQyOSwgImNvbCI6IDE2MiwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuNDgxOTE0ODkzNjE3MDIxMywgImNvbCI6IDE2MiwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9kYzFlZGFlM2ZjNzE0ZTY0YjY4NzY3YTg5MjhkMzAwNyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzlhYzA4OWFhOGE1YjRjMjU4ODJkNTg3NDFhZjdhMGJlID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDA1MjQ2LC05OS4xNTY0MyksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzVjZTI0YmRkYjAzMDRhNWFiNTY3NTA2ZTk1ZjBkZTM0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2FhM2VmM2MzNjFhZDQ1Mjg5OTA0OGY2YTI3ODE2OGRkID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfYWEzZWYzYzM2MWFkNDUyODk5MDQ4ZjZhMjc4MTY4ZGQiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzVjZTI0YmRkYjAzMDRhNWFiNTY3NTA2ZTk1ZjBkZTM0LnNldENvbnRlbnQodmVnYV9hYTNlZjNjMzYxYWQ0NTI4OTkwNDhmNmEyNzgxNjhkZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl85YWMwODlhYThhNWI0YzI1ODgyZDU4NzQxYWY3YTBiZS5iaW5kUG9wdXAocG9wdXBfNWNlMjRiZGRiMDMwNGE1YWI1Njc1MDZlOTVmMGRlMzQpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTYzOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4xNDc2MjkzMTAzNDQ4Mjc2LCAiY29sIjogMTYzLCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAwMTcyNzExNTcxNjc1MzAyMjQsICJjb2wiOiAxNjMsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMDAzMDc2OTIzMDc2OTIzMDc3LCAiY29sIjogMTYzLCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNjMsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMDAzNjYzMDAzNjYzMDAzNjYzLCAiY29sIjogMTYzLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNjMsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMzY0NDk3MDQxNDIwMTE4MzUsICJjb2wiOiAxNjMsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuNzM3MDA5NTQ0MDA4NDgzNSwgImNvbCI6IDE2MywgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMS4wNDg3Mjg4MTM1NTkzMjIsICJjb2wiOiAxNjMsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDEuMDM3MDc2MjcxMTg2NDQwNywgImNvbCI6IDE2MywgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC45ODgzODQzNzE3MDAxMDU2LCAiY29sIjogMTYzLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC44NzE1Nzg5NDczNjg0MjEsICJjb2wiOiAxNjMsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjk4NzM2ODQyMTA1MjYzMTYsICJjb2wiOiAxNjMsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAxLjA4NTE3MzUwMTU3NzI4NywgImNvbCI6IDE2MywgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuNjQ4MDUwNTc5NTU3NDI5LCAiY29sIjogMTYzLCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMi4wMDYzMjI0NDQ2Nzg2MDksICJjb2wiOiAxNjMsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAxLjY1MDE1ODA2MTExNjk2NTMsICJjb2wiOiAxNjMsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAxLjkwNTE2MzMyOTgyMDg2NDEsICJjb2wiOiAxNjMsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAzLjQ3NDY4MzU0NDMwMzc5NzMsICJjb2wiOiAxNjMsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAzLjc1LCAiY29sIjogMTYzLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMi4yMTIyNDkyMDgwMjUzNDMsICJjb2wiOiAxNjMsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAxLjM5ODMxNDAxNDc1MjM3MSwgImNvbCI6IDE2MywgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuODY0ODM2MzI1MjM3NTkyNCwgImNvbCI6IDE2MywgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuNDc2NTk1NzQ0NjgwODUxMSwgImNvbCI6IDE2MywgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9hYTNlZjNjMzYxYWQ0NTI4OTkwNDhmNmEyNzgxNjhkZCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyX2I0OTY5ZDhlNWM3YzRhOTY5ZTA5MTdmYWMyZWY1MGI3ID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDAzMjA0LC05OS4xNjU5NiksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2VjNjlmZWE0MjIxNDRiOWI5NGFhNjMwOWVlNDRjMDcyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzAyZThiMjY5OGZiMTQzMmZhNjBjOGU0MWZlYWQ0MDZjID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfMDJlOGIyNjk4ZmIxNDMyZmE2MGM4ZTQxZmVhZDQwNmMiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2VjNjlmZWE0MjIxNDRiOWI5NGFhNjMwOWVlNDRjMDcyLnNldENvbnRlbnQodmVnYV8wMmU4YjI2OThmYjE0MzJmYTYwYzhlNDFmZWFkNDA2Yyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9iNDk2OWQ4ZTVjN2M0YTk2OWUwOTE3ZmFjMmVmNTBiNy5iaW5kUG9wdXAocG9wdXBfZWM2OWZlYTQyMjE0NGI5Yjk0YWE2MzA5ZWU0NGMwNzIpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTY0OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4xMzc5MzEwMzQ0ODI3NTg2MiwgImNvbCI6IDE2NCwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDUxODEzNDcxNTAyNTkwNjc2LCAiY29sIjogMTY0LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNjQsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE2NCwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTY0LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNjQsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDUzMjU0NDM3ODY5ODIyNDksICJjb2wiOiAxNjQsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMTUyNzA0MTM1NzM3MDA5NTYsICJjb2wiOiAxNjQsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuNzgxNzc5NjYxMDE2OTQ5MiwgImNvbCI6IDE2NCwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS4xODUzODEzNTU5MzIyMDMzLCAiY29sIjogMTY0LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjYyMDkwODEzMDkzOTgwOTksICJjb2wiOiAxNjQsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjYwMzE1Nzg5NDczNjg0MjEsICJjb2wiOiAxNjQsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjcxNDczNjg0MjEwNTI2MzEsICJjb2wiOiAxNjQsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjg4MzI4MDc1NzA5Nzc5MTcsICJjb2wiOiAxNjQsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjIyMzM5MzA0NTMxMDg1MzUsICJjb2wiOiAxNjQsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjM4MzU2MTY0MzgzNTYxNjQsICJjb2wiOiAxNjQsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAxLjAzMjY2NTk2NDE3MjgxMzUsICJjb2wiOiAxNjQsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAxLjM2MjQ4NjgyODI0MDI1MywgImNvbCI6IDE2NCwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDEuNTMyNzAwNDIxOTQwOTI4NCwgImNvbCI6IDE2NCwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDIuMDkyODI3MDA0MjE5NDA5NSwgImNvbCI6IDE2NCwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDEuNzc1MDc5MTk3NDY1NjgxLCAiY29sIjogMTY0LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMS4yMTQ5NjMxMTkwNzI3MDgyLCAiY29sIjogMTY0LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC42OTc5OTM2NjQyMDI3NDU2LCAiY29sIjogMTY0LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC40MTcwMjEyNzY1OTU3NDQ2NywgImNvbCI6IDE2NCwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV8wMmU4YjI2OThmYjE0MzJmYTYwYzhlNDFmZWFkNDA2Yyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzJlNjhiOTY3M2FiMTRhYTZhOGQ5M2I4YTUwNGNhMGQxID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDA0MjY4LC05OS4xNjA1MDMpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83ZWI4ZmQ3OWYwZTI0ZjExOGZkYWQ1ZmRmMDE1MWM4NiA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV9hZWFiOGJmM2NjN2U0Y2JhOTYxYTA1Yzc3NTRkNjk0OCA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhX2FlYWI4YmYzY2M3ZTRjYmE5NjFhMDVjNzc1NGQ2OTQ4Ij48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83ZWI4ZmQ3OWYwZTI0ZjExOGZkYWQ1ZmRmMDE1MWM4Ni5zZXRDb250ZW50KHZlZ2FfYWVhYjhiZjNjYzdlNGNiYTk2MWEwNWM3NzU0ZDY5NDgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfMmU2OGI5NjczYWIxNGFhNmE4ZDkzYjhhNTA0Y2EwZDEuYmluZFBvcHVwKHBvcHVwXzdlYjhmZDc5ZjBlMjRmMTE4ZmRhZDVmZGYwMTUxYzg2KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDE2NTogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMTE0MjI0MTM3OTMxMDM0NDksICJjb2wiOiAxNjUsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDA2OTA4NDYyODY3MDEyMDg5NSwgImNvbCI6IDE2NSwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMDMwNzY5MjMwNzY5MjMwNzcsICJjb2wiOiAxNjUsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE2NSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTY1LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNjUsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMTA4ODc1NzM5NjQ0OTcwNDEsICJjb2wiOiAxNjUsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMTk5MzYzNzMyNzY3NzYyNDUsICJjb2wiOiAxNjUsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuNTMxNzc5NjYxMDE2OTQ5MiwgImNvbCI6IDE2NSwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC40OTY4MjIwMzM4OTgzMDUxLCAiY29sIjogMTY1LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjU1NzU1MDE1ODM5NDkzMTQsICJjb2wiOiAxNjUsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjU5MTU3ODk0NzM2ODQyMTEsICJjb2wiOiAxNjUsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjU4NzM2ODQyMTA1MjYzMTUsICJjb2wiOiAxNjUsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjcyOTc1ODE0OTMxNjUwOSwgImNvbCI6IDE2NSwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuMjIxMjg1NTYzNzUxMzE3MSwgImNvbCI6IDE2NSwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuMTU5MTE0ODU3NzQ0OTk0OCwgImNvbCI6IDE2NSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuOTE2NzU0NDc4Mzk4MzE0LCAiY29sIjogMTY1LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMS4wOTI3MjkxODg2MTk1OTk2LCAiY29sIjogMTY1LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS42NjQ1NTY5NjIwMjUzMTY0LCAiY29sIjogMTY1LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS45OTQ3MjU3MzgzOTY2MjQ0LCAiY29sIjogMTY1LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMS41Mzg1NDI3NjY2MzE0Njc3LCAiY29sIjogMTY1LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMS4wNzA2MDA2MzIyNDQ0Njc5LCAiY29sIjogMTY1LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC43NzE5MTEyOTg4Mzg0MzcxLCAiY29sIjogMTY1LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4zMzgyOTc4NzIzNDA0MjU1LCAiY29sIjogMTY1LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2FlYWI4YmYzY2M3ZTRjYmE5NjFhMDVjNzc1NGQ2OTQ4KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNjBlYTBjMDY3NjhmNDNmOTlmNjU0NjE0YTBhZWRhY2EgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MDYwNjksLTk5LjE4MzU0OSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzIxNTM0YTE1ZjQzZjQyYTI4YWEwNzIzMGExNjM4NDUzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2Q1ZGE2NTM1ZTMyMzQ1ZTA4MmY5NDc5YWQ3MjU3NThlID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfZDVkYTY1MzVlMzIzNDVlMDgyZjk0NzlhZDcyNTc1OGUiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzIxNTM0YTE1ZjQzZjQyYTI4YWEwNzIzMGExNjM4NDUzLnNldENvbnRlbnQodmVnYV9kNWRhNjUzNWUzMjM0NWUwODJmOTQ3OWFkNzI1NzU4ZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl82MGVhMGMwNjc2OGY0M2Y5OWY2NTQ2MTRhMGFlZGFjYS5iaW5kUG9wdXAocG9wdXBfMjE1MzRhMTVmNDNmNDJhMjhhYTA3MjMwYTE2Mzg0NTMpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTY2OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wNjQ2NTUxNzI0MTM3OTMxMSwgImNvbCI6IDE2NiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTY2LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwMzA3NjkyMzA3NjkyMzA3NywgImNvbCI6IDE2NiwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTY2LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNjYsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE2NiwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wODg3NTczOTY0NDk3MDQxNCwgImNvbCI6IDE2NiwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC4yMzIyMzc1Mzk3NjY3MDIwMywgImNvbCI6IDE2NiwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC40NTIzMzA1MDg0NzQ1NzYzLCAiY29sIjogMTY2LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjczNzI4ODEzNTU5MzIyMDQsICJjb2wiOiAxNjYsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuNDY5OTA0OTYzMDQxMTgyNywgImNvbCI6IDE2NiwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNDE3ODk0NzM2ODQyMTA1MjYsICJjb2wiOiAxNjYsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjUsICJjb2wiOiAxNjYsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjU1NjI1NjU3MjAyOTQ0MjcsICJjb2wiOiAxNjYsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjc2MDgwMDg0Mjk5MjYyMzgsICJjb2wiOiAxNjYsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjc0NjA0ODQ3MjA3NTg2OTMsICJjb2wiOiAxNjYsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjYxODU0NTgzNzcyMzkxOTksICJjb2wiOiAxNjYsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjUwNTc5NTU3NDI4ODcyNSwgImNvbCI6IDE2NiwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDAuNzA3ODA1OTA3MTcyOTk1NywgImNvbCI6IDE2NiwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDAuOTA4MjI3ODQ4MTAxMjY1OCwgImNvbCI6IDE2NiwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuNzA5NjA5MjkyNTAyNjM5OSwgImNvbCI6IDE2NiwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuNTc1MzQyNDY1NzUzNDI0NiwgImNvbCI6IDE2NiwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuNDE4MTYyNjE4Nzk2MTk4NTQsICJjb2wiOiAxNjYsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjI3NDQ2ODA4NTEwNjM4MywgImNvbCI6IDE2NiwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9kNWRhNjUzNWUzMjM0NWUwODJmOTQ3OWFkNzI1NzU4ZSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzJjYTQxZWM0ZDgwNDRjZjk4ZDBjNzJhMWIxOTY5NWNhID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDA0NjUxLC05OS4xNzkzNzUpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wZjk4MGYzYTQ2YjU0NzhjOWE2NjI4NmQ3ODE1YzNlMyA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV85ZTBlY2RkNTYzNTY0ZDM0ODc5ZmIyOGFkZjQ2YzU1YSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzllMGVjZGQ1NjM1NjRkMzQ4NzlmYjI4YWRmNDZjNTVhIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wZjk4MGYzYTQ2YjU0NzhjOWE2NjI4NmQ3ODE1YzNlMy5zZXRDb250ZW50KHZlZ2FfOWUwZWNkZDU2MzU2NGQzNDg3OWZiMjhhZGY0NmM1NWEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfMmNhNDFlYzRkODA0NGNmOThkMGM3MmExYjE5Njk1Y2EuYmluZFBvcHVwKHBvcHVwXzBmOTgwZjNhNDZiNTQ3OGM5YTY2Mjg2ZDc4MTVjM2UzKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDE2NzogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDUwNjQ2NTUxNzI0MTM3OTMsICJjb2wiOiAxNjcsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDE1NTQ0MDQxNDUwNzc3MjAyLCAiY29sIjogMTY3LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwMzA3NjkyMzA3NjkyMzA3NywgImNvbCI6IDE2NywgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTY3LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAwMzY2MzAwMzY2MzAwMzY2MywgImNvbCI6IDE2NywgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTY3LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjMxNTk3NjMzMTM2MDk0Njc3LCAiY29sIjogMTY3LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjUxOTYxODIzOTY2MDY1NzUsICJjb2wiOiAxNjcsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuMzg2NjUyNTQyMzcyODgxNCwgImNvbCI6IDE2NywgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC40NTk3NDU3NjI3MTE4NjQ0LCAiY29sIjogMTY3LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjM0NTMwMDk1MDM2OTU4ODIsICJjb2wiOiAxNjcsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjMwODQyMTA1MjYzMTU3ODkzLCAiY29sIjogMTY3LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC40NDIxMDUyNjMxNTc4OTQ3LCAiY29sIjogMTY3LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC40MzExMjUxMzE0NDA1ODg4NCwgImNvbCI6IDE2NywgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDAuODczNTUxMTA2NDI3ODE4NywgImNvbCI6IDE2NywgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDAuNjAxNjg1OTg1MjQ3NjI5MSwgImNvbCI6IDE2NywgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuNTUzMjEzOTA5Mzc4MjkzLCAiY29sIjogMTY3LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC41NDE2MjI3NjA4MDA4NDMsICJjb2wiOiAxNjcsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAwLjkzNjcwODg2MDc1OTQ5MzcsICJjb2wiOiAxNjcsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjAsICJjb2wiOiAxNjcsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjgxMDk4MjA0ODU3NDQ0NTcsICJjb2wiOiAxNjcsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjcxOTcwNDk1MjU4MTY2NDksICJjb2wiOiAxNjcsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjUxNDI1NTU0MzgyMjU5NzYsICJjb2wiOiAxNjcsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjI2NDg5MzYxNzAyMTI3NjYsICJjb2wiOiAxNjcsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfOWUwZWNkZDU2MzU2NGQzNDg3OWZiMjhhZGY0NmM1NWEpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9mMDAxZGEzMTY1MzY0YWE3YTQ4YmYwY2JmZTA4NTI4MSA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQwMzk5NywtOTkuMTc3NiksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzdiY2ZlMmRkNmZkYTQ0ZjRiMzk1NDYzZjg0NjNkZmZiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzRkZTJiYjYwYmM5MDRjZDBhY2RhNDVmMTdmYjFlODkwID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfNGRlMmJiNjBiYzkwNGNkMGFjZGE0NWYxN2ZiMWU4OTAiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzdiY2ZlMmRkNmZkYTQ0ZjRiMzk1NDYzZjg0NjNkZmZiLnNldENvbnRlbnQodmVnYV80ZGUyYmI2MGJjOTA0Y2QwYWNkYTQ1ZjE3ZmIxZTg5MCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9mMDAxZGEzMTY1MzY0YWE3YTQ4YmYwY2JmZTA4NTI4MS5iaW5kUG9wdXAocG9wdXBfN2JjZmUyZGQ2ZmRhNDRmNGIzOTU0NjNmODQ2M2RmZmIpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTY4OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wNTYwMzQ0ODI3NTg2MjA2OSwgImNvbCI6IDE2OCwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTY4LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNjgsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDAyODA4OTg4NzY0MDQ0OTQzNywgImNvbCI6IDE2OCwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTY4LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNjgsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDc2OTIzMDc2OTIzMDc2OTMsICJjb2wiOiAxNjgsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMjg1MjU5ODA5MTE5ODMwMzQsICJjb2wiOiAxNjgsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuMzk4MzA1MDg0NzQ1NzYyNywgImNvbCI6IDE2OCwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC4yNTc0MTUyNTQyMzcyODgxLCAiY29sIjogMTY4LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjI0Mjg3MjIyODA4ODcwMTE1LCAiY29sIjogMTY4LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC4yNzg5NDczNjg0MjEwNTI2LCAiY29sIjogMTY4LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC4zNDUyNjMxNTc4OTQ3MzY4LCAiY29sIjogMTY4LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC40MDc5OTE1ODc4MDIzMTMzNywgImNvbCI6IDE2OCwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDAuNjEyMjIzMzkzMDQ1MzEwOCwgImNvbCI6IDE2OCwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDAuNjkxMjUzOTUxNTI3OTI0MSwgImNvbCI6IDE2OCwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuNTc1MzQyNDY1NzUzNDI0NiwgImNvbCI6IDE2OCwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNjg5MTQ2NDY5OTY4Mzg3OCwgImNvbCI6IDE2OCwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDAuNzc3NDI2MTYwMzM3NTUyNywgImNvbCI6IDE2OCwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDAuODgxODU2NTQwMDg0Mzg4MiwgImNvbCI6IDE2OCwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuOTU1NjQ5NDE5MjE4NTg1LCAiY29sIjogMTY4LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC41NzYzOTYyMDY1MzMxOTI4LCAiY29sIjogMTY4LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4zMDcyODYxNjY4NDI2NjEsICJjb2wiOiAxNjgsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjE5MDQyNTUzMTkxNDg5MzYxLCAiY29sIjogMTY4LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzRkZTJiYjYwYmM5MDRjZDBhY2RhNDVmMTdmYjFlODkwKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfOWRjMGFhMTA2ZjEzNDZmZDg2OGY3ZjYyM2EyYjZiYjUgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MDMwMTksLTk5LjE3NDkzNCksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2FkMTNiMGNjNWMwNDRjYjQ4MGFjM2FhN2RjYWMzZjdlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2QxYjA1NTA2N2YwOTQwMmI5Y2VhMjM0ZTg5YzFkNTg0ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfZDFiMDU1MDY3ZjA5NDAyYjljZWEyMzRlODljMWQ1ODQiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2FkMTNiMGNjNWMwNDRjYjQ4MGFjM2FhN2RjYWMzZjdlLnNldENvbnRlbnQodmVnYV9kMWIwNTUwNjdmMDk0MDJiOWNlYTIzNGU4OWMxZDU4NCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl85ZGMwYWExMDZmMTM0NmZkODY4ZjdmNjIzYTJiNmJiNS5iaW5kUG9wdXAocG9wdXBfYWQxM2IwY2M1YzA0NGNiNDgwYWMzYWE3ZGNhYzNmN2UpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTY5OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wNzg2NjM3OTMxMDM0NDgyNywgImNvbCI6IDE2OSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDE3MjcxMTU3MTY3NTMwMjI0LCAiY29sIjogMTY5LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNjksICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE2OSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTY5LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNjksICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMTU2MjEzMDE3NzUxNDc5MjgsICJjb2wiOiAxNjksICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMzE4MTMzNjE2MTE4NzY5OSwgImNvbCI6IDE2OSwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC4zODg3NzExODY0NDA2NzgsICJjb2wiOiAxNjksICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDAuNDg1MTY5NDkxNTI1NDIzNywgImNvbCI6IDE2OSwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC40NzgzNTI2OTI3MTM4MzMyLCAiY29sIjogMTY5LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC41NCwgImNvbCI6IDE2OSwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNDc2ODQyMTA1MjYzMTU3OSwgImNvbCI6IDE2OSwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuNjg5ODAwMjEwMzA0OTQyMiwgImNvbCI6IDE2OSwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuMjkyOTM5OTM2Nzc1NTUzMiwgImNvbCI6IDE2OSwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuMDY1MzMxOTI4MzQ1NjI3LCAiY29sIjogMTY5LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC44Mzg3Nzc2NjA2OTU0Njg5LCAiY29sIjogMTY5LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC45OTc4OTI1MTg0NDA0NjM3LCAiY29sIjogMTY5LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMi4xNjI0NDcyNTczODM5NjY0LCAiY29sIjogMTY5LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS43NzUzMTY0NTU2OTYyMDI0LCAiY29sIjogMTY5LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMS4xMTE5MzI0MTgxNjI2MTksICJjb2wiOiAxNjksICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjg3MTQ0MzYyNDg2ODI4MjQsICJjb2wiOiAxNjksICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjU2Mzg4NTk1NTY0OTQxOTIsICJjb2wiOiAxNjksICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjIyNTUzMTkxNDg5MzYxNywgImNvbCI6IDE2OSwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9kMWIwNTUwNjdmMDk0MDJiOWNlYTIzNGU4OWMxZDU4NCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyX2I5MWY5NTBlM2JjNDRiMTViMWE0YjQ4ZDUyNDQzNTZhID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDA0MDI5LC05OS4xODQzNDIpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mNzJmZTI5NjZhOWI0ZTg2OGVjYjhiMzU1ODhlOTlhNCA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV9mYjMwZWViNjgxOGI0MTA4YTAxOTI5ZDNiZWU4ZWY1MSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhX2ZiMzBlZWI2ODE4YjQxMDhhMDE5MjlkM2JlZThlZjUxIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mNzJmZTI5NjZhOWI0ZTg2OGVjYjhiMzU1ODhlOTlhNC5zZXRDb250ZW50KHZlZ2FfZmIzMGVlYjY4MThiNDEwOGEwMTkyOWQzYmVlOGVmNTEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfYjkxZjk1MGUzYmM0NGIxNWIxYTRiNDhkNTI0NDM1NmEuYmluZFBvcHVwKHBvcHVwX2Y3MmZlMjk2NmE5YjRlODY4ZWNiOGIzNTU4OGU5OWE0KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDE3MDogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDQyMDI1ODYyMDY4OTY1NTIsICJjb2wiOiAxNzAsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE3MCwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTcwLCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAwMjgwODk4ODc2NDA0NDk0MzcsICJjb2wiOiAxNzAsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE3MCwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTcwLCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjMyNzgxMDY1MDg4NzU3Mzk0LCAiY29sIjogMTcwLCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjMxNDk1MjI3OTk1NzU4MjIsICJjb2wiOiAxNzAsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuNTA2MzU1OTMyMjAzMzg5OCwgImNvbCI6IDE3MCwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC4yODcwNzYyNzExODY0NDA3LCAiY29sIjogMTcwLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjI1NTU0MzgyMjU5NzY3NjksICJjb2wiOiAxNzAsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjI2MTA1MjYzMTU3ODk0NzM3LCAiY29sIjogMTcwLCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC4zMzQ3MzY4NDIxMDUyNjMxNywgImNvbCI6IDE3MCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuMzYyNzc2MDI1MjM2NTkzMSwgImNvbCI6IDE3MCwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDAuNTc5NTU3NDI4ODcyNDk3NCwgImNvbCI6IDE3MCwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDAuNDkzMTUwNjg0OTMxNTA2OCwgImNvbCI6IDE3MCwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuNDU1MjE2MDE2ODU5ODUyNDcsICJjb2wiOiAxNzAsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjU2Mzc1MTMxNzE3NTk3NDcsICJjb2wiOiAxNzAsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjA4NTQ0MzAzNzk3NDY4MzYsICJjb2wiOiAxNzAsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjE3MDg4NjA3NTk0OTM2NzEsICJjb2wiOiAxNzAsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjk0MDg2NTg5MjI5MTQ0NjcsICJjb2wiOiAxNzAsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjYyMjc2MDgwMDg0Mjk5MjcsICJjb2wiOiAxNzAsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjQ5NDE5MjE4NTg1MDA1MjgsICJjb2wiOiAxNzAsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjIxNDg5MzYxNzAyMTI3NjYsICJjb2wiOiAxNzAsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfZmIzMGVlYjY4MThiNDEwOGEwMTkyOWQzYmVlOGVmNTEpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl84YjE0ODRlM2UwMDQ0MzE5YWU0OWZjOTRiMGFiMDJlNSA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQwMjU4NCwtOTkuMTc4MTk5KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzFhYjIyMmM0ZTBlNGZmNGI4ZjU5MmI5OGJmYjQ1MmMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfZmRjZWU2NzlkNmNmNGU5ZmIyYWU1OTc4MjU1YzY1YWMgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9mZGNlZTY3OWQ2Y2Y0ZTlmYjJhZTU5NzgyNTVjNjVhYyI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMzFhYjIyMmM0ZTBlNGZmNGI4ZjU5MmI5OGJmYjQ1MmMuc2V0Q29udGVudCh2ZWdhX2ZkY2VlNjc5ZDZjZjRlOWZiMmFlNTk3ODI1NWM2NWFjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzhiMTQ4NGUzZTAwNDQzMTlhZTQ5ZmM5NGIwYWIwMmU1LmJpbmRQb3B1cChwb3B1cF8zMWFiMjIyYzRlMGU0ZmY0YjhmNTkyYjk4YmZiNDUyYyk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxNzE6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjA2MTQyMjQxMzc5MzEwMzQ0NiwgImNvbCI6IDE3MSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDUxODEzNDcxNTAyNTkwNjc2LCAiY29sIjogMTcxLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNzEsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE3MSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTcxLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNzEsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDMzMTM2MDk0Njc0NTU2MjE0LCAiY29sIjogMTcxLCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjE3Mjg1MjU5ODA5MTE5ODMsICJjb2wiOiAxNzEsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuMzcxODIyMDMzODk4MzA1MSwgImNvbCI6IDE3MSwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC4zMzc5MjM3Mjg4MTM1NTkzLCAiY29sIjogMTcxLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjQwNzYwMjk1NjcwNTM4NTQzLCAiY29sIjogMTcxLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC4yNTU3ODk0NzM2ODQyMTA1LCAiY29sIjogMTcxLCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC4zNjYzMTU3ODk0NzM2ODQyLCAiY29sIjogMTcxLCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC40NTc0MTMyNDkyMTEzNTY0NSwgImNvbCI6IDE3MSwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDAuODYxOTU5OTU3ODUwMzY4OCwgImNvbCI6IDE3MSwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDAuNjkxMjUzOTUxNTI3OTI0MSwgImNvbCI6IDE3MSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuNTM3NDA3Nzk3NjgxNzcwMywgImNvbCI6IDE3MSwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNjM0MzUxOTQ5NDIwNDQyNiwgImNvbCI6IDE3MSwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDEuMTQ1NTY5NjIwMjUzMTY0NywgImNvbCI6IDE3MSwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDEuNDM3NzYzNzEzMDgwMTY4OCwgImNvbCI6IDE3MSwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDEuMDIzMjMxMjU2NTk5Nzg4OCwgImNvbCI6IDE3MSwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuNjcwMTc5MTM1OTMyNTYwNiwgImNvbCI6IDE3MSwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuNDQ1NjE3NzQwMjMyMzEyNTQsICJjb2wiOiAxNzEsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjI0NjgwODUxMDYzODI5Nzg3LCAiY29sIjogMTcxLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2ZkY2VlNjc5ZDZjZjRlOWZiMmFlNTk3ODI1NWM2NWFjKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZDNlYTc2OGE4NjYyNDk0YTkxNWYyZGIyNWEyMTAyYmUgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MDMzNjUsLTk5LjE4MTU1MyksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzJkZTIwM2MwNTlhODQwYjk5OTczNmQ1YWZhODE1OGM1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzYxM2EzODQyNGQwZTQ0NzI4YzM0ODU1YmRhZmFjN2JkID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfNjEzYTM4NDI0ZDBlNDQ3MjhjMzQ4NTViZGFmYWM3YmQiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzJkZTIwM2MwNTlhODQwYjk5OTczNmQ1YWZhODE1OGM1LnNldENvbnRlbnQodmVnYV82MTNhMzg0MjRkMGU0NDcyOGMzNDg1NWJkYWZhYzdiZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9kM2VhNzY4YTg2NjI0OTRhOTE1ZjJkYjI1YTIxMDJiZS5iaW5kUG9wdXAocG9wdXBfMmRlMjAzYzA1OWE4NDBiOTk5NzM2ZDVhZmE4MTU4YzUpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTcyOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wNDIwMjU4NjIwNjg5NjU1MiwgImNvbCI6IDE3MiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDE3MjcxMTU3MTY3NTMwMjI0LCAiY29sIjogMTcyLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNzIsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE3MiwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTcyLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNzIsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMTQwODI4NDAyMzY2ODYzOSwgImNvbCI6IDE3MiwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC4xMDYwNDQ1Mzg3MDYyNTY2MywgImNvbCI6IDE3MiwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC4yMTkyNzk2NjEwMTY5NDkxNSwgImNvbCI6IDE3MiwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC4zMTg4NTU5MzIyMDMzODk4LCAiY29sIjogMTcyLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjM1OTAyODUxMTA4NzY0NTIsICJjb2wiOiAxNzIsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjM4ODQyMTA1MjYzMTU3ODk0LCAiY29sIjogMTcyLCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC40MTY4NDIxMDUyNjMxNTc5LCAiY29sIjogMTcyLCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC41Mzk0MzIxNzY2NTYxNTE0LCAiY29sIjogMTcyLCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMC42MDI3Mzk3MjYwMjczOTcyLCAiY29sIjogMTcyLCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMC41NDY4OTE0NjQ2OTk2ODM5LCAiY29sIjogMTcyLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC40NDU3MzIzNDk4NDE5Mzg5LCAiY29sIjogMTcyLCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC41Mjg5Nzc4NzE0NDM2MjQ4LCAiY29sIjogMTcyLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMC44MzAxNjg3NzYzNzEzMDgsICJjb2wiOiAxNzIsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjE0NzY3OTMyNDg5NDUxNDcsICJjb2wiOiAxNzIsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjgyNjgyMTU0MTcxMDY2NTIsICJjb2wiOiAxNzIsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjU3NDI4ODcyNDk3MzY1NjUsICJjb2wiOiAxNzIsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjI5MTQ0NjY3MzcwNjQ0MTQsICJjb2wiOiAxNzIsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjE1NjM4Mjk3ODcyMzQwNDI2LCAiY29sIjogMTcyLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzYxM2EzODQyNGQwZTQ0NzI4YzM0ODU1YmRhZmFjN2JkKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfM2M2MDQyNDlhNWFiNDdjOTliODM1MWY5MmE3ZTUzM2MgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MDE2ODIsLTk5LjE3NjM5OCksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzg1MTBhMjU3MGZmMjQxNjQ5NDY5Y2Y1OGMzMTIyNzc5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2E5N2JkMjcxYTZlNDQzMDRhODcwZmJlMDgwMWU3ZTZmID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfYTk3YmQyNzFhNmU0NDMwNGE4NzBmYmUwODAxZTdlNmYiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzg1MTBhMjU3MGZmMjQxNjQ5NDY5Y2Y1OGMzMTIyNzc5LnNldENvbnRlbnQodmVnYV9hOTdiZDI3MWE2ZTQ0MzA0YTg3MGZiZTA4MDFlN2U2Zik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl8zYzYwNDI0OWE1YWI0N2M5OWI4MzUxZjkyYTdlNTMzYy5iaW5kUG9wdXAocG9wdXBfODUxMGEyNTcwZmYyNDE2NDk0NjljZjU4YzMxMjI3NzkpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTczOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4xMDk5MTM3OTMxMDM0NDgyNywgImNvbCI6IDE3MywgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTczLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNzMsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE3MywgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTczLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNzMsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDM1NTAyOTU4NTc5ODgxNjYsICJjb2wiOiAxNzMsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMTg3Njk4ODMzNTEwMDc0MjQsICJjb2wiOiAxNzMsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuNzEzOTgzMDUwODQ3NDU3NiwgImNvbCI6IDE3MywgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC40NDU5NzQ1NzYyNzExODY0LCAiY29sIjogMTczLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjMyNjI5MzU1ODYwNjEyNDYsICJjb2wiOiAxNzMsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjM0LCAiY29sIjogMTczLCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC4zNTA1MjYzMTU3ODk0NzM3LCAiY29sIjogMTczLCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC40NzczOTIyMTg3MTcxMzk4LCAiY29sIjogMTczLCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMC44Mzk4MzE0MDE0NzUyMzcsICJjb2wiOiAxNzMsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjk3NTc2Mzk2MjA2NTMzMTksICJjb2wiOiAxNzMsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjYzNTQwNTY5MDIwMDIxMDgsICJjb2wiOiAxNzMsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjczNTUxMTA2NDI3ODE4NzYsICJjb2wiOiAxNzMsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjQyNzIxNTE4OTg3MzQxNzgsICJjb2wiOiAxNzMsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjgyNDg5NDUxNDc2NzkzMjUsICJjb2wiOiAxNzMsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAxLjQ3MjAxNjg5NTQ1OTM0NTMsICJjb2wiOiAxNzMsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAxLjA4MTEzODA0MDA0MjE0OTUsICJjb2wiOiAxNzMsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjc2ODc0MzQwMDIxMTE5MzMsICJjb2wiOiAxNzMsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjM1NDI1NTMxOTE0ODkzNjE1LCAiY29sIjogMTczLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2E5N2JkMjcxYTZlNDQzMDRhODcwZmJlMDgwMWU3ZTZmKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfY2YzZTJmMGQxMjIyNGE4NTllYWZjMWY0OWE3ZjIwY2MgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MDA4MDYsLTk5LjE3MjY0NSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzg1NWExNDdhZDdkZTQ2M2NiMzY4MmExODBmODgwODQxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzNhYmRjNzBmNjgyNTQ2ZjI5ZGE1NDVmNWNjMWE0NGFhID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfM2FiZGM3MGY2ODI1NDZmMjlkYTU0NWY1Y2MxYTQ0YWEiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzg1NWExNDdhZDdkZTQ2M2NiMzY4MmExODBmODgwODQxLnNldENvbnRlbnQodmVnYV8zYWJkYzcwZjY4MjU0NmYyOWRhNTQ1ZjVjYzFhNDRhYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9jZjNlMmYwZDEyMjI0YTg1OWVhZmMxZjQ5YTdmMjBjYy5iaW5kUG9wdXAocG9wdXBfODU1YTE0N2FkN2RlNDYzY2IzNjgyYTE4MGY4ODA4NDEpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTc1OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4xMTUzMDE3MjQxMzc5MzEwNCwgImNvbCI6IDE3NSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDE3MjcxMTU3MTY3NTMwMjI0LCAiY29sIjogMTc1LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwMzA3NjkyMzA3NjkyMzA3NywgImNvbCI6IDE3NSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDI4MDg5ODg3NjQwNDQ5NDM3LCAiY29sIjogMTc1LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNzUsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE3NSwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wNzU3Mzk2NDQ5NzA0MTQyLCAiY29sIjogMTc1LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjQwOTMzMTkxOTQwNjE1MDYsICJjb2wiOiAxNzUsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDEuMDY1Njc3OTY2MTAxNjk0OSwgImNvbCI6IDE3NSwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS40OTQ3MDMzODk4MzA1MDg0LCAiY29sIjogMTc1LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjcwOTYwOTI5MjUwMjYzOTksICJjb2wiOiAxNzUsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjc3MjYzMTU3ODk0NzM2ODQsICJjb2wiOiAxNzUsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjY5MjYzMTU3ODk0NzM2ODQsICJjb2wiOiAxNzUsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjgyMjI5MjMyMzg2OTYxMDksICJjb2wiOiAxNzUsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjE2NTQzNzMwMjQyMzYwMzgsICJjb2wiOiAxNzUsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjIzMDc2OTIzMDc2OTIzMDgsICJjb2wiOiAxNzUsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAxLjM2NjcwMTc5MTM1OTMyNTYsICJjb2wiOiAxNzUsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAxLjExNjk2NTIyNjU1NDI2NzYsICJjb2wiOiAxNzUsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjcxOTQwOTI4MjcwMDQyMiwgImNvbCI6IDE3NSwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDEuODgwODAxNjg3NzYzNzEzLCAiY29sIjogMTc1LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMS41ODM5NDkzMTM2MjE5NjQsICJjb2wiOiAxNzUsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAxLjM2NDU5NDMwOTc5OTc4OTIsICJjb2wiOiAxNzUsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjk3ODg4MDY3NTgxODM3MzgsICJjb2wiOiAxNzUsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjQ1NDI1NTMxOTE0ODkzNjIsICJjb2wiOiAxNzUsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfM2FiZGM3MGY2ODI1NDZmMjlkYTU0NWY1Y2MxYTQ0YWEpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9kMDUxNDc3N2JiYjg0NTQ4YWU5MWE4NjI0YTQxZTA0NyA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQwOTIzLC05OS4xODMwODYpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iNjMyNjE5ODljYjU0YjQ1YjYxMGU2NDNlOGY0NjRiZSA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV8xNWY3N2FkOWUxNjA0OGM3ODE1ODRjYWFhY2JiYmY4NSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzE1Zjc3YWQ5ZTE2MDQ4Yzc4MTU4NGNhYWFjYmJiZjg1Ij48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iNjMyNjE5ODljYjU0YjQ1YjYxMGU2NDNlOGY0NjRiZS5zZXRDb250ZW50KHZlZ2FfMTVmNzdhZDllMTYwNDhjNzgxNTg0Y2FhYWNiYmJmODUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZDA1MTQ3NzdiYmI4NDU0OGFlOTFhODYyNGE0MWUwNDcuYmluZFBvcHVwKHBvcHVwX2I2MzI2MTk4OWNiNTRiNDViNjEwZTY0M2U4ZjQ2NGJlKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDE3NjogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDE0MDA4NjIwNjg5NjU1MTczLCAiY29sIjogMTc2LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNzYsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE3NiwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTc2LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAwMzY2MzAwMzY2MzAwMzY2MywgImNvbCI6IDE3NiwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTc2LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjQyMzY2ODYzOTA1MzI1NDQsICJjb2wiOiAxNzYsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMTc0OTczNDg4ODY1MzIzNDMsICJjb2wiOiAxNzYsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuMzE3Nzk2NjEwMTY5NDkxNSwgImNvbCI6IDE3NiwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMC4zMzM2ODY0NDA2Nzc5NjYxLCAiY29sIjogMTc2LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjI1MDI2Mzk5MTU1MjI3MDMsICJjb2wiOiAxNzYsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjI1MDUyNjMxNTc4OTQ3MzcsICJjb2wiOiAxNzYsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjI1MTU3ODk0NzM2ODQyMTA3LCAiY29sIjogMTc2LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC4zMDU5OTM2OTA4NTE3MzUsICJjb2wiOiAxNzYsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjM3MTk3MDQ5NTI1ODE2NjUsICJjb2wiOiAxNzYsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjMxNDAxNDc1MjM3MDkxNjc1LCAiY29sIjogMTc2LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC4zMjg3NjcxMjMyODc2NzEyLCAiY29sIjogMTc2LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC4zNjI0ODY4MjgyNDAyNTI5LCAiY29sIjogMTc2LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMC41NDMyNDg5NDUxNDc2NzkzLCAiY29sIjogMTc2LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMC43NTg0Mzg4MTg1NjU0MDA5LCAiY29sIjogMTc2LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC41NDkxMDI0Mjg3MjIyODA5LCAiY29sIjogMTc2LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC4yNzkyNDEzMDY2Mzg1NjY5LCAiY29sIjogMTc2LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4yMTg1ODUwMDUyNzk4MzEwNSwgImNvbCI6IDE3NiwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMDkxNDg5MzYxNzAyMTI3NjUsICJjb2wiOiAxNzYsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfMTVmNzdhZDllMTYwNDhjNzgxNTg0Y2FhYWNiYmJmODUpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl84M2VjMDA5YzdiNTM0OWQ2YjAzZmIyZDU2YzlhNzIzMSA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQwODg0MSwtOTkuMTgxNjkyKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzExNDllMzA3MGU2NDI5ODhlZGIwN2ZiMDY2ZjgxMmEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfYTZiYmEwODdmOWYyNDg3OWFmODczODMzZjhjYmE2OTYgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9hNmJiYTA4N2Y5ZjI0ODc5YWY4NzM4MzNmOGNiYTY5NiI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzExNDllMzA3MGU2NDI5ODhlZGIwN2ZiMDY2ZjgxMmEuc2V0Q29udGVudCh2ZWdhX2E2YmJhMDg3ZjlmMjQ4NzlhZjg3MzgzM2Y4Y2JhNjk2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzgzZWMwMDljN2I1MzQ5ZDZiMDNmYjJkNTZjOWE3MjMxLmJpbmRQb3B1cChwb3B1cF83MTE0OWUzMDcwZTY0Mjk4OGVkYjA3ZmIwNjZmODEyYSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxNzc6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAwNDMxMDM0NDgyNzU4NjIwNywgImNvbCI6IDE3NywgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTc3LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNzcsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE3NywgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMDM2NjMwMDM2NjMwMDM2NjMsICJjb2wiOiAxNzcsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE3NywgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4zMTcxNTk3NjMzMTM2MDk0NiwgImNvbCI6IDE3NywgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC42OTM1MzEyODMxMzg5MTgzLCAiY29sIjogMTc3LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAwLjU4NzkyMzcyODgxMzU1OTQsICJjb2wiOiAxNzcsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDAuNzY0ODMwNTA4NDc0NTc2MiwgImNvbCI6IDE3NywgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC40OTczNjAwODQ0NzcyOTY3NCwgImNvbCI6IDE3NywgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNDc0NzM2ODQyMTA1MjYzMiwgImNvbCI6IDE3NywgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNDQyMTA1MjYzMTU3ODk0NywgImNvbCI6IDE3NywgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuNTAyNjI4ODExNzc3MDc2NywgImNvbCI6IDE3NywgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDAuNzc3NjYwNjk1NDY4OTE0NywgImNvbCI6IDE3NywgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDAuODIxOTE3ODA4MjE5MTc4LCAiY29sIjogMTc3LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC41OTIyMDIzMTgyMjk3MTU1LCAiY29sIjogMTc3LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC41Mzg0NjE1Mzg0NjE1Mzg0LCAiY29sIjogMTc3LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMC44NzY1ODIyNzg0ODEwMTI3LCAiY29sIjogMTc3LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMC42ODM1NDQzMDM3OTc0NjgzLCAiY29sIjogMTc3LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC40MTM5Mzg3NTM5NTk4NzMzLCAiY29sIjogMTc3LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC4yMjY1NTQyNjc2NTAxNTgwNywgImNvbCI6IDE3NywgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMTIyNDkyMDgwMjUzNDMxODksICJjb2wiOiAxNzcsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjA5MzYxNzAyMTI3NjU5NTc0LCAiY29sIjogMTc3LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2E2YmJhMDg3ZjlmMjQ4NzlhZjg3MzgzM2Y4Y2JhNjk2KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZWMxOTQyMjU5ZGUwNDQzOWJkMGZiMGE5N2EyMWNiOGQgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MDY4MzMsLTk5LjE4MDQ1NyksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2QxNGQyNTc1OGRkNzRlZmFhMGZhMGRkZjVjMTgwMjBiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzhhOGExMGI4YWFjMDQ0OTVhMmRmZWIzMDk0YTU3Yjc5ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfOGE4YTEwYjhhYWMwNDQ5NWEyZGZlYjMwOTRhNTdiNzkiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2QxNGQyNTc1OGRkNzRlZmFhMGZhMGRkZjVjMTgwMjBiLnNldENvbnRlbnQodmVnYV84YThhMTBiOGFhYzA0NDk1YTJkZmViMzA5NGE1N2I3OSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9lYzE5NDIyNTlkZTA0NDM5YmQwZmIwYTk3YTIxY2I4ZC5iaW5kUG9wdXAocG9wdXBfZDE0ZDI1NzU4ZGQ3NGVmYWEwZmEwZGRmNWMxODAyMGIpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTc4OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wNTI4MDE3MjQxMzc5MzEwMzYsICJjb2wiOiAxNzgsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDA2OTA4NDYyODY3MDEyMDg5NSwgImNvbCI6IDE3OCwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTc4LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNzgsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE3OCwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTc4LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjU0NDM3ODY5ODIyNDg1MjEsICJjb2wiOiAxNzgsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuODUyNTk4MDkxMTk4MzAzMywgImNvbCI6IDE3OCwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC43Mjk4NzI4ODEzNTU5MzIyLCAiY29sIjogMTc4LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjU0MDI1NDIzNzI4ODEzNTYsICJjb2wiOiAxNzgsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuNzAwMTA1NTk2NjIwOTA4MSwgImNvbCI6IDE3OCwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNTQ1MjYzMTU3ODk0NzM2OSwgImNvbCI6IDE3OCwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNTE4OTQ3MzY4NDIxMDUyNiwgImNvbCI6IDE3OCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuNzM2MDY3Mjk3NTgxNDkzMSwgImNvbCI6IDE3OCwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuMDI0MjM2MDM3OTM0NjY4LCAiY29sIjogMTc4LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMC45MjcyOTE4ODYxOTU5OTU4LCAiY29sIjogMTc4LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC43MjQ5NzM2NTY0ODA1MDU4LCAiY29sIjogMTc4LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC44MTM0ODc4ODE5ODEwMzI2LCAiY29sIjogMTc4LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS4zNDM4ODE4NTY1NDAwODQzLCAiY29sIjogMTc4LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS4zODA4MDE2ODc3NjM3MTMsICJjb2wiOiAxNzgsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjg0Nzk0MDg2NTg5MjI5MTUsICJjb2wiOiAxNzgsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjQ5OTQ3MzEyOTYxMDExNTksICJjb2wiOiAxNzgsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjQzNjExNDA0NDM1MDU4MDc3LCAiY29sIjogMTc4LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4yMDMxOTE0ODkzNjE3MDIxMiwgImNvbCI6IDE3OCwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV84YThhMTBiOGFhYzA0NDk1YTJkZmViMzA5NGE1N2I3OSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyX2FjODc4Mjc5ZTExNDQ4YWZhZjJhZDlhZDVlYjQ5MWI0ID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDA0NDUyLC05OS4xNzE0MzgpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85NTZlNTE5OWUyOGI0NzdkODYxMzE2ZmFhYzMyMjMzYyA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV81Yjk5Njk3ZWM1ZDI0MTBmOGUwOWYxYTM0YmYzMWRlMSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzViOTk2OTdlYzVkMjQxMGY4ZTA5ZjFhMzRiZjMxZGUxIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85NTZlNTE5OWUyOGI0NzdkODYxMzE2ZmFhYzMyMjMzYy5zZXRDb250ZW50KHZlZ2FfNWI5OTY5N2VjNWQyNDEwZjhlMDlmMWEzNGJmMzFkZTEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfYWM4NzgyNzllMTE0NDhhZmFmMmFkOWFkNWViNDkxYjQuYmluZFBvcHVwKHBvcHVwXzk1NmU1MTk5ZTI4YjQ3N2Q4NjEzMTZmYWFjMzIyMzNjKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDE3OTogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDc5NzQxMzc5MzEwMzQ0ODMsICJjb2wiOiAxNzksICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDAxNzI3MTE1NzE2NzUzMDIyNCwgImNvbCI6IDE3OSwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMDYxNTM4NDYxNTM4NDYxNTQsICJjb2wiOiAxNzksICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE3OSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTc5LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxNzksICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDU0NDM3ODY5ODIyNDg1MjA1LCAiY29sIjogMTc5LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjIyMDU3MjY0MDUwOTAxMzgsICJjb2wiOiAxNzksICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuNjk0OTE1MjU0MjM3Mjg4MiwgImNvbCI6IDE3OSwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS4yNjkwNjc3OTY2MTAxNjk2LCAiY29sIjogMTc5LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAxLjMxMzYyMTk2NDA5NzE0OSwgImNvbCI6IDE3OSwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNjY2MzE1Nzg5NDczNjg0MiwgImNvbCI6IDE3OSwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNjQsICJjb2wiOiAxNzksICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjgzNzAxMzY2OTgyMTI0MDgsICJjb2wiOiAxNzksICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjEwMzI2NjU5NjQxNzI4MTQsICJjb2wiOiAxNzksICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjAwMTA1Mzc0MDc3OTc2ODIsICJjb2wiOiAxNzksICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAxLjExMTY5NjUyMjY1NTQyNjcsICJjb2wiOiAxNzksICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjk3MDQ5NTI1ODE2NjQ5MTEsICJjb2wiOiAxNzksICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjMwOTA3MTcyOTk1NzgwNTksICJjb2wiOiAxNzksICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjQzMjQ4OTQ1MTQ3Njc5MzIsICJjb2wiOiAxNzksICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjk4NDE2MDUwNjg2Mzc4MDMsICJjb2wiOiAxNzksICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjY4MTc3MDI4NDUxMDAxMDUsICJjb2wiOiAxNzksICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjQ0ODc4NTYzODg1OTU1NjQ3LCAiY29sIjogMTc5LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4zMjg3MjM0MDQyNTUzMTkxNSwgImNvbCI6IDE3OSwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV81Yjk5Njk3ZWM1ZDI0MTBmOGUwOWYxYTM0YmYzMWRlMSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzhiZDllZmEzNWI2NTQwNjdiZGZkZWU5ZWEzNTBmYTM2ID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDA0NTU0LC05OS4xNjk5NTMpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kMzg4MDJiY2Q2ODQ0YzliYWM3ZjMwNjcyYTMyZDI1YiA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV83ZjM3ZTlhMzI5OGI0Y2MwODY5MjdlZDRjZTg1ODU4NSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzdmMzdlOWEzMjk4YjRjYzA4NjkyN2VkNGNlODU4NTg1Ij48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kMzg4MDJiY2Q2ODQ0YzliYWM3ZjMwNjcyYTMyZDI1Yi5zZXRDb250ZW50KHZlZ2FfN2YzN2U5YTMyOThiNGNjMDg2OTI3ZWQ0Y2U4NTg1ODUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfOGJkOWVmYTM1YjY1NDA2N2JkZmRlZTllYTM1MGZhMzYuYmluZFBvcHVwKHBvcHVwX2QzODgwMmJjZDY4NDRjOWJhYzdmMzA2NzJhMzJkMjViKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDE4MDogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDc5NzQxMzc5MzEwMzQ0ODMsICJjb2wiOiAxODAsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDA4NjM1NTc4NTgzNzY1MTEyLCAiY29sIjogMTgwLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxODAsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDAyODA4OTg4NzY0MDQ0OTQzNywgImNvbCI6IDE4MCwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTgwLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxODAsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMTMzNzI3ODEwNjUwODg3NTcsICJjb2wiOiAxODAsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuNzczMDY0Njg3MTY4NjEwOCwgImNvbCI6IDE4MCwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMS4wOTg1MTY5NDkxNTI1NDI0LCAiY29sIjogMTgwLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAxLjk5NDcwMzM4OTgzMDUwODQsICJjb2wiOiAxODAsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuODk1NDU5MzQ1MzAwOTUwNCwgImNvbCI6IDE4MCwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNjE2ODQyMTA1MjYzMTU3OSwgImNvbCI6IDE4MCwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNjg0MjEwNTI2MzE1Nzg5NSwgImNvbCI6IDE4MCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuNzQyMzc2NDQ1ODQ2NDc3NCwgImNvbCI6IDE4MCwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuNDkzMTUwNjg0OTMxNTA2OCwgImNvbCI6IDE4MCwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuMzg5ODg0MDg4NTE0MjI1NCwgImNvbCI6IDE4MCwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDEuMDI2MzQzNTE5NDk0MjA0MywgImNvbCI6IDE4MCwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuOTc5OTc4OTI1MTg0NDA0NywgImNvbCI6IDE4MCwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDEuNzQ4OTQ1MTQ3Njc5MzI1LCAiY29sIjogMTgwLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMi4yMzIwNjc1MTA1NDg1MjMzLCAiY29sIjogMTgwLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMS42MjcyNDM5MjgxOTQyOTc5LCAiY29sIjogMTgwLCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC44ODkzNTcyMTgxMjQzNDE0LCAiY29sIjogMTgwLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC41Mzc0ODY4MDA0MjIzODY1LCAiY29sIjogMTgwLCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4zMjM0MDQyNTUzMTkxNDg5NiwgImNvbCI6IDE4MCwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV83ZjM3ZTlhMzI5OGI0Y2MwODY5MjdlZDRjZTg1ODU4NSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzIyYzJlMDBjMDA4NDQwOTVhMTQzOGRmZTY1MTQzMDQ4ID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDA0OTc2LC05OS4xNzUwOTUpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85YjVmZWMyNTQzYTk0ZjY3YjExYmY4YzQzZjg0YmVkMSA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV82N2VlYTY4Mjc1NjY0NjRiYTVlZTNlY2I4MGFjZTI5NSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzY3ZWVhNjgyNzU2NjQ2NGJhNWVlM2VjYjgwYWNlMjk1Ij48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85YjVmZWMyNTQzYTk0ZjY3YjExYmY4YzQzZjg0YmVkMS5zZXRDb250ZW50KHZlZ2FfNjdlZWE2ODI3NTY2NDY0YmE1ZWUzZWNiODBhY2UyOTUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfMjJjMmUwMGMwMDg0NDA5NWExNDM4ZGZlNjUxNDMwNDguYmluZFBvcHVwKHBvcHVwXzliNWZlYzI1NDNhOTRmNjdiMTFiZjhjNDNmODRiZWQxKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDE4MTogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDg4MzYyMDY4OTY1NTE3MjQsICJjb2wiOiAxODEsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDAzNDU0MjMxNDMzNTA2MDQ0NywgImNvbCI6IDE4MSwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMDMwNzY5MjMwNzY5MjMwNzcsICJjb2wiOiAxODEsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE4MSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTgxLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxODEsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDM2Njg2MzkwNTMyNTQ0Mzc2LCAiY29sIjogMTgxLCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjI4ODQ0MTE0NTI4MTAxODA1LCAiY29sIjogMTgxLCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAwLjU2MTQ0MDY3Nzk2NjEwMTYsICJjb2wiOiAxODEsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDEuMDc5NDQ5MTUyNTQyMzcyOCwgImNvbCI6IDE4MSwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC43MDg1NTMzMjYyOTM1NTg2LCAiY29sIjogMTgxLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC40NTI2MzE1Nzg5NDczNjg0NCwgImNvbCI6IDE4MSwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNTQ1MjYzMTU3ODk0NzM2OSwgImNvbCI6IDE4MSwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuNjk4MjEyNDA3OTkxNTg3OCwgImNvbCI6IDE4MSwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuMTI2NDQ4ODkzNTcyMTgxMywgImNvbCI6IDE4MSwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDAuOTAyMDAyMTA3NDgxNTU5NSwgImNvbCI6IDE4MSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuNzQzOTQwOTkwNTE2MzMzLCAiY29sIjogMTgxLCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC44NTQ1ODM3NzIzOTE5OTE2LCAiY29sIjogMTgxLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS40MDI5NTM1ODY0OTc4OTA0LCAiY29sIjogMTgxLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS4zODM5NjYyNDQ3MjU3Mzg0LCAiY29sIjogMTgxLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMS4xNDI1NTU0MzgyMjU5NzY4LCAiY29sIjogMTgxLCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC44NDA4ODUxNDIyNTUwMDUyLCAiY29sIjogMTgxLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC41NzY1NTc1NTAxNTgzOTQ5LCAiY29sIjogMTgxLCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4yODUxMDYzODI5Nzg3MjM0LCAiY29sIjogMTgxLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzY3ZWVhNjgyNzU2NjQ2NGJhNWVlM2VjYjgwYWNlMjk1KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNDQ0NmVhYjMwNWVjNGE5OGE3NDg4NTdjNmZhMTg2NDcgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MDA2NjUsLTk5LjE3MDQ2NiksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2U0ZTQ4MWU4YzM5YjRjNTJiNDhlMGRmOWVhNGVmZTcxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzhhYWNhNjNmZjBlNTRkMWM5MDE2YjliYjY2ZjMzNDNiID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfOGFhY2E2M2ZmMGU1NGQxYzkwMTZiOWJiNjZmMzM0M2IiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2U0ZTQ4MWU4YzM5YjRjNTJiNDhlMGRmOWVhNGVmZTcxLnNldENvbnRlbnQodmVnYV84YWFjYTYzZmYwZTU0ZDFjOTAxNmI5YmI2NmYzMzQzYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl80NDQ2ZWFiMzA1ZWM0YTk4YTc0ODg1N2M2ZmExODY0Ny5iaW5kUG9wdXAocG9wdXBfZTRlNDgxZThjMzliNGM1MmI0OGUwZGY5ZWE0ZWZlNzEpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTgyOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4xNTMwMTcyNDEzNzkzMTAzMywgImNvbCI6IDE4MiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMTAzNjI2OTQzMDA1MTgxMzUsICJjb2wiOiAxODIsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE4MiwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDI4MDg5ODg3NjQwNDQ5NDM3LCAiY29sIjogMTgyLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxODIsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE4MiwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC43NzA0MTQyMDExODM0MzIsICJjb2wiOiAxODIsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDEuNjMwOTY1MDA1MzAyMjI2OSwgImNvbCI6IDE4MiwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogNS4wOTk1NzYyNzExODY0NCwgImNvbCI6IDE4MiwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMy40ODcyODgxMzU1OTMyMiwgImNvbCI6IDE4MiwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMS42Nzc5MzAzMDYyMzAyMDA3LCAiY29sIjogMTgyLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMS41MzU3ODk0NzM2ODQyMTA2LCAiY29sIjogMTgyLCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMS40NTc4OTQ3MzY4NDIxMDU0LCAiY29sIjogMTgyLCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMS41OTA5NTY4ODc0ODY4NTYsICJjb2wiOiAxODIsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAyLjMwMTM2OTg2MzAxMzY5ODUsICJjb2wiOiAxODIsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAyLjIyNDQ0Njc4NjA5MDYyMiwgImNvbCI6IDE4MiwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDEuODM1NjE2NDM4MzU2MTY0NCwgImNvbCI6IDE4MiwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDEuODkyNTE4NDQwNDYzNjQ2LCAiY29sIjogMTgyLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMy4yNTYzMjkxMTM5MjQwNTA3LCAiY29sIjogMTgyLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMy40MzU2NTQwMDg0Mzg4MTg1LCAiY29sIjogMTgyLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMi40NTMwMDk1MDM2OTU4ODE3LCAiY29sIjogMTgyLCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMS4zNDU2MjY5NzU3NjM5NjIsICJjb2wiOiAxODIsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjkzNDUzMDA5NTAzNjk1ODgsICJjb2wiOiAxODIsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjYwOTU3NDQ2ODA4NTEwNjQsICJjb2wiOiAxODIsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfOGFhY2E2M2ZmMGU1NGQxYzkwMTZiOWJiNjZmMzM0M2IpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl82NjRjYWU4OGM5ZTQ0NTIxODkxZTJmMzE4ZjQ1NzhhOCA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQzNzY2NSwtOTkuMTY0MDE4KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzM2ZWRkYmViZmRlNGJkM2IzZjc0MzJhZmNhOWM1NDEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfZTUyYjBmMDljMzVhNGU5NDkwMTMyNTZhNzg5OGU2OTggPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9lNTJiMGYwOWMzNWE0ZTk0OTAxMzI1NmE3ODk4ZTY5OCI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMzM2ZWRkYmViZmRlNGJkM2IzZjc0MzJhZmNhOWM1NDEuc2V0Q29udGVudCh2ZWdhX2U1MmIwZjA5YzM1YTRlOTQ5MDEzMjU2YTc4OThlNjk4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzY2NGNhZTg4YzllNDQ1MjE4OTFlMmYzMThmNDU3OGE4LmJpbmRQb3B1cChwb3B1cF8zMzZlZGRiZWJmZGU0YmQzYjNmNzQzMmFmY2E5YzU0MSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxODM6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjE5NjEyMDY4OTY1NTE3MjQsICJjb2wiOiAxODMsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDA4NjM1NTc4NTgzNzY1MTEyLCAiY29sIjogMTgzLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxODMsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE4MywgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTgzLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxODMsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMjU3OTg4MTY1NjgwNDczNCwgImNvbCI6IDE4MywgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC44ODQ0MTE0NTI4MTAxODAzLCAiY29sIjogMTgzLCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAxLjY2MjA3NjI3MTE4NjQ0MDcsICJjb2wiOiAxODMsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDAuOTAwNDIzNzI4ODEzNTU5NCwgImNvbCI6IDE4MywgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC44MTYyNjE4Nzk2MTk4NTIyLCAiY29sIjogMTgzLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC44NCwgImNvbCI6IDE4MywgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuOTc2ODQyMTA1MjYzMTU3OCwgImNvbCI6IDE4MywgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDEuMjEyNDA3OTkxNTg3ODAyMywgImNvbCI6IDE4MywgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDIuMDE3OTEzNTkzMjU2MDU5LCAiY29sIjogMTgzLCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMi4xNTE3Mzg2NzIyODY2MTc0LCAiY29sIjogMTgzLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMS42MjY5NzU3NjM5NjIwNjUyLCAiY29sIjogMTgzLCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMS41MzQyNDY1NzUzNDI0NjU3LCAiY29sIjogMTgzLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMi43NjM3MTMwODAxNjg3NzY2LCAiY29sIjogMTgzLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMi45ODgzOTY2MjQ0NzI1NzQsICJjb2wiOiAxODMsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAyLjUxODQ3OTQwODY1ODkyMywgImNvbCI6IDE4MywgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDEuOTc1NzYzOTYyMDY1MzMyLCAiY29sIjogMTgzLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMS41ODgxNzMxNzg0NTgyODkzLCAiY29sIjogMTgzLCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC44NTUzMTkxNDg5MzYxNzAyLCAiY29sIjogMTgzLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2U1MmIwZjA5YzM1YTRlOTQ5MDEzMjU2YTc4OThlNjk4KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfOTY2ZDFmZDJhMjQwNDliY2FkMjU5YTU0NjJjYzUxYTEgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MTQ3OTMsLTk5LjE4NTA4MyksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2UzMzZiZmU0OGJlNDQ5ZjBhMTg3ODA1ZGFkZjgzM2JhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2U4ZGU0M2FkYTBhZjRjZDc5NThkNDI3ZTNkMGRiZjllID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfZThkZTQzYWRhMGFmNGNkNzk1OGQ0MjdlM2QwZGJmOWUiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2UzMzZiZmU0OGJlNDQ5ZjBhMTg3ODA1ZGFkZjgzM2JhLnNldENvbnRlbnQodmVnYV9lOGRlNDNhZGEwYWY0Y2Q3OTU4ZDQyN2UzZDBkYmY5ZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl85NjZkMWZkMmEyNDA0OWJjYWQyNTlhNTQ2MmNjNTFhMS5iaW5kUG9wdXAocG9wdXBfZTMzNmJmZTQ4YmU0NDlmMGExODc4MDVkYWRmODMzYmEpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTg0OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wMjM3MDY4OTY1NTE3MjQxMzcsICJjb2wiOiAxODQsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE4NCwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTg0LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxODQsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE4NCwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTg0LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjE5MTcxNTk3NjMzMTM2MDk1LCAiY29sIjogMTg0LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjYxOTMwMDEwNjA0NDUzODcsICJjb2wiOiAxODQsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDEuMTc2OTA2Nzc5NjYxMDE2OSwgImNvbCI6IDE4NCwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS4xNjMxMzU1OTMyMjAzMzg5LCAiY29sIjogMTg0LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjc0MzQwMDIxMTE5MzI0MTgsICJjb2wiOiAxODQsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjYwNDIxMDUyNjMxNTc4OTQsICJjb2wiOiAxODQsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjU5MzY4NDIxMDUyNjMxNTgsICJjb2wiOiAxODQsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjY1NTA5OTg5NDg0NzUyOSwgImNvbCI6IDE4NCwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDAuNzg5MjUxODQ0MDQ2MzY0NiwgImNvbCI6IDE4NCwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuMDMwNTU4NDgyNjEzMjc3MiwgImNvbCI6IDE4NCwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDEuMTgwMTg5NjczMzQwMzU4MywgImNvbCI6IDE4NCwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNjY4MDcxNjU0MzczMDI0MiwgImNvbCI6IDE4NCwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDAuNTcwNjc1MTA1NDg1MjMyLCAiY29sIjogMTg0LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMC41MTI2NTgyMjc4NDgxMDEyLCAiY29sIjogMTg0LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC4zNDAwMjExMTkzMjQxODE2LCAiY29sIjogMTg0LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC4yNTA3OTAzMDU1ODQ4MjYxLCAiY29sIjogMTg0LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4xNjU3ODY2OTQ4MjU3NjU1OCwgImNvbCI6IDE4NCwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMTE1OTU3NDQ2ODA4NTEwNjQsICJjb2wiOiAxODQsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfZThkZTQzYWRhMGFmNGNkNzk1OGQ0MjdlM2QwZGJmOWUpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl82NWY4OTI0ZDE4NDg0YzUzYmY2ODRiMjU1NDBjZWY1OCA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQxMjc3NiwtOTkuMTgyODA1KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZjg4NmIzMGM1NDRiNDBlNDk4MjhlN2NjMjI4YzZkMjEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfNTU2NTRiZjM3ZWY2NDViYzkwMWY0ZTFkMzM4OGQ0NjkgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV81NTY1NGJmMzdlZjY0NWJjOTAxZjRlMWQzMzg4ZDQ2OSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZjg4NmIzMGM1NDRiNDBlNDk4MjhlN2NjMjI4YzZkMjEuc2V0Q29udGVudCh2ZWdhXzU1NjU0YmYzN2VmNjQ1YmM5MDFmNGUxZDMzODhkNDY5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzY1Zjg5MjRkMTg0ODRjNTNiZjY4NGIyNTU0MGNlZjU4LmJpbmRQb3B1cChwb3B1cF9mODg2YjMwYzU0NGI0MGU0OTgyOGU3Y2MyMjhjNmQyMSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxODU6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjA5Mzc1LCAiY29sIjogMTg1LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAwMzQ1NDIzMTQzMzUwNjA0NDcsICJjb2wiOiAxODUsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE4NSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDI4MDg5ODg3NjQwNDQ5NDM3LCAiY29sIjogMTg1LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAwMzY2MzAwMzY2MzAwMzY2MywgImNvbCI6IDE4NSwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTg1LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjU0OTExMjQyNjAzNTUwMjksICJjb2wiOiAxODUsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDEuNTY1MjE3MzkxMzA0MzQ4LCAiY29sIjogMTg1LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAxLjY5NzAzMzg5ODMwNTA4NDgsICJjb2wiOiAxODUsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDEuMTkwNjc3OTY2MTAxNjk0OSwgImNvbCI6IDE4NSwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC43NDU1MTIxNDM2MTE0MDQ0LCAiY29sIjogMTg1LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC43MDg0MjEwNTI2MzE1NzksICJjb2wiOiAxODUsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjY4MTA1MjYzMTU3ODk0NzQsICJjb2wiOiAxODUsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjg4NTM4MzgwNjUxOTQ1MzMsICJjb2wiOiAxODUsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjI0NDQ2Nzg2MDkwNjIxNywgImNvbCI6IDE4NSwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuMTg0NDA0NjM2NDU5NDMxLCAiY29sIjogMTg1LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC44NjQwNjc0Mzk0MDk5MDUyLCAiY29sIjogMTg1LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMS4xMDk1ODkwNDEwOTU4OTA0LCAiY29sIjogMTg1LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS4zNzc2MzcxMzA4MDE2ODc3LCAiY29sIjogMTg1LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS4zMzIyNzg0ODEwMTI2NTgyLCAiY29sIjogMTg1LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC44NzY0NTE5NTM1Mzc0ODY4LCAiY29sIjogMTg1LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC41OTY0MTcyODEzNDg3ODgyLCAiY29sIjogMTg1LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC41MzMyNjI5MzU1ODYwNjEyLCAiY29sIjogMTg1LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4zMDc0NDY4MDg1MTA2MzgzLCAiY29sIjogMTg1LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzU1NjU0YmYzN2VmNjQ1YmM5MDFmNGUxZDMzODhkNDY5KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfYmI0Mzk2YjE5NWQ5NDJmNWE1NGI1MGRhMzU5OGM3ZTkgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MTI0ODksLTk5LjE4ODc1MSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2JkMTA2YTE4Y2QxMzRkYWNhZTI5Zjc5NWJmYTgxNjg4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2QyNDJlNWE3MjhmNjRlYTJhNjJjNTRlMTg0YjhiOTVjID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfZDI0MmU1YTcyOGY2NGVhMmE2MmM1NGUxODRiOGI5NWMiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2JkMTA2YTE4Y2QxMzRkYWNhZTI5Zjc5NWJmYTgxNjg4LnNldENvbnRlbnQodmVnYV9kMjQyZTVhNzI4ZjY0ZWEyYTYyYzU0ZTE4NGI4Yjk1Yyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9iYjQzOTZiMTk1ZDk0MmY1YTU0YjUwZGEzNTk4YzdlOS5iaW5kUG9wdXAocG9wdXBfYmQxMDZhMThjZDEzNGRhY2FlMjlmNzk1YmZhODE2ODgpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTg2OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wNTYwMzQ0ODI3NTg2MjA2OSwgImNvbCI6IDE4NiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTg2LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwMzA3NjkyMzA3NjkyMzA3NywgImNvbCI6IDE4NiwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDU2MTc5Nzc1MjgwODk4ODc1LCAiY29sIjogMTg2LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAwMzY2MzAwMzY2MzAwMzY2MywgImNvbCI6IDE4NiwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTg2LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjEyNDI2MDM1NTAyOTU4NTgsICJjb2wiOiAxODYsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMzcwMDk1NDQwMDg0ODM1NjQsICJjb2wiOiAxODYsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuODM2ODY0NDA2Nzc5NjYxLCAiY29sIjogMTg2LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjcwNDQ0OTE1MjU0MjM3MjgsICJjb2wiOiAxODYsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuNTIwNTkxMzQxMDc3MDg1NSwgImNvbCI6IDE4NiwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuMzI2MzE1Nzg5NDczNjg0MiwgImNvbCI6IDE4NiwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuMzA3MzY4NDIxMDUyNjMxNTcsICJjb2wiOiAxODYsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjM0MTc0NTUzMTAxOTk3ODk1LCAiY29sIjogMTg2LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMC41ODM3NzIzOTE5OTE1NywgImNvbCI6IDE4NiwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDAuODAxODk2NzMzNDAzNTgyNywgImNvbCI6IDE4NiwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuNjE3NDkyMDk2OTQ0MTUxNywgImNvbCI6IDE4NiwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNTYzNzUxMzE3MTc1OTc0NywgImNvbCI6IDE4NiwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDAuODEwMTI2NTgyMjc4NDgxLCAiY29sIjogMTg2LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMC43OTMyNDg5NDUxNDc2NzkzLCAiY29sIjogMTg2LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC40ODU3NDQ0NTYxNzc0MDIzLCAiY29sIjogMTg2LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC40MjI1NTAwNTI2ODcwMzksICJjb2wiOiAxODYsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjIzNDQyNDQ5ODQxNjA1MDY4LCAiY29sIjogMTg2LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4yMTgwODUxMDYzODI5Nzg3MywgImNvbCI6IDE4NiwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9kMjQyZTVhNzI4ZjY0ZWEyYTYyYzU0ZTE4NGI4Yjk1Yyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyX2ZmNWI0N2ZkOTIzNTRhMDZiNmJkZjM2N2YyZDZiZjVjID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDExMjI3LC05OS4xODU1MTQpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kMTk2NmY1MDM1OWU0MGUxYjI3OWYyYjEyNjFlY2YyZSA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV85ZTc2N2I3ZTFjMWE0MjZkYjI2Y2ZiOWE2YWM2NzQ0NSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzllNzY3YjdlMWMxYTQyNmRiMjZjZmI5YTZhYzY3NDQ1Ij48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kMTk2NmY1MDM1OWU0MGUxYjI3OWYyYjEyNjFlY2YyZS5zZXRDb250ZW50KHZlZ2FfOWU3NjdiN2UxYzFhNDI2ZGIyNmNmYjlhNmFjNjc0NDUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZmY1YjQ3ZmQ5MjM1NGEwNmI2YmRmMzY3ZjJkNmJmNWMuYmluZFBvcHVwKHBvcHVwX2QxOTY2ZjUwMzU5ZTQwZTFiMjc5ZjJiMTI2MWVjZjJlKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDE4NzogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDQ3NDEzNzkzMTAzNDQ4MjcsICJjb2wiOiAxODcsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDA1MTgxMzQ3MTUwMjU5MDY3NiwgImNvbCI6IDE4NywgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMDMwNzY5MjMwNzY5MjMwNzcsICJjb2wiOiAxODcsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE4NywgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMDM2NjMwMDM2NjMwMDM2NjMsICJjb2wiOiAxODcsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE4NywgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4xOTI4OTk0MDgyODQwMjM2NiwgImNvbCI6IDE4NywgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC4zNTMxMjgzMTM4OTE4MzQ2LCAiY29sIjogMTg3LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAwLjc5MzQzMjIwMzM4OTgzMDYsICJjb2wiOiAxODcsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDEuMDU1MDg0NzQ1NzYyNzEyLCAiY29sIjogMTg3LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjkxMzQxMDc3MDg1NTMzMjYsICJjb2wiOiAxODcsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjU1MjYzMTU3ODk0NzM2ODUsICJjb2wiOiAxODcsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjU5Njg0MjEwNTI2MzE1NzgsICJjb2wiOiAxODcsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjYyNzc2MDI1MjM2NTkzMDYsICJjb2wiOiAxODcsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjk3NDcxMDIyMTI4NTU2MzcsICJjb2wiOiAxODcsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjk4NjMwMTM2OTg2MzAxMzYsICJjb2wiOiAxODcsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjc1NzYzOTYyMDY1MzMxOTIsICJjb2wiOiAxODcsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjcxNTQ4OTk4OTQ2MjU5MjIsICJjb2wiOiAxODcsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjA3ODA1OTA3MTcyOTk1NzksICJjb2wiOiAxODcsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjIxODM1NDQzMDM3OTc0NjksICJjb2wiOiAxODcsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjg2ODAwNDIyMzg2NDgzNjMsICJjb2wiOiAxODcsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjU0MDU2OTAyMDAyMTA3NDgsICJjb2wiOiAxODcsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjMzMDUxNzQyMzQ0MjQ0OTgzLCAiY29sIjogMTg3LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4yMjQ0NjgwODUxMDYzODI5NywgImNvbCI6IDE4NywgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV85ZTc2N2I3ZTFjMWE0MjZkYjI2Y2ZiOWE2YWM2NzQ0NSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzdlNjVlY2U4NjViODQ1MWFhOTgyNGIzZGE4ZWEzMThhID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDExNzExLC05OS4xOTAxMzkpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iZDgwYWMxMzllODE0ZWRhYjNkNzczMTA5YTY4OWU5MSA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV9kYTVmZTZhNzA5NzM0NzYwYTVkMWQ2NzllMzY3ZTYxMyA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhX2RhNWZlNmE3MDk3MzQ3NjBhNWQxZDY3OWUzNjdlNjEzIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iZDgwYWMxMzllODE0ZWRhYjNkNzczMTA5YTY4OWU5MS5zZXRDb250ZW50KHZlZ2FfZGE1ZmU2YTcwOTczNDc2MGE1ZDFkNjc5ZTM2N2U2MTMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfN2U2NWVjZTg2NWI4NDUxYWE5ODI0YjNkYThlYTMxOGEuYmluZFBvcHVwKHBvcHVwX2JkODBhYzEzOWU4MTRlZGFiM2Q3NzMxMDlhNjg5ZTkxKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDE4ODogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDIxNTUxNzI0MTM3OTMxMDM2LCAiY29sIjogMTg4LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxODgsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE4OCwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTg4LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxODgsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE4OCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4xMzEzNjA5NDY3NDU1NjIxMiwgImNvbCI6IDE4OCwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC40MTM1NzM3MDA5NTQ0MDA4LCAiY29sIjogMTg4LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAwLjcwOTc0NTc2MjcxMTg2NDQsICJjb2wiOiAxODgsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDAuNjY5NDkxNTI1NDIzNzI4OCwgImNvbCI6IDE4OCwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC40MzQwMDIxMTE5MzI0MTgxNywgImNvbCI6IDE4OCwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuMzQ2MzE1Nzg5NDczNjg0MiwgImNvbCI6IDE4OCwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuMjk0NzM2ODQyMTA1MjYzMTMsICJjb2wiOiAxODgsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjM2Njk4MjEyNDA3OTkxNTksICJjb2wiOiAxODgsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjUyODk3Nzg3MTQ0MzYyNDgsICJjb2wiOiAxODgsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjY0NTk0MzA5Nzk5Nzg5MjUsICJjb2wiOiAxODgsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjMyNzcxMzM4MjUwNzkwMzA1LCAiY29sIjogMTg4LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC4zMDQ1MzEwODUzNTMwMDMxNiwgImNvbCI6IDE4OCwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDAuNjI4NjkxOTgzMTIyMzYyOSwgImNvbCI6IDE4OCwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDAuNjQ0NTE0NzY3OTMyNDg5NCwgImNvbCI6IDE4OCwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuNDg3ODU2Mzg4NTk1NTY0OTYsICJjb2wiOiAxODgsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjI2MzQzNTE5NDk0MjA0NDI2LCAiY29sIjogMTg4LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4xMDc3MDg1NTMzMjYyOTM1NiwgImNvbCI6IDE4OCwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMDU4NTEwNjM4Mjk3ODcyMzQsICJjb2wiOiAxODgsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfZGE1ZmU2YTcwOTczNDc2MGE1ZDFkNjc5ZTM2N2U2MTMpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9kOTZjYWYyMTY4NDg0ZjZkODdhMjAwMTcwY2Q0NTFjYyA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQxMDAzNiwtOTkuMTg3OTc4KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfY2Q2YjM5YzhhNjZjNDE2MmE0OTQ5NWNjMDZiMzkzMjMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfMDM5YzBlZjU0ZWIyNDYwYmIzZDUwZjczOTVhNDk5YmUgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV8wMzljMGVmNTRlYjI0NjBiYjNkNTBmNzM5NWE0OTliZSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfY2Q2YjM5YzhhNjZjNDE2MmE0OTQ5NWNjMDZiMzkzMjMuc2V0Q29udGVudCh2ZWdhXzAzOWMwZWY1NGViMjQ2MGJiM2Q1MGY3Mzk1YTQ5OWJlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2Q5NmNhZjIxNjg0ODRmNmQ4N2EyMDAxNzBjZDQ1MWNjLmJpbmRQb3B1cChwb3B1cF9jZDZiMzljOGE2NmM0MTYyYTQ5NDk1Y2MwNmIzOTMyMyk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxODk6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjA0NTI1ODYyMDY4OTY1NTE3LCAiY29sIjogMTg5LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAwMTcyNzExNTcxNjc1MzAyMjQsICJjb2wiOiAxODksICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMDAzMDc2OTIzMDc2OTIzMDc3LCAiY29sIjogMTg5LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAwMjgwODk4ODc2NDA0NDk0MzcsICJjb2wiOiAxODksICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE4OSwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTg5LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjEwMDU5MTcxNTk3NjMzMTM2LCAiY29sIjogMTg5LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjIyMzc1Mzk3NjY3MDIwMTQ3LCAiY29sIjogMTg5LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAwLjM0MjE2MTAxNjk0OTE1MjUsICJjb2wiOiAxODksICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDAuMzU2OTkxNTI1NDIzNzI4OCwgImNvbCI6IDE4OSwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC4zNjg1MzIyMDY5NjkzNzcsICJjb2wiOiAxODksICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjM5MDUyNjMxNTc4OTQ3MzY3LCAiY29sIjogMTg5LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC4zMjUyNjMxNTc4OTQ3MzY4NywgImNvbCI6IDE4OSwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuMzY1OTMwNTk5MzY5MDg1MiwgImNvbCI6IDE4OSwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDAuNzU3NjM5NjIwNjUzMzE5MiwgImNvbCI6IDE4OSwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDAuNTkxMTQ4NTc3NDQ5OTQ3MywgImNvbCI6IDE4OSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuNDUyMDU0Nzk0NTIwNTQ3OSwgImNvbCI6IDE4OSwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNDQ0Njc4NjA5MDYyMTcwNywgImNvbCI6IDE4OSwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDAuNzUzMTY0NTU2OTYyMDI1MywgImNvbCI6IDE4OSwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDAuNjk1MTQ3Njc5MzI0ODk0NSwgImNvbCI6IDE4OSwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuNzQ0NDU2MTc3NDAyMzIzMiwgImNvbCI6IDE4OSwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuNTc5NTU3NDI4ODcyNDk3NCwgImNvbCI6IDE4OSwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMzQ4NDY4ODQ4OTk2ODMyMSwgImNvbCI6IDE4OSwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMjA0MjU1MzE5MTQ4OTM2MTYsICJjb2wiOiAxODksICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfMDM5YzBlZjU0ZWIyNDYwYmIzZDUwZjczOTVhNDk5YmUpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9hOTIxZTdhMjVmMjI0MjE5YmI4OTVhMjA0ZjMwZTMxMiA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQwOTQyMSwtOTkuMTg0MzIpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81ZGZjZDZhY2M5N2M0MDNmYWRmN2FmNTJiODg3OGFiOCA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV84NjE3MTQ0MjIwNGI0YTIzYTM0NjA2MWE2YmRlYzU0OSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzg2MTcxNDQyMjA0YjRhMjNhMzQ2MDYxYTZiZGVjNTQ5Ij48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81ZGZjZDZhY2M5N2M0MDNmYWRmN2FmNTJiODg3OGFiOC5zZXRDb250ZW50KHZlZ2FfODYxNzE0NDIyMDRiNGEyM2EzNDYwNjFhNmJkZWM1NDkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfYTkyMWU3YTI1ZjIyNDIxOWJiODk1YTIwNGYzMGUzMTIuYmluZFBvcHVwKHBvcHVwXzVkZmNkNmFjYzk3YzQwM2ZhZGY3YWY1MmI4ODc4YWI4KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDE5MDogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMTAwMjE1NTE3MjQxMzc5MzEsICJjb2wiOiAxOTAsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE5MCwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTkwLCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxOTAsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE5MCwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTkwLCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjE1OTc2MzMxMzYwOTQ2NzQ3LCAiY29sIjogMTkwLCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjMzNDA0MDI5NjkyNDcwODQsICJjb2wiOiAxOTAsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuNjM2NjUyNTQyMzcyODgxNCwgImNvbCI6IDE5MCwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS4wODE1Njc3OTY2MTAxNjk2LCAiY29sIjogMTkwLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAxLjA1MDY4NjM3ODAzNTkwMjgsICJjb2wiOiAxOTAsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjc5MDUyNjMxNTc4OTQ3MzYsICJjb2wiOiAxOTAsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjcxODk0NzM2ODQyMTA1MjcsICJjb2wiOiAxOTAsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjc3MzkyMjE4NzE3MTM5ODUsICJjb2wiOiAxOTAsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjI0MTMwNjYzODU2NjkxMjUsICJjb2wiOiAxOTAsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjI0MTMwNjYzODU2NjkxMjUsICJjb2wiOiAxOTAsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjkwMDk0ODM2NjcwMTc5MTMsICJjb2wiOiAxOTAsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAxLjE3MjgxMzQ4Nzg4MTk4MTEsICJjb2wiOiAxOTAsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjc2NzkzMjQ4OTQ1MTQ3NjcsICJjb2wiOiAxOTAsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjg4MTg1NjU0MDA4NDM4ODMsICJjb2wiOiAxOTAsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAxLjQ3NDEyODgyNzg3NzUwOCwgImNvbCI6IDE5MCwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDEuMDQzMjAzMzcxOTcwNDk1MiwgImNvbCI6IDE5MCwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuNjE4Nzk2MTk4NTIxNjQ3NCwgImNvbCI6IDE5MCwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMzk2ODA4NTEwNjM4Mjk3ODYsICJjb2wiOiAxOTAsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfODYxNzE0NDIyMDRiNGEyM2EzNDYwNjFhNmJkZWM1NDkpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9iMTE0MDFlZjhmNDI0OGJhOTY0OTAyYmFlYzNhNjYxYyA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQwNzkwNCwtOTkuMTg3OTUzKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTViOGIyODYzYTMzNDllMTkwNGZjYjYzNzhkYjM4MWIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfMzIyNzMwN2U0NzY5NGVhYmFiMmEyMzYxMTliNDA5NDYgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV8zMjI3MzA3ZTQ3Njk0ZWFiYWIyYTIzNjExOWI0MDk0NiI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTViOGIyODYzYTMzNDllMTkwNGZjYjYzNzhkYjM4MWIuc2V0Q29udGVudCh2ZWdhXzMyMjczMDdlNDc2OTRlYWJhYjJhMjM2MTE5YjQwOTQ2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2IxMTQwMWVmOGY0MjQ4YmE5NjQ5MDJiYWVjM2E2NjFjLmJpbmRQb3B1cChwb3B1cF8xNWI4YjI4NjNhMzM0OWUxOTA0ZmNiNjM3OGRiMzgxYik7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxOTE6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjA3NzU4NjIwNjg5NjU1MTczLCAiY29sIjogMTkxLCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAwMTcyNzExNTcxNjc1MzAyMjQsICJjb2wiOiAxOTEsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE5MSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTkxLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxOTEsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE5MSwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wNzQ1NTYyMTMwMTc3NTE0OCwgImNvbCI6IDE5MSwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC4zMDIyMjY5MzUzMTI4MzE0LCAiY29sIjogMTkxLCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAwLjYwNjk5MTUyNTQyMzcyODgsICJjb2wiOiAxOTEsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDAuOTQ5MTUyNTQyMzcyODgxNCwgImNvbCI6IDE5MSwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC41ODE4MzczODEyMDM4MDE1LCAiY29sIjogMTkxLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC4zOCwgImNvbCI6IDE5MSwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuMzcxNTc4OTQ3MzY4NDIxMDYsICJjb2wiOiAxOTEsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjQyMDYwOTg4NDMzMjI4MTgsICJjb2wiOiAxOTEsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjg2NTEyMTE4MDE4OTY3MzMsICJjb2wiOiAxOTEsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjkxMDQzMjAzMzcxOTcwNDksICJjb2wiOiAxOTEsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjg1MDM2ODgwOTI3MjkxODksICJjb2wiOiAxOTEsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjUwMTU4MDYxMTE2OTY1MjIsICJjb2wiOiAxOTEsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAwLjYzMDgwMTY4Nzc2MzcxMywgImNvbCI6IDE5MSwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDAuNzgwNTkwNzE3Mjk5NTc4MSwgImNvbCI6IDE5MSwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuNzM0OTUyNDgxNTIwNTkxMywgImNvbCI6IDE5MSwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuNTc5NTU3NDI4ODcyNDk3NCwgImNvbCI6IDE5MSwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuNDM3MTcwMDEwNTU5NjYyMSwgImNvbCI6IDE5MSwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMjY3MDIxMjc2NTk1NzQ0NywgImNvbCI6IDE5MSwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV8zMjI3MzA3ZTQ3Njk0ZWFiYWIyYTIzNjExOWI0MDk0Nik7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzJmMjRkMGE0ZGYzZTQ3MWNiYjI3OTdhZDY0YjZiZDVhID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDI1OTIsLTk5LjE5MDc1NSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzk4OWI1MjQyZTJiOTQ3MWFhMGY4MTliYTdkZjNkZTY3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzc0OGM3NzBjOTc2MTQ4NjZiOWU0OWFjNjkyYjdmMmRlID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfNzQ4Yzc3MGM5NzYxNDg2NmI5ZTQ5YWM2OTJiN2YyZGUiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzk4OWI1MjQyZTJiOTQ3MWFhMGY4MTliYTdkZjNkZTY3LnNldENvbnRlbnQodmVnYV83NDhjNzcwYzk3NjE0ODY2YjllNDlhYzY5MmI3ZjJkZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl8yZjI0ZDBhNGRmM2U0NzFjYmIyNzk3YWQ2NGI2YmQ1YS5iaW5kUG9wdXAocG9wdXBfOTg5YjUyNDJlMmI5NDcxYWEwZjgxOWJhN2RmM2RlNjcpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTkyOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wMjgwMTcyNDEzNzkzMTAzNDUsICJjb2wiOiAxOTIsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDA2OTA4NDYyODY3MDEyMDg5NSwgImNvbCI6IDE5MiwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMDYxNTM4NDYxNTM4NDYxNTQsICJjb2wiOiAxOTIsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDA1NjE3OTc3NTI4MDg5ODg3NSwgImNvbCI6IDE5MiwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMDM2NjMwMDM2NjMwMDM2NjMsICJjb2wiOiAxOTIsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE5MiwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4zMTcxNTk3NjMzMTM2MDk0NiwgImNvbCI6IDE5MiwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMS4zNzg1NzkwMDMxODEzMzYsICJjb2wiOiAxOTIsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDMuMjE5Mjc5NjYxMDE2OTQ5LCAiY29sIjogMTkyLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAyLjEwNTkzMjIwMzM4OTgzMDQsICJjb2wiOiAxOTIsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuOTAyODUxMTA4NzY0NTE5NiwgImNvbCI6IDE5MiwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuODk1Nzg5NDczNjg0MjEwNiwgImNvbCI6IDE5MiwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuODU1Nzg5NDczNjg0MjEwNSwgImNvbCI6IDE5MiwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuOTAxMTU2Njc3MTgxOTEzNywgImNvbCI6IDE5MiwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuMzA5Nzk5Nzg5MjUxODQ0LCAiY29sIjogMTkyLCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS4zNzkzNDY2ODA3MTY1NDM4LCAiY29sIjogMTkyLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMS4yNDY1NzUzNDI0NjU3NTM1LCAiY29sIjogMTkyLCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMS41NTk1MzYzNTQwNTY5MDIsICJjb2wiOiAxOTIsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAzLjQ3NDY4MzU0NDMwMzc5NzMsICJjb2wiOiAxOTIsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAzLjMyMzgzOTY2MjQ0NzI1NzUsICJjb2wiOiAxOTIsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAxLjc1OTIzOTcwNDMyOTQ2MTQsICJjb2wiOiAxOTIsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjg3MjQ5NzM2NTY0ODA1MDYsICJjb2wiOiAxOTIsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjQwODY1ODkyMjkxNDQ2Njc2LCAiY29sIjogMTkyLCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4xNzU1MzE5MTQ4OTM2MTcwMiwgImNvbCI6IDE5MiwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV83NDhjNzcwYzk3NjE0ODY2YjllNDlhYzY5MmI3ZjJkZSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyX2ZlNGM1MzJmZjYxOTRkM2M4YTNlN2I1YjI5MDJjYzhlID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDI1OTA3LC05OS4xOTA3MzMpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81ODE2OTI2ZTI4N2E0MjVkODU2ODBhZmE5NjdmODM0ZSA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV8yZDRmZWJlMjdkYTE0YjcyODAwZjJlOTE1NGRiZGVmNyA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzJkNGZlYmUyN2RhMTRiNzI4MDBmMmU5MTU0ZGJkZWY3Ij48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81ODE2OTI2ZTI4N2E0MjVkODU2ODBhZmE5NjdmODM0ZS5zZXRDb250ZW50KHZlZ2FfMmQ0ZmViZTI3ZGExNGI3MjgwMGYyZTkxNTRkYmRlZjcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZmU0YzUzMmZmNjE5NGQzYzhhM2U3YjViMjkwMmNjOGUuYmluZFBvcHVwKHBvcHVwXzU4MTY5MjZlMjg3YTQyNWQ4NTY4MGFmYTk2N2Y4MzRlKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDE5MzogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDEyOTMxMDM0NDgyNzU4NjIsICJjb2wiOiAxOTMsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE5MywgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMDYxNTM4NDYxNTM4NDYxNTQsICJjb2wiOiAxOTMsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE5MywgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMDM2NjMwMDM2NjMwMDM2NjMsICJjb2wiOiAxOTMsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE5MywgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wOTIzMDc2OTIzMDc2OTIzMSwgImNvbCI6IDE5MywgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC4zNzk2Mzk0NDg1NjgzOTg3LCAiY29sIjogMTkzLCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAxLjIxMzk4MzA1MDg0NzQ1NzYsICJjb2wiOiAxOTMsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDAuNjM0NTMzODk4MzA1MDg0OCwgImNvbCI6IDE5MywgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC4zNDUzMDA5NTAzNjk1ODgyLCAiY29sIjogMTkzLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC4yNDIxMDUyNjMxNTc4OTQ3NCwgImNvbCI6IDE5MywgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuMzI0MjEwNTI2MzE1Nzg5NDUsICJjb2wiOiAxOTMsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjM4MTcwMzQ3MDAzMTU0NTc2LCAiY29sIjogMTkzLCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMC41NjU4NTg3OTg3MzU1MTEsICJjb2wiOiAxOTMsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjY4OTE0NjQ2OTk2ODM4NzgsICJjb2wiOiAxOTMsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjYwNDg0NzIwNzU4NjkzMzcsICJjb2wiOiAxOTMsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjgzOTgzMTQwMTQ3NTIzNywgImNvbCI6IDE5MywgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDEuNTQwMDg0Mzg4MTg1NjU0LCAiY29sIjogMTkzLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS4xMzI5MTEzOTI0MDUwNjMzLCAiY29sIjogMTkzLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC42NzE1OTQ1MDg5NzU3MTI4LCAiY29sIjogMTkzLCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC4zNDM1MTk0OTQyMDQ0MjU3MywgImNvbCI6IDE5MywgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMTI2NzE1OTQ1MDg5NzU3MTEsICJjb2wiOiAxOTMsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjA2NDg5MzYxNzAyMTI3NjU5LCAiY29sIjogMTkzLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzJkNGZlYmUyN2RhMTRiNzI4MDBmMmU5MTU0ZGJkZWY3KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZGMwMjI2OWU1YzY3NDRhYzkzZmFiOGE2MzliNzE2ZTggPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MjQyODIsLTk5LjE4MDMzNCksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzVhODEyNTYwM2RmMjQwY2JiMjgwMDdkY2NiZDE2MDU0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzk1YjU0MzYyMDM5MDQ5OTI4MTc0NjZiOWExMTRlODM5ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfOTViNTQzNjIwMzkwNDk5MjgxNzQ2NmI5YTExNGU4MzkiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzVhODEyNTYwM2RmMjQwY2JiMjgwMDdkY2NiZDE2MDU0LnNldENvbnRlbnQodmVnYV85NWI1NDM2MjAzOTA0OTkyODE3NDY2YjlhMTE0ZTgzOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9kYzAyMjY5ZTVjNjc0NGFjOTNmYWI4YTYzOWI3MTZlOC5iaW5kUG9wdXAocG9wdXBfNWE4MTI1NjAzZGYyNDBjYmIyODAwN2RjY2JkMTYwNTQpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTk0OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wMjI2MjkzMTAzNDQ4Mjc1ODYsICJjb2wiOiAxOTQsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE5NCwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTk0LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxOTQsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE5NCwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTk0LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAxLjE2MzMxMzYwOTQ2NzQ1NTcsICJjb2wiOiAxOTQsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDEuMTgyMzk2NjA2NTc0NzYxMywgImNvbCI6IDE5NCwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMS45ODYyMjg4MTM1NTkzMjIsICJjb2wiOiAxOTQsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDEuOTQ3MDMzODk4MzA1MDg0OCwgImNvbCI6IDE5NCwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMS43MzI4NDA1NDkxMDI0Mjg4LCAiY29sIjogMTk0LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMS4xMDk0NzM2ODQyMTA1MjY0LCAiY29sIjogMTk0LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMS4xNDczNjg0MjEwNTI2MzE2LCAiY29sIjogMTk0LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMS4zNzg1NDg4OTU4OTkwNTM3LCAiY29sIjogMTk0LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMS44MTEzODA0MDA0MjE0OTY0LCAiY29sIjogMTk0LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS45NTc4NTAzNjg4MDkyNzMsICJjb2wiOiAxOTQsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAxLjQ0NTczMjM0OTg0MTkzOSwgImNvbCI6IDE5NCwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDEuNjI5MDgzMjQ1NTIxNjAxOCwgImNvbCI6IDE5NCwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDMuMDI5NTM1ODY0OTc4OTAzLCAiY29sIjogMTk0LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMi40NTY3NTEwNTQ4NTIzMjA2LCAiY29sIjogMTk0LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMS4wNzQ5NzM2MDA4NDQ3NzMsICJjb2wiOiAxOTQsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjQ2NDY5OTY4Mzg3Nzc2NjA2LCAiY29sIjogMTk0LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4yMTAxMzcyNzU2MDcxODA1NywgImNvbCI6IDE5NCwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMTM2MTcwMjEyNzY1OTU3NDUsICJjb2wiOiAxOTQsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfOTViNTQzNjIwMzkwNDk5MjgxNzQ2NmI5YTExNGU4MzkpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9iYThjNTIyYmM3MTY0M2RiYjM5NWUxMmJmNmRlZjU5NyA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQyNDg1OCwtOTkuMTg1MTgxKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzRkZDEzNjNiZGFlNGNhM2I1NGRmNDBlNzRhNWUzNjggPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfNGNiYjg0YzkxMDVlNGE1Y2JlYzM4NmZhZmNhZWYwNDQgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV80Y2JiODRjOTEwNWU0YTVjYmVjMzg2ZmFmY2FlZjA0NCI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMzRkZDEzNjNiZGFlNGNhM2I1NGRmNDBlNzRhNWUzNjguc2V0Q29udGVudCh2ZWdhXzRjYmI4NGM5MTA1ZTRhNWNiZWMzODZmYWZjYWVmMDQ0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2JhOGM1MjJiYzcxNjQzZGJiMzk1ZTEyYmY2ZGVmNTk3LmJpbmRQb3B1cChwb3B1cF8zNGRkMTM2M2JkYWU0Y2EzYjU0ZGY0MGU3NGE1ZTM2OCk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxOTU6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAwODYyMDY4OTY1NTE3MjQxNCwgImNvbCI6IDE5NSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTk1LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwNjE1Mzg0NjE1Mzg0NjE1NCwgImNvbCI6IDE5NSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDU2MTc5Nzc1MjgwODk4ODc1LCAiY29sIjogMTk1LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxOTUsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE5NSwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wNDQ5NzA0MTQyMDExODM0MywgImNvbCI6IDE5NSwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC4yNzY3NzYyNDYwMjMzMjk4LCAiY29sIjogMTk1LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAwLjg3OTIzNzI4ODEzNTU5MzIsICJjb2wiOiAxOTUsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDEuMDg1ODA1MDg0NzQ1NzYyOCwgImNvbCI6IDE5NSwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC42MjE5NjQwOTcxNDg4OTEyLCAiY29sIjogMTk1LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC42NzA1MjYzMTU3ODk0NzM2LCAiY29sIjogMTk1LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC42NzM2ODQyMTA1MjYzMTU4LCAiY29sIjogMTk1LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC43MTM5ODUyNzg2NTQwNDg0LCAiY29sIjogMTk1LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMC44NTE0MjI1NTAwNTI2ODcxLCAiY29sIjogMTk1LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMC43OTg3MzU1MTEwNjQyNzgyLCAiY29sIjogMTk1LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC42OTEyNTM5NTE1Mjc5MjQxLCAiY29sIjogMTk1LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC42MzIyNDQ0Njc4NjA5MDYzLCAiY29sIjogMTk1LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMC43OTQzMDM3OTc0NjgzNTQ0LCAiY29sIjogMTk1LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMC43NDI2MTYwMzM3NTUyNzQzLCAiY29sIjogMTk1LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC4zMTc4NDU4Mjg5MzM0NzQxMywgImNvbCI6IDE5NSwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuMTA3NDgxNTU5NTM2MzU0MDYsICJjb2wiOiAxOTUsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjA3MTgwNTcwMjIxNzUyOTA0LCAiY29sIjogMTk1LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4wMzE5MTQ4OTM2MTcwMjEyNzQsICJjb2wiOiAxOTUsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfNGNiYjg0YzkxMDVlNGE1Y2JlYzM4NmZhZmNhZWYwNDQpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl84NTQwM2RiMmI3ZWQ0NjcxODJlYzFkZGIxZjgyZTA3YiA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQzODM0OSwtOTkuMTkyOTA0KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZWQyMzkyZThjODg1NGIxMTg0YmM3YmUwNDVhNGY0YTYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfNTlmNmJhNDI0ZDliNGVmZjk0NDBlNzc4NTVhZWQ4NGEgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV81OWY2YmE0MjRkOWI0ZWZmOTQ0MGU3Nzg1NWFlZDg0YSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZWQyMzkyZThjODg1NGIxMTg0YmM3YmUwNDVhNGY0YTYuc2V0Q29udGVudCh2ZWdhXzU5ZjZiYTQyNGQ5YjRlZmY5NDQwZTc3ODU1YWVkODRhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzg1NDAzZGIyYjdlZDQ2NzE4MmVjMWRkYjFmODJlMDdiLmJpbmRQb3B1cChwb3B1cF9lZDIzOTJlOGM4ODU0YjExODRiYzdiZTA0NWE0ZjRhNik7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxOTY6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAwODYyMDY4OTY1NTE3MjQxNCwgImNvbCI6IDE5NiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTk2LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxOTYsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE5NiwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMDM2NjMwMDM2NjMwMDM2NjMsICJjb2wiOiAxOTYsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE5NiwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4xODY5ODIyNDg1MjA3MTAwNSwgImNvbCI6IDE5NiwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMS4yMzg2MDAyMTIwODkwNzczLCAiY29sIjogMTk2LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAxLjQ2Mzk4MzA1MDg0NzQ1NzYsICJjb2wiOiAxOTYsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDEuMzQyMTYxMDE2OTQ5MTUyNSwgImNvbCI6IDE5NiwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC43NTgxODM3MzgxMjAzODAyLCAiY29sIjogMTk2LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC41Mzc4OTQ3MzY4NDIxMDUzLCAiY29sIjogMTk2LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC41MTE1Nzg5NDczNjg0MjEsICJjb2wiOiAxOTYsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjY5NzE2MDg4MzI4MDc1NzEsICJjb2wiOiAxOTYsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjk4MzE0MDE0NzUyMzcwOTIsICJjb2wiOiAxOTYsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjAzODk4ODQwODg1MTQyMjUsICJjb2wiOiAxOTYsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjYyNTkyMjAyMzE4MjI5NzIsICJjb2wiOiAxOTYsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjUyNTgxNjY0OTEwNDMyMDQsICJjb2wiOiAxOTYsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAwLjYxMjg2OTE5ODMxMjIzNjMsICJjb2wiOiAxOTYsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAwLjY1NDAwODQzODgxODU2NTQsICJjb2wiOiAxOTYsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjM3MTcwMDEwNTU5NjYyMDksICJjb2wiOiAxOTYsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjE4NjUxMjExODAxODk2NzMzLCAiY29sIjogMTk2LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4xMDc3MDg1NTMzMjYyOTM1NiwgImNvbCI6IDE5NiwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMDQwNDI1NTMxOTE0ODkzNjIsICJjb2wiOiAxOTYsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfNTlmNmJhNDI0ZDliNGVmZjk0NDBlNzc4NTVhZWQ4NGEpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl85OWZlYjM0MWNlYzI0ZjMzYjQ4NGQ3ZWQ0M2NkMzQxNyA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQ0MDA3NywtOTkuMjA0MzE2KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTI3ZTgyM2E5MDQwNGEwM2E0ZDJmNDQ4ODU4MTU4MmYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfZTc3M2I4ODUxNGVmNDk4ZmExYTZhNDczODliZmUxNGQgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9lNzczYjg4NTE0ZWY0OThmYTFhNmE0NzM4OWJmZTE0ZCI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTI3ZTgyM2E5MDQwNGEwM2E0ZDJmNDQ4ODU4MTU4MmYuc2V0Q29udGVudCh2ZWdhX2U3NzNiODg1MTRlZjQ5OGZhMWE2YTQ3Mzg5YmZlMTRkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzk5ZmViMzQxY2VjMjRmMzNiNDg0ZDdlZDQzY2QzNDE3LmJpbmRQb3B1cChwb3B1cF9lMjdlODIzYTkwNDA0YTAzYTRkMmY0NDg4NTgxNTgyZik7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAxOTc6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAyMzcwNjg5NjU1MTcyNDEzNywgImNvbCI6IDE5NywgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTk3LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxOTcsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDAyODA4OTg4NzY0MDQ0OTQzNywgImNvbCI6IDE5NywgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMDM2NjMwMDM2NjMwMDM2NjMsICJjb2wiOiAxOTcsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE5NywgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4yNDM3ODY5ODIyNDg1MjA3MiwgImNvbCI6IDE5NywgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMS40Mjg0MTk5MzYzNzMyNzY4LCAiY29sIjogMTk3LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiA0LjgzMjYyNzExODY0NDA2NzUsICJjb2wiOiAxOTcsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDMuMjY1ODg5ODMwNTA4NDc0NSwgImNvbCI6IDE5NywgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMS41MzExNTEwMDMxNjc4OTg1LCAiY29sIjogMTk3LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMS4yMTQ3MzY4NDIxMDUyNjMxLCAiY29sIjogMTk3LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMS4wODYzMTU3ODk0NzM2ODQxLCAiY29sIjogMTk3LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMS43MDc2NzYxMzAzODkwNjQyLCAiY29sIjogMTk3LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMi4xMDMyNjY1OTY0MTcyODE0LCAiY29sIjogMTk3LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMi4yMjQ0NDY3ODYwOTA2MjIsICJjb2wiOiAxOTcsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAxLjQ4MjYxMzI3NzEzMzgyNTIsICJjb2wiOiAxOTcsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAxLjU1NDI2NzY1MDE1ODA2MSwgImNvbCI6IDE5NywgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDIuMTI4NjkxOTgzMTIyMzYzLCAiY29sIjogMTk3LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS45NTg4NjA3NTk0OTM2NzA5LCAiY29sIjogMTk3LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMS4wMDg0NDc3Mjk2NzI2NTA0LCAiY29sIjogMTk3LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC41NTg0ODI2MTMyNzcxMzM4LCAiY29sIjogMTk3LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4yODA4ODcwMTE2MTU2MjgzLCAiY29sIjogMTk3LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4xLCAiY29sIjogMTk3LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2U3NzNiODg1MTRlZjQ5OGZhMWE2YTQ3Mzg5YmZlMTRkKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNzNkNGIwNGM4YjJiNDcyMmFiOTIzOGU3NTJlZTdhMzAgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MzgxNjgsLTk5LjIwMzg4OCksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzNhNDIxNjE5OWUyMDQ2MjU4NmNkMTE1NTZiYTMxNGRkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzQwMzliNWE4NTNlZDQzYWU5YzFkZTY4YTdkNmQ4NWRhID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfNDAzOWI1YTg1M2VkNDNhZTljMWRlNjhhN2Q2ZDg1ZGEiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzNhNDIxNjE5OWUyMDQ2MjU4NmNkMTE1NTZiYTMxNGRkLnNldENvbnRlbnQodmVnYV80MDM5YjVhODUzZWQ0M2FlOWMxZGU2OGE3ZDZkODVkYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl83M2Q0YjA0YzhiMmI0NzIyYWI5MjM4ZTc1MmVlN2EzMC5iaW5kUG9wdXAocG9wdXBfM2E0MjE2MTk5ZTIwNDYyNTg2Y2QxMTU1NmJhMzE0ZGQpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTk4OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wMTQwMDg2MjA2ODk2NTUxNzMsICJjb2wiOiAxOTgsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE5OCwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTk4LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAwMjgwODk4ODc2NDA0NDk0MzcsICJjb2wiOiAxOTgsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE5OCwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTk4LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjA3NjkyMzA3NjkyMzA3NjkzLCAiY29sIjogMTk4LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAxLjUyNzA0MTM1NzM3MDA5NTQsICJjb2wiOiAxOTgsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDMuMzExNDQwNjc3OTY2MTAxNiwgImNvbCI6IDE5OCwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMi40Mzk2MTg2NDQwNjc3OTY3LCAiY29sIjogMTk4LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAxLjA3MDc0OTczNjAwODQ0NzcsICJjb2wiOiAxOTgsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjkxMTU3ODk0NzM2ODQyMSwgImNvbCI6IDE5OCwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuODU1Nzg5NDczNjg0MjEwNSwgImNvbCI6IDE5OCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuODQxMjE5NzY4NjY0NTYzNiwgImNvbCI6IDE5OCwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuMTEzODA0MDA0MjE0OTYzLCAiY29sIjogMTk4LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS4wNzM3NjE4NTQ1ODM3NzI0LCAiY29sIjogMTk4LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC44NzI0OTczNjU2NDgwNTA2LCAiY29sIjogMTk4LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC42NzIyODY2MTc0OTIwOTcsICJjb2wiOiAxOTgsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAwLjY2NjY2NjY2NjY2NjY2NjYsICJjb2wiOiAxOTgsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAwLjYzODE4NTY1NDAwODQzODksICJjb2wiOiAxOTgsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjI3NjY2MzE0Njc3OTMwMzA0LCAiY29sIjogMTk4LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC4xNDk2MzExOTA3MjcwODExNCwgImNvbCI6IDE5OCwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMDgxMzA5Mzk4MDk5MjYwODMsICJjb2wiOiAxOTgsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjA0NDY4MDg1MTA2MzgyOTc5LCAiY29sIjogMTk4LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzQwMzliNWE4NTNlZDQzYWU5YzFkZTY4YTdkNmQ4NWRhKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfMjIwN2Y1MTBlNDY1NDRjNmE5MzBmYTQxMTVhNDEzZTEgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40Mzc5MzQsLTk5LjE5NzI0MSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2JmOTQ5OTE2Y2Y0MDQyNjM4ZTc4NjkwMTE1M2VkMzcwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzJlMjJhMDY5ZmE3OTQ5MDQ5ZDYyYmNlMTQ4ODM5YTg1ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfMmUyMmEwNjlmYTc5NDkwNDlkNjJiY2UxNDg4MzlhODUiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2JmOTQ5OTE2Y2Y0MDQyNjM4ZTc4NjkwMTE1M2VkMzcwLnNldENvbnRlbnQodmVnYV8yZTIyYTA2OWZhNzk0OTA0OWQ2MmJjZTE0ODgzOWE4NSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl8yMjA3ZjUxMGU0NjU0NGM2YTkzMGZhNDExNWE0MTNlMS5iaW5kUG9wdXAocG9wdXBfYmY5NDk5MTZjZjQwNDI2MzhlNzg2OTAxMTUzZWQzNzApOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMTk5OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wMDMyMzI3NTg2MjA2ODk2NTUsICJjb2wiOiAxOTksICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE5OSwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTk5LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAxOTksICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDE5OSwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMTk5LCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjMyNjYyNzIxODkzNDkxMTI2LCAiY29sIjogMTk5LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjgwMzgxNzYwMzM5MzQyNTIsICJjb2wiOiAxOTksICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDEuMjkzNDMyMjAzMzg5ODMwNCwgImNvbCI6IDE5OSwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS4zNzI4ODEzNTU5MzIyMDMzLCAiY29sIjogMTk5LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAxLjA3MTgwNTcwMjIxNzUyOTEsICJjb2wiOiAxOTksICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjc1Njg0MjEwNTI2MzE1NzksICJjb2wiOiAxOTksICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjcwNjMxNTc4OTQ3MzY4NDIsICJjb2wiOiAxOTksICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjYwNDYyNjcwODcyNzY1NTEsICJjb2wiOiAxOTksICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjAxMTU5MTE0ODU3NzQ1LCAiY29sIjogMTk5LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS4xODU0NTgzNzcyMzkxOTkxLCAiY29sIjogMTk5LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC43MzU1MTEwNjQyNzgxODc2LCAiY29sIjogMTk5LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC43Nzc2NjA2OTU0Njg5MTQ3LCAiY29sIjogMTk5LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMC43MzIwNjc1MTA1NDg1MjMzLCAiY29sIjogMTk5LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMC41Mjc0MjYxNjAzMzc1NTI3LCAiY29sIjogMTk5LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC4yNzAzMjczNDk1MjQ4MTUyLCAiY29sIjogMTk5LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC4wODIxOTE3ODA4MjE5MTc4LCAiY29sIjogMTk5LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4wNDAxMjY3MTU5NDUwODk3NiwgImNvbCI6IDE5OSwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMDE1OTU3NDQ2ODA4NTEwNjM3LCAiY29sIjogMTk5LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzJlMjJhMDY5ZmE3OTQ5MDQ5ZDYyYmNlMTQ4ODM5YTg1KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfYmI4YmQ1OGMyYjRjNGRkZGI2MDA2NmQ3NTM1OTAzNWIgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40Mzc1OTYsLTk5LjE4ODc4NSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzAyYzFmMzNkYWM0YzQyOTk5NTQ0YmY4ZjNhYmM5YzkxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzc3MmM0YmI2ZTliYTRiMjE5YmU0ZDljNDc1NDNkZTE1ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfNzcyYzRiYjZlOWJhNGIyMTliZTRkOWM0NzU0M2RlMTUiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzAyYzFmMzNkYWM0YzQyOTk5NTQ0YmY4ZjNhYmM5YzkxLnNldENvbnRlbnQodmVnYV83NzJjNGJiNmU5YmE0YjIxOWJlNGQ5YzQ3NTQzZGUxNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9iYjhiZDU4YzJiNGM0ZGRkYjYwMDY2ZDc1MzU5MDM1Yi5iaW5kUG9wdXAocG9wdXBfMDJjMWYzM2RhYzRjNDI5OTk1NDRiZjhmM2FiYzljOTEpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMjAwOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wMzg3OTMxMDM0NDgyNzU4NiwgImNvbCI6IDIwMCwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjAwLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMDAsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIwMCwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMDM2NjMwMDM2NjMwMDM2NjMsICJjb2wiOiAyMDAsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIwMCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4xNjgwNDczMzcyNzgxMDY1LCAiY29sIjogMjAwLCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjgyMjkwNTYyMDM2MDU1MTUsICJjb2wiOiAyMDAsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDIuNjE2NTI1NDIzNzI4ODEzNiwgImNvbCI6IDIwMCwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMi4wOTExMDE2OTQ5MTUyNTQzLCAiY29sIjogMjAwLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjc3Mjk2NzI2NTA0NzUxODQsICJjb2wiOiAyMDAsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjY0OTQ3MzY4NDIxMDUyNjMsICJjb2wiOiAyMDAsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjY1MTU3ODk0NzM2ODQyMSwgImNvbCI6IDIwMCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuODEzODgwMTI2MTgyOTY1MywgImNvbCI6IDIwMCwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuMTIyMjMzOTMwNDUzMTA4NiwgImNvbCI6IDIwMCwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuMTc0OTIwOTY5NDQxNTE3NSwgImNvbCI6IDIwMCwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDAuNjU5NjQxNzI4MTM0ODc4OSwgImNvbCI6IDIwMCwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNjE3NDkyMDk2OTQ0MTUxNywgImNvbCI6IDIwMCwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDEuMDMwNTkwNzE3Mjk5NTc4LCAiY29sIjogMjAwLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMC43OTY0MTM1MDIxMDk3MDQ2LCAiY29sIjogMjAwLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC41Nzk3MjU0NDg3ODU2Mzg4LCAiY29sIjogMjAwLCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC40MDg4NTE0MjI1NTAwNTI3LCAiY29sIjogMjAwLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4yNDA3NjAyOTU2NzA1Mzg1NSwgImNvbCI6IDIwMCwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMTQ0NjgwODUxMDYzODI5NzcsICJjb2wiOiAyMDAsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfNzcyYzRiYjZlOWJhNGIyMTliZTRkOWM0NzU0M2RlMTUpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl8wMTdmZWYyNGY5Nzg0OGE3YjcyNGM5ZTYyODg4ZTA4YyA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQzNzQzMSwtOTkuMTg3MjE1KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNWJjZmJhZDdhZDg4NDg0ZGE3NDA5NGUyMGM0ODgxMGMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfN2JmNmYzMjUzZTdjNDg0NjkwYWRmNTVkN2M4NWY3NjAgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV83YmY2ZjMyNTNlN2M0ODQ2OTBhZGY1NWQ3Yzg1Zjc2MCI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNWJjZmJhZDdhZDg4NDg0ZGE3NDA5NGUyMGM0ODgxMGMuc2V0Q29udGVudCh2ZWdhXzdiZjZmMzI1M2U3YzQ4NDY5MGFkZjU1ZDdjODVmNzYwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzAxN2ZlZjI0Zjk3ODQ4YTdiNzI0YzllNjI4ODhlMDhjLmJpbmRQb3B1cChwb3B1cF81YmNmYmFkN2FkODg0ODRkYTc0MDk0ZTIwYzQ4ODEwYyk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAyMDE6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAyMDQ3NDEzNzkzMTAzNDQ4MiwgImNvbCI6IDIwMSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjAxLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMDEsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDA4NDI2OTY2MjkyMTM0ODMxLCAiY29sIjogMjAxLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAwMzY2MzAwMzY2MzAwMzY2MywgImNvbCI6IDIwMSwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjAxLCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjYwMzU1MDI5NTg1Nzk4ODEsICJjb2wiOiAyMDEsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDEuNzUxODU1Nzc5NDI3MzU5NSwgImNvbCI6IDIwMSwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMy4xMjA3NjI3MTE4NjQ0MDY2LCAiY29sIjogMjAxLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAxLjg5NTEyNzExODY0NDA2NzcsICJjb2wiOiAyMDEsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuNzQ2NTY4MTA5ODIwNDg1NywgImNvbCI6IDIwMSwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNjgsICJjb2wiOiAyMDEsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjcyMTA1MjYzMTU3ODk0NzQsICJjb2wiOiAyMDEsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjk3NTgxNDkzMTY1MDg5MzgsICJjb2wiOiAyMDEsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjc5NjYyODAyOTUwNDc0MTksICJjb2wiOiAyMDEsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjYyMTcwNzA2MDA2MzIyNDQsICJjb2wiOiAyMDEsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAxLjA4NjQwNjc0Mzk0MDk5MDYsICJjb2wiOiAyMDEsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAxLjI5OTI2MjM4MTQ1NDE2MjIsICJjb2wiOiAyMDEsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjQ0NzI1NzM4Mzk2NjI0NDgsICJjb2wiOiAyMDEsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAwLjkxNzcyMTUxODk4NzM0MTgsICJjb2wiOiAyMDEsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjgxMDk4MjA0ODU3NDQ0NTcsICJjb2wiOiAyMDEsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjQ2Nzg2MDkwNjIxNzA3MDYsICJjb2wiOiAyMDEsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjIyNzAzMjczNDk1MjQ4MTUyLCAiY29sIjogMjAxLCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4xMTE3MDIxMjc2NTk1NzQ0NiwgImNvbCI6IDIwMSwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV83YmY2ZjMyNTNlN2M0ODQ2OTBhZGY1NWQ3Yzg1Zjc2MCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzVlMTFjZjk4MjZkMTQ5NThiMDBiY2ZiZTAxM2U1MmQ2ID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDM1OTg1LC05OS4xOTQ4MzIpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hNjVlZjhkMmE2YTk0ODc3YWNkODQ0YTUxNjgzODYxNSA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV84NGQ5ZmNjZWRiYzM0N2RkYjFmNDFjMzg2ODQzZGIxMyA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzg0ZDlmY2NlZGJjMzQ3ZGRiMWY0MWMzODY4NDNkYjEzIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hNjVlZjhkMmE2YTk0ODc3YWNkODQ0YTUxNjgzODYxNS5zZXRDb250ZW50KHZlZ2FfODRkOWZjY2VkYmMzNDdkZGIxZjQxYzM4Njg0M2RiMTMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNWUxMWNmOTgyNmQxNDk1OGIwMGJjZmJlMDEzZTUyZDYuYmluZFBvcHVwKHBvcHVwX2E2NWVmOGQyYTZhOTQ4NzdhY2Q4NDRhNTE2ODM4NjE1KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDIwMzogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDA5Njk4Mjc1ODYyMDY4OTY2LCAiY29sIjogMjAzLCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAwMTcyNzExNTcxNjc1MzAyMjQsICJjb2wiOiAyMDMsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIwMywgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjAzLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMDMsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIwMywgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wODg3NTczOTY0NDk3MDQxNCwgImNvbCI6IDIwMywgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC4xODIzOTY2MDY1NzQ3NjE0LCAiY29sIjogMjAzLCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAwLjY4MTE0NDA2Nzc5NjYxMDIsICJjb2wiOiAyMDMsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDEuMTM3NzExODY0NDA2Nzc5NiwgImNvbCI6IDIwMywgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC40OTk0NzIwMTY4OTU0NTkzNCwgImNvbCI6IDIwMywgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNTI4NDIxMDUyNjMxNTc4OSwgImNvbCI6IDIwMywgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNTIsICJjb2wiOiAyMDMsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjcxNjA4ODMyODA3NTcwOTgsICJjb2wiOiAyMDMsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjAyMjEyODU1NjM3NTEzMTcsICJjb2wiOiAyMDMsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjg1MzUzMDAzMTYxMjIyMzQsICJjb2wiOiAyMDMsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjY0NTk0MzA5Nzk5Nzg5MjUsICJjb2wiOiAyMDMsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjU5MTE0ODU3NzQ0OTk0NzMsICJjb2wiOiAyMDMsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAwLjk0MzAzNzk3NDY4MzU0NDMsICJjb2wiOiAyMDMsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAwLjk0NzI1NzM4Mzk2NjI0NDcsICJjb2wiOiAyMDMsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjU2MjgyOTk4OTQ0MDMzNzksICJjb2wiOiAyMDMsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjIyMjMzOTMwNDUzMTA4NTM2LCAiY29sIjogMjAzLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4xMjQ2MDQwMTI2NzE1OTQ1LCAiY29sIjogMjAzLCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4wNjkxNDg5MzYxNzAyMTI3NywgImNvbCI6IDIwMywgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV84NGQ5ZmNjZWRiYzM0N2RkYjFmNDFjMzg2ODQzZGIxMyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzgyNmVjYWY2ZjQ3ODQ2NDg5Njk2ZWQxMWFiNTU4NjkxID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDM1NTI1LC05OS4xODQ3MTMpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85N2VhZWYxYjk2Njc0M2I0OTRkOTFiNDY3OTcxMGJjZCA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV80ZTBjNTU3MWQ3MDI0N2U2OWMwYjEyMWZkZTljZWY2NiA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzRlMGM1NTcxZDcwMjQ3ZTY5YzBiMTIxZmRlOWNlZjY2Ij48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85N2VhZWYxYjk2Njc0M2I0OTRkOTFiNDY3OTcxMGJjZC5zZXRDb250ZW50KHZlZ2FfNGUwYzU1NzFkNzAyNDdlNjljMGIxMjFmZGU5Y2VmNjYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfODI2ZWNhZjZmNDc4NDY0ODk2OTZlZDExYWI1NTg2OTEuYmluZFBvcHVwKHBvcHVwXzk3ZWFlZjFiOTY2NzQzYjQ5NGQ5MWI0Njc5NzEwYmNkKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDIwNTogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDMxMjUsICJjb2wiOiAyMDUsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIwNSwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjA1LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMDUsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMDAzNjYzMDAzNjYzMDAzNjYzLCAiY29sIjogMjA1LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMDUsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMTgxMDY1MDg4NzU3Mzk2NDQsICJjb2wiOiAyMDUsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuOTI0NzA4Mzc3NTE4NTU3OCwgImNvbCI6IDIwNSwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMi42OTQ5MTUyNTQyMzcyODgsICJjb2wiOiAyMDUsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDIuMzUwNjM1NTkzMjIwMzM5LCAiY29sIjogMjA1LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAxLjE2ODk1NDU5MzQ1MzAwOTQsICJjb2wiOiAyMDUsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAxLjAwNTI2MzE1Nzg5NDczNjksICJjb2wiOiAyMDUsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAxLjEwNDIxMDUyNjMxNTc4OTUsICJjb2wiOiAyMDUsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAxLjMxMTI1MTMxNDQwNTg4ODYsICJjb2wiOiAyMDUsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjkxMjUzOTUxNTI3OTI0MTMsICJjb2wiOiAyMDUsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjUwMzY4ODA5MjcyOTE4ODcsICJjb2wiOiAyMDUsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAxLjM2NTY0ODA1MDU3OTU1NzQsICJjb2wiOiAyMDUsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAxLjYxNjQzODM1NjE2NDM4MzYsICJjb2wiOiAyMDUsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAyLjI5MDA4NDM4ODE4NTY1NCwgImNvbCI6IDIwNSwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDEuOTA3MTcyOTk1NzgwNTkwNywgImNvbCI6IDIwNSwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDEuMjY5MjcxMzgzMzE1NzMzOSwgImNvbCI6IDIwNSwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuNzQ3MTAyMjEyODU1NjM3NSwgImNvbCI6IDIwNSwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuNDI4NzIyMjgwODg3MDExNjQsICJjb2wiOiAyMDUsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjE1OTU3NDQ2ODA4NTEwNjQsICJjb2wiOiAyMDUsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfNGUwYzU1NzFkNzAyNDdlNjljMGIxMjFmZGU5Y2VmNjYpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl81Mjc5OWY4NDkwZWI0ZmVhYWM0NmY1MmIyMmFhNWNjZSA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQzNTc5OCwtOTkuMjAxNDE5KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODJiOGRiMmEwMjE3NDE1ZWJiNzczZjg5NWUzN2EzYzEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfNTI3ZjVhODUzYzhlNDY0MmExODczYjlkNGUzNzIxOTkgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV81MjdmNWE4NTNjOGU0NjQyYTE4NzNiOWQ0ZTM3MjE5OSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODJiOGRiMmEwMjE3NDE1ZWJiNzczZjg5NWUzN2EzYzEuc2V0Q29udGVudCh2ZWdhXzUyN2Y1YTg1M2M4ZTQ2NDJhMTg3M2I5ZDRlMzcyMTk5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzUyNzk5Zjg0OTBlYjRmZWFhYzQ2ZjUyYjIyYWE1Y2NlLmJpbmRQb3B1cChwb3B1cF84MmI4ZGIyYTAyMTc0MTVlYmI3NzNmODk1ZTM3YTNjMSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAyMDY6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAyMTU1MTcyNDEzNzkzMTAzNiwgImNvbCI6IDIwNiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDE3MjcxMTU3MTY3NTMwMjI0LCAiY29sIjogMjA2LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMDYsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIwNiwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjA2LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMDYsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuNzcwNDE0MjAxMTgzNDMyLCAiY29sIjogMjA2LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAxLjI2Mjk5MDQ1NTk5MTUxNjQsICJjb2wiOiAyMDYsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDQuMjMxOTkxNTI1NDIzNzI5LCAiY29sIjogMjA2LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAzLjEyODE3Nzk2NjEwMTY5NSwgImNvbCI6IDIwNiwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMS45NjkzNzY5Nzk5MzY2NDIsICJjb2wiOiAyMDYsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAxLjU3Njg0MjEwNTI2MzE1NzgsICJjb2wiOiAyMDYsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAxLjYwMjEwNTI2MzE1Nzg5NDcsICJjb2wiOiAyMDYsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAyLjQwNzk5MTU4NzgwMjMxMzUsICJjb2wiOiAyMDYsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAzLjI5NjEwMTE1OTExNDg1OCwgImNvbCI6IDIwNiwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDIuODYxOTU5OTU3ODUwMzY5LCAiY29sIjogMjA2LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMS45MjIwMjMxODIyOTcxNTUsICJjb2wiOiAyMDYsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAyLjAzNzkzNDY2ODA3MTY1NDQsICJjb2wiOiAyMDYsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAyLjYzNjA3NTk0OTM2NzA4ODQsICJjb2wiOiAyMDYsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAyLjA4ODYwNzU5NDkzNjcwOSwgImNvbCI6IDIwNiwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDEuMjE1NDE3MTA2NjUyNTg3MiwgImNvbCI6IDIwNiwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuNjA5MDYyMTcwNzA2MDA2MywgImNvbCI6IDIwNiwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMzczODEyMDM4MDE0NzgzNSwgImNvbCI6IDIwNiwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMTUsICJjb2wiOiAyMDYsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfNTI3ZjVhODUzYzhlNDY0MmExODczYjlkNGUzNzIxOTkpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl8wMmZkNGRmZjU3MDY0MTE0ODFkYTA5NTg5MDc0ZWQ0ZSA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQzNDg2MSwtOTkuMTgzMzIyKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYWI0YTBjNDFiYjIzNDE0NjkyYjBmOGM2MzE3NGQ1YzkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfM2ViMTBlMmU5NzhmNGRjYTlkY2U1M2Q2Yjg1NDJhMmIgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV8zZWIxMGUyZTk3OGY0ZGNhOWRjZTUzZDZiODU0MmEyYiI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYWI0YTBjNDFiYjIzNDE0NjkyYjBmOGM2MzE3NGQ1Yzkuc2V0Q29udGVudCh2ZWdhXzNlYjEwZTJlOTc4ZjRkY2E5ZGNlNTNkNmI4NTQyYTJiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzAyZmQ0ZGZmNTcwNjQxMTQ4MWRhMDk1ODkwNzRlZDRlLmJpbmRQb3B1cChwb3B1cF9hYjRhMGM0MWJiMjM0MTQ2OTJiMGY4YzYzMTc0ZDVjOSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAyMDc6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAyODAxNzI0MTM3OTMxMDM0NSwgImNvbCI6IDIwNywgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjA3LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwMzA3NjkyMzA3NjkyMzA3NywgImNvbCI6IDIwNywgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDI4MDg5ODg3NjQwNDQ5NDM3LCAiY29sIjogMjA3LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMDcsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIwNywgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4xNzc1MTQ3OTI4OTk0MDgyNywgImNvbCI6IDIwNywgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC41Nzc5NDI3MzU5NDkwOTg2LCAiY29sIjogMjA3LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAyLjAwMTA1OTMyMjAzMzg5ODQsICJjb2wiOiAyMDcsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDIuOTA4ODk4MzA1MDg0NzQ1NywgImNvbCI6IDIwNywgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC45NjQwOTcxNDg4OTEyMzU0LCAiY29sIjogMjA3LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC44NDk0NzM2ODQyMTA1MjYzLCAiY29sIjogMjA3LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC44NCwgImNvbCI6IDIwNywgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDEuMDk0NjM3MjIzOTc0NzYzNSwgImNvbCI6IDIwNywgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuNzE3NTk3NDcxMDIyMTI4NSwgImNvbCI6IDIwNywgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuNDI2NzY1MDE1ODA2MTExNiwgImNvbCI6IDIwNywgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDEuMTExNjk2NTIyNjU1NDI2NywgImNvbCI6IDIwNywgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDEuMTUyNzkyNDEzMDY2Mzg1NiwgImNvbCI6IDIwNywgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDEuODkyNDA1MDYzMjkxMTM5MywgImNvbCI6IDIwNywgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDEuOTEyNDQ3MjU3MzgzOTY2MSwgImNvbCI6IDIwNywgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDEuMDYyMzAyMDA2MzM1Nzk3MywgImNvbCI6IDIwNywgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuNDIzNjAzNzkzNDY2ODA3MTUsICJjb2wiOiAyMDcsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjM1MDU4MDc4MTQxNDk5NDcsICJjb2wiOiAyMDcsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjEyOTc4NzIzNDA0MjU1MzE4LCAiY29sIjogMjA3LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzNlYjEwZTJlOTc4ZjRkY2E5ZGNlNTNkNmI4NTQyYTJiKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfOTRkZmVjNzk1NDA2NGE1OGJhMGNhMjk4YWYyOTQzZTYgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MzU0NzgsLTk5LjIwNjM1OSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzgzODAwOTA2NzUyYjQzNDc4ZTNlNjQxY2M0Y2Y4M2QzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzUxYmYzZTBhZDQwZjRhZDQ5M2U5NjAxNjMxMGY3MWExID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfNTFiZjNlMGFkNDBmNGFkNDkzZTk2MDE2MzEwZjcxYTEiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzgzODAwOTA2NzUyYjQzNDc4ZTNlNjQxY2M0Y2Y4M2QzLnNldENvbnRlbnQodmVnYV81MWJmM2UwYWQ0MGY0YWQ0OTNlOTYwMTYzMTBmNzFhMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl85NGRmZWM3OTU0MDY0YTU4YmEwY2EyOThhZjI5NDNlNi5iaW5kUG9wdXAocG9wdXBfODM4MDA5MDY3NTJiNDM0NzhlM2U2NDFjYzRjZjgzZDMpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMjA5OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wMTQwMDg2MjA2ODk2NTUxNzMsICJjb2wiOiAyMDksICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIwOSwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjA5LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMDksICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMDAzNjYzMDAzNjYzMDAzNjYzLCAiY29sIjogMjA5LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMDksICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMTEzNjA5NDY3NDU1NjIxMywgImNvbCI6IDIwOSwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMS4wNTYyMDM2MDU1MTQzMTYsICJjb2wiOiAyMDksICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDMuMTk4MDkzMjIwMzM4OTgzLCAiY29sIjogMjA5LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAyLjg0MzIyMDMzODk4MzA1MSwgImNvbCI6IDIwOSwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMS4yNjM5OTE1NTIyNzAzMjczLCAiY29sIjogMjA5LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC43NDUyNjMxNTc4OTQ3MzY4LCAiY29sIjogMjA5LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC43MzQ3MzY4NDIxMDUyNjMxLCAiY29sIjogMjA5LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMS4wOTI1MzQxNzQ1NTMxMDIsICJjb2wiOiAyMDksICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjEyNjQ0ODg5MzU3MjE4MTMsICJjb2wiOiAyMDksICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjk5MjYyMzgxNDU0MTYyMjcsICJjb2wiOiAyMDksICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjg3MTQ0MzYyNDg2ODI4MjQsICJjb2wiOiAyMDksICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjcxODY1MTIxMTgwMTg5NjcsICJjb2wiOiAyMDksICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjAxNzkzMjQ4OTQ1MTQ3NjcsICJjb2wiOiAyMDksICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAwLjk0OTM2NzA4ODYwNzU5NDksICJjb2wiOiAyMDksICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjYxNjY4NDI2NjEwMzQ4NDcsICJjb2wiOiAyMDksICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjM4MTQ1NDE2MjI3NjA4MDEsICJjb2wiOiAyMDksICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjIzNjUzNjQzMDgzNDIxMzMsICJjb2wiOiAyMDksICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjA5NTc0NDY4MDg1MTA2MzgzLCAiY29sIjogMjA5LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzUxYmYzZTBhZDQwZjRhZDQ5M2U5NjAxNjMxMGY3MWExKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfMGUzMTIyNDM2NWViNGViYzgwODUyNmVjMDQyYzZhYWIgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MzM1NjcsLTk5LjE4ODA5NiksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzJkOTdlNzM1NzJmZTQ5M2NiNmIwN2JjM2RiYjhmNTdhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2Y2ZTRhZDk5YmQ2NDQzOTJiM2NjODZhMDE3ZjVmOTM0ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfZjZlNGFkOTliZDY0NDM5MmIzY2M4NmEwMTdmNWY5MzQiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzJkOTdlNzM1NzJmZTQ5M2NiNmIwN2JjM2RiYjhmNTdhLnNldENvbnRlbnQodmVnYV9mNmU0YWQ5OWJkNjQ0MzkyYjNjYzg2YTAxN2Y1ZjkzNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl8wZTMxMjI0MzY1ZWI0ZWJjODA4NTI2ZWMwNDJjNmFhYi5iaW5kUG9wdXAocG9wdXBfMmQ5N2U3MzU3MmZlNDkzY2I2YjA3YmMzZGJiOGY1N2EpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMjEyOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wMzU1NjAzNDQ4Mjc1ODYyMSwgImNvbCI6IDIxMiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjEyLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwNjE1Mzg0NjE1Mzg0NjE1NCwgImNvbCI6IDIxMiwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDI4MDg5ODg3NjQwNDQ5NDM3LCAiY29sIjogMjEyLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAwMzY2MzAwMzY2MzAwMzY2MywgImNvbCI6IDIxMiwgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjEyLCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjE0NzkyODk5NDA4Mjg0MDI0LCAiY29sIjogMjEyLCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAwLjY0NDc1MDc5NTMzNDA0MDMsICJjb2wiOiAyMTIsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDEuMzA5MzIyMDMzODk4MzA1MSwgImNvbCI6IDIxMiwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS4zMzU4MDUwODQ3NDU3NjI4LCAiY29sIjogMjEyLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjg2Mzc4MDM1OTAyODUxMTEsICJjb2wiOiAyMTIsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjg4NTI2MzE1Nzg5NDczNjksICJjb2wiOiAyMTIsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjkxMzY4NDIxMDUyNjMxNTgsICJjb2wiOiAyMTIsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAxLjQ2MDU2NzgyMzM0Mzg0ODYsICJjb2wiOiAyMTIsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAyLjMwNTU4NDgyNjEzMjc3MSwgImNvbCI6IDIxMiwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuNjIyNzYwODAwODQyOTkyNiwgImNvbCI6IDIxMiwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDEuMjA2NTMzMTkyODM0NTYyNiwgImNvbCI6IDIxMiwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDEuNDE3MjgxMzQ4Nzg4MTk4MSwgImNvbCI6IDIxMiwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDIuODczNDE3NzIxNTE4OTg3NiwgImNvbCI6IDIxMiwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDIuODYwNzU5NDkzNjcwODg2MiwgImNvbCI6IDIxMiwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDEuNTkzNDUzMDA5NTAzNjk1OCwgImNvbCI6IDIxMiwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuODA5MjcyOTE4ODYxOTYsICJjb2wiOiAyMTIsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjM2NzQ3NjI0MDc2MDI5NTY3LCAiY29sIjogMjEyLCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4xNzk3ODcyMzQwNDI1NTMyLCAiY29sIjogMjEyLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2Y2ZTRhZDk5YmQ2NDQzOTJiM2NjODZhMDE3ZjVmOTM0KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfMWIxZTgyMDI1ZmU3NDE3ODgwYTNmNzViNDEwMGZiN2EgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MzUxOTcsLTk5LjIwNjk2NyksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2VkNTFlNTA1YTA2NzQ3NjNhMDg5NDBjZWMyMWEyNjg2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhX2VmY2U3MGJiZWE3YjQ1NGJhMDZiZmUyMGQ2MTQ0MWQ4ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfZWZjZTcwYmJlYTdiNDU0YmEwNmJmZTIwZDYxNDQxZDgiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2VkNTFlNTA1YTA2NzQ3NjNhMDg5NDBjZWMyMWEyNjg2LnNldENvbnRlbnQodmVnYV9lZmNlNzBiYmVhN2I0NTRiYTA2YmZlMjBkNjE0NDFkOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl8xYjFlODIwMjVmZTc0MTc4ODBhM2Y3NWI0MTAwZmI3YS5iaW5kUG9wdXAocG9wdXBfZWQ1MWU1MDVhMDY3NDc2M2EwODk0MGNlYzIxYTI2ODYpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMjEzOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wMzQ0ODI3NTg2MjA2ODk2NTUsICJjb2wiOiAyMTMsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDAxNzI3MTE1NzE2NzUzMDIyNCwgImNvbCI6IDIxMywgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjEzLCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMTMsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMDAzNjYzMDAzNjYzMDAzNjYzLCAiY29sIjogMjEzLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMTMsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMzc3NTE0NzkyODk5NDA4MjYsICJjb2wiOiAyMTMsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDEuNjgxODY2MzgzODgxMjMwMiwgImNvbCI6IDIxMywgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogNS4zNjMzNDc0NTc2MjcxMTg1LCAiY29sIjogMjEzLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAzLjg5OTM2NDQwNjc3OTY2MSwgImNvbCI6IDIxMywgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMS4yOTk4OTQ0MDMzNzkwOTE4LCAiY29sIjogMjEzLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMS4wOTM2ODQyMTA1MjYzMTU4LCAiY29sIjogMjEzLCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMS4wMzE1Nzg5NDczNjg0MjEyLCAiY29sIjogMjEzLCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMS41NzcyODcwNjYyNDYwNTY3LCAiY29sIjogMjEzLCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMi4xNDEyMDEyNjQ0ODg5MzU4LCAiY29sIjogMjEzLCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS43Nzg3MTQ0MzYyNDg2ODI5LCAiY29sIjogMjEzLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMS4xNjQzODM1NjE2NDM4MzU2LCAiY29sIjogMjEzLCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMS4yMTQ5NjMxMTkwNzI3MDgyLCAiY29sIjogMjEzLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMi4zMzg2MDc1OTQ5MzY3MDksICJjb2wiOiAyMTMsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAyLjA0NzQ2ODM1NDQzMDM3OTYsICJjb2wiOiAyMTMsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAxLjM4NTQyNzY2NjMxNDY3NzgsICJjb2wiOiAyMTMsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjg0NzIwNzU4NjkzMzYxNDMsICJjb2wiOiAyMTMsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjM4MzMxNTczMzg5NjUxNTMsICJjb2wiOiAyMTMsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjEyODcyMzQwNDI1NTMxOTE0LCAiY29sIjogMjEzLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhX2VmY2U3MGJiZWE3YjQ1NGJhMDZiZmUyMGQ2MTQ0MWQ4KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNTk5OWZhNzcwNjU2NGM2N2EyMTg1MWQwM2RmNjIzY2UgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MzQzNTMsLTk5LjIwMzIyKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZmQ1ZDA1OWQzYzNlNDAyZmI5MTM4MzBjZGY2MzJhYTQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfNzk0ODgwMTM4ZGIwNGM3MmJmMmRmMTljODQxMTdiOTUgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV83OTQ4ODAxMzhkYjA0YzcyYmYyZGYxOWM4NDExN2I5NSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZmQ1ZDA1OWQzYzNlNDAyZmI5MTM4MzBjZGY2MzJhYTQuc2V0Q29udGVudCh2ZWdhXzc5NDg4MDEzOGRiMDRjNzJiZjJkZjE5Yzg0MTE3Yjk1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzU5OTlmYTc3MDY1NjRjNjdhMjE4NTFkMDNkZjYyM2NlLmJpbmRQb3B1cChwb3B1cF9mZDVkMDU5ZDNjM2U0MDJmYjkxMzgzMGNkZjYzMmFhNCk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAyMTQ6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAwMzIzMjc1ODYyMDY4OTY1NSwgImNvbCI6IDIxNCwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjE0LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMTQsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDAyODA4OTg4NzY0MDQ0OTQzNywgImNvbCI6IDIxNCwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjE0LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMTQsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDc1NzM5NjQ0OTcwNDE0MiwgImNvbCI6IDIxNCwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC4zNjkwMzQ5OTQ2OTc3NzMwNywgImNvbCI6IDIxNCwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMS4xNTI1NDIzNzI4ODEzNTYsICJjb2wiOiAyMTQsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDEuNTAyMTE4NjQ0MDY3Nzk2NywgImNvbCI6IDIxNCwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC44MzYzMjUyMzc1OTIzOTcxLCAiY29sIjogMjE0LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC40NiwgImNvbCI6IDIxNCwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNDIxMDUyNjMxNTc4OTQ3MzUsICJjb2wiOiAyMTQsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjY3MDg3Mjc2NTUwOTk4OTUsICJjb2wiOiAyMTQsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjc2Mzk2MjA2NTMzMTkyODMsICJjb2wiOiAyMTQsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjY3NjUwMTU4MDYxMTE2OTYsICJjb2wiOiAyMTQsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjYyMzgxNDU0MTYyMjc2MDgsICJjb2wiOiAyMTQsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjU3NzQ0OTk0NzMxMjk2MTEsICJjb2wiOiAyMTQsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAwLjY3NDA1MDYzMjkxMTM5MjQsICJjb2wiOiAyMTQsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAwLjc2Njg3NzYzNzEzMDgwMTcsICJjb2wiOiAyMTQsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjM2NzQ3NjI0MDc2MDI5NTY3LCAiY29sIjogMjE0LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC4yNTcxMTI3NTAyNjM0MzUyLCAiY29sIjogMjE0LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4xMTE5MzI0MTgxNjI2MTg4LCAiY29sIjogMjE0LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4wNDA0MjU1MzE5MTQ4OTM2MiwgImNvbCI6IDIxNCwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV83OTQ4ODAxMzhkYjA0YzcyYmYyZGYxOWM4NDExN2I5NSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzNiNzk0Mzk5ZDZkNzQxNzRhY2IwOWI1YjNiODViZjkyID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDMzODQsLTk5LjE5OTY4KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjVlYmVkYWE4ZGZlNDFlNzhlNmRmMTBjMTBiZjE5YWEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfM2U4YzlkOGNkOWJlNDhmZjlmOTEwYzAyOGJlODEzMmMgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV8zZThjOWQ4Y2Q5YmU0OGZmOWY5MTBjMDI4YmU4MTMyYyI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjVlYmVkYWE4ZGZlNDFlNzhlNmRmMTBjMTBiZjE5YWEuc2V0Q29udGVudCh2ZWdhXzNlOGM5ZDhjZDliZTQ4ZmY5ZjkxMGMwMjhiZTgxMzJjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzNiNzk0Mzk5ZDZkNzQxNzRhY2IwOWI1YjNiODViZjkyLmJpbmRQb3B1cChwb3B1cF82NWViZWRhYThkZmU0MWU3OGU2ZGYxMGMxMGJmMTlhYSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAyMTU6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAwNjQ2NTUxNzI0MTM3OTMxLCAiY29sIjogMjE1LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMTUsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIxNSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjE1LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMTUsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIxNSwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wMjcyMTg5MzQ5MTEyNDI2MDIsICJjb2wiOiAyMTUsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMzMwODU4OTYwNzYzNTIwNjcsICJjb2wiOiAyMTUsICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDAuODc3MTE4NjQ0MDY3Nzk2NiwgImNvbCI6IDIxNSwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS44NjMzNDc0NTc2MjcxMTg3LCAiY29sIjogMjE1LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjkzOTgwOTkyNjA4MjM2NTQsICJjb2wiOiAyMTUsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjU4NzM2ODQyMTA1MjYzMTUsICJjb2wiOiAyMTUsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjU5Nzg5NDczNjg0MjEwNTMsICJjb2wiOiAyMTUsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjc4NjU0MDQ4MzcwMTM2NywgImNvbCI6IDIxNSwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDAuOTE2NzU0NDc4Mzk4MzE0LCAiY29sIjogMjE1LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMC45MDgzMjQ1NTIxNjAxNjg2LCAiY29sIjogMjE1LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC43OTI0MTMwNjYzODU2NjkxLCAiY29sIjogMjE1LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC42ODA3MTY1NDM3MzAyNDI0LCAiY29sIjogMjE1LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMC43NDA1MDYzMjkxMTM5MjQsICJjb2wiOiAyMTUsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAwLjYxMzkyNDA1MDYzMjkxMTQsICJjb2wiOiAyMTUsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjQwNzYwMjk1NjcwNTM4NTQzLCAiY29sIjogMjE1LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC4yNTUwMDUyNjg3MDM4OTg4NCwgImNvbCI6IDIxNSwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMTQ2Nzc5MzAzMDYyMzAyLCAiY29sIjogMjE1LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4wNDU3NDQ2ODA4NTEwNjM4MjYsICJjb2wiOiAyMTUsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfM2U4YzlkOGNkOWJlNDhmZjlmOTEwYzAyOGJlODEzMmMpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl8zMTE3OTJmMmUzMTY0NGQ3ODc1Yjc3NWI5YjI0ODMzOSA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQzMzQxOSwtOTkuMTk1NzQ2KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNGFmMGU3MjAwZWIzNGIwNmEyM2U2NThmODFlYzY5ZDEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfY2YwNzk2MGEyNWJmNDI5OGJkYzE3NTgwZTkzNjMzNTYgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9jZjA3OTYwYTI1YmY0Mjk4YmRjMTc1ODBlOTM2MzM1NiI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNGFmMGU3MjAwZWIzNGIwNmEyM2U2NThmODFlYzY5ZDEuc2V0Q29udGVudCh2ZWdhX2NmMDc5NjBhMjViZjQyOThiZGMxNzU4MGU5MzYzMzU2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzMxMTc5MmYyZTMxNjQ0ZDc4NzViNzc1YjliMjQ4MzM5LmJpbmRQb3B1cChwb3B1cF80YWYwZTcyMDBlYjM0YjA2YTIzZTY1OGY4MWVjNjlkMSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAyMTY6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAxMTg1MzQ0ODI3NTg2MjA2OCwgImNvbCI6IDIxNiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjE2LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMTYsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDAyODA4OTg4NzY0MDQ0OTQzNywgImNvbCI6IDIxNiwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMDM2NjMwMDM2NjMwMDM2NjMsICJjb2wiOiAyMTYsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIxNiwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4xMDA1OTE3MTU5NzYzMzEzNiwgImNvbCI6IDIxNiwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC4yMzk2NjA2NTc0NzYxNCwgImNvbCI6IDIxNiwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMS4wNjg4NTU5MzIyMDMzOSwgImNvbCI6IDIxNiwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS44MjQxNTI1NDIzNzI4ODEzLCAiY29sIjogMjE2LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAxLjA0NTQwNjU0Njk5MDQ5NjMsICJjb2wiOiAyMTYsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjY5MTU3ODk0NzM2ODQyMTEsICJjb2wiOiAyMTYsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjY0MzE1Nzg5NDczNjg0MjIsICJjb2wiOiAyMTYsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjc1Mjg5MTY5Mjk1NDc4NDQsICJjb2wiOiAyMTYsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjI5NjEwMTE1OTExNDg1NzcsICJjb2wiOiAyMTYsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjE4MzM1MDg5NTY3OTY2MjgsICJjb2wiOiAyMTYsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjc3MjM5MTk5MTU3MDA3MzgsICJjb2wiOiAyMTYsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjgzMzUwODk1Njc5NjYyODEsICJjb2wiOiAyMTYsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjIwMTQ3Njc5MzI0ODk0NTIsICJjb2wiOiAyMTYsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjAxNjg3NzYzNzEzMDgwMTcsICJjb2wiOiAyMTYsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjU0MDY1NDY5OTA0OTYzMDQsICJjb2wiOiAyMTYsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjE4ODYxOTU5OTU3ODUwMzcsICJjb2wiOiAyMTYsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjA4MzQyMTMzMDUxNzQyMzQ0LCAiY29sIjogMjE2LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4wNDc4NzIzNDA0MjU1MzE5MTUsICJjb2wiOiAyMTYsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfY2YwNzk2MGEyNWJmNDI5OGJkYzE3NTgwZTkzNjMzNTYpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl83NzhlOTQ3NjQ1NzQ0OTcxYjk0ZmY3N2EwZDk2ZDNjYiA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQzMjQ1MSwtOTkuMTg4MDMzKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZjVlZDYwODU1MWNjNDBlNzg2YmI0ZjI3NjQ3NGJjODMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfYzFiMWNjYzliM2JjNGMyY2I0NWUzMTUyY2FhZmU5ZTQgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9jMWIxY2NjOWIzYmM0YzJjYjQ1ZTMxNTJjYWFmZTllNCI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZjVlZDYwODU1MWNjNDBlNzg2YmI0ZjI3NjQ3NGJjODMuc2V0Q29udGVudCh2ZWdhX2MxYjFjY2M5YjNiYzRjMmNiNDVlMzE1MmNhYWZlOWU0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzc3OGU5NDc2NDU3NDQ5NzFiOTRmZjc3YTBkOTZkM2NiLmJpbmRQb3B1cChwb3B1cF9mNWVkNjA4NTUxY2M0MGU3ODZiYjRmMjc2NDc0YmM4Myk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAyMTg6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAxMjkzMTAzNDQ4Mjc1ODYyLCAiY29sIjogMjE4LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMTgsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIxOCwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDI4MDg5ODg3NjQwNDQ5NDM3LCAiY29sIjogMjE4LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMTgsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIxOCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wNzkyODk5NDA4Mjg0MDIzNiwgImNvbCI6IDIxOCwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC40MDcyMTEwMjg2MzIwMjU0NiwgImNvbCI6IDIxOCwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC43MTgyMjAzMzg5ODMwNTA4LCAiY29sIjogMjE4LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAwLjUwMjExODY0NDA2Nzc5NjYsICJjb2wiOiAyMTgsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuMjg5MzM0NzQxMjg4Mjc4OCwgImNvbCI6IDIxOCwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuMzYyMTA1MjYzMTU3ODk0NzYsICJjb2wiOiAyMTgsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjQwNDIxMDUyNjMxNTc4OTQ2LCAiY29sIjogMjE4LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC41OTA5NTY4ODc0ODY4NTU5LCAiY29sIjogMjE4LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMC44NDkzMTUwNjg0OTMxNTA2LCAiY29sIjogMjE4LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMC43NTAyNjM0MzUxOTQ5NDIxLCAiY29sIjogMjE4LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC41Nzg1MDM2ODgwOTI3MjkyLCAiY29sIjogMjE4LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC42NTc1MzQyNDY1NzUzNDI0LCAiY29sIjogMjE4LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMC43MDM1ODY0OTc4OTAyOTU0LCAiY29sIjogMjE4LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMC43Mjg5MDI5NTM1ODY0OTc5LCAiY29sIjogMjE4LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC40Mjc2NjYzMTQ2Nzc5MzAzLCAiY29sIjogMjE4LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC4yMDAyMTA3NDgxNTU5NTM2MywgImNvbCI6IDIxOCwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMTAwMzE2Nzg5ODYyNzI0NCwgImNvbCI6IDIxOCwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMDU1MzE5MTQ4OTM2MTcwMjEsICJjb2wiOiAyMTgsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfYzFiMWNjYzliM2JjNGMyY2I0NWUzMTUyY2FhZmU5ZTQpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl8yZjEyNmQ4Y2IwMDY0N2M1YWI5MmE1OGFiZDkzNjY1OSA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQzMzU0MiwtOTkuMjA3ODA4KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMGQ0MDllZTAxYThkNDFiYWE4NGJiYTIxMjU1MjdjM2YgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfYTk1MzRmY2E5YjQ4NGU5OWI3NzFjZTMwZWU2MGE5NDggPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9hOTUzNGZjYTliNDg0ZTk5Yjc3MWNlMzBlZTYwYTk0OCI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMGQ0MDllZTAxYThkNDFiYWE4NGJiYTIxMjU1MjdjM2Yuc2V0Q29udGVudCh2ZWdhX2E5NTM0ZmNhOWI0ODRlOTliNzcxY2UzMGVlNjBhOTQ4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzJmMTI2ZDhjYjAwNjQ3YzVhYjkyYTU4YWJkOTM2NjU5LmJpbmRQb3B1cChwb3B1cF8wZDQwOWVlMDFhOGQ0MWJhYTg0YmJhMjEyNTUyN2MzZik7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAyMTk6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAwNzU0MzEwMzQ0ODI3NTg2MiwgImNvbCI6IDIxOSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjE5LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMTksICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIxOSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjE5LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMTksICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuNDE3NzUxNDc5Mjg5OTQwODMsICJjb2wiOiAyMTksICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDEuMDk4NjIxNDIwOTk2ODE4NiwgImNvbCI6IDIxOSwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMi43NjkwNjc3OTY2MTAxNjk2LCAiY29sIjogMjE5LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAyLjUxMzc3MTE4NjQ0MDY3NzgsICJjb2wiOiAyMTksICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuODc1Mzk1OTg3MzI4NDA1NSwgImNvbCI6IDIxOSwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNTQ1MjYzMTU3ODk0NzM2OSwgImNvbCI6IDIxOSwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNDU3ODk0NzM2ODQyMTA1MjQsICJjb2wiOiAyMTksICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjU1NzMwODA5Njc0MDI3MzQsICJjb2wiOiAyMTksICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjY4MjgyNDAyNTI4OTc3ODcsICJjb2wiOiAyMTksICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjk0MzA5Nzk5Nzg5MjUxODUsICJjb2wiOiAyMTksICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjc2Mzk2MjA2NTMzMTkyODMsICJjb2wiOiAyMTksICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjQzOTQwOTkwNTE2MzMyOTg0LCAiY29sIjogMjE5LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMC43NTYzMjkxMTM5MjQwNTA3LCAiY29sIjogMjE5LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMC42NTQwMDg0Mzg4MTg1NjU0LCAiY29sIjogMjE5LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC4yODgyNzg3NzUwNzkxOTc0NywgImNvbCI6IDIxOSwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuMTg5NjczMzQwMzU4MjcxODUsICJjb2wiOiAyMTksICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjA2NTQ2OTkwNDk2MzA0MTE4LCAiY29sIjogMjE5LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4wMjk3ODcyMzQwNDI1NTMxOTMsICJjb2wiOiAyMTksICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfYTk1MzRmY2E5YjQ4NGU5OWI3NzFjZTMwZWU2MGE5NDgpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl82ZDYzNzIyZjBlMjg0Y2E0YTBlODA2ZjUyYzI2ZGVmMyA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQzMjY1NSwtOTkuMjA1NzI3KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYmFkMDZkMWJiOTUxNGQzODg2ZDQ0ODU3ODNjOTA3ZTMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfNmYyYTAzNzQ3MmQ2NDAyNzgzMWM0YjczMGNiZmYzZmIgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV82ZjJhMDM3NDcyZDY0MDI3ODMxYzRiNzMwY2JmZjNmYiI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYmFkMDZkMWJiOTUxNGQzODg2ZDQ0ODU3ODNjOTA3ZTMuc2V0Q29udGVudCh2ZWdhXzZmMmEwMzc0NzJkNjQwMjc4MzFjNGI3MzBjYmZmM2ZiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzZkNjM3MjJmMGUyODRjYTRhMGU4MDZmNTJjMjZkZWYzLmJpbmRQb3B1cChwb3B1cF9iYWQwNmQxYmI5NTE0ZDM4ODZkNDQ4NTc4M2M5MDdlMyk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAyMjA6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAwNDMxMDM0NDgyNzU4NjIwNywgImNvbCI6IDIyMCwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjIwLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMjAsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIyMCwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMDczMjYwMDczMjYwMDczMjYsICJjb2wiOiAyMjAsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIyMCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wMjk1ODU3OTg4MTY1NjgwNDYsICJjb2wiOiAyMjAsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMjc4ODk3MTM2Nzk3NDU0OSwgImNvbCI6IDIyMCwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMS4yMzMwNTA4NDc0NTc2MjcyLCAiY29sIjogMjIwLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAxLjE4MjIwMzM4OTgzMDUwODQsICJjb2wiOiAyMjAsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuNDczMDcyODYxNjY4NDI2NiwgImNvbCI6IDIyMCwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuMzIxMDUyNjMxNTc4OTQ3MzcsICJjb2wiOiAyMjAsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjI0NzM2ODQyMTA1MjYzMTU3LCAiY29sIjogMjIwLCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC40MDI3MzM5NjQyNDgxNTk4LCAiY29sIjogMjIwLCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMC40NDE1MTczODY3MjI4NjYxNywgImNvbCI6IDIyMCwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDAuMzYwMzc5MzQ2NjgwNzE2NTMsICJjb2wiOiAyMjAsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjQzNjI0ODY4MjgyNDAyNTMsICJjb2wiOiAyMjAsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjMzNjE0MzMwODc0NjA0ODUsICJjb2wiOiAyMjAsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAwLjUwMTA1NDg1MjMyMDY3NTEsICJjb2wiOiAyMjAsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAwLjU4MDE2ODc3NjM3MTMwOCwgImNvbCI6IDIyMCwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuMjU0NDg3ODU2Mzg4NTk1NTYsICJjb2wiOiAyMjAsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjE0MTIwMTI2NDQ4ODkzNTcyLCAiY29sIjogMjIwLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4wNTI3OTgzMTA0NTQwNjU0NywgImNvbCI6IDIyMCwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMDI4NzIzNDA0MjU1MzE5MTUsICJjb2wiOiAyMjAsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfNmYyYTAzNzQ3MmQ2NDAyNzgzMWM0YjczMGNiZmYzZmIpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl8xYTc0Y2EwNmNmMmU0MTQ2OTYwOTU0ODgyYTA3ZDJiZCA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQzMTc5OSwtOTkuMjAxNTY1KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNTI2MmUxNjI3ZGEyNDlhZGFlYWE0Njc5NzVkMDRlYWQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfYjA3NDU2MDVkNjk0NGQxNWE1YTdmZmU3MmYxYjczMzkgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9iMDc0NTYwNWQ2OTQ0ZDE1YTVhN2ZmZTcyZjFiNzMzOSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNTI2MmUxNjI3ZGEyNDlhZGFlYWE0Njc5NzVkMDRlYWQuc2V0Q29udGVudCh2ZWdhX2IwNzQ1NjA1ZDY5NDRkMTVhNWE3ZmZlNzJmMWI3MzM5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzFhNzRjYTA2Y2YyZTQxNDY5NjA5NTQ4ODJhMDdkMmJkLmJpbmRQb3B1cChwb3B1cF81MjYyZTE2MjdkYTI0OWFkYWVhYTQ2Nzk3NWQwNGVhZCk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAyMjE6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAyMjYyOTMxMDM0NDgyNzU4NiwgImNvbCI6IDIyMSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDY5MDg0NjI4NjcwMTIwODk1LCAiY29sIjogMjIxLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMjEsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIyMSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjIxLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMjEsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDM3ODY5ODIyNDg1MjA3MSwgImNvbCI6IDIyMSwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMS4wNDI0MTc4MTU0ODI1MDI2LCAiY29sIjogMjIxLCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAzLjAxMzc3MTE4NjQ0MDY3NzgsICJjb2wiOiAyMjEsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDMuMTcyNjY5NDkxNTI1NDI0LCAiY29sIjogMjIxLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAxLjE3OTUxNDI1NTU0MzgyMjUsICJjb2wiOiAyMjEsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjc2NTI2MzE1Nzg5NDczNjksICJjb2wiOiAyMjEsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjc3NDczNjg0MjEwNTI2MzIsICJjb2wiOiAyMjEsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjkwOTU2ODg3NDg2ODU1OTQsICJjb2wiOiAyMjEsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjQzOTQwOTkwNTE2MzMyOTgsICJjb2wiOiAyMjEsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjI5NjEwMTE1OTExNDg1NzcsICJjb2wiOiAyMjEsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjg1MzUzMDAzMTYxMjIyMzQsICJjb2wiOiAyMjEsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjczODY3MjI4NjYxNzQ5MjEsICJjb2wiOiAyMjEsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAwLjgwMzc5NzQ2ODM1NDQzMDMsICJjb2wiOiAyMjEsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAwLjY0MzQ1OTkxNTYxMTgxNDQsICJjb2wiOiAyMjEsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjQzNTA1ODA3ODE0MTQ5OTUsICJjb2wiOiAyMjEsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjIzNjAzNzkzNDY2ODA3MTY2LCAiY29sIjogMjIxLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4xMjI0OTIwODAyNTM0MzE4OSwgImNvbCI6IDIyMSwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMDU4NTEwNjM4Mjk3ODcyMzQsICJjb2wiOiAyMjEsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfYjA3NDU2MDVkNjk0NGQxNWE1YTdmZmU3MmYxYjczMzkpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl83MzlmNDZkYTRjNTE0Mjk3YWUyNzU0NmYwYTA4MTJiNSA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQzMTI0MiwtOTkuMTkxNjEzKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzhlZTdiNThhMjk1NGUyZWFkNDNmYjllODczMjMyMmYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfZDZkMmVjYmQ5ODdhNDc0YTg4NTU5Y2Y4Nzg3YjI0NTAgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9kNmQyZWNiZDk4N2E0NzRhODg1NTljZjg3ODdiMjQ1MCI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzhlZTdiNThhMjk1NGUyZWFkNDNmYjllODczMjMyMmYuc2V0Q29udGVudCh2ZWdhX2Q2ZDJlY2JkOTg3YTQ3NGE4ODU1OWNmODc4N2IyNDUwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzczOWY0NmRhNGM1MTQyOTdhZTI3NTQ2ZjBhMDgxMmI1LmJpbmRQb3B1cChwb3B1cF83OGVlN2I1OGEyOTU0ZTJlYWQ0M2ZiOWU4NzMyMzIyZik7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAyMjM6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAzMzQwNTE3MjQxMzc5MzEsICJjb2wiOiAyMjMsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDAxNzI3MTE1NzE2NzUzMDIyNCwgImNvbCI6IDIyMywgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjIzLCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMjMsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMDAzNjYzMDAzNjYzMDAzNjYzLCAiY29sIjogMjIzLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMjMsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDM0MzE5NTI2NjI3MjE4OTMsICJjb2wiOiAyMjMsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuMTM3ODU3OTAwMzE4MTMzNiwgImNvbCI6IDIyMywgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMC43OTc2Njk0OTE1MjU0MjM4LCAiY29sIjogMjIzLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAxLjMxNzc5NjYxMDE2OTQ5MTYsICJjb2wiOiAyMjMsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDEuMDI1MzQzMTg5MDE3OTUxNCwgImNvbCI6IDIyMywgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNzkzNjg0MjEwNTI2MzE1OCwgImNvbCI6IDIyMywgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuODEwNTI2MzE1Nzg5NDczNywgImNvbCI6IDIyMywgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDEuMzg1OTA5NTY4ODc0ODY4NiwgImNvbCI6IDIyMywgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDIuMDc2OTIzMDc2OTIzMDc3LCAiY29sIjogMjIzLCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS40Njg5MTQ2NDY5OTY4Mzg4LCAiY29sIjogMjIzLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMS4wMjg0NTEwMDEwNTM3NDA5LCAiY29sIjogMjIzLCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMS4xNjU0MzczMDI0MjM2MDM4LCAiY29sIjogMjIzLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS42MTA3NTk0OTM2NzA4ODYsICJjb2wiOiAyMjMsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjE0NzY3OTMyNDg5NDUxNDcsICJjb2wiOiAyMjMsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjc0MzQwMDIxMTE5MzI0MTgsICJjb2wiOiAyMjMsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjQxNTE3Mzg2NzIyODY2MTczLCAiY29sIjogMjIzLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4yNjI5MzU1ODYwNjEyNDYwNiwgImNvbCI6IDIyMywgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMTE5MTQ4OTM2MTcwMjEyNzcsICJjb2wiOiAyMjMsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfZDZkMmVjYmQ5ODdhNDc0YTg4NTU5Y2Y4Nzg3YjI0NTApOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl81NmFiMTEzNDE0ZGQ0NzA3YmJmMTk5NWZlZTZkZTFjNCA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQzMTI1NSwtOTkuMTg4MDY1KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjRiNWI4NzUzZTNhNGU5Y2FmYWY0MTg5YzIwZWRhYzMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfOTU2NWM1NTUxZDNjNDc1OWFhZjA1MDdiOWY5ZDcwNjAgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV85NTY1YzU1NTFkM2M0NzU5YWFmMDUwN2I5ZjlkNzA2MCI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjRiNWI4NzUzZTNhNGU5Y2FmYWY0MTg5YzIwZWRhYzMuc2V0Q29udGVudCh2ZWdhXzk1NjVjNTU1MWQzYzQ3NTlhYWYwNTA3YjlmOWQ3MDYwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzU2YWIxMTM0MTRkZDQ3MDdiYmYxOTk1ZmVlNmRlMWM0LmJpbmRQb3B1cChwb3B1cF82NGI1Yjg3NTNlM2E0ZTljYWZhZjQxODljMjBlZGFjMyk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAyMjQ6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAxMDc3NTg2MjA2ODk2NTUxOCwgImNvbCI6IDIyNCwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjI0LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMjQsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMDAyODA4OTg4NzY0MDQ0OTQzNywgImNvbCI6IDIyNCwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjI0LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMjQsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMTg4MTY1NjgwNDczMzcyOCwgImNvbCI6IDIyNCwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC42NDg5OTI1NzY4ODIyOTA2LCAiY29sIjogMjI0LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAyLjUzNjAxNjk0OTE1MjU0MjQsICJjb2wiOiAyMjQsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDEuMzUxNjk0OTE1MjU0MjM3MiwgImNvbCI6IDIyNCwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMC44NTIxNjQ3MzA3Mjg2MTY2LCAiY29sIjogMjI0LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC43Mjg0MjEwNTI2MzE1NzksICJjb2wiOiAyMjQsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjYzNzg5NDczNjg0MjEwNTMsICJjb2wiOiAyMjQsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjk1MTYyOTg2MzMwMTc4NzYsICJjb2wiOiAyMjQsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjcxODY1MTIxMTgwMTg5NjgsICJjb2wiOiAyMjQsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjE2MjI3NjA4MDA4NDI5OTMsICJjb2wiOiAyMjQsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjk0NzMxMjk2MTAxMTU5MTEsICJjb2wiOiAyMjQsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjc2NzEyMzI4NzY3MTIzMjgsICJjb2wiOiAyMjQsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAxLjA3NDg5NDUxNDc2NzkzMjUsICJjb2wiOiAyMjQsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAwLjk3ODkwMjk1MzU4NjQ5NzksICJjb2wiOiAyMjQsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjY2NjMxNDY3NzkzMDMwNjIsICJjb2wiOiAyMjQsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjMzNTA4OTU2Nzk2NjI4MDMsICJjb2wiOiAyMjQsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjE0MDQ0MzUwNTgwNzgxNDE1LCAiY29sIjogMjI0LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4wODYxNzAyMTI3NjU5NTc0NSwgImNvbCI6IDIyNCwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV85NTY1YzU1NTFkM2M0NzU5YWFmMDUwN2I5ZjlkNzA2MCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzNjMTg4ZDFlMDdiMjQ4OWJiNDMzYzlmOTI0OWZkZDdlID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDMxMTcyLC05OS4xODU2MTIpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hZDQwMTY1ZmFhNmQ0ZjA0Yjc1NGRjODBmMzNhNmFiNyA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV82YzFiNjU5MjRjODg0ZDZhODljZjVjZWQ5YTdkMzg1NSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzZjMWI2NTkyNGM4ODRkNmE4OWNmNWNlZDlhN2QzODU1Ij48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hZDQwMTY1ZmFhNmQ0ZjA0Yjc1NGRjODBmMzNhNmFiNy5zZXRDb250ZW50KHZlZ2FfNmMxYjY1OTI0Yzg4NGQ2YTg5Y2Y1Y2VkOWE3ZDM4NTUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfM2MxODhkMWUwN2IyNDg5YmI0MzNjOWY5MjQ5ZmRkN2UuYmluZFBvcHVwKHBvcHVwX2FkNDAxNjVmYWE2ZDRmMDRiNzU0ZGM4MGYzM2E2YWI3KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDIyNTogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDI2OTM5NjU1MTcyNDEzNzksICJjb2wiOiAyMjUsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDAzNDU0MjMxNDMzNTA2MDQ0NywgImNvbCI6IDIyNSwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjI1LCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMjUsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMDAzNjYzMDAzNjYzMDAzNjYzLCAiY29sIjogMjI1LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMjUsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDY4NjM5MDUzMjU0NDM3ODcsICJjb2wiOiAyMjUsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuODA1OTM4NDk0MTY3NTUwNCwgImNvbCI6IDIyNSwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMi41NDEzMTM1NTkzMjIwMzM3LCAiY29sIjogMjI1LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAyLjM4NzcxMTg2NDQwNjc4LCAiY29sIjogMjI1LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjkxODY5MDYwMTkwMDczOTEsICJjb2wiOiAyMjUsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjY4NjMxNTc4OTQ3MzY4NDIsICJjb2wiOiAyMjUsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjY2MjEwNTI2MzE1Nzg5NDgsICJjb2wiOiAyMjUsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjg0MDE2ODI0Mzk1MzczMjksICJjb2wiOiAyMjUsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjQzOTQwOTkwNTE2MzMyOTgsICJjb2wiOiAyMjUsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjE4NDQwNDYzNjQ1OTQzMSwgImNvbCI6IDIyNSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDEuMDc2OTIzMDc2OTIzMDc2OSwgImNvbCI6IDIyNSwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNzEwMjIxMjg1NTYzNzUxMywgImNvbCI6IDIyNSwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDAuNzA4ODYwNzU5NDkzNjcwOSwgImNvbCI6IDIyNSwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDAuODMyMjc4NDgxMDEyNjU4MiwgImNvbCI6IDIyNSwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuNTkwMjg1MTEwODc2NDUyLCAiY29sIjogMjI1LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC4zMzE5MjgzNDU2MjY5NzU3NiwgImNvbCI6IDIyNSwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMTYzNjc0NzYyNDA3NjAyOTUsICJjb2wiOiAyMjUsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjA3NTUzMTkxNDg5MzYxNzAyLCAiY29sIjogMjI1LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzZjMWI2NTkyNGM4ODRkNmE4OWNmNWNlZDlhN2QzODU1KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfYzk4ODc2YzFlMWEyNDZlOGFhNTJkZjM0MGQ4ODFjN2IgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MzEwMzMsLTk5LjE4MjIyKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYTE4MGZiNDYwNTBhNDdiZGI4YTBlMWRlMzczNzE0OWIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfZTEzOThmNmE4ZTg4NDExNGFmNmYyMjliYWIxYzNkZmQgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV9lMTM5OGY2YThlODg0MTE0YWY2ZjIyOWJhYjFjM2RmZCI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTE4MGZiNDYwNTBhNDdiZGI4YTBlMWRlMzczNzE0OWIuc2V0Q29udGVudCh2ZWdhX2UxMzk4ZjZhOGU4ODQxMTRhZjZmMjI5YmFiMWMzZGZkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2M5ODg3NmMxZTFhMjQ2ZThhYTUyZGYzNDBkODgxYzdiLmJpbmRQb3B1cChwb3B1cF9hMTgwZmI0NjA1MGE0N2JkYjhhMGUxZGUzNzM3MTQ5Yik7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAyMjY6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAxNzI0MTM3OTMxMDM0NDgyNywgImNvbCI6IDIyNiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjI2LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMjYsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIyNiwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjI2LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMjYsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMjAzNTUwMjk1ODU3OTg4MTcsICJjb2wiOiAyMjYsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuNjQwNTA5MDEzNzg1NzkwMSwgImNvbCI6IDIyNiwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMy4zMjIwMzM4OTgzMDUwODQ4LCAiY29sIjogMjI2LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAyLjU4Njg2NDQwNjc3OTY2MSwgImNvbCI6IDIyNiwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMS4yMTAxMzcyNzU2MDcxODA3LCAiY29sIjogMjI2LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC42NjEwNTI2MzE1Nzg5NDczLCAiY29sIjogMjI2LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC42MjczNjg0MjEwNTI2MzE2LCAiY29sIjogMjI2LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC44MDU0Njc5Mjg0OTYzMTk3LCAiY29sIjogMjI2LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMS4zNzQwNzc5NzY4MTc3MDMsICJjb2wiOiAyMjYsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjE1Mjc5MjQxMzA2NjM4NTYsICJjb2wiOiAyMjYsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjgwODIxOTE3ODA4MjE5MTgsICJjb2wiOiAyMjYsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjUyMDU0Nzk0NTIwNTQ3OTQsICJjb2wiOiAyMjYsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAwLjc4Nzk3NDY4MzU0NDMwMzgsICJjb2wiOiAyMjYsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAwLjU5Mzg4MTg1NjU0MDA4NDQsICJjb2wiOiAyMjYsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjMzMjYyOTM1NTg2MDYxMjUsICJjb2wiOiAyMjYsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjI2OTc1NzYzOTYyMDY1MzMsICJjb2wiOiAyMjYsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjE4NjkwNjAxOTAwNzM5MTc2LCAiY29sIjogMjI2LCAiaWR4IjogIjIyOjAwIn0sIHsidmFsIjogMC4wNzM0MDQyNTUzMTkxNDg5MywgImNvbCI6IDIyNiwgImlkeCI6ICIyMzowMCJ9XSwgIm5hbWUiOiAidGFibGUifSwgeyJzb3VyY2UiOiAidGFibGUiLCAibmFtZSI6ICJzdGF0cyIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmlkeCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InR5cGUiOiAic3RhdHMiLCAidmFsdWUiOiAiZGF0YS52YWwifV19XX0sdmVnYV9lMTM5OGY2YThlODg0MTE0YWY2ZjIyOWJhYjFjM2RmZCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciByZWd1bGFyX3BvbHlnb25fbWFya2VyXzBjMTMyOTcxZjliNDRkNjc4MTNjYTgzNGQwZmYzMWJjID0gbmV3IEwuUmVndWxhclBvbHlnb25NYXJrZXIoCiAgICAgICAgICAgICAgICBuZXcgTC5MYXRMbmcoMTkuNDMxNzkxLC05OS4yMDczNzMpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80MzBkNTM5OGJiZTc0OWE5YTE3MjNhMGQ2OTVlOGRjMSA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV9iYTc0ZGQ4OGZlODY0ZTFmYjQyZDlkYTY5MWU5ZjdjNCA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhX2JhNzRkZDg4ZmU4NjRlMWZiNDJkOWRhNjkxZTlmN2M0Ij48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80MzBkNTM5OGJiZTc0OWE5YTE3MjNhMGQ2OTVlOGRjMS5zZXRDb250ZW50KHZlZ2FfYmE3NGRkODhmZTg2NGUxZmI0MmQ5ZGE2OTFlOWY3YzQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfMGMxMzI5NzFmOWI0NGQ2NzgxM2NhODM0ZDBmZjMxYmMuYmluZFBvcHVwKHBvcHVwXzQzMGQ1Mzk4YmJlNzQ5YTlhMTcyM2EwZDY5NWU4ZGMxKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDIyNzogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDAyMTU1MTcyNDEzNzkzMTAzNCwgImNvbCI6IDIyNywgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjI3LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMjcsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIyNywgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjI3LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMjcsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDg3NTczOTY0NDk3MDQxNDMsICJjb2wiOiAyMjcsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDEuMDI2NTExMTM0Njc2NTY0LCAiY29sIjogMjI3LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAzLjU0MjM3Mjg4MTM1NTkzMiwgImNvbCI6IDIyNywgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS44NDQyNzk2NjEwMTY5NDkyLCAiY29sIjogMjI3LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjQ2MjUxMzE5OTU3NzYxMzUsICJjb2wiOiAyMjcsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjM3MjYzMTU3ODk0NzM2ODQsICJjb2wiOiAyMjcsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjQzMDUyNjMxNTc4OTQ3MzcsICJjb2wiOiAyMjcsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjQ4NzkwNzQ2NTgyNTQ0NjksICJjb2wiOiAyMjcsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjc3ODcxNDQzNjI0ODY4MjksICJjb2wiOiAyMjcsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjcwNzA2MDA2MzIyNDQ0NjgsICJjb2wiOiAyMjcsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjU3NDI4ODcyNDk3MzY1NjUsICJjb2wiOiAyMjcsICJpZHgiOiAiMTY6MDAifSwgeyJ2YWwiOiAwLjQzMjAzMzcxOTcwNDk1MjYsICJjb2wiOiAyMjcsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAwLjUxNTgyMjc4NDgxMDEyNjYsICJjb2wiOiAyMjcsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAwLjQ5NjgzNTQ0MzAzNzk3NDY3LCAiY29sIjogMjI3LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC4yMjkxNDQ2NjczNzA2NDQxNSwgImNvbCI6IDIyNywgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuMDg0Mjk5MjYyMzgxNDU0MTYsICJjb2wiOiAyMjcsICJpZHgiOiAiMjE6MDAifSwgeyJ2YWwiOiAwLjA2MTI0NjA0MDEyNjcxNTk0NSwgImNvbCI6IDIyNywgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMDE3MDIxMjc2NTk1NzQ0NjgsICJjb2wiOiAyMjcsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfYmE3NGRkODhmZTg2NGUxZmI0MmQ5ZGE2OTFlOWY3YzQpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9hYjQ2ZTA3ZDEwODE0OTdiYWNmYzZmMGMxNzFhY2UwMyA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQyNzcwNSwtOTkuMTk5MTIpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jYzRmY2U0ZDA2YWE0YTNkYmJkNjJhMzU2ZTllOGQxMyA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV8xYzQ1MDNiZDQzMzc0Mjg3OGNmNjZhNzUwMmE3NDExYSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzFjNDUwM2JkNDMzNzQyODc4Y2Y2NmE3NTAyYTc0MTFhIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jYzRmY2U0ZDA2YWE0YTNkYmJkNjJhMzU2ZTllOGQxMy5zZXRDb250ZW50KHZlZ2FfMWM0NTAzYmQ0MzM3NDI4NzhjZjY2YTc1MDJhNzQxMWEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfYWI0NmUwN2QxMDgxNDk3YmFjZmM2ZjBjMTcxYWNlMDMuYmluZFBvcHVwKHBvcHVwX2NjNGZjZTRkMDZhYTRhM2RiYmQ2MmEzNTZlOWU4ZDEzKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDIyODogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDA0MzEwMzQ0ODI3NTg2MjA3LCAiY29sIjogMjI4LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMjgsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIyOCwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjI4LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMjgsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIyOCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4wOTM0OTExMjQyNjAzNTUwMiwgImNvbCI6IDIyOCwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMS4wNTE5NjE4MjM5NjYwNjU3LCAiY29sIjogMjI4LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAzLjk2ODIyMDMzODk4MzA1MSwgImNvbCI6IDIyOCwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMS44MjczMzA1MDg0NzQ1NzYzLCAiY29sIjogMjI4LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjg5MTIzNTQ4MDQ2NDYyNTEsICJjb2wiOiAyMjgsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjU3Njg0MjEwNTI2MzE1NzksICJjb2wiOiAyMjgsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjU0MzE1Nzg5NDczNjg0MjEsICJjb2wiOiAyMjgsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAwLjU2ODg3NDg2ODU1OTQxMTIsICJjb2wiOiAyMjgsICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAwLjc3NDQ5OTQ3MzEyOTYxMDEsICJjb2wiOiAyMjgsICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAwLjg1ODc5ODczNTUxMTA2NDIsICJjb2wiOiAyMjgsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjU4OTA0MTA5NTg5MDQxMSwgImNvbCI6IDIyOCwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNjAxNjg1OTg1MjQ3NjI5MSwgImNvbCI6IDIyOCwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDAuNzYyNjU4MjI3ODQ4MTAxMiwgImNvbCI6IDIyOCwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDAuNTY2NDU1Njk2MjAyNTMxNywgImNvbCI6IDIyOCwgImlkeCI6ICIxOTowMCJ9LCB7InZhbCI6IDAuMzYxMTQwNDQzNTA1ODA3OCwgImNvbCI6IDIyOCwgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuMTM2OTg2MzAxMzY5ODYzLCAiY29sIjogMjI4LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4wOTcxNDg4OTEyMzU0ODA0NywgImNvbCI6IDIyOCwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMDM1MTA2MzgyOTc4NzIzNDA2LCAiY29sIjogMjI4LCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzFjNDUwM2JkNDMzNzQyODc4Y2Y2NmE3NTAyYTc0MTFhKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZjZhNzZmOTg3YWExNDZjNDliMjEzODIyN2NmMTQzZTcgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MzA1MTUsLTk5LjIwMzMzMSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzgzMjhmNWU5ZTkxMzRlNDNhZDgzZGUxNDQ4ZTM3YzBiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzdiOGQ0MTVlN2I4ODQyNzk5MmQ0ZWVhZmE3ZDkzMDA5ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfN2I4ZDQxNWU3Yjg4NDI3OTkyZDRlZWFmYTdkOTMwMDkiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzgzMjhmNWU5ZTkxMzRlNDNhZDgzZGUxNDQ4ZTM3YzBiLnNldENvbnRlbnQodmVnYV83YjhkNDE1ZTdiODg0Mjc5OTJkNGVlYWZhN2Q5MzAwOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9mNmE3NmY5ODdhYTE0NmM0OWIyMTM4MjI3Y2YxNDNlNy5iaW5kUG9wdXAocG9wdXBfODMyOGY1ZTllOTEzNGU0M2FkODNkZTE0NDhlMzdjMGIpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMjI5OiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wMzU1NjAzNDQ4Mjc1ODYyMSwgImNvbCI6IDIyOSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjI5LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMjksICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIyOSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjI5LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMjksICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDY5ODIyNDg1MjA3MTAwNTksICJjb2wiOiAyMjksICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuNzkxMDkyMjU4NzQ4Njc0NCwgImNvbCI6IDIyOSwgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMi45NzM1MTY5NDkxNTI1NDI0LCAiY29sIjogMjI5LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAzLjQ0OTE1MjU0MjM3Mjg4MTUsICJjb2wiOiAyMjksICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDEuNDcyMDE2ODk1NDU5MzQ1MywgImNvbCI6IDIyOSwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNzE2ODQyMTA1MjYzMTU4LCAiY29sIjogMjI5LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC42ODMxNTc4OTQ3MzY4NDIxLCAiY29sIjogMjI5LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMS40MDE2ODI0Mzk1MzczMjksICJjb2wiOiAyMjksICJpZHgiOiAiMTM6MDAifSwgeyJ2YWwiOiAxLjUxMDAxMDUzNzQwNzc5NzcsICJjb2wiOiAyMjksICJpZHgiOiAiMTQ6MDAifSwgeyJ2YWwiOiAxLjgxNTU5NTM2MzU0MDU2OSwgImNvbCI6IDIyOSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDEuMTgwMTg5NjczMzQwMzU4MywgImNvbCI6IDIyOSwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNzkyNDEzMDY2Mzg1NjY5MSwgImNvbCI6IDIyOSwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDEuMDIxMDk3MDQ2NDEzNTAyLCAiY29sIjogMjI5LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMC45MDUwNjMyOTExMzkyNDA2LCAiY29sIjogMjI5LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC43NzA4NTUzMzI2MjkzNTU5LCAiY29sIjogMjI5LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC41ODQ4MjYxMzI3NzEzMzgyLCAiY29sIjogMjI5LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4yNjI5MzU1ODYwNjEyNDYwNiwgImNvbCI6IDIyOSwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMTQ2ODA4NTEwNjM4Mjk3ODYsICJjb2wiOiAyMjksICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfN2I4ZDQxNWU3Yjg4NDI3OTkyZDRlZWFmYTdkOTMwMDkpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl83YTJiYjhhMDJlY2Y0MjM4ODk3NjQzYTQzYjg0ZTFiOSA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQzMDA5OCwtOTkuMjAwMDc0KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOGUzMjg3ZDE3MGI2NDNiYmFlMGFiZjdkODlmNzVhMTQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfMWFjNzdjOTJmMTc4NGEyNzhjNzUwNDJhZDgyNzI1MDcgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV8xYWM3N2M5MmYxNzg0YTI3OGM3NTA0MmFkODI3MjUwNyI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOGUzMjg3ZDE3MGI2NDNiYmFlMGFiZjdkODlmNzVhMTQuc2V0Q29udGVudCh2ZWdhXzFhYzc3YzkyZjE3ODRhMjc4Yzc1MDQyYWQ4MjcyNTA3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyXzdhMmJiOGEwMmVjZjQyMzg4OTc2NDNhNDNiODRlMWI5LmJpbmRQb3B1cChwb3B1cF84ZTMyODdkMTcwYjY0M2JiYWUwYWJmN2Q4OWY3NWExNCk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAyMzA6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAxNDAwODYyMDY4OTY1NTE3MywgImNvbCI6IDIzMCwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjMwLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwMzA3NjkyMzA3NjkyMzA3NywgImNvbCI6IDIzMCwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjMwLCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMzAsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIzMCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4yNDM3ODY5ODIyNDg1MjA3MiwgImNvbCI6IDIzMCwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMS4wOTk2ODE4NjYzODM4ODEyLCAiY29sIjogMjMwLCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiA0LjE4MTE0NDA2Nzc5NjYxLCAiY29sIjogMjMwLCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAzLjY5MTczNzI4ODEzNTU5MzQsICJjb2wiOiAyMzAsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDEuNjMwNDExODI2ODIxNTQxNywgImNvbCI6IDIzMCwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDEuMTQ3MzY4NDIxMDUyNjMxNiwgImNvbCI6IDIzMCwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDEuMTMyNjMxNTc4OTQ3MzY4NCwgImNvbCI6IDIzMCwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDEuMjg2MDE0NzIxMzQ1OTUxNiwgImNvbCI6IDIzMCwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuOTkzNjc3NTU1MzIxMzkxLCAiY29sIjogMjMwLCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMi40NzMxMjk2MTAxMTU5MTE3LCAiY29sIjogMjMwLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMS40NjU3NTM0MjQ2NTc1MzQzLCAiY29sIjogMjMwLCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMS4xMjg1NTYzNzUxMzE3MTc2LCAiY29sIjogMjMwLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS4wNjg1NjU0MDA4NDM4ODE5LCAiY29sIjogMjMwLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMC45NjYyNDQ3MjU3MzgzOTY2LCAiY29sIjogMjMwLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC42MDE5MDA3MzkxNzYzNDYzLCAiY29sIjogMjMwLCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC40MTIwMTI2NDQ4ODkzNTcyNCwgImNvbCI6IDIzMCwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMjE3NTI5MDM5MDcwNzQ5NzUsICJjb2wiOiAyMzAsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjEwMjEyNzY1OTU3NDQ2ODA4LCAiY29sIjogMjMwLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzFhYzc3YzkyZjE3ODRhMjc4Yzc1MDQyYWQ4MjcyNTA3KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZWY4YjIzNjlkOTFhNDU1NmE2YmM3Njk4NmEwODk1MTcgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40Mjk3NywtOTkuMTkzNDkpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80YmUwOGYxZDkyZDc0ZTMxYjBkZTA2MzJhZWNjOTI1ZCA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV82MmUxMjY5YjkyMDU0YTdiOGU3ZmZmYjlkYjQyZmZhYSA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzYyZTEyNjliOTIwNTRhN2I4ZTdmZmZiOWRiNDJmZmFhIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80YmUwOGYxZDkyZDc0ZTMxYjBkZTA2MzJhZWNjOTI1ZC5zZXRDb250ZW50KHZlZ2FfNjJlMTI2OWI5MjA1NGE3YjhlN2ZmZmI5ZGI0MmZmYWEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZWY4YjIzNjlkOTFhNDU1NmE2YmM3Njk4NmEwODk1MTcuYmluZFBvcHVwKHBvcHVwXzRiZTA4ZjFkOTJkNzRlMzFiMGRlMDYzMmFlY2M5MjVkKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDIzMTogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDI2OTM5NjU1MTcyNDEzNzksICJjb2wiOiAyMzEsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMDA2OTA4NDYyODY3MDEyMDg5NSwgImNvbCI6IDIzMSwgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wMDMwNzY5MjMwNzY5MjMwNzcsICJjb2wiOiAyMzEsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIzMSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wMDM2NjMwMDM2NjMwMDM2NjMsICJjb2wiOiAyMzEsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIzMSwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4xNzYzMzEzNjA5NDY3NDU1NiwgImNvbCI6IDIzMSwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC45MjE1MjcwNDEzNTczNzAxLCAiY29sIjogMjMxLCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAyLjA0NTU1MDg0NzQ1NzYyNywgImNvbCI6IDIzMSwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogMi42NTE0ODMwNTA4NDc0NTc2LCAiY29sIjogMjMxLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAxLjMxMjU2NTk5Nzg4ODA2NzUsICJjb2wiOiAyMzEsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAwLjk3MjYzMTU3ODk0NzM2ODQsICJjb2wiOiAyMzEsICJpZHgiOiAiMTE6MDAifSwgeyJ2YWwiOiAwLjk4MjEwNTI2MzE1Nzg5NDcsICJjb2wiOiAyMzEsICJpZHgiOiAiMTI6MDAifSwgeyJ2YWwiOiAxLjMyMzg2OTYxMDkzNTg1NywgImNvbCI6IDIzMSwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDIuMTc4MDgyMTkxNzgwODIxNywgImNvbCI6IDIzMSwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDIuMTI1Mzk1MTUyNzkyNDEzLCAiY29sIjogMjMxLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMS4zMTgyMjk3MTU0ODk5ODk2LCAiY29sIjogMjMxLCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMS4xOTM4ODgzMDM0NzczNDQ2LCAiY29sIjogMjMxLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS44MTk2MjAyNTMxNjQ1NTY5LCAiY29sIjogMjMxLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS4yNjY4Nzc2MzcxMzA4MDE3LCAiY29sIjogMjMxLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC44NTk1NTY0OTQxOTIxODU4LCAiY29sIjogMjMxLCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC40MTkzODg4MzAzNDc3MzQ0NCwgImNvbCI6IDIzMSwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMTk3NDY1NjgxMDk4MjA0ODYsICJjb2wiOiAyMzEsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjExMTcwMjEyNzY1OTU3NDQ2LCAiY29sIjogMjMxLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzYyZTEyNjliOTIwNTRhN2I4ZTdmZmZiOWRiNDJmZmFhKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfZGFmODQ5MGRjMDBkNGU1OGIxNTdkODA0MTg3NmY0NzUgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40Mjg5NCwtOTkuMTg1Mzg5KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZmZhNTgwMTBjOTA0NDRkYzg2NTE1ODkxNThkM2E4ZGEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfMmY3OWRjMGI5N2Y1NGY5Y2E2YzVjOTY1Y2QwNDBmNmQgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV8yZjc5ZGMwYjk3ZjU0ZjljYTZjNWM5NjVjZDA0MGY2ZCI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZmZhNTgwMTBjOTA0NDRkYzg2NTE1ODkxNThkM2E4ZGEuc2V0Q29udGVudCh2ZWdhXzJmNzlkYzBiOTdmNTRmOWNhNmM1Yzk2NWNkMDQwZjZkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2RhZjg0OTBkYzAwZDRlNThiMTU3ZDgwNDE4NzZmNDc1LmJpbmRQb3B1cChwb3B1cF9mZmE1ODAxMGM5MDQ0NGRjODY1MTU4OTE1OGQzYThkYSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAyMzI6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAxNTA4NjIwNjg5NjU1MTcyNSwgImNvbCI6IDIzMiwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wMDM0NTQyMzE0MzM1MDYwNDQ3LCAiY29sIjogMjMyLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMzIsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIzMiwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjMyLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAwNTc4MDM0NjgyMDgwOTI0OCwgImNvbCI6IDIzMiwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC40NzgxMDY1MDg4NzU3Mzk2MywgImNvbCI6IDIzMiwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC43MzcwMDk1NDQwMDg0ODM1LCAiY29sIjogMjMyLCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAyLjQ5NTc2MjcxMTg2NDQwNjYsICJjb2wiOiAyMzIsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDIuNzI3NzU0MjM3Mjg4MTM1NCwgImNvbCI6IDIzMiwgImlkeCI6ICI5OjAwIn0sIHsidmFsIjogMS4wODM0MjEzMzA1MTc0MjM0LCAiY29sIjogMjMyLCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC42MDczNjg0MjEwNTI2MzE2LCAiY29sIjogMjMyLCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC42MzY4NDIxMDUyNjMxNTc5LCAiY29sIjogMjMyLCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC42MjY3MDg3Mjc2NTUwOTk5LCAiY29sIjogMjMyLCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMS4wNjc0Mzk0MDk5MDUxNjM0LCAiY29sIjogMjMyLCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMC43NDM5NDA5OTA1MTYzMzMsICJjb2wiOiAyMzIsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAwLjY3MjI4NjYxNzQ5MjA5NywgImNvbCI6IDIzMiwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNzcxMzM4MjUwNzkwMzA1NiwgImNvbCI6IDIzMiwgImlkeCI6ICIxNzowMCJ9LCB7InZhbCI6IDAuODkxMzUwMjEwOTcwNDY0MiwgImNvbCI6IDIzMiwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDAuNjY5ODMxMjIzNjI4NjkyLCAiY29sIjogMjMyLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC40NjA0MDEyNjcxNTk0NTA5LCAiY29sIjogMjMyLCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC4yMDIzMTgyMjk3MTU0OSwgImNvbCI6IDIzMiwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMDk5MjYwODIzNjUzNjQzMDgsICJjb2wiOiAyMzIsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjA1MTA2MzgyOTc4NzIzNDA0LCAiY29sIjogMjMyLCAiaWR4IjogIjIzOjAwIn1dLCAibmFtZSI6ICJ0YWJsZSJ9LCB7InNvdXJjZSI6ICJ0YWJsZSIsICJuYW1lIjogInN0YXRzIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuaWR4Il0sICJ0eXBlIjogImZhY2V0In0sIHsidHlwZSI6ICJzdGF0cyIsICJ2YWx1ZSI6ICJkYXRhLnZhbCJ9XX1dfSx2ZWdhXzJmNzlkYzBiOTdmNTRmOWNhNmM1Yzk2NWNkMDQwZjZkKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfNzVlMjNjN2I5OWZiNDAzYWJmOWE5MDg0OGI5NzM0ZGMgPSBuZXcgTC5SZWd1bGFyUG9seWdvbk1hcmtlcigKICAgICAgICAgICAgICAgIG5ldyBMLkxhdExuZygxOS40MjkzMTQsLTk5LjE5Njk2NSksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbiA6IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLAogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAyLAogICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JlZCcsCiAgICAgICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDEsCiAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZTaWRlczogOCwKICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjogMCwKICAgICAgICAgICAgICAgICAgICByYWRpdXM6IDEwCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF85NjQxMzY2N2RmMGU0YTJjODM0NWEzMDY1NzAzMmYyZCk7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzMwODliMWRkNDU3OTQ5Yzc4OTVkNjc2MzkwOWFlNTM1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICc3MDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciB2ZWdhXzAwZGI3NGY2MDc1YzRmMzJiODdiNTEzYWFkYWVkYWE4ID0gJCgnICAgICAgICAgICAgIDxkaXYgaWQ9InZlZ2FfMDBkYjc0ZjYwNzVjNGYzMmI4N2I1MTNhYWRhZWRhYTgiPjwvZGl2PiAgICAgICAgICAgICAnKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzMwODliMWRkNDU3OTQ5Yzc4OTVkNjc2MzkwOWFlNTM1LnNldENvbnRlbnQodmVnYV8wMGRiNzRmNjA3NWM0ZjMyYjg3YjUxM2FhZGFlZGFhOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcmVndWxhcl9wb2x5Z29uX21hcmtlcl83NWUyM2M3Yjk5ZmI0MDNhYmY5YTkwODQ4Yjk3MzRkYy5iaW5kUG9wdXAocG9wdXBfMzA4OWIxZGQ0NTc5NDljNzg5NWQ2NzYzOTA5YWU1MzUpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdmVnYV9wYXJzZSh7ImxlZ2VuZHMiOiBbXSwgInNjYWxlcyI6IFt7InJhbmdlIjogIndpZHRoIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAieCIsICJ6ZXJvIjogZmFsc2V9LCB7InJhbmdlIjogImhlaWdodCIsICJkb21haW4iOiB7ImZpZWxkIjogInN1bSIsICJkYXRhIjogInN0YXRzIn0sICJuYW1lIjogInkiLCAibmljZSI6IHRydWV9LCB7InJhbmdlIjogImNhdGVnb3J5MjAiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJjb2xvciJ9XSwgImF4ZXMiOiBbeyJzY2FsZSI6ICJ4IiwgInR5cGUiOiAieCIsICJ0aXRsZSI6ICJIb3JhIn0sIHsic2NhbGUiOiAieSIsICJ0eXBlIjogInkiLCAidGl0bGUiOiAiRXN0YWNpb24gMjMzOiBWYWxvciBQcm9tZWRpbyBlbiB1biBkaWEifV0sICJoZWlnaHQiOiAzMDAsICJwYWRkaW5nIjogImF1dG8iLCAid2lkdGgiOiA2NTAsICJtYXJrcyI6IFt7InR5cGUiOiAiZ3JvdXAiLCAiZnJvbSI6IHsiZGF0YSI6ICJ0YWJsZSIsICJ0cmFuc2Zvcm0iOiBbeyJrZXlzIjogWyJkYXRhLmNvbCJdLCAidHlwZSI6ICJmYWNldCJ9LCB7InBvaW50IjogImRhdGEuaWR4IiwgInR5cGUiOiAic3RhY2siLCAiaGVpZ2h0IjogImRhdGEudmFsIn1dfSwgIm1hcmtzIjogW3sidHlwZSI6ICJyZWN0IiwgInByb3BlcnRpZXMiOiB7ImVudGVyIjogeyJ5IjogeyJmaWVsZCI6ICJ5IiwgInNjYWxlIjogInkifSwgIndpZHRoIjogeyJiYW5kIjogdHJ1ZSwgInNjYWxlIjogIngiLCAib2Zmc2V0IjogLTF9LCAieTIiOiB7ImZpZWxkIjogInkyIiwgInNjYWxlIjogInkifSwgIngiOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgInNjYWxlIjogIngifSwgImZpbGwiOiB7ImZpZWxkIjogImRhdGEuY29sIiwgInNjYWxlIjogImNvbG9yIn19fX1dfV0sICJkYXRhIjogW3sidmFsdWVzIjogW3sidmFsIjogMC4wNjE0MjI0MTM3OTMxMDM0NDYsICJjb2wiOiAyMzMsICJpZHgiOiAiMDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIzMywgImlkeCI6ICIxOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjMzLCAiaWR4IjogIjI6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMzMsICJpZHgiOiAiMzowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIzMywgImlkeCI6ICI0OjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjMzLCAiaWR4IjogIjU6MDAifSwgeyJ2YWwiOiAwLjE2Njg2MzkwNTMyNTQ0MzgsICJjb2wiOiAyMzMsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDEuMDg4MDE2OTY3MTI2MTkzLCAiY29sIjogMjMzLCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAyLjUwMTA1OTMyMjAzMzg5ODQsICJjb2wiOiAyMzMsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDMuMjMzMDUwODQ3NDU3NjI3LCAiY29sIjogMjMzLCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAxLjUwMTU4Mzk0OTMxMzYyMiwgImNvbCI6IDIzMywgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDEuMjkxNTc4OTQ3MzY4NDIxMiwgImNvbCI6IDIzMywgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDEuMjkyNjMxNTc4OTQ3MzY4NCwgImNvbCI6IDIzMywgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDEuNjYwMzU3NTE4NDAxNjgyMywgImNvbCI6IDIzMywgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDIuNTU2Mzc1MTMxNzE3NTk3MywgImNvbCI6IDIzMywgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDIuMDM1ODI3MTg2NTEyMTE4LCAiY29sIjogMjMzLCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMS4zMTI5NjEwMTE1OTExNDg1LCAiY29sIjogMjMzLCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMS4yODQ1MTAwMTA1Mzc0MDc5LCAiY29sIjogMjMzLCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS40NDQwOTI4MjcwMDQyMTk1LCAiY29sIjogMjMzLCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMS4yODY5MTk4MzEyMjM2Mjg3LCAiY29sIjogMjMzLCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMS4wNDAxMjY3MTU5NDUwODk4LCAiY29sIjogMjMzLCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC41OTY0MTcyODEzNDg3ODgyLCAiY29sIjogMjMzLCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4yNTk3Njc2ODc0MzQwMDIxNCwgImNvbCI6IDIzMywgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMTQ2ODA4NTEwNjM4Mjk3ODYsICJjb2wiOiAyMzMsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfMDBkYjc0ZjYwNzVjNGYzMmI4N2I1MTNhYWRhZWRhYTgpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl8xZDc2MGFhMmRkMjQ0YjgwYjAxODM4MGU0MTg1YmY3ZSA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQyNzgzLC05OS4xOTE1MzkpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83MmY2ZjQ3ZDdiMWY0OGMyOTU2YTA3ZTZlMzNmYzIwNyA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV9iYzM2MDVkZTBhMjU0YTFhOWM3ZmQ3YmQ4ZDEyY2JhMyA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhX2JjMzYwNWRlMGEyNTRhMWE5YzdmZDdiZDhkMTJjYmEzIj48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83MmY2ZjQ3ZDdiMWY0OGMyOTU2YTA3ZTZlMzNmYzIwNy5zZXRDb250ZW50KHZlZ2FfYmMzNjA1ZGUwYTI1NGExYTljN2ZkN2JkOGQxMmNiYTMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfMWQ3NjBhYTJkZDI0NGI4MGIwMTgzODBlNDE4NWJmN2UuYmluZFBvcHVwKHBvcHVwXzcyZjZmNDdkN2IxZjQ4YzI5NTZhMDdlNmUzM2ZjMjA3KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDIzNDogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDEwNzc1ODYyMDY4OTY1NTE4LCAiY29sIjogMjM0LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMzQsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIzNCwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wMDI4MDg5ODg3NjQwNDQ5NDM3LCAiY29sIjogMjM0LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMzQsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIzNCwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC4yNjYyNzIxODkzNDkxMTI0NSwgImNvbCI6IDIzNCwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMC40ODc4MDQ4NzgwNDg3ODA1LCAiY29sIjogMjM0LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAxLjkwNjc3OTY2MTAxNjk0OTIsICJjb2wiOiAyMzQsICJpZHgiOiAiODowMCJ9LCB7InZhbCI6IDEuMjcxMTg2NDQwNjc3OTY2LCAiY29sIjogMjM0LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAwLjQ5NzM2MDA4NDQ3NzI5Njc0LCAiY29sIjogMjM0LCAiaWR4IjogIjEwOjAwIn0sIHsidmFsIjogMC40NjczNjg0MjEwNTI2MzE2LCAiY29sIjogMjM0LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC41Mzg5NDczNjg0MjEwNTI2LCAiY29sIjogMjM0LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC42ODM0OTEwNjIwMzk5NTc5LCAiY29sIjogMjM0LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMS4yMjk3MTU0ODk5ODk0NjI3LCAiY29sIjogMjM0LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMC45ODEwMzI2NjU5NjQxNzI4LCAiY29sIjogMjM0LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMC42NjM4NTY2OTEyNTM5NTE1LCAiY29sIjogMjM0LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC43MzAyNDIzNjAzNzkzNDY2LCAiY29sIjogMjM0LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMC45OTU3ODA1OTA3MTcyOTk2LCAiY29sIjogMjM0LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMC45NjQxMzUwMjEwOTcwNDY0LCAiY29sIjogMjM0LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC41MjM3NTkyMzk3MDQzMjk1LCAiY29sIjogMjM0LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC4yMzE4MjI5NzE1NDg5OTg5NSwgImNvbCI6IDIzNCwgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMTIzNTQ4MDQ2NDYyNTEzMiwgImNvbCI6IDIzNCwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMDU0MjU1MzE5MTQ4OTM2MTcsICJjb2wiOiAyMzQsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfYmMzNjA1ZGUwYTI1NGExYTljN2ZkN2JkOGQxMmNiYTMpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9iMzZlOTY1NjcxZjU0MDJmYjhmMzgxZjIyMTA3YmUyOCA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQyOTMzMiwtOTkuMjAyMTgxKSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYjNlNTZhYTU1ZjE0NDdhMGJjZDZjOTQwNjkyM2MwMDUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfNzJhNTI0YjdkYTE5NDA3OWFiNmYwOTY1ZTAwMDk1YTMgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV83MmE1MjRiN2RhMTk0MDc5YWI2ZjA5NjVlMDAwOTVhMyI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYjNlNTZhYTU1ZjE0NDdhMGJjZDZjOTQwNjkyM2MwMDUuc2V0Q29udGVudCh2ZWdhXzcyYTUyNGI3ZGExOTQwNzlhYjZmMDk2NWUwMDA5NWEzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2IzNmU5NjU2NzFmNTQwMmZiOGYzODFmMjIxMDdiZTI4LmJpbmRQb3B1cChwb3B1cF9iM2U1NmFhNTVmMTQ0N2EwYmNkNmM5NDA2OTIzYzAwNSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAyMzU6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAxNzI0MTM3OTMxMDM0NDgyNywgImNvbCI6IDIzNSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjM1LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMzUsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIzNSwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjM1LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMzUsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMzc2MzMxMzYwOTQ2NzQ1NiwgImNvbCI6IDIzNSwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMi44ODg2NTMyMzQzNTg0MzA2LCAiY29sIjogMjM1LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiA5LjEzMjQxNTI1NDIzNzI4OSwgImNvbCI6IDIzNSwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogNC44MDA4NDc0NTc2MjcxMTg1LCAiY29sIjogMjM1LCAiaWR4IjogIjk6MDAifSwgeyJ2YWwiOiAxLjk2ODMyMTAxMzcyNzU2MDYsICJjb2wiOiAyMzUsICJpZHgiOiAiMTA6MDAifSwgeyJ2YWwiOiAxLjIxMTU3ODk0NzM2ODQyMSwgImNvbCI6IDIzNSwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuOTc0NzM2ODQyMTA1MjYzMSwgImNvbCI6IDIzNSwgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDEuMDEyNjE4Mjk2NTI5OTY4NCwgImNvbCI6IDIzNSwgImlkeCI6ICIxMzowMCJ9LCB7InZhbCI6IDEuNDE3MjgxMzQ4Nzg4MTk4MSwgImNvbCI6IDIzNSwgImlkeCI6ICIxNDowMCJ9LCB7InZhbCI6IDEuODcxNDQzNjI0ODY4MjgyNCwgImNvbCI6IDIzNSwgImlkeCI6ICIxNTowMCJ9LCB7InZhbCI6IDEuMzU3MjE4MTI0MzQxNDEyLCAiY29sIjogMjM1LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC43NDgxNTU5NTM2MzU0MDU3LCAiY29sIjogMjM1LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMS4wNzcwMDQyMTk0MDkyODI2LCAiY29sIjogMjM1LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMC42ODc3NjM3MTMwODAxNjg4LCAiY29sIjogMjM1LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC40MzUwNTgwNzgxNDE0OTk1LCAiY29sIjogMjM1LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC4yNzE4NjUxMjExODAxODk3LCAiY29sIjogMjM1LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4xMDEzNzI3NTYwNzE4MDU3MSwgImNvbCI6IDIzNSwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMDQ4OTM2MTcwMjEyNzY1OTYsICJjb2wiOiAyMzUsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfNzJhNTI0YjdkYTE5NDA3OWFiNmYwOTY1ZTAwMDk1YTMpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9hOTI1ODg0ZTYyMzg0Y2JlOTI1MGM2ZjE2ZWI0YTU0NiA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQyOTQzNiwtOTkuMjAyNDMpLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb24gOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJywKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIHdlaWdodDogMiwKICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZWQnLAogICAgICAgICAgICAgICAgICAgIGZpbGxPcGFjaXR5OiAxLAogICAgICAgICAgICAgICAgICAgIG51bWJlck9mU2lkZXM6IDgsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IDAsCiAgICAgICAgICAgICAgICAgICAgcmFkaXVzOiAxMAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfOTY0MTM2NjdkZjBlNGEyYzgzNDVhMzA2NTcwMzJmMmQpOwogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84YjhhMTgxYTM4MTk0Yjg5YWEzNDg3M2U0ZjVmMGZlNiA9IEwucG9wdXAoe21heFdpZHRoOiAnNzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgdmVnYV80YmI2Y2VhZTNhODY0ODAzOWViNzMyY2JmZjgxYzY1NiA9ICQoJyAgICAgICAgICAgICA8ZGl2IGlkPSJ2ZWdhXzRiYjZjZWFlM2E4NjQ4MDM5ZWI3MzJjYmZmODFjNjU2Ij48L2Rpdj4gICAgICAgICAgICAgJylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84YjhhMTgxYTM4MTk0Yjg5YWEzNDg3M2U0ZjVmMGZlNi5zZXRDb250ZW50KHZlZ2FfNGJiNmNlYWUzYTg2NDgwMzllYjczMmNiZmY4MWM2NTYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHJlZ3VsYXJfcG9seWdvbl9tYXJrZXJfYTkyNTg4NGU2MjM4NGNiZTkyNTBjNmYxNmViNGE1NDYuYmluZFBvcHVwKHBvcHVwXzhiOGExODFhMzgxOTRiODlhYTM0ODczZTRmNWYwZmU2KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHZlZ2FfcGFyc2UoeyJsZWdlbmRzIjogW10sICJzY2FsZXMiOiBbeyJyYW5nZSI6ICJ3aWR0aCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuaWR4IiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogIngiLCAiemVybyI6IGZhbHNlfSwgeyJyYW5nZSI6ICJoZWlnaHQiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJzdW0iLCAiZGF0YSI6ICJzdGF0cyJ9LCAibmFtZSI6ICJ5IiwgIm5pY2UiOiB0cnVlfSwgeyJyYW5nZSI6ICJjYXRlZ29yeTIwIiwgImRvbWFpbiI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAiZGF0YSI6ICJ0YWJsZSJ9LCAidHlwZSI6ICJvcmRpbmFsIiwgIm5hbWUiOiAiY29sb3IifV0sICJheGVzIjogW3sic2NhbGUiOiAieCIsICJ0eXBlIjogIngiLCAidGl0bGUiOiAiSG9yYSJ9LCB7InNjYWxlIjogInkiLCAidHlwZSI6ICJ5IiwgInRpdGxlIjogIkVzdGFjaW9uIDIzNjogVmFsb3IgUHJvbWVkaW8gZW4gdW4gZGlhIn1dLCAiaGVpZ2h0IjogMzAwLCAicGFkZGluZyI6ICJhdXRvIiwgIndpZHRoIjogNjUwLCAibWFya3MiOiBbeyJ0eXBlIjogImdyb3VwIiwgImZyb20iOiB7ImRhdGEiOiAidGFibGUiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5jb2wiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJwb2ludCI6ICJkYXRhLmlkeCIsICJ0eXBlIjogInN0YWNrIiwgImhlaWdodCI6ICJkYXRhLnZhbCJ9XX0sICJtYXJrcyI6IFt7InR5cGUiOiAicmVjdCIsICJwcm9wZXJ0aWVzIjogeyJlbnRlciI6IHsieSI6IHsiZmllbGQiOiAieSIsICJzY2FsZSI6ICJ5In0sICJ3aWR0aCI6IHsiYmFuZCI6IHRydWUsICJzY2FsZSI6ICJ4IiwgIm9mZnNldCI6IC0xfSwgInkyIjogeyJmaWVsZCI6ICJ5MiIsICJzY2FsZSI6ICJ5In0sICJ4IjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJzY2FsZSI6ICJ4In0sICJmaWxsIjogeyJmaWVsZCI6ICJkYXRhLmNvbCIsICJzY2FsZSI6ICJjb2xvciJ9fX19XX1dLCAiZGF0YSI6IFt7InZhbHVlcyI6IFt7InZhbCI6IDAuMDEwNzc1ODYyMDY4OTY1NTE4LCAiY29sIjogMjM2LCAiaWR4IjogIjA6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMzYsICJpZHgiOiAiMTowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIzNiwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjM2LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMzYsICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIzNiwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC40NzgxMDY1MDg4NzU3Mzk2MywgImNvbCI6IDIzNiwgImlkeCI6ICI2OjAwIn0sIHsidmFsIjogMy4zMTE3NzA5NDM3OTYzOTQ1LCAiY29sIjogMjM2LCAiaWR4IjogIjc6MDAifSwgeyJ2YWwiOiAxMC4zNjg2NDQwNjc3OTY2MSwgImNvbCI6IDIzNiwgImlkeCI6ICI4OjAwIn0sIHsidmFsIjogNS44NjEyMjg4MTM1NTkzMjIsICJjb2wiOiAyMzYsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDEuNzgwMzU5MDI4NTExMDg3NywgImNvbCI6IDIzNiwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDEuMDUxNTc4OTQ3MzY4NDIxLCAiY29sIjogMjM2LCAiaWR4IjogIjExOjAwIn0sIHsidmFsIjogMC45MDMxNTc4OTQ3MzY4NDIyLCAiY29sIjogMjM2LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMS4wMjIwODIwMTg5Mjc0NDQ5LCAiY29sIjogMjM2LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMS4xNDY0Njk5NjgzODc3NzY2LCAiY29sIjogMjM2LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS40NzYyOTA4MzI0NTUyMTYsICJjb2wiOiAyMzYsICJpZHgiOiAiMTU6MDAifSwgeyJ2YWwiOiAxLjM2ODgwOTI3MjkxODg2MiwgImNvbCI6IDIzNiwgImlkeCI6ICIxNjowMCJ9LCB7InZhbCI6IDAuNzA4MTEzODA0MDA0MjE1LCAiY29sIjogMjM2LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMC43MDA0MjE5NDA5MjgyNywgImNvbCI6IDIzNiwgImlkeCI6ICIxODowMCJ9LCB7InZhbCI6IDAuMzk3Njc5MzI0ODk0NTE0NzQsICJjb2wiOiAyMzYsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjI1MDI2Mzk5MTU1MjI3MDMsICJjb2wiOiAyMzYsICJpZHgiOiAiMjA6MDAifSwgeyJ2YWwiOiAwLjE0ODU3NzQ0OTk0NzMxMjk1LCAiY29sIjogMjM2LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4wNzM5MTc2MzQ2MzU2OTE2NiwgImNvbCI6IDIzNiwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMDMyOTc4NzIzNDA0MjU1MzIsICJjb2wiOiAyMzYsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfNGJiNmNlYWUzYTg2NDgwMzllYjczMmNiZmY4MWM2NTYpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9mNDM4MjlkMzYwMjQ0NWMzOTg5N2E5OWY5Y2YwZDI0MyA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQyNjc0NCwtOTkuMTkzOTg2KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzQ3N2IxYTk4OGY5NGM0YjljZWZlZjExYmZjYjNmMzYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfNzhhZTFjMTVlMTk5NDIxZDk2ZDNmYTk5MWQ0NmIzODAgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV83OGFlMWMxNWUxOTk0MjFkOTZkM2ZhOTkxZDQ2YjM4MCI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzQ3N2IxYTk4OGY5NGM0YjljZWZlZjExYmZjYjNmMzYuc2V0Q29udGVudCh2ZWdhXzc4YWUxYzE1ZTE5OTQyMWQ5NmQzZmE5OTFkNDZiMzgwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2Y0MzgyOWQzNjAyNDQ1YzM5ODk3YTk5ZjljZjBkMjQzLmJpbmRQb3B1cChwb3B1cF83NDc3YjFhOTg4Zjk0YzRiOWNlZmVmMTFiZmNiM2YzNik7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAyMzc6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAwOTY5ODI3NTg2MjA2ODk2NiwgImNvbCI6IDIzNywgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjM3LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMzcsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIzNywgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjM3LCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMzcsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMTI1NDQzNzg2OTgyMjQ4NTMsICJjb2wiOiAyMzcsICJpZHgiOiAiNjowMCJ9LCB7InZhbCI6IDAuNDkwOTg2MjE0MjA5OTY4MiwgImNvbCI6IDIzNywgImlkeCI6ICI3OjAwIn0sIHsidmFsIjogMS45MjkwMjU0MjM3Mjg4MTM2LCAiY29sIjogMjM3LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAxLjU5MzIyMDMzODk4MzA1MDgsICJjb2wiOiAyMzcsICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDAuNTI3OTgzMTA0NTQwNjU0NywgImNvbCI6IDIzNywgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNTI0MjEwNTI2MzE1Nzg5NSwgImNvbCI6IDIzNywgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNTE0NzM2ODQyMTA1MjYzMiwgImNvbCI6IDIzNywgImlkeCI6ICIxMjowMCJ9LCB7InZhbCI6IDAuNjE5MzQ4MDU0Njc5Mjg1LCAiY29sIjogMjM3LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMS4wNjIxNzA3MDYwMDYzMjI0LCAiY29sIjogMjM3LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS4zMDAzMTYxMjIyMzM5MzA2LCAiY29sIjogMjM3LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMS4wNjIxNzA3MDYwMDYzMjI0LCAiY29sIjogMjM3LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMS4zNDU2MjY5NzU3NjM5NjIsICJjb2wiOiAyMzcsICJpZHgiOiAiMTc6MDAifSwgeyJ2YWwiOiAyLjI5MTEzOTI0MDUwNjMyOTMsICJjb2wiOiAyMzcsICJpZHgiOiAiMTg6MDAifSwgeyJ2YWwiOiAxLjI5MjE5NDA5MjgyNzAwNDEsICJjb2wiOiAyMzcsICJpZHgiOiAiMTk6MDAifSwgeyJ2YWwiOiAwLjg3MDExNjE1NjI4Mjk5OSwgImNvbCI6IDIzNywgImlkeCI6ICIyMDowMCJ9LCB7InZhbCI6IDAuNDI2NzY1MDE1ODA2MTExNywgImNvbCI6IDIzNywgImlkeCI6ICIyMTowMCJ9LCB7InZhbCI6IDAuMTQxNDk5NDcyMDE2ODk1NDcsICJjb2wiOiAyMzcsICJpZHgiOiAiMjI6MDAifSwgeyJ2YWwiOiAwLjA1NzQ0NjgwODUxMDYzODMsICJjb2wiOiAyMzcsICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfNzhhZTFjMTVlMTk5NDIxZDk2ZDNmYTk5MWQ0NmIzODApOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9lY2FjOTk3ZjI4MzQ0MWJiYjk2NTE2YTYxYWU0NjJjNCA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQzMDE1MywtOTkuMTgxMzU1KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOGNkNjlkMzg0ODMwNDI5ZTg1NTIyYWMxMDkxZTQ2YTYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfOTY0MGRjOGJjOWQ2NDgxYWFlYTFlMDM0YTliNTc4NjQgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV85NjQwZGM4YmM5ZDY0ODFhYWVhMWUwMzRhOWI1Nzg2NCI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOGNkNjlkMzg0ODMwNDI5ZTg1NTIyYWMxMDkxZTQ2YTYuc2V0Q29udGVudCh2ZWdhXzk2NDBkYzhiYzlkNjQ4MWFhZWExZTAzNGE5YjU3ODY0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2VjYWM5OTdmMjgzNDQxYmJiOTY1MTZhNjFhZTQ2MmM0LmJpbmRQb3B1cChwb3B1cF84Y2Q2OWQzODQ4MzA0MjllODU1MjJhYzEwOTFlNDZhNik7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAyMzk6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAxNDAwODYyMDY4OTY1NTE3MywgImNvbCI6IDIzOSwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjM5LCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAwMzA3NjkyMzA3NjkyMzA3NywgImNvbCI6IDIzOSwgImlkeCI6ICIyOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjM5LCAiaWR4IjogIjM6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyMzksICJpZHgiOiAiNDowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDIzOSwgImlkeCI6ICI1OjAwIn0sIHsidmFsIjogMC42ODA0NzMzNzI3ODEwNjUxLCAiY29sIjogMjM5LCAiaWR4IjogIjY6MDAifSwgeyJ2YWwiOiAxLjQzMDU0MDgyNzE0NzQwMTgsICJjb2wiOiAyMzksICJpZHgiOiAiNzowMCJ9LCB7InZhbCI6IDQuODc1LCAiY29sIjogMjM5LCAiaWR4IjogIjg6MDAifSwgeyJ2YWwiOiAyLjE3Nzk2NjEwMTY5NDkxNTIsICJjb2wiOiAyMzksICJpZHgiOiAiOTowMCJ9LCB7InZhbCI6IDEuMTYxNTYyODI5OTg5NDQwMywgImNvbCI6IDIzOSwgImlkeCI6ICIxMDowMCJ9LCB7InZhbCI6IDAuNzE0NzM2ODQyMTA1MjYzMSwgImNvbCI6IDIzOSwgImlkeCI6ICIxMTowMCJ9LCB7InZhbCI6IDAuNjExNTc4OTQ3MzY4NDIxLCAiY29sIjogMjM5LCAiaWR4IjogIjEyOjAwIn0sIHsidmFsIjogMC44NzM4MTcwMzQ3MDAzMTU1LCAiY29sIjogMjM5LCAiaWR4IjogIjEzOjAwIn0sIHsidmFsIjogMS42Mzk2MjA2NTMzMTkyODM0LCAiY29sIjogMjM5LCAiaWR4IjogIjE0OjAwIn0sIHsidmFsIjogMS41NzAwNzM3NjE4NTQ1ODM3LCAiY29sIjogMjM5LCAiaWR4IjogIjE1OjAwIn0sIHsidmFsIjogMS4wMzE2MTIyMjMzOTMwNDU0LCAiY29sIjogMjM5LCAiaWR4IjogIjE2OjAwIn0sIHsidmFsIjogMC43NDkyMDk2OTQ0MTUxNzM4LCAiY29sIjogMjM5LCAiaWR4IjogIjE3OjAwIn0sIHsidmFsIjogMC45NTc4MDU5MDcxNzI5OTU3LCAiY29sIjogMjM5LCAiaWR4IjogIjE4OjAwIn0sIHsidmFsIjogMC44MTU0MDA4NDM4ODE4NTY1LCAiY29sIjogMjM5LCAiaWR4IjogIjE5OjAwIn0sIHsidmFsIjogMC40ODM2MzI1MjM3NTkyMzk3LCAiY29sIjogMjM5LCAiaWR4IjogIjIwOjAwIn0sIHsidmFsIjogMC4yOTgyMDg2NDA2NzQzOTQxLCAiY29sIjogMjM5LCAiaWR4IjogIjIxOjAwIn0sIHsidmFsIjogMC4xNTUyMjcwMzI3MzQ5NTI0NywgImNvbCI6IDIzOSwgImlkeCI6ICIyMjowMCJ9LCB7InZhbCI6IDAuMDcyMzQwNDI1NTMxOTE0ODksICJjb2wiOiAyMzksICJpZHgiOiAiMjM6MDAifV0sICJuYW1lIjogInRhYmxlIn0sIHsic291cmNlIjogInRhYmxlIiwgIm5hbWUiOiAic3RhdHMiLCAidHJhbnNmb3JtIjogW3sia2V5cyI6IFsiZGF0YS5pZHgiXSwgInR5cGUiOiAiZmFjZXQifSwgeyJ0eXBlIjogInN0YXRzIiwgInZhbHVlIjogImRhdGEudmFsIn1dfV19LHZlZ2FfOTY0MGRjOGJjOWQ2NDgxYWFlYTFlMDM0YTliNTc4NjQpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcmVndWxhcl9wb2x5Z29uX21hcmtlcl9jNzQzM2MzODYzZmY0MWEyOWM0NTIzYzUyNmJlYzNkYiA9IG5ldyBMLlJlZ3VsYXJQb2x5Z29uTWFya2VyKAogICAgICAgICAgICAgICAgbmV3IEwuTGF0TG5nKDE5LjQzODU1MSwtOTkuMjA2Mjk4KSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uIDogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDIsCiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmVkJywKICAgICAgICAgICAgICAgICAgICBmaWxsT3BhY2l0eTogMSwKICAgICAgICAgICAgICAgICAgICBudW1iZXJPZlNpZGVzOiA4LAogICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOiAwLAogICAgICAgICAgICAgICAgICAgIHJhZGl1czogMTAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzk2NDEzNjY3ZGYwZTRhMmM4MzQ1YTMwNjU3MDMyZjJkKTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzA5NGZiNGE0ZDlmNDQ0MWFkNWI1OGJlNzNjZWVmYzggPSBMLnBvcHVwKHttYXhXaWR0aDogJzcwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIHZlZ2FfNzEwMTA0OGM0ZjlkNGNiMWI0ZTNhZWRlYWE2NWY4NjkgPSAkKCcgICAgICAgICAgICAgPGRpdiBpZD0idmVnYV83MTAxMDQ4YzRmOWQ0Y2IxYjRlM2FlZGVhYTY1Zjg2OSI+PC9kaXY+ICAgICAgICAgICAgICcpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMzA5NGZiNGE0ZDlmNDQ0MWFkNWI1OGJlNzNjZWVmYzguc2V0Q29udGVudCh2ZWdhXzcxMDEwNDhjNGY5ZDRjYjFiNGUzYWVkZWFhNjVmODY5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICByZWd1bGFyX3BvbHlnb25fbWFya2VyX2M3NDMzYzM4NjNmZjQxYTI5YzQ1MjNjNTI2YmVjM2RiLmJpbmRQb3B1cChwb3B1cF8zMDk0ZmI0YTRkOWY0NDQxYWQ1YjU4YmU3M2NlZWZjOCk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB2ZWdhX3BhcnNlKHsibGVnZW5kcyI6IFtdLCAic2NhbGVzIjogW3sicmFuZ2UiOiAid2lkdGgiLCAiZG9tYWluIjogeyJmaWVsZCI6ICJkYXRhLmlkeCIsICJkYXRhIjogInRhYmxlIn0sICJ0eXBlIjogIm9yZGluYWwiLCAibmFtZSI6ICJ4IiwgInplcm8iOiBmYWxzZX0sIHsicmFuZ2UiOiAiaGVpZ2h0IiwgImRvbWFpbiI6IHsiZmllbGQiOiAic3VtIiwgImRhdGEiOiAic3RhdHMifSwgIm5hbWUiOiAieSIsICJuaWNlIjogdHJ1ZX0sIHsicmFuZ2UiOiAiY2F0ZWdvcnkyMCIsICJkb21haW4iOiB7ImZpZWxkIjogImRhdGEuY29sIiwgImRhdGEiOiAidGFibGUifSwgInR5cGUiOiAib3JkaW5hbCIsICJuYW1lIjogImNvbG9yIn1dLCAiYXhlcyI6IFt7InNjYWxlIjogIngiLCAidHlwZSI6ICJ4IiwgInRpdGxlIjogIkhvcmEifSwgeyJzY2FsZSI6ICJ5IiwgInR5cGUiOiAieSIsICJ0aXRsZSI6ICJFc3RhY2lvbiAyNDA6IFZhbG9yIFByb21lZGlvIGVuIHVuIGRpYSJ9XSwgImhlaWdodCI6IDMwMCwgInBhZGRpbmciOiAiYXV0byIsICJ3aWR0aCI6IDY1MCwgIm1hcmtzIjogW3sidHlwZSI6ICJncm91cCIsICJmcm9tIjogeyJkYXRhIjogInRhYmxlIiwgInRyYW5zZm9ybSI6IFt7ImtleXMiOiBbImRhdGEuY29sIl0sICJ0eXBlIjogImZhY2V0In0sIHsicG9pbnQiOiAiZGF0YS5pZHgiLCAidHlwZSI6ICJzdGFjayIsICJoZWlnaHQiOiAiZGF0YS52YWwifV19LCAibWFya3MiOiBbeyJ0eXBlIjogInJlY3QiLCAicHJvcGVydGllcyI6IHsiZW50ZXIiOiB7InkiOiB7ImZpZWxkIjogInkiLCAic2NhbGUiOiAieSJ9LCAid2lkdGgiOiB7ImJhbmQiOiB0cnVlLCAic2NhbGUiOiAieCIsICJvZmZzZXQiOiAtMX0sICJ5MiI6IHsiZmllbGQiOiAieTIiLCAic2NhbGUiOiAieSJ9LCAieCI6IHsiZmllbGQiOiAiZGF0YS5pZHgiLCAic2NhbGUiOiAieCJ9LCAiZmlsbCI6IHsiZmllbGQiOiAiZGF0YS5jb2wiLCAic2NhbGUiOiAiY29sb3IifX19fV19XSwgImRhdGEiOiBbeyJ2YWx1ZXMiOiBbeyJ2YWwiOiAwLjAxMTg1MzQ0ODI3NTg2MjA2OCwgImNvbCI6IDI0MCwgImlkeCI6ICIwOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjQwLCAiaWR4IjogIjE6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyNDAsICJpZHgiOiAiMjowMCJ9LCB7InZhbCI6IDAuMCwgImNvbCI6IDI0MCwgImlkeCI6ICIzOjAwIn0sIHsidmFsIjogMC4wLCAiY29sIjogMjQwLCAiaWR4IjogIjQ6MDAifSwgeyJ2YWwiOiAwLjAsICJjb2wiOiAyNDAsICJpZHgiOiAiNTowMCJ9LCB7InZhbCI6IDAuMDE1Mzg0NjE1Mzg0NjE1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment