Skip to content

Instantly share code, notes, and snippets.

@psychemedia
Last active May 25, 2023 21:29
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save psychemedia/b49c49da365666ba9199d2e27d002d07 to your computer and use it in GitHub Desktop.
Save psychemedia/b49c49da365666ba9199d2e27d002d07 to your computer and use it in GitHub Desktop.
osmnx demo
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Doodling with `osmnx`\n",
"\n",
"A notebook demonstrating a quick play with Geoff Boeing's [`osmnx`](https://github.com/gboeing/osmnx) package, in part drawing on examples found in the [`gboeing/osmnx-examples`](https://github.com/gboeing/osmnx-examples) notebooks."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"# brew install spatialindex\n",
"# pip install osmnx\n",
"import osmnx as ox\n",
"\n",
"import networkx as nx\n",
"\n",
"import folium\n",
"\n",
"#Enable inline plotting of maps\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's start with a simple demo - grab all the driveable roads on the Isle of Wight from OpenStreetMap and render them:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1122.29x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#Note - this may take some time...\n",
"G = ox.graph_from_place('Isle of Wight, UK', network_type='drive')\n",
"#The projection step projects to \n",
"#ox.plot_graph(ox.project_graph(G));\n",
"ox.plot_graph(G);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Simple Route Planning\n",
"\n",
"The routes are represented internally as a `networkx` graph. Finding the shortest distance between provides a way of generating simple routes.\n",
"\n",
"Using as `osmnx` utility method, we can geolocate addresses to access latitude/longitude co-ordinates of a location:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"origin = ox.utils.geocode('Pointer Inn, Newchurch, Isle of Wight')\n",
"destination = ox.utils.geocode('Taverners, Godshill, Isle of Wight')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can then use another utility function to find the nearest node on the route graph to each location:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"origin_node = ox.get_nearest_node(G, origin) \n",
"destination_node = ox.get_nearest_node(G, destination ) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The route is then found as the shortest path between those nodes over the graph representation:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"route = nx.shortest_path(G, origin_node, destination_node)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plotting the route highlights it on the whole graph:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1122.29x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ox.plot_graph_route(G, route);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Alternatively, we can plot the route on an interactive map:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVMgPSBmYWxzZTsgTF9OT19UT1VDSCA9IGZhbHNlOyBMX0RJU0FCTEVfM0QgPSBmYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIgLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIiAvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiIC8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIgLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuY3NzIiAvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2dpdC5jb20vcHl0aG9uLXZpc3VhbGl6YXRpb24vZm9saXVtL21hc3Rlci9mb2xpdW0vdGVtcGxhdGVzL2xlYWZsZXQuYXdlc29tZS5yb3RhdGUuY3NzIiAvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgICAgICAgICA8c3R5bGU+ICNtYXBfYzRiZGYxOTNhMzU3NGYzN2EyOTMwMWE5NjFkMGY4MTMgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogMTAwLjAlOwogICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgIAo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2M0YmRmMTkzYTM1NzRmMzdhMjkzMDFhOTYxZDBmODEzIiA+PC9kaXY+CiAgICAgICAgCjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGJvdW5kcyA9IG51bGw7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgdmFyIG1hcF9jNGJkZjE5M2EzNTc0ZjM3YTI5MzAxYTk2MWQwZjgxMyA9IEwubWFwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcF9jNGJkZjE5M2EzNTc0ZjM3YTI5MzAxYTk2MWQwZjgxMycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2VudGVyOiBbNTAuNjQ0OTg0ODkxMzYzNzA2LC0xLjIyODkyMjczNTkxMTkxOTddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgem9vbTogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJzOiBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHRpbGVfbGF5ZXJfZTU3MDNjYTA3YTEyNGRhNDhmYWFjYzNiZjFiYzg1YzIgPSBMLnRpbGVMYXllcigKICAgICAgICAgICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgICAgICAgICB7CiAgImF0dHJpYnV0aW9uIjogbnVsbCwKICAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsCiAgIm1heFpvb20iOiAxOCwKICAibWluWm9vbSI6IDEsCiAgIm5vV3JhcCI6IGZhbHNlLAogICJzdWJkb21haW5zIjogImFiYyIKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfYzRiZGYxOTNhMzU3NGYzN2EyOTMwMWE5NjFkMGY4MTMpOwogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2NhZWQxMDJiOTRjYzRjZGE4MzE0NzI1YzQ4NDcxZmJkID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NTgzMjIsIC0xLjIwNzExNTZdLCBbNTAuNjY1Mjk3NiwgLTEuMjA3NDExMl1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiNBQTExMTEiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiI0FBMTExMSIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfSkuYWRkVG8obWFwX2M0YmRmMTkzYTM1NzRmMzdhMjkzMDFhOTYxZDBmODEzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Q5OTliMDQxMTM2MTRhZWZiN2I0NDFmNGQ4OWQ5Y2YwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2YxMzdkZjEzNDczZDQ4MDk5MWEzODM3MTY5NWVlMjM5ID0gJCgnPGRpdiBpZD0iaHRtbF9mMTM3ZGYxMzQ3M2Q0ODA5OTFhMzgzNzE2OTVlZTIzOSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkhpZ2ggU3RyZWV0IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZDk5OWIwNDExMzYxNGFlZmI3YjQ0MWY0ZDg5ZDljZjAuc2V0Q29udGVudChodG1sX2YxMzdkZjEzNDczZDQ4MDk5MWEzODM3MTY5NWVlMjM5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfY2FlZDEwMmI5NGNjNGNkYTgzMTQ3MjVjNDg0NzFmYmQuYmluZFBvcHVwKHBvcHVwX2Q5OTliMDQxMTM2MTRhZWZiN2I0NDFmNGQ4OWQ5Y2YwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzI5MjY1ZDEwZGVhOTQzZGFhMDViOTIxMTA5Y2UwMTZmID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NTI5NzYsIC0xLjIwNzQxMTJdLCBbNTAuNjY1MDIyNSwgLTEuMjA3NjA2XSwgWzUwLjY2NDg5OTksIC0xLjIwNzcxNzFdLCBbNTAuNjY0ODUyNywgLTEuMjA3Nzc1Ml0sIFs1MC42NjQ4NDI1LCAtMS4yMDc3ODc4XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiI0FBMTExMSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjQUExMTExIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9KS5hZGRUbyhtYXBfYzRiZGYxOTNhMzU3NGYzN2EyOTMwMWE5NjFkMGY4MTMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZGI3OWM3ZWZlOTE1NGRkZDg2NTJlZTdmYTE4NjBkMDMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNWMxZmQ5ZTE0MjRhNGY0Mjk4MmQ4MTExNTFmNzFhZGMgPSAkKCc8ZGl2IGlkPSJodG1sXzVjMWZkOWUxNDI0YTRmNDI5ODJkODExMTUxZjcxYWRjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iSGlnaCBTdHJlZXQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kYjc5YzdlZmU5MTU0ZGRkODY1MmVlN2ZhMTg2MGQwMy5zZXRDb250ZW50KGh0bWxfNWMxZmQ5ZTE0MjRhNGY0Mjk4MmQ4MTExNTFmNzFhZGMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8yOTI2NWQxMGRlYTk0M2RhYTA1YjkyMTEwOWNlMDE2Zi5iaW5kUG9wdXAocG9wdXBfZGI3OWM3ZWZlOTE1NGRkZDg2NTJlZTdmYTE4NjBkMDMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfYTRmMWQ1ZTk5MjMzNGRhMjk3YmM4NDBiY2EzNjczZGMgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY0ODQyNSwgLTEuMjA3Nzg3OF0sIFs1MC42NjQ3NjIsIC0xLjIwNzg5MTFdLCBbNTAuNjY0NjQ4NCwgLTEuMjA4MDMxOV0sIFs1MC42NjQ1MzMsIC0xLjIwODIyNjddXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjQUExMTExIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiNBQTExMTEiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0pLmFkZFRvKG1hcF9jNGJkZjE5M2EzNTc0ZjM3YTI5MzAxYTk2MWQwZjgxMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85YzlhM2FiODBkNjI0NmE2OWRhNWJhODBiYjVmYmJkMiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lZmQ5ZWUxMDgyOTA0ZTNkYmU3YzU0MzRlYzU0N2VhOCA9ICQoJzxkaXYgaWQ9Imh0bWxfZWZkOWVlMTA4MjkwNGUzZGJlN2M1NDM0ZWM1NDdlYTgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXaW5mb3JkIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85YzlhM2FiODBkNjI0NmE2OWRhNWJhODBiYjVmYmJkMi5zZXRDb250ZW50KGh0bWxfZWZkOWVlMTA4MjkwNGUzZGJlN2M1NDM0ZWM1NDdlYTgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9hNGYxZDVlOTkyMzM0ZGEyOTdiYzg0MGJjYTM2NzNkYy5iaW5kUG9wdXAocG9wdXBfOWM5YTNhYjgwZDYyNDZhNjlkYTViYTgwYmI1ZmJiZDIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZmY4MWYzYjRjYjM2NGUxNWI3Mzk4OTA4YmMzYzJhNjAgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY0NTMzLCAtMS4yMDgyMjY3XSwgWzUwLjY2NDQ5NDUsIC0xLjIwODMwODRdLCBbNTAuNjY0NDg2NiwgLTEuMjA4MzI0OV0sIFs1MC42NjQ0Njc2LCAtMS4yMDgzNjUyXSwgWzUwLjY2NDMxMzUsIC0xLjIwODY5MTddLCBbNTAuNjY0MTM1NywgLTEuMjA5MDI0XSwgWzUwLjY2Mzk1MzYsIC0xLjIwOTIwMV0sIFs1MC42NjMxMjA2LCAtMS4yMDk4NzE1XSwgWzUwLjY2Mjk4NDIsIC0xLjIwOTk4MTNdLCBbNTAuNjYyMzczNiwgLTEuMjEwNjQxN10sIFs1MC42NjIxMjI1LCAtMS4yMTA5MThdLCBbNTAuNjYxOTI2OCwgLTEuMjExMDgyMV0sIFs1MC42NjE3NTIsIC0xLjIxMTE3NzJdLCBbNTAuNjYxMjEsIC0xLjIxMTQ4MDZdLCBbNTAuNjYxMTAwNSwgLTEuMjExNTI2OF0sIFs1MC42NjA3MDY1LCAtMS4yMTE2OTNdLCBbNTAuNjYwNDAzMywgLTEuMjExNzYyN10sIFs1MC42NTk4MzU3LCAtMS4yMTE4MTg2XSwgWzUwLjY1OTM4NywgLTEuMjExODkzN10sIFs1MC42NTkwODA2LCAtMS4yMTE5NDEzXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiI0FBMTExMSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjQUExMTExIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9KS5hZGRUbyhtYXBfYzRiZGYxOTNhMzU3NGYzN2EyOTMwMWE5NjFkMGY4MTMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjM4NmFlN2QyZTIzNDFiMDk2MTZjYmMyOWNhMzg4Y2QgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNjQ1NzkyYTc3MDAwNDE1MDg5YjNjZjQwNzY1MWNiZmEgPSAkKCc8ZGl2IGlkPSJodG1sXzY0NTc5MmE3NzAwMDQxNTA4OWIzY2Y0MDc2NTFjYmZhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV2luZm9yZCBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMjM4NmFlN2QyZTIzNDFiMDk2MTZjYmMyOWNhMzg4Y2Quc2V0Q29udGVudChodG1sXzY0NTc5MmE3NzAwMDQxNTA4OWIzY2Y0MDc2NTFjYmZhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfZmY4MWYzYjRjYjM2NGUxNWI3Mzk4OTA4YmMzYzJhNjAuYmluZFBvcHVwKHBvcHVwXzIzODZhZTdkMmUyMzQxYjA5NjE2Y2JjMjljYTM4OGNkKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzVlZDMyYmI5ODg3YzQyOWI4ZGU0NjhjMGJlODk3MjY2ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1OTA4MDYsIC0xLjIxMTk0MTNdLCBbNTAuNjU4ODM0MywgLTEuMjEyNjYyM10sIFs1MC42NTgwMDAzLCAtMS4yMTQ5MDY5XSwgWzUwLjY1Nzk4MDIsIC0xLjIxNDk0NTJdLCBbNTAuNjU3OTM1OCwgLTEuMjE0OTk2NF0sIFs1MC42NTc2NTA4LCAtMS4yMTUyMzk1XSwgWzUwLjY1NzQ2MTIsIC0xLjIxNTQ3MDJdLCBbNTAuNjU3MjM0MywgLTEuMjE1NzI5XSwgWzUwLjY1NzAyOTUsIC0xLjIxNTkwOTddLCBbNTAuNjU2ODMzLCAtMS4yMTYwMTVdLCBbNTAuNjU2NjI0NSwgLTEuMjE2MTA1NF0sIFs1MC42NTY1NzcsIC0xLjIxNjEyNl0sIFs1MC42NTU5OTU1LCAtMS4yMTY1MjddLCBbNTAuNjU1MzMzMiwgLTEuMjE3MzQ1MV0sIFs1MC42NTUyODMsIC0xLjIxNzQxNzVdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjQUExMTExIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiNBQTExMTEiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0pLmFkZFRvKG1hcF9jNGJkZjE5M2EzNTc0ZjM3YTI5MzAxYTk2MWQwZjgxMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iNmE4Y2ViNzY1ZmI0NDQwOThlZjM1OGE1ZjhmZjJiMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yNDI0OWFjMWY4MTY0MmY4ODk3NGE3YzdmYTcyNmU4OCA9ICQoJzxkaXYgaWQ9Imh0bWxfMjQyNDlhYzFmODE2NDJmODg5NzRhN2M3ZmE3MjZlODgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJIYXJib3JzIExha2UgTGFuZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2I2YThjZWI3NjVmYjQ0NDA5OGVmMzU4YTVmOGZmMmIxLnNldENvbnRlbnQoaHRtbF8yNDI0OWFjMWY4MTY0MmY4ODk3NGE3YzdmYTcyNmU4OCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzVlZDMyYmI5ODg3YzQyOWI4ZGU0NjhjMGJlODk3MjY2LmJpbmRQb3B1cChwb3B1cF9iNmE4Y2ViNzY1ZmI0NDQwOThlZjM1OGE1ZjhmZjJiMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8zODk4NmIyYTVhMzE0OGZiYjhkZDc1Y2RmN2UxNzM3MiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTUyODMsIC0xLjIxNzQxNzVdLCBbNTAuNjU1MTEwNSwgLTEuMjE3NzIzMl0sIFs1MC42NTQ3OTE1LCAtMS4yMTgzMzg4XSwgWzUwLjY1NDU1NjksIC0xLjIxODc4MjldLCBbNTAuNjU0NDI0MiwgLTEuMjE5MDQxNl0sIFs1MC42NTQyMzE2LCAtMS4yMTkzOTI0XSwgWzUwLjY1MzkzMTYsIC0xLjIxOTg2OTFdLCBbNTAuNjUzMzg2MSwgLTEuMjIwNjczNF0sIFs1MC42NTMyNTA3LCAtMS4yMjA5MDMyXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiI0FBMTExMSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjQUExMTExIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9KS5hZGRUbyhtYXBfYzRiZGYxOTNhMzU3NGYzN2EyOTMwMWE5NjFkMGY4MTMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNWY1MTcyMGE5MjE5NGFjMzgyOGFmNDA0NWVjNWFlMmEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNWM2ZDlmYjMwZDliNGM0MTkwNjE2Y2JjN2Y5OTA3NTQgPSAkKCc8ZGl2IGlkPSJodG1sXzVjNmQ5ZmIzMGQ5YjRjNDE5MDYxNmNiYzdmOTkwNzU0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV2F0ZXJ5IExhbmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81ZjUxNzIwYTkyMTk0YWMzODI4YWY0MDQ1ZWM1YWUyYS5zZXRDb250ZW50KGh0bWxfNWM2ZDlmYjMwZDliNGM0MTkwNjE2Y2JjN2Y5OTA3NTQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8zODk4NmIyYTVhMzE0OGZiYjhkZDc1Y2RmN2UxNzM3Mi5iaW5kUG9wdXAocG9wdXBfNWY1MTcyMGE5MjE5NGFjMzgyOGFmNDA0NWVjNWFlMmEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMDc2ZmUxNTI4Mzk2NGRkODk4NDA1Y2M5NmFkMzMwODcgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUzMjUwNywgLTEuMjIwOTAzMl0sIFs1MC42NTMyOTQzLCAtMS4yMjA5NTY3XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiI0FBMTExMSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjQUExMTExIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9KS5hZGRUbyhtYXBfYzRiZGYxOTNhMzU3NGYzN2EyOTMwMWE5NjFkMGY4MTMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDk1MzJkOTk4NmMxNDkyZTkwMjY2ZTExOTllYTczNWEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfM2IwZTJiMWU4YTczNDk2NTgxYzQ3YWJlMDJmMGFiZmQgPSAkKCc8ZGl2IGlkPSJodG1sXzNiMGUyYjFlOGE3MzQ5NjU4MWM0N2FiZTAyZjBhYmZkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iTmV3cG9ydCBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMDk1MzJkOTk4NmMxNDkyZTkwMjY2ZTExOTllYTczNWEuc2V0Q29udGVudChodG1sXzNiMGUyYjFlOGE3MzQ5NjU4MWM0N2FiZTAyZjBhYmZkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMDc2ZmUxNTI4Mzk2NGRkODk4NDA1Y2M5NmFkMzMwODcuYmluZFBvcHVwKHBvcHVwXzA5NTMyZDk5ODZjMTQ5MmU5MDI2NmUxMTk5ZWE3MzVhKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzEwZTMxYTJmN2JhZjQ3NGI5YjE0MGQ1MDVmM2FjOWEyID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MzI5NDMsIC0xLjIyMDk1NjddLCBbNTAuNjUzMjMyNSwgLTEuMjIxMDYwOV0sIFs1MC42NTMxMzA0LCAtMS4yMjEyMjg1XSwgWzUwLjY1Mjk3MzUsIC0xLjIyMTQ4NzldLCBbNTAuNjUyNzM5NywgLTEuMjIxODcxXSwgWzUwLjY1MTkzNzksIC0xLjIyMzQ4NjhdLCBbNTAuNjUxNzkzMywgLTEuMjIzODAyMl0sIFs1MC42NTE3NTAxLCAtMS4yMjM5MTIyXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiI0FBMTExMSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjQUExMTExIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9KS5hZGRUbyhtYXBfYzRiZGYxOTNhMzU3NGYzN2EyOTMwMWE5NjFkMGY4MTMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOWE3N2RlYzIxYmQ5NDlkNGJkMzM5YTcyYjY2OWY0MTEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZGM2YmI4ZWFjZDhiNDgxMjg4OGE3ZDQwMjk2NDY5M2YgPSAkKCc8ZGl2IGlkPSJodG1sX2RjNmJiOGVhY2Q4YjQ4MTI4ODhhN2Q0MDI5NjQ2OTNmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQmF0aGluZ2JvdXJuZSBMYW5lIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOWE3N2RlYzIxYmQ5NDlkNGJkMzM5YTcyYjY2OWY0MTEuc2V0Q29udGVudChodG1sX2RjNmJiOGVhY2Q4YjQ4MTI4ODhhN2Q0MDI5NjQ2OTNmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMTBlMzFhMmY3YmFmNDc0YjliMTQwZDUwNWYzYWM5YTIuYmluZFBvcHVwKHBvcHVwXzlhNzdkZWMyMWJkOTQ5ZDRiZDMzOWE3MmI2NjlmNDExKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzA5NjY1ZTZkYzNiZTQ3YmI4MDUxMjQyNjVhY2U3YTAyID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MTc1MDEsIC0xLjIyMzkxMjJdLCBbNTAuNjUxNjU0LCAtMS4yMjM5ODcyXSwgWzUwLjY1MTU5MzUsIC0xLjIyNDA0NThdLCBbNTAuNjUxMTY2NiwgLTEuMjI0MjE1Nl0sIFs1MC42NTA5MTIzLCAtMS4yMjQzOTRdLCBbNTAuNjUwNzk5MywgLTEuMjI0NTIzMl0sIFs1MC42NTA2MTQsIC0xLjIyNDY3OTZdLCBbNTAuNjUwNDk1NCwgLTEuMjI0NzYzOF0sIFs1MC42NTAzMDgxLCAtMS4yMjQ4MTY5XSwgWzUwLjY0OTc0NywgLTEuMjI0OTE2NV0sIFs1MC42NDkxODQxLCAtMS4yMjUwMTI3XSwgWzUwLjY0ODY2NDUsIC0xLjIyNTA4ODFdLCBbNTAuNjQ4MzUwMywgLTEuMjI1MTMzN10sIFs1MC42NDgxMjcyLCAtMS4yMjUxNTE4XSwgWzUwLjY0ODA5ODEsIC0xLjIyNTE0ODddLCBbNTAuNjQ4MDAxOCwgLTEuMjI1MTEwM10sIFs1MC42NDc5MjcxLCAtMS4yMjUwOTA0XSwgWzUwLjY0Nzg1MDgsIC0xLjIyNTA3XSwgWzUwLjY0NzczNzYsIC0xLjIyNTA2OThdLCBbNTAuNjQ3NjE2LCAtMS4yMjUwNzg1XSwgWzUwLjY0NzMxNjIsIC0xLjIyNTA5NTVdLCBbNTAuNjQ2OTI4MSwgLTEuMjI1MDgzN10sIFs1MC42NDU3MjY2LCAtMS4yMjQ5Nzg0XSwgWzUwLjY0NDkzMiwgLTEuMjI0OTA3NF0sIFs1MC42NDQ4ODA3LCAtMS4yMjQ5NjkxXSwgWzUwLjY0NDc5OCwgLTEuMjI1MTMxNl0sIFs1MC42NDQ3MzM2LCAtMS4yMjUzNzM3XSwgWzUwLjY0NDcwMzYsIC0xLjIyNTUyODZdLCBbNTAuNjQ0NjM5NSwgLTEuMjI1OTMwNV0sIFs1MC42NDQ1NTk5LCAtMS4yMjYzNzE1XSwgWzUwLjY0NDQ5NiwgLTEuMjI2NDg1Nl0sIFs1MC42NDQ0MjI5LCAtMS4yMjY1NjVdLCBbNTAuNjQzNzgzMiwgLTEuMjI3MDM0NV0sIFs1MC42NDM2NDU5LCAtMS4yMjcwOTY5XSwgWzUwLjY0MzM2OTYsIC0xLjIyNzE1ODZdLCBbNTAuNjQzMjY1MSwgLTEuMjI3MjE0MV0sIFs1MC42NDI3MjU5LCAtMS4yMjc5NTFdLCBbNTAuNjQyMzI1MSwgLTEuMjI4NzYxOF0sIFs1MC42NDIyMzA4LCAtMS4yMjg5NTI2XSwgWzUwLjY0MTg5OTcsIC0xLjIyOTQ4OTZdLCBbNTAuNjQxNjgyNSwgLTEuMjI5Nzg2OV0sIFs1MC42NDE1NzM4LCAtMS4yMjk4ODk3XSwgWzUwLjY0MTQ4MjUsIC0xLjIyOTk0NzJdLCBbNTAuNjQxMjU0NywgLTEuMjI5OTk2OF0sIFs1MC42NDA2MDUsIC0xLjIzMDE0ODVdLCBbNTAuNjQwMzU0NywgLTEuMjMwMjVdLCBbNTAuNjQwMTM1OSwgLTEuMjMwMzg2M10sIFs1MC42Mzk5MjkxLCAtMS4yMzA1NTU2XSwgWzUwLjYzOTU4NzQsIC0xLjIzMDgxODJdLCBbNTAuNjM5MzIyMSwgLTEuMjMwOTgwOV0sIFs1MC42Mzg5NjI3LCAtMS4yMzExODY3XSwgWzUwLjYzODQzNTEsIC0xLjIzMTQyMThdLCBbNTAuNjM4MjE0LCAtMS4yMzE0MTddLCBbNTAuNjM4MDY4OCwgLTEuMjMxNDQzN10sIFs1MC42Mzc5NDAyLCAtMS4yMzE1MDExXSwgWzUwLjYzNzgyNTcsIC0xLjIzMTYwMzJdLCBbNTAuNjM3NzkwNSwgLTEuMjMxNjM0Nl0sIFs1MC42Mzc2MjMyLCAtMS4yMzE3OTddLCBbNTAuNjM3MDY4OSwgLTEuMjMyMTkzXSwgWzUwLjYzNzAwMSwgLTEuMjMyMjgzMl0sIFs1MC42MzY5MTA3LCAtMS4yMzI0MzA2XSwgWzUwLjYzNjY3ODIsIC0xLjIzMzEzMjldLCBbNTAuNjM2NjI4NywgLTEuMjMzMjkxOF0sIFs1MC42MzY1ODI4LCAtMS4yMzM0MjcyXSwgWzUwLjYzNjQ1MzQsIC0xLjIzMzY3NTNdLCBbNTAuNjM2MDYwOCwgLTEuMjM0MTkyOV0sIFs1MC42MzU5MjIyLCAtMS4yMzQzMzk1XSwgWzUwLjYzNTEzODQsIC0xLjIzNDYzNzldLCBbNTAuNjM0ODA3NCwgLTEuMjM0NzQ1Nl0sIFs1MC42MzQyODQ1LCAtMS4yMzQ5NDUxXSwgWzUwLjYzMzc0NTMsIC0xLjIzNTA4NjNdLCBbNTAuNjMzNjc5NiwgLTEuMjM1MTAzNV0sIFs1MC42MzMzNjc1LCAtMS4yMzUxOTA2XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiI0FBMTExMSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjQUExMTExIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9KS5hZGRUbyhtYXBfYzRiZGYxOTNhMzU3NGYzN2EyOTMwMWE5NjFkMGY4MTMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDc3MTEzN2JhM2MyNDFjMzhmYWM4ZTViOGU3ZGE4ZDYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzdkNWQ2ZmI3YjNjNGQ3NjkyZDUyY2MyNzgxMTU0ZTMgPSAkKCc8ZGl2IGlkPSJodG1sX2M3ZDVkNmZiN2IzYzRkNzY5MmQ1MmNjMjc4MTE1NGUzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5bIkJhdGhpbmdib3VybmUgTGFuZSIsICJMZXNzbGFuZCBMYW5lIl08L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzA3NzExMzdiYTNjMjQxYzM4ZmFjOGU1YjhlN2RhOGQ2LnNldENvbnRlbnQoaHRtbF9jN2Q1ZDZmYjdiM2M0ZDc2OTJkNTJjYzI3ODExNTRlMyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzA5NjY1ZTZkYzNiZTQ3YmI4MDUxMjQyNjVhY2U3YTAyLmJpbmRQb3B1cChwb3B1cF8wNzcxMTM3YmEzYzI0MWMzOGZhYzhlNWI4ZTdkYThkNik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8zYjRhN2ZmMWEwNjY0NTRiOTM0NGM1OWEzMDk0NjZmNCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42MzMzNjc1LCAtMS4yMzUxOTA2XSwgWzUwLjYzMzM4MTMsIC0xLjIzNTQ2OF0sIFs1MC42MzM0MTQ4LCAtMS4yMzU4ODk3XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiI0FBMTExMSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjQUExMTExIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9KS5hZGRUbyhtYXBfYzRiZGYxOTNhMzU3NGYzN2EyOTMwMWE5NjFkMGY4MTMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMWU5YWNiNjIzNmNlNGIzZmFlZjVjZDIyYTUzZDE3MGUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOWQyZDEzMDc2NThjNDZlN2EzOGY5MDMyZmFjMGM3MGIgPSAkKCc8ZGl2IGlkPSJodG1sXzlkMmQxMzA3NjU4YzQ2ZTdhMzhmOTAzMmZhYzBjNzBiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iU2hhbmtsaW4gUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzFlOWFjYjYyMzZjZTRiM2ZhZWY1Y2QyMmE1M2QxNzBlLnNldENvbnRlbnQoaHRtbF85ZDJkMTMwNzY1OGM0NmU3YTM4ZjkwMzJmYWMwYzcwYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzNiNGE3ZmYxYTA2NjQ1NGI5MzQ0YzU5YTMwOTQ2NmY0LmJpbmRQb3B1cChwb3B1cF8xZTlhY2I2MjM2Y2U0YjNmYWVmNWNkMjJhNTNkMTcwZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9lZGQ3YzkwZmQ3OWE0OTAyODk4MWJiNWRiZDFjZjQyZiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42MzM0MTQ4LCAtMS4yMzU4ODk3XSwgWzUwLjYzMzQ5NzgsIC0xLjIzNjU2MTldLCBbNTAuNjMzNjE3NywgLTEuMjM2OTU4OF0sIFs1MC42MzM2Nzg3LCAtMS4yMzcwNTc0XSwgWzUwLjYzMzg3OTQsIC0xLjIzNzM4MjFdLCBbNTAuNjMzOTUwMSwgLTEuMjM3NTc0Ml0sIFs1MC42MzQxMjIzLCAtMS4yMzgxMjI3XSwgWzUwLjYzNDE4NzQsIC0xLjIzODMzMDhdLCBbNTAuNjM0MjE0NiwgLTEuMjM4NTE0NF0sIFs1MC42MzQyMTk4LCAtMS4yMzg4NjY3XSwgWzUwLjYzNDIwMTYsIC0xLjIzOTIyODFdLCBbNTAuNjM0MTA1NSwgLTEuMjM5NTY2N10sIFs1MC42MzM5NzczLCAtMS4yMzk5OTc5XSwgWzUwLjYzMzc4NDksIC0xLjI0MDcyNzddLCBbNTAuNjMzNDIzNCwgLTEuMjQyNTE3NV0sIFs1MC42MzI5NzExLCAtMS4yNDQzNDE1XSwgWzUwLjYzMjY1NTIsIC0xLjI0NTIwNzVdLCBbNTAuNjMyNjEzOCwgLTEuMjQ1MzI0Ml0sIFs1MC42MzI1NTk0LCAtMS4yNDU2MzY2XSwgWzUwLjYzMjU1MTEsIC0xLjI0NTc2NF0sIFs1MC42MzI1MjQsIC0xLjI0NjgxMDldLCBbNTAuNjMyNTMxLCAtMS4yNDY5NDczXSwgWzUwLjYzMjU1MjIsIC0xLjI0NzEwODRdLCBbNTAuNjMyNjMyMywgLTEuMjQ3NTIwMV0sIFs1MC42MzI2NDA2LCAtMS4yNDc2MDU0XSwgWzUwLjYzMjY1MDMsIC0xLjI0NzcwNThdLCBbNTAuNjMyNjYwNSwgLTEuMjQ3OTA3OF0sIFs1MC42MzI2NTkzLCAtMS4yNDgwNTMyXSwgWzUwLjYzMjY1OSwgLTEuMjQ4MDk3XSwgWzUwLjYzMjY0OTYsIC0xLjI0ODMzNjddLCBbNTAuNjMyNjQyOSwgLTEuMjQ4NTA4M10sIFs1MC42MzI1OTE2LCAtMS4yNDkwNDMzXSwgWzUwLjYzMjUyMDYsIC0xLjI0OTUzNjFdLCBbNTAuNjMyMzExNSwgLTEuMjUwNjY5NF0sIFs1MC42MzIyOTI1LCAtMS4yNTA3OTc5XSwgWzUwLjYzMjI4NjEsIC0xLjI1MTA2NDRdLCBbNTAuNjMyMjkyLCAtMS4yNTEyMzkxXSwgWzUwLjYzMjMwOTksIC0xLjI1MTQ1MTJdLCBbNTAuNjMyMzE3MiwgLTEuMjUxNTM3Nl0sIFs1MC42MzIzMjM3LCAtMS4yNTE2MTRdLCBbNTAuNjMyMzMyNywgLTEuMjUxNjU4XSwgWzUwLjYzMjM5MSwgLTEuMjUxOTMxNF0sIFs1MC42MzI0MDc0LCAtMS4yNTE5OTc1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiI0FBMTExMSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjQUExMTExIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9KS5hZGRUbyhtYXBfYzRiZGYxOTNhMzU3NGYzN2EyOTMwMWE5NjFkMGY4MTMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDAzNzU2NmY3OTlhNDQ2OWFhYThlNWQ3ZGEwNzc3ZDggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmJhNDVlYmY0Y2EwNDA0MDkzY2NmNjMzODRmMjk0ZTYgPSAkKCc8ZGl2IGlkPSJodG1sXzJiYTQ1ZWJmNGNhMDQwNDA5M2NjZjYzMzg0ZjI5NGU2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iU2hhbmtsaW4gUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzAwMzc1NjZmNzk5YTQ0NjlhYWE4ZTVkN2RhMDc3N2Q4LnNldENvbnRlbnQoaHRtbF8yYmE0NWViZjRjYTA0MDQwOTNjY2Y2MzM4NGYyOTRlNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2VkZDdjOTBmZDc5YTQ5MDI4OTgxYmI1ZGJkMWNmNDJmLmJpbmRQb3B1cChwb3B1cF8wMDM3NTY2Zjc5OWE0NDY5YWFhOGU1ZDdkYTA3NzdkOCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9iNDQzZGY5NThhMmU0ZGZlODFlMjNkMWVmMmJlNmY3YSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42MzI0MDc0LCAtMS4yNTE5OTc1XSwgWzUwLjYzMjQ4MzksIC0xLjI1MjM2NDRdLCBbNTAuNjMyNzE0MiwgLTEuMjUzMzIyOF0sIFs1MC42MzI3NDcsIC0xLjI1MzQ4OTRdLCBbNTAuNjMyNzUzNywgLTEuMjUzNTIzNl0sIFs1MC42MzI4MTczLCAtMS4yNTM4NDddLCBbNTAuNjMyODMyMiwgLTEuMjUzOTE4OV0sIFs1MC42MzI4OTY1LCAtMS4yNTQyNDQ1XSwgWzUwLjYzMjkwNzUsIC0xLjI1NDMwMTNdLCBbNTAuNjMyOTMsIC0xLjI1NDM4OTRdLCBbNTAuNjMyOTYxNiwgLTEuMjU0NTI0Ml0sIFs1MC42MzI5ODU3LCAtMS4yNTQ1ODM2XSwgWzUwLjYzMzAyMDMsIC0xLjI1NDYzMTNdLCBbNTAuNjMzMDcxNiwgLTEuMjU0NjY3XSwgWzUwLjYzMzEwODksIC0xLjI1NDY4MDldLCBbNTAuNjMzMTQzMSwgLTEuMjU0NjgyM10sIFs1MC42MzMyMDk4LCAtMS4yNTQ2NzY5XSwgWzUwLjYzMzI1ODIsIC0xLjI1NDY3MzRdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjQUExMTExIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiNBQTExMTEiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0pLmFkZFRvKG1hcF9jNGJkZjE5M2EzNTc0ZjM3YTI5MzAxYTk2MWQwZjgxMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zMmExYmRjNjkzNzk0ZThiODBmMTMxOTM4NWI4YzIzZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jOTM0NjVhZTQwNDI0NzQ4YWVlYjdlMmI2ZjUzYjgxNSA9ICQoJzxkaXYgaWQ9Imh0bWxfYzkzNDY1YWU0MDQyNDc0OGFlZWI3ZTJiNmY1M2I4MTUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJIaWdoIFN0cmVldCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzMyYTFiZGM2OTM3OTRlOGI4MGYxMzE5Mzg1YjhjMjNkLnNldENvbnRlbnQoaHRtbF9jOTM0NjVhZTQwNDI0NzQ4YWVlYjdlMmI2ZjUzYjgxNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2I0NDNkZjk1OGEyZTRkZmU4MWUyM2QxZWYyYmU2ZjdhLmJpbmRQb3B1cChwb3B1cF8zMmExYmRjNjkzNzk0ZThiODBmMTMxOTM4NWI4YzIzZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgbWFwX2M0YmRmMTkzYTM1NzRmMzdhMjkzMDFhOTYxZDBmODEzLmZpdEJvdW5kcygKICAgICAgICAgICAgICAgICAgICBbWzUwLjYzMjI4NjEsIC0xLjI1NDY4MjNdLCBbNTAuNjY1ODMyMiwgLTEuMjA3MTE1Nl1dLAogICAgICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgCjwvc2NyaXB0Pg==\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x120d70400>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# plot the route with folium\n",
"ox.plot_route_folium(G, route, route_width=3, route_color='#AA1111',\n",
" tiles='openstreetmap', popup_attribute='name')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Searching for Roads Within a Paritucular Boundaried Area\n",
"\n",
"As well as search for roads in a particular area searched for by name, we can also pull back roads or paths that are within a particular boundary specified using a shapefile.\n",
"\n",
"For example, using parish boundary line data made available as Ordnance Survey BoundaryLine data and served via a datasette ([Trying out SpatiaLite support in datasette](https://blog.ouseful.info/2018/06/28/trying-out-spatialite-support-in-datasette/)), we can pull back the boundary from the parish I live in an use that to filter the OSM routes request.\n",
"\n",
"First, grab the boundary data. There is actually another parish with the same name as the one I live in, so provide an added filter on the query to limit the results to a particular county. (We could also write a query to pull back a shapefile based on an ONS geography code.\n",
"\n",
"*(Note to self - add in a database table that supports ONS Geography lookup codes, eg as per [ONS Register of Geographic Codes](https://github.com/psychemedia/parlihacks/blob/master/notebooks/ONS%20Register%20of%20Geographic%20Codes.ipynb).)*"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"import requests, json\n",
"\n",
"def get_geojson(region_type, region, county=None, code=None,\n",
" col='wgs84',json_url = \"http://localhost:8001/adminboundaries.json\"):\n",
" \n",
" q='SELECT AsGeoJSON({col}) FROM {table} WHERE name LIKE \"%{region}%\"'.format(col=col,table=region_type,region=region)\n",
" \n",
" if county is not None: q='{} AND FILE_NAME LIKE \"%{}%\"'.format(q, county)\n",
" if code is not None: q='{} AND CODE LIKE \"%{}%\"'.format(q, code)\n",
" \n",
" params = {'sql': q}\n",
" #for example: SELECT AsGeoJSON(wgs84) FROM district_borough_unitary_region WHERE name LIKE \"%wight%\" \n",
" r = requests.get(json_url, params=params)\n",
" results = r.json()\n",
" return json.loads(results['rows'][0][0])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Firing up the datasette server\n",
"\n",
"One way of starting the datasette server is to use a containerised version of it:"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"b61f0beb84433d45e551641424d410cda2ae45cc7aec86e1b853c31420a6f4ad\n"
]
}
],
"source": [
"%%bash\n",
"docker run -d -p 8003:8001 -v `pwd`:/mnt datasetteproject/datasette \\\n",
" datasette -p 8001 -h 0.0.0.0 /mnt/adminboundaries.db --load-extension=/usr/local/lib/mod_spatialite.so \\\n",
" --config sql_time_limit_ms:10000\n",
"#https://datasette.readthedocs.io/en/latest/installation.html\n",
"#Assuming an appropriate database is in the pwd (present working directory)\n",
"\n",
"#locally on OS/X\n",
"#datasette -p 8003 adminboundaries.db --load-extension=/usr/local/lib/mod_spatialite.dylib"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can pull back a geojson boundary from the datasette:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"gj=get_geojson('parish_region', 'newchurch', 'wight', json_url = \"http://localhost:8003/adminboundaries.json\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The `osmnx` package looks like it wants a `shapely` geometry to use as a filter when querying OpenStreetMap. That's easy enough to create, plus we get the added bonus of a quick preview of the geometry when using Jupyter notebooks."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"100.0\" height=\"100.0\" viewBox=\"-1.227081536609705 50.62782273444092 0.0567194040365131 0.05953011678946041\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,101.3151755856713)\"><g><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"0.001190602335789208\" opacity=\"0.6\" d=\"M -1.197026342464519,50.63660046829477 L -1.197095574548369,50.63635541740449 L -1.197205902386395,50.63610705335023 L -1.19724791129417,50.63596799147656 L -1.197306201975011,50.63561219326073 L -1.19737081340707,50.63530966169256 L -1.197402417315693,50.63502838985974 L -1.197406918030643,50.63476401314924 L -1.197448277564352,50.6345808038321 L -1.197510946578078,50.63413881762546 L -1.197666667443954,50.63362725686198 L -1.197737739461862,50.63343804855401 L -1.19776102181038,50.63331674845053 L -1.19776787398121,50.63316755491145 L -1.197787385341014,50.63309657510497 L -1.197862203261963,50.63294065698289 L -1.19787432106074,50.63289309123307 L -1.197887671928202,50.63269080910937 L -1.197903023573683,50.63253538075414 L -1.197894477822495,50.63245521744055 L -1.197896710545533,50.63232397289419 L -1.197909172649426,50.63217391888736 L -1.197920993936025,50.63206153026443 L -1.197930197256216,50.63201394444677 L -1.197937776901893,50.63173969932855 L -1.198657266524221,50.63174914327456 L -1.199076015833178,50.63173583871145 L -1.199697192776153,50.63154132758096 L -1.200649811406547,50.63131860915452 L -1.201329029106494,50.63120000676826 L -1.201491835760753,50.63118943470109 L -1.201610539787262,50.63119474305347 L -1.201805155321082,50.63130225263505 L -1.201900440548887,50.63127233773709 L -1.202059765192952,50.63130219785551 L -1.202169853804206,50.6313137399402 L -1.202265873536667,50.6313161952283 L -1.202386280895362,50.63130353363784 L -1.202711333150684,50.63123284535453 L -1.202957817463878,50.63112035297502 L -1.20302597752083,50.63110193919469 L -1.20322249128911,50.63110418174704 L -1.203267824923262,50.63109819835069 L -1.203326076789762,50.63107971666719 L -1.203404372484667,50.63104788633564 L -1.203442970301393,50.6310265731485 L -1.20295227043084,50.63069677706543 L -1.202568096028926,50.6303344432269 L -1.20227217007138,50.63002755358127 L -1.202912671842821,50.63010835393012 L -1.203493739003843,50.63019503789846 L -1.205133277908086,50.63048502277671 L -1.20558315750471,50.63055371982202 L -1.206037507194525,50.63060626284834 L -1.206705494312041,50.63065486407295 L -1.207151894828896,50.63067417405618 L -1.20755329259769,50.63068679318876 L -1.207910851539469,50.63069281974988 L -1.208210670135494,50.63069395779079 L -1.208438324485294,50.63068831172299 L -1.209280430252716,50.63064269233721 L -1.209897273990702,50.63061990411083 L -1.21028652756279,50.63059197469431 L -1.213082110275031,50.630323099258 L -1.214546513182832,50.63017114945292 L -1.214826812431594,50.63015415813554 L -1.215167601504507,50.63015195810397 L -1.215296197530013,50.63015821816255 L -1.21564775495493,50.63018845466448 L -1.216245988009207,50.63026080585005 L -1.217198696801474,50.6303634053832 L -1.217483576946474,50.63040757315705 L -1.217754488849784,50.63043645271513 L -1.218570110143236,50.63053901995625 L -1.218891650883738,50.63058702621366 L -1.219242633432396,50.6306523105559 L -1.220162820250001,50.63084016664726 L -1.221613429431093,50.63118439558239 L -1.221742923533369,50.63122122186229 L -1.221983302060935,50.63130643728837 L -1.22228942600228,50.6314344356672 L -1.222883461481009,50.63176304086876 L -1.223103641326439,50.63187868664006 L -1.22369543806619,50.63217400827183 L -1.223696836887508,50.63217401758814 L -1.224246490892725,50.6324519739602 L -1.2241559386023,50.63271218258302 L -1.224083558227552,50.63273237869184 L -1.224035191187112,50.63275273461903 L -1.223995187550016,50.63277494428458 L -1.223953222791071,50.63283130437399 L -1.223920678112575,50.63291739546598 L -1.223877741607432,50.6329548692318 L -1.223866884596856,50.63301242535928 L -1.223872828201955,50.63307629672522 L -1.22383748550133,50.63316236916033 L -1.22383431784092,50.63318482404927 L -1.223850480724912,50.63322988363832 L -1.223907244293035,50.63330856791738 L -1.223907007540225,50.63332295096908 L -1.223902442851015,50.63333820424346 L -1.223878029621833,50.63336231575051 L -1.223777010478947,50.6334012007989 L -1.223745515889394,50.63342346704215 L -1.223736798962393,50.63343599553979 L -1.223731914378733,50.63356272754162 L -1.223722901407912,50.6335932348508 L -1.22369536311782,50.63363719427332 L -1.223668936583455,50.63378356165853 L -1.223553735358263,50.63399685555995 L -1.223540423788709,50.63402643517996 L -1.223528988339264,50.63412615234979 L -1.223514292641705,50.63415482370683 L -1.22347391554675,50.63420669899495 L -1.22335445146005,50.63433185845607 L -1.223306563183347,50.63440795769466 L -1.223301879717666,50.63443040246478 L -1.223312772745611,50.63445564814364 L -1.223333604204046,50.63447916196443 L -1.223357557352169,50.63449011003358 L -1.223382911288899,50.63449387511799 L -1.223404172210044,50.63449131965357 L -1.223549292335691,50.63443654600259 L -1.22357777518461,50.63451225501434 L -1.223579786877381,50.63456000738939 L -1.223569078633934,50.63460848417137 L -1.223547062633677,50.63465688562856 L -1.223480414981437,50.63475353786999 L -1.223441658329044,50.63479193835229 L -1.223402947920367,50.63482044970014 L -1.223283149474429,50.63488087604071 L -1.223177929869713,50.63491973257782 L -1.223395699371502,50.63500569335073 L -1.223168164280925,50.63525060375641 L -1.223162065013553,50.63528113043328 L -1.223179995244912,50.63531091821509 L -1.223243070133798,50.63533920876173 L -1.22328910633845,50.63538266940118 L -1.223295745485297,50.63540429057567 L -1.223289749949069,50.63542852467679 L -1.223239196322335,50.63548941235752 L -1.223222936256921,50.63553515498769 L -1.223228383828942,50.63554418167964 L -1.223304193651482,50.63557795128934 L -1.223333580137464,50.63559882499227 L -1.223359637581765,50.6356448495967 L -1.223349415653729,50.63567085361794 L -1.223280681083213,50.6357171456486 L -1.22326333307219,50.63574400121611 L -1.223272960741282,50.6357611471104 L -1.223327241379998,50.63581374296062 L -1.223322409681715,50.63584517712772 L -1.223295093312043,50.63587556243399 L -1.2232637449365,50.63588883912717 L -1.223141561962521,50.63592398643515 L -1.222996540479906,50.63597246696075 L -1.222755836794883,50.63607515070893 L -1.222717330416566,50.6360982689532 L -1.222666997657949,50.63614567227166 L -1.222649515734907,50.63618061820371 L -1.222643210490334,50.63621653770913 L -1.222654088744465,50.63624268238213 L -1.222730646085883,50.63631601505383 L -1.222766580899226,50.63637109603787 L -1.222747078049432,50.63643668573196 L -1.22274821022258,50.63645287598016 L -1.222797421320257,50.63655839165242 L -1.222816202424952,50.63662144959197 L -1.222816756661241,50.63667269849835 L -1.222803367776663,50.63671396501202 L -1.222780159012791,50.63674266940884 L -1.222741533528468,50.6367729791757 L -1.222635792436091,50.63683610579035 L -1.22260713537864,50.63686288583635 L -1.222581068671199,50.63690226969415 L -1.222561818836675,50.63695248747713 L -1.222556361845859,50.63702886937461 L -1.222564774429324,50.63711262598971 L -1.222604046764469,50.63721987352086 L -1.222599360658631,50.63724951054541 L -1.222573401478398,50.637367201387 L -1.222537845548897,50.6374658584967 L -1.222534011834736,50.63752157332425 L -1.222551334673861,50.63758821772437 L -1.222547454468129,50.63765382166625 L -1.222501374092909,50.63770484942125 L -1.222454956111678,50.63776927058147 L -1.222448188812718,50.63784024949172 L -1.222386235483357,50.63790636507046 L -1.222316421895891,50.63794006278507 L -1.222245224047002,50.63797285218307 L -1.222247679433214,50.63799363635798 L -1.222282692580544,50.63801274978038 L -1.222321826536354,50.63804357818646 L -1.222344893540661,50.63810127054849 L -1.222301611983668,50.63815222699024 L -1.222234329001203,50.63820212423323 L -1.222203873483064,50.638245973909 L -1.222170158603078,50.63831776192658 L -1.222140654868322,50.63839578140149 L -1.222098252625266,50.63847820998302 L -1.222043721133894,50.6385254950957 L -1.221966097414728,50.63860139528535 L -1.221908884841677,50.63864156003488 L -1.221922309018032,50.63868300541429 L -1.221982528151045,50.63872206601884 L -1.221996995358254,50.63878509527459 L -1.221971880973395,50.63885145649759 L -1.221963489712662,50.63893600001029 L -1.221938036048566,50.63901584453698 L -1.221952234095763,50.63910224699827 L -1.221991281818709,50.63913127685572 L -1.222033066201161,50.63917111342573 L -1.22200003434849,50.63920146027169 L -1.221852977815564,50.63928777530674 L -1.22184568799613,50.63929851510378 L -1.221844021851996,50.63931468667284 L -1.221850955528159,50.6393255214206 L -1.221941875748533,50.63938366679111 L -1.221962693833965,50.63940807978324 L -1.221976266639654,50.63944053575855 L -1.221977307475661,50.63946931193432 L -1.221962475597138,50.6395060735119 L -1.221964127599518,50.63958259270486 L -1.221943447264137,50.63963459889535 L -1.221918362014603,50.63969916221613 L -1.221908036639742,50.63972426636779 L -1.221848150995683,50.63983444832734 L -1.221815371272663,50.63994130496423 L -1.22179973771432,50.64002660923613 L -1.221791941035016,50.64007510525409 L -1.221781425074,50.64019649512274 L -1.221773348502048,50.64025487869068 L -1.221746986272514,50.64039675073469 L -1.221738627619521,50.64047221414191 L -1.221724849287094,50.64053694280747 L -1.221692324752189,50.64062123524293 L -1.221642478987378,50.6407305850802 L -1.221617971667318,50.64076008969529 L -1.221590386277058,50.64079946317084 L -1.221601308026102,50.64082300100044 L -1.221627705863721,50.64085554264892 L -1.221646783933032,50.64090062194986 L -1.221662798847506,50.64095467117602 L -1.221632650560006,50.64098683524216 L -1.221606478975495,50.64102531912263 L -1.221617001458344,50.64107303841026 L -1.221639548000642,50.64116228364471 L -1.221654117208045,50.64122621263555 L -1.221610950759176,50.64126997726512 L -1.221551353614235,50.64128486293388 L -1.221504452184758,50.64129354009411 L -1.221463424829854,50.64129955935322 L -1.221378635713322,50.64129359880072 L -1.221264633519934,50.64126316900083 L -1.221219339086245,50.64125927024785 L -1.221174057277524,50.64126166482871 L -1.221137212326628,50.64126861095508 L -1.221118538444073,50.64128376983007 L -1.221106724067544,50.64131425818534 L -1.221112885424979,50.641371837796 L -1.221089271458764,50.64143191556396 L -1.221077173288426,50.64147957364749 L -1.221029972196256,50.64151342168214 L -1.220973843847239,50.64157238310414 L -1.220949917586021,50.64165133855557 L -1.220907911456306,50.64170949528804 L -1.220853403234364,50.64175507181158 L -1.220752930406238,50.64184430401163 L -1.220740996753323,50.64188198383503 L -1.220745300203503,50.64196022891582 L -1.220727695754962,50.64200236601826 L -1.220696179076632,50.64202553031079 L -1.220611983701315,50.64206821113213 L -1.220597682726318,50.64207980300808 L -1.220475767371181,50.64226688674133 L -1.220321706787363,50.64260668170482 L -1.220185963174886,50.64286119038202 L -1.220025322502671,50.64325308510746 L -1.22002395238899,50.64333587732979 L -1.220081008928777,50.64347471091911 L -1.220099789046876,50.64353776921786 L -1.220112036375057,50.64365032079135 L -1.220090636888584,50.64400628649578 L -1.220066797954176,50.64416435764669 L -1.220032435694043,50.64470462921071 L -1.219947134733046,50.64549718942296 L -1.219961658623877,50.64581743387708 L -1.220061858079304,50.64609060258184 L -1.220311732699735,50.64662828024093 L -1.220334503650119,50.64678855109518 L -1.220349652749399,50.64681742161045 L -1.220401190297595,50.64686721334268 L -1.220487436227669,50.64703950622416 L -1.220688812320744,50.64717489909963 L -1.2214042737839,50.64778850790146 L -1.221501595023037,50.64789074906979 L -1.22175052792069,50.64806331818131 L -1.221903841297682,50.64820009620751 L -1.221963953756938,50.64824634831665 L -1.222126168683253,50.64835261819481 L -1.222312978681344,50.64843846397754 L -1.222431958267959,50.64850758446677 L -1.222530784302,50.6486107338292 L -1.222625682335953,50.64868337955825 L -1.222696152764421,50.64870272924612 L -1.222765314906676,50.64870948365113 L -1.223282578036016,50.64898983462735 L -1.2234167087493,50.64909510642583 L -1.223598590749439,50.64921139464522 L -1.223895885018129,50.64928799434368 L -1.22407167374817,50.64934948990912 L -1.224270065641289,50.64949735324661 L -1.224293895196927,50.64950919929269 L -1.224494856559042,50.64958605543542 L -1.224583398721137,50.64962710107569 L -1.224713635354785,50.64969998013561 L -1.224876717469355,50.64976130006635 L -1.22483724192364,50.6500128577573 L -1.224760459438365,50.65046914768436 L -1.224741250589088,50.65051666888159 L -1.224712246126811,50.65056412492987 L -1.224460249310963,50.650831350589 L -1.224355001801027,50.65095480731285 L -1.224256663332448,50.65108361423153 L -1.224176896115022,50.65120364419878 L -1.224115732901219,50.65131291959053 L -1.224086433057834,50.65137116195105 L -1.22398149486472,50.65164565851613 L -1.223940764368488,50.65171101703773 L -1.223896131687512,50.6517583688372 L -1.223790295697016,50.65183237411783 L -1.223568071157133,50.65192709115124 L -1.22336975040306,50.65202915930145 L -1.223368336175129,50.6520300489163 L -1.221163506751469,50.65311252358183 L -1.220711102559553,50.65335134103542 L -1.219908294318486,50.65382443885181 L -1.217470034900656,50.65524340893573 L -1.217979201308387,50.65567665474733 L -1.218445643609028,50.65604218416496 L -1.218625184630097,50.65621609249108 L -1.21873915711436,50.65634182233412 L -1.218809056942129,50.65647354999507 L -1.21894178283892,50.6566642257838 L -1.219230153719041,50.65701417422182 L -1.219456883505702,50.65733943526104 L -1.219506870615436,50.65739191400355 L -1.219720298289366,50.65757683587298 L -1.219780020942565,50.65764016808343 L -1.219927670615891,50.65786690399934 L -1.22025648350061,50.65826207217354 L -1.220452339146421,50.65848013944592 L -1.220813808094061,50.6588620388114 L -1.221330979039497,50.65933038543837 L -1.221236571576734,50.65938918108069 L -1.221420422883891,50.65956482191056 L -1.221480252104082,50.65962905296484 L -1.221664255686814,50.65988030328458 L -1.221755068612114,50.6600320373683 L -1.221935481782818,50.66050082978834 L -1.221975293724548,50.66066121364644 L -1.222014233909122,50.66095914404305 L -1.222086486619864,50.66112594766976 L -1.222152901459481,50.66121539528015 L -1.222291430959907,50.66139531734262 L -1.222307198904137,50.66147184050382 L -1.222284767986802,50.66154451270977 L -1.222300195202565,50.66163460902549 L -1.222379575296563,50.66171605166816 L -1.22252206541397,50.66182578522311 L -1.222572850541342,50.66191521825098 L -1.222630676288207,50.6620162957515 L -1.222697123072781,50.66210394517643 L -1.22275524803036,50.66217985162857 L -1.222753911463262,50.66226084576191 L -1.222719063451096,50.66231545456094 L -1.222684052164923,50.66237995164421 L -1.222657155166939,50.66246877676079 L -1.222693500970192,50.66257789221445 L -1.222774069684892,50.66284193646561 L -1.222851694980459,50.66310766919282 L -1.222916924005828,50.66327631338386 L -1.223034423353362,50.663352615412 L -1.22312517709426,50.66360054463031 L -1.223284641820034,50.66388399389825 L -1.223366477495739,50.66407153826713 L -1.223505258988597,50.66422988362052 L -1.223594358385982,50.66440857575114 L -1.223675532292664,50.66445946223009 L -1.223735415198235,50.66452099530699 L -1.223733126408176,50.66457492213754 L -1.223679313835247,50.66466177017257 L -1.223637147379048,50.66481351611987 L -1.22360689606096,50.66485107411758 L -1.223590390689309,50.66490400723447 L -1.223724985678374,50.66540854256192 L -1.223738809179478,50.6655183167937 L -1.223761698389717,50.66558769483606 L -1.22380699430247,50.66567079746774 L -1.223912650669881,50.66578657722664 L -1.223933392420372,50.66581638342746 L -1.223978438515557,50.66591467800456 L -1.223995223854458,50.66601467243565 L -1.223953864364534,50.66637230267217 L -1.223766725154983,50.66691065718436 L -1.223754224262552,50.66698249668503 L -1.22374190811487,50.66712805821063 L -1.223743624233266,50.66720089139865 L -1.22380295813549,50.66763569968799 L -1.223799804655153,50.66765006323797 L -1.223747342160506,50.66774680962878 L -1.223649365112744,50.66785143413979 L -1.223609242366184,50.66787903701655 L -1.223572184211403,50.66789766994816 L -1.223529498773183,50.66791087118731 L -1.223454221554556,50.66792655244005 L -1.223277212654472,50.66801977190836 L -1.223239976321262,50.66804919195524 L -1.223229882516826,50.66805991311438 L -1.22310569099984,50.66804200398726 L -1.222978583149507,50.66802407529146 L -1.222021409316464,50.66797543760755 L -1.220893966379199,50.66795801959227 L -1.220756881939837,50.66795081021131 L -1.220571856306354,50.66792889563532 L -1.220505555335821,50.66791676493585 L -1.220367371262167,50.66788437478878 L -1.220173055493117,50.66782463802099 L -1.219569816744626,50.66768026236788 L -1.219278946041612,50.66764594973196 L -1.219114974844641,50.66763496223402 L -1.218969301200794,50.66763218838985 L -1.218771144606124,50.66763535594282 L -1.218615376225585,50.66764330242492 L -1.218484964235859,50.66765591384055 L -1.21830626600911,50.66768168689024 L -1.218054984199161,50.66772944873897 L -1.217332162044893,50.66788022148051 L -1.216893450028187,50.66797347223447 L -1.216498707052439,50.66805353131313 L -1.216123673271633,50.66814100374841 L -1.215709107694101,50.66822722011949 L -1.215226154659345,50.6683354505734 L -1.214913877747851,50.66839538155971 L -1.214480304451596,50.668515718777 L -1.214260987135716,50.66851424092641 L -1.214085323252517,50.66852564341309 L -1.213944916683617,50.6685426775534 L -1.213842758910731,50.66856086847466 L -1.213750715556493,50.66856024779544 L -1.213575111438115,50.66856805377944 L -1.213424845205024,50.6685886169248 L -1.213346823876495,50.66860067700624 L -1.213253695955465,50.66858116889614 L -1.213172706585673,50.66851948801779 L -1.213085760832438,50.66847215142946 L -1.2129983945869,50.66844998489901 L -1.2128925363743,50.66843128960059 L -1.212784466845164,50.66846112713053 L -1.212721777157834,50.6684912709995 L -1.2126815873767,50.66852246581103 L -1.212646873303913,50.66856808213697 L -1.212651913183398,50.66860857271775 L -1.212675268444908,50.66864918698238 L -1.212760949460862,50.66868842402702 L -1.212876698628724,50.66878549210807 L -1.212930030157608,50.66907093591965 L -1.213097876904071,50.66918534720471 L -1.213176337848479,50.6692308284464 L -1.213197059252009,50.66926153544913 L -1.213288493043777,50.66946632311642 L -1.213587575092741,50.66960319595885 L -1.213660377433648,50.66965223483755 L -1.21371912983618,50.66977409058645 L -1.213753604186999,50.66983365932596 L -1.21389632629176,50.67001361939298 L -1.213891260253118,50.67014933937955 L -1.213985194634477,50.67019762149391 L -1.214014523372091,50.67022299216717 L -1.214051756681578,50.67027808424141 L -1.214097641208846,50.67041603565093 L -1.214269395481525,50.67063934455924 L -1.214533309019205,50.67084969869477 L -1.21476723411077,50.67107432470047 L -1.215011359479987,50.67128912952766 L -1.215184725998414,50.67141616137217 L -1.215373228648268,50.67148216051863 L -1.215731326072702,50.6715655727876 L -1.216117779164367,50.67164189242529 L -1.216539119667167,50.67174631525906 L -1.216718019991368,50.67180056025706 L -1.216906526352474,50.671866556936 L -1.217060767831834,50.67195129282883 L -1.217204691144076,50.67206014324472 L -1.217285285498588,50.67215328478357 L -1.217359564266454,50.67228243511767 L -1.217356403893937,50.67238130759688 L -1.217289341974632,50.6727585414092 L -1.217296542220651,50.67283779459757 L -1.217436767748342,50.6730850710341 L -1.217538501329407,50.67334566437984 L -1.217644472315719,50.67395520089729 L -1.217590975734332,50.67461850827959 L -1.217585566118816,50.67494401189814 L -1.217615832239941,50.67584711393777 L -1.21770678178283,50.67625147991197 L -1.217665329407162,50.67636546887241 L -1.217593181283843,50.67661320774618 L -1.217553524683154,50.67687186310323 L -1.217548163553605,50.67711016073725 L -1.21760273954159,50.67791273391725 L -1.217595690125712,50.67825261087438 L -1.217516129754201,50.67860908283732 L -1.217468668819375,50.67882462204745 L -1.217416703272362,50.67914262070762 L -1.21741640253747,50.67942041973662 L -1.21744541399802,50.67988649307062 L -1.217443097155843,50.68027854554766 L -1.217457846630276,50.68066891447318 L -1.217468655777631,50.68069964401799 L -1.217496383400702,50.68073758945792 L -1.217562014214571,50.68079107279304 L -1.217763394735234,50.68110987225756 L -1.21776535866778,50.68116023123725 L -1.217754554540187,50.68129771068269 L -1.217691179809079,50.68136120668818 L -1.217584386878471,50.68148815270275 L -1.217478524288735,50.6817275737835 L -1.217432191140343,50.68195930301878 L -1.217417289548532,50.68209046169209 L -1.217400490976172,50.68232868234711 L -1.217398847891428,50.68260296599194 L -1.217708695284305,50.6826104393916 L -1.21774477196807,50.68256743798884 L -1.218596706072733,50.6824913384109 L -1.219032404136515,50.68242593098986 L -1.219303305755468,50.6823890867311 L -1.219298534077328,50.68259232590605 L -1.219378106729934,50.6827483911757 L -1.219447481290044,50.6828297684721 L -1.219223642511137,50.68284355338549 L -1.218880594210759,50.68287451998043 L -1.217691741500182,50.68294935060222 L -1.216946710270373,50.68297581575803 L -1.216324787497519,50.68301029587996 L -1.215063224502194,50.68302878111079 L -1.213848710288404,50.68303228636444 L -1.212305487881645,50.68305333756676 L -1.208700178111487,50.68305949346442 L -1.207103066458574,50.68308550425971 L -1.205288317865367,50.68308933229523 L -1.204591304361399,50.68312602501369 L -1.204296064489817,50.68317255837941 L -1.204110009230311,50.6832153411533 L -1.203920691503053,50.68327158684382 L -1.203738441093432,50.68333776984697 L -1.203377712198771,50.68349542358188 L -1.202425529995701,50.68388547759561 L -1.202315682785257,50.68393507198791 L -1.202253031879556,50.68395442208343 L -1.201815615453772,50.68404321982958 L -1.200695335998886,50.68424142413258 L -1.199663927641757,50.68438098147158 L -1.198080931491915,50.68456879148595 L -1.196274567739113,50.6847479382289 L -1.194628514846005,50.68490200253219 L -1.192231929020403,50.68514803209003 L -1.191901927393592,50.68409091033969 L -1.19071846110034,50.68418069696377 L -1.189891421559194,50.6842028238992 L -1.189390544270438,50.68418675641827 L -1.189078030570208,50.68417109791106 L -1.188765415886696,50.68415453882982 L -1.188266521744726,50.68411150932296 L -1.18794726275548,50.68407422403001 L -1.187756758951512,50.68404233000879 L -1.186721325705058,50.68375092818899 L -1.186517325478637,50.68368297667139 L -1.186390718225241,50.68363444454689 L -1.185689553240848,50.683336375138 L -1.185222258146865,50.68310017118238 L -1.185059175579494,50.6830352001116 L -1.184725435625533,50.68293837864778 L -1.18436461482864,50.68284864896165 L -1.182888943406224,50.68264862096263 L -1.182004681670505,50.68253984110263 L -1.181625729709367,50.68252010033069 L -1.181304007516414,50.68245760656476 L -1.180973696674743,50.68240583998245 L -1.180826564180095,50.68240390735287 L -1.180580063161407,50.68241835788854 L -1.180655420146443,50.68207177055892 L -1.18022732421024,50.68210652093605 L -1.180008148990871,50.68209329233207 L -1.179865500350926,50.6820752074132 L -1.179683497344493,50.6820451580145 L -1.17955932611089,50.6820182123772 L -1.179455142017131,50.68198951929458 L -1.17920329612639,50.68190233848751 L -1.179038966938146,50.68182925887153 L -1.178285082918928,50.68139322127201 L -1.177058706452987,50.68077574621545 L -1.176208709707897,50.68033892671952 L -1.17567864768787,50.68005279383686 L -1.174708317351404,50.67969162029835 L -1.172721549957982,50.67902556085739 L -1.173469793711301,50.67784378224678 L -1.173962976243138,50.67667826251748 L -1.174398602655647,50.67556618517641 L -1.17451661760159,50.67529092715441 L -1.174603169457454,50.67487339873635 L -1.174433300240743,50.67487848929532 L -1.174334513074854,50.67486250616544 L -1.173514414124841,50.67457790484084 L -1.173290616682807,50.67450439538158 L -1.173065504976299,50.67443267423885 L -1.172566951713542,50.674290595829 L -1.172859909357992,50.67332324480275 L -1.173087501983197,50.67269535463426 L -1.173132942567124,50.67268578752116 L -1.173174372550673,50.67266540352326 L -1.174169275367024,50.67153032017878 L -1.174581566139884,50.67110071378728 L -1.174784591284046,50.6709006770905 L -1.17522488904683,50.67049014638251 L -1.175500194462051,50.67027983130803 L -1.175736497968886,50.67011787768174 L -1.175868518353057,50.67001443292668 L -1.17626265332528,50.66997406458021 L -1.176737855896255,50.66990819533577 L -1.176925965044018,50.66983310544077 L -1.176895994091308,50.66960534791261 L -1.176823889173483,50.66943851722096 L -1.176713230792177,50.66945481753773 L -1.176609955788341,50.66945588628607 L -1.175899068355785,50.66932221152503 L -1.175820297423982,50.66929648170275 L -1.175775490057945,50.66927009290373 L -1.175615678168655,50.66910174232491 L -1.175564135117879,50.66897362485725 L -1.175227273031436,50.6685755765719 L -1.17496816672721,50.66810156957435 L -1.174968704826165,50.66774456615763 L -1.174953376050414,50.66756734756699 L -1.175107661319643,50.66740472481649 L -1.175550958118631,50.66706074261285 L -1.175458903831138,50.66698097642046 L -1.175328200560444,50.66692970593423 L -1.175094341632174,50.66679310615536 L -1.175073994323677,50.6666626019292 L -1.175706068849842,50.6666041400586 L -1.176336507749037,50.66655905884693 L -1.176472832025961,50.66653574790509 L -1.176545284594137,50.66651558183417 L -1.176605217266416,50.66649083211504 L -1.17666655877977,50.66645890002471 L -1.177599629412483,50.66593936969496 L -1.178163554446337,50.66565385662819 L -1.178037677015756,50.66548655759979 L -1.177813330300112,50.66528619872916 L -1.177602351838416,50.66546280975919 L -1.177208433109241,50.6652459698006 L -1.176987368666126,50.66510505879261 L -1.17691858219018,50.66499569987181 L -1.176917752495142,50.66471609367712 L -1.176504624563623,50.66471767144721 L -1.176353215804233,50.66447646921344 L -1.17609400761791,50.66440900799013 L -1.176149277297099,50.66432390019504 L -1.176249599235412,50.6641708738331 L -1.176301431794549,50.66411549978914 L -1.176384495495995,50.66406205453116 L -1.176632535950843,50.66395412410947 L -1.17673705598301,50.6638811412315 L -1.17697386524922,50.66369482468371 L -1.177148988623953,50.66346680650392 L -1.17743198734784,50.6632205795632 L -1.177682744589491,50.66296333607994 L -1.177913553177026,50.66270595138507 L -1.178245173585195,50.66251409741514 L -1.178567097799715,50.6623094977645 L -1.178964667067758,50.66214858374848 L -1.179035968146442,50.66195309584883 L -1.179245517016933,50.66178366439699 L -1.179265340329953,50.66170378967734 L -1.179301606479786,50.66165100181218 L -1.17943544896176,50.66152149369918 L -1.179505703907918,50.66146624788593 L -1.179676081606059,50.66134877400536 L -1.179913718320795,50.66119392357286 L -1.180015662535132,50.66110743407315 L -1.180084970315159,50.66102610917783 L -1.180198527919137,50.66076160198004 L -1.180219529783705,50.66069432189377 L -1.180241417793242,50.66056941976535 L -1.180230730943821,50.6603724555208 L -1.180204962703333,50.66023103560836 L -1.180161859757907,50.66010037213159 L -1.180113010720046,50.65998486195065 L -1.180043128979229,50.65985131297878 L -1.179883820090683,50.65965501143 L -1.179663409217444,50.65939723509088 L -1.179410539747803,50.65913464476067 L -1.179313147961661,50.65904036941569 L -1.179275361993675,50.65901313228982 L -1.178841379879297,50.65874845637976 L -1.178633765218275,50.65864711075642 L -1.178431441557053,50.65857016595887 L -1.178262502838567,50.658518629181 L -1.177598102552825,50.65833045055308 L -1.177375797592267,50.65826235332657 L -1.177108610426372,50.65816606871188 L -1.176881300443996,50.65805738861709 L -1.176704863376124,50.65795455148701 L -1.176514960038686,50.65789477276565 L -1.176329491659418,50.65782153950464 L -1.176014007325258,50.65765919146657 L -1.175890994052025,50.6575765095097 L -1.175847880368433,50.6575339499564 L -1.17581324274225,50.65748695512315 L -1.175780657706846,50.65740931760784 L -1.175776380676929,50.65733376820671 L -1.175810634585823,50.65723601527791 L -1.175811501390916,50.6571064700777 L -1.175831321921198,50.65702030258659 L -1.175880381291433,50.65664296366527 L -1.175908690391147,50.6565649475028 L -1.175939117301589,50.65651922175892 L -1.176038542514916,50.65641653519028 L -1.176080695791439,50.65635390047553 L -1.176115797607287,50.65628761975943 L -1.176203385071521,50.65588798709624 L -1.176210137208015,50.65582869831213 L -1.176208179460652,50.6556138144257 L -1.176258515728629,50.65540999861001 L -1.176281165433428,50.65516193427875 L -1.176311894035387,50.65502549763027 L -1.176323678897002,50.65491850547391 L -1.176328662449388,50.6547935744034 L -1.176321720620453,50.65470362155367 L -1.176299536765878,50.65459818745542 L -1.176271542638254,50.65449819642746 L -1.176256629137735,50.65446392760066 L -1.176210829036258,50.65441505590417 L -1.175946576503934,50.65423239168242 L -1.175930028007674,50.65421159682573 L -1.17592187627859,50.65419086132419 L -1.175947645613161,50.65409125025447 L -1.175943997563781,50.65405975813216 L -1.175927662704054,50.6540200849835 L -1.175905590117368,50.65398837271071 L -1.175830304106163,50.65392490780212 L -1.175694856554465,50.65382685400421 L -1.175578300986222,50.65369566923859 L -1.175531419080136,50.65362871894654 L -1.175501760262905,50.65354399958874 L -1.175452134603213,50.65346723033977 L -1.175409843162218,50.6533779264114 L -1.175342161911623,50.65328655487861 L -1.175324459859282,50.65324507389022 L -1.175318013426643,50.65321356194618 L -1.175320183860756,50.65316952442384 L -1.175336591053824,50.65311839530841 L -1.175352674274794,50.65309243697133 L -1.17548358749979,50.65296291251917 L -1.175519882489966,50.65290832788596 L -1.175533701535569,50.65285178620627 L -1.175511058205576,50.65268611309892 L -1.175512961005587,50.65265735732897 L -1.175541740145579,50.6525523733801 L -1.175598724797236,50.65244848793167 L -1.175744240231635,50.65229748952126 L -1.175871547871751,50.65221387999294 L -1.175903250554107,50.65218173873056 L -1.175948656463432,50.65209296500244 L -1.175958741796778,50.65208314687182 L -1.176100417117663,50.65199154730884 L -1.176211065461156,50.65189343505007 L -1.176463256333993,50.65170453087704 L -1.176626592065527,50.65150789618916 L -1.176685399483643,50.65145967355738 L -1.176845631279137,50.65135381952659 L -1.176895914840071,50.65131281881056 L -1.176973883235855,50.65122256641739 L -1.177018438320039,50.65118233433855 L -1.177151454760578,50.65109876371115 L -1.177211690319866,50.65104884272036 L -1.177318434246743,50.65093362011429 L -1.177419500277704,50.65097658812978 L -1.178130244811583,50.65150403249722 L -1.178660470191404,50.65127491855923 L -1.178720695651975,50.65123218902947 L -1.178859757509083,50.65104248260799 L -1.179064248738107,50.65083255892107 L -1.179058153362191,50.65077407849332 L -1.179028277626034,50.65070823828386 L -1.178958715303841,50.65063762336014 L -1.178797258972768,50.65048625674103 L -1.178879818982153,50.65037985272312 L -1.178898863350995,50.65033773205477 L -1.178880090670318,50.65003633198942 L -1.178893568885456,50.64999237403506 L -1.178936688934376,50.64995401909385 L -1.179057950281147,50.64989544666997 L -1.179103759144543,50.64986340387292 L -1.179135489350996,50.64982946384362 L -1.179144330802267,50.64981064629066 L -1.179157573809524,50.64978017222829 L -1.179160648713067,50.64968399674405 L -1.179161558530619,50.64963176900397 L -1.179324918885568,50.64959336148854 L -1.179336355331996,50.64958624969226 L -1.179375410556035,50.64953348135253 L -1.179384502337388,50.64950028092412 L -1.179381353274739,50.649440023164 L -1.179583208687414,50.64922019054967 L -1.179636013091139,50.64918819677566 L -1.179699916497842,50.64917516089386 L -1.179725657355527,50.64916365452335 L -1.179764258005767,50.64913695497558 L -1.179828154534829,50.64904390452862 L -1.179888511346904,50.6489867007886 L -1.180034836878851,50.64886815798598 L -1.180931326980365,50.64839788004015 L -1.18142199952814,50.64816029435427 L -1.181659353227053,50.64801083242736 L -1.18269425378351,50.6473849898419 L -1.183036062848985,50.64716981845671 L -1.1836704497627,50.64655824129103 L -1.183863745201202,50.64633924032161 L -1.184383832752816,50.64578799358681 L -1.184845336109994,50.64527229641007 L -1.18487687249118,50.64524914192114 L -1.185059615080516,50.64515422245169 L -1.185227587885943,50.64509066582948 L -1.185334711019991,50.64502578467983 L -1.185498719423866,50.64502962789354 L -1.185620487693945,50.64502148827418 L -1.18568012411893,50.6450120154661 L -1.185788063370579,50.64498759636094 L -1.185880036612062,50.64498284450937 L -1.185970331161325,50.64499426356595 L -1.186085834942314,50.6450247383939 L -1.18613941639898,50.64503500193269 L -1.186224044317632,50.64504368411141 L -1.186277843122955,50.64504136255691 L -1.186318994690518,50.64503535654066 L -1.186361654074905,50.64502306776092 L -1.18640865067424,50.64500271788583 L -1.186432918385114,50.64498850263539 L -1.186533355578121,50.64490550303818 L -1.186563398607635,50.6448877319069 L -1.186671631882863,50.64484623229385 L -1.186717291038726,50.64482227680636 L -1.186830310976115,50.64474664695703 L -1.186892931291141,50.64472640587546 L -1.186904396431705,50.64471749545779 L -1.186922109656282,50.64467086897878 L -1.186942305120096,50.64464934300103 L -1.187033824313099,50.64458974568869 L -1.18705375453664,50.64458359141023 L -1.187125688130084,50.64459128536611 L -1.187137192269265,50.64458687039293 L -1.187174850903958,50.6445331906458 L -1.187176199728529,50.64445498364907 L -1.187212707087323,50.64438691123516 L -1.18726428432237,50.6444322228095 L -1.187317958375598,50.64443709221929 L -1.187342055015302,50.64443276501693 L -1.187451933709279,50.64437689152513 L -1.187508824490131,50.64435750921369 L -1.187552727159247,50.6443542190555 L -1.187610629658207,50.64435731972353 L -1.187761462048155,50.64438803910295 L -1.187808023648057,50.64439285872765 L -1.187844813873909,50.64438951890293 L -1.187860561883855,50.6443824363091 L -1.187861663263482,50.64431852230279 L -1.187984358606146,50.64425644433014 L -1.188000144831933,50.64424037159256 L -1.18800907460127,50.64421615974018 L -1.18800829494198,50.64418019274469 L -1.188001678126025,50.6441513774011 L -1.187965863869784,50.64409808460892 L -1.187970355637925,50.64408103415591 L -1.187983460081432,50.64406494273848 L -1.188106496834723,50.64398299824969 L -1.188085162429608,50.64390822940431 L -1.188207438346131,50.64387042233135 L -1.188254442778582,50.64376825920309 L -1.188295956332675,50.64373438479696 L -1.188335894677538,50.64371749124812 L -1.188361405489948,50.64371227464324 L -1.18844361290026,50.64370565469682 L -1.188471952954816,50.6436986596869 L -1.188566135633768,50.64365346433962 L -1.188607424988184,50.64363936712374 L -1.188652772490534,50.64363338949192 L -1.188744634510873,50.6436349278848 L -1.188731810723376,50.64356021838507 L -1.188740817351086,50.64353151181396 L -1.188764086749714,50.64349391411111 L -1.188798588500633,50.64346088976686 L -1.188905750980708,50.64339321858809 L -1.18894313649785,50.64336201234497 L -1.189005212830406,50.64328512687485 L -1.18902529692419,50.64326998293808 L -1.189172331286028,50.64318919321734 L -1.189257583360946,50.64316820924926 L -1.189303347814356,50.6431379602061 L -1.189329308148507,50.64310658447477 L -1.189348565003611,50.64305817027778 L -1.18935348908701,50.64301594967776 L -1.189320325693818,50.64288985354895 L -1.189329656526983,50.64284226936042 L -1.189358902590679,50.64278933952967 L -1.189463347892374,50.64263543107244 L -1.189508100263719,50.64241988290947 L -1.189538595918712,50.64236884970193 L -1.189662597646328,50.6422303606976 L -1.18972098550209,50.6421236909935 L -1.189774324336041,50.64206652323328 L -1.189880059118855,50.64200702248741 L -1.189925945637939,50.64196958173062 L -1.190012407124097,50.64187128823023 L -1.190126962798895,50.64179377786219 L -1.190164306865185,50.64175807573856 L -1.190230066039682,50.64163626322042 L -1.190248734499293,50.64162200827615 L -1.190326902104175,50.64159917623468 L -1.190366982276341,50.64156708920839 L -1.190393103940135,50.64153301723754 L -1.190412088048499,50.64149359135567 L -1.190591133768348,50.64144269046443 L -1.190613603580776,50.64137002429473 L -1.190625221559802,50.64135212417625 L -1.190655399697324,50.64132626157103 L -1.190692449727879,50.64130763898482 L -1.190766481089877,50.64128118177338 L -1.19084791054011,50.64123131094043 L -1.190890549875726,50.64121991940543 L -1.190930267591703,50.64121569989172 L -1.191027837899171,50.64121727611617 L -1.191173767191524,50.64120030799476 L -1.191508800197008,50.64120532936239 L -1.191584750286314,50.64123013018674 L -1.191636928043092,50.64124047138 L -1.191691998019157,50.6412453484652 L -1.19175000489887,50.64124215453386 L -1.191805369289321,50.64122986195435 L -1.191850976094301,50.64120860120955 L -1.191902619406852,50.64116850246804 L -1.192730932653625,50.6411095110183 L -1.192930470317438,50.64110100330281 L -1.192953057928095,50.64110295777009 L -1.193114988532107,50.64130914966678 L -1.193188587710842,50.64130786102908 L -1.193362217199618,50.64132794250438 L -1.193427305315847,50.64132659481882 L -1.193476908773972,50.64131704860516 L -1.19352536814772,50.64129940310106 L -1.193583928649974,50.64126384667178 L -1.194049723774504,50.64115010315471 L -1.194150876045993,50.64110585052505 L -1.194255449971599,50.64103195316181 L -1.194269864634018,50.64101407201388 L -1.194281972858405,50.64096740566309 L -1.194296295295133,50.64095491811032 L -1.194415639096547,50.64092418667583 L -1.194461582418712,50.64088314837165 L -1.194667229624376,50.64076949230214 L -1.194760145945218,50.64070899953426 L -1.194978382797874,50.64051352739856 L -1.195447386565074,50.64012918960651 L -1.195483304740814,50.64010156729306 L -1.195645870272297,50.64001817948217 L -1.195701440502668,50.63982967474579 L -1.195739177574288,50.63977059852252 L -1.195820083532731,50.63967576863461 L -1.195896358012437,50.63959268415737 L -1.195938009644155,50.63955700989875 L -1.19598375097205,50.63952765711074 L -1.196030915865781,50.63950370836029 L -1.196084836622049,50.63948699850027 L -1.196219735184274,50.6394600585593 L -1.196337679420262,50.63942221309692 L -1.196391593960338,50.63941269536817 L -1.196496441045602,50.63940442775417 L -1.196687875292248,50.63937149379065 L -1.196714899416385,50.63927728088084 L -1.196756223393462,50.63917867130715 L -1.196781695073639,50.63909343807657 L -1.196795241648632,50.63896218174812 L -1.196754711007263,50.63868580741036 L -1.196817211819429,50.63867185345567 L -1.196819202971906,50.63855499202975 L -1.196830644194864,50.63846516690485 L -1.19682686821705,50.63843358459656 L -1.196756413713474,50.63825059406909 L -1.196751149642445,50.63814896631358 L -1.196716909249808,50.63800299602431 L -1.196704999307106,50.63786715895408 L -1.196722384361973,50.63776379929132 L -1.19678016190776,50.63760956260965 L -1.19696185336978,50.63682028879178 L -1.197026342464519,50.63660046829477 z\" /></g></g></svg>"
],
"text/plain": [
"<shapely.geometry.multipolygon.MultiPolygon at 0x120d94550>"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from shapely.geometry import shape \n",
"\n",
"shp = shape( gj )\n",
"shp"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can now use this region as a search limit over the OSM data, allowing us to retrieve just the road data that falls within the parish boundary."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 392.408x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#see if we can load in all the roads within a particular parish\n",
"#select name from parish_region where name like \"%arreton%\"\n",
"parishroads = ox.graph_from_polygon(shp, network_type='drive')\n",
"ox.plot_graph(parishroads);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As well as rendering the roads inline, we can also generate an overlay for an interactive map. (The `folium` package is loaded as part of the `osmnx` load.)\n",
"\n",
"It's a bit fiddly, but if you hover the cursor over the line just right, you can click to display a pop up containing the name of the road."
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVMgPSBmYWxzZTsgTF9OT19UT1VDSCA9IGZhbHNlOyBMX0RJU0FCTEVfM0QgPSBmYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIgLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIiAvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiIC8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIgLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuY3NzIiAvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2dpdC5jb20vcHl0aG9uLXZpc3VhbGl6YXRpb24vZm9saXVtL21hc3Rlci9mb2xpdW0vdGVtcGxhdGVzL2xlYWZsZXQuYXdlc29tZS5yb3RhdGUuY3NzIiAvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgICAgICAgICA8c3R5bGU+ICNtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogMTAwLjAlOwogICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgIAo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzIiA+PC9kaXY+CiAgICAgICAgCjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGJvdW5kcyA9IG51bGw7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgdmFyIG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyA9IEwubWFwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2VudGVyOiBbNTAuNjYxNTg5NTYxMzQ5OTIsLTEuMjAwNTQ1NTMyMTE3MzM3NV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b29tOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4Qm91bmRzOiBib3VuZHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllcnM6IFtdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ybGRDb3B5SnVtcDogZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcnM6IEwuQ1JTLkVQU0czODU3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgdGlsZV9sYXllcl81MjBhNDVlY2Q3Y2E0MGYwOWM3YTk5NjcwMTE3OWY1MiA9IEwudGlsZUxheWVyKAogICAgICAgICAgICAgICAgJ2h0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nJywKICAgICAgICAgICAgICAgIHsKICAiYXR0cmlidXRpb24iOiBudWxsLAogICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAibWF4Wm9vbSI6IDE4LAogICJtaW5ab29tIjogMSwKICAibm9XcmFwIjogZmFsc2UsCiAgInN1YmRvbWFpbnMiOiAiYWJjIgp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMDVmY2JlNDhmOTgyNDdjZWEwNGYyNDg3ZDNhY2M5OGUgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQzNDE3MSwgLTEuMjA5NDk1Nl0sIFs1MC42NDMyMjQ2LCAtMS4yMDk0OTI5XSwgWzUwLjY0MzE5MiwgLTEuMjA5NDkyNV0sIFs1MC42NDMxNzIyLCAtMS4yMDk0OThdLCBbNTAuNjQzMDEyNywgLTEuMjA5NTQyMV0sIFs1MC42NDI4MTM1LCAtMS4yMDk2NzU1XSwgWzUwLjY0Mjc1OSwgLTEuMjA5NzIzOF0sIFs1MC42NDI2MDA1LCAtMS4yMDk4NjQyXSwgWzUwLjY0MjExMDQsIC0xLjIxMDI2NDddLCBbNTAuNjQxNzg0NiwgLTEuMjEwNDU1NV0sIFs1MC42NDE2Nzk2LCAtMS4yMTA0ODQzXSwgWzUwLjY0MTUzNzMsIC0xLjIxMDM5MjNdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85MzU5MTJiNzJhMTE0YTY5YTVlYjE4OGFiMWFiYWFlYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84NGVkOWY3NTJmMzY0YmQ2YTQyYmRiZTFlODA1ZjRkZSA9ICQoJzxkaXYgaWQ9Imh0bWxfODRlZDlmNzUyZjM2NGJkNmE0MmJkYmUxZTgwNWY0ZGUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJQcmluY2VsZXR0IFNodXRlIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTM1OTEyYjcyYTExNGE2OWE1ZWIxODhhYjFhYmFhZWIuc2V0Q29udGVudChodG1sXzg0ZWQ5Zjc1MmYzNjRiZDZhNDJiZGJlMWU4MDVmNGRlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMDVmY2JlNDhmOTgyNDdjZWEwNGYyNDg3ZDNhY2M5OGUuYmluZFBvcHVwKHBvcHVwXzkzNTkxMmI3MmExMTRhNjlhNWViMTg4YWIxYWJhYWViKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzE5NzRmYThkNjRiNDRlYzU4YmI4YjFhZDM3YzVhYzg0ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY0MzQxNzEsIC0xLjIwOTQ5NTZdLCBbNTAuNjQzNDgzMiwgLTEuMjA5NTE3MV0sIFs1MC42NDM1NTIxLCAtMS4yMDk1Mzk2XSwgWzUwLjY0MzU3NSwgLTEuMjA5NTQ4M10sIFs1MC42NDM5NzU4LCAtMS4yMDk3Mjg3XSwgWzUwLjY0NDczMTQsIC0xLjIwOTg5ODFdLCBbNTAuNjQ2MTgxLCAtMS4yMTAyMTU1XSwgWzUwLjY0Nzg3NzQsIC0xLjIxMDYzMzZdLCBbNTAuNjQ4MDYwNiwgLTEuMjEwNjc4OF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2M5MThmZGUxZTQ2MjQ1MzQ4YTgyNTA2YjJjY2MxNjMyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2VjMDcxMGNhNmI4NzQzMmQ4MjVjNmE0OTFkYzE3YmVhID0gJCgnPGRpdiBpZD0iaHRtbF9lYzA3MTBjYTZiODc0MzJkODI1YzZhNDkxZGMxN2JlYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IlByaW5jZWxldHQgU2h1dGUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jOTE4ZmRlMWU0NjI0NTM0OGE4MjUwNmIyY2NjMTYzMi5zZXRDb250ZW50KGh0bWxfZWMwNzEwY2E2Yjg3NDMyZDgyNWM2YTQ5MWRjMTdiZWEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8xOTc0ZmE4ZDY0YjQ0ZWM1OGJiOGIxYWQzN2M1YWM4NC5iaW5kUG9wdXAocG9wdXBfYzkxOGZkZTFlNDYyNDUzNDhhODI1MDZiMmNjYzE2MzIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNDZiM2E3OGQzYTE5NGFiYTkwNTVlYjJiOWVhYTIyNjcgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQzNDE3MSwgLTEuMjA5NDk1Nl0sIFs1MC42NDMyNTQsIC0xLjIwOTE1NV0sIFs1MC42NDMxNzQ0LCAtMS4yMDkwODkyXSwgWzUwLjY0MzAwMzUsIC0xLjIwODk2ODJdLCBbNTAuNjQyMzg5NiwgLTEuMjA4NDkxOV0sIFs1MC42NDIyNjU0LCAtMS4yMDg0MzM2XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNTIxOGQ2NmUyNWMwNGVkMGFhYTgzMWY1ZGI0Y2U3OGQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOTM5YWU5NTZjYzZjNDdhZTg0N2E4M2JiNTU2ZWMyYzAgPSAkKCc8ZGl2IGlkPSJodG1sXzkzOWFlOTU2Y2M2YzQ3YWU4NDdhODNiYjU1NmVjMmMwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iTGl0dGxlIFByaW5jbGV0dCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzUyMThkNjZlMjVjMDRlZDBhYWE4MzFmNWRiNGNlNzhkLnNldENvbnRlbnQoaHRtbF85MzlhZTk1NmNjNmM0N2FlODQ3YTgzYmI1NTZlYzJjMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzQ2YjNhNzhkM2ExOTRhYmE5MDU1ZWIyYjllYWEyMjY3LmJpbmRQb3B1cChwb3B1cF81MjE4ZDY2ZTI1YzA0ZWQwYWFhODMxZjVkYjRjZTc4ZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8yYTM4NTBiNDM0OWU0OTgyYTZmZDgzNWRhM2UxNjc1NyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NDgwNjA2LCAtMS4yMTA2Nzg4XSwgWzUwLjY0ODIwNjcsIC0xLjIxMDcxMTldLCBbNTAuNjQ4OTE1NywgLTEuMjEwNjk1OV0sIFs1MC42NDkzNjc4LCAtMS4yMTA2NTM5XSwgWzUwLjY0OTY1OTEsIC0xLjIxMDYxNV0sIFs1MC42NDk4MzQ0LCAtMS4yMTA1ODY5XSwgWzUwLjY1MDk3MzUsIC0xLjIxMDM4MzZdLCBbNTAuNjUxMDM1NywgLTEuMjEwMzc5N10sIFs1MC42NTExMzU0LCAtMS4yMTAzNjM4XSwgWzUwLjY1MTMzODQsIC0xLjIxMDM0ODNdLCBbNTAuNjUxNTEzLCAtMS4yMTAzMzQ5XSwgWzUwLjY1MTgyMiwgLTEuMjEwMzY0OV0sIFs1MC42NTE4ODc3LCAtMS4yMTAzNzg1XSwgWzUwLjY1MjUxMjYsIC0xLjIxMDUwODJdLCBbNTAuNjUyNjU2OSwgLTEuMjEwNTM2XSwgWzUwLjY1MzQyMzcsIC0xLjIxMDY4MzldLCBbNTAuNjUzNTM1NywgLTEuMjEwNjc5MV0sIFs1MC42NTM4Nzk3LCAtMS4yMTA2Njc2XSwgWzUwLjY1NDMyNTcsIC0xLjIxMDc2MzVdLCBbNTAuNjU0NDg4NywgLTEuMjEwODA4NV0sIFs1MC42NTQ2Mjk3LCAtMS4yMTA4NTIxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYmRkOWM4YjI2MjRkNGU2NDhmYjQ1NTA1NTI5ODg5OGQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYmI2ZjFjMDg5MGZlNDIwYjgxMGNhNjkwZmEwZDg4ZmYgPSAkKCc8ZGl2IGlkPSJodG1sX2JiNmYxYzA4OTBmZTQyMGI4MTBjYTY5MGZhMGQ4OGZmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV2luZm9yZCBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYmRkOWM4YjI2MjRkNGU2NDhmYjQ1NTA1NTI5ODg5OGQuc2V0Q29udGVudChodG1sX2JiNmYxYzA4OTBmZTQyMGI4MTBjYTY5MGZhMGQ4OGZmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMmEzODUwYjQzNDllNDk4MmE2ZmQ4MzVkYTNlMTY3NTcuYmluZFBvcHVwKHBvcHVwX2JkZDljOGIyNjI0ZDRlNjQ4ZmI0NTUwNTUyOTg4OThkKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2NlNTdhZmIyNjI5NTQzZTI5N2YyZWJmOTYzNmM3ZWFiID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY0ODA2MDYsIC0xLjIxMDY3ODhdLCBbNTAuNjQ3ODc3NCwgLTEuMjEwNjMzNl0sIFs1MC42NDYxODEsIC0xLjIxMDIxNTVdLCBbNTAuNjQ0NzMxNCwgLTEuMjA5ODk4MV0sIFs1MC42NDM5NzU4LCAtMS4yMDk3Mjg3XSwgWzUwLjY0MzU3NSwgLTEuMjA5NTQ4M10sIFs1MC42NDM1NTIxLCAtMS4yMDk1Mzk2XSwgWzUwLjY0MzQ4MzIsIC0xLjIwOTUxNzFdLCBbNTAuNjQzNDE3MSwgLTEuMjA5NDk1Nl1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Y4ZmFmYjM2ODVjZDRkYTJhZDZmNmVjNjQ5YTNhM2YzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzM4ZGM2YWZkMThmNDQ0NzBiNTVjOWNlNTc2MWY5MTRkID0gJCgnPGRpdiBpZD0iaHRtbF8zOGRjNmFmZDE4ZjQ0NDcwYjU1YzljZTU3NjFmOTE0ZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IlByaW5jZWxldHQgU2h1dGUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mOGZhZmIzNjg1Y2Q0ZGEyYWQ2ZjZlYzY0OWEzYTNmMy5zZXRDb250ZW50KGh0bWxfMzhkYzZhZmQxOGY0NDQ3MGI1NWM5Y2U1NzYxZjkxNGQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9jZTU3YWZiMjYyOTU0M2UyOTdmMmViZjk2MzZjN2VhYi5iaW5kUG9wdXAocG9wdXBfZjhmYWZiMzY4NWNkNGRhMmFkNmY2ZWM2NDlhM2EzZjMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMjRmMWE4YTNmYjhkNDY1NTg5MTk4ODM5NDk5NTg5ZTQgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQ4MDYwNiwgLTEuMjEwNjc4OF0sIFs1MC42NDc5MTksIC0xLjIwOTkyOTldLCBbNTAuNjQ3NzU4OSwgLTEuMjA5MjM3OV0sIFs1MC42NDc2ODUxLCAtMS4yMDg5MTI3XSwgWzUwLjY0NzYwNzgsIC0xLjIwODcwNDhdLCBbNTAuNjQ3NTA5LCAtMS4yMDg0NDFdLCBbNTAuNjQ3Mzk3NywgLTEuMjA4MDYzMV0sIFs1MC42NDczNzk3LCAtMS4yMDc3NzE1XSwgWzUwLjY0NzM1ODMsIC0xLjIwNzQyNjVdLCBbNTAuNjQ3MzE4MywgLTEuMjA2NDY1XSwgWzUwLjY0NzI2OTksIC0xLjIwNTUyOTNdLCBbNTAuNjQ3MjM1OSwgLTEuMjA0ODQ2XSwgWzUwLjY0NzE5MTEsIC0xLjIwMzc3NDddLCBbNTAuNjQ3MTY5MiwgLTEuMjAzNDE5NV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzgyMjA1NTk3NTMxZTQ3MGI4MmZkZjRhYzQ1NTE4MmRkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2FkYzQyMDE3MjNkNTQ4MGU4ZjQ5NWI1NzdjOGViOGMxID0gJCgnPGRpdiBpZD0iaHRtbF9hZGM0MjAxNzIzZDU0ODBlOGY0OTViNTc3YzhlYjhjMSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Ik5ld3BvcnQgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzgyMjA1NTk3NTMxZTQ3MGI4MmZkZjRhYzQ1NTE4MmRkLnNldENvbnRlbnQoaHRtbF9hZGM0MjAxNzIzZDU0ODBlOGY0OTViNTc3YzhlYjhjMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzI0ZjFhOGEzZmI4ZDQ2NTU4OTE5ODgzOTQ5OTU4OWU0LmJpbmRQb3B1cChwb3B1cF84MjIwNTU5NzUzMWU0NzBiODJmZGY0YWM0NTUxODJkZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9iM2ZlODM0N2E3N2I0ZDc2ODE1ZGJlZjE2ZmExZjUyZSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTQ3ODI5LCAtMS4yMTA5NTA1XSwgWzUwLjY1NDYyOTcsIC0xLjIxMDg1MjFdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lMTUwMjBkODI4YTk0MGZkOGI2MTc5MTNlM2NkNzk5ZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85YTFmZDc4ZjE1Mzk0ODRmOWJiYmZjYWM3YzFhZGU5ZSA9ICQoJzxkaXYgaWQ9Imh0bWxfOWExZmQ3OGYxNTM5NDg0ZjliYmJmY2FjN2MxYWRlOWUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXaW5mb3JkIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lMTUwMjBkODI4YTk0MGZkOGI2MTc5MTNlM2NkNzk5ZS5zZXRDb250ZW50KGh0bWxfOWExZmQ3OGYxNTM5NDg0ZjliYmJmY2FjN2MxYWRlOWUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9iM2ZlODM0N2E3N2I0ZDc2ODE1ZGJlZjE2ZmExZjUyZS5iaW5kUG9wdXAocG9wdXBfZTE1MDIwZDgyOGE5NDBmZDhiNjE3OTEzZTNjZDc5OWUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNjM3OTIwZWZmYWE2NGY2ZDhmNGI3MjkyYmIwMmY5NGUgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjU0NzgyOSwgLTEuMjEwOTUwNV0sIFs1MC42NTQ3NTgsIC0xLjIxMTEyNjNdLCBbNTAuNjU0NzIyNiwgLTEuMjExMzc1OF0sIFs1MC42NTQ3MTQ1LCAtMS4yMTE2Nzk5XSwgWzUwLjY1NDcxMjgsIC0xLjIxMTc0NjldLCBbNTAuNjU0NzEzMywgLTEuMjExODE5N10sIFs1MC42NTQ3MjY4LCAtMS4yMTI0NDI5XSwgWzUwLjY1NDc0NTEsIC0xLjIxMzA5MzFdLCBbNTAuNjU0NzkzMiwgLTEuMjE0NDUxXSwgWzUwLjY1NDc4NzIsIC0xLjIxNTE1MjRdLCBbNTAuNjU0ODA4NiwgLTEuMjE1Nzg0XSwgWzUwLjY1NDg2NSwgLTEuMjE2MTg1OF0sIFs1MC42NTQ5NTIxLCAtMS4yMTY1MTY2XSwgWzUwLjY1NTExNjMsIC0xLjIxNjk0NjddLCBbNTAuNjU1MjgzLCAtMS4yMTc0MTc1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZjVlZTY4NzFhMGI1NGY3ZTliMWM0ZTRjMGUxNWZjN2YgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMzYwYTA5YTlmMDc1NDE2ZTljZjdhYTQ2NDY1NjJiNjMgPSAkKCc8ZGl2IGlkPSJodG1sXzM2MGEwOWE5ZjA3NTQxNmU5Y2Y3YWE0NjQ2NTYyYjYzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV2F0ZXJ5IExhbmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mNWVlNjg3MWEwYjU0ZjdlOWIxYzRlNGMwZTE1ZmM3Zi5zZXRDb250ZW50KGh0bWxfMzYwYTA5YTlmMDc1NDE2ZTljZjdhYTQ2NDY1NjJiNjMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV82Mzc5MjBlZmZhYTY0ZjZkOGY0YjcyOTJiYjAyZjk0ZS5iaW5kUG9wdXAocG9wdXBfZjVlZTY4NzFhMGI1NGY3ZTliMWM0ZTRjMGUxNWZjN2YpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfYTAxZjY2ZWI1N2ZkNGMwOWIwZjk2ZjIyNTM3NTIyNTkgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjU0NzgyOSwgLTEuMjEwOTUwNV0sIFs1MC42NTUyMzk1LCAtMS4yMTEyMjc2XSwgWzUwLjY1NTQ3OTUsIC0xLjIxMTM0Ml0sIFs1MC42NTU3Nzc4LCAtMS4yMTE0NTIyXSwgWzUwLjY1NjExNDUsIC0xLjIxMTU0ODhdLCBbNTAuNjU2NTEyOSwgLTEuMjExNjQyMl0sIFs1MC42NTczODMsIC0xLjIxMTgwNjNdLCBbNTAuNjU4MTk3MSwgLTEuMjExOTY2N10sIFs1MC42NTg1MTYzLCAtMS4yMTE5OTIxXSwgWzUwLjY1OTA4MDYsIC0xLjIxMTk0MTNdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80YWMyMjVkMTNjYmQ0N2EyOGQxNjU3ZDM2NTkyOGJiNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hMDM5MmQxODAyODE0OGQ4ODVlZjViZTQ1ODI5MzdjNiA9ICQoJzxkaXYgaWQ9Imh0bWxfYTAzOTJkMTgwMjgxNDhkODg1ZWY1YmU0NTgyOTM3YzYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXaW5mb3JkIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80YWMyMjVkMTNjYmQ0N2EyOGQxNjU3ZDM2NTkyOGJiNy5zZXRDb250ZW50KGh0bWxfYTAzOTJkMTgwMjgxNDhkODg1ZWY1YmU0NTgyOTM3YzYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9hMDFmNjZlYjU3ZmQ0YzA5YjBmOTZmMjI1Mzc1MjI1OS5iaW5kUG9wdXAocG9wdXBfNGFjMjI1ZDEzY2JkNDdhMjhkMTY1N2QzNjU5MjhiYjcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMDdjYzViMDBhYjg0NGRiYzliYzE3Njk0M2EwZTY3MGUgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjc0NTIzNiwgLTEuMjEwNzcwM10sIFs1MC42NzQ1NzYzLCAtMS4yMTEwMDc3XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzk4NjMyMTk2ZWUxNDQyMDllZGY2YTk0NjQzNzdiMmIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDgyZjE5YTM1NzBjNDIwMzllYTZmY2Y0NDY2MzgwYzUgPSAkKCc8ZGl2IGlkPSJodG1sXzA4MmYxOWEzNTcwYzQyMDM5ZWE2ZmNmNDQ2NjM4MGM1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5OYU48L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzM5ODYzMjE5NmVlMTQ0MjA5ZWRmNmE5NDY0Mzc3YjJiLnNldENvbnRlbnQoaHRtbF8wODJmMTlhMzU3MGM0MjAzOWVhNmZjZjQ0NjYzODBjNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzA3Y2M1YjAwYWI4NDRkYmM5YmMxNzY5NDNhMGU2NzBlLmJpbmRQb3B1cChwb3B1cF8zOTg2MzIxOTZlZTE0NDIwOWVkZjZhOTQ2NDM3N2IyYik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV81NmYwOGYyODkzNzY0NTYzYTg0YmNmM2E3ZDQxNjJiYSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NzQ1MjM2LCAtMS4yMTA3NzAzXSwgWzUwLjY3NDM4ODQsIC0xLjIxMDkyMDVdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yNjZkNWFmZjAwZjY0MDA1OGE4ZmIyOGI5NDIyZmIxMCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wOTJjOTJkN2Y1OTQ0MDc5YWIwY2VmZjg2ZjQwNWRlNyA9ICQoJzxkaXYgaWQ9Imh0bWxfMDkyYzkyZDdmNTk0NDA3OWFiMGNlZmY4NmY0MDVkZTciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk5hTjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMjY2ZDVhZmYwMGY2NDAwNThhOGZiMjhiOTQyMmZiMTAuc2V0Q29udGVudChodG1sXzA5MmM5MmQ3ZjU5NDQwNzlhYjBjZWZmODZmNDA1ZGU3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNTZmMDhmMjg5Mzc2NDU2M2E4NGJjZjNhN2Q0MTYyYmEuYmluZFBvcHVwKHBvcHVwXzI2NmQ1YWZmMDBmNjQwMDU4YThmYjI4Yjk0MjJmYjEwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzY0ZDRlNDk0MGRhNzQ2Yjc4YWY1MTUxYzlmMzc5ZTAzID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY3NDUyMzYsIC0xLjIxMDc3MDNdLCBbNTAuNjc0NzgxLCAtMS4yMDkyODAzXSwgWzUwLjY3NTIyMDksIC0xLjIwNTY5NV0sIFs1MC42NzU0NzQ4LCAtMS4yMDQzMDQyXSwgWzUwLjY3NTcyNTUsIC0xLjIwMjk0XSwgWzUwLjY3NTgwNDgsIC0xLjIwMjcyMzNdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85ZTljOGRiYzFiODI0YWIzYjAwYjNmYjE3YTJjY2FkOSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xN2Y3OWViYTY2OTM0OGEzOWYwY2Q3NjczMTk2NzJiOCA9ICQoJzxkaXYgaWQ9Imh0bWxfMTdmNzllYmE2NjkzNDhhMzlmMGNkNzY3MzE5NjcyYjgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJLbmlnaHRvbiBMYW5lIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOWU5YzhkYmMxYjgyNGFiM2IwMGIzZmIxN2EyY2NhZDkuc2V0Q29udGVudChodG1sXzE3Zjc5ZWJhNjY5MzQ4YTM5ZjBjZDc2NzMxOTY3MmI4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNjRkNGU0OTQwZGE3NDZiNzhhZjUxNTFjOWYzNzllMDMuYmluZFBvcHVwKHBvcHVwXzllOWM4ZGJjMWI4MjRhYjNiMDBiM2ZiMTdhMmNjYWQ5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2JiNmYyMmVkNTczMjQ0NDI4MTNmOWI1NmZlMGQ2ZDk5ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY3NDM4ODQsIC0xLjIxMDkyMDVdLCBbNTAuNjc0NTIzNiwgLTEuMjEwNzcwM11dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzZhZjFkMjg3YzNlMTRlM2Q5ODRhZTdlNDIzYmI0ZTY2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2EyNWE0OWRiODg0MjQ2NjdhMGVjZDU0NjU0NTk5ODgzID0gJCgnPGRpdiBpZD0iaHRtbF9hMjVhNDlkYjg4NDI0NjY3YTBlY2Q1NDY1NDU5OTg4MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TmFOPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82YWYxZDI4N2MzZTE0ZTNkOTg0YWU3ZTQyM2JiNGU2Ni5zZXRDb250ZW50KGh0bWxfYTI1YTQ5ZGI4ODQyNDY2N2EwZWNkNTQ2NTQ1OTk4ODMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9iYjZmMjJlZDU3MzI0NDQyODEzZjliNTZmZTBkNmQ5OS5iaW5kUG9wdXAocG9wdXBfNmFmMWQyODdjM2UxNGUzZDk4NGFlN2U0MjNiYjRlNjYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNDNkODI0N2I5Njk3NGE0MGExOGEwOTE4ODgzZGYzZTAgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjc0Mzg4NCwgLTEuMjEwOTIwNV0sIFs1MC42NzQ1NzYzLCAtMS4yMTEwMDc3XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYjY0MDJjYzkyZGM4NDA1YjkxNWUyYTYxNGU4YTA2NWQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTc2NjM0MmZjOGI2NGRhOWFkZDFmYjdhNjFkNDczZDEgPSAkKCc8ZGl2IGlkPSJodG1sX2E3NjYzNDJmYzhiNjRkYTlhZGQxZmI3YTYxZDQ3M2QxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5OYU48L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2I2NDAyY2M5MmRjODQwNWI5MTVlMmE2MTRlOGEwNjVkLnNldENvbnRlbnQoaHRtbF9hNzY2MzQyZmM4YjY0ZGE5YWRkMWZiN2E2MWQ0NzNkMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzQzZDgyNDdiOTY5NzRhNDBhMThhMDkxODg4M2RmM2UwLmJpbmRQb3B1cChwb3B1cF9iNjQwMmNjOTJkYzg0MDViOTE1ZTJhNjE0ZThhMDY1ZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV82ZWUzMzFmNGUyYmY0Njk5YmUyYTIzNzA5OTU5OThiYiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NzQzODg0LCAtMS4yMTA5MjA1XSwgWzUwLjY3MzYwMDksIC0xLjIxMDkxNjddLCBbNTAuNjcyNzI4NiwgLTEuMjEwODI1M10sIFs1MC42NzIxNjIsIC0xLjIxMDc2MV0sIFs1MC42NzE1MDI2LCAtMS4yMTA2NTQ3XSwgWzUwLjY3MTIxOTQsIC0xLjIxMDU5OTRdLCBbNTAuNjcwODIxMywgLTEuMjEwNDY3Ml0sIFs1MC42NzA3MjUyLCAtMS4yMTA0MTc0XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYjYzYmNmNmIxMWI3NDM2MjhmNTY4NWMwYzNkZDg5MTggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNDIxOWQ5NGNmMzI4NGJkOWIyMmE1YWVlYTg0YjY0MWUgPSAkKCc8ZGl2IGlkPSJodG1sXzQyMTlkOTRjZjMyODRiZDliMjJhNWFlZWE4NGI2NDFlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5bIlRoZSBTaHV0ZSIsICJMYW5nYnJpZGdlIl08L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2I2M2JjZjZiMTFiNzQzNjI4ZjU2ODVjMGMzZGQ4OTE4LnNldENvbnRlbnQoaHRtbF80MjE5ZDk0Y2YzMjg0YmQ5YjIyYTVhZWVhODRiNjQxZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzZlZTMzMWY0ZTJiZjQ2OTliZTJhMjM3MDk5NTk5OGJiLmJpbmRQb3B1cChwb3B1cF9iNjNiY2Y2YjExYjc0MzYyOGY1Njg1YzBjM2RkODkxOCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV83MTc3ZDgxYmQyOTM0NDAyODg5MzE2MmQwODFlZWQ3NCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NzQ1NzYzLCAtMS4yMTEwMDc3XSwgWzUwLjY3NDUyMzYsIC0xLjIxMDc3MDNdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83ZWM3YzJjNGExMjg0YzAwYjhiZDA0OWZhNGU5MGQ5OSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zOTliZjNhZTZkNGI0MmMxOTlhOGNiYmRiYjU3ZDZmZSA9ICQoJzxkaXYgaWQ9Imh0bWxfMzk5YmYzYWU2ZDRiNDJjMTk5YThjYmJkYmI1N2Q2ZmUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk5hTjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfN2VjN2MyYzRhMTI4NGMwMGI4YmQwNDlmYTRlOTBkOTkuc2V0Q29udGVudChodG1sXzM5OWJmM2FlNmQ0YjQyYzE5OWE4Y2JiZGJiNTdkNmZlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNzE3N2Q4MWJkMjkzNDQwMjg4OTMxNjJkMDgxZWVkNzQuYmluZFBvcHVwKHBvcHVwXzdlYzdjMmM0YTEyODRjMDBiOGJkMDQ5ZmE0ZTkwZDk5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzAwOWMzNmY5MTQ5NTRmN2NiNzAxNTAzZmE2MmViOGI5ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY3NDU3NjMsIC0xLjIxMTAwNzddLCBbNTAuNjc0Mzg4NCwgLTEuMjEwOTIwNV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzNlNWRhZDFmMmJiODRmZTRhNTU1ZDhhYTIxNTVkMjZhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzFhNjc2ZmE5ZTExMDQxMzZhNjVhYjFhOTdhNWVlYjIwID0gJCgnPGRpdiBpZD0iaHRtbF8xYTY3NmZhOWUxMTA0MTM2YTY1YWIxYTk3YTVlZWIyMCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TmFOPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zZTVkYWQxZjJiYjg0ZmU0YTU1NWQ4YWEyMTU1ZDI2YS5zZXRDb250ZW50KGh0bWxfMWE2NzZmYTllMTEwNDEzNmE2NWFiMWE5N2E1ZWViMjApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8wMDljMzZmOTE0OTU0ZjdjYjcwMTUwM2ZhNjJlYjhiOS5iaW5kUG9wdXAocG9wdXBfM2U1ZGFkMWYyYmI4NGZlNGE1NTVkOGFhMjE1NWQyNmEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZGZlYzAzMGRlNmYyNDVhMjhhNWIyYWNjMjAwMzUxZjAgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjc0NTc2MywgLTEuMjExMDA3N10sIFs1MC42NzQ3MTYzLCAtMS4yMTEwODYzXSwgWzUwLjY3NTE2OTUsIC0xLjIxMTMyMjldLCBbNTAuNjc1NTE0NiwgLTEuMjExNjE2N10sIFs1MC42NzU5MDA5LCAtMS4yMTE5NjY1XSwgWzUwLjY3NTkzNjMsIC0xLjIxMjAwNjZdLCBbNTAuNjc2MTk5MywgLTEuMjEyMjczN10sIFs1MC42NzYyOTE1LCAtMS4yMTI0MDQ4XSwgWzUwLjY3NjM4NjcsIC0xLjIxMjU0MDddLCBbNTAuNjc2NTgyOCwgLTEuMjEyODExNF0sIFs1MC42NzY4MTc0LCAtMS4yMTMxNzUzXSwgWzUwLjY3NzA4NjMsIC0xLjIxMzYzMTddLCBbNTAuNjc3NDE1NywgLTEuMjE0MjAyNl0sIFs1MC42Nzc1ODA1LCAtMS4yMTQzMjA2XSwgWzUwLjY3Nzg4ODIsIC0xLjIxNDQxNzFdLCBbNTAuNjc4MTMzMSwgLTEuMjE0NTQxN10sIFs1MC42NzgyMTY5LCAtMS4yMTQ2MDA0XSwgWzUwLjY3ODMyNjcsIC0xLjIxNDY3NzNdLCBbNTAuNjc4NDQwNiwgLTEuMjE0ODAwN10sIFs1MC42Nzg3NzgxLCAtMS4yMTUxMDY5XSwgWzUwLjY3OTA0ODIsIC0xLjIxNTIyOTZdLCBbNTAuNjc5MTg0NCwgLTEuMjE1MTk1M10sIFs1MC42NzkzMjc5LCAtMS4yMTUxMDY2XSwgWzUwLjY3OTU5OTcsIC0xLjIxNDkyNDFdLCBbNTAuNjc5NzUzOCwgLTEuMjE0ODg3NV0sIFs1MC42Nzk5ODU4LCAtMS4yMTQ4MTgzXSwgWzUwLjY4MDIzNDUsIC0xLjIxNDc0ODRdLCBbNTAuNjgwNjQ4NiwgLTEuMjE0NjI4NF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzg0OTkzNTI3MDM5YTRjZTZiYWZhNWM0ODVjYTA3YmMyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzYzNzEzNzQ4MmEwZjQ5OWQ4M2YzMDZlNzQ0ZGIzM2I2ID0gJCgnPGRpdiBpZD0iaHRtbF82MzcxMzc0ODJhMGY0OTlkODNmMzA2ZTc0NGRiMzNiNiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Ik1lcnNsZXkgTGFuZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzg0OTkzNTI3MDM5YTRjZTZiYWZhNWM0ODVjYTA3YmMyLnNldENvbnRlbnQoaHRtbF82MzcxMzc0ODJhMGY0OTlkODNmMzA2ZTc0NGRiMzNiNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2RmZWMwMzBkZTZmMjQ1YTI4YTViMmFjYzIwMDM1MWYwLmJpbmRQb3B1cChwb3B1cF84NDk5MzUyNzAzOWE0Y2U2YmFmYTVjNDg1Y2EwN2JjMik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV83NTJjYzNkYmE2YTE0MzAwOTk5MWYwYmYzYTY2YTgwNSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42Njg4OTQ1LCAtMS4xODI2Nzc1XSwgWzUwLjY2ODg2ODksIC0xLjE4MjQ4NTVdLCBbNTAuNjY4NTkzOCwgLTEuMTgxNjkyN10sIFs1MC42Njg0MDI5LCAtMS4xODA3MTI4XSwgWzUwLjY2ODQwMTcsIC0xLjE4MDU3MzFdLCBbNTAuNjY4NDA3NiwgLTEuMTgwNTMxMl0sIFs1MC42Njg0NDU1LCAtMS4xODAyOTk4XSwgWzUwLjY2ODQ2OTgsIC0xLjE4MDIzMzldLCBbNTAuNjY4NTA5LCAtMS4xODAxNTYyXSwgWzUwLjY2ODY5NiwgLTEuMTgwMDEyMl0sIFs1MC42Njg3MDk3LCAtMS4xNzk5NjA0XSwgWzUwLjY2ODcyNTcsIC0xLjE3OTg5OTldLCBbNTAuNjY4NTM5MSwgLTEuMTc5MzE0M10sIFs1MC42Njg0ODY5LCAtMS4xNzkwODk2XSwgWzUwLjY2ODQ2MzMsIC0xLjE3ODkxNjhdLCBbNTAuNjY4NTE1NywgLTEuMTc4NzIyNF0sIFs1MC42Njg2NTQzLCAtMS4xNzg1NDcxXSwgWzUwLjY2ODc1MDIsIC0xLjE3ODQ0MzldLCBbNTAuNjY4Nzg0MSwgLTEuMTc4NDA1XSwgWzUwLjY2ODg4NzUsIC0xLjE3ODI4OTJdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83MmIxODYyMTM1MWI0ZmFhOGQ5ZTU2YmMzZmM0MDg0YiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iZDViNzljNjViYmE0YzA3YTNkOWJiNmE0OTI3OTA2ZCA9ICQoJzxkaXYgaWQ9Imh0bWxfYmQ1Yjc5YzY1YmJhNGMwN2EzZDliYjZhNDkyNzkwNmQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJNYWluIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83MmIxODYyMTM1MWI0ZmFhOGQ5ZTU2YmMzZmM0MDg0Yi5zZXRDb250ZW50KGh0bWxfYmQ1Yjc5YzY1YmJhNGMwN2EzZDliYjZhNDkyNzkwNmQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV83NTJjYzNkYmE2YTE0MzAwOTk5MWYwYmYzYTY2YTgwNS5iaW5kUG9wdXAocG9wdXBfNzJiMTg2MjEzNTFiNGZhYThkOWU1NmJjM2ZjNDA4NGIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfYmM3M2NmODk3YjAyNDM2YWIzNDA4NGY5YjJmZTllM2YgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY4ODk0NSwgLTEuMTgyNjc3NV0sIFs1MC42Njg3NDE4LCAtMS4xODI4NzY4XSwgWzUwLjY2ODU3LCAtMS4xODMwMjc0XSwgWzUwLjY2NzgxMjQsIC0xLjE4MzY5NDldLCBbNTAuNjY3NjU4MiwgLTEuMTgzODE3OF0sIFs1MC42Njc1MjE0LCAtMS4xODM4NTQ0XSwgWzUwLjY2NzI2NTcsIC0xLjE4Mzg0OF0sIFs1MC42NjcxMTMxLCAtMS4xODM4Nzk0XSwgWzUwLjY2NzAwNDIsIC0xLjE4MzkwNTZdLCBbNTAuNjY2OTUxMywgLTEuMTgzOTE2OF0sIFs1MC42NjY5MTk2LCAtMS4xODM5MjQ4XSwgWzUwLjY2NjcyOCwgLTEuMTgzOTg0NF0sIFs1MC42NjY2MjU5LCAtMS4xODQwMzcyXSwgWzUwLjY2NjUzMDgsIC0xLjE4NDA4NjNdLCBbNTAuNjY2Mzg1NiwgLTEuMTg0MTk2OF0sIFs1MC42NjYyMDM2LCAtMS4xODQzMzMzXSwgWzUwLjY2NTk5MTgsIC0xLjE4NDU0OTJdLCBbNTAuNjY1ODkzNCwgLTEuMTg0NjI5NF0sIFs1MC42NjU4MDc2LCAtMS4xODQ3Mjg2XSwgWzUwLjY2NTc5MTEsIC0xLjE4NDc0MThdLCBbNTAuNjY1NzYzMSwgLTEuMTg0NzY0M10sIFs1MC42NjU1OTQ2LCAtMS4xODQ4OTk0XSwgWzUwLjY2NTM4MDksIC0xLjE4NTA2MjVdLCBbNTAuNjY0OTgyMywgLTEuMTg1MzI0NV0sIFs1MC42NjQ5Mjc3LCAtMS4xODUzNjEzXSwgWzUwLjY2NDgyMjUsIC0xLjE4NTQyNTVdLCBbNTAuNjY0NDc0NywgLTEuMTg1NjM3N10sIFs1MC42NjQyOTgxLCAtMS4xODU3NjU5XSwgWzUwLjY2MzgzMjgsIC0xLjE4NjE0MzldLCBbNTAuNjYzNjY2MiwgLTEuMTg2MzIwOV0sIFs1MC42NjM1MjU4LCAtMS4xODY0NjIyXSwgWzUwLjY2MzQxNDYsIC0xLjE4NjU3NDRdLCBbNTAuNjYzMjUxMywgLTEuMTg2NzM5M10sIFs1MC42NjI3MjM1LCAtMS4xODcxOTk5XSwgWzUwLjY2MjYxMzYsIC0xLjE4NzMzMTddLCBbNTAuNjYyNDI1OSwgLTEuMTg3NTU2OV0sIFs1MC42NjIxMjI4LCAtMS4xODc5NTU3XSwgWzUwLjY2MTkzOTgsIC0xLjE4ODMyNTVdLCBbNTAuNjYxODI5NSwgLTEuMTg4NTM4NV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Y5NjNmZTBkYjBjZTRmNGJhOGZhYzM3Yjk4ZGU2NzIzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzdlNzUwMzcwY2U1MjQwNTZiNTZmNWQzMmQxOGViNTZiID0gJCgnPGRpdiBpZD0iaHRtbF83ZTc1MDM3MGNlNTI0MDU2YjU2ZjVkMzJkMThlYjU2YiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WyJNYWluIFJvYWQiLCAiQWx2ZXJzdG9uZSBCcmlkZ2UiLCAiQWx2ZXJzdG9uZSBTaHV0ZSJdPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mOTYzZmUwZGIwY2U0ZjRiYThmYWMzN2I5OGRlNjcyMy5zZXRDb250ZW50KGh0bWxfN2U3NTAzNzBjZTUyNDA1NmI1NmY1ZDMyZDE4ZWI1NmIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9iYzczY2Y4OTdiMDI0MzZhYjM0MDg0ZjliMmZlOWUzZi5iaW5kUG9wdXAocG9wdXBfZjk2M2ZlMGRiMGNlNGY0YmE4ZmFjMzdiOThkZTY3MjMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfYmM2Nzc3MWExMmU0NGExMmJjODRhYzQwODMwNmJhYjIgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY4ODk0NSwgLTEuMTgyNjc3NV0sIFs1MC42Njk0NDQyLCAtMS4xODIxN10sIFs1MC42NzAyNzIxLCAtMS4xODE0NTEyXSwgWzUwLjY3MDM1MzcsIC0xLjE4MTUxMDJdLCBbNTAuNjcwNDE4MywgLTEuMTgxNjQ3XSwgWzUwLjY3MDU5MDEsIC0xLjE4MjE4MzRdLCBbNTAuNjcwNjAwMywgLTEuMTgyMjE0OF0sIFs1MC42NzA3NTg1LCAtMS4xODI5MzE1XSwgWzUwLjY3MDgzMDEsIC0xLjE4MzI1Nl0sIFs1MC42NzA4NjkyLCAtMS4xODMyOTYzXSwgWzUwLjY3MDk0OTEsIC0xLjE4MzI5ODldLCBbNTAuNjcxMzg3OSwgLTEuMTgzMDI0NF0sIFs1MC42NzIyMzIsIC0xLjE4MjQ5NjNdLCBbNTAuNjcyMjgzNywgLTEuMTgyNDY0XSwgWzUwLjY3MzAxOTYsIC0xLjE4MjA1NDRdLCBbNTAuNjczMTUzOSwgLTEuMTgyMDE5NV0sIFs1MC42NzMzOTc5LCAtMS4xODIwNDQ2XSwgWzUwLjY3MzU4ODIsIC0xLjE4MjA3MzJdLCBbNTAuNjc0MDgwOSwgLTEuMTgyMjg4N10sIFs1MC42NzQzNDgxLCAtMS4xODIzNDQ0XSwgWzUwLjY3NDY5MTEsIC0xLjE4MjMwMzhdLCBbNTAuNjc0ODk5MywgLTEuMTgyMjI5MV0sIFs1MC42NzUyODk0LCAtMS4xODIwMTk4XSwgWzUwLjY3NTYwMzMsIC0xLjE4MTkxNzVdLCBbNTAuNjc1NjY1MywgLTEuMTgxODk3M10sIFs1MC42NzU4Mjg0LCAtMS4xODE4OTE0XSwgWzUwLjY3NTkxNDIsIC0xLjE4MTg4ODNdLCBbNTAuNjc2MTUzMywgLTEuMTgxOTA3OV0sIFs1MC42NzYyOTAzLCAtMS4xODI3Njg0XSwgWzUwLjY3NjI5NzgsIC0xLjE4Mjc5MjNdLCBbNTAuNjc2MzM3NSwgLTEuMTgyODI1Nl0sIFs1MC42NzYzOTkxLCAtMS4xODI4NDE3XSwgWzUwLjY3NjU0ODEsIC0xLjE4MjgzMDRdLCBbNTAuNjc2NTc2NiwgLTEuMTgyODEwMl0sIFs1MC42NzY1ODA2LCAtMS4xODI4NDYzXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYjg1ODZlYjg4ZDdjNDI4NGIwNTMwYTRlOTM5YTZlZGIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNmNjNTU1MzUwMGVkNGExNDliZDYyNjE2ZTg1ZmQ0MDcgPSAkKCc8ZGl2IGlkPSJodG1sXzZjYzU1NTM1MDBlZDRhMTQ5YmQ2MjYxNmU4NWZkNDA3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iS2VybiBMYW5lIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYjg1ODZlYjg4ZDdjNDI4NGIwNTMwYTRlOTM5YTZlZGIuc2V0Q29udGVudChodG1sXzZjYzU1NTM1MDBlZDRhMTQ5YmQ2MjYxNmU4NWZkNDA3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfYmM2Nzc3MWExMmU0NGExMmJjODRhYzQwODMwNmJhYjIuYmluZFBvcHVwKHBvcHVwX2I4NTg2ZWI4OGQ3YzQyODRiMDUzMGE0ZTkzOWE2ZWRiKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2E1MDEzN2Q1OTY0MjRiZGNhMWMyYTJjMmU4YjQwMDY2ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1OTE2MTksIC0xLjE5NTMzODddLCBbNTAuNjU5MTUzOCwgLTEuMTk1NDIzM10sIFs1MC42NTkxMTk4LCAtMS4xOTU1MTQ1XSwgWzUwLjY1OTA0NSwgLTEuMTk1NjY4N10sIFs1MC42NTg5Mjk0LCAtMS4xOTU4NDE3XSwgWzUwLjY1ODgyODIsIC0xLjE5NTk0OV0sIFs1MC42NTg3MjM3LCAtMS4xOTYwMzYyXSwgWzUwLjY1ODYxMDYsIC0xLjE5NjEwNzJdLCBbNTAuNjU4NDk4NCwgLTEuMTk2MTgxXSwgWzUwLjY1ODQzMiwgLTEuMTk2MjgwMl0sIFs1MC42NTgzNDcsIC0xLjE5NjQ2NTNdLCBbNTAuNjU4MjI2MywgLTEuMTk2ODE5NF0sIFs1MC42NTgwMTQ0LCAtMS4xOTc1MzE1XSwgWzUwLjY1Nzg3MzcsIC0xLjE5NzkzMTNdLCBbNTAuNjU3NzgyLCAtMS4xOTgxODA5XSwgWzUwLjY1NzcxNywgLTEuMTk4MzAyNl0sIFs1MC42NTc1OTMzLCAtMS4xOTg1MDE1XSwgWzUwLjY1NzQxOTMsIC0xLjE5ODc1OTVdLCBbNTAuNjU3Mjc0NCwgLTEuMTk4OTY4Nl0sIFs1MC42NTcxNzc2LCAtMS4xOTkwODQ3XSwgWzUwLjY1NzA2MjEsIC0xLjE5OTIxMDhdLCBbNTAuNjU2ODE1OCwgLTEuMTk5NTI0NF0sIFs1MC42NTY3MzA4LCAtMS4xOTk2Mjc2XSwgWzUwLjY1NjYwODgsIC0xLjE5OTc1NzZdLCBbNTAuNjU2NDUxMSwgLTEuMTk5ODcxN10sIFs1MC42NTYyODYxLCAtMS4xOTk5NjQzXSwgWzUwLjY1NTk5NjYsIC0xLjIwMDA3ODVdLCBbNTAuNjU1OTcwMSwgLTEuMjAwMDkwN10sIFs1MC42NTU2OTk1LCAtMS4yMDAyMTVdLCBbNTAuNjU1NjEwMiwgLTEuMjAwMjQwNV0sIFs1MC42NTU0OTkzLCAtMS4yMDAyNjQxXSwgWzUwLjY1NTQxNjUsIC0xLjIwMDI2NTZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81MmUzOWVlMDY0ZWM0YTFlYjFhNDQyMmYzNjE3MTExOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xZjE1ZTg3YzQzOGY0M2RmOTkyOWUzMDQ1ODU2NWY5YyA9ICQoJzxkaXYgaWQ9Imh0bWxfMWYxNWU4N2M0MzhmNDNkZjk5MjllMzA0NTg1NjVmOWMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJBbHZlcnN0b25lIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81MmUzOWVlMDY0ZWM0YTFlYjFhNDQyMmYzNjE3MTExOC5zZXRDb250ZW50KGh0bWxfMWYxNWU4N2M0MzhmNDNkZjk5MjllMzA0NTg1NjVmOWMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9hNTAxMzdkNTk2NDI0YmRjYTFjMmEyYzJlOGI0MDA2Ni5iaW5kUG9wdXAocG9wdXBfNTJlMzllZTA2NGVjNGExZWIxYTQ0MjJmMzYxNzExMTgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMDViMGRhYzc3MzVjNDJkNjk2MWQ4NDUzZTE4YTRkZDggPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjU5MTYxOSwgLTEuMTk1MzM4N10sIFs1MC42NTkyMTMyLCAtMS4xOTUzNTYxXSwgWzUwLjY1OTgyNTksIC0xLjE5NTk1MjldLCBbNTAuNjYwMjg4MSwgLTEuMTk2NDUzOV0sIFs1MC42NjA3MTM2LCAtMS4xOTcwMzY4XSwgWzUwLjY2MTAzLCAtMS4xOTczOTE0XSwgWzUwLjY2MTI1NDMsIC0xLjE5Nzg4MThdLCBbNTAuNjYxMjc0NCwgLTEuMTk3OTI1OV0sIFs1MC42NjE1NDM2LCAtMS4xOTg3ODA5XSwgWzUwLjY2MTgzNjksIC0xLjIwMDAyOTddLCBbNTAuNjYxODk3MiwgLTEuMjAwMTE5Nl0sIFs1MC42NjIyMDU1LCAtMS4yMDA0NzI0XSwgWzUwLjY2MjMyNTcsIC0xLjIwMDYyMDVdLCBbNTAuNjYyOTk0NiwgLTEuMjAxNzkwNl0sIFs1MC42NjMzMzg1LCAtMS4yMDIzNzM0XSwgWzUwLjY2MzQwNTUsIC0xLjIwMjUyNzddLCBbNTAuNjYzNDI2OSwgLTEuMjAyNjE0NV0sIFs1MC42NjM0NDYyLCAtMS4yMDI3MzJdLCBbNTAuNjYzNDMyNCwgLTEuMjAyODQ1XSwgWzUwLjY2MzM3MDEsIC0xLjIwMzExNTldLCBbNTAuNjYzMzM5LCAtMS4yMDMyMzc2XSwgWzUwLjY2MzM2MDQsIC0xLjIwMzQ5MTddLCBbNTAuNjYzMzc1OCwgLTEuMjAzNjcxNV0sIFs1MC42NjM0MjUyLCAtMS4yMDM4NzA5XSwgWzUwLjY2Mzk3NjEsIC0xLjIwNTQ0MzhdLCBbNTAuNjY0MDYzMiwgLTEuMjA1ODU1MV0sIFs1MC42NjQxMTMxLCAtMS4yMDYzOTMxXSwgWzUwLjY2NDA3NDcsIC0xLjIwNjg5NzFdLCBbNTAuNjY0MDc3MSwgLTEuMjA3MTYyNV0sIFs1MC42NjQwODY2LCAtMS4yMDc0MDAxXSwgWzUwLjY2NDE3OTQsIC0xLjIwNzU3NjFdLCBbNTAuNjY0Mjc4OSwgLTEuMjA3NjI1OF0sIFs1MC42NjQ3MzU3LCAtMS4yMDc2ODA5XSwgWzUwLjY2NDg0MjUsIC0xLjIwNzc4NzhdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lM2M2ZjUwNDQ0OWY0N2FmYmU4YWJlOTc5YzAxNTRjNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kMjViMzczMGQ3ZjY0MWViYjRkZDQ0ZTMwMjczMWYyMSA9ICQoJzxkaXYgaWQ9Imh0bWxfZDI1YjM3MzBkN2Y2NDFlYmI0ZGQ0NGUzMDI3MzFmMjEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlsiUGFsbWVycyBMYW5lIiwgIlNraW5uZXJzIExhbmUiXTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTNjNmY1MDQ0NDlmNDdhZmJlOGFiZTk3OWMwMTU0Yzcuc2V0Q29udGVudChodG1sX2QyNWIzNzMwZDdmNjQxZWJiNGRkNDRlMzAyNzMxZjIxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMDViMGRhYzc3MzVjNDJkNjk2MWQ4NDUzZTE4YTRkZDguYmluZFBvcHVwKHBvcHVwX2UzYzZmNTA0NDQ5ZjQ3YWZiZThhYmU5NzljMDE1NGM3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2I0OTIxNjBjOTMyYTQ1NjFiZjkxNmZiOTU0M2JhYzM1ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1OTE2MTksIC0xLjE5NTMzODddLCBbNTAuNjU5MTQxOCwgLTEuMTk1MjcwM10sIFs1MC42NTkwMDg1LCAtMS4xOTUwMTMxXSwgWzUwLjY1ODkxODgsIC0xLjE5NDgwNzhdLCBbNTAuNjU4OTEwNSwgLTEuMTk0NzgyN10sIFs1MC42NTg4NDQzLCAtMS4xOTQ2MDcxXSwgWzUwLjY1ODc5NDQsIC0xLjE5NDQ0NThdLCBbNTAuNjU4NzQ1OSwgLTEuMTk0MDAxMl0sIFs1MC42NTg3MTgyLCAtMS4xOTMzMzM3XSwgWzUwLjY1ODgyODIsIC0xLjE5MjQ5MTldLCBbNTAuNjU4OTk3MSwgLTEuMTkxNzM1NV0sIFs1MC42NTkwOTc3LCAtMS4xOTE1NTRdLCBbNTAuNjU5MjI3NywgLTEuMTkxNDE2MV0sIFs1MC42NTk0MzQ4LCAtMS4xOTEzMzAxXSwgWzUwLjY1OTU0MzcsIC0xLjE5MTI5MjZdLCBbNTAuNjU5NzA0NywgLTEuMTkxMjA0NV0sIFs1MC42NTk4NzgyLCAtMS4xOTEwNDYzXSwgWzUwLjY2MDAxMDgsIC0xLjE5MDkzNjNdLCBbNTAuNjYwMTgzNiwgLTEuMTkwODQ0Ml0sIFs1MC42NjAyNTU5LCAtMS4xOTA4MDg0XSwgWzUwLjY2MDQ1MTEsIC0xLjE5MDY4MzFdLCBbNTAuNjYwNDg1LCAtMS4xOTA2NTg3XSwgWzUwLjY2MDU4ODksIC0xLjE5MDU0Ml0sIFs1MC42NjA2ODMzLCAtMS4xOTAzOTk4XSwgWzUwLjY2MDgzODksIC0xLjE5MDA3OTNdLCBbNTAuNjYxMTAxNiwgLTEuMTg5NTk5Ml0sIFs1MC42NjE0MjQsIC0xLjE4OTExNDJdLCBbNTAuNjYxNjc1MiwgLTEuMTg4NzU3Nl0sIFs1MC42NjE4Mjk1LCAtMS4xODg1Mzg1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjQwMTJlMmI2ODlhNDdlMDhmYjBlNTEwNDdkODRhZTAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNDA0MGQ4MzFjNWY3NDU5Yzg5MzQxYjljNzg3MTQzZGEgPSAkKCc8ZGl2IGlkPSJodG1sXzQwNDBkODMxYzVmNzQ1OWM4OTM0MWI5Yzc4NzE0M2RhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQWx2ZXJzdG9uZSBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjQwMTJlMmI2ODlhNDdlMDhmYjBlNTEwNDdkODRhZTAuc2V0Q29udGVudChodG1sXzQwNDBkODMxYzVmNzQ1OWM4OTM0MWI5Yzc4NzE0M2RhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfYjQ5MjE2MGM5MzJhNDU2MWJmOTE2ZmI5NTQzYmFjMzUuYmluZFBvcHVwKHBvcHVwXzY0MDEyZTJiNjg5YTQ3ZTA4ZmIwZTUxMDQ3ZDg0YWUwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzcwMzFmZjk1OTUyYjQwMjViM2I3NGI1NWM3NmE2NWQ0ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1NTQxNjUsIC0xLjIwMDI2NTZdLCBbNTAuNjU1NDk5MywgLTEuMjAwMjY0MV0sIFs1MC42NTU2MTAyLCAtMS4yMDAyNDA1XSwgWzUwLjY1NTY5OTUsIC0xLjIwMDIxNV0sIFs1MC42NTU5NzAxLCAtMS4yMDAwOTA3XSwgWzUwLjY1NTk5NjYsIC0xLjIwMDA3ODVdLCBbNTAuNjU2Mjg2MSwgLTEuMTk5OTY0M10sIFs1MC42NTY0NTExLCAtMS4xOTk4NzE3XSwgWzUwLjY1NjYwODgsIC0xLjE5OTc1NzZdLCBbNTAuNjU2NzMwOCwgLTEuMTk5NjI3Nl0sIFs1MC42NTY4MTU4LCAtMS4xOTk1MjQ0XSwgWzUwLjY1NzA2MjEsIC0xLjE5OTIxMDhdLCBbNTAuNjU3MTc3NiwgLTEuMTk5MDg0N10sIFs1MC42NTcyNzQ0LCAtMS4xOTg5Njg2XSwgWzUwLjY1NzQxOTMsIC0xLjE5ODc1OTVdLCBbNTAuNjU3NTkzMywgLTEuMTk4NTAxNV0sIFs1MC42NTc3MTcsIC0xLjE5ODMwMjZdLCBbNTAuNjU3NzgyLCAtMS4xOTgxODA5XSwgWzUwLjY1Nzg3MzcsIC0xLjE5NzkzMTNdLCBbNTAuNjU4MDE0NCwgLTEuMTk3NTMxNV0sIFs1MC42NTgyMjYzLCAtMS4xOTY4MTk0XSwgWzUwLjY1ODM0NywgLTEuMTk2NDY1M10sIFs1MC42NTg0MzIsIC0xLjE5NjI4MDJdLCBbNTAuNjU4NDk4NCwgLTEuMTk2MTgxXSwgWzUwLjY1ODYxMDYsIC0xLjE5NjEwNzJdLCBbNTAuNjU4NzIzNywgLTEuMTk2MDM2Ml0sIFs1MC42NTg4MjgyLCAtMS4xOTU5NDldLCBbNTAuNjU4OTI5NCwgLTEuMTk1ODQxN10sIFs1MC42NTkwNDUsIC0xLjE5NTY2ODddLCBbNTAuNjU5MTE5OCwgLTEuMTk1NTE0NV0sIFs1MC42NTkxNTM4LCAtMS4xOTU0MjMzXSwgWzUwLjY1OTE2MTksIC0xLjE5NTMzODddXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jMjc4ZDJmNDBmMjQ0ZGZjOTBhYmUyOTBkZWFlMmZiZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82YzAzZjRlZmFmY2I0ZmVjOWU4ZWUyYzNkN2U0OTBhYyA9ICQoJzxkaXYgaWQ9Imh0bWxfNmMwM2Y0ZWZhZmNiNGZlYzllOGVlMmMzZDdlNDkwYWMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJBbHZlcnN0b25lIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jMjc4ZDJmNDBmMjQ0ZGZjOTBhYmUyOTBkZWFlMmZiZi5zZXRDb250ZW50KGh0bWxfNmMwM2Y0ZWZhZmNiNGZlYzllOGVlMmMzZDdlNDkwYWMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV83MDMxZmY5NTk1MmI0MDI1YjNiNzRiNTVjNzZhNjVkNC5iaW5kUG9wdXAocG9wdXBfYzI3OGQyZjQwZjI0NGRmYzkwYWJlMjkwZGVhZTJmYmYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZmRiNjYwOWRmZTg0NGQ1NDgyODlhZGQ0M2Q2MTYyNjUgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjU1NDE2NSwgLTEuMjAwMjY1Nl0sIFs1MC42NTQ5MzAzLCAtMS4yMDAyMTQ4XSwgWzUwLjY1NDY0ODMsIC0xLjIwMDE4ODFdLCBbNTAuNjUzOTY1MywgLTEuMjAwMTU0NF0sIFs1MC42NTM2NzE1LCAtMS4yMDAxNTA0XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZmYyOTQ4ODYwMTQ1NGQzMTllYWExZTc2M2FjYTllZGUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZjJhNjMyZWNjOThkNDRkMTgyMDI4NGYyMDdiNzUyMWMgPSAkKCc8ZGl2IGlkPSJodG1sX2YyYTYzMmVjYzk4ZDQ0ZDE4MjAyODRmMjA3Yjc1MjFjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQWx2ZXJzdG9uZSBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZmYyOTQ4ODYwMTQ1NGQzMTllYWExZTc2M2FjYTllZGUuc2V0Q29udGVudChodG1sX2YyYTYzMmVjYzk4ZDQ0ZDE4MjAyODRmMjA3Yjc1MjFjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfZmRiNjYwOWRmZTg0NGQ1NDgyODlhZGQ0M2Q2MTYyNjUuYmluZFBvcHVwKHBvcHVwX2ZmMjk0ODg2MDE0NTRkMzE5ZWFhMWU3NjNhY2E5ZWRlKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzNlOWMzZTdiZDk0ZjQ2ODZhNTNjOWZlZWU5MmExZDNjID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1NTQxNjUsIC0xLjIwMDI2NTZdLCBbNTAuNjU1MzcxNywgLTEuMjAwNDAyNl0sIFs1MC42NTUyMzA4LCAtMS4yMDA2MTUxXSwgWzUwLjY1NTA5MjIsIC0xLjIwMDgyNF0sIFs1MC42NTUwMTkyLCAtMS4yMDA5ODY2XSwgWzUwLjY1NDYyMzEsIC0xLjIwMTk0NzddLCBbNTAuNjU0MjM0NSwgLTEuMjAyODgxMl0sIFs1MC42NTQxMTg5LCAtMS4yMDMxNjQxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzYyYThlZmYzYzgyNGYzN2EyODU0MmJlZGE4ZDViMTkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNTIyNDhiZjgzN2JmNDI0MWE0Njg0N2JkNjlmZmUyZTIgPSAkKCc8ZGl2IGlkPSJodG1sXzUyMjQ4YmY4MzdiZjQyNDFhNDY4NDdiZDY5ZmZlMmUyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iRm9yZXN0IFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83NjJhOGVmZjNjODI0ZjM3YTI4NTQyYmVkYThkNWIxOS5zZXRDb250ZW50KGh0bWxfNTIyNDhiZjgzN2JmNDI0MWE0Njg0N2JkNjlmZmUyZTIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8zZTljM2U3YmQ5NGY0Njg2YTUzYzlmZWVlOTJhMWQzYy5iaW5kUG9wdXAocG9wdXBfNzYyYThlZmYzYzgyNGYzN2EyODU0MmJlZGE4ZDViMTkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfYTk2ZTNkZWZjOGFhNGFiMGE5Yzc2OGI2MjgxNDNmNjQgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjU0MTE4OSwgLTEuMjAzMTY0MV0sIFs1MC42NTM3NTE2LCAtMS4yMDQwODE0XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYWFiMzE4OTNjZjc3NDIwZmE5OTVkMDFkMDgxM2VlZTYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDQ2MjE3MmNmYjM0NDU5M2E4ZTkxNDQ2Y2RiNjZkYWIgPSAkKCc8ZGl2IGlkPSJodG1sX2Q0NjIxNzJjZmIzNDQ1OTNhOGU5MTQ0NmNkYjY2ZGFiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iRm9yZXN0IFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hYWIzMTg5M2NmNzc0MjBmYTk5NWQwMWQwODEzZWVlNi5zZXRDb250ZW50KGh0bWxfZDQ2MjE3MmNmYjM0NDU5M2E4ZTkxNDQ2Y2RiNjZkYWIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9hOTZlM2RlZmM4YWE0YWIwYTljNzY4YjYyODE0M2Y2NC5iaW5kUG9wdXAocG9wdXBfYWFiMzE4OTNjZjc3NDIwZmE5OTVkMDFkMDgxM2VlZTYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZTRhOThjNGU5NmE2NDg2MzlhYmJkNWI2YTA3N2NlMGEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjU0MTE4OSwgLTEuMjAzMTY0MV0sIFs1MC42NTQyNjcyLCAtMS4yMDMyMzA3XSwgWzUwLjY1NDQ2MSwgLTEuMjAzMjEzNl0sIFs1MC42NTQ5NTQxLCAtMS4yMDMwNTA1XSwgWzUwLjY1NTA0NzEsIC0xLjIwMjg5ODNdLCBbNTAuNjU1Mjg4NiwgLTEuMjAyMjI1M11dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzMzODUzMzRkMTIyZTQzZjU5ZDQ5M2FjYzJjMjkxMjU0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2JmYzMyNTE4Y2QzNTQ5M2JhYWRkNGIyOTZiOTRjMmZmID0gJCgnPGRpdiBpZD0iaHRtbF9iZmMzMjUxOGNkMzU0OTNiYWFkZDRiMjk2Yjk0YzJmZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkN1cHJlc3N1cyBBdmVudWUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zMzg1MzM0ZDEyMmU0M2Y1OWQ0OTNhY2MyYzI5MTI1NC5zZXRDb250ZW50KGh0bWxfYmZjMzI1MThjZDM1NDkzYmFhZGQ0YjI5NmI5NGMyZmYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9lNGE5OGM0ZTk2YTY0ODYzOWFiYmQ1YjZhMDc3Y2UwYS5iaW5kUG9wdXAocG9wdXBfMzM4NTMzNGQxMjJlNDNmNTlkNDkzYWNjMmMyOTEyNTQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNDIwMzhmODljOTRkNDIwMzg3NTBkODQ5MWQxNDBmYTggPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjU0MTE4OSwgLTEuMjAzMTY0MV0sIFs1MC42NTQyMzQ1LCAtMS4yMDI4ODEyXSwgWzUwLjY1NDYyMzEsIC0xLjIwMTk0NzddLCBbNTAuNjU1MDE5MiwgLTEuMjAwOTg2Nl0sIFs1MC42NTUwOTIyLCAtMS4yMDA4MjRdLCBbNTAuNjU1MjMwOCwgLTEuMjAwNjE1MV0sIFs1MC42NTUzNzE3LCAtMS4yMDA0MDI2XSwgWzUwLjY1NTQxNjUsIC0xLjIwMDI2NTZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yNmYxZmU5ODVhZTM0YzNhODg0YjIyMzUyNjRkM2Q0NSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84NzA3YWNhZTNiYTU0ZmQ0YTM1MjgzM2JhZGQ1ZDU1MCA9ICQoJzxkaXYgaWQ9Imh0bWxfODcwN2FjYWUzYmE1NGZkNGEzNTI4MzNiYWRkNWQ1NTAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJGb3Jlc3QgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzI2ZjFmZTk4NWFlMzRjM2E4ODRiMjIzNTI2NGQzZDQ1LnNldENvbnRlbnQoaHRtbF84NzA3YWNhZTNiYTU0ZmQ0YTM1MjgzM2JhZGQ1ZDU1MCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzQyMDM4Zjg5Yzk0ZDQyMDM4NzUwZDg0OTFkMTQwZmE4LmJpbmRQb3B1cChwb3B1cF8yNmYxZmU5ODVhZTM0YzNhODg0YjIyMzUyNjRkM2Q0NSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV84MTc0NDAzNzExMGU0MWJkYmJjYzk5M2FmYjJkZWQ4NSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTM2OTYzLCAtMS4yMDQyMTI5XSwgWzUwLjY1Mzc1MTYsIC0xLjIwNDA4MTRdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jMDNlN2FlNDZjY2I0MmY4ODJkNzZjOGM2ODIyNzE0YSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83ODk5ZjdiY2UzZGU0YWQ0ODRhNDJkMGRjOGRhMzM1NiA9ICQoJzxkaXYgaWQ9Imh0bWxfNzg5OWY3YmNlM2RlNGFkNDg0YTQyZDBkYzhkYTMzNTYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJGb3Jlc3QgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2MwM2U3YWU0NmNjYjQyZjg4MmQ3NmM4YzY4MjI3MTRhLnNldENvbnRlbnQoaHRtbF83ODk5ZjdiY2UzZGU0YWQ0ODRhNDJkMGRjOGRhMzM1Nik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzgxNzQ0MDM3MTEwZTQxYmRiYmNjOTkzYWZiMmRlZDg1LmJpbmRQb3B1cChwb3B1cF9jMDNlN2FlNDZjY2I0MmY4ODJkNzZjOGM2ODIyNzE0YSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV85Yzc0MWUxNzJkNDg0ZjVhODZhMmNlYjk1MmMyMjEzZSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTM2OTYzLCAtMS4yMDQyMTI5XSwgWzUwLjY1MzU2NDEsIC0xLjIwNDA5OTNdLCBbNTAuNjUzNDE4OCwgLTEuMjAzOTQ5NV0sIFs1MC42NTMyNTU2LCAtMS4yMDM3NDMxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjc2YTllNDJmNDNkNGI5MTgwZmQ3NjI2YTc0YzMwNmUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfN2VlMjEyMmU5NmY2NGJmOWJmYTVjZDhlNTRmMzAxMGIgPSAkKCc8ZGl2IGlkPSJodG1sXzdlZTIxMjJlOTZmNjRiZjliZmE1Y2Q4ZTU0ZjMwMTBiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iRm9yZXN0IFdheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzI3NmE5ZTQyZjQzZDRiOTE4MGZkNzYyNmE3NGMzMDZlLnNldENvbnRlbnQoaHRtbF83ZWUyMTIyZTk2ZjY0YmY5YmZhNWNkOGU1NGYzMDEwYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzljNzQxZTE3MmQ0ODRmNWE4NmEyY2ViOTUyYzIyMTNlLmJpbmRQb3B1cChwb3B1cF8yNzZhOWU0MmY0M2Q0YjkxODBmZDc2MjZhNzRjMzA2ZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9kN2JkZGUxYmU4NDc0ZGRiYWJjZDQ0OWJjNzEyOTNmNyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTM2OTYzLCAtMS4yMDQyMTI5XSwgWzUwLjY1MzY0NDQsIC0xLjIwNDM2MDRdLCBbNTAuNjUzNjA5NywgLTEuMjA0NTA3M10sIFs1MC42NTM2MTIsIC0xLjIwNDY1NjRdLCBbNTAuNjUzNjcwOCwgLTEuMjA0OTk0N10sIFs1MC42NTQxMzY3LCAtMS4yMDc1NjNdLCBbNTAuNjU0NDczNCwgLTEuMjA5NDAyOV0sIFs1MC42NTQ1MzAyLCAtMS4yMDk3MjAyXSwgWzUwLjY1NDYxOCwgLTEuMjEwMjEwM10sIFs1MC42NTQ2MzY3LCAtMS4yMTAzODg3XSwgWzUwLjY1NDY0NzYsIC0xLjIxMDYwMzVdLCBbNTAuNjU0NjI5NywgLTEuMjEwODUyMV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzBmMjYzNzk5NjY2NTQ0NTk5ZjYzZTFhNDcyMzFjNzlhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2ViY2ZmNmYxOTAzYzQ3ZWNiOWNmMjcyMDc5ZjBhNGNiID0gJCgnPGRpdiBpZD0iaHRtbF9lYmNmZjZmMTkwM2M0N2VjYjljZjI3MjA3OWYwYTRjYiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkZvcmVzdCBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMGYyNjM3OTk2NjY1NDQ1OTlmNjNlMWE0NzIzMWM3OWEuc2V0Q29udGVudChodG1sX2ViY2ZmNmYxOTAzYzQ3ZWNiOWNmMjcyMDc5ZjBhNGNiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfZDdiZGRlMWJlODQ3NGRkYmFiY2Q0NDliYzcxMjkzZjcuYmluZFBvcHVwKHBvcHVwXzBmMjYzNzk5NjY2NTQ0NTk5ZjYzZTFhNDcyMzFjNzlhKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2U1ZWIxZTJjYjRiNzRlMmJhOTZjNjMwYWM5ZDg3ZGVjID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1Mzc1MTYsIC0xLjIwNDA4MTRdLCBbNTAuNjUzNjk2MywgLTEuMjA0MjEyOV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2EyYzYyMmFiZjQwYzQyMDE4NzBkMzg2YmIwZTk4MTgzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzMwOGIxY2Y5OGU0MjQzODc5MGMyOGM4ZmU0NGVhM2U4ID0gJCgnPGRpdiBpZD0iaHRtbF8zMDhiMWNmOThlNDI0Mzg3OTBjMjhjOGZlNDRlYTNlOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkZvcmVzdCBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTJjNjIyYWJmNDBjNDIwMTg3MGQzODZiYjBlOTgxODMuc2V0Q29udGVudChodG1sXzMwOGIxY2Y5OGU0MjQzODc5MGMyOGM4ZmU0NGVhM2U4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfZTVlYjFlMmNiNGI3NGUyYmE5NmM2MzBhYzlkODdkZWMuYmluZFBvcHVwKHBvcHVwX2EyYzYyMmFiZjQwYzQyMDE4NzBkMzg2YmIwZTk4MTgzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzcxYjJjZTA1OTg4YjRiM2U5NWMzYjRlYTJhMTdkMjM4ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1Mzc1MTYsIC0xLjIwNDA4MTRdLCBbNTAuNjU0MTE4OSwgLTEuMjAzMTY0MV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Y3ZjY3MTZjNWM4MjQ2ZjhiMmE3YmQ1MjI5YjdiOGQwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzI3YmEyMWI0ZTdjZDQ5N2FiMmEzMGJiYjE2YTI0YTk1ID0gJCgnPGRpdiBpZD0iaHRtbF8yN2JhMjFiNGU3Y2Q0OTdhYjJhMzBiYmIxNmEyNGE5NSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkZvcmVzdCBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZjdmNjcxNmM1YzgyNDZmOGIyYTdiZDUyMjliN2I4ZDAuc2V0Q29udGVudChodG1sXzI3YmEyMWI0ZTdjZDQ5N2FiMmEzMGJiYjE2YTI0YTk1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNzFiMmNlMDU5ODhiNGIzZTk1YzNiNGVhMmExN2QyMzguYmluZFBvcHVwKHBvcHVwX2Y3ZjY3MTZjNWM4MjQ2ZjhiMmE3YmQ1MjI5YjdiOGQwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzRjMTMzODA4NGJhMTQ1ZTViYmFmNmQ3MWE0Y2ZkOGQ2ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1Mzc1MTYsIC0xLjIwNDA4MTRdLCBbNTAuNjUzODcwNCwgLTEuMjA0MTY4OF0sIFs1MC42NTQxMDI4LCAtMS4yMDQzMzk2XSwgWzUwLjY1NDM0NTcsIC0xLjIwNDQzODldLCBbNTAuNjU0NDk5NSwgLTEuMjA0NDc0XSwgWzUwLjY1NDU3NCwgLTEuMjA0OTA1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODViZTEzZGY3YjIxNDI1Y2E4NmNlZmFmMGViY2QwYzAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOTA1YTE2ZmNmZDA4NDhlMGEwOGMyNmY1ZjM0ZGQ1ZDcgPSAkKCc8ZGl2IGlkPSJodG1sXzkwNWExNmZjZmQwODQ4ZTBhMDhjMjZmNWYzNGRkNWQ3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iRm9yZXN0IERlbGwiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84NWJlMTNkZjdiMjE0MjVjYTg2Y2VmYWYwZWJjZDBjMC5zZXRDb250ZW50KGh0bWxfOTA1YTE2ZmNmZDA4NDhlMGEwOGMyNmY1ZjM0ZGQ1ZDcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV80YzEzMzgwODRiYTE0NWU1YmJhZjZkNzFhNGNmZDhkNi5iaW5kUG9wdXAocG9wdXBfODViZTEzZGY3YjIxNDI1Y2E4NmNlZmFmMGViY2QwYzApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfYWMwMDQ5NzNmY2I1NGRmMjg5ZTY5MzYzY2VmZWE2YWYgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQxNTM3MywgLTEuMjEwMzkyM10sIFs1MC42NDE2Nzk2LCAtMS4yMTA0ODQzXSwgWzUwLjY0MTc4NDYsIC0xLjIxMDQ1NTVdLCBbNTAuNjQyMTEwNCwgLTEuMjEwMjY0N10sIFs1MC42NDI2MDA1LCAtMS4yMDk4NjQyXSwgWzUwLjY0Mjc1OSwgLTEuMjA5NzIzOF0sIFs1MC42NDI4MTM1LCAtMS4yMDk2NzU1XSwgWzUwLjY0MzAxMjcsIC0xLjIwOTU0MjFdLCBbNTAuNjQzMTcyMiwgLTEuMjA5NDk4XSwgWzUwLjY0MzE5MiwgLTEuMjA5NDkyNV0sIFs1MC42NDMyMjQ2LCAtMS4yMDk0OTI5XSwgWzUwLjY0MzQxNzEsIC0xLjIwOTQ5NTZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iMWE1YzdkNDc2MDQ0ZDg5OThkNWU4NTI5ZDU4ZjZkOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xMmUwYzkzY2M0ZjI0ZWFmYTQ4MjhkNjdlZmQxMzRkMiA9ICQoJzxkaXYgaWQ9Imh0bWxfMTJlMGM5M2NjNGYyNGVhZmE0ODI4ZDY3ZWZkMTM0ZDIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJQcmluY2VsZXR0IFNodXRlIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYjFhNWM3ZDQ3NjA0NGQ4OTk4ZDVlODUyOWQ1OGY2ZDguc2V0Q29udGVudChodG1sXzEyZTBjOTNjYzRmMjRlYWZhNDgyOGQ2N2VmZDEzNGQyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfYWMwMDQ5NzNmY2I1NGRmMjg5ZTY5MzYzY2VmZWE2YWYuYmluZFBvcHVwKHBvcHVwX2IxYTVjN2Q0NzYwNDRkODk5OGQ1ZTg1MjlkNThmNmQ4KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzM3OGFjNDViZjkzZjQ0ZTlhN2QyNTk2MWVhYmIzMTdiID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY0MTUzNzMsIC0xLjIxMDM5MjNdLCBbNTAuNjQxNjYzMywgLTEuMjEwMTQ0M10sIFs1MC42NDE3MzcyLCAtMS4yMV0sIFs1MC42NDE4MjQyLCAtMS4yMDk4MDUyXSwgWzUwLjY0MTk0OTcsIC0xLjIwOTQyMjNdLCBbNTAuNjQyMTU5OSwgLTEuMjA4NjM2OF0sIFs1MC42NDIyMDYzLCAtMS4yMDg1MzE1XSwgWzUwLjY0MjIzNjIsIC0xLjIwODQ4Ml1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2ZhMWU4Y2NlYjQ0MDQ4MzFiMjY5YzZjOGQzNjc4NzdmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2U0OTJlYTI5NWNmNTRkYTM5Mzg1ZTdlMzUxNmYyZjM5ID0gJCgnPGRpdiBpZD0iaHRtbF9lNDkyZWEyOTVjZjU0ZGEzOTM4NWU3ZTM1MTZmMmYzOSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IlZlbnRub3IgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2ZhMWU4Y2NlYjQ0MDQ4MzFiMjY5YzZjOGQzNjc4NzdmLnNldENvbnRlbnQoaHRtbF9lNDkyZWEyOTVjZjU0ZGEzOTM4NWU3ZTM1MTZmMmYzOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzM3OGFjNDViZjkzZjQ0ZTlhN2QyNTk2MWVhYmIzMTdiLmJpbmRQb3B1cChwb3B1cF9mYTFlOGNjZWI0NDA0ODMxYjI2OWM2YzhkMzY3ODc3Zik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV83NzM4NDI2ODYwYTU0YjY4YWQ5ZDAxMGNkMDhiMzNhNyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NDcwMTUsIC0xLjIwMjgwNDRdLCBbNTAuNjQ3MTQzNywgLTEuMjAyNzg4MV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzY1ZmMwNTQ0MTk3NDRjYWJhMWJkODEzODNiOTEzNmNlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2MzOGI5NzQzYzc4ODRmY2ViN2ZjNjM2Yjc5ZGRkMGFhID0gJCgnPGRpdiBpZD0iaHRtbF9jMzhiOTc0M2M3ODg0ZmNlYjdmYzYzNmI3OWRkZDBhYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkFsdmVyc3RvbmUgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzY1ZmMwNTQ0MTk3NDRjYWJhMWJkODEzODNiOTEzNmNlLnNldENvbnRlbnQoaHRtbF9jMzhiOTc0M2M3ODg0ZmNlYjdmYzYzNmI3OWRkZDBhYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzc3Mzg0MjY4NjBhNTRiNjhhZDlkMDEwY2QwOGIzM2E3LmJpbmRQb3B1cChwb3B1cF82NWZjMDU0NDE5NzQ0Y2FiYTFiZDgxMzgzYjkxMzZjZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8wM2UwYjM3NDZhOTI0YjhkOGEwNjhmMDRmN2MwZjZhNyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NDcwMTUsIC0xLjIwMjgwNDRdLCBbNTAuNjQ3MDk5NywgLTEuMjAzMDYzOF0sIFs1MC42NDcxNjkyLCAtMS4yMDM0MTk1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjFlNDc2NTcwMTYxNDg4MDlmZjUzYWNlYTU2MjVlMGQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjY5ZjM5YjJlNTdmNGNlZmE5NDQ2ZjlmNTdiMGI1MmQgPSAkKCc8ZGl2IGlkPSJodG1sX2I2OWYzOWIyZTU3ZjRjZWZhOTQ0NmY5ZjU3YjBiNTJkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iTmV3cG9ydCBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjFlNDc2NTcwMTYxNDg4MDlmZjUzYWNlYTU2MjVlMGQuc2V0Q29udGVudChodG1sX2I2OWYzOWIyZTU3ZjRjZWZhOTQ0NmY5ZjU3YjBiNTJkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMDNlMGIzNzQ2YTkyNGI4ZDhhMDY4ZjA0ZjdjMGY2YTcuYmluZFBvcHVwKHBvcHVwXzYxZTQ3NjU3MDE2MTQ4ODA5ZmY1M2FjZWE1NjI1ZTBkKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2QwZDE2MzY3NWFkNzQ3MDk4ZDI3YTM3YmM1ZjdjZjBjID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY0NzAxNSwgLTEuMjAyODA0NF0sIFs1MC42NDY4ODMyLCAtMS4yMDIzMDYxXSwgWzUwLjY0Njc5MzUsIC0xLjIwMTg1MTVdLCBbNTAuNjQ2Njc2OCwgLTEuMjAxMTM0Nl0sIFs1MC42NDY2MDQyLCAtMS4yMDAyNDQyXSwgWzUwLjY0NjU1OSwgLTEuMTk5NzIxXSwgWzUwLjY0NjQ2MTEsIC0xLjE5NzgxOTFdLCBbNTAuNjQ2NDYxOCwgLTEuMTk3NzQzNl0sIFs1MC42NDY0NzI5LCAtMS4xOTY3NDI2XSwgWzUwLjY0NjQ3NSwgLTEuMTk2MjA4N10sIFs1MC42NDY0OTE1LCAtMS4xOTU5OTM5XSwgWzUwLjY0NjUzNDEsIC0xLjE5NTY1MTZdLCBbNTAuNjQ2NTYyNywgLTEuMTk1NDI5MV0sIFs1MC42NDY1Nzk0LCAtMS4xOTUyOTldLCBbNTAuNjQ2NjgyOSwgLTEuMTk0ODMzNV0sIFs1MC42NDY3MDI1LCAtMS4xOTQ3NDE2XSwgWzUwLjY0Njc4NjQsIC0xLjE5NDM2MzhdLCBbNTAuNjQ2ODI3MSwgLTEuMTkzODMzNF0sIFs1MC42NDY4MjI2LCAtMS4xOTM2NDk0XSwgWzUwLjY0NjgxNzEsIC0xLjE5MzQ2NTNdLCBbNTAuNjQ2NzI2MiwgLTEuMTkyODA3OV0sIFs1MC42NDY2ODk5LCAtMS4xOTIzOTE1XSwgWzUwLjY0NjYzMTEsIC0xLjE5MTI0MDRdLCBbNTAuNjQ2NjA1OSwgLTEuMTkwNTI1NF0sIFs1MC42NDY1OTg3LCAtMS4xOTAyNTcxXSwgWzUwLjY0NjU4OTcsIC0xLjE4OTkyNF0sIFs1MC42NDY2MTU4LCAtMS4xODkzNzhdLCBbNTAuNjQ2NjM5MiwgLTEuMTg4Nzg3M10sIFs1MC42NDY2MzYyLCAtMS4xODg1OTE3XSwgWzUwLjY0NjYzMzMsIC0xLjE4ODM5NzZdLCBbNTAuNjQ2NTk3NiwgLTEuMTg3NzE4NV0sIFs1MC42NDY1ODk3LCAtMS4xODc0NzQ4XSwgWzUwLjY0NjYxNSwgLTEuMTg2ODc1MV0sIFs1MC42NDY2NjYxLCAtMS4xODYzOTgxXSwgWzUwLjY0NjY4NjYsIC0xLjE4NjA0MTFdLCBbNTAuNjQ2Njk5MiwgLTEuMTg1ODIxNF0sIFs1MC42NDY3MDksIC0xLjE4NTM1MDZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yYzk4NDNlN2ZkOGQ0OTljOWZjNDcwZDA0OTFkNDI5YyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83MDVjNzEyOWE4MDE0M2ExODQ4YTYwNDhmNGJiNDJhNiA9ICQoJzxkaXYgaWQ9Imh0bWxfNzA1YzcxMjlhODAxNDNhMTg0OGE2MDQ4ZjRiYjQyYTYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJOZXdwb3J0IFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yYzk4NDNlN2ZkOGQ0OTljOWZjNDcwZDA0OTFkNDI5Yy5zZXRDb250ZW50KGh0bWxfNzA1YzcxMjlhODAxNDNhMTg0OGE2MDQ4ZjRiYjQyYTYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9kMGQxNjM2NzVhZDc0NzA5OGQyN2EzN2JjNWY3Y2YwYy5iaW5kUG9wdXAocG9wdXBfMmM5ODQzZTdmZDhkNDk5YzlmYzQ3MGQwNDkxZDQyOWMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfN2FkMDUwODFlODBkNGVjYThjMThkYzYzNzY4NGRjNzcgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQ3MDE1LCAtMS4yMDI4MDQ0XSwgWzUwLjY0Njg4NzUsIC0xLjIwMjg4ODhdLCBbNTAuNjQ2Nzg5LCAtMS4yMDI5Nzk5XSwgWzUwLjY0NjUzNzMsIC0xLjIwMzI2NzZdLCBbNTAuNjQ2MzY4MSwgLTEuMjAzNDI5OF0sIFs1MC42NDYxNzkzLCAtMS4yMDM2MTU1XSwgWzUwLjY0NjA2ODIsIC0xLjIwMzcyNzRdLCBbNTAuNjQ1ODA4NCwgLTEuMjAzOTg5MV0sIFs1MC42NDU3MDcsIC0xLjIwNDA2NjddLCBbNTAuNjQ1NTg5OCwgLTEuMjA0MTg1N10sIFs1MC42NDU0NTgsIC0xLjIwNDM2MTRdLCBbNTAuNjQ1NDAxOSwgLTEuMjA0NDYzM10sIFs1MC42NDUzNTY3LCAtMS4yMDQ1MTk1XSwgWzUwLjY0NDk5MDIsIC0xLjIwNDgzNjFdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lNmY1M2MxNGUzN2M0Zjk4ODkzY2E2ZmU2MmMxMzBhYSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lMDQyY2RlM2MyZTQ0ZWRiYWQ1ZmI4NzRkYjgxMTc1NSA9ICQoJzxkaXYgaWQ9Imh0bWxfZTA0MmNkZTNjMmU0NGVkYmFkNWZiODc0ZGI4MTE3NTUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJWZW50bm9yIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lNmY1M2MxNGUzN2M0Zjk4ODkzY2E2ZmU2MmMxMzBhYS5zZXRDb250ZW50KGh0bWxfZTA0MmNkZTNjMmU0NGVkYmFkNWZiODc0ZGI4MTE3NTUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV83YWQwNTA4MWU4MGQ0ZWNhOGMxOGRjNjM3Njg0ZGM3Ny5iaW5kUG9wdXAocG9wdXBfZTZmNTNjMTRlMzdjNGY5ODg5M2NhNmZlNjJjMTMwYWEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNTUxNTAzYTk1NDI5NDUyZGExZjZkZDA5ZDNkNWY2ODEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQyMjY1NCwgLTEuMjA4NDMzNl0sIFs1MC42NDIyMzYyLCAtMS4yMDg0ODJdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yNWVjN2M4MGViODE0NDFhYTM5NDY4ODM5ZGEwMjM4MCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hMWRiMmY2YzJmYzk0NjQwYTU2Y2NmNTAzMzU5YTI3YSA9ICQoJzxkaXYgaWQ9Imh0bWxfYTFkYjJmNmMyZmM5NDY0MGE1NmNjZjUwMzM1OWEyN2EiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJWZW50bm9yIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yNWVjN2M4MGViODE0NDFhYTM5NDY4ODM5ZGEwMjM4MC5zZXRDb250ZW50KGh0bWxfYTFkYjJmNmMyZmM5NDY0MGE1NmNjZjUwMzM1OWEyN2EpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV81NTE1MDNhOTU0Mjk0NTJkYTFmNmRkMDlkM2Q1ZjY4MS5iaW5kUG9wdXAocG9wdXBfMjVlYzdjODBlYjgxNDQxYWEzOTQ2ODgzOWRhMDIzODApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMzI3M2VmMmVhYTIwNGU1MWI1MWMwMTgwMDAwMWYwZDggPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQyMjY1NCwgLTEuMjA4NDMzNl0sIFs1MC42NDIzODk2LCAtMS4yMDg0OTE5XSwgWzUwLjY0MzAwMzUsIC0xLjIwODk2ODJdLCBbNTAuNjQzMTc0NCwgLTEuMjA5MDg5Ml0sIFs1MC42NDMyNTQsIC0xLjIwOTE1NV0sIFs1MC42NDM0MTcxLCAtMS4yMDk0OTU2XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzNjYmNkODNkM2E5NDNiYjgxNmM1MzdmM2NlMjEyMDcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTFlODg4NGE0ZGI4NDU3N2EyNDQxNWE1NzQ0MTY3MmYgPSAkKCc8ZGl2IGlkPSJodG1sX2ExZTg4ODRhNGRiODQ1NzdhMjQ0MTVhNTc0NDE2NzJmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iTGl0dGxlIFByaW5jbGV0dCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2MzY2JjZDgzZDNhOTQzYmI4MTZjNTM3ZjNjZTIxMjA3LnNldENvbnRlbnQoaHRtbF9hMWU4ODg0YTRkYjg0NTc3YTI0NDE1YTU3NDQxNjcyZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzMyNzNlZjJlYWEyMDRlNTFiNTFjMDE4MDAwMDFmMGQ4LmJpbmRQb3B1cChwb3B1cF9jM2NiY2Q4M2QzYTk0M2JiODE2YzUzN2YzY2UyMTIwNyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9iM2VjOWM3N2M1NzI0YzcxOTA1N2FkYjY4NGNiZTlmYSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NDIyNjU0LCAtMS4yMDg0MzM2XSwgWzUwLjY0MjUxMTEsIC0xLjIwODA1NDVdLCBbNTAuNjQyNjE1MSwgLTEuMjA3ODc4NV0sIFs1MC42NDI5OTA1LCAtMS4yMDcyNTQ5XSwgWzUwLjY0MzA4NSwgLTEuMjA3MTE4OF0sIFs1MC42NDM1MjA3LCAtMS4yMDY1NjIxXSwgWzUwLjY0Mzc0NTQsIC0xLjIwNjI3NjZdLCBbNTAuNjQ0MDY5MiwgLTEuMjA1ODI3OF0sIFs1MC42NDQzMTc1LCAtMS4yMDU0NzI1XSwgWzUwLjY0NDQzNzksIC0xLjIwNTMyODNdLCBbNTAuNjQ0NjMzLCAtMS4yMDUxNjczXSwgWzUwLjY0NDk5MDIsIC0xLjIwNDgzNjFdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xNDVjMjZjMTI1N2Y0MDVjOGFiMjgzZGU5OTUzMjZhOSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yOGJjNWNiYWIxNjA0YWQ4ODc3Y2I5MTFhMjVlMTdlNiA9ICQoJzxkaXYgaWQ9Imh0bWxfMjhiYzVjYmFiMTYwNGFkODg3N2NiOTExYTI1ZTE3ZTYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJWZW50bm9yIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xNDVjMjZjMTI1N2Y0MDVjOGFiMjgzZGU5OTUzMjZhOS5zZXRDb250ZW50KGh0bWxfMjhiYzVjYmFiMTYwNGFkODg3N2NiOTExYTI1ZTE3ZTYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9iM2VjOWM3N2M1NzI0YzcxOTA1N2FkYjY4NGNiZTlmYS5iaW5kUG9wdXAocG9wdXBfMTQ1YzI2YzEyNTdmNDA1YzhhYjI4M2RlOTk1MzI2YTkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfOGEwY2YxOTkyNzcxNGExYWIxODMwYTRjZDBhZWZiMjUgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQ0OTkwMiwgLTEuMjA0ODM2MV0sIFs1MC42NDUyMTA2LCAtMS4yMDUzMzg5XSwgWzUwLjY0NTMxNTEsIC0xLjIwNTQzNjldLCBbNTAuNjQ1NDM3NCwgLTEuMjA1NTM1M10sIFs1MC42NDU1ODY1LCAtMS4yMDU3MjQ4XSwgWzUwLjY0NTY2NSwgLTEuMjA1NjEwOV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzQxZDAyOGI1N2E2ZTQwYzg5Mjk1MjI3NDE0ZTM3NjdjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzIzY2U0MWUwY2E5MjQwY2Q5ZDRlZGM5YjY1MWYwODQ4ID0gJCgnPGRpdiBpZD0iaHRtbF8yM2NlNDFlMGNhOTI0MGNkOWQ0ZWRjOWI2NTFmMDg0OCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IlRoZSBCcmFtYmxlcyI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzQxZDAyOGI1N2E2ZTQwYzg5Mjk1MjI3NDE0ZTM3NjdjLnNldENvbnRlbnQoaHRtbF8yM2NlNDFlMGNhOTI0MGNkOWQ0ZWRjOWI2NTFmMDg0OCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzhhMGNmMTk5Mjc3MTRhMWFiMTgzMGE0Y2QwYWVmYjI1LmJpbmRQb3B1cChwb3B1cF80MWQwMjhiNTdhNmU0MGM4OTI5NTIyNzQxNGUzNzY3Yyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8wYmQyNTcwODE4YTY0MGEzODI3MWYwZGE4ODBiNDAzMSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NDQ5OTAyLCAtMS4yMDQ4MzYxXSwgWzUwLjY0NTM1NjcsIC0xLjIwNDUxOTVdLCBbNTAuNjQ1NDAxOSwgLTEuMjA0NDYzM10sIFs1MC42NDU0NTgsIC0xLjIwNDM2MTRdLCBbNTAuNjQ1NTg5OCwgLTEuMjA0MTg1N10sIFs1MC42NDU3MDcsIC0xLjIwNDA2NjddLCBbNTAuNjQ1ODA4NCwgLTEuMjAzOTg5MV0sIFs1MC42NDYwNjgyLCAtMS4yMDM3Mjc0XSwgWzUwLjY0NjE3OTMsIC0xLjIwMzYxNTVdLCBbNTAuNjQ2MzY4MSwgLTEuMjAzNDI5OF0sIFs1MC42NDY1MzczLCAtMS4yMDMyNjc2XSwgWzUwLjY0Njc4OSwgLTEuMjAyOTc5OV0sIFs1MC42NDY4ODc1LCAtMS4yMDI4ODg4XSwgWzUwLjY0NzAxNSwgLTEuMjAyODA0NF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzk2MGYwMTUyZjEwMTQ3NmNiZDAyZGIzY2QwM2Y1MzMzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2Q5M2EyODVkZTY5NjRhM2M5YzBhNzExOTA0ZjQwMzBlID0gJCgnPGRpdiBpZD0iaHRtbF9kOTNhMjg1ZGU2OTY0YTNjOWMwYTcxMTkwNGY0MDMwZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IlZlbnRub3IgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzk2MGYwMTUyZjEwMTQ3NmNiZDAyZGIzY2QwM2Y1MzMzLnNldENvbnRlbnQoaHRtbF9kOTNhMjg1ZGU2OTY0YTNjOWMwYTcxMTkwNGY0MDMwZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzBiZDI1NzA4MThhNjQwYTM4MjcxZjBkYTg4MGI0MDMxLmJpbmRQb3B1cChwb3B1cF85NjBmMDE1MmYxMDE0NzZjYmQwMmRiM2NkMDNmNTMzMyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8xZjBhYTNlMzE2YzE0MTQyYTYwNGMwMzM3NmI4ZWQzYiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NDQ5OTAyLCAtMS4yMDQ4MzYxXSwgWzUwLjY0NDYzMywgLTEuMjA1MTY3M10sIFs1MC42NDQ0Mzc5LCAtMS4yMDUzMjgzXSwgWzUwLjY0NDMxNzUsIC0xLjIwNTQ3MjVdLCBbNTAuNjQ0MDY5MiwgLTEuMjA1ODI3OF0sIFs1MC42NDM3NDU0LCAtMS4yMDYyNzY2XSwgWzUwLjY0MzUyMDcsIC0xLjIwNjU2MjFdLCBbNTAuNjQzMDg1LCAtMS4yMDcxMTg4XSwgWzUwLjY0Mjk5MDUsIC0xLjIwNzI1NDldLCBbNTAuNjQyNjE1MSwgLTEuMjA3ODc4NV0sIFs1MC42NDI1MTExLCAtMS4yMDgwNTQ1XSwgWzUwLjY0MjI2NTQsIC0xLjIwODQzMzZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80NzVhNWRjNWQwZjY0Mzg0ODMwNDIwMmU4ZmIxNDRhNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jZGIwZWQ3NDgzZDk0ZTJmYjQ3NTc3YTMyZTY0NmU1YiA9ICQoJzxkaXYgaWQ9Imh0bWxfY2RiMGVkNzQ4M2Q5NGUyZmI0NzU3N2EzMmU2NDZlNWIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJWZW50bm9yIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80NzVhNWRjNWQwZjY0Mzg0ODMwNDIwMmU4ZmIxNDRhNy5zZXRDb250ZW50KGh0bWxfY2RiMGVkNzQ4M2Q5NGUyZmI0NzU3N2EzMmU2NDZlNWIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8xZjBhYTNlMzE2YzE0MTQyYTYwNGMwMzM3NmI4ZWQzYi5iaW5kUG9wdXAocG9wdXBfNDc1YTVkYzVkMGY2NDM4NDgzMDQyMDJlOGZiMTQ0YTcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfOTRkZWE4YjkzMGJhNDJjMTgxMTJkMDRjNjI3YjAyZjcgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQ2NzA5LCAtMS4xODUzNTA2XSwgWzUwLjY0Njc5MzUsIC0xLjE4NTM2MjZdLCBbNTAuNjQ2ODI1OSwgLTEuMTg1MzgwNF0sIFs1MC42NDcwMjA1LCAtMS4xODU1NTJdLCBbNTAuNjQ3MTUyMiwgLTEuMTg1NjcxNl0sIFs1MC42NDc0NTA0LCAtMS4xODU5MzgyXSwgWzUwLjY0NzY3MDcsIC0xLjE4NjA5MDhdLCBbNTAuNjQ3ODExMSwgLTEuMTg2MTg4N10sIFs1MC42NDc5ODkyLCAtMS4xODYyODE1XSwgWzUwLjY0ODIwNjksIC0xLjE4NjM4NjldLCBbNTAuNjQ4NDAwNCwgLTEuMTg2NDc4N10sIFs1MC42NDg1NDMyLCAtMS4xODY1Njk1XSwgWzUwLjY0ODc4MTEsIC0xLjE4Njg0MjhdLCBbNTAuNjQ5MDQ2MywgLTEuMTg3MTc0M10sIFs1MC42NDkyMTM3LCAtMS4xODczNzE2XSwgWzUwLjY0OTQ5MjksIC0xLjE4NzU2NDhdLCBbNTAuNjQ5NzAyOSwgLTEuMTg3NjI5Ml0sIFs1MC42NDk4NjE5LCAtMS4xODc2MjY1XSwgWzUwLjY1MDE5MDEsIC0xLjE4NzU4MzZdLCBbNTAuNjUwNTI1MSwgLTEuMTg3NTk1OV0sIFs1MC42NTA1OTEsIC0xLjE4NzU1NzRdLCBbNTAuNjUwODczLCAtMS4xODY4NTk0XSwgWzUwLjY1MTEwOTMsIC0xLjE4NjMwOTZdLCBbNTAuNjUxMjkyMiwgLTEuMTg1OTY0OV0sIFs1MC42NTE5MzI0LCAtMS4xODUyNDg3XSwgWzUwLjY1MjEzNzMsIC0xLjE4NDkyMjldLCBbNTAuNjUyMjk0LCAtMS4xODQ3NzU1XSwgWzUwLjY1MjU1NzYsIC0xLjE4NDYyOTFdLCBbNTAuNjUyODUxOSwgLTEuMTg0NTA1NV0sIFs1MC42NTI5MDkxLCAtMS4xODQ0ODE1XSwgWzUwLjY1MzI5MDcsIC0xLjE4NDMyNTRdLCBbNTAuNjUzMzI3NywgLTEuMTg0MzAzOV0sIFs1MC42NTM3NDc2LCAtMS4xODQwNzU1XSwgWzUwLjY1Mzg0NDIsIC0xLjE4Mzg3NzNdLCBbNTAuNjU0MDk0NCwgLTEuMTgzMTY5OF0sIFs1MC42NTQxNDMsIC0xLjE4MzAyNDldLCBbNTAuNjU0MzA4LCAtMS4xODI1NjQ2XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYTk4MzRkY2I1MjkxNDBjNGEyZGUwYWUyZjI0MTU0NWEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfY2JiODVlNTIyNWExNDA2NjlkYmU3MzgwZmVjZDRjNTkgPSAkKCc8ZGl2IGlkPSJodG1sX2NiYjg1ZTUyMjVhMTQwNjY5ZGJlNzM4MGZlY2Q0YzU5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5bIlNjb3RjaGVsbHMgQnJvb2sgTGFuZSIsICJFbWJhc3N5IFdheSJdPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hOTgzNGRjYjUyOTE0MGM0YTJkZTBhZTJmMjQxNTQ1YS5zZXRDb250ZW50KGh0bWxfY2JiODVlNTIyNWExNDA2NjlkYmU3MzgwZmVjZDRjNTkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV85NGRlYThiOTMwYmE0MmMxODExMmQwNGM2MjdiMDJmNy5iaW5kUG9wdXAocG9wdXBfYTk4MzRkY2I1MjkxNDBjNGEyZGUwYWUyZjI0MTU0NWEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNjExNDJjZTY0NDhiNDMxOWFhM2JlMzE5OGY3YjhmZDkgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQ2NzA5LCAtMS4xODUzNTA2XSwgWzUwLjY0NjY5OTIsIC0xLjE4NTgyMTRdLCBbNTAuNjQ2Njg2NiwgLTEuMTg2MDQxMV0sIFs1MC42NDY2NjYxLCAtMS4xODYzOTgxXSwgWzUwLjY0NjYxNSwgLTEuMTg2ODc1MV0sIFs1MC42NDY1ODk3LCAtMS4xODc0NzQ4XSwgWzUwLjY0NjU5NzYsIC0xLjE4NzcxODVdLCBbNTAuNjQ2NjMzMywgLTEuMTg4Mzk3Nl0sIFs1MC42NDY2MzYyLCAtMS4xODg1OTE3XSwgWzUwLjY0NjYzOTIsIC0xLjE4ODc4NzNdLCBbNTAuNjQ2NjE1OCwgLTEuMTg5Mzc4XSwgWzUwLjY0NjU4OTcsIC0xLjE4OTkyNF0sIFs1MC42NDY1OTg3LCAtMS4xOTAyNTcxXSwgWzUwLjY0NjYwNTksIC0xLjE5MDUyNTRdLCBbNTAuNjQ2NjMxMSwgLTEuMTkxMjQwNF0sIFs1MC42NDY2ODk5LCAtMS4xOTIzOTE1XSwgWzUwLjY0NjcyNjIsIC0xLjE5MjgwNzldLCBbNTAuNjQ2ODE3MSwgLTEuMTkzNDY1M10sIFs1MC42NDY4MjI2LCAtMS4xOTM2NDk0XSwgWzUwLjY0NjgyNzEsIC0xLjE5MzgzMzRdLCBbNTAuNjQ2Nzg2NCwgLTEuMTk0MzYzOF0sIFs1MC42NDY3MDI1LCAtMS4xOTQ3NDE2XSwgWzUwLjY0NjY4MjksIC0xLjE5NDgzMzVdLCBbNTAuNjQ2NTc5NCwgLTEuMTk1Mjk5XSwgWzUwLjY0NjU2MjcsIC0xLjE5NTQyOTFdLCBbNTAuNjQ2NTM0MSwgLTEuMTk1NjUxNl0sIFs1MC42NDY0OTE1LCAtMS4xOTU5OTM5XSwgWzUwLjY0NjQ3NSwgLTEuMTk2MjA4N10sIFs1MC42NDY0NzI5LCAtMS4xOTY3NDI2XSwgWzUwLjY0NjQ2MTgsIC0xLjE5Nzc0MzZdLCBbNTAuNjQ2NDYxMSwgLTEuMTk3ODE5MV0sIFs1MC42NDY1NTksIC0xLjE5OTcyMV0sIFs1MC42NDY2MDQyLCAtMS4yMDAyNDQyXSwgWzUwLjY0NjY3NjgsIC0xLjIwMTEzNDZdLCBbNTAuNjQ2NzkzNSwgLTEuMjAxODUxNV0sIFs1MC42NDY4ODMyLCAtMS4yMDIzMDYxXSwgWzUwLjY0NzAxNSwgLTEuMjAyODA0NF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzA3MTI4ODgxY2VhYzQ3MGU5Nzc2YTBjMjZiMDQxMzc0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2FkZmQ1YjJiZjRkZDRmMWE5OGIxNDBkMmUxMmFhN2FhID0gJCgnPGRpdiBpZD0iaHRtbF9hZGZkNWIyYmY0ZGQ0ZjFhOThiMTQwZDJlMTJhYTdhYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Ik5ld3BvcnQgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzA3MTI4ODgxY2VhYzQ3MGU5Nzc2YTBjMjZiMDQxMzc0LnNldENvbnRlbnQoaHRtbF9hZGZkNWIyYmY0ZGQ0ZjFhOThiMTQwZDJlMTJhYTdhYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzYxMTQyY2U2NDQ4YjQzMTlhYTNiZTMxOThmN2I4ZmQ5LmJpbmRQb3B1cChwb3B1cF8wNzEyODg4MWNlYWM0NzBlOTc3NmEwYzI2YjA0MTM3NCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8yNjU0Nzk4ZTQ3ZTk0ODdlOTc0NGFlZDg5N2E2YTViMCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjQ4NDI1LCAtMS4yMDc3ODc4XSwgWzUwLjY2NDg1MjcsIC0xLjIwNzc3NTJdLCBbNTAuNjY0ODk5OSwgLTEuMjA3NzE3MV0sIFs1MC42NjUwMjI1LCAtMS4yMDc2MDZdLCBbNTAuNjY1Mjk3NiwgLTEuMjA3NDExMl1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzdhODVkZjQ2NjAyNjRhZTA4OTU4NzNjN2MwZDI1YjU1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzE3MjAxNzgzOGI4ZDRkMzlhZmE0OGExY2IzZjQzYjkwID0gJCgnPGRpdiBpZD0iaHRtbF8xNzIwMTc4MzhiOGQ0ZDM5YWZhNDhhMWNiM2Y0M2I5MCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkhpZ2ggU3RyZWV0IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfN2E4NWRmNDY2MDI2NGFlMDg5NTg3M2M3YzBkMjViNTUuc2V0Q29udGVudChodG1sXzE3MjAxNzgzOGI4ZDRkMzlhZmE0OGExY2IzZjQzYjkwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMjY1NDc5OGU0N2U5NDg3ZTk3NDRhZWQ4OTdhNmE1YjAuYmluZFBvcHVwKHBvcHVwXzdhODVkZjQ2NjAyNjRhZTA4OTU4NzNjN2MwZDI1YjU1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2U4OTAyOTU5Y2YxMzQ0ODA5N2UzMzMzOGY1OTYzN2E2ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NDg0MjUsIC0xLjIwNzc4NzhdLCBbNTAuNjY0NzM1NywgLTEuMjA3NjgwOV0sIFs1MC42NjQyNzg5LCAtMS4yMDc2MjU4XSwgWzUwLjY2NDE3OTQsIC0xLjIwNzU3NjFdLCBbNTAuNjY0MDg2NiwgLTEuMjA3NDAwMV0sIFs1MC42NjQwNzcxLCAtMS4yMDcxNjI1XSwgWzUwLjY2NDA3NDcsIC0xLjIwNjg5NzFdLCBbNTAuNjY0MTEzMSwgLTEuMjA2MzkzMV0sIFs1MC42NjQwNjMyLCAtMS4yMDU4NTUxXSwgWzUwLjY2Mzk3NjEsIC0xLjIwNTQ0MzhdLCBbNTAuNjYzNDI1MiwgLTEuMjAzODcwOV0sIFs1MC42NjMzNzU4LCAtMS4yMDM2NzE1XSwgWzUwLjY2MzM2MDQsIC0xLjIwMzQ5MTddLCBbNTAuNjYzMzM5LCAtMS4yMDMyMzc2XSwgWzUwLjY2MzM3MDEsIC0xLjIwMzExNTldLCBbNTAuNjYzNDMyNCwgLTEuMjAyODQ1XSwgWzUwLjY2MzQ0NjIsIC0xLjIwMjczMl0sIFs1MC42NjM0MjY5LCAtMS4yMDI2MTQ1XSwgWzUwLjY2MzQwNTUsIC0xLjIwMjUyNzddLCBbNTAuNjYzMzM4NSwgLTEuMjAyMzczNF0sIFs1MC42NjI5OTQ2LCAtMS4yMDE3OTA2XSwgWzUwLjY2MjMyNTcsIC0xLjIwMDYyMDVdLCBbNTAuNjYyMjA1NSwgLTEuMjAwNDcyNF0sIFs1MC42NjE4OTcyLCAtMS4yMDAxMTk2XSwgWzUwLjY2MTgzNjksIC0xLjIwMDAyOTddLCBbNTAuNjYxNTQzNiwgLTEuMTk4NzgwOV0sIFs1MC42NjEyNzQ0LCAtMS4xOTc5MjU5XSwgWzUwLjY2MTI1NDMsIC0xLjE5Nzg4MThdLCBbNTAuNjYxMDMsIC0xLjE5NzM5MTRdLCBbNTAuNjYwNzEzNiwgLTEuMTk3MDM2OF0sIFs1MC42NjAyODgxLCAtMS4xOTY0NTM5XSwgWzUwLjY1OTgyNTksIC0xLjE5NTk1MjldLCBbNTAuNjU5MjEzMiwgLTEuMTk1MzU2MV0sIFs1MC42NTkxNjE5LCAtMS4xOTUzMzg3XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYmRmMzJiZDMzMWYwNDIyODg2MjJkNDAyM2RkM2RiOTEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMzM5OGIxMzY1ZGRkNGJkNzgyNGMxZjViMDIyMmM1NWYgPSAkKCc8ZGl2IGlkPSJodG1sXzMzOThiMTM2NWRkZDRiZDc4MjRjMWY1YjAyMjJjNTVmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5bIlBhbG1lcnMgTGFuZSIsICJTa2lubmVycyBMYW5lIl08L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2JkZjMyYmQzMzFmMDQyMjg4NjIyZDQwMjNkZDNkYjkxLnNldENvbnRlbnQoaHRtbF8zMzk4YjEzNjVkZGQ0YmQ3ODI0YzFmNWIwMjIyYzU1Zik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2U4OTAyOTU5Y2YxMzQ0ODA5N2UzMzMzOGY1OTYzN2E2LmJpbmRQb3B1cChwb3B1cF9iZGYzMmJkMzMxZjA0MjI4ODYyMmQ0MDIzZGQzZGI5MSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV85OTE5YTA0NGYxYjY0NzY1YjRhZTJiMTVjYjhkMTg1OCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjQ4NDI1LCAtMS4yMDc3ODc4XSwgWzUwLjY2NDc2MiwgLTEuMjA3ODkxMV0sIFs1MC42NjQ2NDg0LCAtMS4yMDgwMzE5XSwgWzUwLjY2NDUzMywgLTEuMjA4MjI2N11dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzYwNGZhNzU5NDk5YTQzYzI5OGM0NDYzYzFkYzE3NzYxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzA0OGQ1NDg3ZjdmZTRkOWRhN2E3MzMzN2U5YWFkNTc5ID0gJCgnPGRpdiBpZD0iaHRtbF8wNDhkNTQ4N2Y3ZmU0ZDlkYTdhNzMzMzdlOWFhZDU3OSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IldpbmZvcmQgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzYwNGZhNzU5NDk5YTQzYzI5OGM0NDYzYzFkYzE3NzYxLnNldENvbnRlbnQoaHRtbF8wNDhkNTQ4N2Y3ZmU0ZDlkYTdhNzMzMzdlOWFhZDU3OSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzk5MTlhMDQ0ZjFiNjQ3NjViNGFlMmIxNWNiOGQxODU4LmJpbmRQb3B1cChwb3B1cF82MDRmYTc1OTQ5OWE0M2MyOThjNDQ2M2MxZGMxNzc2MSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8zNTY5OWU1YmU0NDU0NTk4ODhkM2Y3OTYwMzAxZjEwYiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTM2NzE1LCAtMS4yMDAxNTA0XSwgWzUwLjY1MjIwNzEsIC0xLjIwMDEyNjVdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81ODlhMmJjNzdiMGM0ODdlODUwOWU3YmVhZThiYTUwNSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iMmNlMWJiYzViMDQ0OWFlYmI4Y2FmZjVhMWYyNjRlYiA9ICQoJzxkaXYgaWQ9Imh0bWxfYjJjZTFiYmM1YjA0NDlhZWJiOGNhZmY1YTFmMjY0ZWIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJBbHZlcnN0b25lIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81ODlhMmJjNzdiMGM0ODdlODUwOWU3YmVhZThiYTUwNS5zZXRDb250ZW50KGh0bWxfYjJjZTFiYmM1YjA0NDlhZWJiOGNhZmY1YTFmMjY0ZWIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8zNTY5OWU1YmU0NDU0NTk4ODhkM2Y3OTYwMzAxZjEwYi5iaW5kUG9wdXAocG9wdXBfNTg5YTJiYzc3YjBjNDg3ZTg1MDllN2JlYWU4YmE1MDUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfOWFkNDhiNmRkNTc2NDFiNGE3NTZiMTIzODBjMjc1OWIgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUzNjcxNSwgLTEuMjAwMTUwNF0sIFs1MC42NTM2NjEsIC0xLjIwMDQ2NzZdLCBbNTAuNjUzNjQyNSwgLTEuMjAwNzQyMV0sIFs1MC42NTM1NDI5LCAtMS4yMDEwODQzXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYmJlMzQ4MWE5NzA0NDcyYzhjNDQwOWE0MWE5NDcwYTMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmEzYzVlOGE2MmQyNGZmZDlhNjBjNjJiNDg3M2E2NzIgPSAkKCc8ZGl2IGlkPSJodG1sXzJhM2M1ZThhNjJkMjRmZmQ5YTYwYzYyYjQ4NzNhNjcyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQ2hhbWJlcnMgRHJpdmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iYmUzNDgxYTk3MDQ0NzJjOGM0NDA5YTQxYTk0NzBhMy5zZXRDb250ZW50KGh0bWxfMmEzYzVlOGE2MmQyNGZmZDlhNjBjNjJiNDg3M2E2NzIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV85YWQ0OGI2ZGQ1NzY0MWI0YTc1NmIxMjM4MGMyNzU5Yi5iaW5kUG9wdXAocG9wdXBfYmJlMzQ4MWE5NzA0NDcyYzhjNDQwOWE0MWE5NDcwYTMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfN2RmYjkwMjk2ZGQzNGY1ZTkwZThhMjhkZDVkYTdhOTkgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUzNjcxNSwgLTEuMjAwMTUwNF0sIFs1MC42NTM5NjUzLCAtMS4yMDAxNTQ0XSwgWzUwLjY1NDY0ODMsIC0xLjIwMDE4ODFdLCBbNTAuNjU0OTMwMywgLTEuMjAwMjE0OF0sIFs1MC42NTU0MTY1LCAtMS4yMDAyNjU2XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYWUxNzk0ZTYyZjkwNGYyYjhlMDM5OTQ3NjJkN2UwODUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODk1NzEwNWY5ZWIzNGMwZmFjY2M3YmVmNjliNDhlNWUgPSAkKCc8ZGl2IGlkPSJodG1sXzg5NTcxMDVmOWViMzRjMGZhY2NjN2JlZjY5YjQ4ZTVlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQWx2ZXJzdG9uZSBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYWUxNzk0ZTYyZjkwNGYyYjhlMDM5OTQ3NjJkN2UwODUuc2V0Q29udGVudChodG1sXzg5NTcxMDVmOWViMzRjMGZhY2NjN2JlZjY5YjQ4ZTVlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfN2RmYjkwMjk2ZGQzNGY1ZTkwZThhMjhkZDVkYTdhOTkuYmluZFBvcHVwKHBvcHVwX2FlMTc5NGU2MmY5MDRmMmI4ZTAzOTk0NzYyZDdlMDg1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzczZDFjZTIxNGI5ODQ1NjliYTg2ZWI5YWNlNDU3NWFlID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MjIwNzEsIC0xLjIwMDEyNjVdLCBbNTAuNjUyMjMwMSwgLTEuMjAwNzkzNF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzI2Y2NhMjY2NzU4NjRkNzFhMjMyYzhiZTZkNTc0NjQ3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzI2OTU4YjgzM2VmNTRmY2U4NDM0MzgwNGEwODFmY2I2ID0gJCgnPGRpdiBpZD0iaHRtbF8yNjk1OGI4MzNlZjU0ZmNlODQzNDM4MDRhMDgxZmNiNiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IlBhcmt3YXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yNmNjYTI2Njc1ODY0ZDcxYTIzMmM4YmU2ZDU3NDY0Ny5zZXRDb250ZW50KGh0bWxfMjY5NThiODMzZWY1NGZjZTg0MzQzODA0YTA4MWZjYjYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV83M2QxY2UyMTRiOTg0NTY5YmE4NmViOWFjZTQ1NzVhZS5iaW5kUG9wdXAocG9wdXBfMjZjY2EyNjY3NTg2NGQ3MWEyMzJjOGJlNmQ1NzQ2NDcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfOGQxNjhjMzIzZjk4NGMwZGEwNWIxZjg3MTE3NWNhNzQgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUyMjA3MSwgLTEuMjAwMTI2NV0sIFs1MC42NTM2NzE1LCAtMS4yMDAxNTA0XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzY5Y2FlNDVlNGEzNGNkNzhkYzU1M2U4ZDFiZjkyMTMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZjQ1ZDI1YmVlYzhiNGRiY2JmMTg3N2E4MzA4YzA5MTUgPSAkKCc8ZGl2IGlkPSJodG1sX2Y0NWQyNWJlZWM4YjRkYmNiZjE4NzdhODMwOGMwOTE1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQWx2ZXJzdG9uZSBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzY5Y2FlNDVlNGEzNGNkNzhkYzU1M2U4ZDFiZjkyMTMuc2V0Q29udGVudChodG1sX2Y0NWQyNWJlZWM4YjRkYmNiZjE4NzdhODMwOGMwOTE1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfOGQxNjhjMzIzZjk4NGMwZGEwNWIxZjg3MTE3NWNhNzQuYmluZFBvcHVwKHBvcHVwX2M2OWNhZTQ1ZTRhMzRjZDc4ZGM1NTNlOGQxYmY5MjEzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2NjNGVhMzZjYzY4YjQwM2ZhMjJhZDJhOWNkODE3ZjBlID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MjIwNzEsIC0xLjIwMDEyNjVdLCBbNTAuNjUxOTc4MSwgLTEuMjAwMTQzMV0sIFs1MC42NTE4MjU2LCAtMS4yMDAxNzQ0XSwgWzUwLjY1MTY0NDgsIC0xLjIwMDI2NTRdLCBbNTAuNjUxNDkxNywgLTEuMjAwMzY1XSwgWzUwLjY1MTMzOTcsIC0xLjIwMDQ4NTZdLCBbNTAuNjUwMjk2NSwgLTEuMjAxNDYyN10sIFs1MC42NTAwODIzLCAtMS4yMDE2ODAyXSwgWzUwLjY0OTYxNjgsIC0xLjIwMjEyOF0sIFs1MC42NDkzMTAyLCAtMS4yMDIzOTNdLCBbNTAuNjQ5MTQwOCwgLTEuMjAyNDk4NF0sIFs1MC42NDg5Mjk4LCAtMS4yMDI1NjU2XSwgWzUwLjY0Nzk2MjgsIC0xLjIwMjY3N10sIFs1MC42NDczMTEsIC0xLjIwMjc2ODFdLCBbNTAuNjQ3MTQzNywgLTEuMjAyNzg4MV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzRkOWYxNDVkYTVlMjRmMTg5NjdlNGJkNWI4MTg2NzU0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2M2ODcwMGY2ZDFkNDQ5N2RhYjFjNTk5MDYzNjg2ZjU1ID0gJCgnPGRpdiBpZD0iaHRtbF9jNjg3MDBmNmQxZDQ0OTdkYWIxYzU5OTA2MzY4NmY1NSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkFsdmVyc3RvbmUgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzRkOWYxNDVkYTVlMjRmMTg5NjdlNGJkNWI4MTg2NzU0LnNldENvbnRlbnQoaHRtbF9jNjg3MDBmNmQxZDQ0OTdkYWIxYzU5OTA2MzY4NmY1NSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2NjNGVhMzZjYzY4YjQwM2ZhMjJhZDJhOWNkODE3ZjBlLmJpbmRQb3B1cChwb3B1cF80ZDlmMTQ1ZGE1ZTI0ZjE4OTY3ZTRiZDViODE4Njc1NCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV82OTJkOWFlZTQwODA0MTk1YjIzOTljMmUyZWQ2Zjk3ZiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjE4Mjk1LCAtMS4xODg1Mzg1XSwgWzUwLjY2MTkyMSwgLTEuMTg4NjAxM10sIFs1MC42NjIxMDYzLCAtMS4xODg0NjE0XSwgWzUwLjY2MjEzMiwgLTEuMTg4NDQyOV0sIFs1MC42NjIyMDk1LCAtMS4xODg0NjE0XSwgWzUwLjY2MjI3ODEsIC0xLjE4ODgxNDJdLCBbNTAuNjYyMzUyLCAtMS4xODkyNDc4XSwgWzUwLjY2MjQzOTUsIC0xLjE5MDIwMzldLCBbNTAuNjYyNDYzNCwgLTEuMTkwNDY1NV0sIFs1MC42NjI0ODMxLCAtMS4xOTA1OTE3XSwgWzUwLjY2MjYzODUsIC0xLjE5MTQ3NThdLCBbNTAuNjYyNjg0OCwgLTEuMTkxNjQzNF0sIFs1MC42NjI3NTUxLCAtMS4xOTE4MDQyXSwgWzUwLjY2MjgyNzgsIC0xLjE5MTg3OTldLCBbNTAuNjYyODkyOCwgLTEuMTkxOTAxNF0sIFs1MC42NjI5MjcyLCAtMS4xOTE5MTI3XSwgWzUwLjY2MzAzMzUsIC0xLjE5MjAwNjhdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82ODk5NTU3NTg0N2Y0MjE3YjViZTA1ODRhOWNlYzAwZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82NDMyMDczOGI2MTU0MGY5YTBkZWM3ZTg3ZGZlZGFmZCA9ICQoJzxkaXYgaWQ9Imh0bWxfNjQzMjA3MzhiNjE1NDBmOWEwZGVjN2U4N2RmZWRhZmQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJZb3VuZ3dvb2RzIFdheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzY4OTk1NTc1ODQ3ZjQyMTdiNWJlMDU4NGE5Y2VjMDBmLnNldENvbnRlbnQoaHRtbF82NDMyMDczOGI2MTU0MGY5YTBkZWM3ZTg3ZGZlZGFmZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzY5MmQ5YWVlNDA4MDQxOTViMjM5OWMyZTJlZDZmOTdmLmJpbmRQb3B1cChwb3B1cF82ODk5NTU3NTg0N2Y0MjE3YjViZTA1ODRhOWNlYzAwZik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV80ZDU1ZmE3YTgyYWY0ZDk5OTExYTIzNmMyN2ViYmFjYiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjE4Mjk1LCAtMS4xODg1Mzg1XSwgWzUwLjY2MTY3NTIsIC0xLjE4ODc1NzZdLCBbNTAuNjYxNDI0LCAtMS4xODkxMTQyXSwgWzUwLjY2MTEwMTYsIC0xLjE4OTU5OTJdLCBbNTAuNjYwODM4OSwgLTEuMTkwMDc5M10sIFs1MC42NjA2ODMzLCAtMS4xOTAzOTk4XSwgWzUwLjY2MDU4ODksIC0xLjE5MDU0Ml0sIFs1MC42NjA0ODUsIC0xLjE5MDY1ODddLCBbNTAuNjYwNDUxMSwgLTEuMTkwNjgzMV0sIFs1MC42NjAyNTU5LCAtMS4xOTA4MDg0XSwgWzUwLjY2MDE4MzYsIC0xLjE5MDg0NDJdLCBbNTAuNjYwMDEwOCwgLTEuMTkwOTM2M10sIFs1MC42NTk4NzgyLCAtMS4xOTEwNDYzXSwgWzUwLjY1OTcwNDcsIC0xLjE5MTIwNDVdLCBbNTAuNjU5NTQzNywgLTEuMTkxMjkyNl0sIFs1MC42NTk0MzQ4LCAtMS4xOTEzMzAxXSwgWzUwLjY1OTIyNzcsIC0xLjE5MTQxNjFdLCBbNTAuNjU5MDk3NywgLTEuMTkxNTU0XSwgWzUwLjY1ODk5NzEsIC0xLjE5MTczNTVdLCBbNTAuNjU4ODI4MiwgLTEuMTkyNDkxOV0sIFs1MC42NTg3MTgyLCAtMS4xOTMzMzM3XSwgWzUwLjY1ODc0NTksIC0xLjE5NDAwMTJdLCBbNTAuNjU4Nzk0NCwgLTEuMTk0NDQ1OF0sIFs1MC42NTg4NDQzLCAtMS4xOTQ2MDcxXSwgWzUwLjY1ODkxMDUsIC0xLjE5NDc4MjddLCBbNTAuNjU4OTE4OCwgLTEuMTk0ODA3OF0sIFs1MC42NTkwMDg1LCAtMS4xOTUwMTMxXSwgWzUwLjY1OTE0MTgsIC0xLjE5NTI3MDNdLCBbNTAuNjU5MTYxOSwgLTEuMTk1MzM4N11dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzYwNzk3NGFkNWY5YzQyNWI4YTkxZGUzZTZmNmQ2NTAyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2QyZTA2YjEzNDkzODRlMzg4M2JiNjNmM2JhOGMxMTZiID0gJCgnPGRpdiBpZD0iaHRtbF9kMmUwNmIxMzQ5Mzg0ZTM4ODNiYjYzZjNiYThjMTE2YiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkFsdmVyc3RvbmUgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzYwNzk3NGFkNWY5YzQyNWI4YTkxZGUzZTZmNmQ2NTAyLnNldENvbnRlbnQoaHRtbF9kMmUwNmIxMzQ5Mzg0ZTM4ODNiYjYzZjNiYThjMTE2Yik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzRkNTVmYTdhODJhZjRkOTk5MTFhMjM2YzI3ZWJiYWNiLmJpbmRQb3B1cChwb3B1cF82MDc5NzRhZDVmOWM0MjViOGE5MWRlM2U2ZjZkNjUwMik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9iNTQ0YmY4YWM4YTI0MWIzOGE3MWFkOTRhMzQ3NDhkYSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjE4Mjk1LCAtMS4xODg1Mzg1XSwgWzUwLjY2MTkzOTgsIC0xLjE4ODMyNTVdLCBbNTAuNjYyMTIyOCwgLTEuMTg3OTU1N10sIFs1MC42NjI0MjU5LCAtMS4xODc1NTY5XSwgWzUwLjY2MjYxMzYsIC0xLjE4NzMzMTddLCBbNTAuNjYyNzIzNSwgLTEuMTg3MTk5OV0sIFs1MC42NjMyNTEzLCAtMS4xODY3MzkzXSwgWzUwLjY2MzQxNDYsIC0xLjE4NjU3NDRdLCBbNTAuNjYzNTI1OCwgLTEuMTg2NDYyMl0sIFs1MC42NjM2NjYyLCAtMS4xODYzMjA5XSwgWzUwLjY2MzgzMjgsIC0xLjE4NjE0MzldLCBbNTAuNjY0Mjk4MSwgLTEuMTg1NzY1OV0sIFs1MC42NjQ0NzQ3LCAtMS4xODU2Mzc3XSwgWzUwLjY2NDgyMjUsIC0xLjE4NTQyNTVdLCBbNTAuNjY0OTI3NywgLTEuMTg1MzYxM10sIFs1MC42NjQ5ODIzLCAtMS4xODUzMjQ1XSwgWzUwLjY2NTM4MDksIC0xLjE4NTA2MjVdLCBbNTAuNjY1NTk0NiwgLTEuMTg0ODk5NF0sIFs1MC42NjU3NjMxLCAtMS4xODQ3NjQzXSwgWzUwLjY2NTc5MTEsIC0xLjE4NDc0MThdLCBbNTAuNjY1ODA3NiwgLTEuMTg0NzI4Nl0sIFs1MC42NjU4OTM0LCAtMS4xODQ2Mjk0XSwgWzUwLjY2NTk5MTgsIC0xLjE4NDU0OTJdLCBbNTAuNjY2MjAzNiwgLTEuMTg0MzMzM10sIFs1MC42NjYzODU2LCAtMS4xODQxOTY4XSwgWzUwLjY2NjUzMDgsIC0xLjE4NDA4NjNdLCBbNTAuNjY2NjI1OSwgLTEuMTg0MDM3Ml0sIFs1MC42NjY3MjgsIC0xLjE4Mzk4NDRdLCBbNTAuNjY2OTE5NiwgLTEuMTgzOTI0OF0sIFs1MC42NjY5NTEzLCAtMS4xODM5MTY4XSwgWzUwLjY2NzAwNDIsIC0xLjE4MzkwNTZdLCBbNTAuNjY3MTEzMSwgLTEuMTgzODc5NF0sIFs1MC42NjcyNjU3LCAtMS4xODM4NDhdLCBbNTAuNjY3NTIxNCwgLTEuMTgzODU0NF0sIFs1MC42Njc2NTgyLCAtMS4xODM4MTc4XSwgWzUwLjY2NzgxMjQsIC0xLjE4MzY5NDldLCBbNTAuNjY4NTcsIC0xLjE4MzAyNzRdLCBbNTAuNjY4NzQxOCwgLTEuMTgyODc2OF0sIFs1MC42Njg4OTQ1LCAtMS4xODI2Nzc1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOGRjZGY5ZTZjZmYzNDg5MGFjZWY2Njc5NjcwZmRiZTEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTc5Y2MxZDVmMTY2NDA3M2JlZDY5NmVkN2FiMzhhODQgPSAkKCc8ZGl2IGlkPSJodG1sX2E3OWNjMWQ1ZjE2NjQwNzNiZWQ2OTZlZDdhYjM4YTg0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5bIkFsdmVyc3RvbmUgQnJpZGdlIiwgIk1haW4gUm9hZCIsICJBbHZlcnN0b25lIFNodXRlIl08L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzhkY2RmOWU2Y2ZmMzQ4OTBhY2VmNjY3OTY3MGZkYmUxLnNldENvbnRlbnQoaHRtbF9hNzljYzFkNWYxNjY0MDczYmVkNjk2ZWQ3YWIzOGE4NCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2I1NDRiZjhhYzhhMjQxYjM4YTcxYWQ5NGEzNDc0OGRhLmJpbmRQb3B1cChwb3B1cF84ZGNkZjllNmNmZjM0ODkwYWNlZjY2Nzk2NzBmZGJlMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV84ZjcwZGE2OWEyYzk0NDA5YTkzNTNlODVmNzE1NjUwZiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjMwMzM1LCAtMS4xOTIwMDY4XSwgWzUwLjY2NjA3ODUsIC0xLjE4ODY5MTZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83MDRlYmYzMGU1NjQ0MTJjOTVlNTg4YmYyNDVmNmI2MiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jOGRkYzcwZDU2MGQ0ZGUyYjZiYjg3OGM5ZGMyZWFlNiA9ICQoJzxkaXYgaWQ9Imh0bWxfYzhkZGM3MGQ1NjBkNGRlMmI2YmI4NzhjOWRjMmVhZTYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJZb3VuZ3dvb2RzIFdheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzcwNGViZjMwZTU2NDQxMmM5NWU1ODhiZjI0NWY2YjYyLnNldENvbnRlbnQoaHRtbF9jOGRkYzcwZDU2MGQ0ZGUyYjZiYjg3OGM5ZGMyZWFlNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzhmNzBkYTY5YTJjOTQ0MDlhOTM1M2U4NWY3MTU2NTBmLmJpbmRQb3B1cChwb3B1cF83MDRlYmYzMGU1NjQ0MTJjOTVlNTg4YmYyNDVmNmI2Mik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9kZWFlNDgxOWZhYWM0ODQ2YTZkZmVjNmNhMmRhZmVhMCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjMwMzM1LCAtMS4xOTIwMDY4XSwgWzUwLjY2MzUwOTgsIC0xLjE5MzQzNDZdLCBbNTAuNjYzNjk0NywgLTEuMTkzNjgxNl0sIFs1MC42NjM4MDI0LCAtMS4xOTM3MTU4XSwgWzUwLjY2Mzk5MTUsIC0xLjE5MzU2NDZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lZTBhN2JkMGRkMDk0NTQ3OGFmMWRhNjY3YTgxYjI3NCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82ZThhOTZjNWFhM2M0NWYxYTBkZGViMDc0ZGM5OGRmNiA9ICQoJzxkaXYgaWQ9Imh0bWxfNmU4YTk2YzVhYTNjNDVmMWEwZGRlYjA3NGRjOThkZjYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXb29kc2lkZSBBdmVudWUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lZTBhN2JkMGRkMDk0NTQ3OGFmMWRhNjY3YTgxYjI3NC5zZXRDb250ZW50KGh0bWxfNmU4YTk2YzVhYTNjNDVmMWEwZGRlYjA3NGRjOThkZjYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9kZWFlNDgxOWZhYWM0ODQ2YTZkZmVjNmNhMmRhZmVhMC5iaW5kUG9wdXAocG9wdXBfZWUwYTdiZDBkZDA5NDU0NzhhZjFkYTY2N2E4MWIyNzQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMmJjMThlMzg1MTRlNDBiZmI5MWYxYzZhNDViNDlkZTEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjYzMDMzNSwgLTEuMTkyMDA2OF0sIFs1MC42NjI5MjcyLCAtMS4xOTE5MTI3XSwgWzUwLjY2Mjg5MjgsIC0xLjE5MTkwMTRdLCBbNTAuNjYyODI3OCwgLTEuMTkxODc5OV0sIFs1MC42NjI3NTUxLCAtMS4xOTE4MDQyXSwgWzUwLjY2MjY4NDgsIC0xLjE5MTY0MzRdLCBbNTAuNjYyNjM4NSwgLTEuMTkxNDc1OF0sIFs1MC42NjI0ODMxLCAtMS4xOTA1OTE3XSwgWzUwLjY2MjQ2MzQsIC0xLjE5MDQ2NTVdLCBbNTAuNjYyNDM5NSwgLTEuMTkwMjAzOV0sIFs1MC42NjIzNTIsIC0xLjE4OTI0NzhdLCBbNTAuNjYyMjc4MSwgLTEuMTg4ODE0Ml0sIFs1MC42NjIyMDk1LCAtMS4xODg0NjE0XSwgWzUwLjY2MjEzMiwgLTEuMTg4NDQyOV0sIFs1MC42NjIxMDYzLCAtMS4xODg0NjE0XSwgWzUwLjY2MTkyMSwgLTEuMTg4NjAxM10sIFs1MC42NjE4Mjk1LCAtMS4xODg1Mzg1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzdiMzYyNzBiMzcwNGE5ZmEyNTVhNTc3ZDU4ZWNmYTYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmM2ZDBkMWM2NjEzNGUyOTk4NDIyYWE5ZjBhNWU5MTYgPSAkKCc8ZGl2IGlkPSJodG1sXzJjNmQwZDFjNjYxMzRlMjk5ODQyMmFhOWYwYTVlOTE2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iWW91bmd3b29kcyBXYXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83N2IzNjI3MGIzNzA0YTlmYTI1NWE1NzdkNThlY2ZhNi5zZXRDb250ZW50KGh0bWxfMmM2ZDBkMWM2NjEzNGUyOTk4NDIyYWE5ZjBhNWU5MTYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8yYmMxOGUzODUxNGU0MGJmYjkxZjFjNmE0NWI0OWRlMS5iaW5kUG9wdXAocG9wdXBfNzdiMzYyNzBiMzcwNGE5ZmEyNTVhNTc3ZDU4ZWNmYTYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNThkMDdlZDRhZDQwNDU5NGJkN2Q5ZDUwOWQ3OWY3NjIgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjYzOTkxNSwgLTEuMTkzNTY0Nl0sIFs1MC42NjM4MDI0LCAtMS4xOTM3MTU4XSwgWzUwLjY2MzY5NDcsIC0xLjE5MzY4MTZdLCBbNTAuNjYzNTA5OCwgLTEuMTkzNDM0Nl0sIFs1MC42NjMwMzM1LCAtMS4xOTIwMDY4XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjdmN2U3NGIyMzM4NDZkMjk0MThmZTg5MzdkMTIzNWUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDViZmRiNzY5MDg0NGMyMWE5ZTkzYWZkY2RmYTBhZWIgPSAkKCc8ZGl2IGlkPSJodG1sX2Q1YmZkYjc2OTA4NDRjMjFhOWU5M2FmZGNkZmEwYWViIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV29vZHNpZGUgQXZlbnVlIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjdmN2U3NGIyMzM4NDZkMjk0MThmZTg5MzdkMTIzNWUuc2V0Q29udGVudChodG1sX2Q1YmZkYjc2OTA4NDRjMjFhOWU5M2FmZGNkZmEwYWViKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNThkMDdlZDRhZDQwNDU5NGJkN2Q5ZDUwOWQ3OWY3NjIuYmluZFBvcHVwKHBvcHVwXzY3ZjdlNzRiMjMzODQ2ZDI5NDE4ZmU4OTM3ZDEyMzVlKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2Y4Y2VmMTgwZTJmYTQ4N2M5NTI0Y2EwMjg3ZDEyYjdiID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NDE1ODQsIC0xLjE5MjQ4MTddLCBbNTAuNjY0OTIyOCwgLTEuMTkxNTQ2OV0sIFs1MC42NjUwNTE1LCAtMS4xOTE0NjcyXSwgWzUwLjY2NTIyODUsIC0xLjE5MTUwMTJdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iNTJkMDEwM2E4Yjk0Y2U0YTc3MDRjNzQ4MzhiNDUwNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hYTRiZTlkYWE2OTE0OWE1ODAxODRkMmFmYTMzNWM4YSA9ICQoJzxkaXYgaWQ9Imh0bWxfYWE0YmU5ZGFhNjkxNDlhNTgwMTg0ZDJhZmEzMzVjOGEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJIb2xsb3dvb2QgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2I1MmQwMTAzYThiOTRjZTRhNzcwNGM3NDgzOGI0NTA0LnNldENvbnRlbnQoaHRtbF9hYTRiZTlkYWE2OTE0OWE1ODAxODRkMmFmYTMzNWM4YSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2Y4Y2VmMTgwZTJmYTQ4N2M5NTI0Y2EwMjg3ZDEyYjdiLmJpbmRQb3B1cChwb3B1cF9iNTJkMDEwM2E4Yjk0Y2U0YTc3MDRjNzQ4MzhiNDUwNCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8wYjAxZmMxNjlhOWU0MGY1YTI1NDNjNmJmOGRmZjNhOCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjUyMjg1LCAtMS4xOTE1MDEyXSwgWzUwLjY2NTIwNzMsIC0xLjE5MTgzNzldLCBbNTAuNjY1MjIxLCAtMS4xOTIzNjg0XSwgWzUwLjY2NDk0MDMsIC0xLjE5Mjc3NV0sIFs1MC42NjQ2NjQxLCAtMS4xOTMzMTk1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNGU1OWNkN2RhYTAzNDY1ZDkzOWU4MjI3ZjA2N2FkNGEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNWM0MjZhNDNhZDI3NDBlZmIzNGU0NWQ2OWM3YTdlYzYgPSAkKCc8ZGl2IGlkPSJodG1sXzVjNDI2YTQzYWQyNzQwZWZiMzRlNDVkNjljN2E3ZWM2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iWW91bmd3b29kcyBDb3BzZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzRlNTljZDdkYWEwMzQ2NWQ5MzllODIyN2YwNjdhZDRhLnNldENvbnRlbnQoaHRtbF81YzQyNmE0M2FkMjc0MGVmYjM0ZTQ1ZDY5YzdhN2VjNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzBiMDFmYzE2OWE5ZTQwZjVhMjU0M2M2YmY4ZGZmM2E4LmJpbmRQb3B1cChwb3B1cF80ZTU5Y2Q3ZGFhMDM0NjVkOTM5ZTgyMjdmMDY3YWQ0YSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9iM2RiODU1NGI3NDU0MmQxOGQ2MGQ4ZTRiZWMzZTdiZiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjUyMjg1LCAtMS4xOTE1MDEyXSwgWzUwLjY2NTM1ODIsIC0xLjE5MTE4NjZdLCBbNTAuNjY1NTUyNywgLTEuMTkwOTczNV0sIFs1MC42NjU5NTE5LCAtMS4xOTA3NjA1XSwgWzUwLjY2NjUzMywgLTEuMTkwMDUyNV0sIFs1MC42NjY2MzUsIC0xLjE4OTY4NjddLCBbNTAuNjY2NDc3MywgLTEuMTg5MTU5OV0sIFs1MC42NjYwNzg1LCAtMS4xODg2OTE2XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTc3NTI5ZjE0Mjg0NDIwNDhlYzAzZjkzMTE3ZTRjMjAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNDY5MjVjZGVmMmEyNDU3ODk2YjJhNjVmY2I5OTE5MWEgPSAkKCc8ZGl2IGlkPSJodG1sXzQ2OTI1Y2RlZjJhMjQ1Nzg5NmIyYTY1ZmNiOTkxOTFhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iWW91bmd3b29kcyBDb3BzZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzk3NzUyOWYxNDI4NDQyMDQ4ZWMwM2Y5MzExN2U0YzIwLnNldENvbnRlbnQoaHRtbF80NjkyNWNkZWYyYTI0NTc4OTZiMmE2NWZjYjk5MTkxYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2IzZGI4NTU0Yjc0NTQyZDE4ZDYwZDhlNGJlYzNlN2JmLmJpbmRQb3B1cChwb3B1cF85Nzc1MjlmMTQyODQ0MjA0OGVjMDNmOTMxMTdlNGMyMCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8zM2UyM2IyYjJjNjQ0ZmJhYjJkZWEwYzBmZDI0OGRmOSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjUyMjg1LCAtMS4xOTE1MDEyXSwgWzUwLjY2NTA1MTUsIC0xLjE5MTQ2NzJdLCBbNTAuNjY0OTIyOCwgLTEuMTkxNTQ2OV0sIFs1MC42NjQxNTg0LCAtMS4xOTI0ODE3XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYmRiZTMwZTk5OTMyNGE0Yzg1NjVkZGQxMTg3YzRkMzkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDBiMjQ0ZTI1NTc1NGM5MmE2YzkyNzg1NjZhYjY0MzQgPSAkKCc8ZGl2IGlkPSJodG1sXzAwYjI0NGUyNTU3NTRjOTJhNmM5Mjc4NTY2YWI2NDM0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iSG9sbG93b29kIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iZGJlMzBlOTk5MzI0YTRjODU2NWRkZDExODdjNGQzOS5zZXRDb250ZW50KGh0bWxfMDBiMjQ0ZTI1NTc1NGM5MmE2YzkyNzg1NjZhYjY0MzQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8zM2UyM2IyYjJjNjQ0ZmJhYjJkZWEwYzBmZDI0OGRmOS5iaW5kUG9wdXAocG9wdXBfYmRiZTMwZTk5OTMyNGE0Yzg1NjVkZGQxMTg3YzRkMzkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfM2MwMjc2OGI0ZDdjNDQ2NDhkMGE3NWRlNjY0Nzg4NzYgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY0NjY0MSwgLTEuMTkzMzE5NV0sIFs1MC42NjQ5NDAzLCAtMS4xOTI3NzVdLCBbNTAuNjY1MjIxLCAtMS4xOTIzNjg0XSwgWzUwLjY2NTIwNzMsIC0xLjE5MTgzNzldLCBbNTAuNjY1MjI4NSwgLTEuMTkxNTAxMl1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2ZjYWJkOWZjZGFmNDQ1NDlhZTk2MTRjZTM3MjcwNjRlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzdiYjliNGZmMWViNDQwZDNhNzMyNzVhNzRkMWMyMjFhID0gJCgnPGRpdiBpZD0iaHRtbF83YmI5YjRmZjFlYjQ0MGQzYTczMjc1YTc0ZDFjMjIxYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IllvdW5nd29vZHMgQ29wc2UiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mY2FiZDlmY2RhZjQ0NTQ5YWU5NjE0Y2UzNzI3MDY0ZS5zZXRDb250ZW50KGh0bWxfN2JiOWI0ZmYxZWI0NDBkM2E3MzI3NWE3NGQxYzIyMWEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8zYzAyNzY4YjRkN2M0NDY0OGQwYTc1ZGU2NjQ3ODg3Ni5iaW5kUG9wdXAocG9wdXBfZmNhYmQ5ZmNkYWY0NDU0OWFlOTYxNGNlMzcyNzA2NGUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZTMxZDA1NjQ2NjQ2NDI4ZWI5NjhiYTg2ZWJkODY0NGQgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY2MDc4NSwgLTEuMTg4NjkxNl0sIFs1MC42NjY3MDg3LCAtMS4xODc4NTE4XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzI0MmM0NmZmMzU5NGRmODllN2QxYmNmNDMyY2M1YTQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZjJmMzViNTBhNWJjNDZkNjg2ZmNlZDc1ZDY5Mzk4ZDggPSAkKCc8ZGl2IGlkPSJodG1sX2YyZjM1YjUwYTViYzQ2ZDY4NmZjZWQ3NWQ2OTM5OGQ4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iWW91bmd3b29kcyBXYXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zMjQyYzQ2ZmYzNTk0ZGY4OWU3ZDFiY2Y0MzJjYzVhNC5zZXRDb250ZW50KGh0bWxfZjJmMzViNTBhNWJjNDZkNjg2ZmNlZDc1ZDY5Mzk4ZDgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9lMzFkMDU2NDY2NDY0MjhlYjk2OGJhODZlYmQ4NjQ0ZC5iaW5kUG9wdXAocG9wdXBfMzI0MmM0NmZmMzU5NGRmODllN2QxYmNmNDMyY2M1YTQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNTAwMDNkMGViNTMyNDUzMWEyNzFhNzgwNjRiZDNlNjQgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY2MDc4NSwgLTEuMTg4NjkxNl0sIFs1MC42NjMwMzM1LCAtMS4xOTIwMDY4XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOGYxY2Q2MWNjOTllNDNjMTg3MGU5NDkxNmQ1OTEyMjIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOWQ2YzI4YjBhOGMwNGU3Njk2MzJjNjc4Zjk0M2RkYmQgPSAkKCc8ZGl2IGlkPSJodG1sXzlkNmMyOGIwYThjMDRlNzY5NjMyYzY3OGY5NDNkZGJkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iWW91bmd3b29kcyBXYXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84ZjFjZDYxY2M5OWU0M2MxODcwZTk0OTE2ZDU5MTIyMi5zZXRDb250ZW50KGh0bWxfOWQ2YzI4YjBhOGMwNGU3Njk2MzJjNjc4Zjk0M2RkYmQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV81MDAwM2QwZWI1MzI0NTMxYTI3MWE3ODA2NGJkM2U2NC5iaW5kUG9wdXAocG9wdXBfOGYxY2Q2MWNjOTllNDNjMTg3MGU5NDkxNmQ1OTEyMjIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMmQ3MGQ3ZjljNTM1NGI3MGIwMWJlNzA2NDk3NTQ2ZjEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY2MDc4NSwgLTEuMTg4NjkxNl0sIFs1MC42NjY0NzczLCAtMS4xODkxNTk5XSwgWzUwLjY2NjYzNSwgLTEuMTg5Njg2N10sIFs1MC42NjY1MzMsIC0xLjE5MDA1MjVdLCBbNTAuNjY1OTUxOSwgLTEuMTkwNzYwNV0sIFs1MC42NjU1NTI3LCAtMS4xOTA5NzM1XSwgWzUwLjY2NTM1ODIsIC0xLjE5MTE4NjZdLCBbNTAuNjY1MjI4NSwgLTEuMTkxNTAxMl1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzM0YWUwMGZlZTUxOTRmODg5ZDI0Y2M2ODkzOWI0YWU2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzc0MjU5NGEyY2Y0OTQwY2ViZmJhOGY3ZWYyZjc5MDUzID0gJCgnPGRpdiBpZD0iaHRtbF83NDI1OTRhMmNmNDk0MGNlYmZiYThmN2VmMmY3OTA1MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IllvdW5nd29vZHMgQ29wc2UiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zNGFlMDBmZWU1MTk0Zjg4OWQyNGNjNjg5MzliNGFlNi5zZXRDb250ZW50KGh0bWxfNzQyNTk0YTJjZjQ5NDBjZWJmYmE4ZjdlZjJmNzkwNTMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8yZDcwZDdmOWM1MzU0YjcwYjAxYmU3MDY0OTc1NDZmMS5iaW5kUG9wdXAocG9wdXBfMzRhZTAwZmVlNTE5NGY4ODlkMjRjYzY4OTM5YjRhZTYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMDU0N2I0OTFjZmRiNDMyZGFhNGM0YjFlN2MxYjIwMjMgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY2NzA4NywgLTEuMTg3ODUxOF0sIFs1MC42NjYwNzg1LCAtMS4xODg2OTE2XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfN2RiYjliMDczYTVlNGQzNmE4YTI4YjkwNGJiZWFlYmYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODE3Mjc0NzQxOWMxNDVhM2EwNTA2Mjk4Y2NjODYxMWUgPSAkKCc8ZGl2IGlkPSJodG1sXzgxNzI3NDc0MTljMTQ1YTNhMDUwNjI5OGNjYzg2MTFlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iWW91bmd3b29kcyBXYXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83ZGJiOWIwNzNhNWU0ZDM2YThhMjhiOTA0YmJlYWViZi5zZXRDb250ZW50KGh0bWxfODE3Mjc0NzQxOWMxNDVhM2EwNTA2Mjk4Y2NjODYxMWUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8wNTQ3YjQ5MWNmZGI0MzJkYWE0YzRiMWU3YzFiMjAyMy5iaW5kUG9wdXAocG9wdXBfN2RiYjliMDczYTVlNGQzNmE4YTI4YjkwNGJiZWFlYmYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNWRjMjdkNWRjYmJmNDI0NzhmZjI3NzI4NTRhYzcxNmEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY2NzA4NywgLTEuMTg3ODUxOF0sIFs1MC42NjY2OTMsIC0xLjE4Nzc2OF0sIFs1MC42NjY2NDMzLCAtMS4xODc2NjU4XSwgWzUwLjY2NjQ4MzUsIC0xLjE4NzU3NzNdLCBbNTAuNjY2MzQ5MiwgLTEuMTg3NTEyOV0sIFs1MC42NjYxOTIzLCAtMS4xODc0NDM0XSwgWzUwLjY2NjEyMDEsIC0xLjE4NzQxOTNdLCBbNTAuNjY2MDEwNCwgLTEuMTg3NDM4MV0sIFs1MC42NjU5MjYyLCAtMS4xODc1MDM4XSwgWzUwLjY2NTY5NjcsIC0xLjE4Nzc2XSwgWzUwLjY2NTU2NzUsIC0xLjE4NzgxMzZdLCBbNTAuNjY1NDcxNSwgLTEuMTg3NzgxNF0sIFs1MC42NjUzNTc2LCAtMS4xODc3NjUzXSwgWzUwLjY2NTI4NjIsIC0xLjE4Nzc1ODZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83MWVjMzgzMmU3OTA0NmUxODcyZjQyMDM1NzFlMzEzYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mN2ViMDVhNjc5NTA0YmUxOWM0NDFjMTM0ODQ3NzViNyA9ICQoJzxkaXYgaWQ9Imh0bWxfZjdlYjA1YTY3OTUwNGJlMTljNDQxYzEzNDg0Nzc1YjciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJZb3VuZ3dvb2RzIFdheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzcxZWMzODMyZTc5MDQ2ZTE4NzJmNDIwMzU3MWUzMTNiLnNldENvbnRlbnQoaHRtbF9mN2ViMDVhNjc5NTA0YmUxOWM0NDFjMTM0ODQ3NzViNyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzVkYzI3ZDVkY2JiZjQyNDc4ZmYyNzcyODU0YWM3MTZhLmJpbmRQb3B1cChwb3B1cF83MWVjMzgzMmU3OTA0NmUxODcyZjQyMDM1NzFlMzEzYik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8zOTk1ODMwMjNkZGU0MDE2YmM0NDg3NDcwYTFkYjY4NiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjY3MDg3LCAtMS4xODc4NTE4XSwgWzUwLjY2Njc2NTksIC0xLjE4Nzg2MDJdLCBbNTAuNjY3MTkxNSwgLTEuMTg4NTU5OV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzFiM2ZlNzQxNmE5YzQ5ZmI5ZDNmMzQ4OTQzZjI1ODBlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzU5MDc5MzI5OGUyYTRiMjRiY2IxOGVkNWM3NjY2ZTdlID0gJCgnPGRpdiBpZD0iaHRtbF81OTA3OTMyOThlMmE0YjI0YmNiMThlZDVjNzY2NmU3ZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IldlYnN0ZXIgV2F5IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMWIzZmU3NDE2YTljNDlmYjlkM2YzNDg5NDNmMjU4MGUuc2V0Q29udGVudChodG1sXzU5MDc5MzI5OGUyYTRiMjRiY2IxOGVkNWM3NjY2ZTdlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMzk5NTgzMDIzZGRlNDAxNmJjNDQ4NzQ3MGExZGI2ODYuYmluZFBvcHVwKHBvcHVwXzFiM2ZlNzQxNmE5YzQ5ZmI5ZDNmMzQ4OTQzZjI1ODBlKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2YwYzc3YjQ1OTA4ZTRmMGVhZmU1YmRhZTgyYjU0OWI3ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NzE5MTUsIC0xLjE4ODU1OTldLCBbNTAuNjY3NDg4MywgLTEuMTg4MzU1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZmQ5MmJmYjI5NWM3NGExZWE0OWRkZWQ1YTlhYzk0Y2MgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMWVlMThhM2Q5NWM3NGE3NTlkOTQ2YzY3ZjdlZmRmY2QgPSAkKCc8ZGl2IGlkPSJodG1sXzFlZTE4YTNkOTVjNzRhNzU5ZDk0NmM2N2Y3ZWZkZmNkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV2Vic3RlciBXYXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mZDkyYmZiMjk1Yzc0YTFlYTQ5ZGRlZDVhOWFjOTRjYy5zZXRDb250ZW50KGh0bWxfMWVlMThhM2Q5NWM3NGE3NTlkOTQ2YzY3ZjdlZmRmY2QpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9mMGM3N2I0NTkwOGU0ZjBlYWZlNWJkYWU4MmI1NDliNy5iaW5kUG9wdXAocG9wdXBfZmQ5MmJmYjI5NWM3NGExZWE0OWRkZWQ1YTlhYzk0Y2MpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNjlmOTZiMTZkMzViNDFjMjliMmMyZWMyYjZmNjdhYWEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY3MTkxNSwgLTEuMTg4NTU5OV0sIFs1MC42Njc0MDM1LCAtMS4xODkxNDI1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDNmMDhhNTJiZDBiNDQ0MTg4MTVhZTkwYzdiY2I0MDEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjhhODRmMjFlMjhlNDYzZWEyNDNiZWViNGE1Yjc2ZTggPSAkKCc8ZGl2IGlkPSJodG1sXzI4YTg0ZjIxZTI4ZTQ2M2VhMjQzYmVlYjRhNWI3NmU4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV2Vic3RlciBXYXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wM2YwOGE1MmJkMGI0NDQxODgxNWFlOTBjN2JjYjQwMS5zZXRDb250ZW50KGh0bWxfMjhhODRmMjFlMjhlNDYzZWEyNDNiZWViNGE1Yjc2ZTgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV82OWY5NmIxNmQzNWI0MWMyOWIyYzJlYzJiNmY2N2FhYS5iaW5kUG9wdXAocG9wdXBfMDNmMDhhNTJiZDBiNDQ0MTg4MTVhZTkwYzdiY2I0MDEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfYzIxMzI4NzUwZTk4NGE1YmFlOTBlNWI0MDFlZWFhZTEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY3MTkxNSwgLTEuMTg4NTU5OV0sIFs1MC42NjY3NjU5LCAtMS4xODc4NjAyXSwgWzUwLjY2NjcwODcsIC0xLjE4Nzg1MThdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81OWY5YjgyOTQxMGY0ZDQ5YjYyNmY1NTY0ZmQzMWM1YyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wODQzMzA3NDdjNTY0YjBiOTBjODBjNDRjMmI1YjQ4YSA9ICQoJzxkaXYgaWQ9Imh0bWxfMDg0MzMwNzQ3YzU2NGIwYjkwYzgwYzQ0YzJiNWI0OGEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXZWJzdGVyIFdheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzU5ZjliODI5NDEwZjRkNDliNjI2ZjU1NjRmZDMxYzVjLnNldENvbnRlbnQoaHRtbF8wODQzMzA3NDdjNTY0YjBiOTBjODBjNDRjMmI1YjQ4YSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2MyMTMyODc1MGU5ODRhNWJhZTkwZTViNDAxZWVhYWUxLmJpbmRQb3B1cChwb3B1cF81OWY5YjgyOTQxMGY0ZDQ5YjYyNmY1NTY0ZmQzMWM1Yyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV84MzdmZmU2YzE4ZTk0Nzc0YjdhNGIyYTE1ZWM1ZDhiNyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42Njc0ODgzLCAtMS4xODgzNTVdLCBbNTAuNjY3MTkxNSwgLTEuMTg4NTU5OV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2MyODg1MDQ3MWZjNDQxM2FhNTlhMmY0YTYyNTA0MWViID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2VmN2VkNTU3NzU0ZjRlNDM5Y2Y4ZWVkODAwMWE1YTA0ID0gJCgnPGRpdiBpZD0iaHRtbF9lZjdlZDU1Nzc1NGY0ZTQzOWNmOGVlZDgwMDFhNWEwNCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IldlYnN0ZXIgV2F5IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzI4ODUwNDcxZmM0NDEzYWE1OWEyZjRhNjI1MDQxZWIuc2V0Q29udGVudChodG1sX2VmN2VkNTU3NzU0ZjRlNDM5Y2Y4ZWVkODAwMWE1YTA0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfODM3ZmZlNmMxOGU5NDc3NGI3YTRiMmExNWVjNWQ4YjcuYmluZFBvcHVwKHBvcHVwX2MyODg1MDQ3MWZjNDQxM2FhNTlhMmY0YTYyNTA0MWViKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2ExODdlNGRiMzk2ZTQyYzU5YTdiNjQ1ZjBlZWIwZDRlID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MzU0MjksIC0xLjIwMTA4NDNdLCBbNTAuNjUzMzczOCwgLTEuMjAxNzVdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yYWMyNzFmYmIwZjk0NGM5OWQ4NmNjMWU4NDc0NzhmZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84M2FjZTFhM2EzN2E0N2M0YmMzMzI3MDJmOTJjYjYxZiA9ICQoJzxkaXYgaWQ9Imh0bWxfODNhY2UxYTNhMzdhNDdjNGJjMzMyNzAyZjkyY2I2MWYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJDaGFtYmVycyBEcml2ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzJhYzI3MWZiYjBmOTQ0Yzk5ZDg2Y2MxZTg0NzQ3OGZmLnNldENvbnRlbnQoaHRtbF84M2FjZTFhM2EzN2E0N2M0YmMzMzI3MDJmOTJjYjYxZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2ExODdlNGRiMzk2ZTQyYzU5YTdiNjQ1ZjBlZWIwZDRlLmJpbmRQb3B1cChwb3B1cF8yYWMyNzFmYmIwZjk0NGM5OWQ4NmNjMWU4NDc0NzhmZik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8wZTUyYzUxNzU4OWI0MTc0ODRlMTRhNjA5MWMwMzM5OSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTM1NDI5LCAtMS4yMDEwODQzXSwgWzUwLjY1MzM4MTIsIC0xLjIwMTAwMjldLCBbNTAuNjUzMjE1NSwgLTEuMjAxMDA5NV0sIFs1MC42NTMyMTQ1LCAtMS4yMDEyMDQxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzE1ODM3MTBlOGEwNDZmOWI5ZDFiMmNlNzg0ZDE0ZmQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMGNjOTQ4ZjY2NzI5NGU0ODkzYjZlYzg1NDZjM2U1MTQgPSAkKCc8ZGl2IGlkPSJodG1sXzBjYzk0OGY2NjcyOTRlNDg5M2I2ZWM4NTQ2YzNlNTE0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQ2hhbWJlcnMgRHJpdmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83MTU4MzcxMGU4YTA0NmY5YjlkMWIyY2U3ODRkMTRmZC5zZXRDb250ZW50KGh0bWxfMGNjOTQ4ZjY2NzI5NGU0ODkzYjZlYzg1NDZjM2U1MTQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8wZTUyYzUxNzU4OWI0MTc0ODRlMTRhNjA5MWMwMzM5OS5iaW5kUG9wdXAocG9wdXBfNzE1ODM3MTBlOGEwNDZmOWI5ZDFiMmNlNzg0ZDE0ZmQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMTg3ZmU0ZjRmMGVmNDJiNTgzZWYwZWUwNGM3YWViZTUgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUzNTQyOSwgLTEuMjAxMDg0M10sIFs1MC42NTM5MDI1LCAtMS4yMDEzMTIzXSwgWzUwLjY1Mzk2OTcsIC0xLjIwMTI4NThdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81MjcwNGMyZWRmMTE0YTZkYTJjZmQ5YzlmMWY4OWVlNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80NDczZjMwNzM2ZmQ0NjNiODhlZjQ0NDc5N2YwOGFiMyA9ICQoJzxkaXYgaWQ9Imh0bWxfNDQ3M2YzMDczNmZkNDYzYjg4ZWY0NDQ3OTdmMDhhYjMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJDaGFtYmVycyBEcml2ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzUyNzA0YzJlZGYxMTRhNmRhMmNmZDljOWYxZjg5ZWU2LnNldENvbnRlbnQoaHRtbF80NDczZjMwNzM2ZmQ0NjNiODhlZjQ0NDc5N2YwOGFiMyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzE4N2ZlNGY0ZjBlZjQyYjU4M2VmMGVlMDRjN2FlYmU1LmJpbmRQb3B1cChwb3B1cF81MjcwNGMyZWRmMTE0YTZkYTJjZmQ5YzlmMWY4OWVlNik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV81ZmU5NjdlYzZlZmY0MDBkODc0YWY0NTE1MWM1NWY4MSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTM1NDI5LCAtMS4yMDEwODQzXSwgWzUwLjY1MzY0MjUsIC0xLjIwMDc0MjFdLCBbNTAuNjUzNjYxLCAtMS4yMDA0Njc2XSwgWzUwLjY1MzY3MTUsIC0xLjIwMDE1MDRdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83ZDFiZjdkYmU4OGQ0YTVlYTI1YTkyZjUyODFjODEwNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84Y2I5OGQ4OGQ1Nzc0NTY0YTRjNmFlNWZiNWJhNjg3OSA9ICQoJzxkaXYgaWQ9Imh0bWxfOGNiOThkODhkNTc3NDU2NGE0YzZhZTVmYjViYTY4NzkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJDaGFtYmVycyBEcml2ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzdkMWJmN2RiZTg4ZDRhNWVhMjVhOTJmNTI4MWM4MTA2LnNldENvbnRlbnQoaHRtbF84Y2I5OGQ4OGQ1Nzc0NTY0YTRjNmFlNWZiNWJhNjg3OSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzVmZTk2N2VjNmVmZjQwMGQ4NzRhZjQ1MTUxYzU1ZjgxLmJpbmRQb3B1cChwb3B1cF83ZDFiZjdkYmU4OGQ0YTVlYTI1YTkyZjUyODFjODEwNik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV82NjE1MWQ2NmFmNzg0NTI3OTJkNjgxNmZkOWViMWY5NyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTM5Njk3LCAtMS4yMDEyODU4XSwgWzUwLjY1MzkwMjUsIC0xLjIwMTMxMjNdLCBbNTAuNjUzNTQyOSwgLTEuMjAxMDg0M11dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzA1NmYzMzkyYTI0NTQ0M2I5NjNhMTgzZTgzOGQzNGYzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzA1NWM5ZTY5NzIxMDRkYjRiZWIyMzhiODBkNDliYWRhID0gJCgnPGRpdiBpZD0iaHRtbF8wNTVjOWU2OTcyMTA0ZGI0YmViMjM4YjgwZDQ5YmFkYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkNoYW1iZXJzIERyaXZlIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMDU2ZjMzOTJhMjQ1NDQzYjk2M2ExODNlODM4ZDM0ZjMuc2V0Q29udGVudChodG1sXzA1NWM5ZTY5NzIxMDRkYjRiZWIyMzhiODBkNDliYWRhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNjYxNTFkNjZhZjc4NDUyNzkyZDY4MTZmZDllYjFmOTcuYmluZFBvcHVwKHBvcHVwXzA1NmYzMzkyYTI0NTQ0M2I5NjNhMTgzZTgzOGQzNGYzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzk5MGM4YTc1NjdhYzQ0NGFhOTk0NzFhYjFlZTFlYjkyID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MzIxNDUsIC0xLjIwMTIwNDFdLCBbNTAuNjUzMjE1NSwgLTEuMjAxMDA5NV0sIFs1MC42NTMzODEyLCAtMS4yMDEwMDI5XSwgWzUwLjY1MzU0MjksIC0xLjIwMTA4NDNdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82YTlkNWI0OWZjNmQ0NmEyYmQxZGNjOGZiN2VjMjA1NyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lMmUwZjI5NDUzMjA0ZTJkYTQ0NzJlMDBkZmYyMzZlOSA9ICQoJzxkaXYgaWQ9Imh0bWxfZTJlMGYyOTQ1MzIwNGUyZGE0NDcyZTAwZGZmMjM2ZTkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJDaGFtYmVycyBEcml2ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzZhOWQ1YjQ5ZmM2ZDQ2YTJiZDFkY2M4ZmI3ZWMyMDU3LnNldENvbnRlbnQoaHRtbF9lMmUwZjI5NDUzMjA0ZTJkYTQ0NzJlMDBkZmYyMzZlOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzk5MGM4YTc1NjdhYzQ0NGFhOTk0NzFhYjFlZTFlYjkyLmJpbmRQb3B1cChwb3B1cF82YTlkNWI0OWZjNmQ0NmEyYmQxZGNjOGZiN2VjMjA1Nyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV81OGM2NGE5M2QxMzI0MjU5OGY2OWRiNTNiNTUzODIyNyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTMzNzM4LCAtMS4yMDE3NV0sIFs1MC42NTM1NDI5LCAtMS4yMDEwODQzXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfY2ZjNjU4Y2QwMzZhNDhhZmIwMDc3YWEzMjgyZGQyM2UgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNzJhZTY3YjE2M2VhNGQ4OGE4ZTU1ODkwNDk0ZTNlYzIgPSAkKCc8ZGl2IGlkPSJodG1sXzcyYWU2N2IxNjNlYTRkODhhOGU1NTg5MDQ5NGUzZWMyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQ2hhbWJlcnMgRHJpdmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jZmM2NThjZDAzNmE0OGFmYjAwNzdhYTMyODJkZDIzZS5zZXRDb250ZW50KGh0bWxfNzJhZTY3YjE2M2VhNGQ4OGE4ZTU1ODkwNDk0ZTNlYzIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV81OGM2NGE5M2QxMzI0MjU5OGY2OWRiNTNiNTUzODIyNy5iaW5kUG9wdXAocG9wdXBfY2ZjNjU4Y2QwMzZhNDhhZmIwMDc3YWEzMjgyZGQyM2UpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZGRlNWIwOWJkOWZjNDU4MGI5ZTFhZmY4ZjYwYzgyYjMgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUzMzczOCwgLTEuMjAxNzVdLCBbNTAuNjUzMjg1OSwgLTEuMjAxNzcyXSwgWzUwLjY1MzExOTksIC0xLjIwMjA2MzFdLCBbNTAuNjUzMDk5NywgLTEuMjAyMjQ3OV0sIFs1MC42NTMxMjYyLCAtMS4yMDIzNF0sIFs1MC42NTMzOTQyLCAtMS4yMDI1OF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2EzZjYyYWExYzlmNzQzYTM4ZTQ0YmUzZDFiYjMxZDhjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2MwM2ZiM2ZjZDk3ZjRjZWY4MjYwYzJhMTY2NjhlNGNhID0gJCgnPGRpdiBpZD0iaHRtbF9jMDNmYjNmY2Q5N2Y0Y2VmODI2MGMyYTE2NjY4ZTRjYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkNoYW1iZXJzIERyaXZlIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTNmNjJhYTFjOWY3NDNhMzhlNDRiZTNkMWJiMzFkOGMuc2V0Q29udGVudChodG1sX2MwM2ZiM2ZjZDk3ZjRjZWY4MjYwYzJhMTY2NjhlNGNhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfZGRlNWIwOWJkOWZjNDU4MGI5ZTFhZmY4ZjYwYzgyYjMuYmluZFBvcHVwKHBvcHVwX2EzZjYyYWExYzlmNzQzYTM4ZTQ0YmUzZDFiYjMxZDhjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzEwMDdkNTkyYjQyMjQ0MmE5ZGYwNjZjMjc5ZTY3NjZhID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MzM3MzgsIC0xLjIwMTc1XSwgWzUwLjY1MzUyMDEsIC0xLjIwMTkwMTVdLCBbNTAuNjUzNjY3OSwgLTEuMjAxOTk4NF0sIFs1MC42NTM3Mzg3LCAtMS4yMDE4NTQ0XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNGQ2ZjAyYTdhMmEyNGJkMTljY2RjMTkyZDM1YjU3N2MgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzY1MmVhOTM0YzNiNDgzMGE5OGRkMDkwZjAwZmQ0NDIgPSAkKCc8ZGl2IGlkPSJodG1sX2M2NTJlYTkzNGMzYjQ4MzBhOThkZDA5MGYwMGZkNDQyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQ2hhbWJlcnMgRHJpdmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80ZDZmMDJhN2EyYTI0YmQxOWNjZGMxOTJkMzViNTc3Yy5zZXRDb250ZW50KGh0bWxfYzY1MmVhOTM0YzNiNDgzMGE5OGRkMDkwZjAwZmQ0NDIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8xMDA3ZDU5MmI0MjI0NDJhOWRmMDY2YzI3OWU2NzY2YS5iaW5kUG9wdXAocG9wdXBfNGQ2ZjAyYTdhMmEyNGJkMTljY2RjMTkyZDM1YjU3N2MpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZmYxOTE3M2I3YWQyNDBlZGE2ZjEyOWEzYzdiOTE5NjQgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUzNzM4NywgLTEuMjAxODU0NF0sIFs1MC42NTM2Njc5LCAtMS4yMDE5OTg0XSwgWzUwLjY1MzUyMDEsIC0xLjIwMTkwMTVdLCBbNTAuNjUzMzczOCwgLTEuMjAxNzVdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kN2RjNGQxN2JmNTc0YmQzYWJjNTZlYjhiYzU3OTJlMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kNTAyMTFhNzYwMTM0ZTVmOTY5Yzc1NzNkNDFjMDk1NSA9ICQoJzxkaXYgaWQ9Imh0bWxfZDUwMjExYTc2MDEzNGU1Zjk2OWM3NTczZDQxYzA5NTUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJDaGFtYmVycyBEcml2ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Q3ZGM0ZDE3YmY1NzRiZDNhYmM1NmViOGJjNTc5MmUxLnNldENvbnRlbnQoaHRtbF9kNTAyMTFhNzYwMTM0ZTVmOTY5Yzc1NzNkNDFjMDk1NSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2ZmMTkxNzNiN2FkMjQwZWRhNmYxMjlhM2M3YjkxOTY0LmJpbmRQb3B1cChwb3B1cF9kN2RjNGQxN2JmNTc0YmQzYWJjNTZlYjhiYzU3OTJlMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8yYTNkZGUzN2JjYzY0NGZmYTJhZjM4ZWRjNTc4ZmViZiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTMzOTQyLCAtMS4yMDI1OF0sIFs1MC42NTMxMjYyLCAtMS4yMDIzNF0sIFs1MC42NTMwOTk3LCAtMS4yMDIyNDc5XSwgWzUwLjY1MzExOTksIC0xLjIwMjA2MzFdLCBbNTAuNjUzMjg1OSwgLTEuMjAxNzcyXSwgWzUwLjY1MzM3MzgsIC0xLjIwMTc1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOWRjM2E5NGZmYWU2NGNjMGFlNWM2MzVkYTI4OWFmMTQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDkwMWU5NmZiNTc3NDEzNGJkZWY5ZTExYzQxY2YxMDIgPSAkKCc8ZGl2IGlkPSJodG1sX2Q5MDFlOTZmYjU3NzQxMzRiZGVmOWUxMWM0MWNmMTAyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQ2hhbWJlcnMgRHJpdmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85ZGMzYTk0ZmZhZTY0Y2MwYWU1YzYzNWRhMjg5YWYxNC5zZXRDb250ZW50KGh0bWxfZDkwMWU5NmZiNTc3NDEzNGJkZWY5ZTExYzQxY2YxMDIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8yYTNkZGUzN2JjYzY0NGZmYTJhZjM4ZWRjNTc4ZmViZi5iaW5kUG9wdXAocG9wdXBfOWRjM2E5NGZmYWU2NGNjMGFlNWM2MzVkYTI4OWFmMTQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMmRlYmExZThiZGU2NGE2YWIxNzdlN2E2YmFiMTk1ODQgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUyNjU4NywgLTEuMjAwMzYxMV0sIFs1MC42NTI2NTUsIC0xLjIwMDYwOTddLCBbNTAuNjUyNTgxOSwgLTEuMjAwNzMwOV0sIFs1MC42NTIyMzAxLCAtMS4yMDA3OTM0XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfN2E4M2FhNDU1MDIxNGQ4Yzk1N2MwYmM5OWJjYTI2NDUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDYyMDJmMTgwOWVjNDdkZmE3ZTY5NzBjOTkxZTRjNDIgPSAkKCc8ZGl2IGlkPSJodG1sX2Q2MjAyZjE4MDllYzQ3ZGZhN2U2OTcwYzk5MWU0YzQyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iVGhlIFBhZGRvY2siPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83YTgzYWE0NTUwMjE0ZDhjOTU3YzBiYzk5YmNhMjY0NS5zZXRDb250ZW50KGh0bWxfZDYyMDJmMTgwOWVjNDdkZmE3ZTY5NzBjOTkxZTRjNDIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8yZGViYTFlOGJkZTY0YTZhYjE3N2U3YTZiYWIxOTU4NC5iaW5kUG9wdXAocG9wdXBfN2E4M2FhNDU1MDIxNGQ4Yzk1N2MwYmM5OWJjYTI2NDUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfOWJhZTU4MWFkYWE4NDE4YTk5ZjM4NTFjNjI2MzI0OWQgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUyMjMwMSwgLTEuMjAwNzkzNF0sIFs1MC42NTIyNDEyLCAtMS4yMDExODUzXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYTQ4ZWIwMTg3YzRlNDcyZmFiNDdiYjg1Njg5MDUzMTcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNTA5M2RmM2UxZTNmNDk5OGI4MjM4MGJhZGUwZGZiMTMgPSAkKCc8ZGl2IGlkPSJodG1sXzUwOTNkZjNlMWUzZjQ5OThiODIzODBiYWRlMGRmYjEzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iUGFya3dheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2E0OGViMDE4N2M0ZTQ3MmZhYjQ3YmI4NTY4OTA1MzE3LnNldENvbnRlbnQoaHRtbF81MDkzZGYzZTFlM2Y0OTk4YjgyMzgwYmFkZTBkZmIxMyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzliYWU1ODFhZGFhODQxOGE5OWYzODUxYzYyNjMyNDlkLmJpbmRQb3B1cChwb3B1cF9hNDhlYjAxODdjNGU0NzJmYWI0N2JiODU2ODkwNTMxNyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9kOGRkNmNmNTE0ZGY0NTI2ODAyYzFhMjEyOTVjYmYzNSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTIyMzAxLCAtMS4yMDA3OTM0XSwgWzUwLjY1MjIwNzEsIC0xLjIwMDEyNjVdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85MDgxM2YxNGY4NDg0ZTBhODZlMjZiMTFiNTI0NWJlNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85ODFlNzYzMzc5OTg0ZDE4YmMxYzE1NTk2YmIyZmIzMyA9ICQoJzxkaXYgaWQ9Imh0bWxfOTgxZTc2MzM3OTk4NGQxOGJjMWMxNTU5NmJiMmZiMzMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJQYXJrd2F5IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTA4MTNmMTRmODQ4NGUwYTg2ZTI2YjExYjUyNDViZTcuc2V0Q29udGVudChodG1sXzk4MWU3NjMzNzk5ODRkMThiYzFjMTU1OTZiYjJmYjMzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfZDhkZDZjZjUxNGRmNDUyNjgwMmMxYTIxMjk1Y2JmMzUuYmluZFBvcHVwKHBvcHVwXzkwODEzZjE0Zjg0ODRlMGE4NmUyNmIxMWI1MjQ1YmU3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2ZhZWQxZGViNDJkMDQ1NDNiMjcxMDgyOWUyNTU2MGU0ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MjIzMDEsIC0xLjIwMDc5MzRdLCBbNTAuNjUyNTgxOSwgLTEuMjAwNzMwOV0sIFs1MC42NTI2NTUsIC0xLjIwMDYwOTddLCBbNTAuNjUyNjU4NywgLTEuMjAwMzYxMV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzlkMTcyZjFhMGZlNDRjMzZhYWU0ODFjYmVlNjIwODNhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2RiYTgxYjNmOGMwNDQ1OWQ5NzhkNjIyYzgyM2IzZDZmID0gJCgnPGRpdiBpZD0iaHRtbF9kYmE4MWIzZjhjMDQ0NTlkOTc4ZDYyMmM4MjNiM2Q2ZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IlRoZSBQYWRkb2NrIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOWQxNzJmMWEwZmU0NGMzNmFhZTQ4MWNiZWU2MjA4M2Euc2V0Q29udGVudChodG1sX2RiYTgxYjNmOGMwNDQ1OWQ5NzhkNjIyYzgyM2IzZDZmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfZmFlZDFkZWI0MmQwNDU0M2IyNzEwODI5ZTI1NTYwZTQuYmluZFBvcHVwKHBvcHVwXzlkMTcyZjFhMGZlNDRjMzZhYWU0ODFjYmVlNjIwODNhKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzE4YWExZmM2MTEzYTQ2MDY5MDEyOWZhNDdkZDU3NjExID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MjI0MTIsIC0xLjIwMTE4NTNdLCBbNTAuNjUyMjMwMSwgLTEuMjAwNzkzNF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzVmNWExYjk3ZjE1NjQ5MzM5Y2MyZjNlN2U5NTA1ZGY2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2I2NGM2OTY2ODRmMzQ5MzJiNGFhMGNkYjc2ZTcxYzExID0gJCgnPGRpdiBpZD0iaHRtbF9iNjRjNjk2Njg0ZjM0OTMyYjRhYTBjZGI3NmU3MWMxMSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IlBhcmt3YXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81ZjVhMWI5N2YxNTY0OTMzOWNjMmYzZTdlOTUwNWRmNi5zZXRDb250ZW50KGh0bWxfYjY0YzY5NjY4NGYzNDkzMmI0YWEwY2RiNzZlNzFjMTEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8xOGFhMWZjNjExM2E0NjA2OTAxMjlmYTQ3ZGQ1NzYxMS5iaW5kUG9wdXAocG9wdXBfNWY1YTFiOTdmMTU2NDkzMzljYzJmM2U3ZTk1MDVkZjYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfOTdkZTE3OGQzNGE5NDQzMmI1NjhiMTRhNjk2YzQwZjMgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUyMjQxMiwgLTEuMjAxMTg1M10sIFs1MC42NTIxMTIsIC0xLjIwMTE5OTZdLCBbNTAuNjUxODI2MSwgLTEuMjAxNTI1NF0sIFs1MC42NTEyNjgyLCAtMS4yMDIxNjFdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xMTFlM2RiMWQxZWU0ZjgxYTgyYzBlNzlkNmRhOWFlYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mOTdkOGU1YzQ2ZGU0MTNhOTIyYWZkNDliNjUyNWNmOCA9ICQoJzxkaXYgaWQ9Imh0bWxfZjk3ZDhlNWM0NmRlNDEzYTkyMmFmZDQ5YjY1MjVjZjgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJQYXJrd2F5IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTExZTNkYjFkMWVlNGY4MWE4MmMwZTc5ZDZkYTlhZWMuc2V0Q29udGVudChodG1sX2Y5N2Q4ZTVjNDZkZTQxM2E5MjJhZmQ0OWI2NTI1Y2Y4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfOTdkZTE3OGQzNGE5NDQzMmI1NjhiMTRhNjk2YzQwZjMuYmluZFBvcHVwKHBvcHVwXzExMWUzZGIxZDFlZTRmODFhODJjMGU3OWQ2ZGE5YWVjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzhiZThmNmVkN2YyMTRlMTE5MTg3OTRhYWRkYWIxZDg4ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MjI0MTIsIC0xLjIwMTE4NTNdLCBbNTAuNjUyMjgxNCwgLTEuMjAxNzAyOV0sIFs1MC42NTIyOTgzLCAtMS4yMDE3NjYzXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYWU1ZDZlNjhkOWExNGE3OThlMWVkMjQ5MWE3ZTA5MDcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjYzNDVkNWU2YmNmNDFiMmJiNzc5ZjVmMzY2MDE3YWUgPSAkKCc8ZGl2IGlkPSJodG1sX2I2MzQ1ZDVlNmJjZjQxYjJiYjc3OWY1ZjM2NjAxN2FlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV29vZHMgRHJpdmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hZTVkNmU2OGQ5YTE0YTc5OGUxZWQyNDkxYTdlMDkwNy5zZXRDb250ZW50KGh0bWxfYjYzNDVkNWU2YmNmNDFiMmJiNzc5ZjVmMzY2MDE3YWUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV84YmU4ZjZlZDdmMjE0ZTExOTE4Nzk0YWFkZGFiMWQ4OC5iaW5kUG9wdXAocG9wdXBfYWU1ZDZlNjhkOWExNGE3OThlMWVkMjQ5MWE3ZTA5MDcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZGZmNzZiNTE2NjQ3NDUxNmI2YmMzODUzYTRhOWJjODYgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUxMjY4MiwgLTEuMjAyMTYxXSwgWzUwLjY1MTgyNjEsIC0xLjIwMTUyNTRdLCBbNTAuNjUyMTEyLCAtMS4yMDExOTk2XSwgWzUwLjY1MjI0MTIsIC0xLjIwMTE4NTNdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iYzY0YWVhZWVkNjM0MDgzOTQyMWM4YjE4ZmVjMzI2MiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kNjkxMzVlMjZhNTI0YjNiOTIyYjNkYWEzMjc5MmM3MCA9ICQoJzxkaXYgaWQ9Imh0bWxfZDY5MTM1ZTI2YTUyNGIzYjkyMmIzZGFhMzI3OTJjNzAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJQYXJrd2F5IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYmM2NGFlYWVlZDYzNDA4Mzk0MjFjOGIxOGZlYzMyNjIuc2V0Q29udGVudChodG1sX2Q2OTEzNWUyNmE1MjRiM2I5MjJiM2RhYTMyNzkyYzcwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfZGZmNzZiNTE2NjQ3NDUxNmI2YmMzODUzYTRhOWJjODYuYmluZFBvcHVwKHBvcHVwX2JjNjRhZWFlZWQ2MzQwODM5NDIxYzhiMThmZWMzMjYyKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzg4YzU3Zjg0NWIyMDRhMTY4MjRiMDRhMTdmM2U4YTAwID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MjI5ODMsIC0xLjIwMTc2NjNdLCBbNTAuNjUyMjY0LCAtMS4yMDE4MDc0XSwgWzUwLjY1MjI0MjEsIC0xLjIwMTg2NTldLCBbNTAuNjUyMjM2LCAtMS4yMDE5MzMxXSwgWzUwLjY1MjI0NjQsIC0xLjIwMTk5OTFdLCBbNTAuNjUyMjcxOSwgLTEuMjAyMDUzOF0sIFs1MC42NTIzMDg3LCAtMS4yMDIwODkyXSwgWzUwLjY1MjM1MTIsIC0xLjIwMjFdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yOTU2MjJkMzEwZGY0MzVjOWQ4YTg0ZTYxODA4MWNiOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wMmZiYzQ5MTlmZmM0MzI5OTA0ZWNlODI0YzEzOTgyNSA9ICQoJzxkaXYgaWQ9Imh0bWxfMDJmYmM0OTE5ZmZjNDMyOTkwNGVjZTgyNGMxMzk4MjUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXb29kcyBEcml2ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzI5NTYyMmQzMTBkZjQzNWM5ZDhhODRlNjE4MDgxY2I4LnNldENvbnRlbnQoaHRtbF8wMmZiYzQ5MTlmZmM0MzI5OTA0ZWNlODI0YzEzOTgyNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzg4YzU3Zjg0NWIyMDRhMTY4MjRiMDRhMTdmM2U4YTAwLmJpbmRQb3B1cChwb3B1cF8yOTU2MjJkMzEwZGY0MzVjOWQ4YTg0ZTYxODA4MWNiOCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8wM2U1MjYyZmJkZmQ0ZWY0OTgzMzcyNjM2Nzk5ZTg1NyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTIyOTgzLCAtMS4yMDE3NjYzXSwgWzUwLjY1MjI4MTQsIC0xLjIwMTcwMjldLCBbNTAuNjUyMjQxMiwgLTEuMjAxMTg1M11dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzU4N2NmZTJlOTg5ODQ2YWNhOGQ1NWIwNDNkMWMwZmY5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2NjMjA3NTVjMzA1MjQ5MDBiYTMyOWZmNDU3ZmVhNzVjID0gJCgnPGRpdiBpZD0iaHRtbF9jYzIwNzU1YzMwNTI0OTAwYmEzMjlmZjQ1N2ZlYTc1YyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Ildvb2RzIERyaXZlIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNTg3Y2ZlMmU5ODk4NDZhY2E4ZDU1YjA0M2QxYzBmZjkuc2V0Q29udGVudChodG1sX2NjMjA3NTVjMzA1MjQ5MDBiYTMyOWZmNDU3ZmVhNzVjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMDNlNTI2MmZiZGZkNGVmNDk4MzM3MjYzNjc5OWU4NTcuYmluZFBvcHVwKHBvcHVwXzU4N2NmZTJlOTg5ODQ2YWNhOGQ1NWIwNDNkMWMwZmY5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzlmNzdlZWZhMWM5NzRlYTdhNmVlNjEyM2MzNDQwYzc3ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MjM1MTIsIC0xLjIwMjFdLCBbNTAuNjUyMzg4NCwgLTEuMjAyMDg3N10sIFs1MC42NTI0MjA4LCAtMS4yMDIwNTY1XSwgWzUwLjY1MjQ0NDcsIC0xLjIwMjAwOTldLCBbNTAuNjUyNDU3MywgLTEuMjAxOTUzM10sIFs1MC42NTI0NTg2LCAtMS4yMDE5MDQxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDFhYmVjZWE4Mjc2NDE4OTk1NTMzNThjMGQ2NDQzMTMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTEyZmNmOWI2ZGY5NGFhZTlhMjE2ZWYzZjAwZTU5ODIgPSAkKCc8ZGl2IGlkPSJodG1sXzExMmZjZjliNmRmOTRhYWU5YTIxNmVmM2YwMGU1OTgyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV29vZHMgRHJpdmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wMWFiZWNlYTgyNzY0MTg5OTU1MzM1OGMwZDY0NDMxMy5zZXRDb250ZW50KGh0bWxfMTEyZmNmOWI2ZGY5NGFhZTlhMjE2ZWYzZjAwZTU5ODIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV85Zjc3ZWVmYTFjOTc0ZWE3YTZlZTYxMjNjMzQ0MGM3Ny5iaW5kUG9wdXAocG9wdXBfMDFhYmVjZWE4Mjc2NDE4OTk1NTMzNThjMGQ2NDQzMTMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfOTM4Y2JjMzU0YWRlNGFhOWE1YWUwMmJhNzIyMDY3YmYgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUyMzUxMiwgLTEuMjAyMV0sIFs1MC42NTIzMjAzLCAtMS4yMDIzNDY2XSwgWzUwLjY1MjA3MSwgLTEuMjAyNjMxMV0sIFs1MC42NTEyOTI4LCAtMS4yMDM1MTkxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfN2Y3YjE0MGY4M2VjNDI2YjlhNDliOWE0Yjg4M2IzN2YgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZjdjM2E5OTM5YTYyNDk3ZjhhMjM3ZGI3ZmU2N2M2N2EgPSAkKCc8ZGl2IGlkPSJodG1sX2Y3YzNhOTkzOWE2MjQ5N2Y4YTIzN2RiN2ZlNjdjNjdhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV29vZHMgRHJpdmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83ZjdiMTQwZjgzZWM0MjZiOWE0OWI5YTRiODgzYjM3Zi5zZXRDb250ZW50KGh0bWxfZjdjM2E5OTM5YTYyNDk3ZjhhMjM3ZGI3ZmU2N2M2N2EpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV85MzhjYmMzNTRhZGU0YWE5YTVhZTAyYmE3MjIwNjdiZi5iaW5kUG9wdXAocG9wdXBfN2Y3YjE0MGY4M2VjNDI2YjlhNDliOWE0Yjg4M2IzN2YpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMjI0MGYwMmU0YmNlNGYwOWI3YTE1Mzk1ZjQ5M2QyMjkgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUxMjkyOCwgLTEuMjAzNTE5MV0sIFs1MC42NTIwNzEsIC0xLjIwMjYzMTFdLCBbNTAuNjUyMzIwMywgLTEuMjAyMzQ2Nl0sIFs1MC42NTIzNTEyLCAtMS4yMDIxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZWMzMjUwM2NlZWE5NGVlMWE2NDdiNzEyODdmZjI0MTIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTZmOTRkNzU5Nzc1NDg5Zjg3YjZhNzYyNmU3MTdiNWMgPSAkKCc8ZGl2IGlkPSJodG1sXzE2Zjk0ZDc1OTc3NTQ4OWY4N2I2YTc2MjZlNzE3YjVjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV29vZHMgRHJpdmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lYzMyNTAzY2VlYTk0ZWUxYTY0N2I3MTI4N2ZmMjQxMi5zZXRDb250ZW50KGh0bWxfMTZmOTRkNzU5Nzc1NDg5Zjg3YjZhNzYyNmU3MTdiNWMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8yMjQwZjAyZTRiY2U0ZjA5YjdhMTUzOTVmNDkzZDIyOS5iaW5kUG9wdXAocG9wdXBfZWMzMjUwM2NlZWE5NGVlMWE2NDdiNzEyODdmZjI0MTIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNDczMmY4NzA3N2M3NGQxMjhkODNiNDRjMmI3YmQ5MmQgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjU0NTc0LCAtMS4yMDQ5MDVdLCBbNTAuNjU0NDk5NSwgLTEuMjA0NDc0XSwgWzUwLjY1NDM0NTcsIC0xLjIwNDQzODldLCBbNTAuNjU0MTAyOCwgLTEuMjA0MzM5Nl0sIFs1MC42NTM4NzA0LCAtMS4yMDQxNjg4XSwgWzUwLjY1Mzc1MTYsIC0xLjIwNDA4MTRdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kNzViM2JmODgxYjg0YzY1YjMxMDc1ZjQ5OWRkMDVlZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xYTYwYmMyZGU1Mjg0NzQ1YjkxY2Q0MGJmZWE0OThkZiA9ICQoJzxkaXYgaWQ9Imh0bWxfMWE2MGJjMmRlNTI4NDc0NWI5MWNkNDBiZmVhNDk4ZGYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJGb3Jlc3QgRGVsbCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Q3NWIzYmY4ODFiODRjNjViMzEwNzVmNDk5ZGQwNWVlLnNldENvbnRlbnQoaHRtbF8xYTYwYmMyZGU1Mjg0NzQ1YjkxY2Q0MGJmZWE0OThkZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzQ3MzJmODcwNzdjNzRkMTI4ZDgzYjQ0YzJiN2JkOTJkLmJpbmRQb3B1cChwb3B1cF9kNzViM2JmODgxYjg0YzY1YjMxMDc1ZjQ5OWRkMDVlZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9hZDliYmE0NmMyNzg0YTFlYTEwNTZkMDc0N2ZjMGNiNiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTUyODg2LCAtMS4yMDIyMjUzXSwgWzUwLjY1NTA0NzEsIC0xLjIwMjg5ODNdLCBbNTAuNjU0OTU0MSwgLTEuMjAzMDUwNV0sIFs1MC42NTQ0NjEsIC0xLjIwMzIxMzZdLCBbNTAuNjU0MjY3MiwgLTEuMjAzMjMwN10sIFs1MC42NTQxMTg5LCAtMS4yMDMxNjQxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDU2MWRkNTM0Y2UzNGU5YWE4Y2VlMDA3NGJiYzk4ZmEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOGQyNGZiZmVmZTk0NDBmYzhlMDA4MmUzNjNlZjMwZjAgPSAkKCc8ZGl2IGlkPSJodG1sXzhkMjRmYmZlZmU5NDQwZmM4ZTAwODJlMzYzZWYzMGYwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQ3VwcmVzc3VzIEF2ZW51ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzA1NjFkZDUzNGNlMzRlOWFhOGNlZTAwNzRiYmM5OGZhLnNldENvbnRlbnQoaHRtbF84ZDI0ZmJmZWZlOTQ0MGZjOGUwMDgyZTM2M2VmMzBmMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2FkOWJiYTQ2YzI3ODRhMWVhMTA1NmQwNzQ3ZmMwY2I2LmJpbmRQb3B1cChwb3B1cF8wNTYxZGQ1MzRjZTM0ZTlhYThjZWUwMDc0YmJjOThmYSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV84MTdiMGQ3NDU4NDk0NzYzYjNkNjk3NDY5ZDcwMmVjMiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTMyNTU2LCAtMS4yMDM3NDMxXSwgWzUwLjY1MzIwOTIsIC0xLjIwMzczODddLCBbNTAuNjUzMTQ5MiwgLTEuMjAzNzYzNV0sIFs1MC42NTMwODIyLCAtMS4yMDM4OTIyXSwgWzUwLjY1MzAyMjEsIC0xLjIwNDA0NDJdLCBbNTAuNjUyOTA3MiwgLTEuMjA0MjczMV0sIFs1MC42NTI0NjYxLCAtMS4yMDQ3OTQ0XSwgWzUwLjY1MjA0MTQsIC0xLjIwNTI5NV0sIFs1MC42NTE5NTU3LCAtMS4yMDUzMDk2XSwgWzUwLjY1MTkzNzksIC0xLjIwNTI3NTZdLCBbNTAuNjUxODY1OCwgLTEuMjA1MTM3N10sIFs1MC42NTE3OTg1LCAtMS4yMDUwNDQyXSwgWzUwLjY1MTY0NzYsIC0xLjIwNDgzNDVdLCBbNTAuNjUxNTc1MiwgLTEuMjA0NjgzNV0sIFs1MC42NTE2MDQxLCAtMS4yMDQ1MTI4XSwgWzUwLjY1MjM0NDQsIC0xLjIwMzcyNTldLCBbNTAuNjUyNTQ1MSwgLTEuMjAzNTAyOF0sIFs1MC42NTI2MTE1LCAtMS4yMDM0MjldLCBbNTAuNjUyODU1NywgLTEuMjAzMTU3M10sIFs1MC42NTI5MDYsIC0xLjIwMzE3MV0sIFs1MC42NTI5NDQxLCAtMS4yMDMxODE0XSwgWzUwLjY1MzE0NSwgLTEuMjAzNDk5OF0sIFs1MC42NTMyMTgsIC0xLjIwMzY2MTZdLCBbNTAuNjUzMjU1NiwgLTEuMjAzNzQzMV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzEyMmIyZjBiYWIxYTRjOGViZWVlZmZlM2ZkZWU1ODc1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2RjNmVlYmYzMWJhZDQzNGJiYjI3MzhhMzc2YTcxNGE0ID0gJCgnPGRpdiBpZD0iaHRtbF9kYzZlZWJmMzFiYWQ0MzRiYmIyNzM4YTM3NmE3MTRhNCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkZvcmVzdCBXYXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xMjJiMmYwYmFiMWE0YzhlYmVlZWZmZTNmZGVlNTg3NS5zZXRDb250ZW50KGh0bWxfZGM2ZWViZjMxYmFkNDM0YmJiMjczOGEzNzZhNzE0YTQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV84MTdiMGQ3NDU4NDk0NzYzYjNkNjk3NDY5ZDcwMmVjMi5iaW5kUG9wdXAocG9wdXBfMTIyYjJmMGJhYjFhNGM4ZWJlZWVmZmUzZmRlZTU4NzUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfOGNiZjQ4MjU2NGEwNGI3YjkwN2M1NGE3ZjM4MmQyZTEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUzMjU1NiwgLTEuMjAzNzQzMV0sIFs1MC42NTMyMTgsIC0xLjIwMzY2MTZdLCBbNTAuNjUzMTQ1LCAtMS4yMDM0OTk4XSwgWzUwLjY1Mjk0NDEsIC0xLjIwMzE4MTRdLCBbNTAuNjUyOTA2LCAtMS4yMDMxNzFdLCBbNTAuNjUyODU1NywgLTEuMjAzMTU3M10sIFs1MC42NTI2MTE1LCAtMS4yMDM0MjldLCBbNTAuNjUyNTQ1MSwgLTEuMjAzNTAyOF0sIFs1MC42NTIzNDQ0LCAtMS4yMDM3MjU5XSwgWzUwLjY1MTYwNDEsIC0xLjIwNDUxMjhdLCBbNTAuNjUxNTc1MiwgLTEuMjA0NjgzNV0sIFs1MC42NTE2NDc2LCAtMS4yMDQ4MzQ1XSwgWzUwLjY1MTc5ODUsIC0xLjIwNTA0NDJdLCBbNTAuNjUxODY1OCwgLTEuMjA1MTM3N10sIFs1MC42NTE5Mzc5LCAtMS4yMDUyNzU2XSwgWzUwLjY1MTk1NTcsIC0xLjIwNTMwOTZdLCBbNTAuNjUyMDQxNCwgLTEuMjA1Mjk1XSwgWzUwLjY1MjQ2NjEsIC0xLjIwNDc5NDRdLCBbNTAuNjUyOTA3MiwgLTEuMjA0MjczMV0sIFs1MC42NTMwMjIxLCAtMS4yMDQwNDQyXSwgWzUwLjY1MzA4MjIsIC0xLjIwMzg5MjJdLCBbNTAuNjUzMTQ5MiwgLTEuMjAzNzYzNV0sIFs1MC42NTMyMDkyLCAtMS4yMDM3Mzg3XSwgWzUwLjY1MzI1NTYsIC0xLjIwMzc0MzFdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mMTRkZjI4MzExODY0YjM0YjA1YWViZGY3NDI1YTczMiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mMjIwOGE4NTUxMWY0NTllYjRjMDk3MTI1ZTkyYTY0NyA9ICQoJzxkaXYgaWQ9Imh0bWxfZjIyMDhhODU1MTFmNDU5ZWI0YzA5NzEyNWU5MmE2NDciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJGb3Jlc3QgV2F5IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZjE0ZGYyODMxMTg2NGIzNGIwNWFlYmRmNzQyNWE3MzIuc2V0Q29udGVudChodG1sX2YyMjA4YTg1NTExZjQ1OWViNGMwOTcxMjVlOTJhNjQ3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfOGNiZjQ4MjU2NGEwNGI3YjkwN2M1NGE3ZjM4MmQyZTEuYmluZFBvcHVwKHBvcHVwX2YxNGRmMjgzMTE4NjRiMzRiMDVhZWJkZjc0MjVhNzMyKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzQ2MzliNWQ5Zjg4NjQ2ZWViOTZiNDBlMThjNmI4NzM2ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MzI1NTYsIC0xLjIwMzc0MzFdLCBbNTAuNjUzNDE4OCwgLTEuMjAzOTQ5NV0sIFs1MC42NTM1NjQxLCAtMS4yMDQwOTkzXSwgWzUwLjY1MzY5NjMsIC0xLjIwNDIxMjldXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jODlhMzhlODM3MzQ0NmMyOTNmYzFkYTJlNTM2NTE2NyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lMGMwZTIxNDRjNjA0YzBhYTc4OGZkNjI3ODY4MWVjYSA9ICQoJzxkaXYgaWQ9Imh0bWxfZTBjMGUyMTQ0YzYwNGMwYWE3ODhmZDYyNzg2ODFlY2EiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJGb3Jlc3QgV2F5IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzg5YTM4ZTgzNzM0NDZjMjkzZmMxZGEyZTUzNjUxNjcuc2V0Q29udGVudChodG1sX2UwYzBlMjE0NGM2MDRjMGFhNzg4ZmQ2Mjc4NjgxZWNhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNDYzOWI1ZDlmODg2NDZlZWI5NmI0MGUxOGM2Yjg3MzYuYmluZFBvcHVwKHBvcHVwX2M4OWEzOGU4MzczNDQ2YzI5M2ZjMWRhMmU1MzY1MTY3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzI3MzYwNTkxZThiNzQ4MzQ5ZWM1YzEzNmRkNzNhOGFjID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY0NzE2OTIsIC0xLjIwMzQxOTVdLCBbNTAuNjQ3MTkxMSwgLTEuMjAzNzc0N10sIFs1MC42NDcyMzU5LCAtMS4yMDQ4NDZdLCBbNTAuNjQ3MjY5OSwgLTEuMjA1NTI5M10sIFs1MC42NDczMTgzLCAtMS4yMDY0NjVdLCBbNTAuNjQ3MzU4MywgLTEuMjA3NDI2NV0sIFs1MC42NDczNzk3LCAtMS4yMDc3NzE1XSwgWzUwLjY0NzM5NzcsIC0xLjIwODA2MzFdLCBbNTAuNjQ3NTA5LCAtMS4yMDg0NDFdLCBbNTAuNjQ3NjA3OCwgLTEuMjA4NzA0OF0sIFs1MC42NDc2ODUxLCAtMS4yMDg5MTI3XSwgWzUwLjY0Nzc1ODksIC0xLjIwOTIzNzldLCBbNTAuNjQ3OTE5LCAtMS4yMDk5Mjk5XSwgWzUwLjY0ODA2MDYsIC0xLjIxMDY3ODhdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kZjM5OTMyODEwNmQ0ZGViOThjNTM3ZWQ3N2NlZWE1MyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iZjdkZTZmMTMzODA0Mzk5OTM1MzZlYzZiOTQ0YTVjNiA9ICQoJzxkaXYgaWQ9Imh0bWxfYmY3ZGU2ZjEzMzgwNDM5OTkzNTM2ZWM2Yjk0NGE1YzYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJOZXdwb3J0IFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kZjM5OTMyODEwNmQ0ZGViOThjNTM3ZWQ3N2NlZWE1My5zZXRDb250ZW50KGh0bWxfYmY3ZGU2ZjEzMzgwNDM5OTkzNTM2ZWM2Yjk0NGE1YzYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8yNzM2MDU5MWU4Yjc0ODM0OWVjNWMxMzZkZDczYThhYy5iaW5kUG9wdXAocG9wdXBfZGYzOTkzMjgxMDZkNGRlYjk4YzUzN2VkNzdjZWVhNTMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfM2ExZGYwNWY0OWZkNDIzOWE1YjAyYjFhMmJmNjYyMDEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQ3MTY5MiwgLTEuMjAzNDE5NV0sIFs1MC42NDcwOTk3LCAtMS4yMDMwNjM4XSwgWzUwLjY0NzAxNSwgLTEuMjAyODA0NF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2NhMTUxNGJkN2Y5OTQxYjI4ZGM5ZGZjNmI4NWMxNWU1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2VlMmJlNGEzMGQ3MDQwMzRhMWM5OWQ5MDc0OTA3OTZjID0gJCgnPGRpdiBpZD0iaHRtbF9lZTJiZTRhMzBkNzA0MDM0YTFjOTlkOTA3NDkwNzk2YyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Ik5ld3BvcnQgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2NhMTUxNGJkN2Y5OTQxYjI4ZGM5ZGZjNmI4NWMxNWU1LnNldENvbnRlbnQoaHRtbF9lZTJiZTRhMzBkNzA0MDM0YTFjOTlkOTA3NDkwNzk2Yyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzNhMWRmMDVmNDlmZDQyMzlhNWIwMmIxYTJiZjY2MjAxLmJpbmRQb3B1cChwb3B1cF9jYTE1MTRiZDdmOTk0MWIyOGRjOWRmYzZiODVjMTVlNSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9iODE4NDdjM2ZlZDI0NDM4OWZiODJlZWEyODgzZGMzMCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NDcxNjkyLCAtMS4yMDM0MTk1XSwgWzUwLjY0NzE2MTEsIC0xLjIwMzEwNTRdLCBbNTAuNjQ3MTU2NCwgLTEuMjAzMDI2M10sIFs1MC42NDcxNDM3LCAtMS4yMDI3ODgxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfY2MxYmNjZTliOTA4NGU4YmI4OTQ2MDQ2NmJlYWRkNWYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMGNlNzY4YWI2NWU5NDViZjhkY2IwZWM3ZGY3YmVkZmEgPSAkKCc8ZGl2IGlkPSJodG1sXzBjZTc2OGFiNjVlOTQ1YmY4ZGNiMGVjN2RmN2JlZGZhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5OYU48L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2NjMWJjY2U5YjkwODRlOGJiODk0NjA0NjZiZWFkZDVmLnNldENvbnRlbnQoaHRtbF8wY2U3NjhhYjY1ZTk0NWJmOGRjYjBlYzdkZjdiZWRmYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2I4MTg0N2MzZmVkMjQ0Mzg5ZmI4MmVlYTI4ODNkYzMwLmJpbmRQb3B1cChwb3B1cF9jYzFiY2NlOWI5MDg0ZThiYjg5NDYwNDY2YmVhZGQ1Zik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV83NjgxNzQ5ZjljMzY0ZmQxODdiNzA4NjJmYTQ5M2EyOSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTQ2Mjk3LCAtMS4yMTA4NTIxXSwgWzUwLjY1NDc4MjksIC0xLjIxMDk1MDVdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80OTlhOGYzYTg1YWI0ZGUyOWI5Y2VlYzc5NjU3ZDc5ZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84OTAxMGZkMDA4MGU0NTdjOWJkNTk4MGM4OTgwMmI1YSA9ICQoJzxkaXYgaWQ9Imh0bWxfODkwMTBmZDAwODBlNDU3YzliZDU5ODBjODk4MDJiNWEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXaW5mb3JkIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80OTlhOGYzYTg1YWI0ZGUyOWI5Y2VlYzc5NjU3ZDc5ZS5zZXRDb250ZW50KGh0bWxfODkwMTBmZDAwODBlNDU3YzliZDU5ODBjODk4MDJiNWEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV83NjgxNzQ5ZjljMzY0ZmQxODdiNzA4NjJmYTQ5M2EyOS5iaW5kUG9wdXAocG9wdXBfNDk5YThmM2E4NWFiNGRlMjliOWNlZWM3OTY1N2Q3OWUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMTI2ZTU4ZDk5MGZhNDVmMWI2NTc1NWY0YTQzNTZiYWEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjU0NjI5NywgLTEuMjEwODUyMV0sIFs1MC42NTQ0ODg3LCAtMS4yMTA4MDg1XSwgWzUwLjY1NDMyNTcsIC0xLjIxMDc2MzVdLCBbNTAuNjUzODc5NywgLTEuMjEwNjY3Nl0sIFs1MC42NTM1MzU3LCAtMS4yMTA2NzkxXSwgWzUwLjY1MzQyMzcsIC0xLjIxMDY4MzldLCBbNTAuNjUyNjU2OSwgLTEuMjEwNTM2XSwgWzUwLjY1MjUxMjYsIC0xLjIxMDUwODJdLCBbNTAuNjUxODg3NywgLTEuMjEwMzc4NV0sIFs1MC42NTE4MjIsIC0xLjIxMDM2NDldLCBbNTAuNjUxNTEzLCAtMS4yMTAzMzQ5XSwgWzUwLjY1MTMzODQsIC0xLjIxMDM0ODNdLCBbNTAuNjUxMTM1NCwgLTEuMjEwMzYzOF0sIFs1MC42NTEwMzU3LCAtMS4yMTAzNzk3XSwgWzUwLjY1MDk3MzUsIC0xLjIxMDM4MzZdLCBbNTAuNjQ5ODM0NCwgLTEuMjEwNTg2OV0sIFs1MC42NDk2NTkxLCAtMS4yMTA2MTVdLCBbNTAuNjQ5MzY3OCwgLTEuMjEwNjUzOV0sIFs1MC42NDg5MTU3LCAtMS4yMTA2OTU5XSwgWzUwLjY0ODIwNjcsIC0xLjIxMDcxMTldLCBbNTAuNjQ4MDYwNiwgLTEuMjEwNjc4OF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzAxMzFlMjEwNTNkNTRhYzM5MDI2MTM2YTQ0MGQ4OWJmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzQ5NGNiMTA2NTkyZjQwYzc4ODdjZjQ4MWRkM2Q3ODZmID0gJCgnPGRpdiBpZD0iaHRtbF80OTRjYjEwNjU5MmY0MGM3ODg3Y2Y0ODFkZDNkNzg2ZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IldpbmZvcmQgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzAxMzFlMjEwNTNkNTRhYzM5MDI2MTM2YTQ0MGQ4OWJmLnNldENvbnRlbnQoaHRtbF80OTRjYjEwNjU5MmY0MGM3ODg3Y2Y0ODFkZDNkNzg2Zik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzEyNmU1OGQ5OTBmYTQ1ZjFiNjU3NTVmNGE0MzU2YmFhLmJpbmRQb3B1cChwb3B1cF8wMTMxZTIxMDUzZDU0YWMzOTAyNjEzNmE0NDBkODliZik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV83MmE0MjEyNGY5MjY0NjY3ODllMmMwM2ZiMTE5NWE3OSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTQ2Mjk3LCAtMS4yMTA4NTIxXSwgWzUwLjY1NDY0NzYsIC0xLjIxMDYwMzVdLCBbNTAuNjU0NjM2NywgLTEuMjEwMzg4N10sIFs1MC42NTQ2MTgsIC0xLjIxMDIxMDNdLCBbNTAuNjU0NTMwMiwgLTEuMjA5NzIwMl0sIFs1MC42NTQ0NzM0LCAtMS4yMDk0MDI5XSwgWzUwLjY1NDEzNjcsIC0xLjIwNzU2M10sIFs1MC42NTM2NzA4LCAtMS4yMDQ5OTQ3XSwgWzUwLjY1MzYxMiwgLTEuMjA0NjU2NF0sIFs1MC42NTM2MDk3LCAtMS4yMDQ1MDczXSwgWzUwLjY1MzY0NDQsIC0xLjIwNDM2MDRdLCBbNTAuNjUzNjk2MywgLTEuMjA0MjEyOV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzZhZDE4M2I2MTMwZDRiMjQ4ZWQ1MmFlZGUyOTc1NzIxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2FkNGViZTMzMTcyODQ1ZTRiMmZiN2E3MDJjOWNkMDZiID0gJCgnPGRpdiBpZD0iaHRtbF9hZDRlYmUzMzE3Mjg0NWU0YjJmYjdhNzAyYzljZDA2YiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkZvcmVzdCBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNmFkMTgzYjYxMzBkNGIyNDhlZDUyYWVkZTI5NzU3MjEuc2V0Q29udGVudChodG1sX2FkNGViZTMzMTcyODQ1ZTRiMmZiN2E3MDJjOWNkMDZiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNzJhNDIxMjRmOTI2NDY2Nzg5ZTJjMDNmYjExOTVhNzkuYmluZFBvcHVwKHBvcHVwXzZhZDE4M2I2MTMwZDRiMjQ4ZWQ1MmFlZGUyOTc1NzIxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzRiNzc0NWY0OTQ5MzQ5YmM4M2ZmMTA2YTE3NTcxNzNlID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY3NTgwNDgsIC0xLjIwMjcyMzNdLCBbNTAuNjc1OTA2NSwgLTEuMjAyNjY0Ml0sIFs1MC42NzYxMzA2LCAtMS4yMDI1OTg2XSwgWzUwLjY3NjM0MjIsIC0xLjIwMjQ4NzNdLCBbNTAuNjc2MzgxLCAtMS4yMDI0NDc3XSwgWzUwLjY3NjUwMzgsIC0xLjIwMjMyMjRdLCBbNTAuNjc2Njc3MSwgLTEuMjAyMTA3OF0sIFs1MC42NzY4NDA0LCAtMS4yMDE5MTRdLCBbNTAuNjc3MTA1NSwgLTEuMjAxNjczM10sIFs1MC42NzcyNzEyLCAtMS4yMDE1NzQ3XSwgWzUwLjY3NzM3MjksIC0xLjIwMTUyMTNdLCBbNTAuNjc3MzkxOSwgLTEuMjAxNTEwM10sIFs1MC42Nzc1Njk2LCAtMS4yMDEzNDA4XSwgWzUwLjY3ODQyNzgsIC0xLjIwMDQxNDddLCBbNTAuNjc4NjkyLCAtMS4yMDAyMTc3XSwgWzUwLjY3ODk0NzksIC0xLjIwMDIwMjhdLCBbNTAuNjc5MjAyMSwgLTEuMjAwMjQ0M10sIFs1MC42Nzk3OTkzLCAtMS4yMDAzODYxXSwgWzUwLjY4MDQxOTgsIC0xLjIwMDU5Ml0sIFs1MC42ODA4MDk4LCAtMS4yMDA2ODE2XSwgWzUwLjY4MTIxNzcsIC0xLjIwMDc4NjJdLCBbNTAuNjgxNTMzOCwgLTEuMjAwODc0N10sIFs1MC42ODE3NzY4LCAtMS4yMDEwNDFdLCBbNTAuNjgxOTYsIC0xLjIwMTIyODddLCBbNTAuNjgyMTYwNiwgLTEuMjAxNDM3OV0sIFs1MC42ODIzMzU4LCAtMS4yMDE1NjI4XSwgWzUwLjY4MjQzNzcsIC0xLjIwMTUzNzRdLCBbNTAuNjgyNTYzOSwgLTEuMjAxNDgyM10sIFs1MC42ODMxNzg4LCAtMS4yMDExOTQzXSwgWzUwLjY4MzUyOCwgLTEuMjAxMTI5NF0sIFs1MC42ODM1NjA4LCAtMS4yMDExMjY1XSwgWzUwLjY4MzYyMTQsIC0xLjIwMTE1NDldXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hMmRlMTJkNGQ4MTI0Yzk1OWQyZjEyNDI1YmI4NjgzMyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85MTI5ZmE4ZTM1Y2I0OTg4OGUyMjdiN2Y0YmY4ZmI1YSA9ICQoJzxkaXYgaWQ9Imh0bWxfOTEyOWZhOGUzNWNiNDk4ODhlMjI3YjdmNGJmOGZiNWEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJLbmlnaHRvbiBTaHV0ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2EyZGUxMmQ0ZDgxMjRjOTU5ZDJmMTI0MjViYjg2ODMzLnNldENvbnRlbnQoaHRtbF85MTI5ZmE4ZTM1Y2I0OTg4OGUyMjdiN2Y0YmY4ZmI1YSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzRiNzc0NWY0OTQ5MzQ5YmM4M2ZmMTA2YTE3NTcxNzNlLmJpbmRQb3B1cChwb3B1cF9hMmRlMTJkNGQ4MTI0Yzk1OWQyZjEyNDI1YmI4NjgzMyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8xNmZhMzBiZWYwOTg0MWNjOGZlNGNiNjQ0NjJlZTM2NyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NzU4MDQ4LCAtMS4yMDI3MjMzXSwgWzUwLjY3NTcyNTUsIC0xLjIwMjk0XSwgWzUwLjY3NTQ3NDgsIC0xLjIwNDMwNDJdLCBbNTAuNjc1MjIwOSwgLTEuMjA1Njk1XSwgWzUwLjY3NDc4MSwgLTEuMjA5MjgwM10sIFs1MC42NzQ1MjM2LCAtMS4yMTA3NzAzXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDUzY2JjNmZkMWM2NDM0ZDk0YTg5YjY1MGRkMzFiN2MgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMzcwZjRlMjRhNGQ5NGQ0M2JhZjlmMDdlMWQzMmRjYjEgPSAkKCc8ZGl2IGlkPSJodG1sXzM3MGY0ZTI0YTRkOTRkNDNiYWY5ZjA3ZTFkMzJkY2IxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iS25pZ2h0b24gTGFuZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzA1M2NiYzZmZDFjNjQzNGQ5NGE4OWI2NTBkZDMxYjdjLnNldENvbnRlbnQoaHRtbF8zNzBmNGUyNGE0ZDk0ZDQzYmFmOWYwN2UxZDMyZGNiMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzE2ZmEzMGJlZjA5ODQxY2M4ZmU0Y2I2NDQ2MmVlMzY3LmJpbmRQb3B1cChwb3B1cF8wNTNjYmM2ZmQxYzY0MzRkOTRhODliNjUwZGQzMWI3Yyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV83MGQ5N2NhYTBiNjI0NWI2OTU1NjI5MDE3YzMwOWQ5NyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NzU4MDQ4LCAtMS4yMDI3MjMzXSwgWzUwLjY3NTY5MywgLTEuMjAyNzAzOV0sIFs1MC42NzU1MTYyLCAtMS4yMDI3MTQ3XSwgWzUwLjY3NTMyODgsIC0xLjIwMjc5NjZdLCBbNTAuNjc1MTEzLCAtMS4yMDI4Mjg4XSwgWzUwLjY3NDkzODIsIC0xLjIwMjgwMDZdLCBbNTAuNjc0NTU3MSwgLTEuMjAyNzI2OV0sIFs1MC42NzQwMjY4LCAtMS4yMDI1OTgyXSwgWzUwLjY3Mzk2NDgsIC0xLjIwMjU1NzldLCBbNTAuNjczOTIyMywgLTEuMjAyNDQ2Nl0sIFs1MC42NzM5MTE3LCAtMS4yMDIzNDI0XSwgWzUwLjY3MzkxNSwgLTEuMjAyMjE0Nl0sIFs1MC42NzM5NzYzLCAtMS4yMDExNzcxXSwgWzUwLjY3NDA1MzYsIC0xLjIwMDM1NDhdLCBbNTAuNjc0MTI2MywgLTEuMTk5Nzc1MV0sIFs1MC42NzQxMDcyLCAtMS4xOTk1NTAyXSwgWzUwLjY3NDAyNzMsIC0xLjE5OTQ0MTldLCBbNTAuNjczODEwNSwgLTEuMTk5MzA2NF0sIFs1MC42NzM3MTk1LCAtMS4xOTkyMjU5XSwgWzUwLjY3MzY5NSwgLTEuMTk5MTU1M10sIFs1MC42NzM3MDkzLCAtMS4xOTg4OTZdLCBbNTAuNjczNzk2OSwgLTEuMTk4MzU0Ml0sIFs1MC42NzM5MTI1LCAtMS4xOTc4OTAyXSwgWzUwLjY3NDAxNjIsIC0xLjE5NzQ4MjNdLCBbNTAuNjc0MDU1NSwgLTEuMTk3MTk2Nl0sIFs1MC42NzQxMDA2LCAtMS4xOTY5ODc5XSwgWzUwLjY3NDIxNzIsIC0xLjE5NjYwOTZdLCBbNTAuNjc0MzU4NiwgLTEuMTk2MjQwNV0sIFs1MC42NzQ0ODk2LCAtMS4xOTU4MDk0XSwgWzUwLjY3NDU1NDYsIC0xLjE5NTU0OV0sIFs1MC42NzQ2NDk4LCAtMS4xOTUxNzk5XSwgWzUwLjY3NDY3ODIsIC0xLjE5NTAwMjldLCBbNTAuNjc0Njg3NiwgLTEuMTk0OTQ0NF0sIFs1MC42NzQ2MzA3LCAtMS4xOTQ3NTEyXSwgWzUwLjY3NDM3NjUsIC0xLjE5NDUyMDJdLCBbNTAuNjc0MzE3MywgLTEuMTk0NDE0NV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzMzNzNmYTJhMTVhNTRhZGJhMjhhZjAwYjU1MGU2N2UwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzk4NmIzNmQ4ODNkYTQ5NGViZjgyYzM4MjJmMTIzY2FmID0gJCgnPGRpdiBpZD0iaHRtbF85ODZiMzZkODgzZGE0OTRlYmY4MmMzODIyZjEyM2NhZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Ikxvd2VyIEtuaWdodG9uIExhbmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zMzczZmEyYTE1YTU0YWRiYTI4YWYwMGI1NTBlNjdlMC5zZXRDb250ZW50KGh0bWxfOTg2YjM2ZDg4M2RhNDk0ZWJmODJjMzgyMmYxMjNjYWYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV83MGQ5N2NhYTBiNjI0NWI2OTU1NjI5MDE3YzMwOWQ5Ny5iaW5kUG9wdXAocG9wdXBfMzM3M2ZhMmExNWE1NGFkYmEyOGFmMDBiNTUwZTY3ZTApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfY2RjZDgzNzJmZmYwNGVjZThmZmI1YzRjMzEzZDA1OWYgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjc0MzE3MywgLTEuMTk0NDE0NV0sIFs1MC42NzQzNzY1LCAtMS4xOTQ1MjAyXSwgWzUwLjY3NDYzMDcsIC0xLjE5NDc1MTJdLCBbNTAuNjc0Njg3NiwgLTEuMTk0OTQ0NF0sIFs1MC42NzQ2NzgyLCAtMS4xOTUwMDI5XSwgWzUwLjY3NDY0OTgsIC0xLjE5NTE3OTldLCBbNTAuNjc0NTU0NiwgLTEuMTk1NTQ5XSwgWzUwLjY3NDQ4OTYsIC0xLjE5NTgwOTRdLCBbNTAuNjc0MzU4NiwgLTEuMTk2MjQwNV0sIFs1MC42NzQyMTcyLCAtMS4xOTY2MDk2XSwgWzUwLjY3NDEwMDYsIC0xLjE5Njk4NzldLCBbNTAuNjc0MDU1NSwgLTEuMTk3MTk2Nl0sIFs1MC42NzQwMTYyLCAtMS4xOTc0ODIzXSwgWzUwLjY3MzkxMjUsIC0xLjE5Nzg5MDJdLCBbNTAuNjczNzk2OSwgLTEuMTk4MzU0Ml0sIFs1MC42NzM3MDkzLCAtMS4xOTg4OTZdLCBbNTAuNjczNjk1LCAtMS4xOTkxNTUzXSwgWzUwLjY3MzcxOTUsIC0xLjE5OTIyNTldLCBbNTAuNjczODEwNSwgLTEuMTk5MzA2NF0sIFs1MC42NzQwMjczLCAtMS4xOTk0NDE5XSwgWzUwLjY3NDEwNzIsIC0xLjE5OTU1MDJdLCBbNTAuNjc0MTI2MywgLTEuMTk5Nzc1MV0sIFs1MC42NzQwNTM2LCAtMS4yMDAzNTQ4XSwgWzUwLjY3Mzk3NjMsIC0xLjIwMTE3NzFdLCBbNTAuNjczOTE1LCAtMS4yMDIyMTQ2XSwgWzUwLjY3MzkxMTcsIC0xLjIwMjM0MjRdLCBbNTAuNjczOTIyMywgLTEuMjAyNDQ2Nl0sIFs1MC42NzM5NjQ4LCAtMS4yMDI1NTc5XSwgWzUwLjY3NDAyNjgsIC0xLjIwMjU5ODJdLCBbNTAuNjc0NTU3MSwgLTEuMjAyNzI2OV0sIFs1MC42NzQ5MzgyLCAtMS4yMDI4MDA2XSwgWzUwLjY3NTExMywgLTEuMjAyODI4OF0sIFs1MC42NzUzMjg4LCAtMS4yMDI3OTY2XSwgWzUwLjY3NTUxNjIsIC0xLjIwMjcxNDddLCBbNTAuNjc1NjkzLCAtMS4yMDI3MDM5XSwgWzUwLjY3NTgwNDgsIC0xLjIwMjcyMzNdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wM2ZmNjlkNWE3Y2Q0ZTQ0OTg1YTRhNWI2NzY0ZWE2MyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hOTFmNWQwMjgwYWM0ZTNkOGUwNjM4NmNjNzIxYzQ3OSA9ICQoJzxkaXYgaWQ9Imh0bWxfYTkxZjVkMDI4MGFjNGUzZDhlMDYzODZjYzcyMWM0NzkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJMb3dlciBLbmlnaHRvbiBMYW5lIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMDNmZjY5ZDVhN2NkNGU0NDk4NWE0YTViNjc2NGVhNjMuc2V0Q29udGVudChodG1sX2E5MWY1ZDAyODBhYzRlM2Q4ZTA2Mzg2Y2M3MjFjNDc5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfY2RjZDgzNzJmZmYwNGVjZThmZmI1YzRjMzEzZDA1OWYuYmluZFBvcHVwKHBvcHVwXzAzZmY2OWQ1YTdjZDRlNDQ5ODVhNGE1YjY3NjRlYTYzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzRmYTNiNDkxODM4YjRiNWE4MmJlNmZiNDY1MWRkN2I3ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NTU4OTEsIC0xLjIwNTUxMTFdLCBbNTAuNjY1NjA1MSwgLTEuMjA1NjUzOF0sIFs1MC42NjU2MzIxLCAtMS4yMDU5NTddLCBbNTAuNjY1NjQzNiwgLTEuMjA2MTI4Ml0sIFs1MC42NjU2NzI0LCAtMS4yMDYyNzA4XSwgWzUwLjY2NTgzMjIsIC0xLjIwNzExNTZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mN2UwNmRhMzFmMDQ0NzgyODAyZTM5YzZhZjM5ZjBkMyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iNTBjNzk4OWRhNzA0MTljYjI4OWJkNGJmMjBlMDQ5NSA9ICQoJzxkaXYgaWQ9Imh0bWxfYjUwYzc5ODlkYTcwNDE5Y2IyODliZDRiZjIwZTA0OTUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlsiU2Nob29sIExhbmUiLCAiU2Nob29sIENsb3NlIl08L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Y3ZTA2ZGEzMWYwNDQ3ODI4MDJlMzljNmFmMzlmMGQzLnNldENvbnRlbnQoaHRtbF9iNTBjNzk4OWRhNzA0MTljYjI4OWJkNGJmMjBlMDQ5NSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzRmYTNiNDkxODM4YjRiNWE4MmJlNmZiNDY1MWRkN2I3LmJpbmRQb3B1cChwb3B1cF9mN2UwNmRhMzFmMDQ0NzgyODAyZTM5YzZhZjM5ZjBkMyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9iNDMyYmIyZjViNDA0ZWQyYWFlNmI5OTRiM2I4ZDFiZiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjU4MzIyLCAtMS4yMDcxMTU2XSwgWzUwLjY2NTI5NzYsIC0xLjIwNzQxMTJdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yOTE0ZDNmYmI2NTA0YWY0OTA4MGYxMDM1Yjg4MWNhMiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83OTYyMTE5NDZlYTU0OWFhOGM5NDdkMjQ4MmZlNTQwOCA9ICQoJzxkaXYgaWQ9Imh0bWxfNzk2MjExOTQ2ZWE1NDlhYThjOTQ3ZDI0ODJmZTU0MDgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJIaWdoIFN0cmVldCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzI5MTRkM2ZiYjY1MDRhZjQ5MDgwZjEwMzViODgxY2EyLnNldENvbnRlbnQoaHRtbF83OTYyMTE5NDZlYTU0OWFhOGM5NDdkMjQ4MmZlNTQwOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2I0MzJiYjJmNWI0MDRlZDJhYWU2Yjk5NGIzYjhkMWJmLmJpbmRQb3B1cChwb3B1cF8yOTE0ZDNmYmI2NTA0YWY0OTA4MGYxMDM1Yjg4MWNhMik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9jOWJlNTNhYjIzNmU0NjA0OWJhMmU3M2ZkZmY4MjMyMCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjU4MzIyLCAtMS4yMDcxMTU2XSwgWzUwLjY2NjAzMTEsIC0xLjIwNjk5ODldLCBbNTAuNjY2MjU4LCAtMS4yMDY4NzQxXSwgWzUwLjY2NjM5MzIsIC0xLjIwNjgyMDRdLCBbNTAuNjY2NTM3NywgLTEuMjA2NzgyOV0sIFs1MC42NjY3NDc3LCAtMS4yMDY3NzQ5XSwgWzUwLjY2NzAyNzgsIC0xLjIwNjgwMTJdLCBbNTAuNjY3MzI1LCAtMS4yMDY5MzAxXSwgWzUwLjY2NzY1MjYsIC0xLjIwNzI3XSwgWzUwLjY2Nzk3NDIsIC0xLjIwNzYyNV0sIFs1MC42Njg2ODE3LCAtMS4yMDgyMjU1XSwgWzUwLjY2ODg3NzQsIC0xLjIwODQ0MzldLCBbNTAuNjY5NjE0MywgLTEuMjA5MjE2M10sIFs1MC42Njk2NzMsIC0xLjIwOTI4MjFdLCBbNTAuNjY5OTE2MSwgLTEuMjA5NTU1NF0sIFs1MC42Njk5Njk2LCAtMS4yMDk2MTk4XSwgWzUwLjY3MDAxMTMsIC0xLjIwOTY2NzldLCBbNTAuNjcwMDQyMywgLTEuMjA5NzAwM10sIFs1MC42NzAyNTc4LCAtMS4yMDk5NTExXSwgWzUwLjY3MDUyMywgLTEuMjEwMjcwNF0sIFs1MC42NzA2MjE3LCAtMS4yMTAzNDgyXSwgWzUwLjY3MDcyNTIsIC0xLjIxMDQxNzRdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kNTcyMzQwNjAzOGM0OGM0ODA3NDMwNGU3NGE3NmQ0MyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83Njc5OTQ4ZTQ2OGU0YTk0YTRmYjgzNmUwYTVkZmE1NSA9ICQoJzxkaXYgaWQ9Imh0bWxfNzY3OTk0OGU0NjhlNGE5NGE0ZmI4MzZlMGE1ZGZhNTUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlsiVGhlIFNodXRlIiwgIkhpZ2ggU3RyZWV0Il08L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Q1NzIzNDA2MDM4YzQ4YzQ4MDc0MzA0ZTc0YTc2ZDQzLnNldENvbnRlbnQoaHRtbF83Njc5OTQ4ZTQ2OGU0YTk0YTRmYjgzNmUwYTVkZmE1NSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2M5YmU1M2FiMjM2ZTQ2MDQ5YmEyZTczZmRmZjgyMzIwLmJpbmRQb3B1cChwb3B1cF9kNTcyMzQwNjAzOGM0OGM0ODA3NDMwNGU3NGE3NmQ0Myk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV82NmVlMTdkNTU0YTg0ZGFmOWNmOTE0N2I1NzhlMmE1MyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjU4MzIyLCAtMS4yMDcxMTU2XSwgWzUwLjY2NTY3MjQsIC0xLjIwNjI3MDhdLCBbNTAuNjY1NjQzNiwgLTEuMjA2MTI4Ml0sIFs1MC42NjU2MzIxLCAtMS4yMDU5NTddLCBbNTAuNjY1NjA1MSwgLTEuMjA1NjUzOF0sIFs1MC42NjU1ODkxLCAtMS4yMDU1MTExXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDk2MjAwOTkwN2MxNDQwYTk4ZjJmNjVlNzNhMzc1NzYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZjY5NjIxZTNmYWE4NGY5ODg3ZjM4ZmFjMzNiYmQyZTAgPSAkKCc8ZGl2IGlkPSJodG1sX2Y2OTYyMWUzZmFhODRmOTg4N2YzOGZhYzMzYmJkMmUwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5bIlNjaG9vbCBMYW5lIiwgIlNjaG9vbCBDbG9zZSJdPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wOTYyMDA5OTA3YzE0NDBhOThmMmY2NWU3M2EzNzU3Ni5zZXRDb250ZW50KGh0bWxfZjY5NjIxZTNmYWE4NGY5ODg3ZjM4ZmFjMzNiYmQyZTApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV82NmVlMTdkNTU0YTg0ZGFmOWNmOTE0N2I1NzhlMmE1My5iaW5kUG9wdXAocG9wdXBfMDk2MjAwOTkwN2MxNDQwYTk4ZjJmNjVlNzNhMzc1NzYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfODIxZjYwMWIxMTJjNGUxZmJmMzcwMGQ5MmY0NmU5NWQgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY1MTYzOCwgLTEuMjA2OTQzMl0sIFs1MC42NjUyOTc2LCAtMS4yMDc0MTEyXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYjYzMTk3MDQxNTdkNDg1Y2JkZmE2ZTFiMjY0YjgwYjQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZTk4Nzc0NTIyYmRlNDg5ZGEwNzFhZWFmYmM3OWFkZmYgPSAkKCc8ZGl2IGlkPSJodG1sX2U5ODc3NDUyMmJkZTQ4OWRhMDcxYWVhZmJjNzlhZGZmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iTWlsZXN0b25lIENyZXNjZW50IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYjYzMTk3MDQxNTdkNDg1Y2JkZmE2ZTFiMjY0YjgwYjQuc2V0Q29udGVudChodG1sX2U5ODc3NDUyMmJkZTQ4OWRhMDcxYWVhZmJjNzlhZGZmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfODIxZjYwMWIxMTJjNGUxZmJmMzcwMGQ5MmY0NmU5NWQuYmluZFBvcHVwKHBvcHVwX2I2MzE5NzA0MTU3ZDQ4NWNiZGZhNmUxYjI2NGI4MGI0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2I2YjBkMzY4YWNhZDQ0YTU4OTdiNGFjZTBlNTkxZmVkID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NDUzMywgLTEuMjA4MjI2N10sIFs1MC42NjQ2NDg0LCAtMS4yMDgwMzE5XSwgWzUwLjY2NDc2MiwgLTEuMjA3ODkxMV0sIFs1MC42NjQ4NDI1LCAtMS4yMDc3ODc4XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOWI1MWMyNDMwODVkNGE1NDhjYTZhOGQxNDA3YTYyNTcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTYyOTRmNTc2MmQxNDhjOGFkMmViMTQ2MzZmNDU0N2QgPSAkKCc8ZGl2IGlkPSJodG1sXzE2Mjk0ZjU3NjJkMTQ4YzhhZDJlYjE0NjM2ZjQ1NDdkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV2luZm9yZCBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOWI1MWMyNDMwODVkNGE1NDhjYTZhOGQxNDA3YTYyNTcuc2V0Q29udGVudChodG1sXzE2Mjk0ZjU3NjJkMTQ4YzhhZDJlYjE0NjM2ZjQ1NDdkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfYjZiMGQzNjhhY2FkNDRhNTg5N2I0YWNlMGU1OTFmZWQuYmluZFBvcHVwKHBvcHVwXzliNTFjMjQzMDg1ZDRhNTQ4Y2E2YThkMTQwN2E2MjU3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzk3ZTY3YWIxZmFiZjRlYTY4OTM0ZTY0ZTFmYTEwMjhkID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NDUzMywgLTEuMjA4MjI2N10sIFs1MC42NjQ0OTQ1LCAtMS4yMDgzMDg0XSwgWzUwLjY2NDQ4NjYsIC0xLjIwODMyNDldLCBbNTAuNjY0NDY3NiwgLTEuMjA4MzY1Ml0sIFs1MC42NjQzMTM1LCAtMS4yMDg2OTE3XSwgWzUwLjY2NDEzNTcsIC0xLjIwOTAyNF0sIFs1MC42NjM5NTM2LCAtMS4yMDkyMDFdLCBbNTAuNjYzMTIwNiwgLTEuMjA5ODcxNV0sIFs1MC42NjI5ODQyLCAtMS4yMDk5ODEzXSwgWzUwLjY2MjM3MzYsIC0xLjIxMDY0MTddLCBbNTAuNjYyMTIyNSwgLTEuMjEwOTE4XSwgWzUwLjY2MTkyNjgsIC0xLjIxMTA4MjFdLCBbNTAuNjYxNzUyLCAtMS4yMTExNzcyXSwgWzUwLjY2MTIxLCAtMS4yMTE0ODA2XSwgWzUwLjY2MTEwMDUsIC0xLjIxMTUyNjhdLCBbNTAuNjYwNzA2NSwgLTEuMjExNjkzXSwgWzUwLjY2MDQwMzMsIC0xLjIxMTc2MjddLCBbNTAuNjU5ODM1NywgLTEuMjExODE4Nl0sIFs1MC42NTkzODcsIC0xLjIxMTg5MzddLCBbNTAuNjU5MDgwNiwgLTEuMjExOTQxM11dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2ZmMjZhOWFlZmUzMzQ5NTRhMzI0Y2Q4NGU2MTYzNjYzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzgyMzQ0MjBlMGQ5YjQ2YzBhMjRhOGI1YjgxNmVmZjc4ID0gJCgnPGRpdiBpZD0iaHRtbF84MjM0NDIwZTBkOWI0NmMwYTI0YThiNWI4MTZlZmY3OCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IldpbmZvcmQgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2ZmMjZhOWFlZmUzMzQ5NTRhMzI0Y2Q4NGU2MTYzNjYzLnNldENvbnRlbnQoaHRtbF84MjM0NDIwZTBkOWI0NmMwYTI0YThiNWI4MTZlZmY3OCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzk3ZTY3YWIxZmFiZjRlYTY4OTM0ZTY0ZTFmYTEwMjhkLmJpbmRQb3B1cChwb3B1cF9mZjI2YTlhZWZlMzM0OTU0YTMyNGNkODRlNjE2MzY2Myk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8xOGMxYWI1ZTFmMDM0YmVmOTYzNGYyZmYxMTllMjI0ZiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjQ1MzMsIC0xLjIwODIyNjddLCBbNTAuNjY0Mzg5OSwgLTEuMjA4MDc4N10sIFs1MC42NjQyNDA2LCAtMS4yMDgzOTU5XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfN2E5YTZmOGRhMTQ4NDY0ZTgyNmZkOGE3MWMwMTE0NTEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZmYxNDVlY2IxZWMxNDA5MzhiYzdlMTU4ZTZjZjhkODcgPSAkKCc8ZGl2IGlkPSJodG1sX2ZmMTQ1ZWNiMWVjMTQwOTM4YmM3ZTE1OGU2Y2Y4ZDg3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQmFydGxldHRzIENsb3NlIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfN2E5YTZmOGRhMTQ4NDY0ZTgyNmZkOGE3MWMwMTE0NTEuc2V0Q29udGVudChodG1sX2ZmMTQ1ZWNiMWVjMTQwOTM4YmM3ZTE1OGU2Y2Y4ZDg3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMThjMWFiNWUxZjAzNGJlZjk2MzRmMmZmMTE5ZTIyNGYuYmluZFBvcHVwKHBvcHVwXzdhOWE2ZjhkYTE0ODQ2NGU4MjZmZDhhNzFjMDExNDUxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzM2MDM1NTdjZWU0ZjRiZWM4MWY3MjU1NWUyY2ViN2U5ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MjQ1ODYsIC0xLjIwMTkwNDFdLCBbNTAuNjUyNDQyNiwgLTEuMjAxODMyOV0sIFs1MC42NTI0MTUyLCAtMS4yMDE3ODQ3XSwgWzUwLjY1MjM3ODYsIC0xLjIwMTc1NTVdLCBbNTAuNjUyMzM3OCwgLTEuMjAxNzQ5XSwgWzUwLjY1MjI5ODMsIC0xLjIwMTc2NjNdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83ODk0NjhlMjliNGM0OWEyYThkZjRmMDNmNzdiNjc5ZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83ODcwMTJiMTk0YjA0Y2QzODEzYTkzMTMzNWM2ODNkOCA9ICQoJzxkaXYgaWQ9Imh0bWxfNzg3MDEyYjE5NGIwNGNkMzgxM2E5MzEzMzVjNjgzZDgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXb29kcyBEcml2ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzc4OTQ2OGUyOWI0YzQ5YTJhOGRmNGYwM2Y3N2I2NzlmLnNldENvbnRlbnQoaHRtbF83ODcwMTJiMTk0YjA0Y2QzODEzYTkzMTMzNWM2ODNkOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzM2MDM1NTdjZWU0ZjRiZWM4MWY3MjU1NWUyY2ViN2U5LmJpbmRQb3B1cChwb3B1cF83ODk0NjhlMjliNGM0OWEyYThkZjRmMDNmNzdiNjc5Zik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV82YmE1OWU5OWNiNmE0MWZkYjI5YzFkMmUxY2NkZWRlZiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTI0NTg2LCAtMS4yMDE5MDQxXSwgWzUwLjY1MjUwNTgsIC0xLjIwMTg3NDVdLCBbNTAuNjUyNTg2MiwgLTEuMjAxNzk4OF0sIFs1MC42NTI2MTAxLCAtMS4yMDE2MzM3XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOWM0OWZmMTIzZGVhNDU5N2FiZDM0ZWNjMTZhNzJjMDQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYmJkYTYwMDYwODRhNDYxMWEyNTE0YmZlNmU3YzA1N2IgPSAkKCc8ZGl2IGlkPSJodG1sX2JiZGE2MDA2MDg0YTQ2MTFhMjUxNGJmZTZlN2MwNTdiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iVGhlIENoYXNlIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOWM0OWZmMTIzZGVhNDU5N2FiZDM0ZWNjMTZhNzJjMDQuc2V0Q29udGVudChodG1sX2JiZGE2MDA2MDg0YTQ2MTFhMjUxNGJmZTZlN2MwNTdiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNmJhNTllOTljYjZhNDFmZGIyOWMxZDJlMWNjZGVkZWYuYmluZFBvcHVwKHBvcHVwXzljNDlmZjEyM2RlYTQ1OTdhYmQzNGVjYzE2YTcyYzA0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2YwNDVkZjRhZTA2NTRmNDZhOWViZDk1YjBmYWI1YTE0ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NTI5NzYsIC0xLjIwNzQxMTJdLCBbNTAuNjY1ODMyMiwgLTEuMjA3MTE1Nl1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzRiMGYxM2ZkNWUyODQ3Y2NiZTQwNTZlZGMyNzA0ZDM5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzVkZDEzNzM0NGFjNDQ5Zjc4ODQ5NDU0ZGMwOWU0MTc4ID0gJCgnPGRpdiBpZD0iaHRtbF81ZGQxMzczNDRhYzQ0OWY3ODg0OTQ1NGRjMDllNDE3OCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkhpZ2ggU3RyZWV0IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNGIwZjEzZmQ1ZTI4NDdjY2JlNDA1NmVkYzI3MDRkMzkuc2V0Q29udGVudChodG1sXzVkZDEzNzM0NGFjNDQ5Zjc4ODQ5NDU0ZGMwOWU0MTc4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfZjA0NWRmNGFlMDY1NGY0NmE5ZWJkOTViMGZhYjVhMTQuYmluZFBvcHVwKHBvcHVwXzRiMGYxM2ZkNWUyODQ3Y2NiZTQwNTZlZGMyNzA0ZDM5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzdkNWNmMmQyZWIxZDQwZDQ4NWQ2MDJjYzkxZjcxNzg4ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NTI5NzYsIC0xLjIwNzQxMTJdLCBbNTAuNjY1MTYzOCwgLTEuMjA2OTQzMl1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzVhN2E1NTc1MTE4NjQ5Mzg5NjI1MjBmNmY4YjgyYzA1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzI2Yzc3M2RhYjYyODRmZjI4MWM1YmZkODY5MDZhMzhlID0gJCgnPGRpdiBpZD0iaHRtbF8yNmM3NzNkYWI2Mjg0ZmYyODFjNWJmZDg2OTA2YTM4ZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Ik1pbGVzdG9uZSBDcmVzY2VudCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzVhN2E1NTc1MTE4NjQ5Mzg5NjI1MjBmNmY4YjgyYzA1LnNldENvbnRlbnQoaHRtbF8yNmM3NzNkYWI2Mjg0ZmYyODFjNWJmZDg2OTA2YTM4ZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzdkNWNmMmQyZWIxZDQwZDQ4NWQ2MDJjYzkxZjcxNzg4LmJpbmRQb3B1cChwb3B1cF81YTdhNTU3NTExODY0OTM4OTYyNTIwZjZmOGI4MmMwNSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9iMTY5MzFjMGM4YWM0ZjU3YTllZWQ0YTE3ZDE2MWU0MiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjUyOTc2LCAtMS4yMDc0MTEyXSwgWzUwLjY2NTAyMjUsIC0xLjIwNzYwNl0sIFs1MC42NjQ4OTk5LCAtMS4yMDc3MTcxXSwgWzUwLjY2NDg1MjcsIC0xLjIwNzc3NTJdLCBbNTAuNjY0ODQyNSwgLTEuMjA3Nzg3OF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2M2MDhiNzgyNTQ0ZTQwZTdiMzUxYTI3Y2JhYTA5MDczID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzU3NTU4NzY0NjAzNzQzZWRhZTAxYjBlYjA1ZDQ5YjVmID0gJCgnPGRpdiBpZD0iaHRtbF81NzU1ODc2NDYwMzc0M2VkYWUwMWIwZWIwNWQ0OWI1ZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkhpZ2ggU3RyZWV0IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzYwOGI3ODI1NDRlNDBlN2IzNTFhMjdjYmFhMDkwNzMuc2V0Q29udGVudChodG1sXzU3NTU4NzY0NjAzNzQzZWRhZTAxYjBlYjA1ZDQ5YjVmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfYjE2OTMxYzBjOGFjNGY1N2E5ZWVkNGExN2QxNjFlNDIuYmluZFBvcHVwKHBvcHVwX2M2MDhiNzgyNTQ0ZTQwZTdiMzUxYTI3Y2JhYTA5MDczKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzIxOTI5NjU0ZTFmNTQzMDBiNDA0NzkzZmY4ZTNiYTY0ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NDI0MDYsIC0xLjIwODM5NTldLCBbNTAuNjY0Mzg5OSwgLTEuMjA4MDc4N10sIFs1MC42NjQ1MzMsIC0xLjIwODIyNjddXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lY2QwNmRlNDUyYTc0NDA4ODg5OGJjNjNmMzc0NWNlMCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kNWQyZDdkZTU2OGE0OTc3YjUyNzU4ODAyNWIyNGM2ZCA9ICQoJzxkaXYgaWQ9Imh0bWxfZDVkMmQ3ZGU1NjhhNDk3N2I1Mjc1ODgwMjViMjRjNmQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJCYXJ0bGV0dHMgQ2xvc2UiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lY2QwNmRlNDUyYTc0NDA4ODg5OGJjNjNmMzc0NWNlMC5zZXRDb250ZW50KGh0bWxfZDVkMmQ3ZGU1NjhhNDk3N2I1Mjc1ODgwMjViMjRjNmQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8yMTkyOTY1NGUxZjU0MzAwYjQwNDc5M2ZmOGUzYmE2NC5iaW5kUG9wdXAocG9wdXBfZWNkMDZkZTQ1MmE3NDQwODg4OThiYzYzZjM3NDVjZTApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMzkyYzIwOGI1NDI4NDViMzg3ZDk3ZmJjZWRkOWQzOWIgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY1Mjg2MiwgLTEuMTg3NzU4Nl0sIFs1MC42NjUzNTc2LCAtMS4xODc3NjUzXSwgWzUwLjY2NTQ3MTUsIC0xLjE4Nzc4MTRdLCBbNTAuNjY1NTY3NSwgLTEuMTg3ODEzNl0sIFs1MC42NjU2OTY3LCAtMS4xODc3Nl0sIFs1MC42NjU5MjYyLCAtMS4xODc1MDM4XSwgWzUwLjY2NjAxMDQsIC0xLjE4NzQzODFdLCBbNTAuNjY2MTIwMSwgLTEuMTg3NDE5M10sIFs1MC42NjYxOTIzLCAtMS4xODc0NDM0XSwgWzUwLjY2NjM0OTIsIC0xLjE4NzUxMjldLCBbNTAuNjY2NDgzNSwgLTEuMTg3NTc3M10sIFs1MC42NjY2NDMzLCAtMS4xODc2NjU4XSwgWzUwLjY2NjY5MywgLTEuMTg3NzY4XSwgWzUwLjY2NjcwODcsIC0xLjE4Nzg1MThdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81YzY3NDkxOTI4OWE0YTMwYjg4MzMzM2Q2ZjNjZTY4OSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84YTZkNTViMjViODY0YjRmOGFkZTMwMGIxM2NhNTExZSA9ICQoJzxkaXYgaWQ9Imh0bWxfOGE2ZDU1YjI1Yjg2NGI0ZjhhZGUzMDBiMTNjYTUxMWUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJZb3VuZ3dvb2RzIFdheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzVjNjc0OTE5Mjg5YTRhMzBiODgzMzMzZDZmM2NlNjg5LnNldENvbnRlbnQoaHRtbF84YTZkNTViMjViODY0YjRmOGFkZTMwMGIxM2NhNTExZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzM5MmMyMDhiNTQyODQ1YjM4N2Q5N2ZiY2VkZDlkMzliLmJpbmRQb3B1cChwb3B1cF81YzY3NDkxOTI4OWE0YTMwYjg4MzMzM2Q2ZjNjZTY4OSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV82ZGUzNDcxN2IxYzg0MjU5OGExNDgyZmMyMzIyZTdiZCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTI2MTAxLCAtMS4yMDE2MzM3XSwgWzUwLjY1MjU4NjIsIC0xLjIwMTc5ODhdLCBbNTAuNjUyNTA1OCwgLTEuMjAxODc0NV0sIFs1MC42NTI0NTg2LCAtMS4yMDE5MDQxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZjViZmQ4ZThlZWZmNDIxMzlmZWI2Yjc1MTBlYWRhN2IgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYmUzNGExNDM4MzY5NDExNDk3YjdmNjAxZjJlNTk0YmIgPSAkKCc8ZGl2IGlkPSJodG1sX2JlMzRhMTQzODM2OTQxMTQ5N2I3ZjYwMWYyZTU5NGJiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iVGhlIENoYXNlIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZjViZmQ4ZThlZWZmNDIxMzlmZWI2Yjc1MTBlYWRhN2Iuc2V0Q29udGVudChodG1sX2JlMzRhMTQzODM2OTQxMTQ5N2I3ZjYwMWYyZTU5NGJiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNmRlMzQ3MTdiMWM4NDI1OThhMTQ4MmZjMjMyMmU3YmQuYmluZFBvcHVwKHBvcHVwX2Y1YmZkOGU4ZWVmZjQyMTM5ZmViNmI3NTEwZWFkYTdiKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzczM2E5YmYyYTg2MDRlODhiY2JlODZhYjczZmYwY2Y0ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY3NjU4MDYsIC0xLjE4Mjg0NjNdLCBbNTAuNjc2NTc2NiwgLTEuMTgyODEwMl0sIFs1MC42NzY1NDgxLCAtMS4xODI4MzA0XSwgWzUwLjY3NjM5OTEsIC0xLjE4Mjg0MTddLCBbNTAuNjc2MzM3NSwgLTEuMTgyODI1Nl0sIFs1MC42NzYyOTc4LCAtMS4xODI3OTIzXSwgWzUwLjY3NjI5MDMsIC0xLjE4Mjc2ODRdLCBbNTAuNjc2MTUzMywgLTEuMTgxOTA3OV0sIFs1MC42NzU5MTQyLCAtMS4xODE4ODgzXSwgWzUwLjY3NTgyODQsIC0xLjE4MTg5MTRdLCBbNTAuNjc1NjY1MywgLTEuMTgxODk3M10sIFs1MC42NzU2MDMzLCAtMS4xODE5MTc1XSwgWzUwLjY3NTI4OTQsIC0xLjE4MjAxOThdLCBbNTAuNjc0ODk5MywgLTEuMTgyMjI5MV0sIFs1MC42NzQ2OTExLCAtMS4xODIzMDM4XSwgWzUwLjY3NDM0ODEsIC0xLjE4MjM0NDRdLCBbNTAuNjc0MDgwOSwgLTEuMTgyMjg4N10sIFs1MC42NzM1ODgyLCAtMS4xODIwNzMyXSwgWzUwLjY3MzM5NzksIC0xLjE4MjA0NDZdLCBbNTAuNjczMTUzOSwgLTEuMTgyMDE5NV0sIFs1MC42NzMwMTk2LCAtMS4xODIwNTQ0XSwgWzUwLjY3MjI4MzcsIC0xLjE4MjQ2NF0sIFs1MC42NzIyMzIsIC0xLjE4MjQ5NjNdLCBbNTAuNjcxMzg3OSwgLTEuMTgzMDI0NF0sIFs1MC42NzA5NDkxLCAtMS4xODMyOTg5XSwgWzUwLjY3MDg2OTIsIC0xLjE4MzI5NjNdLCBbNTAuNjcwODMwMSwgLTEuMTgzMjU2XSwgWzUwLjY3MDc1ODUsIC0xLjE4MjkzMTVdLCBbNTAuNjcwNjAwMywgLTEuMTgyMjE0OF0sIFs1MC42NzA1OTAxLCAtMS4xODIxODM0XSwgWzUwLjY3MDQxODMsIC0xLjE4MTY0N10sIFs1MC42NzAzNTM3LCAtMS4xODE1MTAyXSwgWzUwLjY3MDI3MjEsIC0xLjE4MTQ1MTJdLCBbNTAuNjY5NDQ0MiwgLTEuMTgyMTddLCBbNTAuNjY4ODk0NSwgLTEuMTgyNjc3NV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzQ1YzNjYmNmNzUzOTQ3YjY5MmJmMjQ0MWI4NThlZDQ4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzc1N2QyYjQ4Mzc5ZjQ5Nzc4YWZkY2RjZjg0MDk4MGE2ID0gJCgnPGRpdiBpZD0iaHRtbF83NTdkMmI0ODM3OWY0OTc3OGFmZGNkY2Y4NDA5ODBhNiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Iktlcm4gTGFuZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzQ1YzNjYmNmNzUzOTQ3YjY5MmJmMjQ0MWI4NThlZDQ4LnNldENvbnRlbnQoaHRtbF83NTdkMmI0ODM3OWY0OTc3OGFmZGNkY2Y4NDA5ODBhNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzczM2E5YmYyYTg2MDRlODhiY2JlODZhYjczZmYwY2Y0LmJpbmRQb3B1cChwb3B1cF80NWMzY2JjZjc1Mzk0N2I2OTJiZjI0NDFiODU4ZWQ0OCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9iOWU1NmFkYTk3OGQ0NjFiYjAyM2ZlYTE5NTJkM2RiYyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjczNDcyLCAtMS4xODkxNjk2XSwgWzUwLjY2NzQwMzUsIC0xLjE4OTE0MjVdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81NzI3OWMzOTgxNzQ0MDcxODVmZGM2ZWJjZjdiYTkxOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iMzI4MjRmMWY3YjM0ODhmOWFiYWExY2E3MjU1MTQ5NCA9ICQoJzxkaXYgaWQ9Imh0bWxfYjMyODI0ZjFmN2IzNDg4ZjlhYmFhMWNhNzI1NTE0OTQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXZWJzdGVyIFdheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzU3Mjc5YzM5ODE3NDQwNzE4NWZkYzZlYmNmN2JhOTE4LnNldENvbnRlbnQoaHRtbF9iMzI4MjRmMWY3YjM0ODhmOWFiYWExY2E3MjU1MTQ5NCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2I5ZTU2YWRhOTc4ZDQ2MWJiMDIzZmVhMTk1MmQzZGJjLmJpbmRQb3B1cChwb3B1cF81NzI3OWMzOTgxNzQ0MDcxODVmZGM2ZWJjZjdiYTkxOCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9mY2FjYjNlM2RjZDc0ODA2YjY1MmZmMWNiZGI4ZjE0YyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42Njc0MDM1LCAtMS4xODkxNDI1XSwgWzUwLjY2NzE5MTUsIC0xLjE4ODU1OTldXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jNWZmNDllZGNiYWY0Y2E1YjBlOGEzYmFhZmUyNjJhMiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lYmJiNmJlOWZkY2M0ZDNmYmIwNGIxMTE5YmZiZDRhNiA9ICQoJzxkaXYgaWQ9Imh0bWxfZWJiYjZiZTlmZGNjNGQzZmJiMDRiMTExOWJmYmQ0YTYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXZWJzdGVyIFdheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2M1ZmY0OWVkY2JhZjRjYTViMGU4YTNiYWFmZTI2MmEyLnNldENvbnRlbnQoaHRtbF9lYmJiNmJlOWZkY2M0ZDNmYmIwNGIxMTE5YmZiZDRhNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2ZjYWNiM2UzZGNkNzQ4MDZiNjUyZmYxY2JkYjhmMTRjLmJpbmRQb3B1cChwb3B1cF9jNWZmNDllZGNiYWY0Y2E1YjBlOGEzYmFhZmUyNjJhMik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV81ZjhiNTAwOTg5OWE0ZWI0OTc4NGEyZjhjNzEzZWY1YiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42Njc0MDM1LCAtMS4xODkxNDI1XSwgWzUwLjY2NzM0NzIsIC0xLjE4OTE2OTZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hOGRmOGM3MWM3NjU0ZjkxYjRhYjZiMWYwOTM4NzRjMyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kOTA4NjU0NDAyNTc0YmM0YTUzMjdmYmQ4MDRiMjU5YSA9ICQoJzxkaXYgaWQ9Imh0bWxfZDkwODY1NDQwMjU3NGJjNGE1MzI3ZmJkODA0YjI1OWEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXZWJzdGVyIFdheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2E4ZGY4YzcxYzc2NTRmOTFiNGFiNmIxZjA5Mzg3NGMzLnNldENvbnRlbnQoaHRtbF9kOTA4NjU0NDAyNTc0YmM0YTUzMjdmYmQ4MDRiMjU5YSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzVmOGI1MDA5ODk5YTRlYjQ5Nzg0YTJmOGM3MTNlZjViLmJpbmRQb3B1cChwb3B1cF9hOGRmOGM3MWM3NjU0ZjkxYjRhYjZiMWYwOTM4NzRjMyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV85NzQ2NDg3ZTA5NDg0MzBlODBjZmM4MGU3N2NlODY1MSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42Njc0MDM1LCAtMS4xODkxNDI1XSwgWzUwLjY2NzQ2NCwgLTEuMTg5MTE5M10sIFs1MC42Njc1NzgyLCAtMS4xODkwMDU3XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDMyMDE3NzljYWNiNDI0ZTlhNmJlNzQ4MTg0MzJhNDEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMzI0NjJkYzkzYWUzNGE3YjhkYmU5YTU3ZjQzNzQ2ZWUgPSAkKCc8ZGl2IGlkPSJodG1sXzMyNDYyZGM5M2FlMzRhN2I4ZGJlOWE1N2Y0Mzc0NmVlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV2Vic3RlciBXYXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80MzIwMTc3OWNhY2I0MjRlOWE2YmU3NDgxODQzMmE0MS5zZXRDb250ZW50KGh0bWxfMzI0NjJkYzkzYWUzNGE3YjhkYmU5YTU3ZjQzNzQ2ZWUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV85NzQ2NDg3ZTA5NDg0MzBlODBjZmM4MGU3N2NlODY1MS5iaW5kUG9wdXAocG9wdXBfNDMyMDE3NzljYWNiNDI0ZTlhNmJlNzQ4MTg0MzJhNDEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNmYyZTg2YzEwM2MxNDgwOWI3N2JhZjM1ZjMwNDU2OWEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY3NTc4MiwgLTEuMTg5MDA1N10sIFs1MC42Njc0NjQsIC0xLjE4OTExOTNdLCBbNTAuNjY3NDAzNSwgLTEuMTg5MTQyNV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzZlOGEwMzdmOTY3MTRhZDRiMjMzMDExOGNjNjZjZTM1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzY5OTMzNjc0ZWM1ZjQ4OThhOTU1YjgzNGUwMDQ5OTU5ID0gJCgnPGRpdiBpZD0iaHRtbF82OTkzMzY3NGVjNWY0ODk4YTk1NWI4MzRlMDA0OTk1OSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IldlYnN0ZXIgV2F5IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNmU4YTAzN2Y5NjcxNGFkNGIyMzMwMTE4Y2M2NmNlMzUuc2V0Q29udGVudChodG1sXzY5OTMzNjc0ZWM1ZjQ4OThhOTU1YjgzNGUwMDQ5OTU5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNmYyZTg2YzEwM2MxNDgwOWI3N2JhZjM1ZjMwNDU2OWEuYmluZFBvcHVwKHBvcHVwXzZlOGEwMzdmOTY3MTRhZDRiMjMzMDExOGNjNjZjZTM1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2NhMDY3M2MzODZkNTQ2ODc5MTdjN2RlNWMwY2QxNWQwID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1OTA4MDYsIC0xLjIxMTk0MTNdLCBbNTAuNjU5Mzg3LCAtMS4yMTE4OTM3XSwgWzUwLjY1OTgzNTcsIC0xLjIxMTgxODZdLCBbNTAuNjYwNDAzMywgLTEuMjExNzYyN10sIFs1MC42NjA3MDY1LCAtMS4yMTE2OTNdLCBbNTAuNjYxMTAwNSwgLTEuMjExNTI2OF0sIFs1MC42NjEyMSwgLTEuMjExNDgwNl0sIFs1MC42NjE3NTIsIC0xLjIxMTE3NzJdLCBbNTAuNjYxOTI2OCwgLTEuMjExMDgyMV0sIFs1MC42NjIxMjI1LCAtMS4yMTA5MThdLCBbNTAuNjYyMzczNiwgLTEuMjEwNjQxN10sIFs1MC42NjI5ODQyLCAtMS4yMDk5ODEzXSwgWzUwLjY2MzEyMDYsIC0xLjIwOTg3MTVdLCBbNTAuNjYzOTUzNiwgLTEuMjA5MjAxXSwgWzUwLjY2NDEzNTcsIC0xLjIwOTAyNF0sIFs1MC42NjQzMTM1LCAtMS4yMDg2OTE3XSwgWzUwLjY2NDQ2NzYsIC0xLjIwODM2NTJdLCBbNTAuNjY0NDg2NiwgLTEuMjA4MzI0OV0sIFs1MC42NjQ0OTQ1LCAtMS4yMDgzMDg0XSwgWzUwLjY2NDUzMywgLTEuMjA4MjI2N11dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzUxMzNiNjMyYWRkZDQ1NjA5YzZkM2FiY2U3NTU3NDZkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2EzMmQxZGVjYjI4NzQ5YmU5ODNmOGIzMzEwNWY2MTkzID0gJCgnPGRpdiBpZD0iaHRtbF9hMzJkMWRlY2IyODc0OWJlOTgzZjhiMzMxMDVmNjE5MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IldpbmZvcmQgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzUxMzNiNjMyYWRkZDQ1NjA5YzZkM2FiY2U3NTU3NDZkLnNldENvbnRlbnQoaHRtbF9hMzJkMWRlY2IyODc0OWJlOTgzZjhiMzMxMDVmNjE5Myk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2NhMDY3M2MzODZkNTQ2ODc5MTdjN2RlNWMwY2QxNWQwLmJpbmRQb3B1cChwb3B1cF81MTMzYjYzMmFkZGQ0NTYwOWM2ZDNhYmNlNzU1NzQ2ZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9lMDhhZDhlMTgxZmY0OGJhOTViMTZiZWUzMzE4YWU4ZCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTkwODA2LCAtMS4yMTE5NDEzXSwgWzUwLjY1ODUxNjMsIC0xLjIxMTk5MjFdLCBbNTAuNjU4MTk3MSwgLTEuMjExOTY2N10sIFs1MC42NTczODMsIC0xLjIxMTgwNjNdLCBbNTAuNjU2NTEyOSwgLTEuMjExNjQyMl0sIFs1MC42NTYxMTQ1LCAtMS4yMTE1NDg4XSwgWzUwLjY1NTc3NzgsIC0xLjIxMTQ1MjJdLCBbNTAuNjU1NDc5NSwgLTEuMjExMzQyXSwgWzUwLjY1NTIzOTUsIC0xLjIxMTIyNzZdLCBbNTAuNjU0NzgyOSwgLTEuMjEwOTUwNV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2YzMTI5OGU0MDgzZDQzNWVhNGFiMWI1MDA4ZTI4YzIyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzU3OWM1YWQyYmY4NjQyYThiZmIwMGU3NDg5MWJmNjYwID0gJCgnPGRpdiBpZD0iaHRtbF81NzljNWFkMmJmODY0MmE4YmZiMDBlNzQ4OTFiZjY2MCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IldpbmZvcmQgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2YzMTI5OGU0MDgzZDQzNWVhNGFiMWI1MDA4ZTI4YzIyLnNldENvbnRlbnQoaHRtbF81NzljNWFkMmJmODY0MmE4YmZiMDBlNzQ4OTFiZjY2MCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2UwOGFkOGUxODFmZjQ4YmE5NWIxNmJlZTMzMThhZThkLmJpbmRQb3B1cChwb3B1cF9mMzEyOThlNDA4M2Q0MzVlYTRhYjFiNTAwOGUyOGMyMik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9kYzMzM2I2MjJhNWM0YTRmOWRiYjU1MTU5OGJkYTRkNSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTkwODA2LCAtMS4yMTE5NDEzXSwgWzUwLjY1ODgzNDMsIC0xLjIxMjY2MjNdLCBbNTAuNjU4MDAwMywgLTEuMjE0OTA2OV0sIFs1MC42NTc5ODAyLCAtMS4yMTQ5NDUyXSwgWzUwLjY1NzkzNTgsIC0xLjIxNDk5NjRdLCBbNTAuNjU3NjUwOCwgLTEuMjE1MjM5NV0sIFs1MC42NTc0NjEyLCAtMS4yMTU0NzAyXSwgWzUwLjY1NzIzNDMsIC0xLjIxNTcyOV0sIFs1MC42NTcwMjk1LCAtMS4yMTU5MDk3XSwgWzUwLjY1NjgzMywgLTEuMjE2MDE1XSwgWzUwLjY1NjYyNDUsIC0xLjIxNjEwNTRdLCBbNTAuNjU2NTc3LCAtMS4yMTYxMjZdLCBbNTAuNjU1OTk1NSwgLTEuMjE2NTI3XSwgWzUwLjY1NTMzMzIsIC0xLjIxNzM0NTFdLCBbNTAuNjU1MjgzLCAtMS4yMTc0MTc1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYjZlNWRmOTA0OTk1NDg0YThjMmQwZTdkMmU5OTY2YmMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNTE0NWEyYmU5Nzg4NGZlMjhlODA3YWZmMjg2NmViMWQgPSAkKCc8ZGl2IGlkPSJodG1sXzUxNDVhMmJlOTc4ODRmZTI4ZTgwN2FmZjI4NjZlYjFkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iSGFyYm9ycyBMYWtlIExhbmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iNmU1ZGY5MDQ5OTU0ODRhOGMyZDBlN2QyZTk5NjZiYy5zZXRDb250ZW50KGh0bWxfNTE0NWEyYmU5Nzg4NGZlMjhlODA3YWZmMjg2NmViMWQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9kYzMzM2I2MjJhNWM0YTRmOWRiYjU1MTU5OGJkYTRkNS5iaW5kUG9wdXAocG9wdXBfYjZlNWRmOTA0OTk1NDg0YThjMmQwZTdkMmU5OTY2YmMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfOGJmMDc5NWUxYmMzNDc1ZmEyZWZlODgyZDU4NzVjMGMgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjcwNzA1MiwgLTEuMjA5ODEyXSwgWzUwLjY3MDc5MiwgLTEuMjA5OTMyNF0sIFs1MC42NzA4MDA3LCAtMS4yMTAxMTU5XSwgWzUwLjY3MDcyNTIsIC0xLjIxMDQxNzRdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mM2MyZTI5NGUxNGM0YTQ3OTkyZDAxMDAwNWFmYmU1NiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zMmUwMGM4Mjc1MmI0ZDM1ODk1N2Y2MmI5YjUyYzVhNSA9ICQoJzxkaXYgaWQ9Imh0bWxfMzJlMDBjODI3NTJiNGQzNTg5NTdmNjJiOWI1MmM1YTUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJIb3BlIE1lYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mM2MyZTI5NGUxNGM0YTQ3OTkyZDAxMDAwNWFmYmU1Ni5zZXRDb250ZW50KGh0bWxfMzJlMDBjODI3NTJiNGQzNTg5NTdmNjJiOWI1MmM1YTUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV84YmYwNzk1ZTFiYzM0NzVmYTJlZmU4ODJkNTg3NWMwYy5iaW5kUG9wdXAocG9wdXBfZjNjMmUyOTRlMTRjNGE0Nzk5MmQwMTAwMDVhZmJlNTYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNzNhYjMyNjk2NmY2NGJiOGE5ZThiOTI0NjFhNTM3NDcgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjcwNzI1MiwgLTEuMjEwNDE3NF0sIFs1MC42NzA4MDA3LCAtMS4yMTAxMTU5XSwgWzUwLjY3MDc5MiwgLTEuMjA5OTMyNF0sIFs1MC42NzA3MDUyLCAtMS4yMDk4MTJdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zMWMyY2FmYzIyNmI0ZDliOTJmYzYwMTI2MzhhYmJiOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84MGVlMGEzOTE4ZmU0MjVkOGIzYWY2Mjg5ZTM0ZjQxYyA9ICQoJzxkaXYgaWQ9Imh0bWxfODBlZTBhMzkxOGZlNDI1ZDhiM2FmNjI4OWUzNGY0MWMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJIb3BlIE1lYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zMWMyY2FmYzIyNmI0ZDliOTJmYzYwMTI2MzhhYmJiOC5zZXRDb250ZW50KGh0bWxfODBlZTBhMzkxOGZlNDI1ZDhiM2FmNjI4OWUzNGY0MWMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV83M2FiMzI2OTY2ZjY0YmI4YTllOGI5MjQ2MWE1Mzc0Ny5iaW5kUG9wdXAocG9wdXBfMzFjMmNhZmMyMjZiNGQ5YjkyZmM2MDEyNjM4YWJiYjgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMGMwYTUxZWYzM2NhNDIyNzg2Y2I1N2YyMTcwYjc0NGQgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjcwNzI1MiwgLTEuMjEwNDE3NF0sIFs1MC42NzA4MjEzLCAtMS4yMTA0NjcyXSwgWzUwLjY3MTIxOTQsIC0xLjIxMDU5OTRdLCBbNTAuNjcxNTAyNiwgLTEuMjEwNjU0N10sIFs1MC42NzIxNjIsIC0xLjIxMDc2MV0sIFs1MC42NzI3Mjg2LCAtMS4yMTA4MjUzXSwgWzUwLjY3MzYwMDksIC0xLjIxMDkxNjddLCBbNTAuNjc0Mzg4NCwgLTEuMjEwOTIwNV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzkzMWMxMmMwNDBjYzRiMGRhMTlkZWUwZDhiYjQ3NDY1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2Y1ZmIxYzNiZjJjNjRiZWU5MjcyYzMzMGI5ZmYyMGU1ID0gJCgnPGRpdiBpZD0iaHRtbF9mNWZiMWMzYmYyYzY0YmVlOTI3MmMzMzBiOWZmMjBlNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WyJUaGUgU2h1dGUiLCAiTGFuZ2JyaWRnZSJdPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85MzFjMTJjMDQwY2M0YjBkYTE5ZGVlMGQ4YmI0NzQ2NS5zZXRDb250ZW50KGh0bWxfZjVmYjFjM2JmMmM2NGJlZTkyNzJjMzMwYjlmZjIwZTUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8wYzBhNTFlZjMzY2E0MjI3ODZjYjU3ZjIxNzBiNzQ0ZC5iaW5kUG9wdXAocG9wdXBfOTMxYzEyYzA0MGNjNGIwZGExOWRlZTBkOGJiNDc0NjUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNTI4MzlmMmFjZWJkNDFkOGEwNWQ5YmU1MzU3ZmI2MWYgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjcwNzI1MiwgLTEuMjEwNDE3NF0sIFs1MC42NzA2MjE3LCAtMS4yMTAzNDgyXSwgWzUwLjY3MDUyMywgLTEuMjEwMjcwNF0sIFs1MC42NzAyNTc4LCAtMS4yMDk5NTExXSwgWzUwLjY3MDA0MjMsIC0xLjIwOTcwMDNdLCBbNTAuNjcwMDExMywgLTEuMjA5NjY3OV0sIFs1MC42Njk5Njk2LCAtMS4yMDk2MTk4XSwgWzUwLjY2OTkxNjEsIC0xLjIwOTU1NTRdLCBbNTAuNjY5NjczLCAtMS4yMDkyODIxXSwgWzUwLjY2OTYxNDMsIC0xLjIwOTIxNjNdLCBbNTAuNjY4ODc3NCwgLTEuMjA4NDQzOV0sIFs1MC42Njg2ODE3LCAtMS4yMDgyMjU1XSwgWzUwLjY2Nzk3NDIsIC0xLjIwNzYyNV0sIFs1MC42Njc2NTI2LCAtMS4yMDcyN10sIFs1MC42NjczMjUsIC0xLjIwNjkzMDFdLCBbNTAuNjY3MDI3OCwgLTEuMjA2ODAxMl0sIFs1MC42NjY3NDc3LCAtMS4yMDY3NzQ5XSwgWzUwLjY2NjUzNzcsIC0xLjIwNjc4MjldLCBbNTAuNjY2MzkzMiwgLTEuMjA2ODIwNF0sIFs1MC42NjYyNTgsIC0xLjIwNjg3NDFdLCBbNTAuNjY2MDMxMSwgLTEuMjA2OTk4OV0sIFs1MC42NjU4MzIyLCAtMS4yMDcxMTU2XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfY2RlYjA2MDJiZTE0NGQzMmE2NmE0ZjNkZmM2ODczYjMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZGZjNWZiNDYyOThkNGIxZTlhZTcyZjViMTQzZDJhOWEgPSAkKCc8ZGl2IGlkPSJodG1sX2RmYzVmYjQ2Mjk4ZDRiMWU5YWU3MmY1YjE0M2QyYTlhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5bIlRoZSBTaHV0ZSIsICJIaWdoIFN0cmVldCJdPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jZGViMDYwMmJlMTQ0ZDMyYTY2YTRmM2RmYzY4NzNiMy5zZXRDb250ZW50KGh0bWxfZGZjNWZiNDYyOThkNGIxZTlhZTcyZjViMTQzZDJhOWEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV81MjgzOWYyYWNlYmQ0MWQ4YTA1ZDliZTUzNTdmYjYxZi5iaW5kUG9wdXAocG9wdXBfY2RlYjA2MDJiZTE0NGQzMmE2NmE0ZjNkZmM2ODczYjMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMjlhYzZhN2E5NWYyNDU4ZWIzOGExNWM2NGJiMGE1MDQgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjgyNjMyOSwgLTEuMjA3MTI2OF0sIFs1MC42ODI1ODksIC0xLjIwNzE5ODVdLCBbNTAuNjgyNDQxNSwgLTEuMjA3Mzg3NV0sIFs1MC42ODIzMTQ0LCAtMS4yMDc2MDE2XSwgWzUwLjY4MjIwMzUsIC0xLjIwNzgxODhdLCBbNTAuNjgyMTA0OSwgLTEuMjA4MDQ2OF0sIFs1MC42ODIwNTk1LCAtMS4yMDgxNjA5XSwgWzUwLjY4MTk4NjgsIC0xLjIwODQwNDldLCBbNTAuNjgxODk3NiwgLTEuMjA4NzI4MV0sIFs1MC42ODE3MTcxLCAtMS4yMDkzOTUyXSwgWzUwLjY4MTYwOTUsIC0xLjIwOTg4NTVdLCBbNTAuNjgxNTI2MSwgLTEuMjEwMzc0OV0sIFs1MC42ODE0NjA0LCAtMS4yMTA4Mjk3XSwgWzUwLjY4MTI4MzQsIC0xLjIxMTU1NzddLCBbNTAuNjgxMTUwNywgLTEuMjExODYxNl0sIFs1MC42ODA5Njk0LCAtMS4yMTIxMTAzXSwgWzUwLjY4MDg3NDYsIC0xLjIxMjMxOTJdLCBbNTAuNjgwNzUzNCwgLTEuMjEyNTg2NV0sIFs1MC42ODA2NTE0LCAtMS4yMTMxNDQ0XSwgWzUwLjY4MDcxNiwgLTEuMjEzODE1XSwgWzUwLjY4MDcyNjIsIC0xLjIxNDIxNzNdLCBbNTAuNjgwNjQ4NiwgLTEuMjE0NjI4NF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2ZiYjFkZjVkM2ViMTRlMDhhNmIxOGE2MTE5MTBmNWJjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzFkMzYzOTgwNmIwZDRkMWI5ZGU4N2Q2YTRlZGE4YThjID0gJCgnPGRpdiBpZD0iaHRtbF8xZDM2Mzk4MDZiMGQ0ZDFiOWRlODdkNmE0ZWRhOGE4YyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkxpbWUgS2lsbiBTaHV0ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2ZiYjFkZjVkM2ViMTRlMDhhNmIxOGE2MTE5MTBmNWJjLnNldENvbnRlbnQoaHRtbF8xZDM2Mzk4MDZiMGQ0ZDFiOWRlODdkNmE0ZWRhOGE4Yyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzI5YWM2YTdhOTVmMjQ1OGViMzhhMTVjNjRiYjBhNTA0LmJpbmRQb3B1cChwb3B1cF9mYmIxZGY1ZDNlYjE0ZTA4YTZiMThhNjExOTEwZjViYyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8yNzZjM2QxZjg3Y2Q0MGRlYjQ3MDRjN2VhMzRkYmY0YyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42ODI2MzI5LCAtMS4yMDcxMjY4XSwgWzUwLjY4MjY1NDQsIC0xLjIwNDM2Ml0sIFs1MC42ODI2NjUsIC0xLjIwNDAzMl0sIFs1MC42ODI2OTg2LCAtMS4yMDM4MDkyXSwgWzUwLjY4Mjc1ODYsIC0xLjIwMzU5MTRdLCBbNTAuNjgyODQwNCwgLTEuMjAzMzZdLCBbNTAuNjgyOTQ4OSwgLTEuMjAzMTMwOF0sIFs1MC42ODMxMzYsIC0xLjIwMjczMzhdLCBbNTAuNjgzMjMyNiwgLTEuMjAyNTI5M10sIFs1MC42ODMzNzM5LCAtMS4yMDIxODRdLCBbNTAuNjgzNDQ2NywgLTEuMjAxOTY5OF0sIFs1MC42ODM0OTkzLCAtMS4yMDE3ODddLCBbNTAuNjgzNTY4OCwgLTEuMjAxNDYzNF0sIFs1MC42ODM2MjE0LCAtMS4yMDExNTQ5XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZDM4YzY2Mjg2ODk2NDk1NmFhMTE0OTlmMDBlMmNkYTggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmEwMjU2YjQ3ZDU2NDA2ZmJlMWY1OGQ5YzE4MDkxY2MgPSAkKCc8ZGl2IGlkPSJodG1sXzJhMDI1NmI0N2Q1NjQwNmZiZTFmNThkOWMxODA5MWNjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iRG93bnMgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2QzOGM2NjI4Njg5NjQ5NTZhYTExNDk5ZjAwZTJjZGE4LnNldENvbnRlbnQoaHRtbF8yYTAyNTZiNDdkNTY0MDZmYmUxZjU4ZDljMTgwOTFjYyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzI3NmMzZDFmODdjZDQwZGViNDcwNGM3ZWEzNGRiZjRjLmJpbmRQb3B1cChwb3B1cF9kMzhjNjYyODY4OTY0OTU2YWExMTQ5OWYwMGUyY2RhOCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV82MTZlZWNkMjdhMWQ0YjM0YWYzZTZjMmQ5OWY0YTU5ZCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42ODM2MjE0LCAtMS4yMDExNTQ5XSwgWzUwLjY4MzU2MDgsIC0xLjIwMTEyNjVdLCBbNTAuNjgzNTI4LCAtMS4yMDExMjk0XSwgWzUwLjY4MzE3ODgsIC0xLjIwMTE5NDNdLCBbNTAuNjgyNTYzOSwgLTEuMjAxNDgyM10sIFs1MC42ODI0Mzc3LCAtMS4yMDE1Mzc0XSwgWzUwLjY4MjMzNTgsIC0xLjIwMTU2MjhdLCBbNTAuNjgyMTYwNiwgLTEuMjAxNDM3OV0sIFs1MC42ODE5NiwgLTEuMjAxMjI4N10sIFs1MC42ODE3NzY4LCAtMS4yMDEwNDFdLCBbNTAuNjgxNTMzOCwgLTEuMjAwODc0N10sIFs1MC42ODEyMTc3LCAtMS4yMDA3ODYyXSwgWzUwLjY4MDgwOTgsIC0xLjIwMDY4MTZdLCBbNTAuNjgwNDE5OCwgLTEuMjAwNTkyXSwgWzUwLjY3OTc5OTMsIC0xLjIwMDM4NjFdLCBbNTAuNjc5MjAyMSwgLTEuMjAwMjQ0M10sIFs1MC42Nzg5NDc5LCAtMS4yMDAyMDI4XSwgWzUwLjY3ODY5MiwgLTEuMjAwMjE3N10sIFs1MC42Nzg0Mjc4LCAtMS4yMDA0MTQ3XSwgWzUwLjY3NzU2OTYsIC0xLjIwMTM0MDhdLCBbNTAuNjc3MzkxOSwgLTEuMjAxNTEwM10sIFs1MC42NzczNzI5LCAtMS4yMDE1MjEzXSwgWzUwLjY3NzI3MTIsIC0xLjIwMTU3NDddLCBbNTAuNjc3MTA1NSwgLTEuMjAxNjczM10sIFs1MC42NzY4NDA0LCAtMS4yMDE5MTRdLCBbNTAuNjc2Njc3MSwgLTEuMjAyMTA3OF0sIFs1MC42NzY1MDM4LCAtMS4yMDIzMjI0XSwgWzUwLjY3NjM4MSwgLTEuMjAyNDQ3N10sIFs1MC42NzYzNDIyLCAtMS4yMDI0ODczXSwgWzUwLjY3NjEzMDYsIC0xLjIwMjU5ODZdLCBbNTAuNjc1OTA2NSwgLTEuMjAyNjY0Ml0sIFs1MC42NzU4MDQ4LCAtMS4yMDI3MjMzXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTg4Yjg3ZWJmODM3NGJjMzk3MzM2NWUxYzc0NzVhZTAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNmZmMzRmNjdmMGMzNDJhMDhiMmRmZDgyYTY5NGE5NmIgPSAkKCc8ZGl2IGlkPSJodG1sXzZmZjM0ZjY3ZjBjMzQyYTA4YjJkZmQ4MmE2OTRhOTZiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iS25pZ2h0b24gU2h1dGUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xODhiODdlYmY4Mzc0YmMzOTczMzY1ZTFjNzQ3NWFlMC5zZXRDb250ZW50KGh0bWxfNmZmMzRmNjdmMGMzNDJhMDhiMmRmZDgyYTY5NGE5NmIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV82MTZlZWNkMjdhMWQ0YjM0YWYzZTZjMmQ5OWY0YTU5ZC5iaW5kUG9wdXAocG9wdXBfMTg4Yjg3ZWJmODM3NGJjMzk3MzM2NWUxYzc0NzVhZTApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMmE5OTE3NTU1ZDI0NDU1Mzk4Y2RhMjk5NzlhMjU4MzEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjgzNjIxNCwgLTEuMjAxMTU0OV0sIFs1MC42ODM3Mjk1LCAtMS4yMDA1NDJdLCBbNTAuNjgzODczNywgLTEuMTk5NTAyN10sIFs1MC42ODQxMzIsIC0xLjE5NzMyNDhdLCBbNTAuNjg0MzgwMSwgLTEuMTk1MDQ0OV0sIFs1MC42ODQ1ODY2LCAtMS4xOTMxMTkzXSwgWzUwLjY4NDYxMzUsIC0xLjE5MjkyMzZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yOWQwMDVmNGI4MzQ0N2MyODI4OTNlZTdmYmZmZDg2MiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hZDdjOGUzYTQ1ZTU0MDc3YTA5MDI0NTMzMzMzMDU0NyA9ICQoJzxkaXYgaWQ9Imh0bWxfYWQ3YzhlM2E0NWU1NDA3N2EwOTAyNDUzMzMzMzA1NDciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJEb3ducyBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMjlkMDA1ZjRiODM0NDdjMjgyODkzZWU3ZmJmZmQ4NjIuc2V0Q29udGVudChodG1sX2FkN2M4ZTNhNDVlNTQwNzdhMDkwMjQ1MzMzMzMwNTQ3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMmE5OTE3NTU1ZDI0NDU1Mzk4Y2RhMjk5NzlhMjU4MzEuYmluZFBvcHVwKHBvcHVwXzI5ZDAwNWY0YjgzNDQ3YzI4Mjg5M2VlN2ZiZmZkODYyKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzU4MTJkNzk3ZDYxYzRmOWE4MGFlMzlmYzI5MjlkYjg4ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY4MzYyMTQsIC0xLjIwMTE1NDldLCBbNTAuNjgzNTY4OCwgLTEuMjAxNDYzNF0sIFs1MC42ODM0OTkzLCAtMS4yMDE3ODddLCBbNTAuNjgzNDQ2NywgLTEuMjAxOTY5OF0sIFs1MC42ODMzNzM5LCAtMS4yMDIxODRdLCBbNTAuNjgzMjMyNiwgLTEuMjAyNTI5M10sIFs1MC42ODMxMzYsIC0xLjIwMjczMzhdLCBbNTAuNjgyOTQ4OSwgLTEuMjAzMTMwOF0sIFs1MC42ODI4NDA0LCAtMS4yMDMzNl0sIFs1MC42ODI3NTg2LCAtMS4yMDM1OTE0XSwgWzUwLjY4MjY5ODYsIC0xLjIwMzgwOTJdLCBbNTAuNjgyNjY1LCAtMS4yMDQwMzJdLCBbNTAuNjgyNjU0NCwgLTEuMjA0MzYyXSwgWzUwLjY4MjYzMjksIC0xLjIwNzEyNjhdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80NjEzYWFmYTM2ZjQ0MTFkYTkyOTUyYjY1ZTUyNjQyNSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jNjEyNmJlNjYxMjA0NjE1OTExN2FhZmMxZjg1MGZlYyA9ICQoJzxkaXYgaWQ9Imh0bWxfYzYxMjZiZTY2MTIwNDYxNTkxMTdhYWZjMWY4NTBmZWMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJEb3ducyBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNDYxM2FhZmEzNmY0NDExZGE5Mjk1MmI2NWU1MjY0MjUuc2V0Q29udGVudChodG1sX2M2MTI2YmU2NjEyMDQ2MTU5MTE3YWFmYzFmODUwZmVjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNTgxMmQ3OTdkNjFjNGY5YTgwYWUzOWZjMjkyOWRiODguYmluZFBvcHVwKHBvcHVwXzQ2MTNhYWZhMzZmNDQxMWRhOTI5NTJiNjVlNTI2NDI1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2QwOGRmYmExY2U0ZjQ3Y2M4ZjFiZjdkNTVhOWRkZDM1ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY4NDYxMzUsIC0xLjE5MjkyMzZdLCBbNTAuNjg0NTg2NiwgLTEuMTkzMTE5M10sIFs1MC42ODQzODAxLCAtMS4xOTUwNDQ5XSwgWzUwLjY4NDEzMiwgLTEuMTk3MzI0OF0sIFs1MC42ODM4NzM3LCAtMS4xOTk1MDI3XSwgWzUwLjY4MzcyOTUsIC0xLjIwMDU0Ml0sIFs1MC42ODM2MjE0LCAtMS4yMDExNTQ5XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjg4NTc3NmY2MTViNGMzYjk1OTM4M2M2NmMwZjc2MzUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZTMxYzNmNTU5ZTZkNGYxZWJiNjU4MDkxODJiMTFiYWEgPSAkKCc8ZGl2IGlkPSJodG1sX2UzMWMzZjU1OWU2ZDRmMWViYjY1ODA5MTgyYjExYmFhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iRG93bnMgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzI4ODU3NzZmNjE1YjRjM2I5NTkzODNjNjZjMGY3NjM1LnNldENvbnRlbnQoaHRtbF9lMzFjM2Y1NTllNmQ0ZjFlYmI2NTgwOTE4MmIxMWJhYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2QwOGRmYmExY2U0ZjQ3Y2M4ZjFiZjdkNTVhOWRkZDM1LmJpbmRQb3B1cChwb3B1cF8yODg1Nzc2ZjYxNWI0YzNiOTU5MzgzYzY2YzBmNzYzNSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9kZTA0ZjlmZTUwOTg0MGE2YTJmMDg5YjM4MmJiYTEwNCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTUyODMsIC0xLjIxNzQxNzVdLCBbNTAuNjU1MTE2MywgLTEuMjE2OTQ2N10sIFs1MC42NTQ5NTIxLCAtMS4yMTY1MTY2XSwgWzUwLjY1NDg2NSwgLTEuMjE2MTg1OF0sIFs1MC42NTQ4MDg2LCAtMS4yMTU3ODRdLCBbNTAuNjU0Nzg3MiwgLTEuMjE1MTUyNF0sIFs1MC42NTQ3OTMyLCAtMS4yMTQ0NTFdLCBbNTAuNjU0NzQ1MSwgLTEuMjEzMDkzMV0sIFs1MC42NTQ3MjY4LCAtMS4yMTI0NDI5XSwgWzUwLjY1NDcxMzMsIC0xLjIxMTgxOTddLCBbNTAuNjU0NzEyOCwgLTEuMjExNzQ2OV0sIFs1MC42NTQ3MTQ1LCAtMS4yMTE2Nzk5XSwgWzUwLjY1NDcyMjYsIC0xLjIxMTM3NThdLCBbNTAuNjU0NzU4LCAtMS4yMTExMjYzXSwgWzUwLjY1NDc4MjksIC0xLjIxMDk1MDVdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mYzA3NDhhOWNlMDQ0ZWIzOWRlNjM3YjdmMjM4Nzk2ZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zYzk2ZDE5ZWNlMTM0NjcxYjQ1NTc5NDEyYWNjODU2MiA9ICQoJzxkaXYgaWQ9Imh0bWxfM2M5NmQxOWVjZTEzNDY3MWI0NTU3OTQxMmFjYzg1NjIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXYXRlcnkgTGFuZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2ZjMDc0OGE5Y2UwNDRlYjM5ZGU2MzdiN2YyMzg3OTZlLnNldENvbnRlbnQoaHRtbF8zYzk2ZDE5ZWNlMTM0NjcxYjQ1NTc5NDEyYWNjODU2Mik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2RlMDRmOWZlNTA5ODQwYTZhMmYwODliMzgyYmJhMTA0LmJpbmRQb3B1cChwb3B1cF9mYzA3NDhhOWNlMDQ0ZWIzOWRlNjM3YjdmMjM4Nzk2ZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9hOGE5ODFlZjlmY2Y0MGRmOTMxYzAwM2UyN2VlZGY0NSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTUyODMsIC0xLjIxNzQxNzVdLCBbNTAuNjU1MzMzMiwgLTEuMjE3MzQ1MV0sIFs1MC42NTU5OTU1LCAtMS4yMTY1MjddLCBbNTAuNjU2NTc3LCAtMS4yMTYxMjZdLCBbNTAuNjU2NjI0NSwgLTEuMjE2MTA1NF0sIFs1MC42NTY4MzMsIC0xLjIxNjAxNV0sIFs1MC42NTcwMjk1LCAtMS4yMTU5MDk3XSwgWzUwLjY1NzIzNDMsIC0xLjIxNTcyOV0sIFs1MC42NTc0NjEyLCAtMS4yMTU0NzAyXSwgWzUwLjY1NzY1MDgsIC0xLjIxNTIzOTVdLCBbNTAuNjU3OTM1OCwgLTEuMjE0OTk2NF0sIFs1MC42NTc5ODAyLCAtMS4yMTQ5NDUyXSwgWzUwLjY1ODAwMDMsIC0xLjIxNDkwNjldLCBbNTAuNjU4ODM0MywgLTEuMjEyNjYyM10sIFs1MC42NTkwODA2LCAtMS4yMTE5NDEzXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMWRjZDQwODE0ODk0NDE2MWI2ZWZiMjBmNGIzM2U1ODAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDcxMWVmMjc1MjUwNGJkMjk5MTFhYTljMzkyZjAxMTIgPSAkKCc8ZGl2IGlkPSJodG1sXzA3MTFlZjI3NTI1MDRiZDI5OTExYWE5YzM5MmYwMTEyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iSGFyYm9ycyBMYWtlIExhbmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xZGNkNDA4MTQ4OTQ0MTYxYjZlZmIyMGY0YjMzZTU4MC5zZXRDb250ZW50KGh0bWxfMDcxMWVmMjc1MjUwNGJkMjk5MTFhYTljMzkyZjAxMTIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9hOGE5ODFlZjlmY2Y0MGRmOTMxYzAwM2UyN2VlZGY0NS5iaW5kUG9wdXAocG9wdXBfMWRjZDQwODE0ODk0NDE2MWI2ZWZiMjBmNGIzM2U1ODApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfYjgyZmRiNmRlMjYzNDVjNWE3MDM2YTU5MmVlNWMzY2QgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQyMjM2MiwgLTEuMjA4NDgyXSwgWzUwLjY0MjI2NTQsIC0xLjIwODQzMzZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yNTViOWRiYTNjOWY0MGJlOWZmMzZiOTFmOTUwNTFlMCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hNTk2MGIyOGNhMGY0Y2I5YmMxN2RlZDZiMTE5NWU3ZCA9ICQoJzxkaXYgaWQ9Imh0bWxfYTU5NjBiMjhjYTBmNGNiOWJjMTdkZWQ2YjExOTVlN2QiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJWZW50bm9yIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yNTViOWRiYTNjOWY0MGJlOWZmMzZiOTFmOTUwNTFlMC5zZXRDb250ZW50KGh0bWxfYTU5NjBiMjhjYTBmNGNiOWJjMTdkZWQ2YjExOTVlN2QpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9iODJmZGI2ZGUyNjM0NWM1YTcwMzZhNTkyZWU1YzNjZC5iaW5kUG9wdXAocG9wdXBfMjU1YjlkYmEzYzlmNDBiZTlmZjM2YjkxZjk1MDUxZTApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZjVmZGY0ZmUyYTIwNGYxOTkyMjZmNThhMzliYTUwOWIgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQyMjM2MiwgLTEuMjA4NDgyXSwgWzUwLjY0MjIwNjMsIC0xLjIwODUzMTVdLCBbNTAuNjQyMTU5OSwgLTEuMjA4NjM2OF0sIFs1MC42NDE5NDk3LCAtMS4yMDk0MjIzXSwgWzUwLjY0MTgyNDIsIC0xLjIwOTgwNTJdLCBbNTAuNjQxNzM3MiwgLTEuMjFdLCBbNTAuNjQxNjYzMywgLTEuMjEwMTQ0M10sIFs1MC42NDE1MzczLCAtMS4yMTAzOTIzXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOGEzNDJjNDdkZmM5NDkyYjllMzAzOTRkZDQxZTJjMmQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZGE3ZTY1N2EzOGZlNDM3Njg4MjhiZGI5MzZmZDQwYzQgPSAkKCc8ZGl2IGlkPSJodG1sX2RhN2U2NTdhMzhmZTQzNzY4ODI4YmRiOTM2ZmQ0MGM0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iVmVudG5vciBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOGEzNDJjNDdkZmM5NDkyYjllMzAzOTRkZDQxZTJjMmQuc2V0Q29udGVudChodG1sX2RhN2U2NTdhMzhmZTQzNzY4ODI4YmRiOTM2ZmQ0MGM0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfZjVmZGY0ZmUyYTIwNGYxOTkyMjZmNThhMzliYTUwOWIuYmluZFBvcHVwKHBvcHVwXzhhMzQyYzQ3ZGZjOTQ5MmI5ZTMwMzk0ZGQ0MWUyYzJkKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzJlMDllMDFiZWNkZTRlNTE5OGJiZjNmYzVlN2ZlOGZiID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY0NzE0MzcsIC0xLjIwMjc4ODFdLCBbNTAuNjQ3MDE1LCAtMS4yMDI4MDQ0XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzc5NTM1MGEzYjc4NDRjZjllZmFhZTE1ZTliODhiYzUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNjQwYjIyOGExNjk0NDlhZGE2N2Y0MDgwMGY5Njk3MzggPSAkKCc8ZGl2IGlkPSJodG1sXzY0MGIyMjhhMTY5NDQ5YWRhNjdmNDA4MDBmOTY5NzM4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQWx2ZXJzdG9uZSBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMzc5NTM1MGEzYjc4NDRjZjllZmFhZTE1ZTliODhiYzUuc2V0Q29udGVudChodG1sXzY0MGIyMjhhMTY5NDQ5YWRhNjdmNDA4MDBmOTY5NzM4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMmUwOWUwMWJlY2RlNGU1MTk4YmJmM2ZjNWU3ZmU4ZmIuYmluZFBvcHVwKHBvcHVwXzM3OTUzNTBhM2I3ODQ0Y2Y5ZWZhYWUxNWU5Yjg4YmM1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzdjNTZjMjI3MjkzNzQ4MGQ4MjRlMjhjM2ZhMWE5MDRlID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY0NzE0MzcsIC0xLjIwMjc4ODFdLCBbNTAuNjQ3MzExLCAtMS4yMDI3NjgxXSwgWzUwLjY0Nzk2MjgsIC0xLjIwMjY3N10sIFs1MC42NDg5Mjk4LCAtMS4yMDI1NjU2XSwgWzUwLjY0OTE0MDgsIC0xLjIwMjQ5ODRdLCBbNTAuNjQ5MzEwMiwgLTEuMjAyMzkzXSwgWzUwLjY0OTYxNjgsIC0xLjIwMjEyOF0sIFs1MC42NTAwODIzLCAtMS4yMDE2ODAyXSwgWzUwLjY1MDI5NjUsIC0xLjIwMTQ2MjddLCBbNTAuNjUxMzM5NywgLTEuMjAwNDg1Nl0sIFs1MC42NTE0OTE3LCAtMS4yMDAzNjVdLCBbNTAuNjUxNjQ0OCwgLTEuMjAwMjY1NF0sIFs1MC42NTE4MjU2LCAtMS4yMDAxNzQ0XSwgWzUwLjY1MTk3ODEsIC0xLjIwMDE0MzFdLCBbNTAuNjUyMjA3MSwgLTEuMjAwMTI2NV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2YzMTQ5NTQzMmRjMDRmMWU5NjhlMTNmNTNmZDViNDE3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzQ5MjZlNmUxOTA5NDQ3MDJiMTIzMGU5ZDk0OTY4NTEyID0gJCgnPGRpdiBpZD0iaHRtbF80OTI2ZTZlMTkwOTQ0NzAyYjEyMzBlOWQ5NDk2ODUxMiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkFsdmVyc3RvbmUgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2YzMTQ5NTQzMmRjMDRmMWU5NjhlMTNmNTNmZDViNDE3LnNldENvbnRlbnQoaHRtbF80OTI2ZTZlMTkwOTQ0NzAyYjEyMzBlOWQ5NDk2ODUxMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzdjNTZjMjI3MjkzNzQ4MGQ4MjRlMjhjM2ZhMWE5MDRlLmJpbmRQb3B1cChwb3B1cF9mMzE0OTU0MzJkYzA0ZjFlOTY4ZTEzZjUzZmQ1YjQxNyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV80NDI5OThlZTliZGY0NWJlOTBmZjZhYjc2N2VlOGIwNiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42Njg4ODc1LCAtMS4xNzgyODkyXSwgWzUwLjY2ODc4NDEsIC0xLjE3ODQwNV0sIFs1MC42Njg3NTAyLCAtMS4xNzg0NDM5XSwgWzUwLjY2ODY1NDMsIC0xLjE3ODU0NzFdLCBbNTAuNjY4NTE1NywgLTEuMTc4NzIyNF0sIFs1MC42Njg0NjMzLCAtMS4xNzg5MTY4XSwgWzUwLjY2ODQ4NjksIC0xLjE3OTA4OTZdLCBbNTAuNjY4NTM5MSwgLTEuMTc5MzE0M10sIFs1MC42Njg3MjU3LCAtMS4xNzk4OTk5XSwgWzUwLjY2ODcwOTcsIC0xLjE3OTk2MDRdLCBbNTAuNjY4Njk2LCAtMS4xODAwMTIyXSwgWzUwLjY2ODUwOSwgLTEuMTgwMTU2Ml0sIFs1MC42Njg0Njk4LCAtMS4xODAyMzM5XSwgWzUwLjY2ODQ0NTUsIC0xLjE4MDI5OThdLCBbNTAuNjY4NDA3NiwgLTEuMTgwNTMxMl0sIFs1MC42Njg0MDE3LCAtMS4xODA1NzMxXSwgWzUwLjY2ODQwMjksIC0xLjE4MDcxMjhdLCBbNTAuNjY4NTkzOCwgLTEuMTgxNjkyN10sIFs1MC42Njg4Njg5LCAtMS4xODI0ODU1XSwgWzUwLjY2ODg5NDUsIC0xLjE4MjY3NzVdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yMmQ4OWY3MzkxODA0YmRmODhlZGI0YmRiNzkwZThiMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iNTg3MTljMDRhZWM0NTJmYTYzMDViODg2N2Q4OGQyZiA9ICQoJzxkaXYgaWQ9Imh0bWxfYjU4NzE5YzA0YWVjNDUyZmE2MzA1Yjg4NjdkODhkMmYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJNYWluIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yMmQ4OWY3MzkxODA0YmRmODhlZGI0YmRiNzkwZThiMS5zZXRDb250ZW50KGh0bWxfYjU4NzE5YzA0YWVjNDUyZmE2MzA1Yjg4NjdkODhkMmYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV80NDI5OThlZTliZGY0NWJlOTBmZjZhYjc2N2VlOGIwNi5iaW5kUG9wdXAocG9wdXBfMjJkODlmNzM5MTgwNGJkZjg4ZWRiNGJkYjc5MGU4YjEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMDEzZTVkZDBmZGRjNGU5ODhkYWQyMmUwZDVkYjM5NGEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjgwNjQ4NiwgLTEuMjE0NjI4NF0sIFs1MC42ODA3MjYyLCAtMS4yMTQyMTczXSwgWzUwLjY4MDcxNiwgLTEuMjEzODE1XSwgWzUwLjY4MDY1MTQsIC0xLjIxMzE0NDRdLCBbNTAuNjgwNzUzNCwgLTEuMjEyNTg2NV0sIFs1MC42ODA4NzQ2LCAtMS4yMTIzMTkyXSwgWzUwLjY4MDk2OTQsIC0xLjIxMjExMDNdLCBbNTAuNjgxMTUwNywgLTEuMjExODYxNl0sIFs1MC42ODEyODM0LCAtMS4yMTE1NTc3XSwgWzUwLjY4MTQ2MDQsIC0xLjIxMDgyOTddLCBbNTAuNjgxNTI2MSwgLTEuMjEwMzc0OV0sIFs1MC42ODE2MDk1LCAtMS4yMDk4ODU1XSwgWzUwLjY4MTcxNzEsIC0xLjIwOTM5NTJdLCBbNTAuNjgxODk3NiwgLTEuMjA4NzI4MV0sIFs1MC42ODE5ODY4LCAtMS4yMDg0MDQ5XSwgWzUwLjY4MjA1OTUsIC0xLjIwODE2MDldLCBbNTAuNjgyMTA0OSwgLTEuMjA4MDQ2OF0sIFs1MC42ODIyMDM1LCAtMS4yMDc4MTg4XSwgWzUwLjY4MjMxNDQsIC0xLjIwNzYwMTZdLCBbNTAuNjgyNDQxNSwgLTEuMjA3Mzg3NV0sIFs1MC42ODI1ODksIC0xLjIwNzE5ODVdLCBbNTAuNjgyNjMyOSwgLTEuMjA3MTI2OF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzE3NDUyM2Y5OTZkYTRkOGNiYjJlODJlZDRjMTM1YjUzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzI3ZDdkZDM0ZGJmNzQ3NTg5NmQzNzBhMzQ0YmUyYzdhID0gJCgnPGRpdiBpZD0iaHRtbF8yN2Q3ZGQzNGRiZjc0NzU4OTZkMzcwYTM0NGJlMmM3YSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkxpbWUgS2lsbiBTaHV0ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzE3NDUyM2Y5OTZkYTRkOGNiYjJlODJlZDRjMTM1YjUzLnNldENvbnRlbnQoaHRtbF8yN2Q3ZGQzNGRiZjc0NzU4OTZkMzcwYTM0NGJlMmM3YSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzAxM2U1ZGQwZmRkYzRlOTg4ZGFkMjJlMGQ1ZGIzOTRhLmJpbmRQb3B1cChwb3B1cF8xNzQ1MjNmOTk2ZGE0ZDhjYmIyZTgyZWQ0YzEzNWI1Myk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV84MzJlMmJlMmI1OWI0NjJlODc5ZjZiNWIzMThjYWRlNSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42ODA2NDg2LCAtMS4yMTQ2Mjg0XSwgWzUwLjY4MDIzNDUsIC0xLjIxNDc0ODRdLCBbNTAuNjc5OTg1OCwgLTEuMjE0ODE4M10sIFs1MC42Nzk3NTM4LCAtMS4yMTQ4ODc1XSwgWzUwLjY3OTU5OTcsIC0xLjIxNDkyNDFdLCBbNTAuNjc5MzI3OSwgLTEuMjE1MTA2Nl0sIFs1MC42NzkxODQ0LCAtMS4yMTUxOTUzXSwgWzUwLjY3OTA0ODIsIC0xLjIxNTIyOTZdLCBbNTAuNjc4Nzc4MSwgLTEuMjE1MTA2OV0sIFs1MC42Nzg0NDA2LCAtMS4yMTQ4MDA3XSwgWzUwLjY3ODMyNjcsIC0xLjIxNDY3NzNdLCBbNTAuNjc4MjE2OSwgLTEuMjE0NjAwNF0sIFs1MC42NzgxMzMxLCAtMS4yMTQ1NDE3XSwgWzUwLjY3Nzg4ODIsIC0xLjIxNDQxNzFdLCBbNTAuNjc3NTgwNSwgLTEuMjE0MzIwNl0sIFs1MC42Nzc0MTU3LCAtMS4yMTQyMDI2XSwgWzUwLjY3NzA4NjMsIC0xLjIxMzYzMTddLCBbNTAuNjc2ODE3NCwgLTEuMjEzMTc1M10sIFs1MC42NzY1ODI4LCAtMS4yMTI4MTE0XSwgWzUwLjY3NjM4NjcsIC0xLjIxMjU0MDddLCBbNTAuNjc2MjkxNSwgLTEuMjEyNDA0OF0sIFs1MC42NzYxOTkzLCAtMS4yMTIyNzM3XSwgWzUwLjY3NTkzNjMsIC0xLjIxMjAwNjZdLCBbNTAuNjc1OTAwOSwgLTEuMjExOTY2NV0sIFs1MC42NzU1MTQ2LCAtMS4yMTE2MTY3XSwgWzUwLjY3NTE2OTUsIC0xLjIxMTMyMjldLCBbNTAuNjc0NzE2MywgLTEuMjExMDg2M10sIFs1MC42NzQ1NzYzLCAtMS4yMTEwMDc3XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfNjZmMGQ5MTY3ZWYxNDhhZjg3ZjU0NDdlMTQ2MzE1ZjMpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODEyOTllMWMxNDA3NDc1OThjNWU0ZmEwZDA1MDlkYjUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOTM1OWEzNmE5MWQ2NGYxZmI2NDE1YjE3ZTM4MjhmZTUgPSAkKCc8ZGl2IGlkPSJodG1sXzkzNTlhMzZhOTFkNjRmMWZiNjQxNWIxN2UzODI4ZmU1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iTWVyc2xleSBMYW5lIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODEyOTllMWMxNDA3NDc1OThjNWU0ZmEwZDA1MDlkYjUuc2V0Q29udGVudChodG1sXzkzNTlhMzZhOTFkNjRmMWZiNjQxNWIxN2UzODI4ZmU1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfODMyZTJiZTJiNTliNDYyZTg3OWY2YjViMzE4Y2FkZTUuYmluZFBvcHVwKHBvcHVwXzgxMjk5ZTFjMTQwNzQ3NTk4YzVlNGZhMGQwNTA5ZGI1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2EzNzgzYTRlMTEyMzRmNDVhZmJjMGRmMTVmNjczMmE2ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1NDMwOCwgLTEuMTgyNTY0Nl0sIFs1MC42NTQxNDMsIC0xLjE4MzAyNDldLCBbNTAuNjU0MDk0NCwgLTEuMTgzMTY5OF0sIFs1MC42NTM4NDQyLCAtMS4xODM4NzczXSwgWzUwLjY1Mzc0NzYsIC0xLjE4NDA3NTVdLCBbNTAuNjUzMzI3NywgLTEuMTg0MzAzOV0sIFs1MC42NTMyOTA3LCAtMS4xODQzMjU0XSwgWzUwLjY1MjkwOTEsIC0xLjE4NDQ4MTVdLCBbNTAuNjUyODUxOSwgLTEuMTg0NTA1NV0sIFs1MC42NTI1NTc2LCAtMS4xODQ2MjkxXSwgWzUwLjY1MjI5NCwgLTEuMTg0Nzc1NV0sIFs1MC42NTIxMzczLCAtMS4xODQ5MjI5XSwgWzUwLjY1MTkzMjQsIC0xLjE4NTI0ODddLCBbNTAuNjUxMjkyMiwgLTEuMTg1OTY0OV0sIFs1MC42NTExMDkzLCAtMS4xODYzMDk2XSwgWzUwLjY1MDg3MywgLTEuMTg2ODU5NF0sIFs1MC42NTA1OTEsIC0xLjE4NzU1NzRdLCBbNTAuNjUwNTI1MSwgLTEuMTg3NTk1OV0sIFs1MC42NTAxOTAxLCAtMS4xODc1ODM2XSwgWzUwLjY0OTg2MTksIC0xLjE4NzYyNjVdLCBbNTAuNjQ5NzAyOSwgLTEuMTg3NjI5Ml0sIFs1MC42NDk0OTI5LCAtMS4xODc1NjQ4XSwgWzUwLjY0OTIxMzcsIC0xLjE4NzM3MTZdLCBbNTAuNjQ5MDQ2MywgLTEuMTg3MTc0M10sIFs1MC42NDg3ODExLCAtMS4xODY4NDI4XSwgWzUwLjY0ODU0MzIsIC0xLjE4NjU2OTVdLCBbNTAuNjQ4NDAwNCwgLTEuMTg2NDc4N10sIFs1MC42NDgyMDY5LCAtMS4xODYzODY5XSwgWzUwLjY0Nzk4OTIsIC0xLjE4NjI4MTVdLCBbNTAuNjQ3ODExMSwgLTEuMTg2MTg4N10sIFs1MC42NDc2NzA3LCAtMS4xODYwOTA4XSwgWzUwLjY0NzQ1MDQsIC0xLjE4NTkzODJdLCBbNTAuNjQ3MTUyMiwgLTEuMTg1NjcxNl0sIFs1MC42NDcwMjA1LCAtMS4xODU1NTJdLCBbNTAuNjQ2ODI1OSwgLTEuMTg1MzgwNF0sIFs1MC42NDY3OTM1LCAtMS4xODUzNjI2XSwgWzUwLjY0NjcwOSwgLTEuMTg1MzUwNl1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwXzY2ZjBkOTE2N2VmMTQ4YWY4N2Y1NDQ3ZTE0NjMxNWYzKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2EyNjYxMzI0NWVmZjRkYWE5NTk0ZTc5ODRkYWE2ZjkwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzI1NGQwM2MyYTljYjRhOGI5YWNlMTc4N2EzYzMxYzVmID0gJCgnPGRpdiBpZD0iaHRtbF8yNTRkMDNjMmE5Y2I0YThiOWFjZTE3ODdhM2MzMWM1ZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WyJTY290Y2hlbGxzIEJyb29rIExhbmUiLCAiRW1iYXNzeSBXYXkiXTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTI2NjEzMjQ1ZWZmNGRhYTk1OTRlNzk4NGRhYTZmOTAuc2V0Q29udGVudChodG1sXzI1NGQwM2MyYTljYjRhOGI5YWNlMTc4N2EzYzMxYzVmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfYTM3ODNhNGUxMTIzNGY0NWFmYmMwZGYxNWY2NzMyYTYuYmluZFBvcHVwKHBvcHVwX2EyNjYxMzI0NWVmZjRkYWE5NTk0ZTc5ODRkYWE2ZjkwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzgzYWNkOTlmNTNkMzQzMDM4NTQ3Njc1MDc3ZGJjOGM5ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY0NTY2NSwgLTEuMjA1NjEwOV0sIFs1MC42NDU1ODY1LCAtMS4yMDU3MjQ4XSwgWzUwLjY0NTQzNzQsIC0xLjIwNTUzNTNdLCBbNTAuNjQ1MzE1MSwgLTEuMjA1NDM2OV0sIFs1MC42NDUyMTA2LCAtMS4yMDUzMzg5XSwgWzUwLjY0NDk5MDIsIC0xLjIwNDgzNjFdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jNTIxMzA1MzZkYTY0NzU4ODhkMDc1YWVkNWRmY2JhZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wM2E1MDJhZTdkMjI0ZGZiOWRkY2NjMDUyM2QwNGZhNyA9ICQoJzxkaXYgaWQ9Imh0bWxfMDNhNTAyYWU3ZDIyNGRmYjlkZGNjYzA1MjNkMDRmYTciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJUaGUgQnJhbWJsZXMiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jNTIxMzA1MzZkYTY0NzU4ODhkMDc1YWVkNWRmY2JhZS5zZXRDb250ZW50KGh0bWxfMDNhNTAyYWU3ZDIyNGRmYjlkZGNjYzA1MjNkMDRmYTcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV84M2FjZDk5ZjUzZDM0MzAzODU0NzY3NTA3N2RiYzhjOS5iaW5kUG9wdXAocG9wdXBfYzUyMTMwNTM2ZGE2NDc1ODg4ZDA3NWFlZDVkZmNiYWUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIG1hcF82NmYwZDkxNjdlZjE0OGFmODdmNTQ0N2UxNDYzMTVmMy5maXRCb3VuZHMoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NDE1MzczLCAtMS4yMTc0MTc1XSwgWzUwLjY4NDYxMzUsIC0xLjE3ODI4OTJdXSwKICAgICAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIAo8L3NjcmlwdD4=\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x120db5208>"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"m=ox.plot_graph_folium(parishroads, popup_attribute='name', edge_width=2, tiles='openstreetmap')\n",
"m"
]
},
{
"cell_type": "code",
"execution_count": 208,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVMgPSBmYWxzZTsgTF9OT19UT1VDSCA9IGZhbHNlOyBMX0RJU0FCTEVfM0QgPSBmYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIgLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIiAvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiIC8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIgLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuY3NzIiAvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2dpdC5jb20vcHl0aG9uLXZpc3VhbGl6YXRpb24vZm9saXVtL21hc3Rlci9mb2xpdW0vdGVtcGxhdGVzL2xlYWZsZXQuYXdlc29tZS5yb3RhdGUuY3NzIiAvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgICAgICAgICA8c3R5bGU+ICNtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogMTAwLjAlOwogICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgIAo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiIiA+PC9kaXY+CiAgICAgICAgCjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGJvdW5kcyA9IG51bGw7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgdmFyIG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYiA9IEwubWFwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2VudGVyOiBbNTAuNjYxNTg5NTYxMzQ5OTIsLTEuMjAwNTQ1NTMyMTE3MzM3NV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b29tOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4Qm91bmRzOiBib3VuZHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllcnM6IFtdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ybGRDb3B5SnVtcDogZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcnM6IEwuQ1JTLkVQU0czODU3CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgdGlsZV9sYXllcl81MTczNGU2MWJjMWY0ZGVlOWUwOGRiYmE5OWQ2MTJkNCA9IEwudGlsZUxheWVyKAogICAgICAgICAgICAgICAgJ2h0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nJywKICAgICAgICAgICAgICAgIHsKICAiYXR0cmlidXRpb24iOiBudWxsLAogICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAibWF4Wm9vbSI6IDE4LAogICJtaW5ab29tIjogMSwKICAibm9XcmFwIjogZmFsc2UsCiAgInN1YmRvbWFpbnMiOiAiYWJjIgp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfYzQzYzBhYjBiNzAwNGY3ZDkwZDg0N2VjNzhkMzE2YjEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQzNDE3MSwgLTEuMjA5NDk1Nl0sIFs1MC42NDMyMjQ2LCAtMS4yMDk0OTI5XSwgWzUwLjY0MzE5MiwgLTEuMjA5NDkyNV0sIFs1MC42NDMxNzIyLCAtMS4yMDk0OThdLCBbNTAuNjQzMDEyNywgLTEuMjA5NTQyMV0sIFs1MC42NDI4MTM1LCAtMS4yMDk2NzU1XSwgWzUwLjY0Mjc1OSwgLTEuMjA5NzIzOF0sIFs1MC42NDI2MDA1LCAtMS4yMDk4NjQyXSwgWzUwLjY0MjExMDQsIC0xLjIxMDI2NDddLCBbNTAuNjQxNzg0NiwgLTEuMjEwNDU1NV0sIFs1MC42NDE2Nzk2LCAtMS4yMTA0ODQzXSwgWzUwLjY0MTUzNzMsIC0xLjIxMDM5MjNdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iYTU2MjljNWU0ZmU0YzEyYjMzZWMxMzA2MzgzY2FjZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83MDFlMDY1Y2E0MjI0Zjg0OGRlYmU4YzJhY2M1YjYyZSA9ICQoJzxkaXYgaWQ9Imh0bWxfNzAxZTA2NWNhNDIyNGY4NDhkZWJlOGMyYWNjNWI2MmUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJQcmluY2VsZXR0IFNodXRlIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYmE1NjI5YzVlNGZlNGMxMmIzM2VjMTMwNjM4M2NhY2Uuc2V0Q29udGVudChodG1sXzcwMWUwNjVjYTQyMjRmODQ4ZGViZThjMmFjYzViNjJlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfYzQzYzBhYjBiNzAwNGY3ZDkwZDg0N2VjNzhkMzE2YjEuYmluZFBvcHVwKHBvcHVwX2JhNTYyOWM1ZTRmZTRjMTJiMzNlYzEzMDYzODNjYWNlKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzc3NzhjMTY4YzdhMzQ1OGE5ODdmZmI5OGZkZGIxMGI4ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY0MzQxNzEsIC0xLjIwOTQ5NTZdLCBbNTAuNjQzNDgzMiwgLTEuMjA5NTE3MV0sIFs1MC42NDM1NTIxLCAtMS4yMDk1Mzk2XSwgWzUwLjY0MzU3NSwgLTEuMjA5NTQ4M10sIFs1MC42NDM5NzU4LCAtMS4yMDk3Mjg3XSwgWzUwLjY0NDczMTQsIC0xLjIwOTg5ODFdLCBbNTAuNjQ2MTgxLCAtMS4yMTAyMTU1XSwgWzUwLjY0Nzg3NzQsIC0xLjIxMDYzMzZdLCBbNTAuNjQ4MDYwNiwgLTEuMjEwNjc4OF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzllYTk0YjgxMzhlNjRkNmE4YjgyNDcxZjM1NzE4Y2Q0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzQzOTNiMDExMGU5MzQxZGI5MmQ2M2U0MmIxYmRhZWNkID0gJCgnPGRpdiBpZD0iaHRtbF80MzkzYjAxMTBlOTM0MWRiOTJkNjNlNDJiMWJkYWVjZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IlByaW5jZWxldHQgU2h1dGUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85ZWE5NGI4MTM4ZTY0ZDZhOGI4MjQ3MWYzNTcxOGNkNC5zZXRDb250ZW50KGh0bWxfNDM5M2IwMTEwZTkzNDFkYjkyZDYzZTQyYjFiZGFlY2QpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV83Nzc4YzE2OGM3YTM0NThhOTg3ZmZiOThmZGRiMTBiOC5iaW5kUG9wdXAocG9wdXBfOWVhOTRiODEzOGU2NGQ2YThiODI0NzFmMzU3MThjZDQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZjFmODQ4NzhiZTYzNGI1Y2EwOWU2N2EwMWIxNDVjYWIgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQzNDE3MSwgLTEuMjA5NDk1Nl0sIFs1MC42NDMyNTQsIC0xLjIwOTE1NV0sIFs1MC42NDMxNzQ0LCAtMS4yMDkwODkyXSwgWzUwLjY0MzAwMzUsIC0xLjIwODk2ODJdLCBbNTAuNjQyMzg5NiwgLTEuMjA4NDkxOV0sIFs1MC42NDIyNjU0LCAtMS4yMDg0MzM2XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZjI4MzNjN2EyMzdmNDAxODg1YjBhZmM1NmU0ZTcxNjUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZWM2MmE2NWNjZDg4NGEwYjg4YmRkN2Y2M2M3OTQ1NzMgPSAkKCc8ZGl2IGlkPSJodG1sX2VjNjJhNjVjY2Q4ODRhMGI4OGJkZDdmNjNjNzk0NTczIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iTGl0dGxlIFByaW5jbGV0dCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2YyODMzYzdhMjM3ZjQwMTg4NWIwYWZjNTZlNGU3MTY1LnNldENvbnRlbnQoaHRtbF9lYzYyYTY1Y2NkODg0YTBiODhiZGQ3ZjYzYzc5NDU3Myk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2YxZjg0ODc4YmU2MzRiNWNhMDllNjdhMDFiMTQ1Y2FiLmJpbmRQb3B1cChwb3B1cF9mMjgzM2M3YTIzN2Y0MDE4ODViMGFmYzU2ZTRlNzE2NSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV85MDNlYTJjMDhmZWQ0ZTBkYmViMGVjMmRmZGRkMGUyOCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NDgwNjA2LCAtMS4yMTA2Nzg4XSwgWzUwLjY0ODIwNjcsIC0xLjIxMDcxMTldLCBbNTAuNjQ4OTE1NywgLTEuMjEwNjk1OV0sIFs1MC42NDkzNjc4LCAtMS4yMTA2NTM5XSwgWzUwLjY0OTY1OTEsIC0xLjIxMDYxNV0sIFs1MC42NDk4MzQ0LCAtMS4yMTA1ODY5XSwgWzUwLjY1MDk3MzUsIC0xLjIxMDM4MzZdLCBbNTAuNjUxMDM1NywgLTEuMjEwMzc5N10sIFs1MC42NTExMzU0LCAtMS4yMTAzNjM4XSwgWzUwLjY1MTMzODQsIC0xLjIxMDM0ODNdLCBbNTAuNjUxNTEzLCAtMS4yMTAzMzQ5XSwgWzUwLjY1MTgyMiwgLTEuMjEwMzY0OV0sIFs1MC42NTE4ODc3LCAtMS4yMTAzNzg1XSwgWzUwLjY1MjUxMjYsIC0xLjIxMDUwODJdLCBbNTAuNjUyNjU2OSwgLTEuMjEwNTM2XSwgWzUwLjY1MzQyMzcsIC0xLjIxMDY4MzldLCBbNTAuNjUzNTM1NywgLTEuMjEwNjc5MV0sIFs1MC42NTM4Nzk3LCAtMS4yMTA2Njc2XSwgWzUwLjY1NDMyNTcsIC0xLjIxMDc2MzVdLCBbNTAuNjU0NDg4NywgLTEuMjEwODA4NV0sIFs1MC42NTQ2Mjk3LCAtMS4yMTA4NTIxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYWUwNjBiYzMxYjVmNDhjMTg1MTI5ZjM0M2NkNTJmZDIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOTY0Yjc0MjgxZjVlNGJhODg0YWZlMDI2MmFjZmUxYWUgPSAkKCc8ZGl2IGlkPSJodG1sXzk2NGI3NDI4MWY1ZTRiYTg4NGFmZTAyNjJhY2ZlMWFlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV2luZm9yZCBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYWUwNjBiYzMxYjVmNDhjMTg1MTI5ZjM0M2NkNTJmZDIuc2V0Q29udGVudChodG1sXzk2NGI3NDI4MWY1ZTRiYTg4NGFmZTAyNjJhY2ZlMWFlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfOTAzZWEyYzA4ZmVkNGUwZGJlYjBlYzJkZmRkZDBlMjguYmluZFBvcHVwKHBvcHVwX2FlMDYwYmMzMWI1ZjQ4YzE4NTEyOWYzNDNjZDUyZmQyKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzBmOWI4ZGZlZmQ1MzQ1NjA5MzMzMzM5NjhjMDU4ZDY0ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY0ODA2MDYsIC0xLjIxMDY3ODhdLCBbNTAuNjQ3ODc3NCwgLTEuMjEwNjMzNl0sIFs1MC42NDYxODEsIC0xLjIxMDIxNTVdLCBbNTAuNjQ0NzMxNCwgLTEuMjA5ODk4MV0sIFs1MC42NDM5NzU4LCAtMS4yMDk3Mjg3XSwgWzUwLjY0MzU3NSwgLTEuMjA5NTQ4M10sIFs1MC42NDM1NTIxLCAtMS4yMDk1Mzk2XSwgWzUwLjY0MzQ4MzIsIC0xLjIwOTUxNzFdLCBbNTAuNjQzNDE3MSwgLTEuMjA5NDk1Nl1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzc2NjJkZWQ0YzhlZjRlZWRhMzU2MWFlNjJiNGM4MDcyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzk3NGM3MWFmNDJlNzRkODBhNDc3N2E3OWYyNWRiODg4ID0gJCgnPGRpdiBpZD0iaHRtbF85NzRjNzFhZjQyZTc0ZDgwYTQ3NzdhNzlmMjVkYjg4OCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IlByaW5jZWxldHQgU2h1dGUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83NjYyZGVkNGM4ZWY0ZWVkYTM1NjFhZTYyYjRjODA3Mi5zZXRDb250ZW50KGh0bWxfOTc0YzcxYWY0MmU3NGQ4MGE0Nzc3YTc5ZjI1ZGI4ODgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8wZjliOGRmZWZkNTM0NTYwOTMzMzMzOTY4YzA1OGQ2NC5iaW5kUG9wdXAocG9wdXBfNzY2MmRlZDRjOGVmNGVlZGEzNTYxYWU2MmI0YzgwNzIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNWMyNWVjNzRjNmVkNDdjODhmNWMyYmNiYjE3ZGNjNGYgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQ4MDYwNiwgLTEuMjEwNjc4OF0sIFs1MC42NDc5MTksIC0xLjIwOTkyOTldLCBbNTAuNjQ3NzU4OSwgLTEuMjA5MjM3OV0sIFs1MC42NDc2ODUxLCAtMS4yMDg5MTI3XSwgWzUwLjY0NzYwNzgsIC0xLjIwODcwNDhdLCBbNTAuNjQ3NTA5LCAtMS4yMDg0NDFdLCBbNTAuNjQ3Mzk3NywgLTEuMjA4MDYzMV0sIFs1MC42NDczNzk3LCAtMS4yMDc3NzE1XSwgWzUwLjY0NzM1ODMsIC0xLjIwNzQyNjVdLCBbNTAuNjQ3MzE4MywgLTEuMjA2NDY1XSwgWzUwLjY0NzI2OTksIC0xLjIwNTUyOTNdLCBbNTAuNjQ3MjM1OSwgLTEuMjA0ODQ2XSwgWzUwLjY0NzE5MTEsIC0xLjIwMzc3NDddLCBbNTAuNjQ3MTY5MiwgLTEuMjAzNDE5NV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Q2ZWE4ZmI1NGZiYTRlNjg4NmNiNDRkMTcwZDE2YjliID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2UzNzk1MjEzMzc4MTRlMTQ5NGZjM2JmY2Y3NDExYTE1ID0gJCgnPGRpdiBpZD0iaHRtbF9lMzc5NTIxMzM3ODE0ZTE0OTRmYzNiZmNmNzQxMWExNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Ik5ld3BvcnQgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Q2ZWE4ZmI1NGZiYTRlNjg4NmNiNDRkMTcwZDE2YjliLnNldENvbnRlbnQoaHRtbF9lMzc5NTIxMzM3ODE0ZTE0OTRmYzNiZmNmNzQxMWExNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzVjMjVlYzc0YzZlZDQ3Yzg4ZjVjMmJjYmIxN2RjYzRmLmJpbmRQb3B1cChwb3B1cF9kNmVhOGZiNTRmYmE0ZTY4ODZjYjQ0ZDE3MGQxNmI5Yik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV80OTZmMDMwNDI1ZTM0ZjMwYWQ0NDY5ODU2Y2I5NzQ3ZSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTQ3ODI5LCAtMS4yMTA5NTA1XSwgWzUwLjY1NDYyOTcsIC0xLjIxMDg1MjFdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yYzEzNzRiZDYwY2M0Yzg2OWJlOTEwNGYwOTJlN2MxNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84MGRmMmM2MjRlYjc0NjMwOTM3OTQxODFlNjc4NmE5ZCA9ICQoJzxkaXYgaWQ9Imh0bWxfODBkZjJjNjI0ZWI3NDYzMDkzNzk0MTgxZTY3ODZhOWQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXaW5mb3JkIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yYzEzNzRiZDYwY2M0Yzg2OWJlOTEwNGYwOTJlN2MxNC5zZXRDb250ZW50KGh0bWxfODBkZjJjNjI0ZWI3NDYzMDkzNzk0MTgxZTY3ODZhOWQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV80OTZmMDMwNDI1ZTM0ZjMwYWQ0NDY5ODU2Y2I5NzQ3ZS5iaW5kUG9wdXAocG9wdXBfMmMxMzc0YmQ2MGNjNGM4NjliZTkxMDRmMDkyZTdjMTQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNWY4YWZhYjMwOWJkNGZmZTgwNjQ4NjdhOTg2MDc0MDIgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjU0NzgyOSwgLTEuMjEwOTUwNV0sIFs1MC42NTQ3NTgsIC0xLjIxMTEyNjNdLCBbNTAuNjU0NzIyNiwgLTEuMjExMzc1OF0sIFs1MC42NTQ3MTQ1LCAtMS4yMTE2Nzk5XSwgWzUwLjY1NDcxMjgsIC0xLjIxMTc0NjldLCBbNTAuNjU0NzEzMywgLTEuMjExODE5N10sIFs1MC42NTQ3MjY4LCAtMS4yMTI0NDI5XSwgWzUwLjY1NDc0NTEsIC0xLjIxMzA5MzFdLCBbNTAuNjU0NzkzMiwgLTEuMjE0NDUxXSwgWzUwLjY1NDc4NzIsIC0xLjIxNTE1MjRdLCBbNTAuNjU0ODA4NiwgLTEuMjE1Nzg0XSwgWzUwLjY1NDg2NSwgLTEuMjE2MTg1OF0sIFs1MC42NTQ5NTIxLCAtMS4yMTY1MTY2XSwgWzUwLjY1NTExNjMsIC0xLjIxNjk0NjddLCBbNTAuNjU1MjgzLCAtMS4yMTc0MTc1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTM1Njg4ZjgyMTM5NDdkMGI3ZjZlOTg0ODIzNGIxOTcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZTVkMmJlZmFjMmRkNGQ3NjgxMWIxMzFmYmMwOTM1YzcgPSAkKCc8ZGl2IGlkPSJodG1sX2U1ZDJiZWZhYzJkZDRkNzY4MTFiMTMxZmJjMDkzNWM3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV2F0ZXJ5IExhbmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85MzU2ODhmODIxMzk0N2QwYjdmNmU5ODQ4MjM0YjE5Ny5zZXRDb250ZW50KGh0bWxfZTVkMmJlZmFjMmRkNGQ3NjgxMWIxMzFmYmMwOTM1YzcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV81ZjhhZmFiMzA5YmQ0ZmZlODA2NDg2N2E5ODYwNzQwMi5iaW5kUG9wdXAocG9wdXBfOTM1Njg4ZjgyMTM5NDdkMGI3ZjZlOTg0ODIzNGIxOTcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNjI5NjFhODEwMjM1NDEyN2EzZTlmZTQ2MjNhMjEwODQgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjU0NzgyOSwgLTEuMjEwOTUwNV0sIFs1MC42NTUyMzk1LCAtMS4yMTEyMjc2XSwgWzUwLjY1NTQ3OTUsIC0xLjIxMTM0Ml0sIFs1MC42NTU3Nzc4LCAtMS4yMTE0NTIyXSwgWzUwLjY1NjExNDUsIC0xLjIxMTU0ODhdLCBbNTAuNjU2NTEyOSwgLTEuMjExNjQyMl0sIFs1MC42NTczODMsIC0xLjIxMTgwNjNdLCBbNTAuNjU4MTk3MSwgLTEuMjExOTY2N10sIFs1MC42NTg1MTYzLCAtMS4yMTE5OTIxXSwgWzUwLjY1OTA4MDYsIC0xLjIxMTk0MTNdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mNGI3NjNlYTkxYTU0NmYwODY2Y2M4NDU1OGIzZTM4OSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83YTQ2MTk4OWYyZjc0NjViYTA3YjA4NzIwMzhhZTAzOSA9ICQoJzxkaXYgaWQ9Imh0bWxfN2E0NjE5ODlmMmY3NDY1YmEwN2IwODcyMDM4YWUwMzkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXaW5mb3JkIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mNGI3NjNlYTkxYTU0NmYwODY2Y2M4NDU1OGIzZTM4OS5zZXRDb250ZW50KGh0bWxfN2E0NjE5ODlmMmY3NDY1YmEwN2IwODcyMDM4YWUwMzkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV82Mjk2MWE4MTAyMzU0MTI3YTNlOWZlNDYyM2EyMTA4NC5iaW5kUG9wdXAocG9wdXBfZjRiNzYzZWE5MWE1NDZmMDg2NmNjODQ1NThiM2UzODkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNDdlZWEyYzk2ZjRhNDdhM2FiMzhhMDk0OGYyZWQ5NjEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjc0NTIzNiwgLTEuMjEwNzcwM10sIFs1MC42NzQ1NzYzLCAtMS4yMTEwMDc3XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzY1NjQxNzhmNzkxNGM4ZDk3YjIwMWVkY2ZhNTU3MzUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZWEyMDBhMmI5ODAxNGUzYzhkYjQ5M2JmZDVmZTNkNjkgPSAkKCc8ZGl2IGlkPSJodG1sX2VhMjAwYTJiOTgwMTRlM2M4ZGI0OTNiZmQ1ZmUzZDY5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5OYU48L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2M2NTY0MTc4Zjc5MTRjOGQ5N2IyMDFlZGNmYTU1NzM1LnNldENvbnRlbnQoaHRtbF9lYTIwMGEyYjk4MDE0ZTNjOGRiNDkzYmZkNWZlM2Q2OSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzQ3ZWVhMmM5NmY0YTQ3YTNhYjM4YTA5NDhmMmVkOTYxLmJpbmRQb3B1cChwb3B1cF9jNjU2NDE3OGY3OTE0YzhkOTdiMjAxZWRjZmE1NTczNSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV81NmVhNjczMTczNjc0N2FkOTEwZTA0ZDViYWZiMWI3NiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NzQ1MjM2LCAtMS4yMTA3NzAzXSwgWzUwLjY3NDM4ODQsIC0xLjIxMDkyMDVdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84NDhjYTBmMGQ2NWU0NmIwYjVhODllNmRjMmY2MDJiNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lMGVjMzA2ZDIxYWQ0ODRkOGQ5YmFjYTY0YTZkMzY2MiA9ICQoJzxkaXYgaWQ9Imh0bWxfZTBlYzMwNmQyMWFkNDg0ZDhkOWJhY2E2NGE2ZDM2NjIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk5hTjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODQ4Y2EwZjBkNjVlNDZiMGI1YTg5ZTZkYzJmNjAyYjcuc2V0Q29udGVudChodG1sX2UwZWMzMDZkMjFhZDQ4NGQ4ZDliYWNhNjRhNmQzNjYyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNTZlYTY3MzE3MzY3NDdhZDkxMGUwNGQ1YmFmYjFiNzYuYmluZFBvcHVwKHBvcHVwXzg0OGNhMGYwZDY1ZTQ2YjBiNWE4OWU2ZGMyZjYwMmI3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2E5YmFlOGUyMjhmMDRmZTNhODYxYzUxNmY2NDkzMmY3ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY3NDUyMzYsIC0xLjIxMDc3MDNdLCBbNTAuNjc0NzgxLCAtMS4yMDkyODAzXSwgWzUwLjY3NTIyMDksIC0xLjIwNTY5NV0sIFs1MC42NzU0NzQ4LCAtMS4yMDQzMDQyXSwgWzUwLjY3NTcyNTUsIC0xLjIwMjk0XSwgWzUwLjY3NTgwNDgsIC0xLjIwMjcyMzNdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84NTgxNDRkOTJmY2E0MDQwYTkwY2ZhOWQxMDIxZWM5YyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jNDA4NDQ2ZTE4Y2Y0MzUzOWRkZWRjZTYwOGRiMmYxMSA9ICQoJzxkaXYgaWQ9Imh0bWxfYzQwODQ0NmUxOGNmNDM1MzlkZGVkY2U2MDhkYjJmMTEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJLbmlnaHRvbiBMYW5lIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODU4MTQ0ZDkyZmNhNDA0MGE5MGNmYTlkMTAyMWVjOWMuc2V0Q29udGVudChodG1sX2M0MDg0NDZlMThjZjQzNTM5ZGRlZGNlNjA4ZGIyZjExKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfYTliYWU4ZTIyOGYwNGZlM2E4NjFjNTE2ZjY0OTMyZjcuYmluZFBvcHVwKHBvcHVwXzg1ODE0NGQ5MmZjYTQwNDBhOTBjZmE5ZDEwMjFlYzljKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzdiYTMwMWZlMDNjMDRkYTk4MjcyNWFiMWY2OTEwMzdlID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY3NDM4ODQsIC0xLjIxMDkyMDVdLCBbNTAuNjc0NTIzNiwgLTEuMjEwNzcwM11dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzNhN2ZkMThkNWFjMTQwNjU4OTcxNjFmNjA3NDkyNTdmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2VkNzUxNDFkZmEwNTQyZWM4ODVkMWIzODVjMDZkYjczID0gJCgnPGRpdiBpZD0iaHRtbF9lZDc1MTQxZGZhMDU0MmVjODg1ZDFiMzg1YzA2ZGI3MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TmFOPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zYTdmZDE4ZDVhYzE0MDY1ODk3MTYxZjYwNzQ5MjU3Zi5zZXRDb250ZW50KGh0bWxfZWQ3NTE0MWRmYTA1NDJlYzg4NWQxYjM4NWMwNmRiNzMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV83YmEzMDFmZTAzYzA0ZGE5ODI3MjVhYjFmNjkxMDM3ZS5iaW5kUG9wdXAocG9wdXBfM2E3ZmQxOGQ1YWMxNDA2NTg5NzE2MWY2MDc0OTI1N2YpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfODNlNjRjZTVjNzc5NDZiNzhkY2ExMTM4ODBiNGNlMDcgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjc0Mzg4NCwgLTEuMjEwOTIwNV0sIFs1MC42NzQ1NzYzLCAtMS4yMTEwMDc3XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZmMyMTMxMTgzZmMxNGZjOGEzNjQ2YjBiMmI3N2JkOWMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYWM1YjQ2ZTVkNGIyNDMyYjliNDNmOWI2MWNkYzM2M2EgPSAkKCc8ZGl2IGlkPSJodG1sX2FjNWI0NmU1ZDRiMjQzMmI5YjQzZjliNjFjZGMzNjNhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5OYU48L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2ZjMjEzMTE4M2ZjMTRmYzhhMzY0NmIwYjJiNzdiZDljLnNldENvbnRlbnQoaHRtbF9hYzViNDZlNWQ0YjI0MzJiOWI0M2Y5YjYxY2RjMzYzYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzgzZTY0Y2U1Yzc3OTQ2Yjc4ZGNhMTEzODgwYjRjZTA3LmJpbmRQb3B1cChwb3B1cF9mYzIxMzExODNmYzE0ZmM4YTM2NDZiMGIyYjc3YmQ5Yyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8zN2IyMDRmMDBiZDU0YTJkOGFlY2E4OWYxNjhmODhjYSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NzQzODg0LCAtMS4yMTA5MjA1XSwgWzUwLjY3MzYwMDksIC0xLjIxMDkxNjddLCBbNTAuNjcyNzI4NiwgLTEuMjEwODI1M10sIFs1MC42NzIxNjIsIC0xLjIxMDc2MV0sIFs1MC42NzE1MDI2LCAtMS4yMTA2NTQ3XSwgWzUwLjY3MTIxOTQsIC0xLjIxMDU5OTRdLCBbNTAuNjcwODIxMywgLTEuMjEwNDY3Ml0sIFs1MC42NzA3MjUyLCAtMS4yMTA0MTc0XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYjkxODg5NDhmOTZjNGMwOGI3N2I1YzJiZWE5ODdlNmIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYThiMzJjMTYzMDA0NGMyMDg4YzViNDIzNzY2NmQyNTAgPSAkKCc8ZGl2IGlkPSJodG1sX2E4YjMyYzE2MzAwNDRjMjA4OGM1YjQyMzc2NjZkMjUwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5bIkxhbmdicmlkZ2UiLCAiVGhlIFNodXRlIl08L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2I5MTg4OTQ4Zjk2YzRjMDhiNzdiNWMyYmVhOTg3ZTZiLnNldENvbnRlbnQoaHRtbF9hOGIzMmMxNjMwMDQ0YzIwODhjNWI0MjM3NjY2ZDI1MCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzM3YjIwNGYwMGJkNTRhMmQ4YWVjYTg5ZjE2OGY4OGNhLmJpbmRQb3B1cChwb3B1cF9iOTE4ODk0OGY5NmM0YzA4Yjc3YjVjMmJlYTk4N2U2Yik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8wZGQ2YjEwZGJkZTY0MzQ1YTkzMDA4NDQwYzBhNTQ5ZiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NzQ1NzYzLCAtMS4yMTEwMDc3XSwgWzUwLjY3NDUyMzYsIC0xLjIxMDc3MDNdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80ZDgyY2NlNDdkM2M0ZTQ5YWE1ZDFjN2FkM2MxMTg1OSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lYmZhODQ5ZjljOGY0MzQ4OWJhMDZiNzAwYTc0ZDVmMiA9ICQoJzxkaXYgaWQ9Imh0bWxfZWJmYTg0OWY5YzhmNDM0ODliYTA2YjcwMGE3NGQ1ZjIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk5hTjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNGQ4MmNjZTQ3ZDNjNGU0OWFhNWQxYzdhZDNjMTE4NTkuc2V0Q29udGVudChodG1sX2ViZmE4NDlmOWM4ZjQzNDg5YmEwNmI3MDBhNzRkNWYyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMGRkNmIxMGRiZGU2NDM0NWE5MzAwODQ0MGMwYTU0OWYuYmluZFBvcHVwKHBvcHVwXzRkODJjY2U0N2QzYzRlNDlhYTVkMWM3YWQzYzExODU5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzEyYjZhYzM3NmRjMTQxOWE5OGZjYThmMTZjYzZmMmQyID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY3NDU3NjMsIC0xLjIxMTAwNzddLCBbNTAuNjc0Mzg4NCwgLTEuMjEwOTIwNV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzlhZjQxYzI4Y2M5MTRiZDY4YzM5MmI4MDJiY2YzMTE4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2Q0YjU5OWFkYjZiMjQ0OTg4ZjU5NzVlMGZiODFkZGM4ID0gJCgnPGRpdiBpZD0iaHRtbF9kNGI1OTlhZGI2YjI0NDk4OGY1OTc1ZTBmYjgxZGRjOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TmFOPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85YWY0MWMyOGNjOTE0YmQ2OGMzOTJiODAyYmNmMzExOC5zZXRDb250ZW50KGh0bWxfZDRiNTk5YWRiNmIyNDQ5ODhmNTk3NWUwZmI4MWRkYzgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8xMmI2YWMzNzZkYzE0MTlhOThmY2E4ZjE2Y2M2ZjJkMi5iaW5kUG9wdXAocG9wdXBfOWFmNDFjMjhjYzkxNGJkNjhjMzkyYjgwMmJjZjMxMTgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZTZkYzBjNDY3ODAyNDM1NGE1YWQyZmMwYTJmMzYzZDEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjc0NTc2MywgLTEuMjExMDA3N10sIFs1MC42NzQ3MTYzLCAtMS4yMTEwODYzXSwgWzUwLjY3NTE2OTUsIC0xLjIxMTMyMjldLCBbNTAuNjc1NTE0NiwgLTEuMjExNjE2N10sIFs1MC42NzU5MDA5LCAtMS4yMTE5NjY1XSwgWzUwLjY3NTkzNjMsIC0xLjIxMjAwNjZdLCBbNTAuNjc2MTk5MywgLTEuMjEyMjczN10sIFs1MC42NzYyOTE1LCAtMS4yMTI0MDQ4XSwgWzUwLjY3NjM4NjcsIC0xLjIxMjU0MDddLCBbNTAuNjc2NTgyOCwgLTEuMjEyODExNF0sIFs1MC42NzY4MTc0LCAtMS4yMTMxNzUzXSwgWzUwLjY3NzA4NjMsIC0xLjIxMzYzMTddLCBbNTAuNjc3NDE1NywgLTEuMjE0MjAyNl0sIFs1MC42Nzc1ODA1LCAtMS4yMTQzMjA2XSwgWzUwLjY3Nzg4ODIsIC0xLjIxNDQxNzFdLCBbNTAuNjc4MTMzMSwgLTEuMjE0NTQxN10sIFs1MC42NzgyMTY5LCAtMS4yMTQ2MDA0XSwgWzUwLjY3ODMyNjcsIC0xLjIxNDY3NzNdLCBbNTAuNjc4NDQwNiwgLTEuMjE0ODAwN10sIFs1MC42Nzg3NzgxLCAtMS4yMTUxMDY5XSwgWzUwLjY3OTA0ODIsIC0xLjIxNTIyOTZdLCBbNTAuNjc5MTg0NCwgLTEuMjE1MTk1M10sIFs1MC42NzkzMjc5LCAtMS4yMTUxMDY2XSwgWzUwLjY3OTU5OTcsIC0xLjIxNDkyNDFdLCBbNTAuNjc5NzUzOCwgLTEuMjE0ODg3NV0sIFs1MC42Nzk5ODU4LCAtMS4yMTQ4MTgzXSwgWzUwLjY4MDIzNDUsIC0xLjIxNDc0ODRdLCBbNTAuNjgwNjQ4NiwgLTEuMjE0NjI4NF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzgxMDg4ZTkxYTJhZDQ3YTFhMTgyZTgwMDBlNjZhOTUzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzE1M2IzM2U1YTJmNjRhYzY4MmJkNDNmMzM4MjA5ZGUyID0gJCgnPGRpdiBpZD0iaHRtbF8xNTNiMzNlNWEyZjY0YWM2ODJiZDQzZjMzODIwOWRlMiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Ik1lcnNsZXkgTGFuZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzgxMDg4ZTkxYTJhZDQ3YTFhMTgyZTgwMDBlNjZhOTUzLnNldENvbnRlbnQoaHRtbF8xNTNiMzNlNWEyZjY0YWM2ODJiZDQzZjMzODIwOWRlMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2U2ZGMwYzQ2NzgwMjQzNTRhNWFkMmZjMGEyZjM2M2QxLmJpbmRQb3B1cChwb3B1cF84MTA4OGU5MWEyYWQ0N2ExYTE4MmU4MDAwZTY2YTk1Myk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8xOTc4OTM2NDhlZmQ0YTczODM1MGYwMGMyMWUzZjYwNyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42Njg4OTQ1LCAtMS4xODI2Nzc1XSwgWzUwLjY2ODg2ODksIC0xLjE4MjQ4NTVdLCBbNTAuNjY4NTkzOCwgLTEuMTgxNjkyN10sIFs1MC42Njg0MDI5LCAtMS4xODA3MTI4XSwgWzUwLjY2ODQwMTcsIC0xLjE4MDU3MzFdLCBbNTAuNjY4NDA3NiwgLTEuMTgwNTMxMl0sIFs1MC42Njg0NDU1LCAtMS4xODAyOTk4XSwgWzUwLjY2ODQ2OTgsIC0xLjE4MDIzMzldLCBbNTAuNjY4NTA5LCAtMS4xODAxNTYyXSwgWzUwLjY2ODY5NiwgLTEuMTgwMDEyMl0sIFs1MC42Njg3MDk3LCAtMS4xNzk5NjA0XSwgWzUwLjY2ODcyNTcsIC0xLjE3OTg5OTldLCBbNTAuNjY4NTM5MSwgLTEuMTc5MzE0M10sIFs1MC42Njg0ODY5LCAtMS4xNzkwODk2XSwgWzUwLjY2ODQ2MzMsIC0xLjE3ODkxNjhdLCBbNTAuNjY4NTE1NywgLTEuMTc4NzIyNF0sIFs1MC42Njg2NTQzLCAtMS4xNzg1NDcxXSwgWzUwLjY2ODc1MDIsIC0xLjE3ODQ0MzldLCBbNTAuNjY4Nzg0MSwgLTEuMTc4NDA1XSwgWzUwLjY2ODg4NzUsIC0xLjE3ODI4OTJdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hZWZlN2E2ZDdlOWE0YWVlYThhYmI0ODk3NmNlZGI5NyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kOGUxZTFkNGM0ODA0YzYxOGRhN2U3MWViZjVhYjJmNSA9ICQoJzxkaXYgaWQ9Imh0bWxfZDhlMWUxZDRjNDgwNGM2MThkYTdlNzFlYmY1YWIyZjUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJNYWluIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hZWZlN2E2ZDdlOWE0YWVlYThhYmI0ODk3NmNlZGI5Ny5zZXRDb250ZW50KGh0bWxfZDhlMWUxZDRjNDgwNGM2MThkYTdlNzFlYmY1YWIyZjUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8xOTc4OTM2NDhlZmQ0YTczODM1MGYwMGMyMWUzZjYwNy5iaW5kUG9wdXAocG9wdXBfYWVmZTdhNmQ3ZTlhNGFlZWE4YWJiNDg5NzZjZWRiOTcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfYjU0OTZmNDRkODgzNGViYTljYTc2ZjVmMTVlZWM1ZTYgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY4ODk0NSwgLTEuMTgyNjc3NV0sIFs1MC42Njg3NDE4LCAtMS4xODI4NzY4XSwgWzUwLjY2ODU3LCAtMS4xODMwMjc0XSwgWzUwLjY2NzgxMjQsIC0xLjE4MzY5NDldLCBbNTAuNjY3NjU4MiwgLTEuMTgzODE3OF0sIFs1MC42Njc1MjE0LCAtMS4xODM4NTQ0XSwgWzUwLjY2NzI2NTcsIC0xLjE4Mzg0OF0sIFs1MC42NjcxMTMxLCAtMS4xODM4Nzk0XSwgWzUwLjY2NzAwNDIsIC0xLjE4MzkwNTZdLCBbNTAuNjY2OTUxMywgLTEuMTgzOTE2OF0sIFs1MC42NjY5MTk2LCAtMS4xODM5MjQ4XSwgWzUwLjY2NjcyOCwgLTEuMTgzOTg0NF0sIFs1MC42NjY2MjU5LCAtMS4xODQwMzcyXSwgWzUwLjY2NjUzMDgsIC0xLjE4NDA4NjNdLCBbNTAuNjY2Mzg1NiwgLTEuMTg0MTk2OF0sIFs1MC42NjYyMDM2LCAtMS4xODQzMzMzXSwgWzUwLjY2NTk5MTgsIC0xLjE4NDU0OTJdLCBbNTAuNjY1ODkzNCwgLTEuMTg0NjI5NF0sIFs1MC42NjU4MDc2LCAtMS4xODQ3Mjg2XSwgWzUwLjY2NTc5MTEsIC0xLjE4NDc0MThdLCBbNTAuNjY1NzYzMSwgLTEuMTg0NzY0M10sIFs1MC42NjU1OTQ2LCAtMS4xODQ4OTk0XSwgWzUwLjY2NTM4MDksIC0xLjE4NTA2MjVdLCBbNTAuNjY0OTgyMywgLTEuMTg1MzI0NV0sIFs1MC42NjQ5Mjc3LCAtMS4xODUzNjEzXSwgWzUwLjY2NDgyMjUsIC0xLjE4NTQyNTVdLCBbNTAuNjY0NDc0NywgLTEuMTg1NjM3N10sIFs1MC42NjQyOTgxLCAtMS4xODU3NjU5XSwgWzUwLjY2MzgzMjgsIC0xLjE4NjE0MzldLCBbNTAuNjYzNjY2MiwgLTEuMTg2MzIwOV0sIFs1MC42NjM1MjU4LCAtMS4xODY0NjIyXSwgWzUwLjY2MzQxNDYsIC0xLjE4NjU3NDRdLCBbNTAuNjYzMjUxMywgLTEuMTg2NzM5M10sIFs1MC42NjI3MjM1LCAtMS4xODcxOTk5XSwgWzUwLjY2MjYxMzYsIC0xLjE4NzMzMTddLCBbNTAuNjYyNDI1OSwgLTEuMTg3NTU2OV0sIFs1MC42NjIxMjI4LCAtMS4xODc5NTU3XSwgWzUwLjY2MTkzOTgsIC0xLjE4ODMyNTVdLCBbNTAuNjYxODI5NSwgLTEuMTg4NTM4NV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzY5NDk5YTllMDQ2YjRlMjM4ZjU1ZjcyOGVlZWNlYzc1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2E4N2JiZmFhZmI4ZDQ0OWE4ZTE4MDViODIxYjBlYjE2ID0gJCgnPGRpdiBpZD0iaHRtbF9hODdiYmZhYWZiOGQ0NDlhOGUxODA1YjgyMWIwZWIxNiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WyJBbHZlcnN0b25lIFNodXRlIiwgIk1haW4gUm9hZCIsICJBbHZlcnN0b25lIEJyaWRnZSJdPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82OTQ5OWE5ZTA0NmI0ZTIzOGY1NWY3MjhlZWVjZWM3NS5zZXRDb250ZW50KGh0bWxfYTg3YmJmYWFmYjhkNDQ5YThlMTgwNWI4MjFiMGViMTYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9iNTQ5NmY0NGQ4ODM0ZWJhOWNhNzZmNWYxNWVlYzVlNi5iaW5kUG9wdXAocG9wdXBfNjk0OTlhOWUwNDZiNGUyMzhmNTVmNzI4ZWVlY2VjNzUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMmU4MjdiOWIzOGQyNGNhMGFmOTdjN2VlZjY1M2EzYTggPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY4ODk0NSwgLTEuMTgyNjc3NV0sIFs1MC42Njk0NDQyLCAtMS4xODIxN10sIFs1MC42NzAyNzIxLCAtMS4xODE0NTEyXSwgWzUwLjY3MDM1MzcsIC0xLjE4MTUxMDJdLCBbNTAuNjcwNDE4MywgLTEuMTgxNjQ3XSwgWzUwLjY3MDU5MDEsIC0xLjE4MjE4MzRdLCBbNTAuNjcwNjAwMywgLTEuMTgyMjE0OF0sIFs1MC42NzA3NTg1LCAtMS4xODI5MzE1XSwgWzUwLjY3MDgzMDEsIC0xLjE4MzI1Nl0sIFs1MC42NzA4NjkyLCAtMS4xODMyOTYzXSwgWzUwLjY3MDk0OTEsIC0xLjE4MzI5ODldLCBbNTAuNjcxMzg3OSwgLTEuMTgzMDI0NF0sIFs1MC42NzIyMzIsIC0xLjE4MjQ5NjNdLCBbNTAuNjcyMjgzNywgLTEuMTgyNDY0XSwgWzUwLjY3MzAxOTYsIC0xLjE4MjA1NDRdLCBbNTAuNjczMTUzOSwgLTEuMTgyMDE5NV0sIFs1MC42NzMzOTc5LCAtMS4xODIwNDQ2XSwgWzUwLjY3MzU4ODIsIC0xLjE4MjA3MzJdLCBbNTAuNjc0MDgwOSwgLTEuMTgyMjg4N10sIFs1MC42NzQzNDgxLCAtMS4xODIzNDQ0XSwgWzUwLjY3NDY5MTEsIC0xLjE4MjMwMzhdLCBbNTAuNjc0ODk5MywgLTEuMTgyMjI5MV0sIFs1MC42NzUyODk0LCAtMS4xODIwMTk4XSwgWzUwLjY3NTYwMzMsIC0xLjE4MTkxNzVdLCBbNTAuNjc1NjY1MywgLTEuMTgxODk3M10sIFs1MC42NzU4Mjg0LCAtMS4xODE4OTE0XSwgWzUwLjY3NTkxNDIsIC0xLjE4MTg4ODNdLCBbNTAuNjc2MTUzMywgLTEuMTgxOTA3OV0sIFs1MC42NzYyOTAzLCAtMS4xODI3Njg0XSwgWzUwLjY3NjI5NzgsIC0xLjE4Mjc5MjNdLCBbNTAuNjc2MzM3NSwgLTEuMTgyODI1Nl0sIFs1MC42NzYzOTkxLCAtMS4xODI4NDE3XSwgWzUwLjY3NjU0ODEsIC0xLjE4MjgzMDRdLCBbNTAuNjc2NTc2NiwgLTEuMTgyODEwMl0sIFs1MC42NzY1ODA2LCAtMS4xODI4NDYzXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjlkZTA3N2M2MDdlNGQ5NTgzYWI1YjkwZTc1MTNmZmQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMzA1YTM2Nzg5ODQzNGNlOGI2OTJkMDk3NTBlNTM0MzUgPSAkKCc8ZGl2IGlkPSJodG1sXzMwNWEzNjc4OTg0MzRjZThiNjkyZDA5NzUwZTUzNDM1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iS2VybiBMYW5lIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjlkZTA3N2M2MDdlNGQ5NTgzYWI1YjkwZTc1MTNmZmQuc2V0Q29udGVudChodG1sXzMwNWEzNjc4OTg0MzRjZThiNjkyZDA5NzUwZTUzNDM1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMmU4MjdiOWIzOGQyNGNhMGFmOTdjN2VlZjY1M2EzYTguYmluZFBvcHVwKHBvcHVwXzY5ZGUwNzdjNjA3ZTRkOTU4M2FiNWI5MGU3NTEzZmZkKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzQzOTQzZGI1MjExNDQwYjQ4OWRlNTQzMWFjOTZkOGMyID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1OTE2MTksIC0xLjE5NTMzODddLCBbNTAuNjU5MTUzOCwgLTEuMTk1NDIzM10sIFs1MC42NTkxMTk4LCAtMS4xOTU1MTQ1XSwgWzUwLjY1OTA0NSwgLTEuMTk1NjY4N10sIFs1MC42NTg5Mjk0LCAtMS4xOTU4NDE3XSwgWzUwLjY1ODgyODIsIC0xLjE5NTk0OV0sIFs1MC42NTg3MjM3LCAtMS4xOTYwMzYyXSwgWzUwLjY1ODYxMDYsIC0xLjE5NjEwNzJdLCBbNTAuNjU4NDk4NCwgLTEuMTk2MTgxXSwgWzUwLjY1ODQzMiwgLTEuMTk2MjgwMl0sIFs1MC42NTgzNDcsIC0xLjE5NjQ2NTNdLCBbNTAuNjU4MjI2MywgLTEuMTk2ODE5NF0sIFs1MC42NTgwMTQ0LCAtMS4xOTc1MzE1XSwgWzUwLjY1Nzg3MzcsIC0xLjE5NzkzMTNdLCBbNTAuNjU3NzgyLCAtMS4xOTgxODA5XSwgWzUwLjY1NzcxNywgLTEuMTk4MzAyNl0sIFs1MC42NTc1OTMzLCAtMS4xOTg1MDE1XSwgWzUwLjY1NzQxOTMsIC0xLjE5ODc1OTVdLCBbNTAuNjU3Mjc0NCwgLTEuMTk4OTY4Nl0sIFs1MC42NTcxNzc2LCAtMS4xOTkwODQ3XSwgWzUwLjY1NzA2MjEsIC0xLjE5OTIxMDhdLCBbNTAuNjU2ODE1OCwgLTEuMTk5NTI0NF0sIFs1MC42NTY3MzA4LCAtMS4xOTk2Mjc2XSwgWzUwLjY1NjYwODgsIC0xLjE5OTc1NzZdLCBbNTAuNjU2NDUxMSwgLTEuMTk5ODcxN10sIFs1MC42NTYyODYxLCAtMS4xOTk5NjQzXSwgWzUwLjY1NTk5NjYsIC0xLjIwMDA3ODVdLCBbNTAuNjU1OTcwMSwgLTEuMjAwMDkwN10sIFs1MC42NTU2OTk1LCAtMS4yMDAyMTVdLCBbNTAuNjU1NjEwMiwgLTEuMjAwMjQwNV0sIFs1MC42NTU0OTkzLCAtMS4yMDAyNjQxXSwgWzUwLjY1NTQxNjUsIC0xLjIwMDI2NTZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82ZDk1ZmY4MjgyNzQ0OTJjOWI3MjIxMjg0NjYxNjVjZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85MTBkZmRkMGM4YWI0ZjJjYTUyYjJkN2M0ZmU3YzgxMiA9ICQoJzxkaXYgaWQ9Imh0bWxfOTEwZGZkZDBjOGFiNGYyY2E1MmIyZDdjNGZlN2M4MTIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJBbHZlcnN0b25lIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82ZDk1ZmY4MjgyNzQ0OTJjOWI3MjIxMjg0NjYxNjVjZi5zZXRDb250ZW50KGh0bWxfOTEwZGZkZDBjOGFiNGYyY2E1MmIyZDdjNGZlN2M4MTIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV80Mzk0M2RiNTIxMTQ0MGI0ODlkZTU0MzFhYzk2ZDhjMi5iaW5kUG9wdXAocG9wdXBfNmQ5NWZmODI4Mjc0NDkyYzliNzIyMTI4NDY2MTY1Y2YpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMjJkYjgyMzUxZGZjNDBmMTk2Nzc3OGFkMjQ5YmE1NjUgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjU5MTYxOSwgLTEuMTk1MzM4N10sIFs1MC42NTkyMTMyLCAtMS4xOTUzNTYxXSwgWzUwLjY1OTgyNTksIC0xLjE5NTk1MjldLCBbNTAuNjYwMjg4MSwgLTEuMTk2NDUzOV0sIFs1MC42NjA3MTM2LCAtMS4xOTcwMzY4XSwgWzUwLjY2MTAzLCAtMS4xOTczOTE0XSwgWzUwLjY2MTI1NDMsIC0xLjE5Nzg4MThdLCBbNTAuNjYxMjc0NCwgLTEuMTk3OTI1OV0sIFs1MC42NjE1NDM2LCAtMS4xOTg3ODA5XSwgWzUwLjY2MTgzNjksIC0xLjIwMDAyOTddLCBbNTAuNjYxODk3MiwgLTEuMjAwMTE5Nl0sIFs1MC42NjIyMDU1LCAtMS4yMDA0NzI0XSwgWzUwLjY2MjMyNTcsIC0xLjIwMDYyMDVdLCBbNTAuNjYyOTk0NiwgLTEuMjAxNzkwNl0sIFs1MC42NjMzMzg1LCAtMS4yMDIzNzM0XSwgWzUwLjY2MzQwNTUsIC0xLjIwMjUyNzddLCBbNTAuNjYzNDI2OSwgLTEuMjAyNjE0NV0sIFs1MC42NjM0NDYyLCAtMS4yMDI3MzJdLCBbNTAuNjYzNDMyNCwgLTEuMjAyODQ1XSwgWzUwLjY2MzM3MDEsIC0xLjIwMzExNTldLCBbNTAuNjYzMzM5LCAtMS4yMDMyMzc2XSwgWzUwLjY2MzM2MDQsIC0xLjIwMzQ5MTddLCBbNTAuNjYzMzc1OCwgLTEuMjAzNjcxNV0sIFs1MC42NjM0MjUyLCAtMS4yMDM4NzA5XSwgWzUwLjY2Mzk3NjEsIC0xLjIwNTQ0MzhdLCBbNTAuNjY0MDYzMiwgLTEuMjA1ODU1MV0sIFs1MC42NjQxMTMxLCAtMS4yMDYzOTMxXSwgWzUwLjY2NDA3NDcsIC0xLjIwNjg5NzFdLCBbNTAuNjY0MDc3MSwgLTEuMjA3MTYyNV0sIFs1MC42NjQwODY2LCAtMS4yMDc0MDAxXSwgWzUwLjY2NDE3OTQsIC0xLjIwNzU3NjFdLCBbNTAuNjY0Mjc4OSwgLTEuMjA3NjI1OF0sIFs1MC42NjQ3MzU3LCAtMS4yMDc2ODA5XSwgWzUwLjY2NDg0MjUsIC0xLjIwNzc4NzhdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84MmIwNTNmOTY1NmI0MzcxYTk1YjJmN2RlYTdmMGI3ZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lODg1YTRhNTQxOGQ0ZmZhYjZjMDQ4ZmI2Yzc2OGIwZCA9ICQoJzxkaXYgaWQ9Imh0bWxfZTg4NWE0YTU0MThkNGZmYWI2YzA0OGZiNmM3NjhiMGQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlsiUGFsbWVycyBMYW5lIiwgIlNraW5uZXJzIExhbmUiXTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODJiMDUzZjk2NTZiNDM3MWE5NWIyZjdkZWE3ZjBiN2Yuc2V0Q29udGVudChodG1sX2U4ODVhNGE1NDE4ZDRmZmFiNmMwNDhmYjZjNzY4YjBkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMjJkYjgyMzUxZGZjNDBmMTk2Nzc3OGFkMjQ5YmE1NjUuYmluZFBvcHVwKHBvcHVwXzgyYjA1M2Y5NjU2YjQzNzFhOTViMmY3ZGVhN2YwYjdmKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzY2MDI1OTgzNDlmZTQ3MTBhZTYwYzY5OTRkZTMxMGNjID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1OTE2MTksIC0xLjE5NTMzODddLCBbNTAuNjU5MTQxOCwgLTEuMTk1MjcwM10sIFs1MC42NTkwMDg1LCAtMS4xOTUwMTMxXSwgWzUwLjY1ODkxODgsIC0xLjE5NDgwNzhdLCBbNTAuNjU4OTEwNSwgLTEuMTk0NzgyN10sIFs1MC42NTg4NDQzLCAtMS4xOTQ2MDcxXSwgWzUwLjY1ODc5NDQsIC0xLjE5NDQ0NThdLCBbNTAuNjU4NzQ1OSwgLTEuMTk0MDAxMl0sIFs1MC42NTg3MTgyLCAtMS4xOTMzMzM3XSwgWzUwLjY1ODgyODIsIC0xLjE5MjQ5MTldLCBbNTAuNjU4OTk3MSwgLTEuMTkxNzM1NV0sIFs1MC42NTkwOTc3LCAtMS4xOTE1NTRdLCBbNTAuNjU5MjI3NywgLTEuMTkxNDE2MV0sIFs1MC42NTk0MzQ4LCAtMS4xOTEzMzAxXSwgWzUwLjY1OTU0MzcsIC0xLjE5MTI5MjZdLCBbNTAuNjU5NzA0NywgLTEuMTkxMjA0NV0sIFs1MC42NTk4NzgyLCAtMS4xOTEwNDYzXSwgWzUwLjY2MDAxMDgsIC0xLjE5MDkzNjNdLCBbNTAuNjYwMTgzNiwgLTEuMTkwODQ0Ml0sIFs1MC42NjAyNTU5LCAtMS4xOTA4MDg0XSwgWzUwLjY2MDQ1MTEsIC0xLjE5MDY4MzFdLCBbNTAuNjYwNDg1LCAtMS4xOTA2NTg3XSwgWzUwLjY2MDU4ODksIC0xLjE5MDU0Ml0sIFs1MC42NjA2ODMzLCAtMS4xOTAzOTk4XSwgWzUwLjY2MDgzODksIC0xLjE5MDA3OTNdLCBbNTAuNjYxMTAxNiwgLTEuMTg5NTk5Ml0sIFs1MC42NjE0MjQsIC0xLjE4OTExNDJdLCBbNTAuNjYxNjc1MiwgLTEuMTg4NzU3Nl0sIFs1MC42NjE4Mjk1LCAtMS4xODg1Mzg1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODU0NjhlNTBjOTY0NDYxNmI2ZGI3NzNhM2ZmNGNhOTAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMGJlY2U0OThlOWVjNGQ4OTk2ZTZkNGY5NzdiZTU1M2IgPSAkKCc8ZGl2IGlkPSJodG1sXzBiZWNlNDk4ZTllYzRkODk5NmU2ZDRmOTc3YmU1NTNiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQWx2ZXJzdG9uZSBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODU0NjhlNTBjOTY0NDYxNmI2ZGI3NzNhM2ZmNGNhOTAuc2V0Q29udGVudChodG1sXzBiZWNlNDk4ZTllYzRkODk5NmU2ZDRmOTc3YmU1NTNiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNjYwMjU5ODM0OWZlNDcxMGFlNjBjNjk5NGRlMzEwY2MuYmluZFBvcHVwKHBvcHVwXzg1NDY4ZTUwYzk2NDQ2MTZiNmRiNzczYTNmZjRjYTkwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2FhZTE5NzQ2NTMyOTRiMTA5ZGNlZTFjNDVkNWI4YjA3ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1NTQxNjUsIC0xLjIwMDI2NTZdLCBbNTAuNjU1NDk5MywgLTEuMjAwMjY0MV0sIFs1MC42NTU2MTAyLCAtMS4yMDAyNDA1XSwgWzUwLjY1NTY5OTUsIC0xLjIwMDIxNV0sIFs1MC42NTU5NzAxLCAtMS4yMDAwOTA3XSwgWzUwLjY1NTk5NjYsIC0xLjIwMDA3ODVdLCBbNTAuNjU2Mjg2MSwgLTEuMTk5OTY0M10sIFs1MC42NTY0NTExLCAtMS4xOTk4NzE3XSwgWzUwLjY1NjYwODgsIC0xLjE5OTc1NzZdLCBbNTAuNjU2NzMwOCwgLTEuMTk5NjI3Nl0sIFs1MC42NTY4MTU4LCAtMS4xOTk1MjQ0XSwgWzUwLjY1NzA2MjEsIC0xLjE5OTIxMDhdLCBbNTAuNjU3MTc3NiwgLTEuMTk5MDg0N10sIFs1MC42NTcyNzQ0LCAtMS4xOTg5Njg2XSwgWzUwLjY1NzQxOTMsIC0xLjE5ODc1OTVdLCBbNTAuNjU3NTkzMywgLTEuMTk4NTAxNV0sIFs1MC42NTc3MTcsIC0xLjE5ODMwMjZdLCBbNTAuNjU3NzgyLCAtMS4xOTgxODA5XSwgWzUwLjY1Nzg3MzcsIC0xLjE5NzkzMTNdLCBbNTAuNjU4MDE0NCwgLTEuMTk3NTMxNV0sIFs1MC42NTgyMjYzLCAtMS4xOTY4MTk0XSwgWzUwLjY1ODM0NywgLTEuMTk2NDY1M10sIFs1MC42NTg0MzIsIC0xLjE5NjI4MDJdLCBbNTAuNjU4NDk4NCwgLTEuMTk2MTgxXSwgWzUwLjY1ODYxMDYsIC0xLjE5NjEwNzJdLCBbNTAuNjU4NzIzNywgLTEuMTk2MDM2Ml0sIFs1MC42NTg4MjgyLCAtMS4xOTU5NDldLCBbNTAuNjU4OTI5NCwgLTEuMTk1ODQxN10sIFs1MC42NTkwNDUsIC0xLjE5NTY2ODddLCBbNTAuNjU5MTE5OCwgLTEuMTk1NTE0NV0sIFs1MC42NTkxNTM4LCAtMS4xOTU0MjMzXSwgWzUwLjY1OTE2MTksIC0xLjE5NTMzODddXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mZmJiMTFiNGI0NTU0NWFjODc0MTA2NWM3OTVkNWM0YSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zMTcxMzFiNjE5OTU0MjNjYTAxM2QwMDVkOGZkMzAyMyA9ICQoJzxkaXYgaWQ9Imh0bWxfMzE3MTMxYjYxOTk1NDIzY2EwMTNkMDA1ZDhmZDMwMjMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJBbHZlcnN0b25lIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mZmJiMTFiNGI0NTU0NWFjODc0MTA2NWM3OTVkNWM0YS5zZXRDb250ZW50KGh0bWxfMzE3MTMxYjYxOTk1NDIzY2EwMTNkMDA1ZDhmZDMwMjMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9hYWUxOTc0NjUzMjk0YjEwOWRjZWUxYzQ1ZDViOGIwNy5iaW5kUG9wdXAocG9wdXBfZmZiYjExYjRiNDU1NDVhYzg3NDEwNjVjNzk1ZDVjNGEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNDgzY2I5Zjc2MjY5NDY1MjljMzlkZGIxMzA2OTM3N2MgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjU1NDE2NSwgLTEuMjAwMjY1Nl0sIFs1MC42NTQ5MzAzLCAtMS4yMDAyMTQ4XSwgWzUwLjY1NDY0ODMsIC0xLjIwMDE4ODFdLCBbNTAuNjUzOTY1MywgLTEuMjAwMTU0NF0sIFs1MC42NTM2NzE1LCAtMS4yMDAxNTA0XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTM2NGM2ZWNjYzZkNGE5ZWI1NDBhOGVkNjRjODdlNTggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZTM4YzUwMDg3MGUyNDJhOTk5ZGVhMmVmYWU0MDllZDcgPSAkKCc8ZGl2IGlkPSJodG1sX2UzOGM1MDA4NzBlMjQyYTk5OWRlYTJlZmFlNDA5ZWQ3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQWx2ZXJzdG9uZSBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTM2NGM2ZWNjYzZkNGE5ZWI1NDBhOGVkNjRjODdlNTguc2V0Q29udGVudChodG1sX2UzOGM1MDA4NzBlMjQyYTk5OWRlYTJlZmFlNDA5ZWQ3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNDgzY2I5Zjc2MjY5NDY1MjljMzlkZGIxMzA2OTM3N2MuYmluZFBvcHVwKHBvcHVwXzkzNjRjNmVjY2M2ZDRhOWViNTQwYThlZDY0Yzg3ZTU4KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzQ2NjhlODdmZGNiZTRjYTM4NjdmZTc1MDJmMGM1MDRjID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1NTQxNjUsIC0xLjIwMDI2NTZdLCBbNTAuNjU1MzcxNywgLTEuMjAwNDAyNl0sIFs1MC42NTUyMzA4LCAtMS4yMDA2MTUxXSwgWzUwLjY1NTA5MjIsIC0xLjIwMDgyNF0sIFs1MC42NTUwMTkyLCAtMS4yMDA5ODY2XSwgWzUwLjY1NDYyMzEsIC0xLjIwMTk0NzddLCBbNTAuNjU0MjM0NSwgLTEuMjAyODgxMl0sIFs1MC42NTQxMTg5LCAtMS4yMDMxNjQxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzVkNTk5OTIwZmNiNGRiNDk2ZTk5NzRhMTI2YjAxMTQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjEzNzNmOTU5ZWM5NGNkZmI5NWM2NGU0MGIzOWE3MTEgPSAkKCc8ZGl2IGlkPSJodG1sX2IxMzczZjk1OWVjOTRjZGZiOTVjNjRlNDBiMzlhNzExIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iRm9yZXN0IFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zNWQ1OTk5MjBmY2I0ZGI0OTZlOTk3NGExMjZiMDExNC5zZXRDb250ZW50KGh0bWxfYjEzNzNmOTU5ZWM5NGNkZmI5NWM2NGU0MGIzOWE3MTEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV80NjY4ZTg3ZmRjYmU0Y2EzODY3ZmU3NTAyZjBjNTA0Yy5iaW5kUG9wdXAocG9wdXBfMzVkNTk5OTIwZmNiNGRiNDk2ZTk5NzRhMTI2YjAxMTQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfOTViZDhmZTFkN2M0NGZkZDlmNDIzMzhmNTQzNjg2M2YgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjU0MTE4OSwgLTEuMjAzMTY0MV0sIFs1MC42NTM3NTE2LCAtMS4yMDQwODE0XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOWY4NjRjMWY2NWI1NGMyODhiOTYwZmE1N2M4OWVhZGUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjU0NDRlMjExZDU2NDdmNWJmNjFlMGY4NTZhYmQxNWQgPSAkKCc8ZGl2IGlkPSJodG1sXzI1NDQ0ZTIxMWQ1NjQ3ZjViZjYxZTBmODU2YWJkMTVkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iRm9yZXN0IFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85Zjg2NGMxZjY1YjU0YzI4OGI5NjBmYTU3Yzg5ZWFkZS5zZXRDb250ZW50KGh0bWxfMjU0NDRlMjExZDU2NDdmNWJmNjFlMGY4NTZhYmQxNWQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV85NWJkOGZlMWQ3YzQ0ZmRkOWY0MjMzOGY1NDM2ODYzZi5iaW5kUG9wdXAocG9wdXBfOWY4NjRjMWY2NWI1NGMyODhiOTYwZmE1N2M4OWVhZGUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfN2QxZGJlOTdlOGU4NDAzMDg2YWNmZTAzNGEyMDEzNzkgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjU0MTE4OSwgLTEuMjAzMTY0MV0sIFs1MC42NTQyNjcyLCAtMS4yMDMyMzA3XSwgWzUwLjY1NDQ2MSwgLTEuMjAzMjEzNl0sIFs1MC42NTQ5NTQxLCAtMS4yMDMwNTA1XSwgWzUwLjY1NTA0NzEsIC0xLjIwMjg5ODNdLCBbNTAuNjU1Mjg4NiwgLTEuMjAyMjI1M11dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2YxZjBlMDI0MmE2NDRkNjM4NmU1ODM2YjBjNDlhMDYxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2E1NmY3NWNiNDU4NzQyMTU4Mjc0NzY5MWUzZDlmNzc0ID0gJCgnPGRpdiBpZD0iaHRtbF9hNTZmNzVjYjQ1ODc0MjE1ODI3NDc2OTFlM2Q5Zjc3NCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkN1cHJlc3N1cyBBdmVudWUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mMWYwZTAyNDJhNjQ0ZDYzODZlNTgzNmIwYzQ5YTA2MS5zZXRDb250ZW50KGh0bWxfYTU2Zjc1Y2I0NTg3NDIxNTgyNzQ3NjkxZTNkOWY3NzQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV83ZDFkYmU5N2U4ZTg0MDMwODZhY2ZlMDM0YTIwMTM3OS5iaW5kUG9wdXAocG9wdXBfZjFmMGUwMjQyYTY0NGQ2Mzg2ZTU4MzZiMGM0OWEwNjEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZmJlMGIzNzhkMzExNDRkZDhiNzRlMjkwYWQ0NjRjOGUgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjU0MTE4OSwgLTEuMjAzMTY0MV0sIFs1MC42NTQyMzQ1LCAtMS4yMDI4ODEyXSwgWzUwLjY1NDYyMzEsIC0xLjIwMTk0NzddLCBbNTAuNjU1MDE5MiwgLTEuMjAwOTg2Nl0sIFs1MC42NTUwOTIyLCAtMS4yMDA4MjRdLCBbNTAuNjU1MjMwOCwgLTEuMjAwNjE1MV0sIFs1MC42NTUzNzE3LCAtMS4yMDA0MDI2XSwgWzUwLjY1NTQxNjUsIC0xLjIwMDI2NTZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xYWExZGJiOGZjZDQ0YmE4YmVlMmYyOGFiNDVlYTRiNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mOWJhYWU3YTI0Zjk0NzcwYmE3YzI3OTBhNmYzY2RlMCA9ICQoJzxkaXYgaWQ9Imh0bWxfZjliYWFlN2EyNGY5NDc3MGJhN2MyNzkwYTZmM2NkZTAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJGb3Jlc3QgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzFhYTFkYmI4ZmNkNDRiYThiZWUyZjI4YWI0NWVhNGI2LnNldENvbnRlbnQoaHRtbF9mOWJhYWU3YTI0Zjk0NzcwYmE3YzI3OTBhNmYzY2RlMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2ZiZTBiMzc4ZDMxMTQ0ZGQ4Yjc0ZTI5MGFkNDY0YzhlLmJpbmRQb3B1cChwb3B1cF8xYWExZGJiOGZjZDQ0YmE4YmVlMmYyOGFiNDVlYTRiNik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV83YWUwZTMzYTIzOTQ0NjQ3YTUxNDYzYTA2Y2FjODBmZSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTM2OTYzLCAtMS4yMDQyMTI5XSwgWzUwLjY1Mzc1MTYsIC0xLjIwNDA4MTRdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82YmJlOWM0MzUyNmE0NjE1OWQwOThhMDcwNWU5NzczZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84ZTQ2MTZkOGZhNGM0NjQ3OWM1NTE1NjVmY2YxZTlhMyA9ICQoJzxkaXYgaWQ9Imh0bWxfOGU0NjE2ZDhmYTRjNDY0NzljNTUxNTY1ZmNmMWU5YTMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJGb3Jlc3QgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzZiYmU5YzQzNTI2YTQ2MTU5ZDA5OGEwNzA1ZTk3NzNlLnNldENvbnRlbnQoaHRtbF84ZTQ2MTZkOGZhNGM0NjQ3OWM1NTE1NjVmY2YxZTlhMyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzdhZTBlMzNhMjM5NDQ2NDdhNTE0NjNhMDZjYWM4MGZlLmJpbmRQb3B1cChwb3B1cF82YmJlOWM0MzUyNmE0NjE1OWQwOThhMDcwNWU5NzczZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV85ZmM4Yjk3ODEzYjQ0YTVjYWNiNTQzNjkxZTIzNGMyMCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTM2OTYzLCAtMS4yMDQyMTI5XSwgWzUwLjY1MzU2NDEsIC0xLjIwNDA5OTNdLCBbNTAuNjUzNDE4OCwgLTEuMjAzOTQ5NV0sIFs1MC42NTMyNTU2LCAtMS4yMDM3NDMxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZjgyZGEwYzlmMzJlNGMyZWEyOTZkZDE3MTI2ZmMzZTEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZTVkMTQyODk0MzM3NDE0ZmEyN2JiMzUyMTBjMDJhNmEgPSAkKCc8ZGl2IGlkPSJodG1sX2U1ZDE0Mjg5NDMzNzQxNGZhMjdiYjM1MjEwYzAyYTZhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iRm9yZXN0IFdheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Y4MmRhMGM5ZjMyZTRjMmVhMjk2ZGQxNzEyNmZjM2UxLnNldENvbnRlbnQoaHRtbF9lNWQxNDI4OTQzMzc0MTRmYTI3YmIzNTIxMGMwMmE2YSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzlmYzhiOTc4MTNiNDRhNWNhY2I1NDM2OTFlMjM0YzIwLmJpbmRQb3B1cChwb3B1cF9mODJkYTBjOWYzMmU0YzJlYTI5NmRkMTcxMjZmYzNlMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV84ZmY4MmNkZjUwZDQ0ZTQ4OTM2MDQzMTU0MWI1NTQ3ZSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTM2OTYzLCAtMS4yMDQyMTI5XSwgWzUwLjY1MzY0NDQsIC0xLjIwNDM2MDRdLCBbNTAuNjUzNjA5NywgLTEuMjA0NTA3M10sIFs1MC42NTM2MTIsIC0xLjIwNDY1NjRdLCBbNTAuNjUzNjcwOCwgLTEuMjA0OTk0N10sIFs1MC42NTQxMzY3LCAtMS4yMDc1NjNdLCBbNTAuNjU0NDczNCwgLTEuMjA5NDAyOV0sIFs1MC42NTQ1MzAyLCAtMS4yMDk3MjAyXSwgWzUwLjY1NDYxOCwgLTEuMjEwMjEwM10sIFs1MC42NTQ2MzY3LCAtMS4yMTAzODg3XSwgWzUwLjY1NDY0NzYsIC0xLjIxMDYwMzVdLCBbNTAuNjU0NjI5NywgLTEuMjEwODUyMV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzk3MjQ0Zjk2NDI5MzRjMmQ5Y2RhNzQ3YjA3NTNhZmM3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2FlMWFlNGEyNDRhNDQ2NjU4YjNmNGJlN2RkZTQwOTZmID0gJCgnPGRpdiBpZD0iaHRtbF9hZTFhZTRhMjQ0YTQ0NjY1OGIzZjRiZTdkZGU0MDk2ZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkZvcmVzdCBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTcyNDRmOTY0MjkzNGMyZDljZGE3NDdiMDc1M2FmYzcuc2V0Q29udGVudChodG1sX2FlMWFlNGEyNDRhNDQ2NjU4YjNmNGJlN2RkZTQwOTZmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfOGZmODJjZGY1MGQ0NGU0ODkzNjA0MzE1NDFiNTU0N2UuYmluZFBvcHVwKHBvcHVwXzk3MjQ0Zjk2NDI5MzRjMmQ5Y2RhNzQ3YjA3NTNhZmM3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzYxNWYwODNmNmIyZTQ1ZGQ5ZWQ3NmFmYzVhM2QyODc3ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1Mzc1MTYsIC0xLjIwNDA4MTRdLCBbNTAuNjUzNjk2MywgLTEuMjA0MjEyOV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzYzN2VhYjE3ZjJhNDRkZTBhZmNmOTA5YzQxMWMwMWY0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2RhYjk1YjI4NWM1MTQ5ZjhiODEwNDBlNmM1NjdlMGI0ID0gJCgnPGRpdiBpZD0iaHRtbF9kYWI5NWIyODVjNTE0OWY4YjgxMDQwZTZjNTY3ZTBiNCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkZvcmVzdCBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjM3ZWFiMTdmMmE0NGRlMGFmY2Y5MDljNDExYzAxZjQuc2V0Q29udGVudChodG1sX2RhYjk1YjI4NWM1MTQ5ZjhiODEwNDBlNmM1NjdlMGI0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNjE1ZjA4M2Y2YjJlNDVkZDllZDc2YWZjNWEzZDI4NzcuYmluZFBvcHVwKHBvcHVwXzYzN2VhYjE3ZjJhNDRkZTBhZmNmOTA5YzQxMWMwMWY0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2ZkODgyMTQwNzZjYzQ4MTBiYTVlZGNhNjczYjcxZGI4ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1Mzc1MTYsIC0xLjIwNDA4MTRdLCBbNTAuNjU0MTE4OSwgLTEuMjAzMTY0MV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzE3YjU0YzhkYmRjYzQ5NTA4ZjYwMDYxYTMxZDFlOGZkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2Q5NGY5MGQ3OGExMzQ1MTJhZTUzZmQ3Zjg5ZGI2Mjg5ID0gJCgnPGRpdiBpZD0iaHRtbF9kOTRmOTBkNzhhMTM0NTEyYWU1M2ZkN2Y4OWRiNjI4OSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkZvcmVzdCBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTdiNTRjOGRiZGNjNDk1MDhmNjAwNjFhMzFkMWU4ZmQuc2V0Q29udGVudChodG1sX2Q5NGY5MGQ3OGExMzQ1MTJhZTUzZmQ3Zjg5ZGI2Mjg5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfZmQ4ODIxNDA3NmNjNDgxMGJhNWVkY2E2NzNiNzFkYjguYmluZFBvcHVwKHBvcHVwXzE3YjU0YzhkYmRjYzQ5NTA4ZjYwMDYxYTMxZDFlOGZkKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzUwNjNmODA5NWYxNjQ3Y2NhM2VkZjU4M2Q0NDUwMDg2ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1Mzc1MTYsIC0xLjIwNDA4MTRdLCBbNTAuNjUzODcwNCwgLTEuMjA0MTY4OF0sIFs1MC42NTQxMDI4LCAtMS4yMDQzMzk2XSwgWzUwLjY1NDM0NTcsIC0xLjIwNDQzODldLCBbNTAuNjU0NDk5NSwgLTEuMjA0NDc0XSwgWzUwLjY1NDU3NCwgLTEuMjA0OTA1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNWRjN2U1NjFmM2U5NDJiNWJjYjFiOTIxYWEzMGY1YTYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOGMwOTVlZDQ5NjMwNDAyMThhNWY5MzU0NGY2ZDE2NGMgPSAkKCc8ZGl2IGlkPSJodG1sXzhjMDk1ZWQ0OTYzMDQwMjE4YTVmOTM1NDRmNmQxNjRjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iRm9yZXN0IERlbGwiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81ZGM3ZTU2MWYzZTk0MmI1YmNiMWI5MjFhYTMwZjVhNi5zZXRDb250ZW50KGh0bWxfOGMwOTVlZDQ5NjMwNDAyMThhNWY5MzU0NGY2ZDE2NGMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV81MDYzZjgwOTVmMTY0N2NjYTNlZGY1ODNkNDQ1MDA4Ni5iaW5kUG9wdXAocG9wdXBfNWRjN2U1NjFmM2U5NDJiNWJjYjFiOTIxYWEzMGY1YTYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNWE3NTE1ZjZlZWM2NDEyNGFmNWQ5NmY4ZTU4MjU5ZGMgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQxNTM3MywgLTEuMjEwMzkyM10sIFs1MC42NDE2Nzk2LCAtMS4yMTA0ODQzXSwgWzUwLjY0MTc4NDYsIC0xLjIxMDQ1NTVdLCBbNTAuNjQyMTEwNCwgLTEuMjEwMjY0N10sIFs1MC42NDI2MDA1LCAtMS4yMDk4NjQyXSwgWzUwLjY0Mjc1OSwgLTEuMjA5NzIzOF0sIFs1MC42NDI4MTM1LCAtMS4yMDk2NzU1XSwgWzUwLjY0MzAxMjcsIC0xLjIwOTU0MjFdLCBbNTAuNjQzMTcyMiwgLTEuMjA5NDk4XSwgWzUwLjY0MzE5MiwgLTEuMjA5NDkyNV0sIFs1MC42NDMyMjQ2LCAtMS4yMDk0OTI5XSwgWzUwLjY0MzQxNzEsIC0xLjIwOTQ5NTZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iMzA5OTYwNmVjMzg0MjZhODg2NDBmOWVhYzI5OTJiOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lMWE0MzkyZGFmYmY0NDc3YjQwZWFhMGU3YWRkNTM1NCA9ICQoJzxkaXYgaWQ9Imh0bWxfZTFhNDM5MmRhZmJmNDQ3N2I0MGVhYTBlN2FkZDUzNTQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJQcmluY2VsZXR0IFNodXRlIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYjMwOTk2MDZlYzM4NDI2YTg4NjQwZjllYWMyOTkyYjguc2V0Q29udGVudChodG1sX2UxYTQzOTJkYWZiZjQ0NzdiNDBlYWEwZTdhZGQ1MzU0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNWE3NTE1ZjZlZWM2NDEyNGFmNWQ5NmY4ZTU4MjU5ZGMuYmluZFBvcHVwKHBvcHVwX2IzMDk5NjA2ZWMzODQyNmE4ODY0MGY5ZWFjMjk5MmI4KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzQ3NDExYTNhMDUyNzRjOTZhNTE1MWYwMGMwOTY0YjBjID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY0MTUzNzMsIC0xLjIxMDM5MjNdLCBbNTAuNjQxNjYzMywgLTEuMjEwMTQ0M10sIFs1MC42NDE3MzcyLCAtMS4yMV0sIFs1MC42NDE4MjQyLCAtMS4yMDk4MDUyXSwgWzUwLjY0MTk0OTcsIC0xLjIwOTQyMjNdLCBbNTAuNjQyMTU5OSwgLTEuMjA4NjM2OF0sIFs1MC42NDIyMDYzLCAtMS4yMDg1MzE1XSwgWzUwLjY0MjIzNjIsIC0xLjIwODQ4Ml1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzQxYzM3N2QxMjA5NDQ3OTNiYjFjOWExNWE4ZTkxMzg2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2FiODQwYjIxZmQ1NTQ2MWRiODQwMjk1MDgyMTFhNWU2ID0gJCgnPGRpdiBpZD0iaHRtbF9hYjg0MGIyMWZkNTU0NjFkYjg0MDI5NTA4MjExYTVlNiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IlZlbnRub3IgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzQxYzM3N2QxMjA5NDQ3OTNiYjFjOWExNWE4ZTkxMzg2LnNldENvbnRlbnQoaHRtbF9hYjg0MGIyMWZkNTU0NjFkYjg0MDI5NTA4MjExYTVlNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzQ3NDExYTNhMDUyNzRjOTZhNTE1MWYwMGMwOTY0YjBjLmJpbmRQb3B1cChwb3B1cF80MWMzNzdkMTIwOTQ0NzkzYmIxYzlhMTVhOGU5MTM4Nik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9lZGNlYjVmNmU4ZTg0ZmQ4YmVhMjYwMDM4ZGViZTU4NiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NDcwMTUsIC0xLjIwMjgwNDRdLCBbNTAuNjQ3MTQzNywgLTEuMjAyNzg4MV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2ZmMDYyNGZjYmI0NzRmYmM4MTVmNjc5ODNlMzE3NzVhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzNjMTUzZjY4ODAwMzQ4ODNhM2M4NmE5Mjc0YTg5OWU4ID0gJCgnPGRpdiBpZD0iaHRtbF8zYzE1M2Y2ODgwMDM0ODgzYTNjODZhOTI3NGE4OTllOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkFsdmVyc3RvbmUgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2ZmMDYyNGZjYmI0NzRmYmM4MTVmNjc5ODNlMzE3NzVhLnNldENvbnRlbnQoaHRtbF8zYzE1M2Y2ODgwMDM0ODgzYTNjODZhOTI3NGE4OTllOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2VkY2ViNWY2ZThlODRmZDhiZWEyNjAwMzhkZWJlNTg2LmJpbmRQb3B1cChwb3B1cF9mZjA2MjRmY2JiNDc0ZmJjODE1ZjY3OTgzZTMxNzc1YSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8xZjIxZjk1ZDY5OGU0YWUzODAyOTMyMzU1Y2E2ODJkZCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NDcwMTUsIC0xLjIwMjgwNDRdLCBbNTAuNjQ3MDk5NywgLTEuMjAzMDYzOF0sIFs1MC42NDcxNjkyLCAtMS4yMDM0MTk1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzdjYmM3MWE5N2I2NDdiNmJiMjdlOWQ2ZWYyZWJjYjEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMzE2MjM4ZTdkNjM0NDIwNzljN2Y0ZWVhYzQ3N2NhMDggPSAkKCc8ZGl2IGlkPSJodG1sXzMxNjIzOGU3ZDYzNDQyMDc5YzdmNGVlYWM0NzdjYTA4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iTmV3cG9ydCBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMzdjYmM3MWE5N2I2NDdiNmJiMjdlOWQ2ZWYyZWJjYjEuc2V0Q29udGVudChodG1sXzMxNjIzOGU3ZDYzNDQyMDc5YzdmNGVlYWM0NzdjYTA4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMWYyMWY5NWQ2OThlNGFlMzgwMjkzMjM1NWNhNjgyZGQuYmluZFBvcHVwKHBvcHVwXzM3Y2JjNzFhOTdiNjQ3YjZiYjI3ZTlkNmVmMmViY2IxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2U3ZTc5MjkxMTFjMTQ4YTFhMGY3OTBkZjI2MjA1YjJkID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY0NzAxNSwgLTEuMjAyODA0NF0sIFs1MC42NDY4ODMyLCAtMS4yMDIzMDYxXSwgWzUwLjY0Njc5MzUsIC0xLjIwMTg1MTVdLCBbNTAuNjQ2Njc2OCwgLTEuMjAxMTM0Nl0sIFs1MC42NDY2MDQyLCAtMS4yMDAyNDQyXSwgWzUwLjY0NjU1OSwgLTEuMTk5NzIxXSwgWzUwLjY0NjQ2MTEsIC0xLjE5NzgxOTFdLCBbNTAuNjQ2NDYxOCwgLTEuMTk3NzQzNl0sIFs1MC42NDY0NzI5LCAtMS4xOTY3NDI2XSwgWzUwLjY0NjQ3NSwgLTEuMTk2MjA4N10sIFs1MC42NDY0OTE1LCAtMS4xOTU5OTM5XSwgWzUwLjY0NjUzNDEsIC0xLjE5NTY1MTZdLCBbNTAuNjQ2NTYyNywgLTEuMTk1NDI5MV0sIFs1MC42NDY1Nzk0LCAtMS4xOTUyOTldLCBbNTAuNjQ2NjgyOSwgLTEuMTk0ODMzNV0sIFs1MC42NDY3MDI1LCAtMS4xOTQ3NDE2XSwgWzUwLjY0Njc4NjQsIC0xLjE5NDM2MzhdLCBbNTAuNjQ2ODI3MSwgLTEuMTkzODMzNF0sIFs1MC42NDY4MjI2LCAtMS4xOTM2NDk0XSwgWzUwLjY0NjgxNzEsIC0xLjE5MzQ2NTNdLCBbNTAuNjQ2NzI2MiwgLTEuMTkyODA3OV0sIFs1MC42NDY2ODk5LCAtMS4xOTIzOTE1XSwgWzUwLjY0NjYzMTEsIC0xLjE5MTI0MDRdLCBbNTAuNjQ2NjA1OSwgLTEuMTkwNTI1NF0sIFs1MC42NDY1OTg3LCAtMS4xOTAyNTcxXSwgWzUwLjY0NjU4OTcsIC0xLjE4OTkyNF0sIFs1MC42NDY2MTU4LCAtMS4xODkzNzhdLCBbNTAuNjQ2NjM5MiwgLTEuMTg4Nzg3M10sIFs1MC42NDY2MzYyLCAtMS4xODg1OTE3XSwgWzUwLjY0NjYzMzMsIC0xLjE4ODM5NzZdLCBbNTAuNjQ2NTk3NiwgLTEuMTg3NzE4NV0sIFs1MC42NDY1ODk3LCAtMS4xODc0NzQ4XSwgWzUwLjY0NjYxNSwgLTEuMTg2ODc1MV0sIFs1MC42NDY2NjYxLCAtMS4xODYzOTgxXSwgWzUwLjY0NjY4NjYsIC0xLjE4NjA0MTFdLCBbNTAuNjQ2Njk5MiwgLTEuMTg1ODIxNF0sIFs1MC42NDY3MDksIC0xLjE4NTM1MDZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84YWNmN2IzMTllNzI0NjI1YjVhODZiYjc1OTFmYjFiZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84ODE0MDA4MDBhYWQ0MzkzODMyMWM4ODFmZWUwMzU4YyA9ICQoJzxkaXYgaWQ9Imh0bWxfODgxNDAwODAwYWFkNDM5MzgzMjFjODgxZmVlMDM1OGMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJOZXdwb3J0IFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84YWNmN2IzMTllNzI0NjI1YjVhODZiYjc1OTFmYjFiZS5zZXRDb250ZW50KGh0bWxfODgxNDAwODAwYWFkNDM5MzgzMjFjODgxZmVlMDM1OGMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9lN2U3OTI5MTExYzE0OGExYTBmNzkwZGYyNjIwNWIyZC5iaW5kUG9wdXAocG9wdXBfOGFjZjdiMzE5ZTcyNDYyNWI1YTg2YmI3NTkxZmIxYmUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZWY4ZjY5MzJlYzFkNGJmMmJlNGZjOGVlMjFkM2MwOTYgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQ3MDE1LCAtMS4yMDI4MDQ0XSwgWzUwLjY0Njg4NzUsIC0xLjIwMjg4ODhdLCBbNTAuNjQ2Nzg5LCAtMS4yMDI5Nzk5XSwgWzUwLjY0NjUzNzMsIC0xLjIwMzI2NzZdLCBbNTAuNjQ2MzY4MSwgLTEuMjAzNDI5OF0sIFs1MC42NDYxNzkzLCAtMS4yMDM2MTU1XSwgWzUwLjY0NjA2ODIsIC0xLjIwMzcyNzRdLCBbNTAuNjQ1ODA4NCwgLTEuMjAzOTg5MV0sIFs1MC42NDU3MDcsIC0xLjIwNDA2NjddLCBbNTAuNjQ1NTg5OCwgLTEuMjA0MTg1N10sIFs1MC42NDU0NTgsIC0xLjIwNDM2MTRdLCBbNTAuNjQ1NDAxOSwgLTEuMjA0NDYzM10sIFs1MC42NDUzNTY3LCAtMS4yMDQ1MTk1XSwgWzUwLjY0NDk5MDIsIC0xLjIwNDgzNjFdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wNGEyNjZkZTRkNjY0ZDQ1YTM1ZmI3ZGJiOTJhZDViZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mMWJkMDgxZDViY2U0MDQ3YmYxZWU0YWJiMjNjMDI3NSA9ICQoJzxkaXYgaWQ9Imh0bWxfZjFiZDA4MWQ1YmNlNDA0N2JmMWVlNGFiYjIzYzAyNzUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJWZW50bm9yIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wNGEyNjZkZTRkNjY0ZDQ1YTM1ZmI3ZGJiOTJhZDViZS5zZXRDb250ZW50KGh0bWxfZjFiZDA4MWQ1YmNlNDA0N2JmMWVlNGFiYjIzYzAyNzUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9lZjhmNjkzMmVjMWQ0YmYyYmU0ZmM4ZWUyMWQzYzA5Ni5iaW5kUG9wdXAocG9wdXBfMDRhMjY2ZGU0ZDY2NGQ0NWEzNWZiN2RiYjkyYWQ1YmUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZWNjNDc0OTMzNzM1NDU5NTljY2VjODI5MTczZTk1M2EgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQyMjY1NCwgLTEuMjA4NDMzNl0sIFs1MC42NDIyMzYyLCAtMS4yMDg0ODJdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82OTNkMGQ1ZmQ5MTA0ZDhjYmIzOGEyMWE0ZDYzMDU3NyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mZjFiNWY4MTMzZjA0ZmUxYWU3MjU2YWYzOTAzODFkMCA9ICQoJzxkaXYgaWQ9Imh0bWxfZmYxYjVmODEzM2YwNGZlMWFlNzI1NmFmMzkwMzgxZDAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJWZW50bm9yIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82OTNkMGQ1ZmQ5MTA0ZDhjYmIzOGEyMWE0ZDYzMDU3Ny5zZXRDb250ZW50KGh0bWxfZmYxYjVmODEzM2YwNGZlMWFlNzI1NmFmMzkwMzgxZDApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9lY2M0NzQ5MzM3MzU0NTk1OWNjZWM4MjkxNzNlOTUzYS5iaW5kUG9wdXAocG9wdXBfNjkzZDBkNWZkOTEwNGQ4Y2JiMzhhMjFhNGQ2MzA1NzcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfYjI0ZjRiOTAyOTVhNDc5Yjg0MmQ5YWM1Y2ViODhiOTkgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQyMjY1NCwgLTEuMjA4NDMzNl0sIFs1MC42NDIzODk2LCAtMS4yMDg0OTE5XSwgWzUwLjY0MzAwMzUsIC0xLjIwODk2ODJdLCBbNTAuNjQzMTc0NCwgLTEuMjA5MDg5Ml0sIFs1MC42NDMyNTQsIC0xLjIwOTE1NV0sIFs1MC42NDM0MTcxLCAtMS4yMDk0OTU2XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTE2M2MyOTRmODhjNDk0M2FiNDJkZTkyMzc0NDc5ODYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjcyNTA1YmQ1ZDM5NDM4NDhmNGM4YzllMGY1ZmQxNGEgPSAkKCc8ZGl2IGlkPSJodG1sXzI3MjUwNWJkNWQzOTQzODQ4ZjRjOGM5ZTBmNWZkMTRhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iTGl0dGxlIFByaW5jbGV0dCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzkxNjNjMjk0Zjg4YzQ5NDNhYjQyZGU5MjM3NDQ3OTg2LnNldENvbnRlbnQoaHRtbF8yNzI1MDViZDVkMzk0Mzg0OGY0YzhjOWUwZjVmZDE0YSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2IyNGY0YjkwMjk1YTQ3OWI4NDJkOWFjNWNlYjg4Yjk5LmJpbmRQb3B1cChwb3B1cF85MTYzYzI5NGY4OGM0OTQzYWI0MmRlOTIzNzQ0Nzk4Nik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8yM2I5NWUzMjEwYWM0MzczYjYzZTVmYzlkYWIwNzI0YyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NDIyNjU0LCAtMS4yMDg0MzM2XSwgWzUwLjY0MjUxMTEsIC0xLjIwODA1NDVdLCBbNTAuNjQyNjE1MSwgLTEuMjA3ODc4NV0sIFs1MC42NDI5OTA1LCAtMS4yMDcyNTQ5XSwgWzUwLjY0MzA4NSwgLTEuMjA3MTE4OF0sIFs1MC42NDM1MjA3LCAtMS4yMDY1NjIxXSwgWzUwLjY0Mzc0NTQsIC0xLjIwNjI3NjZdLCBbNTAuNjQ0MDY5MiwgLTEuMjA1ODI3OF0sIFs1MC42NDQzMTc1LCAtMS4yMDU0NzI1XSwgWzUwLjY0NDQzNzksIC0xLjIwNTMyODNdLCBbNTAuNjQ0NjMzLCAtMS4yMDUxNjczXSwgWzUwLjY0NDk5MDIsIC0xLjIwNDgzNjFdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xNGRmNTY0MTE0NTk0MzMwODAwMzU2N2NjN2Y0YzZiYSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85OThlMTgwY2FlYTY0M2Y0OWRhZjBhMzRiZTNkMzg0NCA9ICQoJzxkaXYgaWQ9Imh0bWxfOTk4ZTE4MGNhZWE2NDNmNDlkYWYwYTM0YmUzZDM4NDQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJWZW50bm9yIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xNGRmNTY0MTE0NTk0MzMwODAwMzU2N2NjN2Y0YzZiYS5zZXRDb250ZW50KGh0bWxfOTk4ZTE4MGNhZWE2NDNmNDlkYWYwYTM0YmUzZDM4NDQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8yM2I5NWUzMjEwYWM0MzczYjYzZTVmYzlkYWIwNzI0Yy5iaW5kUG9wdXAocG9wdXBfMTRkZjU2NDExNDU5NDMzMDgwMDM1NjdjYzdmNGM2YmEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfYmNmMjc5NTFhNDhjNDllYmI4YTdhODEwMjA4OTQyZjEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQ0OTkwMiwgLTEuMjA0ODM2MV0sIFs1MC42NDUyMTA2LCAtMS4yMDUzMzg5XSwgWzUwLjY0NTMxNTEsIC0xLjIwNTQzNjldLCBbNTAuNjQ1NDM3NCwgLTEuMjA1NTM1M10sIFs1MC42NDU1ODY1LCAtMS4yMDU3MjQ4XSwgWzUwLjY0NTY2NSwgLTEuMjA1NjEwOV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2E5ZjIyZWUwYWNhZTQzNzI4YmQ3OGU4MzQwOTgyYmM5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2FmZjNiZWQ4MGYyZDQ2NmVhYzkxYTRjNjhjZmM0NTRmID0gJCgnPGRpdiBpZD0iaHRtbF9hZmYzYmVkODBmMmQ0NjZlYWM5MWE0YzY4Y2ZjNDU0ZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IlRoZSBCcmFtYmxlcyI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2E5ZjIyZWUwYWNhZTQzNzI4YmQ3OGU4MzQwOTgyYmM5LnNldENvbnRlbnQoaHRtbF9hZmYzYmVkODBmMmQ0NjZlYWM5MWE0YzY4Y2ZjNDU0Zik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2JjZjI3OTUxYTQ4YzQ5ZWJiOGE3YTgxMDIwODk0MmYxLmJpbmRQb3B1cChwb3B1cF9hOWYyMmVlMGFjYWU0MzcyOGJkNzhlODM0MDk4MmJjOSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV85NWQxOWJjNGNlNDY0YmQ1YTFkMGQ5MmEzZDllY2IyNSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NDQ5OTAyLCAtMS4yMDQ4MzYxXSwgWzUwLjY0NTM1NjcsIC0xLjIwNDUxOTVdLCBbNTAuNjQ1NDAxOSwgLTEuMjA0NDYzM10sIFs1MC42NDU0NTgsIC0xLjIwNDM2MTRdLCBbNTAuNjQ1NTg5OCwgLTEuMjA0MTg1N10sIFs1MC42NDU3MDcsIC0xLjIwNDA2NjddLCBbNTAuNjQ1ODA4NCwgLTEuMjAzOTg5MV0sIFs1MC42NDYwNjgyLCAtMS4yMDM3Mjc0XSwgWzUwLjY0NjE3OTMsIC0xLjIwMzYxNTVdLCBbNTAuNjQ2MzY4MSwgLTEuMjAzNDI5OF0sIFs1MC42NDY1MzczLCAtMS4yMDMyNjc2XSwgWzUwLjY0Njc4OSwgLTEuMjAyOTc5OV0sIFs1MC42NDY4ODc1LCAtMS4yMDI4ODg4XSwgWzUwLjY0NzAxNSwgLTEuMjAyODA0NF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzY2ZmI0YjFjYzc1NzQxNTg4ZTJhMzQ2MDgzZGRhMDNjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2RjMzU3Yjc3YTdhZDRkNDk5NjllYjZmNmU1ZDY1NTI2ID0gJCgnPGRpdiBpZD0iaHRtbF9kYzM1N2I3N2E3YWQ0ZDQ5OTY5ZWI2ZjZlNWQ2NTUyNiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IlZlbnRub3IgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzY2ZmI0YjFjYzc1NzQxNTg4ZTJhMzQ2MDgzZGRhMDNjLnNldENvbnRlbnQoaHRtbF9kYzM1N2I3N2E3YWQ0ZDQ5OTY5ZWI2ZjZlNWQ2NTUyNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzk1ZDE5YmM0Y2U0NjRiZDVhMWQwZDkyYTNkOWVjYjI1LmJpbmRQb3B1cChwb3B1cF82NmZiNGIxY2M3NTc0MTU4OGUyYTM0NjA4M2RkYTAzYyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9mYzY1NmNlOWUzYjM0NjkyOTlmNDI3NmFkMWZlMWVjOCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NDQ5OTAyLCAtMS4yMDQ4MzYxXSwgWzUwLjY0NDYzMywgLTEuMjA1MTY3M10sIFs1MC42NDQ0Mzc5LCAtMS4yMDUzMjgzXSwgWzUwLjY0NDMxNzUsIC0xLjIwNTQ3MjVdLCBbNTAuNjQ0MDY5MiwgLTEuMjA1ODI3OF0sIFs1MC42NDM3NDU0LCAtMS4yMDYyNzY2XSwgWzUwLjY0MzUyMDcsIC0xLjIwNjU2MjFdLCBbNTAuNjQzMDg1LCAtMS4yMDcxMTg4XSwgWzUwLjY0Mjk5MDUsIC0xLjIwNzI1NDldLCBbNTAuNjQyNjE1MSwgLTEuMjA3ODc4NV0sIFs1MC42NDI1MTExLCAtMS4yMDgwNTQ1XSwgWzUwLjY0MjI2NTQsIC0xLjIwODQzMzZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jYzk2MjhiNDAyYmI0OWM3YWRkYTlmYTljYzQzZTJjMyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wYjI3YTQxOTY0MDQ0MTg0YTVlMDk5ZGUzNmNmNDFhZCA9ICQoJzxkaXYgaWQ9Imh0bWxfMGIyN2E0MTk2NDA0NDE4NGE1ZTA5OWRlMzZjZjQxYWQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJWZW50bm9yIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jYzk2MjhiNDAyYmI0OWM3YWRkYTlmYTljYzQzZTJjMy5zZXRDb250ZW50KGh0bWxfMGIyN2E0MTk2NDA0NDE4NGE1ZTA5OWRlMzZjZjQxYWQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9mYzY1NmNlOWUzYjM0NjkyOTlmNDI3NmFkMWZlMWVjOC5iaW5kUG9wdXAocG9wdXBfY2M5NjI4YjQwMmJiNDljN2FkZGE5ZmE5Y2M0M2UyYzMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNjQ5YmU3ZTk1ODZkNDA5ODk5YTdkMDA2OGQ2NjljNGMgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQ2NzA5LCAtMS4xODUzNTA2XSwgWzUwLjY0Njc5MzUsIC0xLjE4NTM2MjZdLCBbNTAuNjQ2ODI1OSwgLTEuMTg1MzgwNF0sIFs1MC42NDcwMjA1LCAtMS4xODU1NTJdLCBbNTAuNjQ3MTUyMiwgLTEuMTg1NjcxNl0sIFs1MC42NDc0NTA0LCAtMS4xODU5MzgyXSwgWzUwLjY0NzY3MDcsIC0xLjE4NjA5MDhdLCBbNTAuNjQ3ODExMSwgLTEuMTg2MTg4N10sIFs1MC42NDc5ODkyLCAtMS4xODYyODE1XSwgWzUwLjY0ODIwNjksIC0xLjE4NjM4NjldLCBbNTAuNjQ4NDAwNCwgLTEuMTg2NDc4N10sIFs1MC42NDg1NDMyLCAtMS4xODY1Njk1XSwgWzUwLjY0ODc4MTEsIC0xLjE4Njg0MjhdLCBbNTAuNjQ5MDQ2MywgLTEuMTg3MTc0M10sIFs1MC42NDkyMTM3LCAtMS4xODczNzE2XSwgWzUwLjY0OTQ5MjksIC0xLjE4NzU2NDhdLCBbNTAuNjQ5NzAyOSwgLTEuMTg3NjI5Ml0sIFs1MC42NDk4NjE5LCAtMS4xODc2MjY1XSwgWzUwLjY1MDE5MDEsIC0xLjE4NzU4MzZdLCBbNTAuNjUwNTI1MSwgLTEuMTg3NTk1OV0sIFs1MC42NTA1OTEsIC0xLjE4NzU1NzRdLCBbNTAuNjUwODczLCAtMS4xODY4NTk0XSwgWzUwLjY1MTEwOTMsIC0xLjE4NjMwOTZdLCBbNTAuNjUxMjkyMiwgLTEuMTg1OTY0OV0sIFs1MC42NTE5MzI0LCAtMS4xODUyNDg3XSwgWzUwLjY1MjEzNzMsIC0xLjE4NDkyMjldLCBbNTAuNjUyMjk0LCAtMS4xODQ3NzU1XSwgWzUwLjY1MjU1NzYsIC0xLjE4NDYyOTFdLCBbNTAuNjUyODUxOSwgLTEuMTg0NTA1NV0sIFs1MC42NTI5MDkxLCAtMS4xODQ0ODE1XSwgWzUwLjY1MzI5MDcsIC0xLjE4NDMyNTRdLCBbNTAuNjUzMzI3NywgLTEuMTg0MzAzOV0sIFs1MC42NTM3NDc2LCAtMS4xODQwNzU1XSwgWzUwLjY1Mzg0NDIsIC0xLjE4Mzg3NzNdLCBbNTAuNjU0MDk0NCwgLTEuMTgzMTY5OF0sIFs1MC42NTQxNDMsIC0xLjE4MzAyNDldLCBbNTAuNjU0MzA4LCAtMS4xODI1NjQ2XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjU3NDJkNGExODhiNGRiNjliNmI2ODQ3Yjk3NDgyMmUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfY2YzMmQ1ZjVjMzhjNDllMTg4MjFlZGQwNzkyNzcyNmIgPSAkKCc8ZGl2IGlkPSJodG1sX2NmMzJkNWY1YzM4YzQ5ZTE4ODIxZWRkMDc5Mjc3MjZiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5bIlNjb3RjaGVsbHMgQnJvb2sgTGFuZSIsICJFbWJhc3N5IFdheSJdPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82NTc0MmQ0YTE4OGI0ZGI2OWI2YjY4NDdiOTc0ODIyZS5zZXRDb250ZW50KGh0bWxfY2YzMmQ1ZjVjMzhjNDllMTg4MjFlZGQwNzkyNzcyNmIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV82NDliZTdlOTU4NmQ0MDk4OTlhN2QwMDY4ZDY2OWM0Yy5iaW5kUG9wdXAocG9wdXBfNjU3NDJkNGExODhiNGRiNjliNmI2ODQ3Yjk3NDgyMmUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfYzQzMDQ2ZDRhOTJiNDJkYjgyOWQzNmU0MTAyZmMyN2MgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQ2NzA5LCAtMS4xODUzNTA2XSwgWzUwLjY0NjY5OTIsIC0xLjE4NTgyMTRdLCBbNTAuNjQ2Njg2NiwgLTEuMTg2MDQxMV0sIFs1MC42NDY2NjYxLCAtMS4xODYzOTgxXSwgWzUwLjY0NjYxNSwgLTEuMTg2ODc1MV0sIFs1MC42NDY1ODk3LCAtMS4xODc0NzQ4XSwgWzUwLjY0NjU5NzYsIC0xLjE4NzcxODVdLCBbNTAuNjQ2NjMzMywgLTEuMTg4Mzk3Nl0sIFs1MC42NDY2MzYyLCAtMS4xODg1OTE3XSwgWzUwLjY0NjYzOTIsIC0xLjE4ODc4NzNdLCBbNTAuNjQ2NjE1OCwgLTEuMTg5Mzc4XSwgWzUwLjY0NjU4OTcsIC0xLjE4OTkyNF0sIFs1MC42NDY1OTg3LCAtMS4xOTAyNTcxXSwgWzUwLjY0NjYwNTksIC0xLjE5MDUyNTRdLCBbNTAuNjQ2NjMxMSwgLTEuMTkxMjQwNF0sIFs1MC42NDY2ODk5LCAtMS4xOTIzOTE1XSwgWzUwLjY0NjcyNjIsIC0xLjE5MjgwNzldLCBbNTAuNjQ2ODE3MSwgLTEuMTkzNDY1M10sIFs1MC42NDY4MjI2LCAtMS4xOTM2NDk0XSwgWzUwLjY0NjgyNzEsIC0xLjE5MzgzMzRdLCBbNTAuNjQ2Nzg2NCwgLTEuMTk0MzYzOF0sIFs1MC42NDY3MDI1LCAtMS4xOTQ3NDE2XSwgWzUwLjY0NjY4MjksIC0xLjE5NDgzMzVdLCBbNTAuNjQ2NTc5NCwgLTEuMTk1Mjk5XSwgWzUwLjY0NjU2MjcsIC0xLjE5NTQyOTFdLCBbNTAuNjQ2NTM0MSwgLTEuMTk1NjUxNl0sIFs1MC42NDY0OTE1LCAtMS4xOTU5OTM5XSwgWzUwLjY0NjQ3NSwgLTEuMTk2MjA4N10sIFs1MC42NDY0NzI5LCAtMS4xOTY3NDI2XSwgWzUwLjY0NjQ2MTgsIC0xLjE5Nzc0MzZdLCBbNTAuNjQ2NDYxMSwgLTEuMTk3ODE5MV0sIFs1MC42NDY1NTksIC0xLjE5OTcyMV0sIFs1MC42NDY2MDQyLCAtMS4yMDAyNDQyXSwgWzUwLjY0NjY3NjgsIC0xLjIwMTEzNDZdLCBbNTAuNjQ2NzkzNSwgLTEuMjAxODUxNV0sIFs1MC42NDY4ODMyLCAtMS4yMDIzMDYxXSwgWzUwLjY0NzAxNSwgLTEuMjAyODA0NF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2M5YmY5YjQ4ZGQyNTRjNDdiMTBmNTgyYmRkODhkZmE5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzJlODk3NDZhZDgwNTQxN2Q4ODU1Mzk2YjhmYzJiYTM5ID0gJCgnPGRpdiBpZD0iaHRtbF8yZTg5NzQ2YWQ4MDU0MTdkODg1NTM5NmI4ZmMyYmEzOSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Ik5ld3BvcnQgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2M5YmY5YjQ4ZGQyNTRjNDdiMTBmNTgyYmRkODhkZmE5LnNldENvbnRlbnQoaHRtbF8yZTg5NzQ2YWQ4MDU0MTdkODg1NTM5NmI4ZmMyYmEzOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2M0MzA0NmQ0YTkyYjQyZGI4MjlkMzZlNDEwMmZjMjdjLmJpbmRQb3B1cChwb3B1cF9jOWJmOWI0OGRkMjU0YzQ3YjEwZjU4MmJkZDg4ZGZhOSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV80MWZlODliNzBiZjc0MDY0OTA4YWY0ZmM5NzA0NDg5OSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjQ4NDI1LCAtMS4yMDc3ODc4XSwgWzUwLjY2NDg1MjcsIC0xLjIwNzc3NTJdLCBbNTAuNjY0ODk5OSwgLTEuMjA3NzE3MV0sIFs1MC42NjUwMjI1LCAtMS4yMDc2MDZdLCBbNTAuNjY1Mjk3NiwgLTEuMjA3NDExMl1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2I3ZWQyYWFiZWQwMTQxMjRhODhkMTM5NDZkNGE4NjVhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2NkZDBhYjM0OTRhYzQ3ZmI4OTU0YzVjMzEwZmRjY2U5ID0gJCgnPGRpdiBpZD0iaHRtbF9jZGQwYWIzNDk0YWM0N2ZiODk1NGM1YzMxMGZkY2NlOSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkhpZ2ggU3RyZWV0IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYjdlZDJhYWJlZDAxNDEyNGE4OGQxMzk0NmQ0YTg2NWEuc2V0Q29udGVudChodG1sX2NkZDBhYjM0OTRhYzQ3ZmI4OTU0YzVjMzEwZmRjY2U5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNDFmZTg5YjcwYmY3NDA2NDkwOGFmNGZjOTcwNDQ4OTkuYmluZFBvcHVwKHBvcHVwX2I3ZWQyYWFiZWQwMTQxMjRhODhkMTM5NDZkNGE4NjVhKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2FlODYwMzM1ZGYxYTRlOWE4OGUyNDJhYTJmNTE4ZjI0ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NDg0MjUsIC0xLjIwNzc4NzhdLCBbNTAuNjY0NzM1NywgLTEuMjA3NjgwOV0sIFs1MC42NjQyNzg5LCAtMS4yMDc2MjU4XSwgWzUwLjY2NDE3OTQsIC0xLjIwNzU3NjFdLCBbNTAuNjY0MDg2NiwgLTEuMjA3NDAwMV0sIFs1MC42NjQwNzcxLCAtMS4yMDcxNjI1XSwgWzUwLjY2NDA3NDcsIC0xLjIwNjg5NzFdLCBbNTAuNjY0MTEzMSwgLTEuMjA2MzkzMV0sIFs1MC42NjQwNjMyLCAtMS4yMDU4NTUxXSwgWzUwLjY2Mzk3NjEsIC0xLjIwNTQ0MzhdLCBbNTAuNjYzNDI1MiwgLTEuMjAzODcwOV0sIFs1MC42NjMzNzU4LCAtMS4yMDM2NzE1XSwgWzUwLjY2MzM2MDQsIC0xLjIwMzQ5MTddLCBbNTAuNjYzMzM5LCAtMS4yMDMyMzc2XSwgWzUwLjY2MzM3MDEsIC0xLjIwMzExNTldLCBbNTAuNjYzNDMyNCwgLTEuMjAyODQ1XSwgWzUwLjY2MzQ0NjIsIC0xLjIwMjczMl0sIFs1MC42NjM0MjY5LCAtMS4yMDI2MTQ1XSwgWzUwLjY2MzQwNTUsIC0xLjIwMjUyNzddLCBbNTAuNjYzMzM4NSwgLTEuMjAyMzczNF0sIFs1MC42NjI5OTQ2LCAtMS4yMDE3OTA2XSwgWzUwLjY2MjMyNTcsIC0xLjIwMDYyMDVdLCBbNTAuNjYyMjA1NSwgLTEuMjAwNDcyNF0sIFs1MC42NjE4OTcyLCAtMS4yMDAxMTk2XSwgWzUwLjY2MTgzNjksIC0xLjIwMDAyOTddLCBbNTAuNjYxNTQzNiwgLTEuMTk4NzgwOV0sIFs1MC42NjEyNzQ0LCAtMS4xOTc5MjU5XSwgWzUwLjY2MTI1NDMsIC0xLjE5Nzg4MThdLCBbNTAuNjYxMDMsIC0xLjE5NzM5MTRdLCBbNTAuNjYwNzEzNiwgLTEuMTk3MDM2OF0sIFs1MC42NjAyODgxLCAtMS4xOTY0NTM5XSwgWzUwLjY1OTgyNTksIC0xLjE5NTk1MjldLCBbNTAuNjU5MjEzMiwgLTEuMTk1MzU2MV0sIFs1MC42NTkxNjE5LCAtMS4xOTUzMzg3XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYWYxMWM5ZWMyN2E4NDMxMmE5ZmM1ZGY5M2M3YjNiNWEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZjJmNDgwMTZlMzIxNDkwNWIwMGJiNjMzYTlhMzQ3MDYgPSAkKCc8ZGl2IGlkPSJodG1sX2YyZjQ4MDE2ZTMyMTQ5MDViMDBiYjYzM2E5YTM0NzA2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5bIlBhbG1lcnMgTGFuZSIsICJTa2lubmVycyBMYW5lIl08L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2FmMTFjOWVjMjdhODQzMTJhOWZjNWRmOTNjN2IzYjVhLnNldENvbnRlbnQoaHRtbF9mMmY0ODAxNmUzMjE0OTA1YjAwYmI2MzNhOWEzNDcwNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2FlODYwMzM1ZGYxYTRlOWE4OGUyNDJhYTJmNTE4ZjI0LmJpbmRQb3B1cChwb3B1cF9hZjExYzllYzI3YTg0MzEyYTlmYzVkZjkzYzdiM2I1YSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV81NWM4MGQ5MzEzODg0YmVjYjViNzY5MTE4ZmFjMGEyMyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjQ4NDI1LCAtMS4yMDc3ODc4XSwgWzUwLjY2NDc2MiwgLTEuMjA3ODkxMV0sIFs1MC42NjQ2NDg0LCAtMS4yMDgwMzE5XSwgWzUwLjY2NDUzMywgLTEuMjA4MjI2N11dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzczZGI3ZTUxMjgxMjQwZTBiMDc3YWMyMmJhNDZkY2RmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzVlZjE3NGM0OWI4YjRmMTE4ZDJjODY1MzdmODdkMTYyID0gJCgnPGRpdiBpZD0iaHRtbF81ZWYxNzRjNDliOGI0ZjExOGQyYzg2NTM3Zjg3ZDE2MiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IldpbmZvcmQgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzczZGI3ZTUxMjgxMjQwZTBiMDc3YWMyMmJhNDZkY2RmLnNldENvbnRlbnQoaHRtbF81ZWYxNzRjNDliOGI0ZjExOGQyYzg2NTM3Zjg3ZDE2Mik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzU1YzgwZDkzMTM4ODRiZWNiNWI3NjkxMThmYWMwYTIzLmJpbmRQb3B1cChwb3B1cF83M2RiN2U1MTI4MTI0MGUwYjA3N2FjMjJiYTQ2ZGNkZik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9jYzYzZDkzMWM4Y2Q0ZDMxOTM4NTlhMDNiY2NiMWY5MiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTM2NzE1LCAtMS4yMDAxNTA0XSwgWzUwLjY1MjIwNzEsIC0xLjIwMDEyNjVdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83OTA2MmI2ZDVmZGQ0ZjNhOTU3ODc5YTMxZDc4MTQxNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82ODI0Y2M5MmMyMjI0MGJjYmFiODE4NTY2MTFkYjVjMyA9ICQoJzxkaXYgaWQ9Imh0bWxfNjgyNGNjOTJjMjIyNDBiY2JhYjgxODU2NjExZGI1YzMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJBbHZlcnN0b25lIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83OTA2MmI2ZDVmZGQ0ZjNhOTU3ODc5YTMxZDc4MTQxNi5zZXRDb250ZW50KGh0bWxfNjgyNGNjOTJjMjIyNDBiY2JhYjgxODU2NjExZGI1YzMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9jYzYzZDkzMWM4Y2Q0ZDMxOTM4NTlhMDNiY2NiMWY5Mi5iaW5kUG9wdXAocG9wdXBfNzkwNjJiNmQ1ZmRkNGYzYTk1Nzg3OWEzMWQ3ODE0MTYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNmQ1ZTVkMDk4NzE2NGRhNWI2MDU3MzExMjM2MDdiYjEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUzNjcxNSwgLTEuMjAwMTUwNF0sIFs1MC42NTM2NjEsIC0xLjIwMDQ2NzZdLCBbNTAuNjUzNjQyNSwgLTEuMjAwNzQyMV0sIFs1MC42NTM1NDI5LCAtMS4yMDEwODQzXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNGJlYzU2N2IyMzEzNGUyMmJiYWNjMTJkMWY5YzhmMjUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDJiOGNmODk0MWY4NDQ5Y2JmYmU5ZWQ5MTVmZjhjZDYgPSAkKCc8ZGl2IGlkPSJodG1sXzAyYjhjZjg5NDFmODQ0OWNiZmJlOWVkOTE1ZmY4Y2Q2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQ2hhbWJlcnMgRHJpdmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80YmVjNTY3YjIzMTM0ZTIyYmJhY2MxMmQxZjljOGYyNS5zZXRDb250ZW50KGh0bWxfMDJiOGNmODk0MWY4NDQ5Y2JmYmU5ZWQ5MTVmZjhjZDYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV82ZDVlNWQwOTg3MTY0ZGE1YjYwNTczMTEyMzYwN2JiMS5iaW5kUG9wdXAocG9wdXBfNGJlYzU2N2IyMzEzNGUyMmJiYWNjMTJkMWY5YzhmMjUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNTUwMTAyMWY2Y2E1NGI2OWFhNjY3ZTI0NWVkYzUzNWEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUzNjcxNSwgLTEuMjAwMTUwNF0sIFs1MC42NTM5NjUzLCAtMS4yMDAxNTQ0XSwgWzUwLjY1NDY0ODMsIC0xLjIwMDE4ODFdLCBbNTAuNjU0OTMwMywgLTEuMjAwMjE0OF0sIFs1MC42NTU0MTY1LCAtMS4yMDAyNjU2XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDRkZjM0MjhkMjIyNDZjMGI3ZWFmMDQ1OWQ4MTE5ZTEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTdhMDBhOTM1M2U0NDAzY2E1Njk0YzYxOWQ1NzEyYjMgPSAkKCc8ZGl2IGlkPSJodG1sX2E3YTAwYTkzNTNlNDQwM2NhNTY5NGM2MTlkNTcxMmIzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQWx2ZXJzdG9uZSBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMDRkZjM0MjhkMjIyNDZjMGI3ZWFmMDQ1OWQ4MTE5ZTEuc2V0Q29udGVudChodG1sX2E3YTAwYTkzNTNlNDQwM2NhNTY5NGM2MTlkNTcxMmIzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNTUwMTAyMWY2Y2E1NGI2OWFhNjY3ZTI0NWVkYzUzNWEuYmluZFBvcHVwKHBvcHVwXzA0ZGYzNDI4ZDIyMjQ2YzBiN2VhZjA0NTlkODExOWUxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2RmYzBiZmE3YmE2YTQ0MTY4YWU0ODE1NmQwMzZhZDZlID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MjIwNzEsIC0xLjIwMDEyNjVdLCBbNTAuNjUyMjMwMSwgLTEuMjAwNzkzNF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzk4M2JmMDMyYjJjMDQwZjdiYjkyOWI1MzIyOTJhZTJkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzlkMzczOTcwZDRhYTRiOGNhMjA3ZGY5NzM1MmM3OGRlID0gJCgnPGRpdiBpZD0iaHRtbF85ZDM3Mzk3MGQ0YWE0YjhjYTIwN2RmOTczNTJjNzhkZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IlBhcmt3YXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85ODNiZjAzMmIyYzA0MGY3YmI5MjliNTMyMjkyYWUyZC5zZXRDb250ZW50KGh0bWxfOWQzNzM5NzBkNGFhNGI4Y2EyMDdkZjk3MzUyYzc4ZGUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9kZmMwYmZhN2JhNmE0NDE2OGFlNDgxNTZkMDM2YWQ2ZS5iaW5kUG9wdXAocG9wdXBfOTgzYmYwMzJiMmMwNDBmN2JiOTI5YjUzMjI5MmFlMmQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMWM4NjI1MDBlZDczNGE2ZmJkZWRlNTcyOWZhODRhMDMgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUyMjA3MSwgLTEuMjAwMTI2NV0sIFs1MC42NTM2NzE1LCAtMS4yMDAxNTA0XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTYxNzhkNGY2YzhhNGEyYmJhNmIzNDM0YjcxNmJlNzggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjdiZjVhZTgxYjJhNDgxZWFkMDRkNDllYWJiNDBiMjEgPSAkKCc8ZGl2IGlkPSJodG1sXzI3YmY1YWU4MWIyYTQ4MWVhZDA0ZDQ5ZWFiYjQwYjIxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQWx2ZXJzdG9uZSBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTYxNzhkNGY2YzhhNGEyYmJhNmIzNDM0YjcxNmJlNzguc2V0Q29udGVudChodG1sXzI3YmY1YWU4MWIyYTQ4MWVhZDA0ZDQ5ZWFiYjQwYjIxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMWM4NjI1MDBlZDczNGE2ZmJkZWRlNTcyOWZhODRhMDMuYmluZFBvcHVwKHBvcHVwXzE2MTc4ZDRmNmM4YTRhMmJiYTZiMzQzNGI3MTZiZTc4KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2JiYjVkN2IwZjU2MDRjMTVhMjkyMjI2ZWEwODM4MThkID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MjIwNzEsIC0xLjIwMDEyNjVdLCBbNTAuNjUxOTc4MSwgLTEuMjAwMTQzMV0sIFs1MC42NTE4MjU2LCAtMS4yMDAxNzQ0XSwgWzUwLjY1MTY0NDgsIC0xLjIwMDI2NTRdLCBbNTAuNjUxNDkxNywgLTEuMjAwMzY1XSwgWzUwLjY1MTMzOTcsIC0xLjIwMDQ4NTZdLCBbNTAuNjUwMjk2NSwgLTEuMjAxNDYyN10sIFs1MC42NTAwODIzLCAtMS4yMDE2ODAyXSwgWzUwLjY0OTYxNjgsIC0xLjIwMjEyOF0sIFs1MC42NDkzMTAyLCAtMS4yMDIzOTNdLCBbNTAuNjQ5MTQwOCwgLTEuMjAyNDk4NF0sIFs1MC42NDg5Mjk4LCAtMS4yMDI1NjU2XSwgWzUwLjY0Nzk2MjgsIC0xLjIwMjY3N10sIFs1MC42NDczMTEsIC0xLjIwMjc2ODFdLCBbNTAuNjQ3MTQzNywgLTEuMjAyNzg4MV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzU5MDcwNzQyM2E2NzQwNTU5ZjIzMmM2ZDNjOWVjZmI0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzQ5YTE0ZDM4NzAzNjRiZjVhNjkzYzUwNzY1M2RjNGEyID0gJCgnPGRpdiBpZD0iaHRtbF80OWExNGQzODcwMzY0YmY1YTY5M2M1MDc2NTNkYzRhMiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkFsdmVyc3RvbmUgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzU5MDcwNzQyM2E2NzQwNTU5ZjIzMmM2ZDNjOWVjZmI0LnNldENvbnRlbnQoaHRtbF80OWExNGQzODcwMzY0YmY1YTY5M2M1MDc2NTNkYzRhMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2JiYjVkN2IwZjU2MDRjMTVhMjkyMjI2ZWEwODM4MThkLmJpbmRQb3B1cChwb3B1cF81OTA3MDc0MjNhNjc0MDU1OWYyMzJjNmQzYzllY2ZiNCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8yMDk3Mjc4ZjllMzM0N2IxYTQ0MGU2NmQxOWMzZTIzNSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjE4Mjk1LCAtMS4xODg1Mzg1XSwgWzUwLjY2MTkyMSwgLTEuMTg4NjAxM10sIFs1MC42NjIxMDYzLCAtMS4xODg0NjE0XSwgWzUwLjY2MjEzMiwgLTEuMTg4NDQyOV0sIFs1MC42NjIyMDk1LCAtMS4xODg0NjE0XSwgWzUwLjY2MjI3ODEsIC0xLjE4ODgxNDJdLCBbNTAuNjYyMzUyLCAtMS4xODkyNDc4XSwgWzUwLjY2MjQzOTUsIC0xLjE5MDIwMzldLCBbNTAuNjYyNDYzNCwgLTEuMTkwNDY1NV0sIFs1MC42NjI0ODMxLCAtMS4xOTA1OTE3XSwgWzUwLjY2MjYzODUsIC0xLjE5MTQ3NThdLCBbNTAuNjYyNjg0OCwgLTEuMTkxNjQzNF0sIFs1MC42NjI3NTUxLCAtMS4xOTE4MDQyXSwgWzUwLjY2MjgyNzgsIC0xLjE5MTg3OTldLCBbNTAuNjYyODkyOCwgLTEuMTkxOTAxNF0sIFs1MC42NjI5MjcyLCAtMS4xOTE5MTI3XSwgWzUwLjY2MzAzMzUsIC0xLjE5MjAwNjhdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85MmYzNmUzM2JkNTk0NWM2OWY0NmNjYThhMDMxOTc3MyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xMjU0YTBiNTYwOWM0NGU3OWJiZTM1MGUzNzJlYmY1YyA9ICQoJzxkaXYgaWQ9Imh0bWxfMTI1NGEwYjU2MDljNDRlNzliYmUzNTBlMzcyZWJmNWMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJZb3VuZ3dvb2RzIFdheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzkyZjM2ZTMzYmQ1OTQ1YzY5ZjQ2Y2NhOGEwMzE5NzczLnNldENvbnRlbnQoaHRtbF8xMjU0YTBiNTYwOWM0NGU3OWJiZTM1MGUzNzJlYmY1Yyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzIwOTcyNzhmOWUzMzQ3YjFhNDQwZTY2ZDE5YzNlMjM1LmJpbmRQb3B1cChwb3B1cF85MmYzNmUzM2JkNTk0NWM2OWY0NmNjYThhMDMxOTc3Myk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV83ZTRhNjQ2NDJkY2M0NDZkYTAxMzY1ODY0NjczYzU3MCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjE4Mjk1LCAtMS4xODg1Mzg1XSwgWzUwLjY2MTY3NTIsIC0xLjE4ODc1NzZdLCBbNTAuNjYxNDI0LCAtMS4xODkxMTQyXSwgWzUwLjY2MTEwMTYsIC0xLjE4OTU5OTJdLCBbNTAuNjYwODM4OSwgLTEuMTkwMDc5M10sIFs1MC42NjA2ODMzLCAtMS4xOTAzOTk4XSwgWzUwLjY2MDU4ODksIC0xLjE5MDU0Ml0sIFs1MC42NjA0ODUsIC0xLjE5MDY1ODddLCBbNTAuNjYwNDUxMSwgLTEuMTkwNjgzMV0sIFs1MC42NjAyNTU5LCAtMS4xOTA4MDg0XSwgWzUwLjY2MDE4MzYsIC0xLjE5MDg0NDJdLCBbNTAuNjYwMDEwOCwgLTEuMTkwOTM2M10sIFs1MC42NTk4NzgyLCAtMS4xOTEwNDYzXSwgWzUwLjY1OTcwNDcsIC0xLjE5MTIwNDVdLCBbNTAuNjU5NTQzNywgLTEuMTkxMjkyNl0sIFs1MC42NTk0MzQ4LCAtMS4xOTEzMzAxXSwgWzUwLjY1OTIyNzcsIC0xLjE5MTQxNjFdLCBbNTAuNjU5MDk3NywgLTEuMTkxNTU0XSwgWzUwLjY1ODk5NzEsIC0xLjE5MTczNTVdLCBbNTAuNjU4ODI4MiwgLTEuMTkyNDkxOV0sIFs1MC42NTg3MTgyLCAtMS4xOTMzMzM3XSwgWzUwLjY1ODc0NTksIC0xLjE5NDAwMTJdLCBbNTAuNjU4Nzk0NCwgLTEuMTk0NDQ1OF0sIFs1MC42NTg4NDQzLCAtMS4xOTQ2MDcxXSwgWzUwLjY1ODkxMDUsIC0xLjE5NDc4MjddLCBbNTAuNjU4OTE4OCwgLTEuMTk0ODA3OF0sIFs1MC42NTkwMDg1LCAtMS4xOTUwMTMxXSwgWzUwLjY1OTE0MTgsIC0xLjE5NTI3MDNdLCBbNTAuNjU5MTYxOSwgLTEuMTk1MzM4N11dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzg4OGYzOGY2MGFlNDRiM2ZhN2ZhYTgyOTExNTNkZGZhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2JmZDI0NTljZTY0MDRjOGZiOTdjNGVmMGJiNDZkOTE2ID0gJCgnPGRpdiBpZD0iaHRtbF9iZmQyNDU5Y2U2NDA0YzhmYjk3YzRlZjBiYjQ2ZDkxNiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkFsdmVyc3RvbmUgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzg4OGYzOGY2MGFlNDRiM2ZhN2ZhYTgyOTExNTNkZGZhLnNldENvbnRlbnQoaHRtbF9iZmQyNDU5Y2U2NDA0YzhmYjk3YzRlZjBiYjQ2ZDkxNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzdlNGE2NDY0MmRjYzQ0NmRhMDEzNjU4NjQ2NzNjNTcwLmJpbmRQb3B1cChwb3B1cF84ODhmMzhmNjBhZTQ0YjNmYTdmYWE4MjkxMTUzZGRmYSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8zOWI4OTIzYWY0MzA0MzM4YWNlMzVlZWY2MDgyOGMwMSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjE4Mjk1LCAtMS4xODg1Mzg1XSwgWzUwLjY2MTkzOTgsIC0xLjE4ODMyNTVdLCBbNTAuNjYyMTIyOCwgLTEuMTg3OTU1N10sIFs1MC42NjI0MjU5LCAtMS4xODc1NTY5XSwgWzUwLjY2MjYxMzYsIC0xLjE4NzMzMTddLCBbNTAuNjYyNzIzNSwgLTEuMTg3MTk5OV0sIFs1MC42NjMyNTEzLCAtMS4xODY3MzkzXSwgWzUwLjY2MzQxNDYsIC0xLjE4NjU3NDRdLCBbNTAuNjYzNTI1OCwgLTEuMTg2NDYyMl0sIFs1MC42NjM2NjYyLCAtMS4xODYzMjA5XSwgWzUwLjY2MzgzMjgsIC0xLjE4NjE0MzldLCBbNTAuNjY0Mjk4MSwgLTEuMTg1NzY1OV0sIFs1MC42NjQ0NzQ3LCAtMS4xODU2Mzc3XSwgWzUwLjY2NDgyMjUsIC0xLjE4NTQyNTVdLCBbNTAuNjY0OTI3NywgLTEuMTg1MzYxM10sIFs1MC42NjQ5ODIzLCAtMS4xODUzMjQ1XSwgWzUwLjY2NTM4MDksIC0xLjE4NTA2MjVdLCBbNTAuNjY1NTk0NiwgLTEuMTg0ODk5NF0sIFs1MC42NjU3NjMxLCAtMS4xODQ3NjQzXSwgWzUwLjY2NTc5MTEsIC0xLjE4NDc0MThdLCBbNTAuNjY1ODA3NiwgLTEuMTg0NzI4Nl0sIFs1MC42NjU4OTM0LCAtMS4xODQ2Mjk0XSwgWzUwLjY2NTk5MTgsIC0xLjE4NDU0OTJdLCBbNTAuNjY2MjAzNiwgLTEuMTg0MzMzM10sIFs1MC42NjYzODU2LCAtMS4xODQxOTY4XSwgWzUwLjY2NjUzMDgsIC0xLjE4NDA4NjNdLCBbNTAuNjY2NjI1OSwgLTEuMTg0MDM3Ml0sIFs1MC42NjY3MjgsIC0xLjE4Mzk4NDRdLCBbNTAuNjY2OTE5NiwgLTEuMTgzOTI0OF0sIFs1MC42NjY5NTEzLCAtMS4xODM5MTY4XSwgWzUwLjY2NzAwNDIsIC0xLjE4MzkwNTZdLCBbNTAuNjY3MTEzMSwgLTEuMTgzODc5NF0sIFs1MC42NjcyNjU3LCAtMS4xODM4NDhdLCBbNTAuNjY3NTIxNCwgLTEuMTgzODU0NF0sIFs1MC42Njc2NTgyLCAtMS4xODM4MTc4XSwgWzUwLjY2NzgxMjQsIC0xLjE4MzY5NDldLCBbNTAuNjY4NTcsIC0xLjE4MzAyNzRdLCBbNTAuNjY4NzQxOCwgLTEuMTgyODc2OF0sIFs1MC42Njg4OTQ1LCAtMS4xODI2Nzc1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDUzNTUzNjBhMDkzNDE4YzhmMjQ4ZjMyNTY1MmFmNDcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMWU4NzgzM2ViMGFmNDhiM2I0YTc4YWRlYmYwMmFjNDMgPSAkKCc8ZGl2IGlkPSJodG1sXzFlODc4MzNlYjBhZjQ4YjNiNGE3OGFkZWJmMDJhYzQzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5bIkFsdmVyc3RvbmUgU2h1dGUiLCAiTWFpbiBSb2FkIiwgIkFsdmVyc3RvbmUgQnJpZGdlIl08L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzA1MzU1MzYwYTA5MzQxOGM4ZjI0OGYzMjU2NTJhZjQ3LnNldENvbnRlbnQoaHRtbF8xZTg3ODMzZWIwYWY0OGIzYjRhNzhhZGViZjAyYWM0Myk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzM5Yjg5MjNhZjQzMDQzMzhhY2UzNWVlZjYwODI4YzAxLmJpbmRQb3B1cChwb3B1cF8wNTM1NTM2MGEwOTM0MThjOGYyNDhmMzI1NjUyYWY0Nyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8xMTgxYWMwMzFkZDA0NDc1OTFlZGQyZWVkY2U4NWU1MSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjMwMzM1LCAtMS4xOTIwMDY4XSwgWzUwLjY2NjA3ODUsIC0xLjE4ODY5MTZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85YjJjYTY0NTFlNDM0NTUyOGIyMWQ2ZjhlNzhhNDE1YiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82MGMyMTdkYzM0ZjQ0Y2FkODE5Nzc3ZDFjMTdlZWY1YiA9ICQoJzxkaXYgaWQ9Imh0bWxfNjBjMjE3ZGMzNGY0NGNhZDgxOTc3N2QxYzE3ZWVmNWIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJZb3VuZ3dvb2RzIFdheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzliMmNhNjQ1MWU0MzQ1NTI4YjIxZDZmOGU3OGE0MTViLnNldENvbnRlbnQoaHRtbF82MGMyMTdkYzM0ZjQ0Y2FkODE5Nzc3ZDFjMTdlZWY1Yik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzExODFhYzAzMWRkMDQ0NzU5MWVkZDJlZWRjZTg1ZTUxLmJpbmRQb3B1cChwb3B1cF85YjJjYTY0NTFlNDM0NTUyOGIyMWQ2ZjhlNzhhNDE1Yik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8wYmU4NTI4ZDYwZGI0MmYxOTk0OWI3NTkzNzBkMTE3YiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjMwMzM1LCAtMS4xOTIwMDY4XSwgWzUwLjY2MzUwOTgsIC0xLjE5MzQzNDZdLCBbNTAuNjYzNjk0NywgLTEuMTkzNjgxNl0sIFs1MC42NjM4MDI0LCAtMS4xOTM3MTU4XSwgWzUwLjY2Mzk5MTUsIC0xLjE5MzU2NDZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82MzQ2ZmEyZTVkNGU0OWEwOGM3NzUzZmJiYzIyMDdhMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80ZjJhNzNjZDdlMmE0MzFiOWRkODNjMjNmMTYwYTJjZSA9ICQoJzxkaXYgaWQ9Imh0bWxfNGYyYTczY2Q3ZTJhNDMxYjlkZDgzYzIzZjE2MGEyY2UiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXb29kc2lkZSBBdmVudWUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82MzQ2ZmEyZTVkNGU0OWEwOGM3NzUzZmJiYzIyMDdhMS5zZXRDb250ZW50KGh0bWxfNGYyYTczY2Q3ZTJhNDMxYjlkZDgzYzIzZjE2MGEyY2UpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8wYmU4NTI4ZDYwZGI0MmYxOTk0OWI3NTkzNzBkMTE3Yi5iaW5kUG9wdXAocG9wdXBfNjM0NmZhMmU1ZDRlNDlhMDhjNzc1M2ZiYmMyMjA3YTEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNTBmZjZmNmIyNWQ2NGRmN2JjZDRiNzBjMWI5NmEyZWIgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjYzMDMzNSwgLTEuMTkyMDA2OF0sIFs1MC42NjI5MjcyLCAtMS4xOTE5MTI3XSwgWzUwLjY2Mjg5MjgsIC0xLjE5MTkwMTRdLCBbNTAuNjYyODI3OCwgLTEuMTkxODc5OV0sIFs1MC42NjI3NTUxLCAtMS4xOTE4MDQyXSwgWzUwLjY2MjY4NDgsIC0xLjE5MTY0MzRdLCBbNTAuNjYyNjM4NSwgLTEuMTkxNDc1OF0sIFs1MC42NjI0ODMxLCAtMS4xOTA1OTE3XSwgWzUwLjY2MjQ2MzQsIC0xLjE5MDQ2NTVdLCBbNTAuNjYyNDM5NSwgLTEuMTkwMjAzOV0sIFs1MC42NjIzNTIsIC0xLjE4OTI0NzhdLCBbNTAuNjYyMjc4MSwgLTEuMTg4ODE0Ml0sIFs1MC42NjIyMDk1LCAtMS4xODg0NjE0XSwgWzUwLjY2MjEzMiwgLTEuMTg4NDQyOV0sIFs1MC42NjIxMDYzLCAtMS4xODg0NjE0XSwgWzUwLjY2MTkyMSwgLTEuMTg4NjAxM10sIFs1MC42NjE4Mjk1LCAtMS4xODg1Mzg1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNTMyMTU4OGQ4ZWVkNGY1MTg3NmJlMzIwYjcyNTI4NTAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmY3MTcyNWUwMDhlNGFhZmIzZjMwNDE1YWI3ODkzOTIgPSAkKCc8ZGl2IGlkPSJodG1sXzJmNzE3MjVlMDA4ZTRhYWZiM2YzMDQxNWFiNzg5MzkyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iWW91bmd3b29kcyBXYXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81MzIxNTg4ZDhlZWQ0ZjUxODc2YmUzMjBiNzI1Mjg1MC5zZXRDb250ZW50KGh0bWxfMmY3MTcyNWUwMDhlNGFhZmIzZjMwNDE1YWI3ODkzOTIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV81MGZmNmY2YjI1ZDY0ZGY3YmNkNGI3MGMxYjk2YTJlYi5iaW5kUG9wdXAocG9wdXBfNTMyMTU4OGQ4ZWVkNGY1MTg3NmJlMzIwYjcyNTI4NTApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZDRiZGE0YjAyNmQwNDMyNzhlYjY5MWMxNTEwOGVmMWEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjYzOTkxNSwgLTEuMTkzNTY0Nl0sIFs1MC42NjM4MDI0LCAtMS4xOTM3MTU4XSwgWzUwLjY2MzY5NDcsIC0xLjE5MzY4MTZdLCBbNTAuNjYzNTA5OCwgLTEuMTkzNDM0Nl0sIFs1MC42NjMwMzM1LCAtMS4xOTIwMDY4XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYWQ4YjhlMTAxNmFlNDAxMGJkOWE4ZmJjOTI4Y2M0NWIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOTllYzQ2N2IxODMzNDRmNmI1M2ExMzdlMzBjNWI1MWMgPSAkKCc8ZGl2IGlkPSJodG1sXzk5ZWM0NjdiMTgzMzQ0ZjZiNTNhMTM3ZTMwYzViNTFjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV29vZHNpZGUgQXZlbnVlIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYWQ4YjhlMTAxNmFlNDAxMGJkOWE4ZmJjOTI4Y2M0NWIuc2V0Q29udGVudChodG1sXzk5ZWM0NjdiMTgzMzQ0ZjZiNTNhMTM3ZTMwYzViNTFjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfZDRiZGE0YjAyNmQwNDMyNzhlYjY5MWMxNTEwOGVmMWEuYmluZFBvcHVwKHBvcHVwX2FkOGI4ZTEwMTZhZTQwMTBiZDlhOGZiYzkyOGNjNDViKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2Q5ZGI2YTQxZTMxODRlZTZhNWRhOWE0MTEwYmRlODA4ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NDE1ODQsIC0xLjE5MjQ4MTddLCBbNTAuNjY0OTIyOCwgLTEuMTkxNTQ2OV0sIFs1MC42NjUwNTE1LCAtMS4xOTE0NjcyXSwgWzUwLjY2NTIyODUsIC0xLjE5MTUwMTJdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81ODY4ZTBmZWE5NWY0NzM2OGU3YTZkYmYwMmU2OTRjZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mZjE0ZDIwMjY0Mzg0M2RmYjMxNjkxMzY1ZTMwNzJiNyA9ICQoJzxkaXYgaWQ9Imh0bWxfZmYxNGQyMDI2NDM4NDNkZmIzMTY5MTM2NWUzMDcyYjciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJIb2xsb3dvb2QgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzU4NjhlMGZlYTk1ZjQ3MzY4ZTdhNmRiZjAyZTY5NGNlLnNldENvbnRlbnQoaHRtbF9mZjE0ZDIwMjY0Mzg0M2RmYjMxNjkxMzY1ZTMwNzJiNyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2Q5ZGI2YTQxZTMxODRlZTZhNWRhOWE0MTEwYmRlODA4LmJpbmRQb3B1cChwb3B1cF81ODY4ZTBmZWE5NWY0NzM2OGU3YTZkYmYwMmU2OTRjZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV81YmIyNThjMzdjMTk0MmY4OTc2ODJkNGY0MjY1MTQyMyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjUyMjg1LCAtMS4xOTE1MDEyXSwgWzUwLjY2NTIwNzMsIC0xLjE5MTgzNzldLCBbNTAuNjY1MjIxLCAtMS4xOTIzNjg0XSwgWzUwLjY2NDk0MDMsIC0xLjE5Mjc3NV0sIFs1MC42NjQ2NjQxLCAtMS4xOTMzMTk1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMWViN2E2MTk2NGE3NDA4YjkxZDY0OTY0YjMxOGI4ZjggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMGZkZWI5OGI3MjBjNGFjYjk4YjkwMWZmMTUwNzlhM2IgPSAkKCc8ZGl2IGlkPSJodG1sXzBmZGViOThiNzIwYzRhY2I5OGI5MDFmZjE1MDc5YTNiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iWW91bmd3b29kcyBDb3BzZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzFlYjdhNjE5NjRhNzQwOGI5MWQ2NDk2NGIzMThiOGY4LnNldENvbnRlbnQoaHRtbF8wZmRlYjk4YjcyMGM0YWNiOThiOTAxZmYxNTA3OWEzYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzViYjI1OGMzN2MxOTQyZjg5NzY4MmQ0ZjQyNjUxNDIzLmJpbmRQb3B1cChwb3B1cF8xZWI3YTYxOTY0YTc0MDhiOTFkNjQ5NjRiMzE4YjhmOCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV82YmFmYTAyMWIxZDA0Mjc4OGQ3ZmY4Njk2N2U5ZWI2YyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjUyMjg1LCAtMS4xOTE1MDEyXSwgWzUwLjY2NTM1ODIsIC0xLjE5MTE4NjZdLCBbNTAuNjY1NTUyNywgLTEuMTkwOTczNV0sIFs1MC42NjU5NTE5LCAtMS4xOTA3NjA1XSwgWzUwLjY2NjUzMywgLTEuMTkwMDUyNV0sIFs1MC42NjY2MzUsIC0xLjE4OTY4NjddLCBbNTAuNjY2NDc3MywgLTEuMTg5MTU5OV0sIFs1MC42NjYwNzg1LCAtMS4xODg2OTE2XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDUxMzllYjg0ODc0NDJhODliNzlmNmU5YzJhMmNjODcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNjg2ZmMwODkzMzYzNGE1NDg5MmY3ODU4MzRkNzNlN2QgPSAkKCc8ZGl2IGlkPSJodG1sXzY4NmZjMDg5MzM2MzRhNTQ4OTJmNzg1ODM0ZDczZTdkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iWW91bmd3b29kcyBDb3BzZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzA1MTM5ZWI4NDg3NDQyYTg5Yjc5ZjZlOWMyYTJjYzg3LnNldENvbnRlbnQoaHRtbF82ODZmYzA4OTMzNjM0YTU0ODkyZjc4NTgzNGQ3M2U3ZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzZiYWZhMDIxYjFkMDQyNzg4ZDdmZjg2OTY3ZTllYjZjLmJpbmRQb3B1cChwb3B1cF8wNTEzOWViODQ4NzQ0MmE4OWI3OWY2ZTljMmEyY2M4Nyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV80NTIxM2Q5MmViMTk0YmQ0OWNiZDdjZTFiZGRkNjE3MyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjUyMjg1LCAtMS4xOTE1MDEyXSwgWzUwLjY2NTA1MTUsIC0xLjE5MTQ2NzJdLCBbNTAuNjY0OTIyOCwgLTEuMTkxNTQ2OV0sIFs1MC42NjQxNTg0LCAtMS4xOTI0ODE3XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTQ1ODk3NDlmMDk2NGUyMDkxY2I4NmI0ZWM1MzQ1OTYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmE5MzcyNjA1YTg5NDdlNzkxZDVlYzA1MGI1ODg0ZjUgPSAkKCc8ZGl2IGlkPSJodG1sXzJhOTM3MjYwNWE4OTQ3ZTc5MWQ1ZWMwNTBiNTg4NGY1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iSG9sbG93b29kIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lNDU4OTc0OWYwOTY0ZTIwOTFjYjg2YjRlYzUzNDU5Ni5zZXRDb250ZW50KGh0bWxfMmE5MzcyNjA1YTg5NDdlNzkxZDVlYzA1MGI1ODg0ZjUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV80NTIxM2Q5MmViMTk0YmQ0OWNiZDdjZTFiZGRkNjE3My5iaW5kUG9wdXAocG9wdXBfZTQ1ODk3NDlmMDk2NGUyMDkxY2I4NmI0ZWM1MzQ1OTYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNjg3ZjdiNzFlNDIwNDczNzg0OTkwOTY3NjEwYjA2N2MgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY0NjY0MSwgLTEuMTkzMzE5NV0sIFs1MC42NjQ5NDAzLCAtMS4xOTI3NzVdLCBbNTAuNjY1MjIxLCAtMS4xOTIzNjg0XSwgWzUwLjY2NTIwNzMsIC0xLjE5MTgzNzldLCBbNTAuNjY1MjI4NSwgLTEuMTkxNTAxMl1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2JhNDg5MGRkYjIyOTQ4YWZhMDdmY2E5ZjY2MWFlNjE1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzlhM2E1OWI0YzlmMzQ5ZmVhY2UyOTI1ZDZmZWQ4ZjJmID0gJCgnPGRpdiBpZD0iaHRtbF85YTNhNTliNGM5ZjM0OWZlYWNlMjkyNWQ2ZmVkOGYyZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IllvdW5nd29vZHMgQ29wc2UiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iYTQ4OTBkZGIyMjk0OGFmYTA3ZmNhOWY2NjFhZTYxNS5zZXRDb250ZW50KGh0bWxfOWEzYTU5YjRjOWYzNDlmZWFjZTI5MjVkNmZlZDhmMmYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV82ODdmN2I3MWU0MjA0NzM3ODQ5OTA5Njc2MTBiMDY3Yy5iaW5kUG9wdXAocG9wdXBfYmE0ODkwZGRiMjI5NDhhZmEwN2ZjYTlmNjYxYWU2MTUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfYjg1YWNmMTM1ZDI0NGY2MmJlNzIxZTIxMzZiM2Y2MTMgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY2MDc4NSwgLTEuMTg4NjkxNl0sIFs1MC42NjY3MDg3LCAtMS4xODc4NTE4XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYTM4ZjNkMGRiYjY0NGUwMTk4NTgyMTAyMjA4OTFlMTcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOTc5Yzc4NjFjYjcwNGYwNjg1ZWI5ODA0Y2E5NzRkYWYgPSAkKCc8ZGl2IGlkPSJodG1sXzk3OWM3ODYxY2I3MDRmMDY4NWViOTgwNGNhOTc0ZGFmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iWW91bmd3b29kcyBXYXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hMzhmM2QwZGJiNjQ0ZTAxOTg1ODIxMDIyMDg5MWUxNy5zZXRDb250ZW50KGh0bWxfOTc5Yzc4NjFjYjcwNGYwNjg1ZWI5ODA0Y2E5NzRkYWYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9iODVhY2YxMzVkMjQ0ZjYyYmU3MjFlMjEzNmIzZjYxMy5iaW5kUG9wdXAocG9wdXBfYTM4ZjNkMGRiYjY0NGUwMTk4NTgyMTAyMjA4OTFlMTcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZThlYTk0OTMwM2U5NDdiMjlkMzViMGE3Y2VlYjkzMzQgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY2MDc4NSwgLTEuMTg4NjkxNl0sIFs1MC42NjMwMzM1LCAtMS4xOTIwMDY4XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZWZlNTljNzY1MThkNGNkNWJkYmVlZWNiZTcwZTM4NzIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNmE1Zjg2OTY5ODZhNDZkZWExMzlhOWU3MjliMWNjMWUgPSAkKCc8ZGl2IGlkPSJodG1sXzZhNWY4Njk2OTg2YTQ2ZGVhMTM5YTllNzI5YjFjYzFlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iWW91bmd3b29kcyBXYXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lZmU1OWM3NjUxOGQ0Y2Q1YmRiZWVlY2JlNzBlMzg3Mi5zZXRDb250ZW50KGh0bWxfNmE1Zjg2OTY5ODZhNDZkZWExMzlhOWU3MjliMWNjMWUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9lOGVhOTQ5MzAzZTk0N2IyOWQzNWIwYTdjZWViOTMzNC5iaW5kUG9wdXAocG9wdXBfZWZlNTljNzY1MThkNGNkNWJkYmVlZWNiZTcwZTM4NzIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZDFiYTc2YTRmZjVkNDg5ZmJlYTJjNGYwMmVmNmEwZDAgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY2MDc4NSwgLTEuMTg4NjkxNl0sIFs1MC42NjY0NzczLCAtMS4xODkxNTk5XSwgWzUwLjY2NjYzNSwgLTEuMTg5Njg2N10sIFs1MC42NjY1MzMsIC0xLjE5MDA1MjVdLCBbNTAuNjY1OTUxOSwgLTEuMTkwNzYwNV0sIFs1MC42NjU1NTI3LCAtMS4xOTA5NzM1XSwgWzUwLjY2NTM1ODIsIC0xLjE5MTE4NjZdLCBbNTAuNjY1MjI4NSwgLTEuMTkxNTAxMl1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzdiNjUzOGE2OWM4NTQ0ZjJhNDU4NzIyZGE3Zjc5MDM0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2U2NDlkNmFlNGRkNDQ2ZDBiMGJiNThhNmZmN2Q3ZDkyID0gJCgnPGRpdiBpZD0iaHRtbF9lNjQ5ZDZhZTRkZDQ0NmQwYjBiYjU4YTZmZjdkN2Q5MiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IllvdW5nd29vZHMgQ29wc2UiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83YjY1MzhhNjljODU0NGYyYTQ1ODcyMmRhN2Y3OTAzNC5zZXRDb250ZW50KGh0bWxfZTY0OWQ2YWU0ZGQ0NDZkMGIwYmI1OGE2ZmY3ZDdkOTIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9kMWJhNzZhNGZmNWQ0ODlmYmVhMmM0ZjAyZWY2YTBkMC5iaW5kUG9wdXAocG9wdXBfN2I2NTM4YTY5Yzg1NDRmMmE0NTg3MjJkYTdmNzkwMzQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfN2I1NjhkY2E2NmYyNDhkMWEzZjViMjBkMjA4N2UxNjEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY2NzA4NywgLTEuMTg3ODUxOF0sIFs1MC42NjYwNzg1LCAtMS4xODg2OTE2XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYmMwMjI0ZThhYzhlNDUyMTkxYTFkZDU5MjI1MTEzNzAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZTM5ZGY2MGUwZWMxNGQ0OTg5MDQ5MzAxOTY3YWNhZTAgPSAkKCc8ZGl2IGlkPSJodG1sX2UzOWRmNjBlMGVjMTRkNDk4OTA0OTMwMTk2N2FjYWUwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iWW91bmd3b29kcyBXYXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iYzAyMjRlOGFjOGU0NTIxOTFhMWRkNTkyMjUxMTM3MC5zZXRDb250ZW50KGh0bWxfZTM5ZGY2MGUwZWMxNGQ0OTg5MDQ5MzAxOTY3YWNhZTApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV83YjU2OGRjYTY2ZjI0OGQxYTNmNWIyMGQyMDg3ZTE2MS5iaW5kUG9wdXAocG9wdXBfYmMwMjI0ZThhYzhlNDUyMTkxYTFkZDU5MjI1MTEzNzApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMzgzZmY0NjYwNzNhNGRjOTkxMzRjZjIxNzc1MzNjZDkgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY2NzA4NywgLTEuMTg3ODUxOF0sIFs1MC42NjY2OTMsIC0xLjE4Nzc2OF0sIFs1MC42NjY2NDMzLCAtMS4xODc2NjU4XSwgWzUwLjY2NjQ4MzUsIC0xLjE4NzU3NzNdLCBbNTAuNjY2MzQ5MiwgLTEuMTg3NTEyOV0sIFs1MC42NjYxOTIzLCAtMS4xODc0NDM0XSwgWzUwLjY2NjEyMDEsIC0xLjE4NzQxOTNdLCBbNTAuNjY2MDEwNCwgLTEuMTg3NDM4MV0sIFs1MC42NjU5MjYyLCAtMS4xODc1MDM4XSwgWzUwLjY2NTY5NjcsIC0xLjE4Nzc2XSwgWzUwLjY2NTU2NzUsIC0xLjE4NzgxMzZdLCBbNTAuNjY1NDcxNSwgLTEuMTg3NzgxNF0sIFs1MC42NjUzNTc2LCAtMS4xODc3NjUzXSwgWzUwLjY2NTI4NjIsIC0xLjE4Nzc1ODZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hYzM5NGIzYzcyYjU0MTA5ODI2OWRmMjM3ZGQ3MTdkOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80NzlhYzNmODQxZTc0M2JkOGVkMDUzNzM1N2U3ODQ4ZSA9ICQoJzxkaXYgaWQ9Imh0bWxfNDc5YWMzZjg0MWU3NDNiZDhlZDA1MzczNTdlNzg0OGUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJZb3VuZ3dvb2RzIFdheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2FjMzk0YjNjNzJiNTQxMDk4MjY5ZGYyMzdkZDcxN2Q4LnNldENvbnRlbnQoaHRtbF80NzlhYzNmODQxZTc0M2JkOGVkMDUzNzM1N2U3ODQ4ZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzM4M2ZmNDY2MDczYTRkYzk5MTM0Y2YyMTc3NTMzY2Q5LmJpbmRQb3B1cChwb3B1cF9hYzM5NGIzYzcyYjU0MTA5ODI2OWRmMjM3ZGQ3MTdkOCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9kMTY3ZjYyOTFiMmM0MTM0ODc3ZWE0MzA5MDBmMzUzOCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjY3MDg3LCAtMS4xODc4NTE4XSwgWzUwLjY2Njc2NTksIC0xLjE4Nzg2MDJdLCBbNTAuNjY3MTkxNSwgLTEuMTg4NTU5OV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzQyOWRlZDk3NDU1NjQ5MGY4N2I3YWM1ZDFlN2MzY2M2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzk5YWM0MDM5MGNlYzQ2NTk4Njg1YTc5M2NjOWE4OTYzID0gJCgnPGRpdiBpZD0iaHRtbF85OWFjNDAzOTBjZWM0NjU5ODY4NWE3OTNjYzlhODk2MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IldlYnN0ZXIgV2F5IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNDI5ZGVkOTc0NTU2NDkwZjg3YjdhYzVkMWU3YzNjYzYuc2V0Q29udGVudChodG1sXzk5YWM0MDM5MGNlYzQ2NTk4Njg1YTc5M2NjOWE4OTYzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfZDE2N2Y2MjkxYjJjNDEzNDg3N2VhNDMwOTAwZjM1MzguYmluZFBvcHVwKHBvcHVwXzQyOWRlZDk3NDU1NjQ5MGY4N2I3YWM1ZDFlN2MzY2M2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzMwN2FhMjJiYjEyNTQ3OTM5ZjkyY2ZiYjg4OWRlNjkyID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NzE5MTUsIC0xLjE4ODU1OTldLCBbNTAuNjY3NDg4MywgLTEuMTg4MzU1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjAyNjEzYzQyNWZjNDliODgzM2M4NTE4ZGE3MjkzMDEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOWYyNTA4ZThkN2U0NDliMzkzZGU3NTUxMDhmNzJmNGUgPSAkKCc8ZGl2IGlkPSJodG1sXzlmMjUwOGU4ZDdlNDQ5YjM5M2RlNzU1MTA4ZjcyZjRlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV2Vic3RlciBXYXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82MDI2MTNjNDI1ZmM0OWI4ODMzYzg1MThkYTcyOTMwMS5zZXRDb250ZW50KGh0bWxfOWYyNTA4ZThkN2U0NDliMzkzZGU3NTUxMDhmNzJmNGUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8zMDdhYTIyYmIxMjU0NzkzOWY5MmNmYmI4ODlkZTY5Mi5iaW5kUG9wdXAocG9wdXBfNjAyNjEzYzQyNWZjNDliODgzM2M4NTE4ZGE3MjkzMDEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfYjM1MGNmY2ZlMTFhNGYxYWE5OTg2OGEyMTE1ZDBiZTcgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY3MTkxNSwgLTEuMTg4NTU5OV0sIFs1MC42Njc0MDM1LCAtMS4xODkxNDI1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTM3ZDViM2U0YzQyNGNiZjhmZjExMDg5ZTVjMmIzNmYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTlmMzg0ZDcxZDU1NDBlYTljY2Y3M2E1MTFjZTkxMzMgPSAkKCc8ZGl2IGlkPSJodG1sXzE5ZjM4NGQ3MWQ1NTQwZWE5Y2NmNzNhNTExY2U5MTMzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV2Vic3RlciBXYXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xMzdkNWIzZTRjNDI0Y2JmOGZmMTEwODllNWMyYjM2Zi5zZXRDb250ZW50KGh0bWxfMTlmMzg0ZDcxZDU1NDBlYTljY2Y3M2E1MTFjZTkxMzMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9iMzUwY2ZjZmUxMWE0ZjFhYTk5ODY4YTIxMTVkMGJlNy5iaW5kUG9wdXAocG9wdXBfMTM3ZDViM2U0YzQyNGNiZjhmZjExMDg5ZTVjMmIzNmYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNDJmNTdkZjEyNzFkNDgxYjgwNGE2Y2JmYTJmMjQyZWUgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY3MTkxNSwgLTEuMTg4NTU5OV0sIFs1MC42NjY3NjU5LCAtMS4xODc4NjAyXSwgWzUwLjY2NjcwODcsIC0xLjE4Nzg1MThdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iYTlhZmI3NzAxMzU0M2RhYjVkM2NiZWVjYjFmYTZjZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mZGNmNGRjMTFhYWE0YmVmOTA2OTYzMjU2MDFkMjBlNCA9ICQoJzxkaXYgaWQ9Imh0bWxfZmRjZjRkYzExYWFhNGJlZjkwNjk2MzI1NjAxZDIwZTQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXZWJzdGVyIFdheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2JhOWFmYjc3MDEzNTQzZGFiNWQzY2JlZWNiMWZhNmNlLnNldENvbnRlbnQoaHRtbF9mZGNmNGRjMTFhYWE0YmVmOTA2OTYzMjU2MDFkMjBlNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzQyZjU3ZGYxMjcxZDQ4MWI4MDRhNmNiZmEyZjI0MmVlLmJpbmRQb3B1cChwb3B1cF9iYTlhZmI3NzAxMzU0M2RhYjVkM2NiZWVjYjFmYTZjZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8yZmE4MjYxMDE0ZjI0ODI0OGFmODYxNGU3OTVlOTk2YiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42Njc0ODgzLCAtMS4xODgzNTVdLCBbNTAuNjY3MTkxNSwgLTEuMTg4NTU5OV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzQ4ODgxNDNkMzc4OTQ3MWE4NzcyMTc4Mjc2MmYzZTM4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2JhZjk0MDQzNWZhNTQxYjJiMzlhNTUzMDE5NTQyZmYyID0gJCgnPGRpdiBpZD0iaHRtbF9iYWY5NDA0MzVmYTU0MWIyYjM5YTU1MzAxOTU0MmZmMiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IldlYnN0ZXIgV2F5IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNDg4ODE0M2QzNzg5NDcxYTg3NzIxNzgyNzYyZjNlMzguc2V0Q29udGVudChodG1sX2JhZjk0MDQzNWZhNTQxYjJiMzlhNTUzMDE5NTQyZmYyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMmZhODI2MTAxNGYyNDgyNDhhZjg2MTRlNzk1ZTk5NmIuYmluZFBvcHVwKHBvcHVwXzQ4ODgxNDNkMzc4OTQ3MWE4NzcyMTc4Mjc2MmYzZTM4KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2QxYjM0MGM3YTlkYjQ2NDY4NGMwNTBmNmU4OTQ2YzM4ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MzU0MjksIC0xLjIwMTA4NDNdLCBbNTAuNjUzMzczOCwgLTEuMjAxNzVdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zNmI2YjVlMzQzZTE0NWQ3YWNiMWE1OGJkZDJlMDEzNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80NWQ1Yjk0N2M0ODE0ZmNiYTMyZjIxMzM2YWRmMjNjZSA9ICQoJzxkaXYgaWQ9Imh0bWxfNDVkNWI5NDdjNDgxNGZjYmEzMmYyMTMzNmFkZjIzY2UiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJDaGFtYmVycyBEcml2ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzM2YjZiNWUzNDNlMTQ1ZDdhY2IxYTU4YmRkMmUwMTM2LnNldENvbnRlbnQoaHRtbF80NWQ1Yjk0N2M0ODE0ZmNiYTMyZjIxMzM2YWRmMjNjZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2QxYjM0MGM3YTlkYjQ2NDY4NGMwNTBmNmU4OTQ2YzM4LmJpbmRQb3B1cChwb3B1cF8zNmI2YjVlMzQzZTE0NWQ3YWNiMWE1OGJkZDJlMDEzNik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9mZjFlODNmYjkwZmM0NTBkOWY2MDZkNjA1ZDA5OGQ1MiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTM1NDI5LCAtMS4yMDEwODQzXSwgWzUwLjY1MzM4MTIsIC0xLjIwMTAwMjldLCBbNTAuNjUzMjE1NSwgLTEuMjAxMDA5NV0sIFs1MC42NTMyMTQ1LCAtMS4yMDEyMDQxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDRkN2E1ZGZjMzE0NGJkZWFlZDY2NTVhYjMzMmQ0ZWQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNWYyYWY1YTExZjYxNGY4YmE2ZWViZTU0Nzc2ZjFhNmYgPSAkKCc8ZGl2IGlkPSJodG1sXzVmMmFmNWExMWY2MTRmOGJhNmVlYmU1NDc3NmYxYTZmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQ2hhbWJlcnMgRHJpdmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wNGQ3YTVkZmMzMTQ0YmRlYWVkNjY1NWFiMzMyZDRlZC5zZXRDb250ZW50KGh0bWxfNWYyYWY1YTExZjYxNGY4YmE2ZWViZTU0Nzc2ZjFhNmYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9mZjFlODNmYjkwZmM0NTBkOWY2MDZkNjA1ZDA5OGQ1Mi5iaW5kUG9wdXAocG9wdXBfMDRkN2E1ZGZjMzE0NGJkZWFlZDY2NTVhYjMzMmQ0ZWQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZjEwODFhODJmNTBkNGMwNjlmMjk1NDNmOWNkYTQ5ODYgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUzNTQyOSwgLTEuMjAxMDg0M10sIFs1MC42NTM5MDI1LCAtMS4yMDEzMTIzXSwgWzUwLjY1Mzk2OTcsIC0xLjIwMTI4NThdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zMzNkMzNjMTlmYjQ0MjljYTA2MjYwNzcyYzY0NmZhMyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84NGE3ODVlOGFlYzA0YWYyYjM5ZTUxNjdiNDdhMmNiMCA9ICQoJzxkaXYgaWQ9Imh0bWxfODRhNzg1ZThhZWMwNGFmMmIzOWU1MTY3YjQ3YTJjYjAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJDaGFtYmVycyBEcml2ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzMzM2QzM2MxOWZiNDQyOWNhMDYyNjA3NzJjNjQ2ZmEzLnNldENvbnRlbnQoaHRtbF84NGE3ODVlOGFlYzA0YWYyYjM5ZTUxNjdiNDdhMmNiMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2YxMDgxYTgyZjUwZDRjMDY5ZjI5NTQzZjljZGE0OTg2LmJpbmRQb3B1cChwb3B1cF8zMzNkMzNjMTlmYjQ0MjljYTA2MjYwNzcyYzY0NmZhMyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8xNTc4MTAyMzdmZjM0YTI0YWQ5NTVhMDZmZDE1ZWRiMiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTM1NDI5LCAtMS4yMDEwODQzXSwgWzUwLjY1MzY0MjUsIC0xLjIwMDc0MjFdLCBbNTAuNjUzNjYxLCAtMS4yMDA0Njc2XSwgWzUwLjY1MzY3MTUsIC0xLjIwMDE1MDRdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xNTgzZTI5MTQxMjM0Zjc1YmFhYTM2NmZiMzljMzYxMiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81MDU0NDI1NDRjMTM0YjJkYTY5NGE1YjQ3OGU0NjUzMSA9ICQoJzxkaXYgaWQ9Imh0bWxfNTA1NDQyNTQ0YzEzNGIyZGE2OTRhNWI0NzhlNDY1MzEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJDaGFtYmVycyBEcml2ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzE1ODNlMjkxNDEyMzRmNzViYWFhMzY2ZmIzOWMzNjEyLnNldENvbnRlbnQoaHRtbF81MDU0NDI1NDRjMTM0YjJkYTY5NGE1YjQ3OGU0NjUzMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzE1NzgxMDIzN2ZmMzRhMjRhZDk1NWEwNmZkMTVlZGIyLmJpbmRQb3B1cChwb3B1cF8xNTgzZTI5MTQxMjM0Zjc1YmFhYTM2NmZiMzljMzYxMik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV81YmVhYTg0Yzg4M2U0NzA3OWU1NGQ2N2FlY2E0NDJmMiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTM5Njk3LCAtMS4yMDEyODU4XSwgWzUwLjY1MzkwMjUsIC0xLjIwMTMxMjNdLCBbNTAuNjUzNTQyOSwgLTEuMjAxMDg0M11dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzA1ODZkODUzNjM0MTRjNmI4OTE5YTRlNjc0MTM0ZTk0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzUxYzY5YzJjYWEzYjRlMmZhOTEyNmI5MDlmNGIwMGRlID0gJCgnPGRpdiBpZD0iaHRtbF81MWM2OWMyY2FhM2I0ZTJmYTkxMjZiOTA5ZjRiMDBkZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkNoYW1iZXJzIERyaXZlIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMDU4NmQ4NTM2MzQxNGM2Yjg5MTlhNGU2NzQxMzRlOTQuc2V0Q29udGVudChodG1sXzUxYzY5YzJjYWEzYjRlMmZhOTEyNmI5MDlmNGIwMGRlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNWJlYWE4NGM4ODNlNDcwNzllNTRkNjdhZWNhNDQyZjIuYmluZFBvcHVwKHBvcHVwXzA1ODZkODUzNjM0MTRjNmI4OTE5YTRlNjc0MTM0ZTk0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzE4YWM4MThmODNiMDQxZmJhYjYyZmMwMzdjZTM1NTUzID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MzIxNDUsIC0xLjIwMTIwNDFdLCBbNTAuNjUzMjE1NSwgLTEuMjAxMDA5NV0sIFs1MC42NTMzODEyLCAtMS4yMDEwMDI5XSwgWzUwLjY1MzU0MjksIC0xLjIwMTA4NDNdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jZTc3Y2Y5OTUxZTg0MGM5OGEzNDM3NzE2ZDNlNjg4YyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jMzk4NGM5ODdlZjk0NWY1OTkwYjUyNTExOTZkNmFlMCA9ICQoJzxkaXYgaWQ9Imh0bWxfYzM5ODRjOTg3ZWY5NDVmNTk5MGI1MjUxMTk2ZDZhZTAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJDaGFtYmVycyBEcml2ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2NlNzdjZjk5NTFlODQwYzk4YTM0Mzc3MTZkM2U2ODhjLnNldENvbnRlbnQoaHRtbF9jMzk4NGM5ODdlZjk0NWY1OTkwYjUyNTExOTZkNmFlMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzE4YWM4MThmODNiMDQxZmJhYjYyZmMwMzdjZTM1NTUzLmJpbmRQb3B1cChwb3B1cF9jZTc3Y2Y5OTUxZTg0MGM5OGEzNDM3NzE2ZDNlNjg4Yyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV83MWFkNDY4NzY3ZTY0YzQwYThlMjNiOTMyODk0Zjc2NSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTMzNzM4LCAtMS4yMDE3NV0sIFs1MC42NTM1NDI5LCAtMS4yMDEwODQzXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzdiOTdkZmI4YzU1NGZjMzhhODg4ZTAwZWY0MDAyYzkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNjQyNDVmMmMzZWQwNGI5NGE2OWVhOTk3MGVjZWEzMzcgPSAkKCc8ZGl2IGlkPSJodG1sXzY0MjQ1ZjJjM2VkMDRiOTRhNjllYTk5NzBlY2VhMzM3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQ2hhbWJlcnMgRHJpdmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jN2I5N2RmYjhjNTU0ZmMzOGE4ODhlMDBlZjQwMDJjOS5zZXRDb250ZW50KGh0bWxfNjQyNDVmMmMzZWQwNGI5NGE2OWVhOTk3MGVjZWEzMzcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV83MWFkNDY4NzY3ZTY0YzQwYThlMjNiOTMyODk0Zjc2NS5iaW5kUG9wdXAocG9wdXBfYzdiOTdkZmI4YzU1NGZjMzhhODg4ZTAwZWY0MDAyYzkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNTA3YjgyMTA3Njk4NDMzODgyZmMyNmNjYzg1NjczZjIgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUzMzczOCwgLTEuMjAxNzVdLCBbNTAuNjUzMjg1OSwgLTEuMjAxNzcyXSwgWzUwLjY1MzExOTksIC0xLjIwMjA2MzFdLCBbNTAuNjUzMDk5NywgLTEuMjAyMjQ3OV0sIFs1MC42NTMxMjYyLCAtMS4yMDIzNF0sIFs1MC42NTMzOTQyLCAtMS4yMDI1OF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2I1MjdhNWQzMjI2ODRlNjZiZjlmMTAwMTAwMWE2NTNhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzM4MTFhYTIxMGQyNTQzMTU5YjI3NDM3Y2I2ZjRhNTNhID0gJCgnPGRpdiBpZD0iaHRtbF8zODExYWEyMTBkMjU0MzE1OWIyNzQzN2NiNmY0YTUzYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkNoYW1iZXJzIERyaXZlIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYjUyN2E1ZDMyMjY4NGU2NmJmOWYxMDAxMDAxYTY1M2Euc2V0Q29udGVudChodG1sXzM4MTFhYTIxMGQyNTQzMTU5YjI3NDM3Y2I2ZjRhNTNhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNTA3YjgyMTA3Njk4NDMzODgyZmMyNmNjYzg1NjczZjIuYmluZFBvcHVwKHBvcHVwX2I1MjdhNWQzMjI2ODRlNjZiZjlmMTAwMTAwMWE2NTNhKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2Q0OGNiOGFiZDUzNTQyOWM5YTdmNzM3ZjJjMWMzNjQ0ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MzM3MzgsIC0xLjIwMTc1XSwgWzUwLjY1MzUyMDEsIC0xLjIwMTkwMTVdLCBbNTAuNjUzNjY3OSwgLTEuMjAxOTk4NF0sIFs1MC42NTM3Mzg3LCAtMS4yMDE4NTQ0XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTgzYTU5MTI0ZTI0NGRmZDg4NTRkNTBhYWZjYThkOTcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmVjYzk1NWMzZTNiNGM3ZDljOGRiMTNmMzg3ZTllZjUgPSAkKCc8ZGl2IGlkPSJodG1sXzJlY2M5NTVjM2UzYjRjN2Q5YzhkYjEzZjM4N2U5ZWY1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQ2hhbWJlcnMgRHJpdmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xODNhNTkxMjRlMjQ0ZGZkODg1NGQ1MGFhZmNhOGQ5Ny5zZXRDb250ZW50KGh0bWxfMmVjYzk1NWMzZTNiNGM3ZDljOGRiMTNmMzg3ZTllZjUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9kNDhjYjhhYmQ1MzU0MjljOWE3ZjczN2YyYzFjMzY0NC5iaW5kUG9wdXAocG9wdXBfMTgzYTU5MTI0ZTI0NGRmZDg4NTRkNTBhYWZjYThkOTcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZGI1NzAxZDdkZmMxNDJmZmIzYjcxMWI3M2MzM2I4OWYgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUzNzM4NywgLTEuMjAxODU0NF0sIFs1MC42NTM2Njc5LCAtMS4yMDE5OTg0XSwgWzUwLjY1MzUyMDEsIC0xLjIwMTkwMTVdLCBbNTAuNjUzMzczOCwgLTEuMjAxNzVdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82ZmY2OTE3MDFkOTA0ZThiYjU5MDViYTcxNmU1YThlOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iZjQxMjBlMTcwMTA0NTlhYjRlYmQ4YjcwYTc1MWFiZCA9ICQoJzxkaXYgaWQ9Imh0bWxfYmY0MTIwZTE3MDEwNDU5YWI0ZWJkOGI3MGE3NTFhYmQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJDaGFtYmVycyBEcml2ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzZmZjY5MTcwMWQ5MDRlOGJiNTkwNWJhNzE2ZTVhOGU4LnNldENvbnRlbnQoaHRtbF9iZjQxMjBlMTcwMTA0NTlhYjRlYmQ4YjcwYTc1MWFiZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2RiNTcwMWQ3ZGZjMTQyZmZiM2I3MTFiNzNjMzNiODlmLmJpbmRQb3B1cChwb3B1cF82ZmY2OTE3MDFkOTA0ZThiYjU5MDViYTcxNmU1YThlOCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8zYjFjYTQxOTE4NDE0ZjJjYTU0MDBlNDdhMjgyODdmZCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTMzOTQyLCAtMS4yMDI1OF0sIFs1MC42NTMxMjYyLCAtMS4yMDIzNF0sIFs1MC42NTMwOTk3LCAtMS4yMDIyNDc5XSwgWzUwLjY1MzExOTksIC0xLjIwMjA2MzFdLCBbNTAuNjUzMjg1OSwgLTEuMjAxNzcyXSwgWzUwLjY1MzM3MzgsIC0xLjIwMTc1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTllOGU2YmYyZDVlNDBlM2JiOTBjNTg2OWExYzJiYWUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmZjY2RhMTYyZWRiNDExYWI5OTYxYWRiZjhjMTliNzYgPSAkKCc8ZGl2IGlkPSJodG1sXzJmY2NkYTE2MmVkYjQxMWFiOTk2MWFkYmY4YzE5Yjc2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQ2hhbWJlcnMgRHJpdmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xOWU4ZTZiZjJkNWU0MGUzYmI5MGM1ODY5YTFjMmJhZS5zZXRDb250ZW50KGh0bWxfMmZjY2RhMTYyZWRiNDExYWI5OTYxYWRiZjhjMTliNzYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8zYjFjYTQxOTE4NDE0ZjJjYTU0MDBlNDdhMjgyODdmZC5iaW5kUG9wdXAocG9wdXBfMTllOGU2YmYyZDVlNDBlM2JiOTBjNTg2OWExYzJiYWUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMDczOThiNzY5OGVlNDEyMWJjMzY4NjIzNDQzZjA4MzMgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUyNjU4NywgLTEuMjAwMzYxMV0sIFs1MC42NTI2NTUsIC0xLjIwMDYwOTddLCBbNTAuNjUyNTgxOSwgLTEuMjAwNzMwOV0sIFs1MC42NTIyMzAxLCAtMS4yMDA3OTM0XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjk5ZDFlMTc5NDJkNGU3YWE5MWFkMjk3MjQ3MjAzODMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNjdkMzkyNmY3ZWNkNDhlZmE0MzBiOGNjMTQyYjQwNmYgPSAkKCc8ZGl2IGlkPSJodG1sXzY3ZDM5MjZmN2VjZDQ4ZWZhNDMwYjhjYzE0MmI0MDZmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iVGhlIFBhZGRvY2siPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yOTlkMWUxNzk0MmQ0ZTdhYTkxYWQyOTcyNDcyMDM4My5zZXRDb250ZW50KGh0bWxfNjdkMzkyNmY3ZWNkNDhlZmE0MzBiOGNjMTQyYjQwNmYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8wNzM5OGI3Njk4ZWU0MTIxYmMzNjg2MjM0NDNmMDgzMy5iaW5kUG9wdXAocG9wdXBfMjk5ZDFlMTc5NDJkNGU3YWE5MWFkMjk3MjQ3MjAzODMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfYmFkYTMzODEyY2IzNDMyMDkzZjlmNDBjYTlkYTM5ZWQgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUyMjMwMSwgLTEuMjAwNzkzNF0sIFs1MC42NTIyNDEyLCAtMS4yMDExODUzXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNTk5OTU2YTEyZmE3NGZmZGIyMzBmZGQ3NDRkOTk5MDUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOTNhNGNmMDZkY2RhNDQyYzg2YmE0NjZjNzY2YjNhMGYgPSAkKCc8ZGl2IGlkPSJodG1sXzkzYTRjZjA2ZGNkYTQ0MmM4NmJhNDY2Yzc2NmIzYTBmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iUGFya3dheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzU5OTk1NmExMmZhNzRmZmRiMjMwZmRkNzQ0ZDk5OTA1LnNldENvbnRlbnQoaHRtbF85M2E0Y2YwNmRjZGE0NDJjODZiYTQ2NmM3NjZiM2EwZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2JhZGEzMzgxMmNiMzQzMjA5M2Y5ZjQwY2E5ZGEzOWVkLmJpbmRQb3B1cChwb3B1cF81OTk5NTZhMTJmYTc0ZmZkYjIzMGZkZDc0NGQ5OTkwNSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9iOTE1YmI1Mzk2YzE0OWYxYmE1ZTc2NTA1YzY1YmQ5NCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTIyMzAxLCAtMS4yMDA3OTM0XSwgWzUwLjY1MjIwNzEsIC0xLjIwMDEyNjVdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wYWJjYmM3Mzg0NzM0MjU1OWRiMmVlMzIzNDVjOWUxNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84ZTAzZmY0NzRkMjQ0NTkxYmI0ZmFlOWE2OGI5MjMzNiA9ICQoJzxkaXYgaWQ9Imh0bWxfOGUwM2ZmNDc0ZDI0NDU5MWJiNGZhZTlhNjhiOTIzMzYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJQYXJrd2F5IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMGFiY2JjNzM4NDczNDI1NTlkYjJlZTMyMzQ1YzllMTQuc2V0Q29udGVudChodG1sXzhlMDNmZjQ3NGQyNDQ1OTFiYjRmYWU5YTY4YjkyMzM2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfYjkxNWJiNTM5NmMxNDlmMWJhNWU3NjUwNWM2NWJkOTQuYmluZFBvcHVwKHBvcHVwXzBhYmNiYzczODQ3MzQyNTU5ZGIyZWUzMjM0NWM5ZTE0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzcyOWJjZTBlZTQ4MTQ1N2JiZDI1OWM0MDZhOTU5NzlhID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MjIzMDEsIC0xLjIwMDc5MzRdLCBbNTAuNjUyNTgxOSwgLTEuMjAwNzMwOV0sIFs1MC42NTI2NTUsIC0xLjIwMDYwOTddLCBbNTAuNjUyNjU4NywgLTEuMjAwMzYxMV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzVhZjFhY2YzNTBjNjRiZDhiNmI1ZDBjMmExMTc3NjRkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzNkMDc2NmY1Y2I0ZDQzNThhYjg4MGZlN2Q0YjQ4OTU4ID0gJCgnPGRpdiBpZD0iaHRtbF8zZDA3NjZmNWNiNGQ0MzU4YWI4ODBmZTdkNGI0ODk1OCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IlRoZSBQYWRkb2NrIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNWFmMWFjZjM1MGM2NGJkOGI2YjVkMGMyYTExNzc2NGQuc2V0Q29udGVudChodG1sXzNkMDc2NmY1Y2I0ZDQzNThhYjg4MGZlN2Q0YjQ4OTU4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNzI5YmNlMGVlNDgxNDU3YmJkMjU5YzQwNmE5NTk3OWEuYmluZFBvcHVwKHBvcHVwXzVhZjFhY2YzNTBjNjRiZDhiNmI1ZDBjMmExMTc3NjRkKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzZkYjYyZGZiYzAwYjQxOWJhYjg1NGY0NmVhZDA3MTljID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MjI0MTIsIC0xLjIwMTE4NTNdLCBbNTAuNjUyMjMwMSwgLTEuMjAwNzkzNF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2JhYjUxZTgzOGY2YzRmNWI5Nzk3OTVhYjI5OTYyYWRhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzZjOTNmY2VlMjEwNjRjZTA5ZjE0ZDUzZDI2ZjIwMzZlID0gJCgnPGRpdiBpZD0iaHRtbF82YzkzZmNlZTIxMDY0Y2UwOWYxNGQ1M2QyNmYyMDM2ZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IlBhcmt3YXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iYWI1MWU4MzhmNmM0ZjViOTc5Nzk1YWIyOTk2MmFkYS5zZXRDb250ZW50KGh0bWxfNmM5M2ZjZWUyMTA2NGNlMDlmMTRkNTNkMjZmMjAzNmUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV82ZGI2MmRmYmMwMGI0MTliYWI4NTRmNDZlYWQwNzE5Yy5iaW5kUG9wdXAocG9wdXBfYmFiNTFlODM4ZjZjNGY1Yjk3OTc5NWFiMjk5NjJhZGEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMWFkYjEzMzBmMDFiNDA3MWJjYjEzYWFlZGI1MzA3YjkgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUyMjQxMiwgLTEuMjAxMTg1M10sIFs1MC42NTIxMTIsIC0xLjIwMTE5OTZdLCBbNTAuNjUxODI2MSwgLTEuMjAxNTI1NF0sIFs1MC42NTEyNjgyLCAtMS4yMDIxNjFdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80MDI5NmFkZGI0ODE0MGRkOGY0Yjg1NDcyMmRhNmU4MyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85ZTBhYzc2YzMyYWY0NTdkOWQ5NDk2NjczMjVlZjM3YiA9ICQoJzxkaXYgaWQ9Imh0bWxfOWUwYWM3NmMzMmFmNDU3ZDlkOTQ5NjY3MzI1ZWYzN2IiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJQYXJrd2F5IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNDAyOTZhZGRiNDgxNDBkZDhmNGI4NTQ3MjJkYTZlODMuc2V0Q29udGVudChodG1sXzllMGFjNzZjMzJhZjQ1N2Q5ZDk0OTY2NzMyNWVmMzdiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMWFkYjEzMzBmMDFiNDA3MWJjYjEzYWFlZGI1MzA3YjkuYmluZFBvcHVwKHBvcHVwXzQwMjk2YWRkYjQ4MTQwZGQ4ZjRiODU0NzIyZGE2ZTgzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzRkNWZjNmE3NTQxMjQ5MDI4ZmQwNWRkYWM2ZTk3ZDc4ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MjI0MTIsIC0xLjIwMTE4NTNdLCBbNTAuNjUyMjgxNCwgLTEuMjAxNzAyOV0sIFs1MC42NTIyOTgzLCAtMS4yMDE3NjYzXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDk0YWE0NmIyZDhjNDZlMzhhNjdmOTQ5YTY3NDFhYjcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfY2JhNjk3NjIyNWNjNDZjOTgzMDc0NTdhNmRiNDA0OGEgPSAkKCc8ZGl2IGlkPSJodG1sX2NiYTY5NzYyMjVjYzQ2Yzk4MzA3NDU3YTZkYjQwNDhhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV29vZHMgRHJpdmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wOTRhYTQ2YjJkOGM0NmUzOGE2N2Y5NDlhNjc0MWFiNy5zZXRDb250ZW50KGh0bWxfY2JhNjk3NjIyNWNjNDZjOTgzMDc0NTdhNmRiNDA0OGEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV80ZDVmYzZhNzU0MTI0OTAyOGZkMDVkZGFjNmU5N2Q3OC5iaW5kUG9wdXAocG9wdXBfMDk0YWE0NmIyZDhjNDZlMzhhNjdmOTQ5YTY3NDFhYjcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMjNkN2M4OWRmZmFhNDhlZWJjMzE4YWEzNzA1MWUxMWYgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUxMjY4MiwgLTEuMjAyMTYxXSwgWzUwLjY1MTgyNjEsIC0xLjIwMTUyNTRdLCBbNTAuNjUyMTEyLCAtMS4yMDExOTk2XSwgWzUwLjY1MjI0MTIsIC0xLjIwMTE4NTNdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xZmYzNGU4Y2I0YmQ0YWRhOWYyOWJlNTUzNGY5MWNkMCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wODQ4NGFhM2RmNzk0MTZiOTQ1YWY2YzJlODZiZDVjMCA9ICQoJzxkaXYgaWQ9Imh0bWxfMDg0ODRhYTNkZjc5NDE2Yjk0NWFmNmMyZTg2YmQ1YzAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJQYXJrd2F5IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMWZmMzRlOGNiNGJkNGFkYTlmMjliZTU1MzRmOTFjZDAuc2V0Q29udGVudChodG1sXzA4NDg0YWEzZGY3OTQxNmI5NDVhZjZjMmU4NmJkNWMwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMjNkN2M4OWRmZmFhNDhlZWJjMzE4YWEzNzA1MWUxMWYuYmluZFBvcHVwKHBvcHVwXzFmZjM0ZThjYjRiZDRhZGE5ZjI5YmU1NTM0ZjkxY2QwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzk0NzI0NDBiZjlmMjQ1MGU4NmVlOWM3NWRiZDQ2Nzk3ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MjI5ODMsIC0xLjIwMTc2NjNdLCBbNTAuNjUyMjY0LCAtMS4yMDE4MDc0XSwgWzUwLjY1MjI0MjEsIC0xLjIwMTg2NTldLCBbNTAuNjUyMjM2LCAtMS4yMDE5MzMxXSwgWzUwLjY1MjI0NjQsIC0xLjIwMTk5OTFdLCBbNTAuNjUyMjcxOSwgLTEuMjAyMDUzOF0sIFs1MC42NTIzMDg3LCAtMS4yMDIwODkyXSwgWzUwLjY1MjM1MTIsIC0xLjIwMjFdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wODY3ZTJlOWZjYTQ0MDExOWVlNDY0OWUwOGZmMmZjOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hZTczYTdlMmY2NTQ0MGU3OWQ1MDQ5ZmJkNjk3MzFlYiA9ICQoJzxkaXYgaWQ9Imh0bWxfYWU3M2E3ZTJmNjU0NDBlNzlkNTA0OWZiZDY5NzMxZWIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXb29kcyBEcml2ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzA4NjdlMmU5ZmNhNDQwMTE5ZWU0NjQ5ZTA4ZmYyZmM4LnNldENvbnRlbnQoaHRtbF9hZTczYTdlMmY2NTQ0MGU3OWQ1MDQ5ZmJkNjk3MzFlYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzk0NzI0NDBiZjlmMjQ1MGU4NmVlOWM3NWRiZDQ2Nzk3LmJpbmRQb3B1cChwb3B1cF8wODY3ZTJlOWZjYTQ0MDExOWVlNDY0OWUwOGZmMmZjOCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9jYWVkNTdkYTAwODY0NTgwYTMxOWU4NTBlYWUyNTJjOCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTIyOTgzLCAtMS4yMDE3NjYzXSwgWzUwLjY1MjI4MTQsIC0xLjIwMTcwMjldLCBbNTAuNjUyMjQxMiwgLTEuMjAxMTg1M11dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2UyMWM5MThiMDdmZTQ2NDE5YzAzYzkyODhmZGJkMzc2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2VmZWRjNWU4ZDQ2YzQ2NjFhZWMxOGIwNjNkMDAzMjFjID0gJCgnPGRpdiBpZD0iaHRtbF9lZmVkYzVlOGQ0NmM0NjYxYWVjMThiMDYzZDAwMzIxYyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Ildvb2RzIERyaXZlIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTIxYzkxOGIwN2ZlNDY0MTljMDNjOTI4OGZkYmQzNzYuc2V0Q29udGVudChodG1sX2VmZWRjNWU4ZDQ2YzQ2NjFhZWMxOGIwNjNkMDAzMjFjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfY2FlZDU3ZGEwMDg2NDU4MGEzMTllODUwZWFlMjUyYzguYmluZFBvcHVwKHBvcHVwX2UyMWM5MThiMDdmZTQ2NDE5YzAzYzkyODhmZGJkMzc2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzkxNTM3NTRmNjNlZTRjMmNhMWFiMGUyZTdhOWI1ZDY3ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MjM1MTIsIC0xLjIwMjFdLCBbNTAuNjUyMzg4NCwgLTEuMjAyMDg3N10sIFs1MC42NTI0MjA4LCAtMS4yMDIwNTY1XSwgWzUwLjY1MjQ0NDcsIC0xLjIwMjAwOTldLCBbNTAuNjUyNDU3MywgLTEuMjAxOTUzM10sIFs1MC42NTI0NTg2LCAtMS4yMDE5MDQxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfY2MzYTI1NDQ4ZjgyNDdkYWFmNTYyODUxZmExNDk5Y2YgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOTI3YWE0OTVkNDgxNDMxMGI1YzU1Mzg4YTgyNWViNTkgPSAkKCc8ZGl2IGlkPSJodG1sXzkyN2FhNDk1ZDQ4MTQzMTBiNWM1NTM4OGE4MjVlYjU5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV29vZHMgRHJpdmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jYzNhMjU0NDhmODI0N2RhYWY1NjI4NTFmYTE0OTljZi5zZXRDb250ZW50KGh0bWxfOTI3YWE0OTVkNDgxNDMxMGI1YzU1Mzg4YTgyNWViNTkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV85MTUzNzU0ZjYzZWU0YzJjYTFhYjBlMmU3YTliNWQ2Ny5iaW5kUG9wdXAocG9wdXBfY2MzYTI1NDQ4ZjgyNDdkYWFmNTYyODUxZmExNDk5Y2YpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMmRkNzkzZDM4MjljNDJmMDg4OGI1MDlmMTUwMzI3OTIgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUyMzUxMiwgLTEuMjAyMV0sIFs1MC42NTIzMjAzLCAtMS4yMDIzNDY2XSwgWzUwLjY1MjA3MSwgLTEuMjAyNjMxMV0sIFs1MC42NTEyOTI4LCAtMS4yMDM1MTkxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTc4NWUwNGU3OWFmNDdhYTg4NjMwNDM2MGVhYWEzZjMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDcwODM4MDVlOWFjNDcxOTljYzEzNmMxOWFkOGI3OTIgPSAkKCc8ZGl2IGlkPSJodG1sX2Q3MDgzODA1ZTlhYzQ3MTk5Y2MxMzZjMTlhZDhiNzkyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV29vZHMgRHJpdmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85Nzg1ZTA0ZTc5YWY0N2FhODg2MzA0MzYwZWFhYTNmMy5zZXRDb250ZW50KGh0bWxfZDcwODM4MDVlOWFjNDcxOTljYzEzNmMxOWFkOGI3OTIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8yZGQ3OTNkMzgyOWM0MmYwODg4YjUwOWYxNTAzMjc5Mi5iaW5kUG9wdXAocG9wdXBfOTc4NWUwNGU3OWFmNDdhYTg4NjMwNDM2MGVhYWEzZjMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfOWY3MjM4NjMzMmZlNDUyMmE1MDRlZGU3NGY1NjA1MWMgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUxMjkyOCwgLTEuMjAzNTE5MV0sIFs1MC42NTIwNzEsIC0xLjIwMjYzMTFdLCBbNTAuNjUyMzIwMywgLTEuMjAyMzQ2Nl0sIFs1MC42NTIzNTEyLCAtMS4yMDIxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjhiMmM4YWM4OWI1NGUxZjk1ZjgzNjA1ZDQ2YTlmNDYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMzI1MTIxODFjNTBkNGFkNmEzMGNhMmZkYzk2ZTkzMjIgPSAkKCc8ZGl2IGlkPSJodG1sXzMyNTEyMTgxYzUwZDRhZDZhMzBjYTJmZGM5NmU5MzIyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV29vZHMgRHJpdmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82OGIyYzhhYzg5YjU0ZTFmOTVmODM2MDVkNDZhOWY0Ni5zZXRDb250ZW50KGh0bWxfMzI1MTIxODFjNTBkNGFkNmEzMGNhMmZkYzk2ZTkzMjIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV85ZjcyMzg2MzMyZmU0NTIyYTUwNGVkZTc0ZjU2MDUxYy5iaW5kUG9wdXAocG9wdXBfNjhiMmM4YWM4OWI1NGUxZjk1ZjgzNjA1ZDQ2YTlmNDYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMGQxMTVjZmZmNmEyNGIwYzlmNGNhZmQwYjhhMjE4NmYgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjU0NTc0LCAtMS4yMDQ5MDVdLCBbNTAuNjU0NDk5NSwgLTEuMjA0NDc0XSwgWzUwLjY1NDM0NTcsIC0xLjIwNDQzODldLCBbNTAuNjU0MTAyOCwgLTEuMjA0MzM5Nl0sIFs1MC42NTM4NzA0LCAtMS4yMDQxNjg4XSwgWzUwLjY1Mzc1MTYsIC0xLjIwNDA4MTRdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mYTIwOTQ0ZjU1ZGY0ZmI2YjViMWMxNDg3MDM4NTY2OSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kOWIyMDQ1ZjFiODg0ODE1YTFhMmE5ZWI4YWYwMGYyMSA9ICQoJzxkaXYgaWQ9Imh0bWxfZDliMjA0NWYxYjg4NDgxNWExYTJhOWViOGFmMDBmMjEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJGb3Jlc3QgRGVsbCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2ZhMjA5NDRmNTVkZjRmYjZiNWIxYzE0ODcwMzg1NjY5LnNldENvbnRlbnQoaHRtbF9kOWIyMDQ1ZjFiODg0ODE1YTFhMmE5ZWI4YWYwMGYyMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzBkMTE1Y2ZmZjZhMjRiMGM5ZjRjYWZkMGI4YTIxODZmLmJpbmRQb3B1cChwb3B1cF9mYTIwOTQ0ZjU1ZGY0ZmI2YjViMWMxNDg3MDM4NTY2OSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9lNDA3Zjk3ZTAwZmI0MGYxYmRmNDE0NjA4OGNmYTZhNiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTUyODg2LCAtMS4yMDIyMjUzXSwgWzUwLjY1NTA0NzEsIC0xLjIwMjg5ODNdLCBbNTAuNjU0OTU0MSwgLTEuMjAzMDUwNV0sIFs1MC42NTQ0NjEsIC0xLjIwMzIxMzZdLCBbNTAuNjU0MjY3MiwgLTEuMjAzMjMwN10sIFs1MC42NTQxMTg5LCAtMS4yMDMxNjQxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzdlNTVjYWE4N2RmNDhiYjk3NGZmZGI3ZDc3ODg4NTIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNzIwYzYwOGQ3MzMwNGQ1YmJlMGVhYzE0NWM0NmIzNGYgPSAkKCc8ZGl2IGlkPSJodG1sXzcyMGM2MDhkNzMzMDRkNWJiZTBlYWMxNDVjNDZiMzRmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQ3VwcmVzc3VzIEF2ZW51ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzc3ZTU1Y2FhODdkZjQ4YmI5NzRmZmRiN2Q3Nzg4ODUyLnNldENvbnRlbnQoaHRtbF83MjBjNjA4ZDczMzA0ZDViYmUwZWFjMTQ1YzQ2YjM0Zik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2U0MDdmOTdlMDBmYjQwZjFiZGY0MTQ2MDg4Y2ZhNmE2LmJpbmRQb3B1cChwb3B1cF83N2U1NWNhYTg3ZGY0OGJiOTc0ZmZkYjdkNzc4ODg1Mik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV84MGFjNWFhYWFmZGQ0NDEzYTBjYjAwNGZkMDdhZTAzMSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTMyNTU2LCAtMS4yMDM3NDMxXSwgWzUwLjY1MzIwOTIsIC0xLjIwMzczODddLCBbNTAuNjUzMTQ5MiwgLTEuMjAzNzYzNV0sIFs1MC42NTMwODIyLCAtMS4yMDM4OTIyXSwgWzUwLjY1MzAyMjEsIC0xLjIwNDA0NDJdLCBbNTAuNjUyOTA3MiwgLTEuMjA0MjczMV0sIFs1MC42NTI0NjYxLCAtMS4yMDQ3OTQ0XSwgWzUwLjY1MjA0MTQsIC0xLjIwNTI5NV0sIFs1MC42NTE5NTU3LCAtMS4yMDUzMDk2XSwgWzUwLjY1MTkzNzksIC0xLjIwNTI3NTZdLCBbNTAuNjUxODY1OCwgLTEuMjA1MTM3N10sIFs1MC42NTE3OTg1LCAtMS4yMDUwNDQyXSwgWzUwLjY1MTY0NzYsIC0xLjIwNDgzNDVdLCBbNTAuNjUxNTc1MiwgLTEuMjA0NjgzNV0sIFs1MC42NTE2MDQxLCAtMS4yMDQ1MTI4XSwgWzUwLjY1MjM0NDQsIC0xLjIwMzcyNTldLCBbNTAuNjUyNTQ1MSwgLTEuMjAzNTAyOF0sIFs1MC42NTI2MTE1LCAtMS4yMDM0MjldLCBbNTAuNjUyODU1NywgLTEuMjAzMTU3M10sIFs1MC42NTI5MDYsIC0xLjIwMzE3MV0sIFs1MC42NTI5NDQxLCAtMS4yMDMxODE0XSwgWzUwLjY1MzE0NSwgLTEuMjAzNDk5OF0sIFs1MC42NTMyMTgsIC0xLjIwMzY2MTZdLCBbNTAuNjUzMjU1NiwgLTEuMjAzNzQzMV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2IwMjcwYTFiM2Q1YjQ4ODI5NmI4ODJkYmU4YjkwZTQ5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzg3OTIwMzYyOWQ4ZTRjZmI4NTMwYTJiZTI5MzJiYzc5ID0gJCgnPGRpdiBpZD0iaHRtbF84NzkyMDM2MjlkOGU0Y2ZiODUzMGEyYmUyOTMyYmM3OSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkZvcmVzdCBXYXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iMDI3MGExYjNkNWI0ODgyOTZiODgyZGJlOGI5MGU0OS5zZXRDb250ZW50KGh0bWxfODc5MjAzNjI5ZDhlNGNmYjg1MzBhMmJlMjkzMmJjNzkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV84MGFjNWFhYWFmZGQ0NDEzYTBjYjAwNGZkMDdhZTAzMS5iaW5kUG9wdXAocG9wdXBfYjAyNzBhMWIzZDViNDg4Mjk2Yjg4MmRiZThiOTBlNDkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMThlZmI0MDRjYTZkNGJkNmJhYzY4MzVkOTlmNmJmMzQgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjUzMjU1NiwgLTEuMjAzNzQzMV0sIFs1MC42NTMyMTgsIC0xLjIwMzY2MTZdLCBbNTAuNjUzMTQ1LCAtMS4yMDM0OTk4XSwgWzUwLjY1Mjk0NDEsIC0xLjIwMzE4MTRdLCBbNTAuNjUyOTA2LCAtMS4yMDMxNzFdLCBbNTAuNjUyODU1NywgLTEuMjAzMTU3M10sIFs1MC42NTI2MTE1LCAtMS4yMDM0MjldLCBbNTAuNjUyNTQ1MSwgLTEuMjAzNTAyOF0sIFs1MC42NTIzNDQ0LCAtMS4yMDM3MjU5XSwgWzUwLjY1MTYwNDEsIC0xLjIwNDUxMjhdLCBbNTAuNjUxNTc1MiwgLTEuMjA0NjgzNV0sIFs1MC42NTE2NDc2LCAtMS4yMDQ4MzQ1XSwgWzUwLjY1MTc5ODUsIC0xLjIwNTA0NDJdLCBbNTAuNjUxODY1OCwgLTEuMjA1MTM3N10sIFs1MC42NTE5Mzc5LCAtMS4yMDUyNzU2XSwgWzUwLjY1MTk1NTcsIC0xLjIwNTMwOTZdLCBbNTAuNjUyMDQxNCwgLTEuMjA1Mjk1XSwgWzUwLjY1MjQ2NjEsIC0xLjIwNDc5NDRdLCBbNTAuNjUyOTA3MiwgLTEuMjA0MjczMV0sIFs1MC42NTMwMjIxLCAtMS4yMDQwNDQyXSwgWzUwLjY1MzA4MjIsIC0xLjIwMzg5MjJdLCBbNTAuNjUzMTQ5MiwgLTEuMjAzNzYzNV0sIFs1MC42NTMyMDkyLCAtMS4yMDM3Mzg3XSwgWzUwLjY1MzI1NTYsIC0xLjIwMzc0MzFdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zZjE4MTk4M2Q0MzU0MzBkODhhOWYxZGI5MjY1MzgzMyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jZGMyMmEzMDAwMGU0MzJlOWNlZDk3ZTAxODBhZTQwYSA9ICQoJzxkaXYgaWQ9Imh0bWxfY2RjMjJhMzAwMDBlNDMyZTljZWQ5N2UwMTgwYWU0MGEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJGb3Jlc3QgV2F5IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfM2YxODE5ODNkNDM1NDMwZDg4YTlmMWRiOTI2NTM4MzMuc2V0Q29udGVudChodG1sX2NkYzIyYTMwMDAwZTQzMmU5Y2VkOTdlMDE4MGFlNDBhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMThlZmI0MDRjYTZkNGJkNmJhYzY4MzVkOTlmNmJmMzQuYmluZFBvcHVwKHBvcHVwXzNmMTgxOTgzZDQzNTQzMGQ4OGE5ZjFkYjkyNjUzODMzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzZjMjY2MWJkMjI3ZTQyNGE5NzczYzNiN2NjNjEyNGZjID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MzI1NTYsIC0xLjIwMzc0MzFdLCBbNTAuNjUzNDE4OCwgLTEuMjAzOTQ5NV0sIFs1MC42NTM1NjQxLCAtMS4yMDQwOTkzXSwgWzUwLjY1MzY5NjMsIC0xLjIwNDIxMjldXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80ZTNjNGMwMjgyZjc0YThhOWQyNzI5MTgwMDc5ZmI5NiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84OGFkNzg4ODViYzI0ZWRhYTdiODk2MjljYjZkZWRiMCA9ICQoJzxkaXYgaWQ9Imh0bWxfODhhZDc4ODg1YmMyNGVkYWE3Yjg5NjI5Y2I2ZGVkYjAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJGb3Jlc3QgV2F5IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNGUzYzRjMDI4MmY3NGE4YTlkMjcyOTE4MDA3OWZiOTYuc2V0Q29udGVudChodG1sXzg4YWQ3ODg4NWJjMjRlZGFhN2I4OTYyOWNiNmRlZGIwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNmMyNjYxYmQyMjdlNDI0YTk3NzNjM2I3Y2M2MTI0ZmMuYmluZFBvcHVwKHBvcHVwXzRlM2M0YzAyODJmNzRhOGE5ZDI3MjkxODAwNzlmYjk2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzc3ZGZkMTc4NWJiZDRiY2RhYTEyYjViNTIzNDFkMTRiID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY0NzE2OTIsIC0xLjIwMzQxOTVdLCBbNTAuNjQ3MTkxMSwgLTEuMjAzNzc0N10sIFs1MC42NDcyMzU5LCAtMS4yMDQ4NDZdLCBbNTAuNjQ3MjY5OSwgLTEuMjA1NTI5M10sIFs1MC42NDczMTgzLCAtMS4yMDY0NjVdLCBbNTAuNjQ3MzU4MywgLTEuMjA3NDI2NV0sIFs1MC42NDczNzk3LCAtMS4yMDc3NzE1XSwgWzUwLjY0NzM5NzcsIC0xLjIwODA2MzFdLCBbNTAuNjQ3NTA5LCAtMS4yMDg0NDFdLCBbNTAuNjQ3NjA3OCwgLTEuMjA4NzA0OF0sIFs1MC42NDc2ODUxLCAtMS4yMDg5MTI3XSwgWzUwLjY0Nzc1ODksIC0xLjIwOTIzNzldLCBbNTAuNjQ3OTE5LCAtMS4yMDk5Mjk5XSwgWzUwLjY0ODA2MDYsIC0xLjIxMDY3ODhdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kOGU5MmNiMGZkN2Q0ZGM3YjJjMTk1ODQzOTJmZTAwMyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80YTIzNTYxZjc1NWY0ZDM2YWZkN2Y2YzNjODA4Mzk2NyA9ICQoJzxkaXYgaWQ9Imh0bWxfNGEyMzU2MWY3NTVmNGQzNmFmZDdmNmMzYzgwODM5NjciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJOZXdwb3J0IFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kOGU5MmNiMGZkN2Q0ZGM3YjJjMTk1ODQzOTJmZTAwMy5zZXRDb250ZW50KGh0bWxfNGEyMzU2MWY3NTVmNGQzNmFmZDdmNmMzYzgwODM5NjcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV83N2RmZDE3ODViYmQ0YmNkYWExMmI1YjUyMzQxZDE0Yi5iaW5kUG9wdXAocG9wdXBfZDhlOTJjYjBmZDdkNGRjN2IyYzE5NTg0MzkyZmUwMDMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZTlhMTQyYzc0ZWYzNDMwMTk5NGQxNTdiMWIzNTVjMDggPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQ3MTY5MiwgLTEuMjAzNDE5NV0sIFs1MC42NDcwOTk3LCAtMS4yMDMwNjM4XSwgWzUwLjY0NzAxNSwgLTEuMjAyODA0NF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzljNWFkZDMzYjA3OTQ0NmY4ODRmYTZhNzg3ZDBlY2QzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2ViMWE1M2ZhZTg4MDRlOGJhYTFjZDUzMzQ3NDg2NzcyID0gJCgnPGRpdiBpZD0iaHRtbF9lYjFhNTNmYWU4ODA0ZThiYWExY2Q1MzM0NzQ4Njc3MiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Ik5ld3BvcnQgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzljNWFkZDMzYjA3OTQ0NmY4ODRmYTZhNzg3ZDBlY2QzLnNldENvbnRlbnQoaHRtbF9lYjFhNTNmYWU4ODA0ZThiYWExY2Q1MzM0NzQ4Njc3Mik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2U5YTE0MmM3NGVmMzQzMDE5OTRkMTU3YjFiMzU1YzA4LmJpbmRQb3B1cChwb3B1cF85YzVhZGQzM2IwNzk0NDZmODg0ZmE2YTc4N2QwZWNkMyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV85ZjA1MzI3YWQxNzk0MTI4YjZjYThmNGJkZTBjNWYyZSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NDcxNjkyLCAtMS4yMDM0MTk1XSwgWzUwLjY0NzE2MTEsIC0xLjIwMzEwNTRdLCBbNTAuNjQ3MTU2NCwgLTEuMjAzMDI2M10sIFs1MC42NDcxNDM3LCAtMS4yMDI3ODgxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfM2U2MWVkMzcyNTk4NDcwODg1NWE5Njc3ZTkwMTc4MDIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmYyNjM0YzFiODAzNDZkNmIzNmRjM2UzMzE0NWUxYTMgPSAkKCc8ZGl2IGlkPSJodG1sXzJmMjYzNGMxYjgwMzQ2ZDZiMzZkYzNlMzMxNDVlMWEzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5OYU48L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzNlNjFlZDM3MjU5ODQ3MDg4NTVhOTY3N2U5MDE3ODAyLnNldENvbnRlbnQoaHRtbF8yZjI2MzRjMWI4MDM0NmQ2YjM2ZGMzZTMzMTQ1ZTFhMyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzlmMDUzMjdhZDE3OTQxMjhiNmNhOGY0YmRlMGM1ZjJlLmJpbmRQb3B1cChwb3B1cF8zZTYxZWQzNzI1OTg0NzA4ODU1YTk2NzdlOTAxNzgwMik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV85ZDMxNTBjNWY5OGE0YzMwODNkNjk2MTMyN2JlMjZmMSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTQ2Mjk3LCAtMS4yMTA4NTIxXSwgWzUwLjY1NDc4MjksIC0xLjIxMDk1MDVdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kNWQxYzA1NTljMjY0NzJlYTJiYmUzNjUzYWUwNTJjMyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mY2I1ODA2ZGJkNjc0OTA5YjQ1Yjc5ZmE2Nzg2ODhmYSA9ICQoJzxkaXYgaWQ9Imh0bWxfZmNiNTgwNmRiZDY3NDkwOWI0NWI3OWZhNjc4Njg4ZmEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXaW5mb3JkIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kNWQxYzA1NTljMjY0NzJlYTJiYmUzNjUzYWUwNTJjMy5zZXRDb250ZW50KGh0bWxfZmNiNTgwNmRiZDY3NDkwOWI0NWI3OWZhNjc4Njg4ZmEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV85ZDMxNTBjNWY5OGE0YzMwODNkNjk2MTMyN2JlMjZmMS5iaW5kUG9wdXAocG9wdXBfZDVkMWMwNTU5YzI2NDcyZWEyYmJlMzY1M2FlMDUyYzMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMzI4MTZjYzFmNDFmNDZiZWI4ZGFhNjVjM2RjNTg0NDYgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjU0NjI5NywgLTEuMjEwODUyMV0sIFs1MC42NTQ0ODg3LCAtMS4yMTA4MDg1XSwgWzUwLjY1NDMyNTcsIC0xLjIxMDc2MzVdLCBbNTAuNjUzODc5NywgLTEuMjEwNjY3Nl0sIFs1MC42NTM1MzU3LCAtMS4yMTA2NzkxXSwgWzUwLjY1MzQyMzcsIC0xLjIxMDY4MzldLCBbNTAuNjUyNjU2OSwgLTEuMjEwNTM2XSwgWzUwLjY1MjUxMjYsIC0xLjIxMDUwODJdLCBbNTAuNjUxODg3NywgLTEuMjEwMzc4NV0sIFs1MC42NTE4MjIsIC0xLjIxMDM2NDldLCBbNTAuNjUxNTEzLCAtMS4yMTAzMzQ5XSwgWzUwLjY1MTMzODQsIC0xLjIxMDM0ODNdLCBbNTAuNjUxMTM1NCwgLTEuMjEwMzYzOF0sIFs1MC42NTEwMzU3LCAtMS4yMTAzNzk3XSwgWzUwLjY1MDk3MzUsIC0xLjIxMDM4MzZdLCBbNTAuNjQ5ODM0NCwgLTEuMjEwNTg2OV0sIFs1MC42NDk2NTkxLCAtMS4yMTA2MTVdLCBbNTAuNjQ5MzY3OCwgLTEuMjEwNjUzOV0sIFs1MC42NDg5MTU3LCAtMS4yMTA2OTU5XSwgWzUwLjY0ODIwNjcsIC0xLjIxMDcxMTldLCBbNTAuNjQ4MDYwNiwgLTEuMjEwNjc4OF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzEyYzc3ZWYyOTU1NjRmMzI5YjE1NWY2NGQ0ZTcxZjE2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzZkOTk0NjM5NGJmMjQ4Y2FhNWNjMmZlOTRiNmUwZDVkID0gJCgnPGRpdiBpZD0iaHRtbF82ZDk5NDYzOTRiZjI0OGNhYTVjYzJmZTk0YjZlMGQ1ZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IldpbmZvcmQgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzEyYzc3ZWYyOTU1NjRmMzI5YjE1NWY2NGQ0ZTcxZjE2LnNldENvbnRlbnQoaHRtbF82ZDk5NDYzOTRiZjI0OGNhYTVjYzJmZTk0YjZlMGQ1ZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzMyODE2Y2MxZjQxZjQ2YmViOGRhYTY1YzNkYzU4NDQ2LmJpbmRQb3B1cChwb3B1cF8xMmM3N2VmMjk1NTY0ZjMyOWIxNTVmNjRkNGU3MWYxNik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV81ZDg4M2Q5NmI1MGM0YTk2YTYzODhmNGM1YTYzYmQ2MCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTQ2Mjk3LCAtMS4yMTA4NTIxXSwgWzUwLjY1NDY0NzYsIC0xLjIxMDYwMzVdLCBbNTAuNjU0NjM2NywgLTEuMjEwMzg4N10sIFs1MC42NTQ2MTgsIC0xLjIxMDIxMDNdLCBbNTAuNjU0NTMwMiwgLTEuMjA5NzIwMl0sIFs1MC42NTQ0NzM0LCAtMS4yMDk0MDI5XSwgWzUwLjY1NDEzNjcsIC0xLjIwNzU2M10sIFs1MC42NTM2NzA4LCAtMS4yMDQ5OTQ3XSwgWzUwLjY1MzYxMiwgLTEuMjA0NjU2NF0sIFs1MC42NTM2MDk3LCAtMS4yMDQ1MDczXSwgWzUwLjY1MzY0NDQsIC0xLjIwNDM2MDRdLCBbNTAuNjUzNjk2MywgLTEuMjA0MjEyOV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzM1MWM4NjdjMjY4MzRlODNiZTI2ZmMwYTFmYWM1ZWY4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2E3M2YxYTA2ZGVlNDRhMzI5MjQ5NjQyMTA3NTIxMDA4ID0gJCgnPGRpdiBpZD0iaHRtbF9hNzNmMWEwNmRlZTQ0YTMyOTI0OTY0MjEwNzUyMTAwOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkZvcmVzdCBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMzUxYzg2N2MyNjgzNGU4M2JlMjZmYzBhMWZhYzVlZjguc2V0Q29udGVudChodG1sX2E3M2YxYTA2ZGVlNDRhMzI5MjQ5NjQyMTA3NTIxMDA4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNWQ4ODNkOTZiNTBjNGE5NmE2Mzg4ZjRjNWE2M2JkNjAuYmluZFBvcHVwKHBvcHVwXzM1MWM4NjdjMjY4MzRlODNiZTI2ZmMwYTFmYWM1ZWY4KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzZmZGIxYzM4OGQ0YTQ2NmU5Y2EwMzcwOTYwMjM1YjRiID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY3NTgwNDgsIC0xLjIwMjcyMzNdLCBbNTAuNjc1OTA2NSwgLTEuMjAyNjY0Ml0sIFs1MC42NzYxMzA2LCAtMS4yMDI1OTg2XSwgWzUwLjY3NjM0MjIsIC0xLjIwMjQ4NzNdLCBbNTAuNjc2MzgxLCAtMS4yMDI0NDc3XSwgWzUwLjY3NjUwMzgsIC0xLjIwMjMyMjRdLCBbNTAuNjc2Njc3MSwgLTEuMjAyMTA3OF0sIFs1MC42NzY4NDA0LCAtMS4yMDE5MTRdLCBbNTAuNjc3MTA1NSwgLTEuMjAxNjczM10sIFs1MC42NzcyNzEyLCAtMS4yMDE1NzQ3XSwgWzUwLjY3NzM3MjksIC0xLjIwMTUyMTNdLCBbNTAuNjc3MzkxOSwgLTEuMjAxNTEwM10sIFs1MC42Nzc1Njk2LCAtMS4yMDEzNDA4XSwgWzUwLjY3ODQyNzgsIC0xLjIwMDQxNDddLCBbNTAuNjc4NjkyLCAtMS4yMDAyMTc3XSwgWzUwLjY3ODk0NzksIC0xLjIwMDIwMjhdLCBbNTAuNjc5MjAyMSwgLTEuMjAwMjQ0M10sIFs1MC42Nzk3OTkzLCAtMS4yMDAzODYxXSwgWzUwLjY4MDQxOTgsIC0xLjIwMDU5Ml0sIFs1MC42ODA4MDk4LCAtMS4yMDA2ODE2XSwgWzUwLjY4MTIxNzcsIC0xLjIwMDc4NjJdLCBbNTAuNjgxNTMzOCwgLTEuMjAwODc0N10sIFs1MC42ODE3NzY4LCAtMS4yMDEwNDFdLCBbNTAuNjgxOTYsIC0xLjIwMTIyODddLCBbNTAuNjgyMTYwNiwgLTEuMjAxNDM3OV0sIFs1MC42ODIzMzU4LCAtMS4yMDE1NjI4XSwgWzUwLjY4MjQzNzcsIC0xLjIwMTUzNzRdLCBbNTAuNjgyNTYzOSwgLTEuMjAxNDgyM10sIFs1MC42ODMxNzg4LCAtMS4yMDExOTQzXSwgWzUwLjY4MzUyOCwgLTEuMjAxMTI5NF0sIFs1MC42ODM1NjA4LCAtMS4yMDExMjY1XSwgWzUwLjY4MzYyMTQsIC0xLjIwMTE1NDldXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lODM4ZTM2MTM3ZjE0MzM3ODQxNmFkMTkzMTg1YzVhZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mZmFiZGEwZDBhMjU0YWIxYWUwODNmNzhlMDBlMjllNSA9ICQoJzxkaXYgaWQ9Imh0bWxfZmZhYmRhMGQwYTI1NGFiMWFlMDgzZjc4ZTAwZTI5ZTUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJLbmlnaHRvbiBTaHV0ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2U4MzhlMzYxMzdmMTQzMzc4NDE2YWQxOTMxODVjNWFmLnNldENvbnRlbnQoaHRtbF9mZmFiZGEwZDBhMjU0YWIxYWUwODNmNzhlMDBlMjllNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzZmZGIxYzM4OGQ0YTQ2NmU5Y2EwMzcwOTYwMjM1YjRiLmJpbmRQb3B1cChwb3B1cF9lODM4ZTM2MTM3ZjE0MzM3ODQxNmFkMTkzMTg1YzVhZik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8zZWNkOGMyOTQ3OWQ0ZmJjYWMzMmQ1NmI1NTMwYjFlYSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NzU4MDQ4LCAtMS4yMDI3MjMzXSwgWzUwLjY3NTcyNTUsIC0xLjIwMjk0XSwgWzUwLjY3NTQ3NDgsIC0xLjIwNDMwNDJdLCBbNTAuNjc1MjIwOSwgLTEuMjA1Njk1XSwgWzUwLjY3NDc4MSwgLTEuMjA5MjgwM10sIFs1MC42NzQ1MjM2LCAtMS4yMTA3NzAzXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDJlMTBiZmVkMmYwNDcwZWIxMWJhMWRjYzEwMTFhMGEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOGQ0N2U4OTc0NzRjNDMyNTgxMWU2OWE5ZDJhZjhjN2EgPSAkKCc8ZGl2IGlkPSJodG1sXzhkNDdlODk3NDc0YzQzMjU4MTFlNjlhOWQyYWY4YzdhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iS25pZ2h0b24gTGFuZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzAyZTEwYmZlZDJmMDQ3MGViMTFiYTFkY2MxMDExYTBhLnNldENvbnRlbnQoaHRtbF84ZDQ3ZTg5NzQ3NGM0MzI1ODExZTY5YTlkMmFmOGM3YSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzNlY2Q4YzI5NDc5ZDRmYmNhYzMyZDU2YjU1MzBiMWVhLmJpbmRQb3B1cChwb3B1cF8wMmUxMGJmZWQyZjA0NzBlYjExYmExZGNjMTAxMWEwYSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9mYzA0MDIwZTU4MWM0OGUzYmMzMGRjMzU0MWQwMTljMyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NzU4MDQ4LCAtMS4yMDI3MjMzXSwgWzUwLjY3NTY5MywgLTEuMjAyNzAzOV0sIFs1MC42NzU1MTYyLCAtMS4yMDI3MTQ3XSwgWzUwLjY3NTMyODgsIC0xLjIwMjc5NjZdLCBbNTAuNjc1MTEzLCAtMS4yMDI4Mjg4XSwgWzUwLjY3NDkzODIsIC0xLjIwMjgwMDZdLCBbNTAuNjc0NTU3MSwgLTEuMjAyNzI2OV0sIFs1MC42NzQwMjY4LCAtMS4yMDI1OTgyXSwgWzUwLjY3Mzk2NDgsIC0xLjIwMjU1NzldLCBbNTAuNjczOTIyMywgLTEuMjAyNDQ2Nl0sIFs1MC42NzM5MTE3LCAtMS4yMDIzNDI0XSwgWzUwLjY3MzkxNSwgLTEuMjAyMjE0Nl0sIFs1MC42NzM5NzYzLCAtMS4yMDExNzcxXSwgWzUwLjY3NDA1MzYsIC0xLjIwMDM1NDhdLCBbNTAuNjc0MTI2MywgLTEuMTk5Nzc1MV0sIFs1MC42NzQxMDcyLCAtMS4xOTk1NTAyXSwgWzUwLjY3NDAyNzMsIC0xLjE5OTQ0MTldLCBbNTAuNjczODEwNSwgLTEuMTk5MzA2NF0sIFs1MC42NzM3MTk1LCAtMS4xOTkyMjU5XSwgWzUwLjY3MzY5NSwgLTEuMTk5MTU1M10sIFs1MC42NzM3MDkzLCAtMS4xOTg4OTZdLCBbNTAuNjczNzk2OSwgLTEuMTk4MzU0Ml0sIFs1MC42NzM5MTI1LCAtMS4xOTc4OTAyXSwgWzUwLjY3NDAxNjIsIC0xLjE5NzQ4MjNdLCBbNTAuNjc0MDU1NSwgLTEuMTk3MTk2Nl0sIFs1MC42NzQxMDA2LCAtMS4xOTY5ODc5XSwgWzUwLjY3NDIxNzIsIC0xLjE5NjYwOTZdLCBbNTAuNjc0MzU4NiwgLTEuMTk2MjQwNV0sIFs1MC42NzQ0ODk2LCAtMS4xOTU4MDk0XSwgWzUwLjY3NDU1NDYsIC0xLjE5NTU0OV0sIFs1MC42NzQ2NDk4LCAtMS4xOTUxNzk5XSwgWzUwLjY3NDY3ODIsIC0xLjE5NTAwMjldLCBbNTAuNjc0Njg3NiwgLTEuMTk0OTQ0NF0sIFs1MC42NzQ2MzA3LCAtMS4xOTQ3NTEyXSwgWzUwLjY3NDM3NjUsIC0xLjE5NDUyMDJdLCBbNTAuNjc0MzE3MywgLTEuMTk0NDE0NV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2MyY2EyNDMxY2JjMjQzY2VhOTg2MjM2MDlhOTA3ODUxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2ZmZjVlNzI4NDZhNzQxZDU5N2IzNWEzOTAyOGEyOTU3ID0gJCgnPGRpdiBpZD0iaHRtbF9mZmY1ZTcyODQ2YTc0MWQ1OTdiMzVhMzkwMjhhMjk1NyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Ikxvd2VyIEtuaWdodG9uIExhbmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jMmNhMjQzMWNiYzI0M2NlYTk4NjIzNjA5YTkwNzg1MS5zZXRDb250ZW50KGh0bWxfZmZmNWU3Mjg0NmE3NDFkNTk3YjM1YTM5MDI4YTI5NTcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9mYzA0MDIwZTU4MWM0OGUzYmMzMGRjMzU0MWQwMTljMy5iaW5kUG9wdXAocG9wdXBfYzJjYTI0MzFjYmMyNDNjZWE5ODYyMzYwOWE5MDc4NTEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfYTUyOWU2ODE3YjljNDEwMGE3YTkwNjMyMjYyN2M3YjEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjc0MzE3MywgLTEuMTk0NDE0NV0sIFs1MC42NzQzNzY1LCAtMS4xOTQ1MjAyXSwgWzUwLjY3NDYzMDcsIC0xLjE5NDc1MTJdLCBbNTAuNjc0Njg3NiwgLTEuMTk0OTQ0NF0sIFs1MC42NzQ2NzgyLCAtMS4xOTUwMDI5XSwgWzUwLjY3NDY0OTgsIC0xLjE5NTE3OTldLCBbNTAuNjc0NTU0NiwgLTEuMTk1NTQ5XSwgWzUwLjY3NDQ4OTYsIC0xLjE5NTgwOTRdLCBbNTAuNjc0MzU4NiwgLTEuMTk2MjQwNV0sIFs1MC42NzQyMTcyLCAtMS4xOTY2MDk2XSwgWzUwLjY3NDEwMDYsIC0xLjE5Njk4NzldLCBbNTAuNjc0MDU1NSwgLTEuMTk3MTk2Nl0sIFs1MC42NzQwMTYyLCAtMS4xOTc0ODIzXSwgWzUwLjY3MzkxMjUsIC0xLjE5Nzg5MDJdLCBbNTAuNjczNzk2OSwgLTEuMTk4MzU0Ml0sIFs1MC42NzM3MDkzLCAtMS4xOTg4OTZdLCBbNTAuNjczNjk1LCAtMS4xOTkxNTUzXSwgWzUwLjY3MzcxOTUsIC0xLjE5OTIyNTldLCBbNTAuNjczODEwNSwgLTEuMTk5MzA2NF0sIFs1MC42NzQwMjczLCAtMS4xOTk0NDE5XSwgWzUwLjY3NDEwNzIsIC0xLjE5OTU1MDJdLCBbNTAuNjc0MTI2MywgLTEuMTk5Nzc1MV0sIFs1MC42NzQwNTM2LCAtMS4yMDAzNTQ4XSwgWzUwLjY3Mzk3NjMsIC0xLjIwMTE3NzFdLCBbNTAuNjczOTE1LCAtMS4yMDIyMTQ2XSwgWzUwLjY3MzkxMTcsIC0xLjIwMjM0MjRdLCBbNTAuNjczOTIyMywgLTEuMjAyNDQ2Nl0sIFs1MC42NzM5NjQ4LCAtMS4yMDI1NTc5XSwgWzUwLjY3NDAyNjgsIC0xLjIwMjU5ODJdLCBbNTAuNjc0NTU3MSwgLTEuMjAyNzI2OV0sIFs1MC42NzQ5MzgyLCAtMS4yMDI4MDA2XSwgWzUwLjY3NTExMywgLTEuMjAyODI4OF0sIFs1MC42NzUzMjg4LCAtMS4yMDI3OTY2XSwgWzUwLjY3NTUxNjIsIC0xLjIwMjcxNDddLCBbNTAuNjc1NjkzLCAtMS4yMDI3MDM5XSwgWzUwLjY3NTgwNDgsIC0xLjIwMjcyMzNdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80N2RjM2RmYTczN2Q0NTAxOTJjNGRkNWQ2MDJiYmYwOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83MjVmZTRjOTllMjM0Yzc1ODU5MDZiMmY1MTYyMDlhMiA9ICQoJzxkaXYgaWQ9Imh0bWxfNzI1ZmU0Yzk5ZTIzNGM3NTg1OTA2YjJmNTE2MjA5YTIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJMb3dlciBLbmlnaHRvbiBMYW5lIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNDdkYzNkZmE3MzdkNDUwMTkyYzRkZDVkNjAyYmJmMDguc2V0Q29udGVudChodG1sXzcyNWZlNGM5OWUyMzRjNzU4NTkwNmIyZjUxNjIwOWEyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfYTUyOWU2ODE3YjljNDEwMGE3YTkwNjMyMjYyN2M3YjEuYmluZFBvcHVwKHBvcHVwXzQ3ZGMzZGZhNzM3ZDQ1MDE5MmM0ZGQ1ZDYwMmJiZjA4KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzEyY2NmYTFlMjU1ODRjYjFiYzAyNWRhYTdiNDYxZjRmID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NTU4OTEsIC0xLjIwNTUxMTFdLCBbNTAuNjY1NjA1MSwgLTEuMjA1NjUzOF0sIFs1MC42NjU2MzIxLCAtMS4yMDU5NTddLCBbNTAuNjY1NjQzNiwgLTEuMjA2MTI4Ml0sIFs1MC42NjU2NzI0LCAtMS4yMDYyNzA4XSwgWzUwLjY2NTgzMjIsIC0xLjIwNzExNTZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kMDNkZTBhYTQ5ZDc0YmJiYTEyZTk5NTc2NTZhYzFiNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80MzBkYTIxNmJiNDY0NDRjYjMzOTk1MjcxY2I0MWNjOCA9ICQoJzxkaXYgaWQ9Imh0bWxfNDMwZGEyMTZiYjQ2NDQ0Y2IzMzk5NTI3MWNiNDFjYzgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlsiU2Nob29sIExhbmUiLCAiU2Nob29sIENsb3NlIl08L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2QwM2RlMGFhNDlkNzRiYmJhMTJlOTk1NzY1NmFjMWI2LnNldENvbnRlbnQoaHRtbF80MzBkYTIxNmJiNDY0NDRjYjMzOTk1MjcxY2I0MWNjOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzEyY2NmYTFlMjU1ODRjYjFiYzAyNWRhYTdiNDYxZjRmLmJpbmRQb3B1cChwb3B1cF9kMDNkZTBhYTQ5ZDc0YmJiYTEyZTk5NTc2NTZhYzFiNik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9jZTcwODkyMmVkNDQ0YWI2YTg3N2E4OTBiMzIxYWNiZCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjU4MzIyLCAtMS4yMDcxMTU2XSwgWzUwLjY2NTI5NzYsIC0xLjIwNzQxMTJdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zNWQwNjIzZTc5Mjc0MWIzYTMwOTVmMTM2YzY4ZGUzMyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iMDQ4MmIyZDAwYTM0MjkzOGQ4MzA5NmQ1YjFkZTFmNyA9ICQoJzxkaXYgaWQ9Imh0bWxfYjA0ODJiMmQwMGEzNDI5MzhkODMwOTZkNWIxZGUxZjciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJIaWdoIFN0cmVldCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzM1ZDA2MjNlNzkyNzQxYjNhMzA5NWYxMzZjNjhkZTMzLnNldENvbnRlbnQoaHRtbF9iMDQ4MmIyZDAwYTM0MjkzOGQ4MzA5NmQ1YjFkZTFmNyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2NlNzA4OTIyZWQ0NDRhYjZhODc3YTg5MGIzMjFhY2JkLmJpbmRQb3B1cChwb3B1cF8zNWQwNjIzZTc5Mjc0MWIzYTMwOTVmMTM2YzY4ZGUzMyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV85NzM0N2JiZjIxMDc0MDRiOWM5MzlmZjhkZDc0ODQxNyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjU4MzIyLCAtMS4yMDcxMTU2XSwgWzUwLjY2NjAzMTEsIC0xLjIwNjk5ODldLCBbNTAuNjY2MjU4LCAtMS4yMDY4NzQxXSwgWzUwLjY2NjM5MzIsIC0xLjIwNjgyMDRdLCBbNTAuNjY2NTM3NywgLTEuMjA2NzgyOV0sIFs1MC42NjY3NDc3LCAtMS4yMDY3NzQ5XSwgWzUwLjY2NzAyNzgsIC0xLjIwNjgwMTJdLCBbNTAuNjY3MzI1LCAtMS4yMDY5MzAxXSwgWzUwLjY2NzY1MjYsIC0xLjIwNzI3XSwgWzUwLjY2Nzk3NDIsIC0xLjIwNzYyNV0sIFs1MC42Njg2ODE3LCAtMS4yMDgyMjU1XSwgWzUwLjY2ODg3NzQsIC0xLjIwODQ0MzldLCBbNTAuNjY5NjE0MywgLTEuMjA5MjE2M10sIFs1MC42Njk2NzMsIC0xLjIwOTI4MjFdLCBbNTAuNjY5OTE2MSwgLTEuMjA5NTU1NF0sIFs1MC42Njk5Njk2LCAtMS4yMDk2MTk4XSwgWzUwLjY3MDAxMTMsIC0xLjIwOTY2NzldLCBbNTAuNjcwMDQyMywgLTEuMjA5NzAwM10sIFs1MC42NzAyNTc4LCAtMS4yMDk5NTExXSwgWzUwLjY3MDUyMywgLTEuMjEwMjcwNF0sIFs1MC42NzA2MjE3LCAtMS4yMTAzNDgyXSwgWzUwLjY3MDcyNTIsIC0xLjIxMDQxNzRdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mMGY1YWRmODQzN2Q0NDM3YmMwNWMxOGZmOWQwNjY1YyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82ZDI3YWI4NjU5Mjc0ZmYyYTI3NjM3MTFmNjk0MmVjNiA9ICQoJzxkaXYgaWQ9Imh0bWxfNmQyN2FiODY1OTI3NGZmMmEyNzYzNzExZjY5NDJlYzYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlsiVGhlIFNodXRlIiwgIkhpZ2ggU3RyZWV0Il08L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2YwZjVhZGY4NDM3ZDQ0MzdiYzA1YzE4ZmY5ZDA2NjVjLnNldENvbnRlbnQoaHRtbF82ZDI3YWI4NjU5Mjc0ZmYyYTI3NjM3MTFmNjk0MmVjNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzk3MzQ3YmJmMjEwNzQwNGI5YzkzOWZmOGRkNzQ4NDE3LmJpbmRQb3B1cChwb3B1cF9mMGY1YWRmODQzN2Q0NDM3YmMwNWMxOGZmOWQwNjY1Yyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9mZmRhZjM0NWNhNzc0ZmRiYmFmYjdjYTI5ZjE5YjZlZCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjU4MzIyLCAtMS4yMDcxMTU2XSwgWzUwLjY2NTY3MjQsIC0xLjIwNjI3MDhdLCBbNTAuNjY1NjQzNiwgLTEuMjA2MTI4Ml0sIFs1MC42NjU2MzIxLCAtMS4yMDU5NTddLCBbNTAuNjY1NjA1MSwgLTEuMjA1NjUzOF0sIFs1MC42NjU1ODkxLCAtMS4yMDU1MTExXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYjBlNTA3ODVmYTEzNDk3NWJjNDJjNjBhNDdkMDEyYzQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZmJlNDgyNGE3ODFmNDNlNjg0OTYxMDlmYTBjMWE1NTUgPSAkKCc8ZGl2IGlkPSJodG1sX2ZiZTQ4MjRhNzgxZjQzZTY4NDk2MTA5ZmEwYzFhNTU1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5bIlNjaG9vbCBMYW5lIiwgIlNjaG9vbCBDbG9zZSJdPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iMGU1MDc4NWZhMTM0OTc1YmM0MmM2MGE0N2QwMTJjNC5zZXRDb250ZW50KGh0bWxfZmJlNDgyNGE3ODFmNDNlNjg0OTYxMDlmYTBjMWE1NTUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9mZmRhZjM0NWNhNzc0ZmRiYmFmYjdjYTI5ZjE5YjZlZC5iaW5kUG9wdXAocG9wdXBfYjBlNTA3ODVmYTEzNDk3NWJjNDJjNjBhNDdkMDEyYzQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZWNhNWU3OTRiMGEzNGE0MDg1YzU2MzZlYzZmNzBiYTQgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY1MTYzOCwgLTEuMjA2OTQzMl0sIFs1MC42NjUyOTc2LCAtMS4yMDc0MTEyXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODZkNzlhMmM4YjYwNGEwMmI4ZmM3YjcyZjcxNDcwZTEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNzgyYjQxNzNmN2Y3NGE3NWE4NmNmNjk0MjMxZWZkMGUgPSAkKCc8ZGl2IGlkPSJodG1sXzc4MmI0MTczZjdmNzRhNzVhODZjZjY5NDIzMWVmZDBlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iTWlsZXN0b25lIENyZXNjZW50IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODZkNzlhMmM4YjYwNGEwMmI4ZmM3YjcyZjcxNDcwZTEuc2V0Q29udGVudChodG1sXzc4MmI0MTczZjdmNzRhNzVhODZjZjY5NDIzMWVmZDBlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfZWNhNWU3OTRiMGEzNGE0MDg1YzU2MzZlYzZmNzBiYTQuYmluZFBvcHVwKHBvcHVwXzg2ZDc5YTJjOGI2MDRhMDJiOGZjN2I3MmY3MTQ3MGUxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzE0MGQ4OWQ5ZTM2ZTQyMmZiYzY5NTlhMjI5NjYzODYzID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NDUzMywgLTEuMjA4MjI2N10sIFs1MC42NjQ2NDg0LCAtMS4yMDgwMzE5XSwgWzUwLjY2NDc2MiwgLTEuMjA3ODkxMV0sIFs1MC42NjQ4NDI1LCAtMS4yMDc3ODc4XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOWNkNDk2NzZjMzFkNGNhOGFmNGQ0NWEwMDA3OTY3MjYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTljODNiNTk5NTFmNGU4Nzg1ZWU2NjkzNzk0OTcyYjEgPSAkKCc8ZGl2IGlkPSJodG1sXzE5YzgzYjU5OTUxZjRlODc4NWVlNjY5Mzc5NDk3MmIxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV2luZm9yZCBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOWNkNDk2NzZjMzFkNGNhOGFmNGQ0NWEwMDA3OTY3MjYuc2V0Q29udGVudChodG1sXzE5YzgzYjU5OTUxZjRlODc4NWVlNjY5Mzc5NDk3MmIxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMTQwZDg5ZDllMzZlNDIyZmJjNjk1OWEyMjk2NjM4NjMuYmluZFBvcHVwKHBvcHVwXzljZDQ5Njc2YzMxZDRjYThhZjRkNDVhMDAwNzk2NzI2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzU0OGU4MTlmODA2ODRmZDI4N2Q2MzhjZTdlMjY0Njk3ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NDUzMywgLTEuMjA4MjI2N10sIFs1MC42NjQ0OTQ1LCAtMS4yMDgzMDg0XSwgWzUwLjY2NDQ4NjYsIC0xLjIwODMyNDldLCBbNTAuNjY0NDY3NiwgLTEuMjA4MzY1Ml0sIFs1MC42NjQzMTM1LCAtMS4yMDg2OTE3XSwgWzUwLjY2NDEzNTcsIC0xLjIwOTAyNF0sIFs1MC42NjM5NTM2LCAtMS4yMDkyMDFdLCBbNTAuNjYzMTIwNiwgLTEuMjA5ODcxNV0sIFs1MC42NjI5ODQyLCAtMS4yMDk5ODEzXSwgWzUwLjY2MjM3MzYsIC0xLjIxMDY0MTddLCBbNTAuNjYyMTIyNSwgLTEuMjEwOTE4XSwgWzUwLjY2MTkyNjgsIC0xLjIxMTA4MjFdLCBbNTAuNjYxNzUyLCAtMS4yMTExNzcyXSwgWzUwLjY2MTIxLCAtMS4yMTE0ODA2XSwgWzUwLjY2MTEwMDUsIC0xLjIxMTUyNjhdLCBbNTAuNjYwNzA2NSwgLTEuMjExNjkzXSwgWzUwLjY2MDQwMzMsIC0xLjIxMTc2MjddLCBbNTAuNjU5ODM1NywgLTEuMjExODE4Nl0sIFs1MC42NTkzODcsIC0xLjIxMTg5MzddLCBbNTAuNjU5MDgwNiwgLTEuMjExOTQxM11dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzczOGE2YjJmMjBjYjQwZDI4MzNmNzJhMmRlODE3MzkwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2VmN2M4MjU2YTc5OTQ0NjI4MzI3ZGU1NDg1NWI5NzZkID0gJCgnPGRpdiBpZD0iaHRtbF9lZjdjODI1NmE3OTk0NDYyODMyN2RlNTQ4NTViOTc2ZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IldpbmZvcmQgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzczOGE2YjJmMjBjYjQwZDI4MzNmNzJhMmRlODE3MzkwLnNldENvbnRlbnQoaHRtbF9lZjdjODI1NmE3OTk0NDYyODMyN2RlNTQ4NTViOTc2ZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzU0OGU4MTlmODA2ODRmZDI4N2Q2MzhjZTdlMjY0Njk3LmJpbmRQb3B1cChwb3B1cF83MzhhNmIyZjIwY2I0MGQyODMzZjcyYTJkZTgxNzM5MCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV84MDhjYzAwY2Y4NmY0MzIwODBkNDk3ODI5M2IzZTdkNSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjQ1MzMsIC0xLjIwODIyNjddLCBbNTAuNjY0Mzg5OSwgLTEuMjA4MDc4N10sIFs1MC42NjQyNDA2LCAtMS4yMDgzOTU5XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTJiY2E1YjA5NTQ0NGFmOTk1YTFkYzQzNWY1MjJhZTYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNGVmODRlNWRlNDNhNGMyYmI3ZjZiNDQzZWM1MTkzMGYgPSAkKCc8ZGl2IGlkPSJodG1sXzRlZjg0ZTVkZTQzYTRjMmJiN2Y2YjQ0M2VjNTE5MzBmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQmFydGxldHRzIENsb3NlIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTJiY2E1YjA5NTQ0NGFmOTk1YTFkYzQzNWY1MjJhZTYuc2V0Q29udGVudChodG1sXzRlZjg0ZTVkZTQzYTRjMmJiN2Y2YjQ0M2VjNTE5MzBmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfODA4Y2MwMGNmODZmNDMyMDgwZDQ5NzgyOTNiM2U3ZDUuYmluZFBvcHVwKHBvcHVwXzEyYmNhNWIwOTU0NDRhZjk5NWExZGM0MzVmNTIyYWU2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzhjN2Y0ZjNlNGYyMTRmOWFhOTkxNDI3Njc1YTE1ZDNiID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1MjQ1ODYsIC0xLjIwMTkwNDFdLCBbNTAuNjUyNDQyNiwgLTEuMjAxODMyOV0sIFs1MC42NTI0MTUyLCAtMS4yMDE3ODQ3XSwgWzUwLjY1MjM3ODYsIC0xLjIwMTc1NTVdLCBbNTAuNjUyMzM3OCwgLTEuMjAxNzQ5XSwgWzUwLjY1MjI5ODMsIC0xLjIwMTc2NjNdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lMmU5ZWE2ZTVlYWQ0ZDhjOWUxYTY4MWJkZjFkNWQzYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83MDlkM2VmNTg2NDk0MDkxODhmYmRmOWU5NDlmMTVmMCA9ICQoJzxkaXYgaWQ9Imh0bWxfNzA5ZDNlZjU4NjQ5NDA5MTg4ZmJkZjllOTQ5ZjE1ZjAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXb29kcyBEcml2ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2UyZTllYTZlNWVhZDRkOGM5ZTFhNjgxYmRmMWQ1ZDNjLnNldENvbnRlbnQoaHRtbF83MDlkM2VmNTg2NDk0MDkxODhmYmRmOWU5NDlmMTVmMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzhjN2Y0ZjNlNGYyMTRmOWFhOTkxNDI3Njc1YTE1ZDNiLmJpbmRQb3B1cChwb3B1cF9lMmU5ZWE2ZTVlYWQ0ZDhjOWUxYTY4MWJkZjFkNWQzYyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8wMzlhNzVjZDQ0OTI0Yjc3YTM5YTc2YjYwMDczYzMwNSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTI0NTg2LCAtMS4yMDE5MDQxXSwgWzUwLjY1MjUwNTgsIC0xLjIwMTg3NDVdLCBbNTAuNjUyNTg2MiwgLTEuMjAxNzk4OF0sIFs1MC42NTI2MTAxLCAtMS4yMDE2MzM3XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZDBkN2UyMGFmN2RhNDNiY2JkMGVjNTg3OWVhYzg5YjMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjZjYWE2Y2RhZjI0NGM0Mjg4MTE1MmE2MWY3OWM4ZjQgPSAkKCc8ZGl2IGlkPSJodG1sX2I2Y2FhNmNkYWYyNDRjNDI4ODExNTJhNjFmNzljOGY0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iVGhlIENoYXNlIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZDBkN2UyMGFmN2RhNDNiY2JkMGVjNTg3OWVhYzg5YjMuc2V0Q29udGVudChodG1sX2I2Y2FhNmNkYWYyNDRjNDI4ODExNTJhNjFmNzljOGY0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMDM5YTc1Y2Q0NDkyNGI3N2EzOWE3NmI2MDA3M2MzMDUuYmluZFBvcHVwKHBvcHVwX2QwZDdlMjBhZjdkYTQzYmNiZDBlYzU4NzllYWM4OWIzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2MzNmRlNzY2MjFkYjRiMjZiNzdjZGE5NTRkOTg1YzI5ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NTI5NzYsIC0xLjIwNzQxMTJdLCBbNTAuNjY1ODMyMiwgLTEuMjA3MTE1Nl1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzFmZjYyNmY2ZjZmOTRmNTM4N2NlMTAyNTNmMjUwOGQ3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2QxMGEwMDk3NDg3YjRkNjBhNThhNGFjMzU5M2UxYjhhID0gJCgnPGRpdiBpZD0iaHRtbF9kMTBhMDA5NzQ4N2I0ZDYwYTU4YTRhYzM1OTNlMWI4YSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkhpZ2ggU3RyZWV0IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMWZmNjI2ZjZmNmY5NGY1Mzg3Y2UxMDI1M2YyNTA4ZDcuc2V0Q29udGVudChodG1sX2QxMGEwMDk3NDg3YjRkNjBhNThhNGFjMzU5M2UxYjhhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfYzM2ZGU3NjYyMWRiNGIyNmI3N2NkYTk1NGQ5ODVjMjkuYmluZFBvcHVwKHBvcHVwXzFmZjYyNmY2ZjZmOTRmNTM4N2NlMTAyNTNmMjUwOGQ3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzkwOTdjMDI0MzZjMDRkODY5YjY5NDIyY2E3OWFiODE3ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NTI5NzYsIC0xLjIwNzQxMTJdLCBbNTAuNjY1MTYzOCwgLTEuMjA2OTQzMl1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2FjOTQzNGE0MmJjYjRiOGI4OTlhNTk0MjZjMmYyZDBjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzc0MmZkYzU0YzQ4NTQ0YTU5ZDFhYWYxMTE2M2YwZmE3ID0gJCgnPGRpdiBpZD0iaHRtbF83NDJmZGM1NGM0ODU0NGE1OWQxYWFmMTExNjNmMGZhNyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Ik1pbGVzdG9uZSBDcmVzY2VudCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2FjOTQzNGE0MmJjYjRiOGI4OTlhNTk0MjZjMmYyZDBjLnNldENvbnRlbnQoaHRtbF83NDJmZGM1NGM0ODU0NGE1OWQxYWFmMTExNjNmMGZhNyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzkwOTdjMDI0MzZjMDRkODY5YjY5NDIyY2E3OWFiODE3LmJpbmRQb3B1cChwb3B1cF9hYzk0MzRhNDJiY2I0YjhiODk5YTU5NDI2YzJmMmQwYyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8yMDJjZTY0ZjU1NTI0Y2QxYTExZjkwOGM5OGUxMzk5NiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjUyOTc2LCAtMS4yMDc0MTEyXSwgWzUwLjY2NTAyMjUsIC0xLjIwNzYwNl0sIFs1MC42NjQ4OTk5LCAtMS4yMDc3MTcxXSwgWzUwLjY2NDg1MjcsIC0xLjIwNzc3NTJdLCBbNTAuNjY0ODQyNSwgLTEuMjA3Nzg3OF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2ZjNTA1NDkxYWRlYTRhOGU5YmY4ODQwNTFkY2Q2YmIxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzI1ZWJiYjBiOWEyMTRhNDNhNjRiMWVjMDAyYzcyYmNmID0gJCgnPGRpdiBpZD0iaHRtbF8yNWViYmIwYjlhMjE0YTQzYTY0YjFlYzAwMmM3MmJjZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkhpZ2ggU3RyZWV0IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZmM1MDU0OTFhZGVhNGE4ZTliZjg4NDA1MWRjZDZiYjEuc2V0Q29udGVudChodG1sXzI1ZWJiYjBiOWEyMTRhNDNhNjRiMWVjMDAyYzcyYmNmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMjAyY2U2NGY1NTUyNGNkMWExMWY5MDhjOThlMTM5OTYuYmluZFBvcHVwKHBvcHVwX2ZjNTA1NDkxYWRlYTRhOGU5YmY4ODQwNTFkY2Q2YmIxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2QyNjBhMDNiOGFlYzRmYTM4Yjc0NzE5Y2JiN2U1OTAyID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY2NDI0MDYsIC0xLjIwODM5NTldLCBbNTAuNjY0Mzg5OSwgLTEuMjA4MDc4N10sIFs1MC42NjQ1MzMsIC0xLjIwODIyNjddXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85YmZmYzc5MzkyYjY0YWUzYjIyOWRlODQ0NmM3MmFjNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yMzhiOGI1MTM5Njk0YjAwYTBhZmIxNmUzM2M5YmZlNyA9ICQoJzxkaXYgaWQ9Imh0bWxfMjM4YjhiNTEzOTY5NGIwMGEwYWZiMTZlMzNjOWJmZTciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJCYXJ0bGV0dHMgQ2xvc2UiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85YmZmYzc5MzkyYjY0YWUzYjIyOWRlODQ0NmM3MmFjNy5zZXRDb250ZW50KGh0bWxfMjM4YjhiNTEzOTY5NGIwMGEwYWZiMTZlMzNjOWJmZTcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9kMjYwYTAzYjhhZWM0ZmEzOGI3NDcxOWNiYjdlNTkwMi5iaW5kUG9wdXAocG9wdXBfOWJmZmM3OTM5MmI2NGFlM2IyMjlkZTg0NDZjNzJhYzcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZGRjYjhkMTdmYjk3NGNkNzljZmI2YjU0OTIzNTIzMTkgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY1Mjg2MiwgLTEuMTg3NzU4Nl0sIFs1MC42NjUzNTc2LCAtMS4xODc3NjUzXSwgWzUwLjY2NTQ3MTUsIC0xLjE4Nzc4MTRdLCBbNTAuNjY1NTY3NSwgLTEuMTg3ODEzNl0sIFs1MC42NjU2OTY3LCAtMS4xODc3Nl0sIFs1MC42NjU5MjYyLCAtMS4xODc1MDM4XSwgWzUwLjY2NjAxMDQsIC0xLjE4NzQzODFdLCBbNTAuNjY2MTIwMSwgLTEuMTg3NDE5M10sIFs1MC42NjYxOTIzLCAtMS4xODc0NDM0XSwgWzUwLjY2NjM0OTIsIC0xLjE4NzUxMjldLCBbNTAuNjY2NDgzNSwgLTEuMTg3NTc3M10sIFs1MC42NjY2NDMzLCAtMS4xODc2NjU4XSwgWzUwLjY2NjY5MywgLTEuMTg3NzY4XSwgWzUwLjY2NjcwODcsIC0xLjE4Nzg1MThdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iMjJiNzg4ZTdjMmE0ZWM2YjEzNmEzZjI4MTNjMDdiYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84Y2EzOWYyOWMwMjI0MmVmOGM2YWYwYjczODMxZTM1NSA9ICQoJzxkaXYgaWQ9Imh0bWxfOGNhMzlmMjljMDIyNDJlZjhjNmFmMGI3MzgzMWUzNTUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJZb3VuZ3dvb2RzIFdheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2IyMmI3ODhlN2MyYTRlYzZiMTM2YTNmMjgxM2MwN2JiLnNldENvbnRlbnQoaHRtbF84Y2EzOWYyOWMwMjI0MmVmOGM2YWYwYjczODMxZTM1NSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2RkY2I4ZDE3ZmI5NzRjZDc5Y2ZiNmI1NDkyMzUyMzE5LmJpbmRQb3B1cChwb3B1cF9iMjJiNzg4ZTdjMmE0ZWM2YjEzNmEzZjI4MTNjMDdiYik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV80NWUyZGMzYjUyMzE0OTNkYmQ1ZGMxODM1ZTQ5OTNjYyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTI2MTAxLCAtMS4yMDE2MzM3XSwgWzUwLjY1MjU4NjIsIC0xLjIwMTc5ODhdLCBbNTAuNjUyNTA1OCwgLTEuMjAxODc0NV0sIFs1MC42NTI0NTg2LCAtMS4yMDE5MDQxXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNmRiZDg4MmNlNDhlNDEzOWE0NzRjNTQxMzYzNmRjN2MgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZWE4NzRiYzBkNzNiNDk1ZGFlZGY5MzljMmUzZDY3NzkgPSAkKCc8ZGl2IGlkPSJodG1sX2VhODc0YmMwZDczYjQ5NWRhZWRmOTM5YzJlM2Q2Nzc5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iVGhlIENoYXNlIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNmRiZDg4MmNlNDhlNDEzOWE0NzRjNTQxMzYzNmRjN2Muc2V0Q29udGVudChodG1sX2VhODc0YmMwZDczYjQ5NWRhZWRmOTM5YzJlM2Q2Nzc5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNDVlMmRjM2I1MjMxNDkzZGJkNWRjMTgzNWU0OTkzY2MuYmluZFBvcHVwKHBvcHVwXzZkYmQ4ODJjZTQ4ZTQxMzlhNDc0YzU0MTM2MzZkYzdjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzU5Y2YxMDg3ZDdmYzRjMWY4M2MxZGQwZmIxNzJjMDg3ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY3NjU4MDYsIC0xLjE4Mjg0NjNdLCBbNTAuNjc2NTc2NiwgLTEuMTgyODEwMl0sIFs1MC42NzY1NDgxLCAtMS4xODI4MzA0XSwgWzUwLjY3NjM5OTEsIC0xLjE4Mjg0MTddLCBbNTAuNjc2MzM3NSwgLTEuMTgyODI1Nl0sIFs1MC42NzYyOTc4LCAtMS4xODI3OTIzXSwgWzUwLjY3NjI5MDMsIC0xLjE4Mjc2ODRdLCBbNTAuNjc2MTUzMywgLTEuMTgxOTA3OV0sIFs1MC42NzU5MTQyLCAtMS4xODE4ODgzXSwgWzUwLjY3NTgyODQsIC0xLjE4MTg5MTRdLCBbNTAuNjc1NjY1MywgLTEuMTgxODk3M10sIFs1MC42NzU2MDMzLCAtMS4xODE5MTc1XSwgWzUwLjY3NTI4OTQsIC0xLjE4MjAxOThdLCBbNTAuNjc0ODk5MywgLTEuMTgyMjI5MV0sIFs1MC42NzQ2OTExLCAtMS4xODIzMDM4XSwgWzUwLjY3NDM0ODEsIC0xLjE4MjM0NDRdLCBbNTAuNjc0MDgwOSwgLTEuMTgyMjg4N10sIFs1MC42NzM1ODgyLCAtMS4xODIwNzMyXSwgWzUwLjY3MzM5NzksIC0xLjE4MjA0NDZdLCBbNTAuNjczMTUzOSwgLTEuMTgyMDE5NV0sIFs1MC42NzMwMTk2LCAtMS4xODIwNTQ0XSwgWzUwLjY3MjI4MzcsIC0xLjE4MjQ2NF0sIFs1MC42NzIyMzIsIC0xLjE4MjQ5NjNdLCBbNTAuNjcxMzg3OSwgLTEuMTgzMDI0NF0sIFs1MC42NzA5NDkxLCAtMS4xODMyOTg5XSwgWzUwLjY3MDg2OTIsIC0xLjE4MzI5NjNdLCBbNTAuNjcwODMwMSwgLTEuMTgzMjU2XSwgWzUwLjY3MDc1ODUsIC0xLjE4MjkzMTVdLCBbNTAuNjcwNjAwMywgLTEuMTgyMjE0OF0sIFs1MC42NzA1OTAxLCAtMS4xODIxODM0XSwgWzUwLjY3MDQxODMsIC0xLjE4MTY0N10sIFs1MC42NzAzNTM3LCAtMS4xODE1MTAyXSwgWzUwLjY3MDI3MjEsIC0xLjE4MTQ1MTJdLCBbNTAuNjY5NDQ0MiwgLTEuMTgyMTddLCBbNTAuNjY4ODk0NSwgLTEuMTgyNjc3NV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzQ4NWNhNWRhYzNhMTQ2ZTdhZGI3ZDY2M2E3MjhlZmM1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzAwYWNiODg0MjVhODRjZDU4NDcyNzA2MTZlNjA4NzQwID0gJCgnPGRpdiBpZD0iaHRtbF8wMGFjYjg4NDI1YTg0Y2Q1ODQ3MjcwNjE2ZTYwODc0MCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Iktlcm4gTGFuZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzQ4NWNhNWRhYzNhMTQ2ZTdhZGI3ZDY2M2E3MjhlZmM1LnNldENvbnRlbnQoaHRtbF8wMGFjYjg4NDI1YTg0Y2Q1ODQ3MjcwNjE2ZTYwODc0MCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzU5Y2YxMDg3ZDdmYzRjMWY4M2MxZGQwZmIxNzJjMDg3LmJpbmRQb3B1cChwb3B1cF80ODVjYTVkYWMzYTE0NmU3YWRiN2Q2NjNhNzI4ZWZjNSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9jYmQ0OWRhMmFlNTU0NmZkYWMxM2JkODIwNjI4ZmFmMSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NjczNDcyLCAtMS4xODkxNjk2XSwgWzUwLjY2NzQwMzUsIC0xLjE4OTE0MjVdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82M2E3ODA2OWYxZjc0Y2UzYTlhYmY3M2E5ODBiOWIyYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kMmM0ZWIwNjk3OWM0ZTJiYmM1ZjZmNDc3MjA0NDZjMiA9ICQoJzxkaXYgaWQ9Imh0bWxfZDJjNGViMDY5NzljNGUyYmJjNWY2ZjQ3NzIwNDQ2YzIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXZWJzdGVyIFdheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzYzYTc4MDY5ZjFmNzRjZTNhOWFiZjczYTk4MGI5YjJjLnNldENvbnRlbnQoaHRtbF9kMmM0ZWIwNjk3OWM0ZTJiYmM1ZjZmNDc3MjA0NDZjMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2NiZDQ5ZGEyYWU1NTQ2ZmRhYzEzYmQ4MjA2MjhmYWYxLmJpbmRQb3B1cChwb3B1cF82M2E3ODA2OWYxZjc0Y2UzYTlhYmY3M2E5ODBiOWIyYyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV83ODM5M2VmY2Q2MDA0YWJlOWY0OGE1YjBmNmI3ODY0NiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42Njc0MDM1LCAtMS4xODkxNDI1XSwgWzUwLjY2NzE5MTUsIC0xLjE4ODU1OTldXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82OGYyMjcyYjg5MzU0YWQ2YTIwYWQ1NmRmZGUzYjM3YiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kYmFlZmMxYzhhZGY0NTRhYWFjNDc2Y2YyN2MyNTc1MCA9ICQoJzxkaXYgaWQ9Imh0bWxfZGJhZWZjMWM4YWRmNDU0YWFhYzQ3NmNmMjdjMjU3NTAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXZWJzdGVyIFdheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzY4ZjIyNzJiODkzNTRhZDZhMjBhZDU2ZGZkZTNiMzdiLnNldENvbnRlbnQoaHRtbF9kYmFlZmMxYzhhZGY0NTRhYWFjNDc2Y2YyN2MyNTc1MCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzc4MzkzZWZjZDYwMDRhYmU5ZjQ4YTViMGY2Yjc4NjQ2LmJpbmRQb3B1cChwb3B1cF82OGYyMjcyYjg5MzU0YWQ2YTIwYWQ1NmRmZGUzYjM3Yik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV83YzNkNjliNjNmYTQ0YTM2YjU1ZDk5ZmVlNDA3MDFkOCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42Njc0MDM1LCAtMS4xODkxNDI1XSwgWzUwLjY2NzM0NzIsIC0xLjE4OTE2OTZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iNDYyYTNhMTNiOGY0MzBkYTIzMTg4ZDg4YzgwZDNlYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jMGY4Yzc0MWJiNDA0NTg3OGU4NGU4ZmVmNjc1Y2RhMSA9ICQoJzxkaXYgaWQ9Imh0bWxfYzBmOGM3NDFiYjQwNDU4NzhlODRlOGZlZjY3NWNkYTEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXZWJzdGVyIFdheSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2I0NjJhM2ExM2I4ZjQzMGRhMjMxODhkODhjODBkM2VjLnNldENvbnRlbnQoaHRtbF9jMGY4Yzc0MWJiNDA0NTg3OGU4NGU4ZmVmNjc1Y2RhMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzdjM2Q2OWI2M2ZhNDRhMzZiNTVkOTlmZWU0MDcwMWQ4LmJpbmRQb3B1cChwb3B1cF9iNDYyYTNhMTNiOGY0MzBkYTIzMTg4ZDg4YzgwZDNlYyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9lZTEzNDk5MTU3YWE0MjdmODRjMzU3OWQwNzkzMjBhMyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42Njc0MDM1LCAtMS4xODkxNDI1XSwgWzUwLjY2NzQ2NCwgLTEuMTg5MTE5M10sIFs1MC42Njc1NzgyLCAtMS4xODkwMDU3XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOWM1MmIwYTBlZmY5NGFhMGJmNjEyMWM4YjRkYzEzMmQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZmJjYjZmNzRiM2Y1NGEyNDg3OTY3NDA0ZDYxOTc3Y2UgPSAkKCc8ZGl2IGlkPSJodG1sX2ZiY2I2Zjc0YjNmNTRhMjQ4Nzk2NzQwNGQ2MTk3N2NlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iV2Vic3RlciBXYXkiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85YzUyYjBhMGVmZjk0YWEwYmY2MTIxYzhiNGRjMTMyZC5zZXRDb250ZW50KGh0bWxfZmJjYjZmNzRiM2Y1NGEyNDg3OTY3NDA0ZDYxOTc3Y2UpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9lZTEzNDk5MTU3YWE0MjdmODRjMzU3OWQwNzkzMjBhMy5iaW5kUG9wdXAocG9wdXBfOWM1MmIwYTBlZmY5NGFhMGJmNjEyMWM4YjRkYzEzMmQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfOGE3ODU5NmZiZDM0NDQxNTgyYmFkNTMwN2ZhMGM0ZTAgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjY3NTc4MiwgLTEuMTg5MDA1N10sIFs1MC42Njc0NjQsIC0xLjE4OTExOTNdLCBbNTAuNjY3NDAzNSwgLTEuMTg5MTQyNV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzJhMGNjNTZjMjUzODRmZmVhMTYyY2FhZmI0ZDkwNjczID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzFhOGIyYWVmMDQzYjRiMGU4Yzk3MGZkYWMxYzI5ZDM0ID0gJCgnPGRpdiBpZD0iaHRtbF8xYThiMmFlZjA0M2I0YjBlOGM5NzBmZGFjMWMyOWQzNCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IldlYnN0ZXIgV2F5IjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMmEwY2M1NmMyNTM4NGZmZWExNjJjYWFmYjRkOTA2NzMuc2V0Q29udGVudChodG1sXzFhOGIyYWVmMDQzYjRiMGU4Yzk3MGZkYWMxYzI5ZDM0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfOGE3ODU5NmZiZDM0NDQxNTgyYmFkNTMwN2ZhMGM0ZTAuYmluZFBvcHVwKHBvcHVwXzJhMGNjNTZjMjUzODRmZmVhMTYyY2FhZmI0ZDkwNjczKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzZlYmU0YWUyNTUyZTQ1OTc5YWEwYjVjODZlN2Y5MTU0ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1OTA4MDYsIC0xLjIxMTk0MTNdLCBbNTAuNjU5Mzg3LCAtMS4yMTE4OTM3XSwgWzUwLjY1OTgzNTcsIC0xLjIxMTgxODZdLCBbNTAuNjYwNDAzMywgLTEuMjExNzYyN10sIFs1MC42NjA3MDY1LCAtMS4yMTE2OTNdLCBbNTAuNjYxMTAwNSwgLTEuMjExNTI2OF0sIFs1MC42NjEyMSwgLTEuMjExNDgwNl0sIFs1MC42NjE3NTIsIC0xLjIxMTE3NzJdLCBbNTAuNjYxOTI2OCwgLTEuMjExMDgyMV0sIFs1MC42NjIxMjI1LCAtMS4yMTA5MThdLCBbNTAuNjYyMzczNiwgLTEuMjEwNjQxN10sIFs1MC42NjI5ODQyLCAtMS4yMDk5ODEzXSwgWzUwLjY2MzEyMDYsIC0xLjIwOTg3MTVdLCBbNTAuNjYzOTUzNiwgLTEuMjA5MjAxXSwgWzUwLjY2NDEzNTcsIC0xLjIwOTAyNF0sIFs1MC42NjQzMTM1LCAtMS4yMDg2OTE3XSwgWzUwLjY2NDQ2NzYsIC0xLjIwODM2NTJdLCBbNTAuNjY0NDg2NiwgLTEuMjA4MzI0OV0sIFs1MC42NjQ0OTQ1LCAtMS4yMDgzMDg0XSwgWzUwLjY2NDUzMywgLTEuMjA4MjI2N11dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2NhYWZlZGVmMWQyYjRmYmJiOWNlMTdmM2M3MDQzMTM5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2MzOGY5ODg5MWJjZjRiYTE4NDFkODlkNWI3NmQwYjBlID0gJCgnPGRpdiBpZD0iaHRtbF9jMzhmOTg4OTFiY2Y0YmExODQxZDg5ZDViNzZkMGIwZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IldpbmZvcmQgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2NhYWZlZGVmMWQyYjRmYmJiOWNlMTdmM2M3MDQzMTM5LnNldENvbnRlbnQoaHRtbF9jMzhmOTg4OTFiY2Y0YmExODQxZDg5ZDViNzZkMGIwZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzZlYmU0YWUyNTUyZTQ1OTc5YWEwYjVjODZlN2Y5MTU0LmJpbmRQb3B1cChwb3B1cF9jYWFmZWRlZjFkMmI0ZmJiYjljZTE3ZjNjNzA0MzEzOSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9mM2E1N2Y2YjQ5ZDc0OWY0OGMwOGYxZTQyM2Y5NDhlYSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTkwODA2LCAtMS4yMTE5NDEzXSwgWzUwLjY1ODUxNjMsIC0xLjIxMTk5MjFdLCBbNTAuNjU4MTk3MSwgLTEuMjExOTY2N10sIFs1MC42NTczODMsIC0xLjIxMTgwNjNdLCBbNTAuNjU2NTEyOSwgLTEuMjExNjQyMl0sIFs1MC42NTYxMTQ1LCAtMS4yMTE1NDg4XSwgWzUwLjY1NTc3NzgsIC0xLjIxMTQ1MjJdLCBbNTAuNjU1NDc5NSwgLTEuMjExMzQyXSwgWzUwLjY1NTIzOTUsIC0xLjIxMTIyNzZdLCBbNTAuNjU0NzgyOSwgLTEuMjEwOTUwNV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzJlYTQ0MGE1NTg1OTRmNTA5NGQxYzRjZmUzNGRhNzBjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzBhNzNjOTQzN2NmMjRjYjU5OGMwZjBiNGM5OTdhYWQ5ID0gJCgnPGRpdiBpZD0iaHRtbF8wYTczYzk0MzdjZjI0Y2I1OThjMGYwYjRjOTk3YWFkOSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IldpbmZvcmQgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzJlYTQ0MGE1NTg1OTRmNTA5NGQxYzRjZmUzNGRhNzBjLnNldENvbnRlbnQoaHRtbF8wYTczYzk0MzdjZjI0Y2I1OThjMGYwYjRjOTk3YWFkOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lX2YzYTU3ZjZiNDlkNzQ5ZjQ4YzA4ZjFlNDIzZjk0OGVhLmJpbmRQb3B1cChwb3B1cF8yZWE0NDBhNTU4NTk0ZjUwOTRkMWM0Y2ZlMzRkYTcwYyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8zNDcxMTBjYzhmZDc0ZTkzYTdiMzJiZjYyN2RiNzkyMCA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTkwODA2LCAtMS4yMTE5NDEzXSwgWzUwLjY1ODgzNDMsIC0xLjIxMjY2MjNdLCBbNTAuNjU4MDAwMywgLTEuMjE0OTA2OV0sIFs1MC42NTc5ODAyLCAtMS4yMTQ5NDUyXSwgWzUwLjY1NzkzNTgsIC0xLjIxNDk5NjRdLCBbNTAuNjU3NjUwOCwgLTEuMjE1MjM5NV0sIFs1MC42NTc0NjEyLCAtMS4yMTU0NzAyXSwgWzUwLjY1NzIzNDMsIC0xLjIxNTcyOV0sIFs1MC42NTcwMjk1LCAtMS4yMTU5MDk3XSwgWzUwLjY1NjgzMywgLTEuMjE2MDE1XSwgWzUwLjY1NjYyNDUsIC0xLjIxNjEwNTRdLCBbNTAuNjU2NTc3LCAtMS4yMTYxMjZdLCBbNTAuNjU1OTk1NSwgLTEuMjE2NTI3XSwgWzUwLjY1NTMzMzIsIC0xLjIxNzM0NTFdLCBbNTAuNjU1MjgzLCAtMS4yMTc0MTc1XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYWJiOWFlOGM2MmQxNGZjZjhmODdmZDllYmFhYmNiODcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNGE3MzBiYjkwYThmNDc0NTlhZGY1OTU5MDc2YmIyZWIgPSAkKCc8ZGl2IGlkPSJodG1sXzRhNzMwYmI5MGE4ZjQ3NDU5YWRmNTk1OTA3NmJiMmViIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iSGFyYm9ycyBMYWtlIExhbmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hYmI5YWU4YzYyZDE0ZmNmOGY4N2ZkOWViYWFiY2I4Ny5zZXRDb250ZW50KGh0bWxfNGE3MzBiYjkwYThmNDc0NTlhZGY1OTU5MDc2YmIyZWIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8zNDcxMTBjYzhmZDc0ZTkzYTdiMzJiZjYyN2RiNzkyMC5iaW5kUG9wdXAocG9wdXBfYWJiOWFlOGM2MmQxNGZjZjhmODdmZDllYmFhYmNiODcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZTNkMmRhZDk5M2E4NDgxZmI5NGM1OWY0YjA2Mjk3YWEgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjcwNzA1MiwgLTEuMjA5ODEyXSwgWzUwLjY3MDc5MiwgLTEuMjA5OTMyNF0sIFs1MC42NzA4MDA3LCAtMS4yMTAxMTU5XSwgWzUwLjY3MDcyNTIsIC0xLjIxMDQxNzRdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81MjFiNWRjMzNlZDY0YTQwYmYzMzAyNzljY2I4MGJhOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80NmRmNjIyZjEwZGI0ODU4ODM3NWJlY2RjZDFlNjVjOCA9ICQoJzxkaXYgaWQ9Imh0bWxfNDZkZjYyMmYxMGRiNDg1ODgzNzViZWNkY2QxZTY1YzgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJIb3BlIE1lYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81MjFiNWRjMzNlZDY0YTQwYmYzMzAyNzljY2I4MGJhOC5zZXRDb250ZW50KGh0bWxfNDZkZjYyMmYxMGRiNDg1ODgzNzViZWNkY2QxZTY1YzgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9lM2QyZGFkOTkzYTg0ODFmYjk0YzU5ZjRiMDYyOTdhYS5iaW5kUG9wdXAocG9wdXBfNTIxYjVkYzMzZWQ2NGE0MGJmMzMwMjc5Y2NiODBiYTgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMWJhMjY0NTU5NmUwNGRkYzhiNDk0OTQ5MDgxMjNmMDcgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjcwNzI1MiwgLTEuMjEwNDE3NF0sIFs1MC42NzA4MDA3LCAtMS4yMTAxMTU5XSwgWzUwLjY3MDc5MiwgLTEuMjA5OTMyNF0sIFs1MC42NzA3MDUyLCAtMS4yMDk4MTJdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80YWQ1ZjAzNDk1YzA0NjVmYWZjMWQ1N2QzMmM3NmQ4MyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83YTg1YjQzN2Y5NGU0ZGFhYTZmOGU4NTA2NzM1NWJhYSA9ICQoJzxkaXYgaWQ9Imh0bWxfN2E4NWI0MzdmOTRlNGRhYWE2ZjhlODUwNjczNTViYWEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJIb3BlIE1lYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80YWQ1ZjAzNDk1YzA0NjVmYWZjMWQ1N2QzMmM3NmQ4My5zZXRDb250ZW50KGh0bWxfN2E4NWI0MzdmOTRlNGRhYWE2ZjhlODUwNjczNTViYWEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8xYmEyNjQ1NTk2ZTA0ZGRjOGI0OTQ5NDkwODEyM2YwNy5iaW5kUG9wdXAocG9wdXBfNGFkNWYwMzQ5NWMwNDY1ZmFmYzFkNTdkMzJjNzZkODMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfYzI4NjdmYmQ4NmYzNDYyOTliMmM3YjQ5YTg3YTJjZDQgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjcwNzI1MiwgLTEuMjEwNDE3NF0sIFs1MC42NzA4MjEzLCAtMS4yMTA0NjcyXSwgWzUwLjY3MTIxOTQsIC0xLjIxMDU5OTRdLCBbNTAuNjcxNTAyNiwgLTEuMjEwNjU0N10sIFs1MC42NzIxNjIsIC0xLjIxMDc2MV0sIFs1MC42NzI3Mjg2LCAtMS4yMTA4MjUzXSwgWzUwLjY3MzYwMDksIC0xLjIxMDkxNjddLCBbNTAuNjc0Mzg4NCwgLTEuMjEwOTIwNV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzFiNTkxNzdlMTZkNjRiZDJhYTNkNTNjMGViYjhmOWE0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzgyYjRjNDlkNzQ0MDRjMGFhOTc2MTBlNzhmZTE0YzU0ID0gJCgnPGRpdiBpZD0iaHRtbF84MmI0YzQ5ZDc0NDA0YzBhYTk3NjEwZTc4ZmUxNGM1NCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WyJMYW5nYnJpZGdlIiwgIlRoZSBTaHV0ZSJdPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xYjU5MTc3ZTE2ZDY0YmQyYWEzZDUzYzBlYmI4ZjlhNC5zZXRDb250ZW50KGh0bWxfODJiNGM0OWQ3NDQwNGMwYWE5NzYxMGU3OGZlMTRjNTQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9jMjg2N2ZiZDg2ZjM0NjI5OWIyYzdiNDlhODdhMmNkNC5iaW5kUG9wdXAocG9wdXBfMWI1OTE3N2UxNmQ2NGJkMmFhM2Q1M2MwZWJiOGY5YTQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfODU2NGQzYjhiNDlkNDdjMjgwNjNjMDNlYjU1MTVlMmYgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjcwNzI1MiwgLTEuMjEwNDE3NF0sIFs1MC42NzA2MjE3LCAtMS4yMTAzNDgyXSwgWzUwLjY3MDUyMywgLTEuMjEwMjcwNF0sIFs1MC42NzAyNTc4LCAtMS4yMDk5NTExXSwgWzUwLjY3MDA0MjMsIC0xLjIwOTcwMDNdLCBbNTAuNjcwMDExMywgLTEuMjA5NjY3OV0sIFs1MC42Njk5Njk2LCAtMS4yMDk2MTk4XSwgWzUwLjY2OTkxNjEsIC0xLjIwOTU1NTRdLCBbNTAuNjY5NjczLCAtMS4yMDkyODIxXSwgWzUwLjY2OTYxNDMsIC0xLjIwOTIxNjNdLCBbNTAuNjY4ODc3NCwgLTEuMjA4NDQzOV0sIFs1MC42Njg2ODE3LCAtMS4yMDgyMjU1XSwgWzUwLjY2Nzk3NDIsIC0xLjIwNzYyNV0sIFs1MC42Njc2NTI2LCAtMS4yMDcyN10sIFs1MC42NjczMjUsIC0xLjIwNjkzMDFdLCBbNTAuNjY3MDI3OCwgLTEuMjA2ODAxMl0sIFs1MC42NjY3NDc3LCAtMS4yMDY3NzQ5XSwgWzUwLjY2NjUzNzcsIC0xLjIwNjc4MjldLCBbNTAuNjY2MzkzMiwgLTEuMjA2ODIwNF0sIFs1MC42NjYyNTgsIC0xLjIwNjg3NDFdLCBbNTAuNjY2MDMxMSwgLTEuMjA2OTk4OV0sIFs1MC42NjU4MzIyLCAtMS4yMDcxMTU2XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMGI2ZGRkZmZjNWZhNGZiYzlhOTE4ZGU1ZDM4YjAzYTAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMzY1N2E0MTYyMjMxNDA5N2FhNTI2NWVjNzRkOTgwYzUgPSAkKCc8ZGl2IGlkPSJodG1sXzM2NTdhNDE2MjIzMTQwOTdhYTUyNjVlYzc0ZDk4MGM1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5bIkhpZ2ggU3RyZWV0IiwgIlRoZSBTaHV0ZSJdPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wYjZkZGRmZmM1ZmE0ZmJjOWE5MThkZTVkMzhiMDNhMC5zZXRDb250ZW50KGh0bWxfMzY1N2E0MTYyMjMxNDA5N2FhNTI2NWVjNzRkOTgwYzUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV84NTY0ZDNiOGI0OWQ0N2MyODA2M2MwM2ViNTUxNWUyZi5iaW5kUG9wdXAocG9wdXBfMGI2ZGRkZmZjNWZhNGZiYzlhOTE4ZGU1ZDM4YjAzYTApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfOGJlYjJlMjRmZjU0NGJlNGIyOTE5OWZlM2E0ZjQwM2QgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjgyNjMyOSwgLTEuMjA3MTI2OF0sIFs1MC42ODI1ODksIC0xLjIwNzE5ODVdLCBbNTAuNjgyNDQxNSwgLTEuMjA3Mzg3NV0sIFs1MC42ODIzMTQ0LCAtMS4yMDc2MDE2XSwgWzUwLjY4MjIwMzUsIC0xLjIwNzgxODhdLCBbNTAuNjgyMTA0OSwgLTEuMjA4MDQ2OF0sIFs1MC42ODIwNTk1LCAtMS4yMDgxNjA5XSwgWzUwLjY4MTk4NjgsIC0xLjIwODQwNDldLCBbNTAuNjgxODk3NiwgLTEuMjA4NzI4MV0sIFs1MC42ODE3MTcxLCAtMS4yMDkzOTUyXSwgWzUwLjY4MTYwOTUsIC0xLjIwOTg4NTVdLCBbNTAuNjgxNTI2MSwgLTEuMjEwMzc0OV0sIFs1MC42ODE0NjA0LCAtMS4yMTA4Mjk3XSwgWzUwLjY4MTI4MzQsIC0xLjIxMTU1NzddLCBbNTAuNjgxMTUwNywgLTEuMjExODYxNl0sIFs1MC42ODA5Njk0LCAtMS4yMTIxMTAzXSwgWzUwLjY4MDg3NDYsIC0xLjIxMjMxOTJdLCBbNTAuNjgwNzUzNCwgLTEuMjEyNTg2NV0sIFs1MC42ODA2NTE0LCAtMS4yMTMxNDQ0XSwgWzUwLjY4MDcxNiwgLTEuMjEzODE1XSwgWzUwLjY4MDcyNjIsIC0xLjIxNDIxNzNdLCBbNTAuNjgwNjQ4NiwgLTEuMjE0NjI4NF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzViMmNkYmI0MTBlYTQxNmE5MDgyM2RhZjIxNzhkMTYzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzI0ZmRiZjRkMTI3ZTRmNzVhMGFhZmZiN2U4ZTIyODg3ID0gJCgnPGRpdiBpZD0iaHRtbF8yNGZkYmY0ZDEyN2U0Zjc1YTBhYWZmYjdlOGUyMjg4NyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkxpbWUgS2lsbiBTaHV0ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzViMmNkYmI0MTBlYTQxNmE5MDgyM2RhZjIxNzhkMTYzLnNldENvbnRlbnQoaHRtbF8yNGZkYmY0ZDEyN2U0Zjc1YTBhYWZmYjdlOGUyMjg4Nyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzhiZWIyZTI0ZmY1NDRiZTRiMjkxOTlmZTNhNGY0MDNkLmJpbmRQb3B1cChwb3B1cF81YjJjZGJiNDEwZWE0MTZhOTA4MjNkYWYyMTc4ZDE2Myk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8wMjYxODhhOWEyNGQ0MTMwOGM0MjZiNjJhNzYwODZjYyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42ODI2MzI5LCAtMS4yMDcxMjY4XSwgWzUwLjY4MjY1NDQsIC0xLjIwNDM2Ml0sIFs1MC42ODI2NjUsIC0xLjIwNDAzMl0sIFs1MC42ODI2OTg2LCAtMS4yMDM4MDkyXSwgWzUwLjY4Mjc1ODYsIC0xLjIwMzU5MTRdLCBbNTAuNjgyODQwNCwgLTEuMjAzMzZdLCBbNTAuNjgyOTQ4OSwgLTEuMjAzMTMwOF0sIFs1MC42ODMxMzYsIC0xLjIwMjczMzhdLCBbNTAuNjgzMjMyNiwgLTEuMjAyNTI5M10sIFs1MC42ODMzNzM5LCAtMS4yMDIxODRdLCBbNTAuNjgzNDQ2NywgLTEuMjAxOTY5OF0sIFs1MC42ODM0OTkzLCAtMS4yMDE3ODddLCBbNTAuNjgzNTY4OCwgLTEuMjAxNDYzNF0sIFs1MC42ODM2MjE0LCAtMS4yMDExNTQ5XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZGQ3ZjRmYzIxY2M0NGJlMGE3ZjM5MmU3YmYwZWJmZGUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZTkwODI2Y2MwOGI4NDQ1MGEzYTg0MjNlNTM2ZjgxYzggPSAkKCc8ZGl2IGlkPSJodG1sX2U5MDgyNmNjMDhiODQ0NTBhM2E4NDIzZTUzNmY4MWM4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iRG93bnMgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2RkN2Y0ZmMyMWNjNDRiZTBhN2YzOTJlN2JmMGViZmRlLnNldENvbnRlbnQoaHRtbF9lOTA4MjZjYzA4Yjg0NDUwYTNhODQyM2U1MzZmODFjOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzAyNjE4OGE5YTI0ZDQxMzA4YzQyNmI2MmE3NjA4NmNjLmJpbmRQb3B1cChwb3B1cF9kZDdmNGZjMjFjYzQ0YmUwYTdmMzkyZTdiZjBlYmZkZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9lNGE1OGYwMTE3ZjQ0ZmYxOTExZTViZDU3Njg3MjExYyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42ODM2MjE0LCAtMS4yMDExNTQ5XSwgWzUwLjY4MzU2MDgsIC0xLjIwMTEyNjVdLCBbNTAuNjgzNTI4LCAtMS4yMDExMjk0XSwgWzUwLjY4MzE3ODgsIC0xLjIwMTE5NDNdLCBbNTAuNjgyNTYzOSwgLTEuMjAxNDgyM10sIFs1MC42ODI0Mzc3LCAtMS4yMDE1Mzc0XSwgWzUwLjY4MjMzNTgsIC0xLjIwMTU2MjhdLCBbNTAuNjgyMTYwNiwgLTEuMjAxNDM3OV0sIFs1MC42ODE5NiwgLTEuMjAxMjI4N10sIFs1MC42ODE3NzY4LCAtMS4yMDEwNDFdLCBbNTAuNjgxNTMzOCwgLTEuMjAwODc0N10sIFs1MC42ODEyMTc3LCAtMS4yMDA3ODYyXSwgWzUwLjY4MDgwOTgsIC0xLjIwMDY4MTZdLCBbNTAuNjgwNDE5OCwgLTEuMjAwNTkyXSwgWzUwLjY3OTc5OTMsIC0xLjIwMDM4NjFdLCBbNTAuNjc5MjAyMSwgLTEuMjAwMjQ0M10sIFs1MC42Nzg5NDc5LCAtMS4yMDAyMDI4XSwgWzUwLjY3ODY5MiwgLTEuMjAwMjE3N10sIFs1MC42Nzg0Mjc4LCAtMS4yMDA0MTQ3XSwgWzUwLjY3NzU2OTYsIC0xLjIwMTM0MDhdLCBbNTAuNjc3MzkxOSwgLTEuMjAxNTEwM10sIFs1MC42NzczNzI5LCAtMS4yMDE1MjEzXSwgWzUwLjY3NzI3MTIsIC0xLjIwMTU3NDddLCBbNTAuNjc3MTA1NSwgLTEuMjAxNjczM10sIFs1MC42NzY4NDA0LCAtMS4yMDE5MTRdLCBbNTAuNjc2Njc3MSwgLTEuMjAyMTA3OF0sIFs1MC42NzY1MDM4LCAtMS4yMDIzMjI0XSwgWzUwLjY3NjM4MSwgLTEuMjAyNDQ3N10sIFs1MC42NzYzNDIyLCAtMS4yMDI0ODczXSwgWzUwLjY3NjEzMDYsIC0xLjIwMjU5ODZdLCBbNTAuNjc1OTA2NSwgLTEuMjAyNjY0Ml0sIFs1MC42NzU4MDQ4LCAtMS4yMDI3MjMzXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzY0YWViM2RhODRlNDFhYzg4YzE1ZjAzMDhjYmNlMjQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYWY0NmZmYmY2NGJiNDkwM2E0MjM0YTRlOTljNDVkNGUgPSAkKCc8ZGl2IGlkPSJodG1sX2FmNDZmZmJmNjRiYjQ5MDNhNDIzNGE0ZTk5YzQ1ZDRlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iS25pZ2h0b24gU2h1dGUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zNjRhZWIzZGE4NGU0MWFjODhjMTVmMDMwOGNiY2UyNC5zZXRDb250ZW50KGh0bWxfYWY0NmZmYmY2NGJiNDkwM2E0MjM0YTRlOTljNDVkNGUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9lNGE1OGYwMTE3ZjQ0ZmYxOTExZTViZDU3Njg3MjExYy5iaW5kUG9wdXAocG9wdXBfMzY0YWViM2RhODRlNDFhYzg4YzE1ZjAzMDhjYmNlMjQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMDIxNDdiNzA0Y2VmNDE1MDgyYmI2MDQ4ZjgyMDAzZDQgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjgzNjIxNCwgLTEuMjAxMTU0OV0sIFs1MC42ODM3Mjk1LCAtMS4yMDA1NDJdLCBbNTAuNjgzODczNywgLTEuMTk5NTAyN10sIFs1MC42ODQxMzIsIC0xLjE5NzMyNDhdLCBbNTAuNjg0MzgwMSwgLTEuMTk1MDQ0OV0sIFs1MC42ODQ1ODY2LCAtMS4xOTMxMTkzXSwgWzUwLjY4NDYxMzUsIC0xLjE5MjkyMzZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mMjY2MWI4YWE5NTk0MGE4YjhhZmYyNTE0NGIzZGUyOSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84NjhlNzM1ZDQ2N2Y0MjBlYTQ0ZDRiYmM2YjkyZGQ3OCA9ICQoJzxkaXYgaWQ9Imh0bWxfODY4ZTczNWQ0NjdmNDIwZWE0NGQ0YmJjNmI5MmRkNzgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJEb3ducyBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZjI2NjFiOGFhOTU5NDBhOGI4YWZmMjUxNDRiM2RlMjkuc2V0Q29udGVudChodG1sXzg2OGU3MzVkNDY3ZjQyMGVhNDRkNGJiYzZiOTJkZDc4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfMDIxNDdiNzA0Y2VmNDE1MDgyYmI2MDQ4ZjgyMDAzZDQuYmluZFBvcHVwKHBvcHVwX2YyNjYxYjhhYTk1OTQwYThiOGFmZjI1MTQ0YjNkZTI5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzdiM2E5NGFmZjlmODRjOGZiYzhjYjU5MjJmMjNjMmRjID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY4MzYyMTQsIC0xLjIwMTE1NDldLCBbNTAuNjgzNTY4OCwgLTEuMjAxNDYzNF0sIFs1MC42ODM0OTkzLCAtMS4yMDE3ODddLCBbNTAuNjgzNDQ2NywgLTEuMjAxOTY5OF0sIFs1MC42ODMzNzM5LCAtMS4yMDIxODRdLCBbNTAuNjgzMjMyNiwgLTEuMjAyNTI5M10sIFs1MC42ODMxMzYsIC0xLjIwMjczMzhdLCBbNTAuNjgyOTQ4OSwgLTEuMjAzMTMwOF0sIFs1MC42ODI4NDA0LCAtMS4yMDMzNl0sIFs1MC42ODI3NTg2LCAtMS4yMDM1OTE0XSwgWzUwLjY4MjY5ODYsIC0xLjIwMzgwOTJdLCBbNTAuNjgyNjY1LCAtMS4yMDQwMzJdLCBbNTAuNjgyNjU0NCwgLTEuMjA0MzYyXSwgWzUwLjY4MjYzMjksIC0xLjIwNzEyNjhdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84Yjg3MjMxMTZlMzA0ZGIyYTY5NjNlMGMwMGZmNWYwMCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81YmNlODBhNzg5ZjA0YjczOWQ1MWZiY2FlMzc0OTVhMCA9ICQoJzxkaXYgaWQ9Imh0bWxfNWJjZTgwYTc4OWYwNGI3MzlkNTFmYmNhZTM3NDk1YTAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJEb3ducyBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOGI4NzIzMTE2ZTMwNGRiMmE2OTYzZTBjMDBmZjVmMDAuc2V0Q29udGVudChodG1sXzViY2U4MGE3ODlmMDRiNzM5ZDUxZmJjYWUzNzQ5NWEwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfN2IzYTk0YWZmOWY4NGM4ZmJjOGNiNTkyMmYyM2MyZGMuYmluZFBvcHVwKHBvcHVwXzhiODcyMzExNmUzMDRkYjJhNjk2M2UwYzAwZmY1ZjAwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzZlZmM0NGEwYzAzOTQ5MTI4NjRjODk0OTgyYzllNmQ4ID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY4NDYxMzUsIC0xLjE5MjkyMzZdLCBbNTAuNjg0NTg2NiwgLTEuMTkzMTE5M10sIFs1MC42ODQzODAxLCAtMS4xOTUwNDQ5XSwgWzUwLjY4NDEzMiwgLTEuMTk3MzI0OF0sIFs1MC42ODM4NzM3LCAtMS4xOTk1MDI3XSwgWzUwLjY4MzcyOTUsIC0xLjIwMDU0Ml0sIFs1MC42ODM2MjE0LCAtMS4yMDExNTQ5XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNmVlMmNmZDJiZDBiNDY5NTljZDU5Mjc1OWVlZTM4MTEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZTg1NDY3Y2EyYjg4NDZhZGI5ZmJmNzRhNGZlNjM0YjMgPSAkKCc8ZGl2IGlkPSJodG1sX2U4NTQ2N2NhMmI4ODQ2YWRiOWZiZjc0YTRmZTYzNGIzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iRG93bnMgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzZlZTJjZmQyYmQwYjQ2OTU5Y2Q1OTI3NTllZWUzODExLnNldENvbnRlbnQoaHRtbF9lODU0NjdjYTJiODg0NmFkYjlmYmY3NGE0ZmU2MzRiMyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzZlZmM0NGEwYzAzOTQ5MTI4NjRjODk0OTgyYzllNmQ4LmJpbmRQb3B1cChwb3B1cF82ZWUyY2ZkMmJkMGI0Njk1OWNkNTkyNzU5ZWVlMzgxMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8wMjc4NWQ2YjhkNDQ0ZjVhYTkwZDJkYTg2NjUwYTI3NiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTUyODMsIC0xLjIxNzQxNzVdLCBbNTAuNjU1MTE2MywgLTEuMjE2OTQ2N10sIFs1MC42NTQ5NTIxLCAtMS4yMTY1MTY2XSwgWzUwLjY1NDg2NSwgLTEuMjE2MTg1OF0sIFs1MC42NTQ4MDg2LCAtMS4yMTU3ODRdLCBbNTAuNjU0Nzg3MiwgLTEuMjE1MTUyNF0sIFs1MC42NTQ3OTMyLCAtMS4yMTQ0NTFdLCBbNTAuNjU0NzQ1MSwgLTEuMjEzMDkzMV0sIFs1MC42NTQ3MjY4LCAtMS4yMTI0NDI5XSwgWzUwLjY1NDcxMzMsIC0xLjIxMTgxOTddLCBbNTAuNjU0NzEyOCwgLTEuMjExNzQ2OV0sIFs1MC42NTQ3MTQ1LCAtMS4yMTE2Nzk5XSwgWzUwLjY1NDcyMjYsIC0xLjIxMTM3NThdLCBbNTAuNjU0NzU4LCAtMS4yMTExMjYzXSwgWzUwLjY1NDc4MjksIC0xLjIxMDk1MDVdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81ZmY3ZjY4ZTliOGQ0NjM1Yjc2MjNmNDRlOTViNjQ0NiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wYjExNGRlMDNiNzU0NGFhYjM1ODkzMWVjMjAxN2RjNCA9ICQoJzxkaXYgaWQ9Imh0bWxfMGIxMTRkZTAzYjc1NDRhYWIzNTg5MzFlYzIwMTdkYzQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJXYXRlcnkgTGFuZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzVmZjdmNjhlOWI4ZDQ2MzViNzYyM2Y0NGU5NWI2NDQ2LnNldENvbnRlbnQoaHRtbF8wYjExNGRlMDNiNzU0NGFhYjM1ODkzMWVjMjAxN2RjNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzAyNzg1ZDZiOGQ0NDRmNWFhOTBkMmRhODY2NTBhMjc2LmJpbmRQb3B1cChwb3B1cF81ZmY3ZjY4ZTliOGQ0NjM1Yjc2MjNmNDRlOTViNjQ0Nik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9iZjVkMzViZThjMTM0ZWJhOGE1ZGUwMDg3NmQyOGJlNiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NTUyODMsIC0xLjIxNzQxNzVdLCBbNTAuNjU1MzMzMiwgLTEuMjE3MzQ1MV0sIFs1MC42NTU5OTU1LCAtMS4yMTY1MjddLCBbNTAuNjU2NTc3LCAtMS4yMTYxMjZdLCBbNTAuNjU2NjI0NSwgLTEuMjE2MTA1NF0sIFs1MC42NTY4MzMsIC0xLjIxNjAxNV0sIFs1MC42NTcwMjk1LCAtMS4yMTU5MDk3XSwgWzUwLjY1NzIzNDMsIC0xLjIxNTcyOV0sIFs1MC42NTc0NjEyLCAtMS4yMTU0NzAyXSwgWzUwLjY1NzY1MDgsIC0xLjIxNTIzOTVdLCBbNTAuNjU3OTM1OCwgLTEuMjE0OTk2NF0sIFs1MC42NTc5ODAyLCAtMS4yMTQ5NDUyXSwgWzUwLjY1ODAwMDMsIC0xLjIxNDkwNjldLCBbNTAuNjU4ODM0MywgLTEuMjEyNjYyM10sIFs1MC42NTkwODA2LCAtMS4yMTE5NDEzXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNTI4OWQ5NGU1ZTc0NDU4YmEwZWU5MGRmMzkxNDljMWQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODQ1OTRjNTljZGE3NDA5NmIyMDlhZWM5ZTEyMmNiZDAgPSAkKCc8ZGl2IGlkPSJodG1sXzg0NTk0YzU5Y2RhNzQwOTZiMjA5YWVjOWUxMjJjYmQwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iSGFyYm9ycyBMYWtlIExhbmUiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81Mjg5ZDk0ZTVlNzQ0NThiYTBlZTkwZGYzOTE0OWMxZC5zZXRDb250ZW50KGh0bWxfODQ1OTRjNTljZGE3NDA5NmIyMDlhZWM5ZTEyMmNiZDApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9iZjVkMzViZThjMTM0ZWJhOGE1ZGUwMDg3NmQyOGJlNi5iaW5kUG9wdXAocG9wdXBfNTI4OWQ5NGU1ZTc0NDU4YmEwZWU5MGRmMzkxNDljMWQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZjkyOTRiNjk5YmI1NGRmMzg2YjUxMjFiM2JlY2NkNGYgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQyMjM2MiwgLTEuMjA4NDgyXSwgWzUwLjY0MjI2NTQsIC0xLjIwODQzMzZdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80YWMzYjA0YmQ4ZjA0YmM1YTQxMDZlZjlkZTgwMjRhYSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xYzk4MzM1MDBmOTY0ZjIwOTAzYjMyM2NhM2VlZTAwNSA9ICQoJzxkaXYgaWQ9Imh0bWxfMWM5ODMzNTAwZjk2NGYyMDkwM2IzMjNjYTNlZWUwMDUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJWZW50bm9yIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80YWMzYjA0YmQ4ZjA0YmM1YTQxMDZlZjlkZTgwMjRhYS5zZXRDb250ZW50KGh0bWxfMWM5ODMzNTAwZjk2NGYyMDkwM2IzMjNjYTNlZWUwMDUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9mOTI5NGI2OTliYjU0ZGYzODZiNTEyMWIzYmVjY2Q0Zi5iaW5kUG9wdXAocG9wdXBfNGFjM2IwNGJkOGYwNGJjNWE0MTA2ZWY5ZGU4MDI0YWEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfY2I0YTg2YzU1YTY2NDlhZDk3NzljOTYzNDgxYjdiOWUgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjQyMjM2MiwgLTEuMjA4NDgyXSwgWzUwLjY0MjIwNjMsIC0xLjIwODUzMTVdLCBbNTAuNjQyMTU5OSwgLTEuMjA4NjM2OF0sIFs1MC42NDE5NDk3LCAtMS4yMDk0MjIzXSwgWzUwLjY0MTgyNDIsIC0xLjIwOTgwNTJdLCBbNTAuNjQxNzM3MiwgLTEuMjFdLCBbNTAuNjQxNjYzMywgLTEuMjEwMTQ0M10sIFs1MC42NDE1MzczLCAtMS4yMTAzOTIzXV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTFjYWEzMWQ3OWI4NDA1ZjhjOTAyMmY5Y2MwMDY1MTggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYmJlZDExZTBhYjJhNGY0N2E5ZWZiZDYyYjBjNDIyNTcgPSAkKCc8ZGl2IGlkPSJodG1sX2JiZWQxMWUwYWIyYTRmNDdhOWVmYmQ2MmIwYzQyMjU3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iVmVudG5vciBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTFjYWEzMWQ3OWI4NDA1ZjhjOTAyMmY5Y2MwMDY1MTguc2V0Q29udGVudChodG1sX2JiZWQxMWUwYWIyYTRmNDdhOWVmYmQ2MmIwYzQyMjU3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfY2I0YTg2YzU1YTY2NDlhZDk3NzljOTYzNDgxYjdiOWUuYmluZFBvcHVwKHBvcHVwXzkxY2FhMzFkNzliODQwNWY4YzkwMjJmOWNjMDA2NTE4KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzQ3MGI3MGVjMzk5YjQxZjZhYWJkOTc4MmIxNDA4OGIxID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY0NzE0MzcsIC0xLjIwMjc4ODFdLCBbNTAuNjQ3MDE1LCAtMS4yMDI4MDQ0XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTk2Mzc4MjBlZjBiNDdmOGJkMDIzYTExM2IzNjA1NzEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYWI4MjAzMDdiYmQ4NDhiODk5NDUyZTE5NWYzYjlmNzkgPSAkKCc8ZGl2IGlkPSJodG1sX2FiODIwMzA3YmJkODQ4Yjg5OTQ1MmUxOTVmM2I5Zjc5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iQWx2ZXJzdG9uZSBSb2FkIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTk2Mzc4MjBlZjBiNDdmOGJkMDIzYTExM2IzNjA1NzEuc2V0Q29udGVudChodG1sX2FiODIwMzA3YmJkODQ4Yjg5OTQ1MmUxOTVmM2I5Zjc5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfNDcwYjcwZWMzOTliNDFmNmFhYmQ5NzgyYjE0MDg4YjEuYmluZFBvcHVwKHBvcHVwXzE5NjM3ODIwZWYwYjQ3ZjhiZDAyM2ExMTNiMzYwNTcxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lXzBmM2I5NDliZjAyNTRiZTU4MzVmMmU3OWM1ZWM0NTdlID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY0NzE0MzcsIC0xLjIwMjc4ODFdLCBbNTAuNjQ3MzExLCAtMS4yMDI3NjgxXSwgWzUwLjY0Nzk2MjgsIC0xLjIwMjY3N10sIFs1MC42NDg5Mjk4LCAtMS4yMDI1NjU2XSwgWzUwLjY0OTE0MDgsIC0xLjIwMjQ5ODRdLCBbNTAuNjQ5MzEwMiwgLTEuMjAyMzkzXSwgWzUwLjY0OTYxNjgsIC0xLjIwMjEyOF0sIFs1MC42NTAwODIzLCAtMS4yMDE2ODAyXSwgWzUwLjY1MDI5NjUsIC0xLjIwMTQ2MjddLCBbNTAuNjUxMzM5NywgLTEuMjAwNDg1Nl0sIFs1MC42NTE0OTE3LCAtMS4yMDAzNjVdLCBbNTAuNjUxNjQ0OCwgLTEuMjAwMjY1NF0sIFs1MC42NTE4MjU2LCAtMS4yMDAxNzQ0XSwgWzUwLjY1MTk3ODEsIC0xLjIwMDE0MzFdLCBbNTAuNjUyMjA3MSwgLTEuMjAwMTI2NV1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzFlYzVmZTQzZjM5NjQxYmZhNGE5NzU4NTMwNGM1Y2YyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzg3MWM1NWY0MWRhMzQwYzViZjQyNTFmYmEwZTEwMGY5ID0gJCgnPGRpdiBpZD0iaHRtbF84NzFjNTVmNDFkYTM0MGM1YmY0MjUxZmJhMGUxMDBmOSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkFsdmVyc3RvbmUgUm9hZCI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzFlYzVmZTQzZjM5NjQxYmZhNGE5NzU4NTMwNGM1Y2YyLnNldENvbnRlbnQoaHRtbF84NzFjNTVmNDFkYTM0MGM1YmY0MjUxZmJhMGUxMDBmOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzBmM2I5NDliZjAyNTRiZTU4MzVmMmU3OWM1ZWM0NTdlLmJpbmRQb3B1cChwb3B1cF8xZWM1ZmU0M2YzOTY0MWJmYTRhOTc1ODUzMDRjNWNmMik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8yZDg2ZTIzNmUyNmU0NWJiODQ2M2FjMjVkMTM1NzQ5YSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42Njg4ODc1LCAtMS4xNzgyODkyXSwgWzUwLjY2ODc4NDEsIC0xLjE3ODQwNV0sIFs1MC42Njg3NTAyLCAtMS4xNzg0NDM5XSwgWzUwLjY2ODY1NDMsIC0xLjE3ODU0NzFdLCBbNTAuNjY4NTE1NywgLTEuMTc4NzIyNF0sIFs1MC42Njg0NjMzLCAtMS4xNzg5MTY4XSwgWzUwLjY2ODQ4NjksIC0xLjE3OTA4OTZdLCBbNTAuNjY4NTM5MSwgLTEuMTc5MzE0M10sIFs1MC42Njg3MjU3LCAtMS4xNzk4OTk5XSwgWzUwLjY2ODcwOTcsIC0xLjE3OTk2MDRdLCBbNTAuNjY4Njk2LCAtMS4xODAwMTIyXSwgWzUwLjY2ODUwOSwgLTEuMTgwMTU2Ml0sIFs1MC42Njg0Njk4LCAtMS4xODAyMzM5XSwgWzUwLjY2ODQ0NTUsIC0xLjE4MDI5OThdLCBbNTAuNjY4NDA3NiwgLTEuMTgwNTMxMl0sIFs1MC42Njg0MDE3LCAtMS4xODA1NzMxXSwgWzUwLjY2ODQwMjksIC0xLjE4MDcxMjhdLCBbNTAuNjY4NTkzOCwgLTEuMTgxNjkyN10sIFs1MC42Njg4Njg5LCAtMS4xODI0ODU1XSwgWzUwLjY2ODg5NDUsIC0xLjE4MjY3NzVdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80YjJhMjk0MTU0NDQ0NThkOTI2MjU3NmJjNTI2YTU2MCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84ZjJhM2ZiNTU2Y2E0MTJkODA0NDI1NjRlNjU4ODA3NiA9ICQoJzxkaXYgaWQ9Imh0bWxfOGYyYTNmYjU1NmNhNDEyZDgwNDQyNTY0ZTY1ODgwNzYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJNYWluIFJvYWQiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80YjJhMjk0MTU0NDQ0NThkOTI2MjU3NmJjNTI2YTU2MC5zZXRDb250ZW50KGh0bWxfOGYyYTNmYjU1NmNhNDEyZDgwNDQyNTY0ZTY1ODgwNzYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV8yZDg2ZTIzNmUyNmU0NWJiODQ2M2FjMjVkMTM1NzQ5YS5iaW5kUG9wdXAocG9wdXBfNGIyYTI5NDE1NDQ0NDU4ZDkyNjI1NzZiYzUyNmE1NjApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfNDRiZDg2MDhlNTQ4NDY4ZWEyNjY5NWRlN2NlYjRhMjggPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgICAgIFtbNTAuNjgwNjQ4NiwgLTEuMjE0NjI4NF0sIFs1MC42ODA3MjYyLCAtMS4yMTQyMTczXSwgWzUwLjY4MDcxNiwgLTEuMjEzODE1XSwgWzUwLjY4MDY1MTQsIC0xLjIxMzE0NDRdLCBbNTAuNjgwNzUzNCwgLTEuMjEyNTg2NV0sIFs1MC42ODA4NzQ2LCAtMS4yMTIzMTkyXSwgWzUwLjY4MDk2OTQsIC0xLjIxMjExMDNdLCBbNTAuNjgxMTUwNywgLTEuMjExODYxNl0sIFs1MC42ODEyODM0LCAtMS4yMTE1NTc3XSwgWzUwLjY4MTQ2MDQsIC0xLjIxMDgyOTddLCBbNTAuNjgxNTI2MSwgLTEuMjEwMzc0OV0sIFs1MC42ODE2MDk1LCAtMS4yMDk4ODU1XSwgWzUwLjY4MTcxNzEsIC0xLjIwOTM5NTJdLCBbNTAuNjgxODk3NiwgLTEuMjA4NzI4MV0sIFs1MC42ODE5ODY4LCAtMS4yMDg0MDQ5XSwgWzUwLjY4MjA1OTUsIC0xLjIwODE2MDldLCBbNTAuNjgyMTA0OSwgLTEuMjA4MDQ2OF0sIFs1MC42ODIyMDM1LCAtMS4yMDc4MTg4XSwgWzUwLjY4MjMxNDQsIC0xLjIwNzYwMTZdLCBbNTAuNjgyNDQxNSwgLTEuMjA3Mzg3NV0sIFs1MC42ODI1ODksIC0xLjIwNzE5ODVdLCBbNTAuNjgyNjMyOSwgLTEuMjA3MTI2OF1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2UyNjE2ZTNjY2VjNzRhMzU5YTM4OTNmNjA3ZjZjMzhlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2FmZWNlYjM4MDAxOTRmMmE4YmVmYWJlODQzNzI2NmMxID0gJCgnPGRpdiBpZD0iaHRtbF9hZmVjZWIzODAwMTk0ZjJhOGJlZmFiZTg0MzcyNjZjMSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+IkxpbWUgS2lsbiBTaHV0ZSI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2UyNjE2ZTNjY2VjNzRhMzU5YTM4OTNmNjA3ZjZjMzhlLnNldENvbnRlbnQoaHRtbF9hZmVjZWIzODAwMTk0ZjJhOGJlZmFiZTg0MzcyNjZjMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgcG9seV9saW5lXzQ0YmQ4NjA4ZTU0ODQ2OGVhMjY2OTVkZTdjZWI0YTI4LmJpbmRQb3B1cChwb3B1cF9lMjYxNmUzY2NlYzc0YTM1OWEzODkzZjYwN2Y2YzM4ZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9lMTE5MmMzMzVkYjU0NWUxOWM2NTcxODRjZDk2MGQzNSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42ODA2NDg2LCAtMS4yMTQ2Mjg0XSwgWzUwLjY4MDIzNDUsIC0xLjIxNDc0ODRdLCBbNTAuNjc5OTg1OCwgLTEuMjE0ODE4M10sIFs1MC42Nzk3NTM4LCAtMS4yMTQ4ODc1XSwgWzUwLjY3OTU5OTcsIC0xLjIxNDkyNDFdLCBbNTAuNjc5MzI3OSwgLTEuMjE1MTA2Nl0sIFs1MC42NzkxODQ0LCAtMS4yMTUxOTUzXSwgWzUwLjY3OTA0ODIsIC0xLjIxNTIyOTZdLCBbNTAuNjc4Nzc4MSwgLTEuMjE1MTA2OV0sIFs1MC42Nzg0NDA2LCAtMS4yMTQ4MDA3XSwgWzUwLjY3ODMyNjcsIC0xLjIxNDY3NzNdLCBbNTAuNjc4MjE2OSwgLTEuMjE0NjAwNF0sIFs1MC42NzgxMzMxLCAtMS4yMTQ1NDE3XSwgWzUwLjY3Nzg4ODIsIC0xLjIxNDQxNzFdLCBbNTAuNjc3NTgwNSwgLTEuMjE0MzIwNl0sIFs1MC42Nzc0MTU3LCAtMS4yMTQyMDI2XSwgWzUwLjY3NzA4NjMsIC0xLjIxMzYzMTddLCBbNTAuNjc2ODE3NCwgLTEuMjEzMTc1M10sIFs1MC42NzY1ODI4LCAtMS4yMTI4MTE0XSwgWzUwLjY3NjM4NjcsIC0xLjIxMjU0MDddLCBbNTAuNjc2MjkxNSwgLTEuMjEyNDA0OF0sIFs1MC42NzYxOTkzLCAtMS4yMTIyNzM3XSwgWzUwLjY3NTkzNjMsIC0xLjIxMjAwNjZdLCBbNTAuNjc1OTAwOSwgLTEuMjExOTY2NV0sIFs1MC42NzU1MTQ2LCAtMS4yMTE2MTY3XSwgWzUwLjY3NTE2OTUsIC0xLjIxMTMyMjldLCBbNTAuNjc0NzE2MywgLTEuMjExMDg2M10sIFs1MC42NzQ1NzYzLCAtMS4yMTEwMDc3XV0sCiAgICAgICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiIzMzMzMzMyIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogZmFsc2UsCiAgImZpbGxDb2xvciI6ICIjMzMzMzMzIiwKICAiZmlsbE9wYWNpdHkiOiAwLjIsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJub0NsaXAiOiBmYWxzZSwKICAib3BhY2l0eSI6IDEsCiAgInNtb290aEZhY3RvciI6IDEuMCwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMgp9KS5hZGRUbyhtYXBfYTU1MDYzNmYzYTU0NDEzODk4MDI4Y2I0OWFmOGFkY2IpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMWJlMDM5OGI4NjdmNDk1Y2FiZTViMTkyNWM4YzA0NzMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYWZlN2JiNzU2NWUyNDg0NTlhZGJiNDAxODcyYWI1NDcgPSAkKCc8ZGl2IGlkPSJodG1sX2FmZTdiYjc1NjVlMjQ4NDU5YWRiYjQwMTg3MmFiNTQ3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4iTWVyc2xleSBMYW5lIjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMWJlMDM5OGI4NjdmNDk1Y2FiZTViMTkyNWM4YzA0NzMuc2V0Q29udGVudChodG1sX2FmZTdiYjc1NjVlMjQ4NDU5YWRiYjQwMTg3MmFiNTQ3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfZTExOTJjMzM1ZGI1NDVlMTljNjU3MTg0Y2Q5NjBkMzUuYmluZFBvcHVwKHBvcHVwXzFiZTAzOThiODY3ZjQ5NWNhYmU1YjE5MjVjOGMwNDczKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2NiOTRiZjE0OWMyYTRjNDA5MmRiN2EwYmE3YzJjMzlmID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY1NDMwOCwgLTEuMTgyNTY0Nl0sIFs1MC42NTQxNDMsIC0xLjE4MzAyNDldLCBbNTAuNjU0MDk0NCwgLTEuMTgzMTY5OF0sIFs1MC42NTM4NDQyLCAtMS4xODM4NzczXSwgWzUwLjY1Mzc0NzYsIC0xLjE4NDA3NTVdLCBbNTAuNjUzMzI3NywgLTEuMTg0MzAzOV0sIFs1MC42NTMyOTA3LCAtMS4xODQzMjU0XSwgWzUwLjY1MjkwOTEsIC0xLjE4NDQ4MTVdLCBbNTAuNjUyODUxOSwgLTEuMTg0NTA1NV0sIFs1MC42NTI1NTc2LCAtMS4xODQ2MjkxXSwgWzUwLjY1MjI5NCwgLTEuMTg0Nzc1NV0sIFs1MC42NTIxMzczLCAtMS4xODQ5MjI5XSwgWzUwLjY1MTkzMjQsIC0xLjE4NTI0ODddLCBbNTAuNjUxMjkyMiwgLTEuMTg1OTY0OV0sIFs1MC42NTExMDkzLCAtMS4xODYzMDk2XSwgWzUwLjY1MDg3MywgLTEuMTg2ODU5NF0sIFs1MC42NTA1OTEsIC0xLjE4NzU1NzRdLCBbNTAuNjUwNTI1MSwgLTEuMTg3NTk1OV0sIFs1MC42NTAxOTAxLCAtMS4xODc1ODM2XSwgWzUwLjY0OTg2MTksIC0xLjE4NzYyNjVdLCBbNTAuNjQ5NzAyOSwgLTEuMTg3NjI5Ml0sIFs1MC42NDk0OTI5LCAtMS4xODc1NjQ4XSwgWzUwLjY0OTIxMzcsIC0xLjE4NzM3MTZdLCBbNTAuNjQ5MDQ2MywgLTEuMTg3MTc0M10sIFs1MC42NDg3ODExLCAtMS4xODY4NDI4XSwgWzUwLjY0ODU0MzIsIC0xLjE4NjU2OTVdLCBbNTAuNjQ4NDAwNCwgLTEuMTg2NDc4N10sIFs1MC42NDgyMDY5LCAtMS4xODYzODY5XSwgWzUwLjY0Nzk4OTIsIC0xLjE4NjI4MTVdLCBbNTAuNjQ3ODExMSwgLTEuMTg2MTg4N10sIFs1MC42NDc2NzA3LCAtMS4xODYwOTA4XSwgWzUwLjY0NzQ1MDQsIC0xLjE4NTkzODJdLCBbNTAuNjQ3MTUyMiwgLTEuMTg1NjcxNl0sIFs1MC42NDcwMjA1LCAtMS4xODU1NTJdLCBbNTAuNjQ2ODI1OSwgLTEuMTg1MzgwNF0sIFs1MC42NDY3OTM1LCAtMS4xODUzNjI2XSwgWzUwLjY0NjcwOSwgLTEuMTg1MzUwNl1dLAogICAgICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogIiMzMzMzMzMiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IGZhbHNlLAogICJmaWxsQ29sb3IiOiAiIzMzMzMzMyIsCiAgImZpbGxPcGFjaXR5IjogMC4yLAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAibm9DbGlwIjogZmFsc2UsCiAgIm9wYWNpdHkiOiAxLAogICJzbW9vdGhGYWN0b3IiOiAxLjAsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDIKfSkuYWRkVG8obWFwX2E1NTA2MzZmM2E1NDQxMzg5ODAyOGNiNDlhZjhhZGNiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzU3MWYzYjU3ZDAzNjRiMjQ4OTc2MTc0NzExMjhmODExID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzY0MjdmMjA1MTAwMjQ3ODdhODgzMWIyOTIyZmNkOWVlID0gJCgnPGRpdiBpZD0iaHRtbF82NDI3ZjIwNTEwMDI0Nzg3YTg4MzFiMjkyMmZjZDllZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WyJTY290Y2hlbGxzIEJyb29rIExhbmUiLCAiRW1iYXNzeSBXYXkiXTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNTcxZjNiNTdkMDM2NGIyNDg5NzYxNzQ3MTEyOGY4MTEuc2V0Q29udGVudChodG1sXzY0MjdmMjA1MTAwMjQ3ODdhODgzMWIyOTIyZmNkOWVlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBwb2x5X2xpbmVfY2I5NGJmMTQ5YzJhNGM0MDkyZGI3YTBiYTdjMmMzOWYuYmluZFBvcHVwKHBvcHVwXzU3MWYzYjU3ZDAzNjRiMjQ4OTc2MTc0NzExMjhmODExKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgcG9seV9saW5lX2Y1ODczNWU5YjA2ZDQ4NWRiYWRlZDgzM2Y1NmQzYzZhID0gTC5wb2x5bGluZSgKICAgICAgICAgICAgICAgICAgICBbWzUwLjY0NTY2NSwgLTEuMjA1NjEwOV0sIFs1MC42NDU1ODY1LCAtMS4yMDU3MjQ4XSwgWzUwLjY0NTQzNzQsIC0xLjIwNTUzNTNdLCBbNTAuNjQ1MzE1MSwgLTEuMjA1NDM2OV0sIFs1MC42NDUyMTA2LCAtMS4yMDUzMzg5XSwgWzUwLjY0NDk5MDIsIC0xLjIwNDgzNjFdXSwKICAgICAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICIjMzMzMzMzIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiBmYWxzZSwKICAiZmlsbENvbG9yIjogIiMzMzMzMzMiLAogICJmaWxsT3BhY2l0eSI6IDAuMiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm5vQ2xpcCI6IGZhbHNlLAogICJvcGFjaXR5IjogMSwKICAic21vb3RoRmFjdG9yIjogMS4wLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAyCn0pLmFkZFRvKG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81NjZkMjk5MzVhZjI0YjdmYWIzYmIxNmI0YmRmY2VmYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mYzU3ZjFiMDg1OTg0OGQ2OTZlMTljYzJmZDQ4N2M3YiA9ICQoJzxkaXYgaWQ9Imh0bWxfZmM1N2YxYjA4NTk4NDhkNjk2ZTE5Y2MyZmQ0ODdjN2IiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPiJUaGUgQnJhbWJsZXMiPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81NjZkMjk5MzVhZjI0YjdmYWIzYmIxNmI0YmRmY2VmYy5zZXRDb250ZW50KGh0bWxfZmM1N2YxYjA4NTk4NDhkNjk2ZTE5Y2MyZmQ0ODdjN2IpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIHBvbHlfbGluZV9mNTg3MzVlOWIwNmQ0ODVkYmFkZWQ4MzNmNTZkM2M2YS5iaW5kUG9wdXAocG9wdXBfNTY2ZDI5OTM1YWYyNGI3ZmFiM2JiMTZiNGJkZmNlZmMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIG1hcF9hNTUwNjM2ZjNhNTQ0MTM4OTgwMjhjYjQ5YWY4YWRjYi5maXRCb3VuZHMoCiAgICAgICAgICAgICAgICAgICAgW1s1MC42NDE1MzczLCAtMS4yMTc0MTc1XSwgWzUwLjY4NDYxMzUsIC0xLjE3ODI4OTJdXSwKICAgICAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICAKCiAgICAgICAgICAgICAgICB2YXIgZ2VvX2pzb25fY2U2NWIyNjEyNTMxNDEwOWIwOWM5ODk0MDliZjdlM2MgPSBMLmdlb0pzb24oCiAgICAgICAgICAgICAgICAgICAgeyJmZWF0dXJlcyI6IFt7Imdlb21ldHJ5IjogeyJjb29yZGluYXRlcyI6IFtbW1stMS4xOTcwMjYzNDI0NjQ1MTksIDUwLjYzNjYwMDQ2ODI5NDc3XSwgWy0xLjE5NzA5NTU3NDU0ODM2OSwgNTAuNjM2MzU1NDE3NDA0NDldLCBbLTEuMTk3MjA1OTAyMzg2Mzk1LCA1MC42MzYxMDcwNTMzNTAyM10sIFstMS4xOTcyNDc5MTEyOTQxNywgNTAuNjM1OTY3OTkxNDc2NTZdLCBbLTEuMTk3MzA2MjAxOTc1MDExLCA1MC42MzU2MTIxOTMyNjA3M10sIFstMS4xOTczNzA4MTM0MDcwNywgNTAuNjM1MzA5NjYxNjkyNTZdLCBbLTEuMTk3NDAyNDE3MzE1NjkzLCA1MC42MzUwMjgzODk4NTk3NF0sIFstMS4xOTc0MDY5MTgwMzA2NDMsIDUwLjYzNDc2NDAxMzE0OTI0XSwgWy0xLjE5NzQ0ODI3NzU2NDM1MiwgNTAuNjM0NTgwODAzODMyMV0sIFstMS4xOTc1MTA5NDY1NzgwNzgsIDUwLjYzNDEzODgxNzYyNTQ2XSwgWy0xLjE5NzY2NjY2NzQ0Mzk1NCwgNTAuNjMzNjI3MjU2ODYxOThdLCBbLTEuMTk3NzM3NzM5NDYxODYyLCA1MC42MzM0MzgwNDg1NTQwMV0sIFstMS4xOTc3NjEwMjE4MTAzOCwgNTAuNjMzMzE2NzQ4NDUwNTNdLCBbLTEuMTk3NzY3ODczOTgxMjEsIDUwLjYzMzE2NzU1NDkxMTQ1XSwgWy0xLjE5Nzc4NzM4NTM0MTAxNCwgNTAuNjMzMDk2NTc1MTA0OTddLCBbLTEuMTk3ODYyMjAzMjYxOTYzLCA1MC42MzI5NDA2NTY5ODI4OV0sIFstMS4xOTc4NzQzMjEwNjA3NCwgNTAuNjMyODkzMDkxMjMzMDddLCBbLTEuMTk3ODg3NjcxOTI4MjAyLCA1MC42MzI2OTA4MDkxMDkzN10sIFstMS4xOTc5MDMwMjM1NzM2ODMsIDUwLjYzMjUzNTM4MDc1NDE0XSwgWy0xLjE5Nzg5NDQ3NzgyMjQ5NSwgNTAuNjMyNDU1MjE3NDQwNTVdLCBbLTEuMTk3ODk2NzEwNTQ1NTMzLCA1MC42MzIzMjM5NzI4OTQxOV0sIFstMS4xOTc5MDkxNzI2NDk0MjYsIDUwLjYzMjE3MzkxODg4NzM2XSwgWy0xLjE5NzkyMDk5MzkzNjAyNSwgNTAuNjMyMDYxNTMwMjY0NDNdLCBbLTEuMTk3OTMwMTk3MjU2MjE2LCA1MC42MzIwMTM5NDQ0NDY3N10sIFstMS4xOTc5Mzc3NzY5MDE4OTMsIDUwLjYzMTczOTY5OTMyODU1XSwgWy0xLjE5ODY1NzI2NjUyNDIyMSwgNTAuNjMxNzQ5MTQzMjc0NTZdLCBbLTEuMTk5MDc2MDE1ODMzMTc4LCA1MC42MzE3MzU4Mzg3MTE0NV0sIFstMS4xOTk2OTcxOTI3NzYxNTMsIDUwLjYzMTU0MTMyNzU4MDk2XSwgWy0xLjIwMDY0OTgxMTQwNjU0NywgNTAuNjMxMzE4NjA5MTU0NTJdLCBbLTEuMjAxMzI5MDI5MTA2NDk0LCA1MC42MzEyMDAwMDY3NjgyNl0sIFstMS4yMDE0OTE4MzU3NjA3NTMsIDUwLjYzMTE4OTQzNDcwMTA5XSwgWy0xLjIwMTYxMDUzOTc4NzI2MiwgNTAuNjMxMTk0NzQzMDUzNDddLCBbLTEuMjAxODA1MTU1MzIxMDgyLCA1MC42MzEzMDIyNTI2MzUwNV0sIFstMS4yMDE5MDA0NDA1NDg4ODcsIDUwLjYzMTI3MjMzNzczNzA5XSwgWy0xLjIwMjA1OTc2NTE5Mjk1MiwgNTAuNjMxMzAyMTk3ODU1NTFdLCBbLTEuMjAyMTY5ODUzODA0MjA2LCA1MC42MzEzMTM3Mzk5NDAyXSwgWy0xLjIwMjI2NTg3MzUzNjY2NywgNTAuNjMxMzE2MTk1MjI4M10sIFstMS4yMDIzODYyODA4OTUzNjIsIDUwLjYzMTMwMzUzMzYzNzg0XSwgWy0xLjIwMjcxMTMzMzE1MDY4NCwgNTAuNjMxMjMyODQ1MzU0NTNdLCBbLTEuMjAyOTU3ODE3NDYzODc4LCA1MC42MzExMjAzNTI5NzUwMl0sIFstMS4yMDMwMjU5Nzc1MjA4MywgNTAuNjMxMTAxOTM5MTk0NjldLCBbLTEuMjAzMjIyNDkxMjg5MTEsIDUwLjYzMTEwNDE4MTc0NzA0XSwgWy0xLjIwMzI2NzgyNDkyMzI2MiwgNTAuNjMxMDk4MTk4MzUwNjldLCBbLTEuMjAzMzI2MDc2Nzg5NzYyLCA1MC42MzEwNzk3MTY2NjcxOV0sIFstMS4yMDM0MDQzNzI0ODQ2NjcsIDUwLjYzMTA0Nzg4NjMzNTY0XSwgWy0xLjIwMzQ0Mjk3MDMwMTM5MywgNTAuNjMxMDI2NTczMTQ4NV0sIFstMS4yMDI5NTIyNzA0MzA4NCwgNTAuNjMwNjk2Nzc3MDY1NDNdLCBbLTEuMjAyNTY4MDk2MDI4OTI2LCA1MC42MzAzMzQ0NDMyMjY5XSwgWy0xLjIwMjI3MjE3MDA3MTM4LCA1MC42MzAwMjc1NTM1ODEyN10sIFstMS4yMDI5MTI2NzE4NDI4MjEsIDUwLjYzMDEwODM1MzkzMDEyXSwgWy0xLjIwMzQ5MzczOTAwMzg0MywgNTAuNjMwMTk1MDM3ODk4NDZdLCBbLTEuMjA1MTMzMjc3OTA4MDg2LCA1MC42MzA0ODUwMjI3NzY3MV0sIFstMS4yMDU1ODMxNTc1MDQ3MSwgNTAuNjMwNTUzNzE5ODIyMDJdLCBbLTEuMjA2MDM3NTA3MTk0NTI1LCA1MC42MzA2MDYyNjI4NDgzNF0sIFstMS4yMDY3MDU0OTQzMTIwNDEsIDUwLjYzMDY1NDg2NDA3Mjk1XSwgWy0xLjIwNzE1MTg5NDgyODg5NiwgNTAuNjMwNjc0MTc0MDU2MThdLCBbLTEuMjA3NTUzMjkyNTk3NjksIDUwLjYzMDY4Njc5MzE4ODc2XSwgWy0xLjIwNzkxMDg1MTUzOTQ2OSwgNTAuNjMwNjkyODE5NzQ5ODhdLCBbLTEuMjA4MjEwNjcwMTM1NDk0LCA1MC42MzA2OTM5NTc3OTA3OV0sIFstMS4yMDg0MzgzMjQ0ODUyOTQsIDUwLjYzMDY4ODMxMTcyMjk5XSwgWy0xLjIwOTI4MDQzMDI1MjcxNiwgNTAuNjMwNjQyNjkyMzM3MjFdLCBbLTEuMjA5ODk3MjczOTkwNzAyLCA1MC42MzA2MTk5MDQxMTA4M10sIFstMS4yMTAyODY1Mjc1NjI3OSwgNTAuNjMwNTkxOTc0Njk0MzFdLCBbLTEuMjEzMDgyMTEwMjc1MDMxLCA1MC42MzAzMjMwOTkyNThdLCBbLTEuMjE0NTQ2NTEzMTgyODMyLCA1MC42MzAxNzExNDk0NTI5Ml0sIFstMS4yMTQ4MjY4MTI0MzE1OTQsIDUwLjYzMDE1NDE1ODEzNTU0XSwgWy0xLjIxNTE2NzYwMTUwNDUwNywgNTAuNjMwMTUxOTU4MTAzOTddLCBbLTEuMjE1Mjk2MTk3NTMwMDEzLCA1MC42MzAxNTgyMTgxNjI1NV0sIFstMS4yMTU2NDc3NTQ5NTQ5MywgNTAuNjMwMTg4NDU0NjY0NDhdLCBbLTEuMjE2MjQ1OTg4MDA5MjA3LCA1MC42MzAyNjA4MDU4NTAwNV0sIFstMS4yMTcxOTg2OTY4MDE0NzQsIDUwLjYzMDM2MzQwNTM4MzJdLCBbLTEuMjE3NDgzNTc2OTQ2NDc0LCA1MC42MzA0MDc1NzMxNTcwNV0sIFstMS4yMTc3NTQ0ODg4NDk3ODQsIDUwLjYzMDQzNjQ1MjcxNTEzXSwgWy0xLjIxODU3MDExMDE0MzIzNiwgNTAuNjMwNTM5MDE5OTU2MjVdLCBbLTEuMjE4ODkxNjUwODgzNzM4LCA1MC42MzA1ODcwMjYyMTM2Nl0sIFstMS4yMTkyNDI2MzM0MzIzOTYsIDUwLjYzMDY1MjMxMDU1NTldLCBbLTEuMjIwMTYyODIwMjUwMDAxLCA1MC42MzA4NDAxNjY2NDcyNl0sIFstMS4yMjE2MTM0Mjk0MzEwOTMsIDUwLjYzMTE4NDM5NTU4MjM5XSwgWy0xLjIyMTc0Mj
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment