You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
811 lines
82 KiB
811 lines
82 KiB
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.voiceAnalyzeEcharts = exports.getparticipationPercent = exports.getVoiceActiveA = exports.getVoiceActive = exports.getparticipation2 = exports.getparticipation = exports.getPeopleChart2 = exports.PeopleChart2 = exports.PeopleChart1 = void 0;
|
|
var echarts = require("../../../components/ec-canvas/echarts.js");
|
|
function PeopleChart1(chart) {
|
|
var option = {
|
|
series: [
|
|
{
|
|
type: 'pie',
|
|
itemStyle: {
|
|
normal: {
|
|
color: function (params) {
|
|
var colorList = [
|
|
"#FFC600", "#29B9A5"
|
|
];
|
|
return colorList[params.dataIndex];
|
|
},
|
|
borderColor: '#fff',
|
|
borderWidth: '2',
|
|
}
|
|
},
|
|
data: [{
|
|
name: '20',
|
|
value: 20
|
|
},
|
|
{
|
|
name: '50',
|
|
value: 50
|
|
}],
|
|
clickable: false,
|
|
minAngle: 15,
|
|
avoidLabelOverlap: true,
|
|
hoverAnimation: false,
|
|
silent: true,
|
|
center: ['50%', '50%'],
|
|
radius: '60%',
|
|
labelLine: {
|
|
normal: {
|
|
length: 12,
|
|
length2: 8
|
|
}
|
|
},
|
|
label: {
|
|
position: 'outer',
|
|
alignTo: 'none',
|
|
bleedMargin: 5
|
|
},
|
|
left: 0,
|
|
right: '50%',
|
|
top: '-20%',
|
|
bottom: 0,
|
|
},
|
|
{
|
|
type: 'pie',
|
|
itemStyle: {
|
|
normal: {
|
|
color: function (params) {
|
|
var colorList = [
|
|
"#AD6DFE", "#FFA270"
|
|
];
|
|
return colorList[params.dataIndex];
|
|
},
|
|
borderColor: '#fff',
|
|
borderWidth: '2',
|
|
}
|
|
},
|
|
data: [{
|
|
name: '20',
|
|
value: 20
|
|
},
|
|
{
|
|
name: '50',
|
|
value: 50
|
|
}],
|
|
clickable: false,
|
|
minAngle: 15,
|
|
avoidLabelOverlap: true,
|
|
hoverAnimation: false,
|
|
silent: true,
|
|
center: ['50%', '50%'],
|
|
radius: ['30%', '40%'],
|
|
labelLine: {
|
|
normal: {
|
|
length: 12,
|
|
length2: 8
|
|
}
|
|
},
|
|
label: {
|
|
position: 'outer',
|
|
alignTo: 'none',
|
|
bleedMargin: 5
|
|
},
|
|
left: '50%',
|
|
right: 0,
|
|
top: '-20%',
|
|
bottom: 0
|
|
}
|
|
]
|
|
};
|
|
chart.setOption(option);
|
|
return chart;
|
|
}
|
|
exports.PeopleChart1 = PeopleChart1;
|
|
function PeopleChart2(chart, colorData, peopleLeft, colorData2, peopleright) {
|
|
var option = {
|
|
series: [
|
|
{
|
|
type: 'pie',
|
|
itemStyle: {
|
|
normal: {
|
|
color: function (params) {
|
|
var colorList = colorData;
|
|
return colorList[params.dataIndex];
|
|
},
|
|
borderColor: '#fff',
|
|
borderWidth: '2',
|
|
}
|
|
},
|
|
data: peopleLeft,
|
|
clickable: false,
|
|
minAngle: 15,
|
|
avoidLabelOverlap: true,
|
|
hoverAnimation: false,
|
|
silent: true,
|
|
center: ['50%', '50%'],
|
|
radius: '60%',
|
|
labelLine: {
|
|
normal: {
|
|
length: 12,
|
|
length2: 8
|
|
}
|
|
},
|
|
label: {
|
|
position: 'outer',
|
|
alignTo: 'none',
|
|
bleedMargin: 5
|
|
},
|
|
left: 0,
|
|
right: '50%',
|
|
top: '-10%',
|
|
bottom: 0,
|
|
},
|
|
{
|
|
type: 'pie',
|
|
itemStyle: {
|
|
normal: {
|
|
color: function (params) {
|
|
var colorList = colorData2;
|
|
return colorList[params.dataIndex];
|
|
},
|
|
borderColor: '#fff',
|
|
borderWidth: '2',
|
|
}
|
|
},
|
|
data: peopleright,
|
|
clickable: false,
|
|
minAngle: 15,
|
|
avoidLabelOverlap: true,
|
|
hoverAnimation: false,
|
|
silent: true,
|
|
center: ['50%', '50%'],
|
|
radius: ['30%', '40%'],
|
|
labelLine: {
|
|
normal: {
|
|
length: 12,
|
|
length2: 8
|
|
}
|
|
},
|
|
label: {
|
|
position: 'outer',
|
|
alignTo: 'none',
|
|
bleedMargin: 5
|
|
},
|
|
left: '50%',
|
|
right: 0,
|
|
top: '-10%',
|
|
bottom: 0
|
|
}
|
|
]
|
|
};
|
|
chart.setOption(option);
|
|
return chart;
|
|
}
|
|
exports.PeopleChart2 = PeopleChart2;
|
|
function getPeopleChart2(chart, colorData, chartsData) {
|
|
var option = {
|
|
color: colorData,
|
|
series: [
|
|
{
|
|
type: 'pie',
|
|
radius: ['50%', '70%'],
|
|
silent: true,
|
|
avoidLabelOverlap: false,
|
|
label: {
|
|
show: false
|
|
},
|
|
labelLine: {
|
|
show: false,
|
|
normal: {
|
|
show: false
|
|
}
|
|
},
|
|
itemStyle: {
|
|
borderColor: '#fff',
|
|
borderWidth: '2',
|
|
},
|
|
data: chartsData,
|
|
}
|
|
]
|
|
};
|
|
chart.setOption(option);
|
|
return chart;
|
|
}
|
|
exports.getPeopleChart2 = getPeopleChart2;
|
|
function getparticipation(chart, data1, data2, data3, data4, xData) {
|
|
console.log(xData);
|
|
var option = {
|
|
background: '#fff',
|
|
grid: {
|
|
top: '20%',
|
|
left: '3%',
|
|
right: '4%',
|
|
bottom: '5%',
|
|
containLabel: true
|
|
},
|
|
yAxis: {
|
|
type: 'value',
|
|
data: ['0', '10', '20', '30', '40', '50'],
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
splitLine: {
|
|
show: true,
|
|
lineStyle: {
|
|
type: 'solid',
|
|
color: '#E9E9E9'
|
|
}
|
|
},
|
|
axisLabel: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: false,
|
|
lineStyle: {
|
|
color: '#B5B7BF'
|
|
}
|
|
}
|
|
},
|
|
xAxis: {
|
|
type: 'category',
|
|
data: xData,
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
axisLabel: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: false,
|
|
lineStyle: {
|
|
color: '#E9E9E9'
|
|
}
|
|
}
|
|
},
|
|
series: [{
|
|
name: '党员',
|
|
type: 'bar',
|
|
stack: 'sum',
|
|
barWidth: 13,
|
|
data: data1,
|
|
color: '#FFC600',
|
|
},
|
|
{
|
|
name: '党员参与',
|
|
type: 'bar',
|
|
barWidth: 13,
|
|
stack: 'sum',
|
|
data: data2,
|
|
color: '#FFA270',
|
|
itemStyle: {
|
|
barWidth: 18,
|
|
normal: {
|
|
barBorderRadius: [9, 9, 0, 0]
|
|
},
|
|
},
|
|
},
|
|
{
|
|
name: '居民',
|
|
type: 'bar',
|
|
color: '#63CFED',
|
|
stack: 'sum1',
|
|
barWidth: 13,
|
|
data: data3
|
|
},
|
|
{
|
|
name: '居民参与',
|
|
type: 'bar',
|
|
color: '#679CF7',
|
|
stack: 'sum1',
|
|
barWidth: 13,
|
|
data: data4,
|
|
itemStyle: {
|
|
barWidth: 18,
|
|
normal: {
|
|
barBorderRadius: [9, 9, 0, 0]
|
|
},
|
|
},
|
|
},
|
|
]
|
|
};
|
|
chart.setOption(option);
|
|
return chart;
|
|
}
|
|
exports.getparticipation = getparticipation;
|
|
function getparticipation2(chart, yLineData, yData1, yData2, xData) {
|
|
var option = {
|
|
grid: {
|
|
top: '20%',
|
|
left: '3%',
|
|
right: '4%',
|
|
bottom: '5%',
|
|
containLabel: true
|
|
},
|
|
yAxis: [{
|
|
type: 'value',
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
splitLine: {
|
|
show: true,
|
|
lineStyle: {
|
|
type: 'solid',
|
|
color: '#E9E9E9'
|
|
}
|
|
},
|
|
axisLabel: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: false,
|
|
lineStyle: {
|
|
color: '#B5B7BF'
|
|
}
|
|
}
|
|
}, {
|
|
type: 'value',
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
splitLine: {
|
|
show: false
|
|
},
|
|
axisLine: {
|
|
lineStyle: {
|
|
color: '#fff',
|
|
}
|
|
},
|
|
axisLabel: {
|
|
formatter: '{value} %',
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
}
|
|
],
|
|
xAxis: {
|
|
type: 'category',
|
|
data: xData,
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
axisLabel: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: false,
|
|
lineStyle: {
|
|
color: '#E9E9E9'
|
|
}
|
|
}
|
|
},
|
|
series: [
|
|
{
|
|
data: yLineData,
|
|
type: 'line',
|
|
color: '#FFA270',
|
|
yAxisIndex: 1
|
|
},
|
|
{
|
|
name: '党员参与',
|
|
type: 'bar',
|
|
barWidth: 13,
|
|
stack: 'sum',
|
|
data: yData1,
|
|
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
|
{ offset: 0, color: '#02C9B4' },
|
|
{ offset: 1, color: '#01AECC' }
|
|
]),
|
|
itemStyle: {
|
|
barWidth: 13,
|
|
normal: {
|
|
barBorderRadius: [9, 9, 0, 0]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
name: '居民参与',
|
|
type: 'bar',
|
|
stack: 'sum1',
|
|
barWidth: 13,
|
|
data: yData2,
|
|
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
|
{ offset: 0, color: '#2970FF' },
|
|
{ offset: 1, color: '#81A2FF' }
|
|
]),
|
|
itemStyle: {
|
|
barWidth: 13,
|
|
normal: {
|
|
barBorderRadius: [9, 9, 0, 0]
|
|
}
|
|
},
|
|
},
|
|
]
|
|
};
|
|
chart.setOption(option);
|
|
return chart;
|
|
}
|
|
exports.getparticipation2 = getparticipation2;
|
|
function getVoiceActive(chart) {
|
|
var option = {
|
|
series: [
|
|
{
|
|
type: 'pie',
|
|
radius: ['70%', '95%'],
|
|
silent: true,
|
|
avoidLabelOverlap: false,
|
|
label: {
|
|
show: false
|
|
},
|
|
labelLine: {
|
|
show: false,
|
|
normal: {
|
|
show: false
|
|
}
|
|
},
|
|
itemStyle: {
|
|
borderColor: '#fff',
|
|
borderWidth: '2',
|
|
},
|
|
data: [{ name: '好好', value: '20' }, { name: '非常好好', value: '10' }, { name: '好', value: '30' }]
|
|
}
|
|
]
|
|
};
|
|
chart.setOption(option);
|
|
return chart;
|
|
}
|
|
exports.getVoiceActive = getVoiceActive;
|
|
function getVoiceActiveA(chart) {
|
|
var option = {
|
|
color: ["#FFC600", "#29B9A5"],
|
|
series: [
|
|
{
|
|
type: 'pie',
|
|
center: ['50%', '50%'],
|
|
radius: ['0%', '100%'],
|
|
silent: true,
|
|
avoidLabelOverlap: false,
|
|
label: {
|
|
show: false
|
|
},
|
|
labelLine: {
|
|
show: false,
|
|
normal: {
|
|
show: false
|
|
}
|
|
},
|
|
itemStyle: {
|
|
borderColor: '#fff',
|
|
borderWidth: '2',
|
|
},
|
|
data: [{ name: '好好', value: '20' }, { name: '好', value: '30' }]
|
|
}
|
|
]
|
|
};
|
|
chart.setOption(option);
|
|
return chart;
|
|
}
|
|
exports.getVoiceActiveA = getVoiceActiveA;
|
|
function getparticipationPercent(chart) {
|
|
var data2 = [30, 60, 60, 70,];
|
|
var data3 = [70, 60, 90, 100,];
|
|
var xData = ['第一周', '第二周', '第三周', '第四周'];
|
|
var option = {
|
|
grid: {
|
|
top: '20%',
|
|
left: '3%',
|
|
right: '4%',
|
|
bottom: '5%',
|
|
containLabel: true
|
|
},
|
|
yAxis: [{
|
|
type: 'value',
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
splitLine: {
|
|
show: true,
|
|
lineStyle: {
|
|
type: 'solid',
|
|
color: '#E9E9E9'
|
|
}
|
|
},
|
|
axisLabel: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: false,
|
|
lineStyle: {
|
|
color: '#B5B7BF'
|
|
}
|
|
}
|
|
}, {
|
|
type: 'value',
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
splitLine: {
|
|
show: false
|
|
},
|
|
axisLine: {
|
|
lineStyle: {
|
|
color: '#fff',
|
|
}
|
|
},
|
|
axisLabel: {
|
|
formatter: '{value}%',
|
|
max: 100,
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
}
|
|
}
|
|
],
|
|
xAxis: {
|
|
type: 'category',
|
|
data: xData,
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
axisLabel: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: false,
|
|
lineStyle: {
|
|
color: '#E9E9E9'
|
|
}
|
|
}
|
|
},
|
|
series: [
|
|
{
|
|
data: [10, 16, 50, 90],
|
|
type: 'line',
|
|
color: '#FFA270',
|
|
yAxisIndex: 1,
|
|
markPoint: {
|
|
data: [
|
|
{ type: 'max', name: '最大值' },
|
|
],
|
|
silent: true,
|
|
symbolOffset: [-5, 0],
|
|
label: {
|
|
color: '#fff',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
},
|
|
{
|
|
name: '党员参与',
|
|
type: 'bar',
|
|
barWidth: 13,
|
|
stack: 'sum',
|
|
label: {},
|
|
data: data2,
|
|
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
|
{ offset: 0, color: '#02C9B4' },
|
|
{ offset: 1, color: '#01AECC' }
|
|
]),
|
|
itemStyle: {
|
|
barWidth: 13,
|
|
normal: {
|
|
barBorderRadius: [9, 9, 0, 0]
|
|
}
|
|
},
|
|
markPoint: {
|
|
data: [
|
|
{ type: 'min', name: '最大值' },
|
|
],
|
|
silent: true,
|
|
symbolOffset: [-5, 0],
|
|
label: {
|
|
color: '#fff',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
},
|
|
{
|
|
name: '居民参与',
|
|
type: 'bar',
|
|
stack: 'sum1',
|
|
barWidth: 13,
|
|
data: data3,
|
|
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
|
{ offset: 0, color: '#2970FF' },
|
|
{ offset: 1, color: '#81A2FF' }
|
|
]),
|
|
itemStyle: {
|
|
barWidth: 13,
|
|
normal: {
|
|
barBorderRadius: [9, 9, 0, 0]
|
|
}
|
|
},
|
|
},
|
|
]
|
|
};
|
|
chart.setOption(option);
|
|
return chart;
|
|
}
|
|
exports.getparticipationPercent = getparticipationPercent;
|
|
function voiceAnalyzeEcharts(chart) {
|
|
var data2 = [30, 60, 60, 70,];
|
|
var data3 = [70, 60, 90, 100,];
|
|
var xData = ['第一周', '第二周', '第三周', '第四周'];
|
|
var option = {
|
|
grid: {
|
|
top: '20%',
|
|
left: '3%',
|
|
right: '1%',
|
|
bottom: '5%',
|
|
containLabel: true
|
|
},
|
|
yAxis: [{
|
|
type: 'value',
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
splitLine: {
|
|
show: true,
|
|
lineStyle: {
|
|
type: 'solid',
|
|
color: '#E9E9E9'
|
|
}
|
|
},
|
|
axisLabel: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: false,
|
|
lineStyle: {
|
|
color: '#B5B7BF'
|
|
}
|
|
}
|
|
},
|
|
{
|
|
show: false,
|
|
type: 'value',
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
splitLine: {
|
|
show: false
|
|
},
|
|
axisLine: {
|
|
lineStyle: {
|
|
color: '#fff',
|
|
}
|
|
},
|
|
axisLabel: {
|
|
formatter: '{value}%',
|
|
max: 100,
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
}
|
|
}
|
|
],
|
|
xAxis: {
|
|
type: 'category',
|
|
data: xData,
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
axisLabel: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#B5B7BF',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
axisLine: {
|
|
show: false,
|
|
lineStyle: {
|
|
color: '#E9E9E9'
|
|
}
|
|
}
|
|
},
|
|
series: [
|
|
{
|
|
data: [10, 16, 50, 90],
|
|
type: 'line',
|
|
color: '#FFA270',
|
|
yAxisIndex: 1,
|
|
markPoint: {
|
|
data: [
|
|
{ type: 'max', name: '最大值' },
|
|
],
|
|
silent: true,
|
|
symbolOffset: [-5, 0],
|
|
label: {
|
|
color: '#fff',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
},
|
|
{
|
|
name: '党员参与',
|
|
type: 'bar',
|
|
barWidth: 13,
|
|
stack: 'sum',
|
|
label: {},
|
|
data: data2,
|
|
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
|
{ offset: 0, color: '#02C9B4' },
|
|
{ offset: 1, color: '#01AECC' }
|
|
]),
|
|
itemStyle: {
|
|
barWidth: 13,
|
|
normal: {
|
|
barBorderRadius: [9, 9, 0, 0]
|
|
}
|
|
},
|
|
markPoint: {
|
|
data: [
|
|
{ type: 'min', name: '最大值' },
|
|
],
|
|
silent: true,
|
|
symbolOffset: [-5, 0],
|
|
label: {
|
|
color: '#fff',
|
|
fontSize: 10
|
|
}
|
|
},
|
|
},
|
|
{
|
|
name: '居民参与',
|
|
type: 'bar',
|
|
stack: 'sum1',
|
|
barWidth: 13,
|
|
data: data3,
|
|
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
|
{ offset: 0, color: '#2970FF' },
|
|
{ offset: 1, color: '#81A2FF' }
|
|
]),
|
|
itemStyle: {
|
|
barWidth: 13,
|
|
normal: {
|
|
barBorderRadius: [9, 9, 0, 0]
|
|
}
|
|
},
|
|
},
|
|
]
|
|
};
|
|
chart.setOption(option);
|
|
return chart;
|
|
}
|
|
exports.voiceAnalyzeEcharts = voiceAnalyzeEcharts;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNoYXJ0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVjaGFydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esa0VBQW1FO0FBRW5FLFNBQWdCLFlBQVksQ0FBQyxLQUFVO0lBQ25DLElBQUksTUFBTSxHQUFHO1FBQ1gsTUFBTSxFQUFFO1lBQ047Z0JBQ0EsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsU0FBUyxFQUFFO29CQUNULE1BQU0sRUFBRTt3QkFDTixLQUFLLEVBQUUsVUFBVSxNQUF1Qzs0QkFFdEQsSUFBSSxTQUFTLEdBQUc7Z0NBQ2QsU0FBUyxFQUFFLFNBQVM7NkJBQ3JCLENBQUM7NEJBQ0YsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO3dCQUNwQyxDQUFDO3dCQUNELFdBQVcsRUFBRSxNQUFNO3dCQUNuQixXQUFXLEVBQUUsR0FBRztxQkFDakI7aUJBQ0Y7Z0JBQ0QsSUFBSSxFQUFFLENBQUM7d0JBQ0wsSUFBSSxFQUFFLElBQUk7d0JBQ1YsS0FBSyxFQUFFLEVBQUU7cUJBQ1Y7b0JBQ0Q7d0JBQ0UsSUFBSSxFQUFFLElBQUk7d0JBQ1YsS0FBSyxFQUFFLEVBQUU7cUJBQ1YsQ0FBQztnQkFDRixTQUFTLEVBQUUsS0FBSztnQkFDaEIsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osaUJBQWlCLEVBQUUsSUFBSTtnQkFDdkIsY0FBYyxFQUFFLEtBQUs7Z0JBQ3JCLE1BQU0sRUFBRSxJQUFJO2dCQUNaLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7Z0JBQ3RCLE1BQU0sRUFBRSxLQUFLO2dCQUNiLFNBQVMsRUFBRTtvQkFDVCxNQUFNLEVBQUU7d0JBQ04sTUFBTSxFQUFFLEVBQUU7d0JBQ1YsT0FBTyxFQUFFLENBQUM7cUJBQ1g7aUJBQ0Y7Z0JBQ0QsS0FBSyxFQUFFO29CQUNMLFFBQVEsRUFBRSxPQUFPO29CQUNqQixPQUFPLEVBQUUsTUFBTTtvQkFDZixXQUFXLEVBQUUsQ0FBQztpQkFD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RSxLQUFLO2dCQUNYLEtBQUssRUFBRSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtvQkFDcEQsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7b0JBQy9CLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2lCQUNoQyxDQUFDO2dCQUNGLFNBQVMsRUFBRTtvQkFDVCxRQUFRLEVBQUUsRUFBRTtvQkFDWixNQUFNLEVBQUU7d0JBQ04sZUFBZSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO3FCQUM5QjtpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDO0lBQ0YsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUF6S0Qsa0RBeUtDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxyXG5pbXBvcnQgKiBhcyBlY2hhcnRzIGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZWMtY2FudmFzL2VjaGFydHMuanMnXHJcbi8qKioqKirlhZrlkZjlj4LkuI7kurrmlbAs5YWa5bu65aOw6Z+z5Y+C5LiO5Lq65pWwICoqKiovXHJcbmV4cG9ydCBmdW5jdGlvbiBQZW9wbGVDaGFydDEoY2hhcnQ6IGFueSkge1xyXG4gICAgdmFyIG9wdGlvbiA9IHtcclxuICAgICAgc2VyaWVzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgIHR5cGU6ICdwaWUnLFxyXG4gICAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiBmdW5jdGlvbiAocGFyYW1zOiB7IGRhdGFJbmRleDogc3RyaW5nIHwgbnVtYmVyOyB9KSB7XHJcbiAgICAgICAgICAgICAgLy/oh6rlrprkuYnpopzoibJcclxuICAgICAgICAgICAgICB2YXIgY29sb3JMaXN0ID0gW1xyXG4gICAgICAgICAgICAgICAgXCIjRkZDNjAwXCIsIFwiIzI5QjlBNVwiXHJcbiAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgICByZXR1cm4gY29sb3JMaXN0W3BhcmFtcy5kYXRhSW5kZXhdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnI2ZmZicsXHJcbiAgICAgICAgICAgIGJvcmRlcldpZHRoOiAnMicsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBkYXRhOiBbe1xyXG4gICAgICAgICAgbmFtZTogJzIwJyxcclxuICAgICAgICAgIHZhbHVlOiAyMFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJzUwJyxcclxuICAgICAgICAgIHZhbHVlOiA1MFxyXG4gICAgICAgIH1dLFxyXG4gICAgICAgIGNsaWNrYWJsZTogZmFsc2Us44CA44CA44CA44CA44CA44CAIC8v5piv5ZCm5byA5ZCv54K55Ye7XHJcbiAgICAgICAgbWluQW5nbGU6IDE1LCAgICAgICAgICAg44CA44CAIC8v5pyA5bCP55qE5omH5Yy66KeS5bqm77yIMCB+IDM2MO+8ie+8jOeUqOS6jumYsuatouafkOS4quWAvOi/h+Wwj+WvvOiHtOaJh+WMuuWkquWwj+W9seWTjeS6pOS6klxyXG4gICAgICAgIGF2b2lkTGFiZWxPdmVybGFwOiB0cnVlLCAgIC8v5piv5ZCm5ZCv55So6Ziy5q2i5qCH562+6YeN5Y+g562W55WlXHJcbiAgICAgICAgaG92ZXJBbmltYXRpb246IGZhbHNlLOOAgOOAgCAgLy/mmK/lkKblvIDlkK8gaG92ZXIg5Zyo5omH5Yy65LiK55qE5pS+5aSn5Yqo55S75pWI5p6c44CCXHJcbiAgICAgICAgc2lsZW50OiB0cnVlLOOAgOOAgOOAgOOAgOOAgOOAgOOAgOOAgC8v5Zu+5b2i5piv5ZCm5LiN5ZON5bqU5ZKM6Kem5Y+R6byg5qCH5LqL5Lu2XHJcbiAgICAgICAgY2VudGVyOiBbJzUwJScsICc1MCUnXSxcclxuICAgICAgICByYWRpdXM6ICc2MCUnLFxyXG4gICAgICAgIGxhYmVsTGluZTogeyAvLyDorr7nva7mjIfnpLrnur/nmoTplb/luqZcclxuICAgICAgICAgIG5vcm1hbDoge1xyXG4gICAgICAgICAgICBsZW5ndGg6IDEyLFxyXG4gICAgICAgICAgICBsZW5ndGgyOiA4XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbDoge1xyXG4gICAgICAgICAgcG9zaXRpb246ICdvdXRlcicsXHJcbiAgICAgICAgICBhbGlnblRvOiAnbm9uZScsXHJcbiAgICAgICAgICBibGVlZE1hcmdpbjogNVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGVmdDogMCxcclxuICAgICAgICByaWdodDogJzUwJScsXHJcbiAgICAgICAgdG9wOiAnLTIwJScsXHJcbiAgICAgICAgYm90dG9tOiAwLFxyXG4gICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHR5cGU6ICdwaWUnLFxyXG4gICAgICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgICAgIG5vcm1hbDoge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiBmdW5jdGlvbiAocGFyYW1zOiB7IGRhdGFJbmRleDogc3RyaW5nIHwgbnVtYmVyOyB9KSB7XHJcbiAgICAgICAgICAgICAgICAvL+iHquWumuS5ieminOiJslxyXG4gICAgICAgICAgICAgICAgdmFyIGNvbG9yTGlzdCA9IFtcclxuICAgICAgICAgICAgICAgICAgXCIjQUQ2REZFXCIsIFwiI0ZGQTI3MFwiXHJcbiAgICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbG9yTGlzdFtwYXJhbXMuZGF0YUluZGV4XVxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZmZmJyxcclxuICAgICAgICAgICAgICBib3JkZXJXaWR0aDogJzInLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGF0YTogW3tcclxuICAgICAgICAgICAgbmFtZTogJzIwJyxcclxuICAgICAgICAgICAgdmFsdWU6IDIwXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBuYW1lOiAnNTAnLFxyXG4gICAgICAgICAgICB2YWx1ZTogNTBcclxuICAgICAgICAgIH1dLFxyXG4gICAgICAgICAgY2xpY2thYmxlOiBmYWxzZSzjgIDjgIDjgIDjgIDjgIDjgIAgLy/mmK/lkKblvIDlkK/ngrnlh7tcclxuICAgICAgICAgIG1pbkFuZ2xlOiAxNSwgICAgICAgICAgIOOAgOOAgCAvL+acgOWwj+eahOaJh+WMuuinkuW6pu+8iDAgfiAzNjDvvInvvIznlKjkuo7pmLLmraLmn5DkuKrlgLzov4flsI/lr7zoh7TmiYfljLrlpKrlsI/lvbHlk43kuqTkupJcclxuICAgICAgICAgIGF2b2lkTGFiZWxPdmVybGFwOiB0cnVlLCAgIC8v5piv5ZCm5ZCv55So6Ziy5q2i5qCH562+6YeN5Y+g562W55WlXHJcbiAgICAgICAgICBob3ZlckFuaW1hdGlvbjogZmFsc2Us44CA44CAICAvL+aYr+WQpuW8gOWQryBob3ZlciDlnKjmiYfljLrkuIrnmoTmlL7lpKfliqjnlLvmlYjmnpzjgIJcclxuICAgICAgICAgIHNpbGVudDogdHJ1ZSzjgIDjgIDjgIDjgIDjgIDjgIDjgIDjgIAvL+WbvuW9ouaYr+WQpuS4jeWTjeW6lOWSjOinpuWPkem8oOagh+S6i+S7tlxyXG4gICAgICAgICAgY2VudGVyOiBbJzUwJScsICc1MCUnXSxcclxuICAgICAgICAgIHJhZGl1czogWyczMCUnLCAnNDAlJ10sXHJcbiAgICAgICAgICBsYWJlbExpbmU6IHsgLy8g6K6+572u5oyH56S657q/55qE6ZW/5bqmXHJcbiAgICAgICAgICAgIG5vcm1hbDoge1xyXG4gICAgICAgICAgICAgIGxlbmd0aDogMTIsXHJcbiAgICAgICAgICAgICAgbGVuZ3RoMjogOFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbGFiZWw6IHtcclxuICAgICAgICAgICAgcG9zaXRpb246ICdvdXRlcicsXHJcbiAgICAgICAgICAgIGFsaWduVG86ICdub25lJyxcclxuICAgICAgICAgICAgYmxlZWRNYXJnaW46IDVcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsZWZ0OiAnNTAlJyxcclxuICAgICAgICAgIHJpZ2h0OiAwLFxyXG4gICAgICAgICAgdG9wOiAnLTIwJScsXHJcbiAgICAgICAgICBib3R0b206IDBcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgICBjaGFydC5zZXRPcHRpb24ob3B0aW9uKTtcclxuICAgIHJldHVybiBjaGFydDtcclxuICAvLyB2YXIgb3B0aW9uID0ge1xyXG4gIC8vICAgY29sb3I6IFtcIiNGRkM2MDBcIiwgXCIjMjlCOUE1XCJdLFxyXG4gIC8vICAgc2VyaWVzOiBbXHJcbiAgLy8gICAgIHtcclxuICAvLyAgICAgICB0eXBlOiAncGllJyxcclxuICAvLyAgICAgICBjZW50ZXI6IFsnNTAlJywgJzUwJSddLFxyXG4gIC8vICAgICAgIHJhZGl1czogWycwJScsICcxMDAlJ10sXHJcbiAgLy8gICAgICAgc2lsZW50OiB0cnVlLFxyXG4gIC8vICAgICAgIGF2b2lkTGFiZWxPdmVybGFwOiBmYWxzZSxcclxuICAvLyAgICAgICBsYWJlbDoge1xyXG4gIC8vICAgICAgICAgc2hvdzogZmFsc2VcclxuICAvLyAgICAgICB9LFxyXG4gIC8vICAgICAgIGxhYmVsTGluZToge1xyXG4gIC8vICAgICAgICAgc2hvdzogZmFsc2UsXHJcbiAgLy8gICAgICAgICBub3JtYWw6IHtcclxuICAvLyAgICAgICAgICAgc2hvdzogZmFsc2VcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9LFxyXG4gIC8vICAgICAgIGl0ZW1TdHlsZToge1xyXG4gIC8vICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZmZmJyxcclxuICAvLyAgICAgICAgIGJvcmRlcldpZHRoOiAnMicsXHJcbiAgLy8gICAgICAgfSxcclxuICAvLyAgICAgICBkYXRhOiBbeyBuYW1lOiAn5aW95aW9JywgdmFsdWU6ICcyMCcgfSwgeyBuYW1lOiAn5aW9JywgdmFsdWU6ICczMCcgfV1cclxuICAvLyAgICAgfVxyXG4gIC8vICAgXVxyXG4gIC8vIH07XHJcbiAgLy8gY2hhcnQuc2V0T3B0aW9uKG9wdGlvbik7XHJcbiAgLy8gcmV0dXJuIGNoYXJ0O1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBQZW9wbGVDaGFydDIoY2hhcnQ6IGFueSxjb2xvckRhdGE6YW55LHBlb3BsZUxlZnQ6YW55LGNvbG9yRGF0YTI6YW55LHBlb3BsZXJpZ2h0OmFueSkge1xyXG4gIHZhciBvcHRpb24gPSB7XHJcbiAgICBzZXJpZXM6IFtcclxuICAgICAge1xyXG4gICAgICB0eXBlOiAncGllJyxcclxuICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICBjb2xvcjogZnVuY3Rpb24gKHBhcmFtczogeyBkYXRhSW5kZXg6IHN0cmluZyB8IG51bWJlcjsgfSkge1xyXG4gICAgICAgICAgICAvL+iHquWumuS5ieminOiJslxyXG4gICAgICAgICAgICB2YXIgY29sb3JMaXN0ID0gY29sb3JEYXRhO1xyXG4gICAgICAgICAgICByZXR1cm4gY29sb3JMaXN0W3BhcmFtcy5kYXRhSW5kZXhdXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZmZmJyxcclxuICAgICAgICAgIGJvcmRlcldpZHRoOiAnMicsXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBkYXRhOiBwZW9wbGVMZWZ0LFxyXG4gICAgICBjbGlja2FibGU6IGZhbHNlLOOAgOOAgOOAgOOAgOOAgOOAgCAvL+aYr+WQpuW8gOWQr+eCueWHu1xyXG4gICAgICBtaW5BbmdsZTogMTUsICAgICAgICAgICDjgIDjgIAgLy/mnIDlsI/nmoTmiYfljLrop5LluqbvvIgwIH4gMzYw77yJ77yM55So5LqO6Ziy5q2i5p+Q5Liq5YC86L+H5bCP5a+86Ie05omH5Yy65aSq5bCP5b2x5ZON5Lqk5LqSXHJcbiAgICAgIGF2b2lkTGFiZWxPdmVybGFwOiB0cnVlLCAgIC8v5piv5ZCm5ZCv55So6Ziy5q2i5qCH562+6YeN5Y+g562W55WlXHJcbiAgICAgIGhvdmVyQW5pbWF0aW9uOiBmYWxzZSzjgIDjgIAgIC8v5piv5ZCm5byA5ZCvIGhvdmVyIOWcqOaJh+WMuuS4iueahOaUvuWkp+WKqOeUu+aViOaenOOAglxyXG4gICAgICBzaWxlbnQ6IHRydWUs44CA44CA44CA44CA44CA44CA44CA44CALy/lm77lvaLmmK/lkKbkuI3lk43lupTlkozop6blj5HpvKDmoIfkuovku7ZcclxuICAgICAgY2VudGVyOiBbJzUwJScsICc1MCUnXSxcclxuICAgICAgcmFkaXVzOiAnNjAlJyxcclxuICAgICAgbGFiZWxMaW5lOiB7IC8vIOiuvue9ruaMh+ekuue6v+eahOmVv+W6plxyXG4gICAgICAgIG5vcm1hbDoge1xyXG4gICAgICAgICAgbGVuZ3RoOiAxMixcclxuICAgICAgICAgIGxlbmd0aDI6IDhcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgcG9zaXRpb246ICdvdXRlcicsXHJcbiAgICAgICAgYWxpZ25UbzogJ25vbmUnLFxyXG4gICAgICAgIGJsZWVkTWFyZ2luOiA1XHJcbiAgICAgIH0sXHJcbiAgICAgIGxlZnQ6IDAsXHJcbiAgICAgIHJpZ2h0OiAnNTAlJyxcclxuICAgICAgdG9wOiAnLTEwJScsXHJcbiAgICAgIGJvdHRvbTogMCxcclxuICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0eXBlOiAncGllJyxcclxuICAgICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICAgIG5vcm1hbDoge1xyXG4gICAgICAgICAgICBjb2xvcjogZnVuY3Rpb24gKHBhcmFtczogeyBkYXRhSW5kZXg6IHN0cmluZyB8IG51bWJlcjsgfSkge1xyXG4gICAgICAgICAgICAgIC8v6Ieq5a6a5LmJ6aKc6ImyXHJcbiAgICAgICAgICAgICAgdmFyIGNvbG9yTGlzdCA9IGNvbG9yRGF0YTI7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGNvbG9yTGlzdFtwYXJhbXMuZGF0YUluZGV4XVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBib3JkZXJDb2xvcjogJyNmZmYnLFxyXG4gICAgICAgICAgICBib3JkZXJXaWR0aDogJzInLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGF0YTogcGVvcGxlcmlnaHQsXHJcbiAgICAgICAgY2xpY2thYmxlOiBmYWxzZSzjgIDjgIDjgIDjgIDjgIDjgIAgLy/mmK/lkKblvIDlkK/ngrnlh7tcclxuICAgICAgICBtaW5BbmdsZTogMTUsICAgICAgICAgICDjgIDjgIAgLy/mnIDlsI/nmoTmiYfljLrop5LluqbvvIgwIH4gMzYw77yJ77yM55So5LqO6Ziy5q2i5p+Q5Liq5YC86L+H5bCP5a+86Ie05omH5Yy65aSq5bCP5b2x5ZON5Lqk5LqSXHJcbiAgICAgICAgYXZvaWRMYWJlbE92ZXJsYXA6IHRydWUsICAgLy/mmK/lkKblkK/nlKjpmLLmraLmoIfnrb7ph43lj6DnrZbnlaVcclxuICAgICAgICBob3ZlckFuaW1hdGlvbjogZmFsc2Us44CA44CAICAvL+aYr+WQpuW8gOWQryBob3ZlciDlnKjmiYfljLrkuIrnmoTmlL7lpKfliqjnlLvmlYjmnpzjgIJcclxuICAgICAgICBzaWxlbnQ6IHRydWUs44CA44CA44CA44CA44CA44CA44CA44CALy/lm77lvaLmmK/lkKbkuI3lk43lupTlkozop6blj5HpvKDmoIfkuovku7ZcclxuICAgICAgICBjZW50ZXI6IFsnNTAlJywgJzUwJSddLFxyXG4gICAgICAgIHJhZGl1czogWyczMCUnLCAnNDAlJ10sXHJcbiAgICAgICAgbGFiZWxMaW5lOiB7IC8vIOiuvue9ruaMh+ekuue6v+eahOmVv+W6plxyXG4gICAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICAgIGxlbmd0aDogMTIsXHJcbiAgICAgICAgICAgIGxlbmd0aDI6IDhcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogJ291dGVyJyxcclxuICAgICAgICAgIGFsaWduVG86ICdub25lJyxcclxuICAgICAgICAgIGJsZWVkTWFyZ2luOiA1XHJcbiAgICAgICAgfSxcclxuICAgICAgICBsZWZ0OiAnNTAlJyxcclxuICAgICAgICByaWdodDogMCxcclxuICAgICAgICB0b3A6ICctMTAlJyxcclxuICAgICAgICBib3R0b206IDBcclxuICAgICAgfVxyXG4gICAgXVxyXG4gIH07XHJcbiAgY2hhcnQuc2V0T3B0aW9uKG9wdGlvbik7XHJcbiAgcmV0dXJuIGNoYXJ0O1xyXG59XHJcbi8qKioqKirlhZrlkZjlj4LkuI7kurrmlbAs5YWa5bu65aOw6Z+z5Y+C5LiO5oOF5Ya1LOWFmuWRmOS6rui6q+S7veWPguS4juiuruS6i+aDheWGtSzlhZrlkZjnvqTlm6LluKbliqjmg4XlhrUgKioqKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFBlb3BsZUNoYXJ0MihjaGFydDogYW55LGNvbG9yRGF0YTphbnksY2hhcnRzRGF0YTphbnkpIHtcclxuICB2YXIgb3B0aW9uID0ge1xyXG4gICAgY29sb3I6IGNvbG9yRGF0YSxcclxuICAgIHNlcmllczogW1xyXG4gICAgICB7XHJcbiAgICAgICAgdHlwZTogJ3BpZScsXHJcbiAgICAgICAgcmFkaXVzOiBbJzUwJScsICc3MCUnXSxcclxuICAgICAgICBzaWxlbnQ6IHRydWUsXHJcbiAgICAgICAgYXZvaWRMYWJlbE92ZXJsYXA6IGZhbHNlLFxyXG4gICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWxMaW5lOiB7XHJcbiAgICAgICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgICAgIG5vcm1hbDoge1xyXG4gICAgICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgICBib3JkZXJDb2xvcjogJyNmZmYnLFxyXG4gICAgICAgICAgYm9yZGVyV2lkdGg6ICcyJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRhdGE6Y2hhcnRzRGF0YSxcclxuICAgICAgfVxyXG4gICAgXVxyXG4gIH07XHJcbiAgY2hhcnQuc2V0T3B0aW9uKG9wdGlvbik7XHJcbiAgcmV0dXJuIGNoYXJ0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0cGFydGljaXBhdGlvbihjaGFydDogYW55LGRhdGExOkFueUFycmF5LGRhdGEyOkFueUFycmF5LGRhdGEzOkFueUFycmF5LGRhdGE0OkFueUFycmF5LHhEYXRhOkFueUFycmF5KSB7XHJcbiAgY29uc29sZS5sb2coeERhdGEpXHJcbiAgdmFyIG9wdGlvbiA9IHtcclxuICAgIC8vIGNvbG9yOiBbJyNGRkM2MDAnLCAnI0ZGQTI3MCcsICcjNjNDRkVEJywgJyM2NzlDRjcnXSxcclxuICAgIC8vIHRvb2x0aXA6IHtcclxuICAgIC8vICAgdHJpZ2dlcjogJ2F4aXMnLFxyXG4gICAgLy8gfSxcclxuICAgIGJhY2tncm91bmQ6ICcjZmZmJyxcclxuICAgIGdyaWQ6IHsgLy/lm77ooajnmoTkvY3nva5cclxuICAgICAgdG9wOiAnMjAlJyxcclxuICAgICAgbGVmdDogJzMlJyxcclxuICAgICAgcmlnaHQ6ICc0JScsXHJcbiAgICAgIGJvdHRvbTogJzUlJyxcclxuICAgICAgY29udGFpbkxhYmVsOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgeUF4aXM6IHtcclxuICAgICAgdHlwZTogJ3ZhbHVlJyxcclxuICAgICAgZGF0YTogWycwJywgJzEwJywgJzIwJywgJzMwJywgJzQwJywgJzUwJ10sIC8vY2F0ZWdvcnks6K6+572u5peg5pWw5o2u5pe26buY6K6k5YC8XHJcbiAgICAgIGF4aXNUaWNrOiB7XHJcbiAgICAgICAgc2hvdzogZmFsc2UgLy8vL+aYr+WQpuaYvuekuuWdkOagh+i9tOi9tOe6v1xyXG4gICAgICB9LFxyXG4gICAgICBzcGxpdExpbmU6IHsgLy8g572R5qC857q/XHJcbiAgICAgICAgc2hvdzogdHJ1ZSxcclxuICAgICAgICBsaW5lU3R5bGU6IHtcclxuICAgICAgICAgIHR5cGU6ICdzb2xpZCcsXHJcbiAgICAgICAgICBjb2xvcjogJyNFOUU5RTknXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGFiZWw6IHsgLy/lnZDmoIfovbTliLvluqbmoIfnrb7nmoTnm7jlhbPorr7nva7jgIJcclxuICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjQjVCN0JGJyxcclxuICAgICAgICAgIGZvbnRTaXplOiAxMFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgYXhpc0xpbmU6IHsgLy/lnZDmoIfovbTovbTnur/nm7jlhbPorr7nva7jgIJcclxuICAgICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgICBsaW5lU3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiAnI0I1QjdCRidcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICB4QXhpczoge1xyXG4gICAgICB0eXBlOiAnY2F0ZWdvcnknLFxyXG4gICAgICBkYXRhOiB4RGF0YSxcclxuICAgICAgYXhpc1RpY2s6IHtcclxuICAgICAgICBzaG93OiBmYWxzZSAvLyDmmK/lkKbmmL7npLrlnZDmoIfovbTovbTnur9cclxuICAgICAgfSxcclxuICAgICAgYXhpc0xhYmVsOiB7IC8v5Z2Q5qCH6L205Yi75bqm5qCH562+55qE55u45YWz6K6+572u44CCXHJcbiAgICAgICAgc2hvdzogdHJ1ZSxcclxuICAgICAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiAnI0I1QjdCRicsXHJcbiAgICAgICAgICBmb250U2l6ZTogMTBcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMaW5lOiB7IC8v5Z2Q5qCH6L206L2057q/55u45YWz6K6+572u44CCXHJcbiAgICAgICAgc2hvdzogZmFsc2UsXHJcbiAgICAgICAgbGluZVN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNFOUU5RTknXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgc2VyaWVzOiBbe1xyXG4gICAgICBuYW1lOiAn5YWa5ZGYJyxcclxuICAgICAgdHlwZTogJ2JhcicsXHJcbiAgICAgIHN0YWNrOiAnc3VtJyxcclxuICAgICAgYmFyV2lkdGg6IDEzLFxyXG4gICAgICBkYXRhOiBkYXRhMSxcclxuICAgICAgY29sb3I6ICcjRkZDNjAwJyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICflhZrlkZjlj4LkuI4nLFxyXG4gICAgICB0eXBlOiAnYmFyJyxcclxuICAgICAgYmFyV2lkdGg6IDEzLFxyXG4gICAgICBzdGFjazogJ3N1bScsXHJcbiAgICAgIGRhdGE6IGRhdGEyLFxyXG4gICAgICBjb2xvcjogJyNGRkEyNzAnLFxyXG4gICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICBiYXJXaWR0aDogMTgsXHJcbiAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICBiYXJCb3JkZXJSYWRpdXM6IFs5LCA5LCAwLCAwXSAvL++8iOmhuuaXtumSiOW3puS4iu+8jOWPs+S4iu+8jOWPs+S4i++8jOW3puS4i++8iVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIC8vIG1hcmtQb2ludDoge1xyXG4gICAgICAvLyAgIGRhdGE6IFtcclxuICAgICAgLy8gICAgIHsgdHlwZTogJ21heCcsIG5hbWU6ICfmnIDlpKflgLwnIH0sXHJcbiAgICAgIC8vICAgXSxcclxuICAgICAgLy8gICBzaWxlbnQ6dHJ1ZSxcclxuICAgICAgLy8gICAvLyBzeW1ib2w6J2ltYWdlOi8vZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUFtQ0FZQUFBQjB4SjJaQUFBQ0cwbEVRVlJvUSsyYXNXc1VRUlRHdjIvR1JMUUpJbGhZR0JCYkE2YXd5ZVVLaGJzamdtQVh3ZjhnaEJBbGpZVUl0dUhRRVArRGdLQ1dDWEdYTkxuZGdFclFRdTJUMUNLQ0dJbTQ4MlRPQ3hqUWJIWUNlekE3VSt6QnpYdXo3L3ZkelB0WWJvbmUwRWw4RzVBcEFhNEFPTDMvdldlZnV3VGVBM3lhalRlZVdXMjBGNVZHQ3hCTWV5YjJjRG5DUlZOdlRGTjNva2todWpTcU5raE1VaWRSS3NCWTFjVDN0djhHVlJKOTkvak01LzJ1UHl3QXlZdnllVDRBQ0RzZ0hJSFFBMElUOUxuTDUya0xMaEJjSUxoQWNJSGdBbm1kMHVmNTRBTEJCWUlMQkJjSUx1QnpsOC9UWmwzZ0Z3Q2RGK2pwZkVhVnhGdUFESHNxTUVjV3Q2blNxQTNCYkRVQlNKdDRzM1pXL2N6ZUFiaFFNUWc3WmxDUGR2OGF3OGJLc0RaNlNjQmFGU0FRa21ZcXU0T3hHOXQvQU95UHpxdFJyWGhaQkNlUERZSzBhNStuU0V1QXE4ZGVEL2dFWUFuQUY5ZTFTT3hsUmo2ZzNySTd2anNPQW5CZE9TZFBKL0V0Z2N3RHVPaDJDMm1iYitZK0ppYjIzUEwvbjFVS2dPN3RrK1V6eElrWEJLOFhFQ0dnM0RXMTF1TUNPWVZDeXdOZ3k5cmNIT0R1NTVja2J4Nnh5aGt6M2x3NFlxeFRXTGtBYklrZm53L3k2OUFxQmRjT3JaaDhZR3FOUjA2cUNpU1ZENkIzSEpRTXZBVng2WisxQ3VaTnZUbFhRSWR6YUg4QTJISTdxeU9LNmpXQVV3ZXJseWVtMXB3RldjcERXdjhBMkZkemtuZ0trTVVlQUFQeVlSbmIvbS9nZlFVQUVUS05Wd2ljTThKN3FEZlduZmV5WStKdnVaUzFkeTEvMDFjQUFBQUFTVVZPUks1Q1lJST0nLFxyXG4gICAgICAvLyAgIHN5bWJvbE9mZnNldDpbMCwtMzBdLC8vMCDmmK/lt6blj7MgMzDmmK/kuIpcclxuICAgICAgLy8gICBsYWJlbDp7XHJcbiAgICAgIC8vICAgICAvLyBwb3NpdGlvbjondG9wJyxcclxuICAgICAgLy8gICAgIC8vIGRpc3RhbmNlOjEwXHJcbiAgICAgIC8vICAgfVxyXG4gICAgICAvLyB9LFxyXG5cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICflsYXmsJEnLFxyXG4gICAgICB0eXBlOiAnYmFyJyxcclxuICAgICAgY29sb3I6ICcjNjNDRkVEJyxcclxuICAgICAgc3RhY2s6ICdzdW0xJyxcclxuICAgICAgYmFyV2lkdGg6IDEzLFxyXG4gICAgICBkYXRhOiBkYXRhM1xyXG5cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICflsYXmsJHlj4LkuI4nLFxyXG4gICAgICB0eXBlOiAnYmFyJyxcclxuICAgICAgY29sb3I6ICcjNjc5Q0Y3JyxcclxuICAgICAgc3RhY2s6ICdzdW0xJyxcclxuICAgICAgYmFyV2lkdGg6IDEzLFxyXG4gICAgICBkYXRhOiBkYXRhNCxcclxuICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgYmFyV2lkdGg6IDE4LFxyXG4gICAgICAgIG5vcm1hbDoge1xyXG4gICAgICAgICAgYmFyQm9yZGVyUmFkaXVzOiBbOSwgOSwgMCwgMF0gLy/vvIjpobrml7bpkojlt6bkuIrvvIzlj7PkuIrvvIzlj7PkuIvvvIzlt6bkuIvvvIlcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICAvLyBtYXJrUG9pbnQ6IHtcclxuICAgICAgLy8gICBkYXRhOiBbXHJcbiAgICAgIC8vICAgICB7IHR5cGU6ICdtYXgnLCBuYW1lOiAn5pyA5aSn5YC8JyB9LFxyXG4gICAgICAvLyAgIF0sXHJcbiAgICAgIC8vICAgc2lsZW50OnRydWUsXHJcbiAgICAgIC8vICAgLy8gc3ltYm9sOidpbWFnZTovL2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFBbUNBWUFBQUIweEoyWkFBQUNHMGxFUVZSb1ErMmFzV3NVUVJUR3YyL0dSTFFKSWxoWUdCQmJBNmF3eWVVS2hic2pnbUFYd2Y4Z2hCQWxqWVVJdHVIUUVQK0RnS0NXQ1hHWE5MbmRnRXJRUXUyVDFDS0NHSW00ODJUT0N4alFiSFlDZXpBN1UrekJ6WHV6Ny92ZHpQdFlib25lMEVsOEc1QXBBYTRBT0wzL3ZXZWZ1d1RlQTN5YWpUZWVXVzIwRjVWR0N4Qk1leWIyY0RuQ1JWTnZURk4zb2traHVqU3FOa2hNVWlkUktzQlkxY1QzdHY4R1ZSSjk5L2pNNS8ydVB5d0F5WXZ5ZVQ0QUNEc2dISUhRQTBJVDlMbkw1MmtMTGhCY0lMaEFjSUhnQW5tZDB1ZjU0QUxCQllJTEJCY0lMdUJ6bDgvVFpsM2dGd0NkRitqcGZFYVZ4RnVBREhzcU1FY1d0Nm5TcUEzQmJEVUJTSnQ0czNaVy9jemVBYmhRTVFnN1psQ1BkdjhhdzhiS3NEWjZTY0JhRlNBUWttWXF1NE94Rzl0L0FPeVB6cXRSclhoWkJDZVBEWUswYTUrblNFdUFxOGRlRC9nRVlBbkFGOWUxU094bFJqNmczckk3dmpzT0FuQmRPU2RQSi9FdGdjd0R1T2gyQzJtYmIrWStKaWIyM1BML24xVUtnTzd0aytVenhJa1hCSzhYRUNHZzNEVzExdU1DT1lWQ3l3Tmd5OXJjSE9EdTU1Y2tieDZ4eWhrejNsdzRZcXhUV0xrQWJJa2Zudy95NjlBcUJkY09yWmg4WUdxTlIwNnFDaVNWRDZCM0hKUU12QVZ4NlorMUN1Wk52VGxYUUlkemFIOEEySEk3cXlPSzZqV0FVd2VybHllbTFwd0ZXY3BEV3Y4QTJGZHprbmdLa01VZUFBUHlZUm5iL20vZ2ZRVUFFVEtOVndpY004SjdxRGZXbmZleVkrSnZ1WlMxZHkxLzAxY0FBQUFBU1VWT1JLNUNZSUk9JyxcclxuICAgICAgLy8gICBzeW1ib2xPZmZzZXQ6WzAsLTMwXSwvLzAg5piv5bem5Y+zIDMw5piv5LiKXHJcbiAgICAgIC8vICAgbGFiZWw6e1xyXG4gICAgICAvLyAgICAgLy8gcG9zaXRpb246J3RvcCcsXHJcbiAgICAgIC8vICAgICAvLyBkaXN0YW5jZToxMFxyXG4gICAgICAvLyAgIH1cclxuICAgICAgLy8gfSxcclxuXHJcbiAgICB9LFxyXG4gICAgXVxyXG4gIH07XHJcblxyXG4gIGNoYXJ0LnNldE9wdGlvbihvcHRpb24pO1xyXG4gIHJldHVybiBjaGFydDtcclxufVxyXG4vKioqKioqKioqKioqKuWFmuWRmOWPguS4juWNoOavlOWIhuaekCoqKioqKioqKioqKiovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRwYXJ0aWNpcGF0aW9uMihjaGFydDogYW55LCB5TGluZURhdGE6IEFueUFycmF5LCB5RGF0YTE6IEFueUFycmF5LCB5RGF0YTI6IEFueUFycmF5LCB4RGF0YTogQW55QXJyYXkpIHtcclxuICB2YXIgb3B0aW9uID0ge1xyXG4gICAgZ3JpZDoge1xyXG4gICAgICB0b3A6ICcyMCUnLFxyXG4gICAgICBsZWZ0OiAnMyUnLFxyXG4gICAgICByaWdodDogJzQlJyxcclxuICAgICAgYm90dG9tOiAnNSUnLFxyXG4gICAgICBjb250YWluTGFiZWw6IHRydWVcclxuICAgIH0sXHJcbiAgICB5QXhpczogW3tcclxuICAgICAgdHlwZTogJ3ZhbHVlJyxcclxuICAgICAgYXhpc1RpY2s6IHtcclxuICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICBzcGxpdExpbmU6IHtcclxuICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgdHlwZTogJ3NvbGlkJyxcclxuICAgICAgICAgIGNvbG9yOiAnI0U5RTlFOSdcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMYWJlbDoge1xyXG4gICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNCNUI3QkYnLFxyXG4gICAgICAgICAgZm9udFNpemU6IDEwXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGluZToge1xyXG4gICAgICAgIHNob3c6IGZhbHNlLFxyXG4gICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjQjVCN0JGJ1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSwge1xyXG4gICAgICB0eXBlOiAndmFsdWUnLFxyXG4gICAgICBheGlzVGljazoge1xyXG4gICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICAgIHNwbGl0TGluZToge1xyXG4gICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMaW5lOiB7XHJcbiAgICAgICAgbGluZVN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNmZmYnLFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgYXhpc0xhYmVsOiB7XHJcbiAgICAgICAgZm9ybWF0dGVyOiAne3ZhbHVlfSAlJyxcclxuICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjQjVCN0JGJyxcclxuICAgICAgICAgIGZvbnRTaXplOiAxMFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuXHJcbiAgICB9XHJcbiAgICBdLFxyXG4gICAgeEF4aXM6IHtcclxuICAgICAgdHlwZTogJ2NhdGVnb3J5JyxcclxuICAgICAgZGF0YTogeERhdGEsXHJcbiAgICAgIGF4aXNUaWNrOiB7XHJcbiAgICAgICAgc2hvdzogZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgYXhpc0xhYmVsOiB7XHJcbiAgICAgICAgc2hvdzogdHJ1ZSxcclxuICAgICAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiAnI0I1QjdCRicsXHJcbiAgICAgICAgICBmb250U2l6ZTogMTBcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMaW5lOiB7XHJcbiAgICAgICAgc2hvdzogZmFsc2UsXHJcbiAgICAgICAgbGluZVN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNFOUU5RTknXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgc2VyaWVzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBkYXRhOiB5TGluZURhdGEsXHJcbiAgICAgICAgdHlwZTogJ2xpbmUnLFxyXG4gICAgICAgIGNvbG9yOiAnI0ZGQTI3MCcsXHJcbiAgICAgICAgeUF4aXNJbmRleDogMVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ+WFmuWRmOWPguS4jicsXHJcbiAgICAgICAgdHlwZTogJ2JhcicsXHJcbiAgICAgICAgYmFyV2lkdGg6IDEzLFxyXG4gICAgICAgIHN0YWNrOiAnc3VtJyxcclxuICAgICAgICBkYXRhOiB5RGF0YTEsXHJcbiAgICAgICAgY29sb3I6IG5ldyBlY2hhcnRzLmdyYXBoaWMuTGluZWFyR3JhZGllbnQoMCwgMCwgMCwgMSwgW1xyXG4gICAgICAgICAgeyBvZmZzZXQ6IDAsIGNvbG9yOiAnIzAyQzlCNCcgfSxcclxuICAgICAgICAgIHsgb2Zmc2V0OiAxLCBjb2xvcjogJyMwMUFFQ0MnIH1cclxuICAgICAgICBdKSxcclxuICAgICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICAgIGJhcldpZHRoOiAxMyxcclxuICAgICAgICAgIG5vcm1hbDoge1xyXG4gICAgICAgICAgICBiYXJCb3JkZXJSYWRpdXM6IFs5LCA5LCAwLCAwXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICflsYXmsJHlj4LkuI4nLFxyXG4gICAgICAgIHR5cGU6ICdiYXInLFxyXG4gICAgICAgIHN0YWNrOiAnc3VtMScsXHJcbiAgICAgICAgYmFyV2lkdGg6IDEzLFxyXG4gICAgICAgIGRhdGE6IHlEYXRhMixcclxuICAgICAgICBjb2xvcjogbmV3IGVjaGFydHMuZ3JhcGhpYy5MaW5lYXJHcmFkaWVudCgwLCAwLCAwLCAxLCBbXHJcbiAgICAgICAgICB7IG9mZnNldDogMCwgY29sb3I6ICcjMjk3MEZGJyB9LFxyXG4gICAgICAgICAgeyBvZmZzZXQ6IDEsIGNvbG9yOiAnIzgxQTJGRicgfVxyXG4gICAgICAgIF0pLFxyXG4gICAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgICAgYmFyV2lkdGg6IDEzLFxyXG4gICAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICAgIGJhckJvcmRlclJhZGl1czogWzksIDksIDAsIDBdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIF1cclxuICB9O1xyXG4gIGNoYXJ0LnNldE9wdGlvbihvcHRpb24pO1xyXG4gIHJldHVybiBjaGFydDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Vm9pY2VBY3RpdmUoY2hhcnQ6IGFueSkge1xyXG4gIHZhciBvcHRpb24gPSB7XHJcbiAgICAvLyBjb2xvcjogY29sb3IsXHJcbiAgICBzZXJpZXM6IFtcclxuICAgICAge1xyXG4gICAgICAgIHR5cGU6ICdwaWUnLFxyXG4gICAgICAgIHJhZGl1czogWyc3MCUnLCAnOTUlJ10sXHJcbiAgICAgICAgc2lsZW50OiB0cnVlLFxyXG4gICAgICAgIGF2b2lkTGFiZWxPdmVybGFwOiBmYWxzZSxcclxuICAgICAgICBsYWJlbDoge1xyXG4gICAgICAgICAgc2hvdzogZmFsc2VcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxhYmVsTGluZToge1xyXG4gICAgICAgICAgc2hvdzogZmFsc2UsXHJcbiAgICAgICAgICBub3JtYWw6IHtcclxuICAgICAgICAgICAgc2hvdzogZmFsc2VcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZmZmJyxcclxuICAgICAgICAgIGJvcmRlcldpZHRoOiAnMicsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkYXRhOiBbeyBuYW1lOiAn5aW95aW9JywgdmFsdWU6ICcyMCcgfSwgeyBuYW1lOiAn6Z2e5bi45aW95aW9JywgdmFsdWU6ICcxMCcgfSwgeyBuYW1lOiAn5aW9JywgdmFsdWU6ICczMCcgfV1cclxuICAgICAgfVxyXG4gICAgXVxyXG4gIH07XHJcbiAgY2hhcnQuc2V0T3B0aW9uKG9wdGlvbik7XHJcbiAgcmV0dXJuIGNoYXJ0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Vm9pY2VBY3RpdmVBKGNoYXJ0OiBhbnkpIHtcclxuICB2YXIgb3B0aW9uID0ge1xyXG4gICAgY29sb3I6IFtcIiNGRkM2MDBcIiwgXCIjMjlCOUE1XCJdLFxyXG4gICAgc2VyaWVzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICB0eXBlOiAncGllJyxcclxuICAgICAgICBjZW50ZXI6IFsnNTAlJywgJzUwJSddLFxyXG4gICAgICAgIHJhZGl1czogWycwJScsICcxMDAlJ10sXHJcbiAgICAgICAgc2lsZW50OiB0cnVlLFxyXG4gICAgICAgIGF2b2lkTGFiZWxPdmVybGFwOiBmYWxzZSxcclxuICAgICAgICBsYWJlbDoge1xyXG4gICAgICAgICAgc2hvdzogZmFsc2VcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxhYmVsTGluZToge1xyXG4gICAgICAgICAgc2hvdzogZmFsc2UsXHJcbiAgICAgICAgICBub3JtYWw6IHtcclxuICAgICAgICAgICAgc2hvdzogZmFsc2VcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZmZmJyxcclxuICAgICAgICAgIGJvcmRlcldpZHRoOiAnMicsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkYXRhOiBbeyBuYW1lOiAn5aW95aW9JywgdmFsdWU6ICcyMCcgfSwgeyBuYW1lOiAn5aW9JywgdmFsdWU6ICczMCcgfV1cclxuICAgICAgfVxyXG4gICAgXVxyXG4gIH07XHJcbiAgY2hhcnQuc2V0T3B0aW9uKG9wdGlvbik7XHJcbiAgcmV0dXJuIGNoYXJ0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0cGFydGljaXBhdGlvblBlcmNlbnQoY2hhcnQ6IGFueSkge1xyXG5cclxuICB2YXIgZGF0YTIgPSBbMzAsIDYwLCA2MCwgNzAsXTtcclxuICB2YXIgZGF0YTMgPSBbNzAsIDYwLCA5MCwgMTAwLF07XHJcblxyXG4gIHZhciB4RGF0YSA9IFsn56ys5LiA5ZGoJywgJ+esrOS6jOWRqCcsICfnrKzkuInlkagnLCAn56ys5Zub5ZGoJ107XHJcbiAgdmFyIG9wdGlvbiA9IHtcclxuICAgIGdyaWQ6IHtcclxuICAgICAgdG9wOiAnMjAlJyxcclxuICAgICAgbGVmdDogJzMlJyxcclxuICAgICAgcmlnaHQ6ICc0JScsXHJcbiAgICAgIGJvdHRvbTogJzUlJyxcclxuICAgICAgY29udGFpbkxhYmVsOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgeUF4aXM6IFt7XHJcbiAgICAgIHR5cGU6ICd2YWx1ZScsXHJcbiAgICAgIGF4aXNUaWNrOiB7XHJcbiAgICAgICAgc2hvdzogZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgc3BsaXRMaW5lOiB7XHJcbiAgICAgICAgc2hvdzogdHJ1ZSxcclxuICAgICAgICBsaW5lU3R5bGU6IHtcclxuICAgICAgICAgIHR5cGU6ICdzb2xpZCcsXHJcbiAgICAgICAgICBjb2xvcjogJyNFOUU5RTknXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGFiZWw6IHtcclxuICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjQjVCN0JGJyxcclxuICAgICAgICAgIGZvbnRTaXplOiAxMFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgYXhpc0xpbmU6IHtcclxuICAgICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgICBsaW5lU3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiAnI0I1QjdCRidcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sIHtcclxuICAgICAgdHlwZTogJ3ZhbHVlJyxcclxuICAgICAgYXhpc1RpY2s6IHtcclxuICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICBzcGxpdExpbmU6IHtcclxuICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGluZToge1xyXG4gICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjZmZmJyxcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMYWJlbDoge1xyXG4gICAgICAgIGZvcm1hdHRlcjogJ3t2YWx1ZX0lJyxcclxuICAgICAgICBtYXg6IDEwMCxcclxuICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjQjVCN0JGJyxcclxuICAgICAgICAgIGZvbnRTaXplOiAxMFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXSxcclxuICAgIHhBeGlzOiB7XHJcbiAgICAgIHR5cGU6ICdjYXRlZ29yeScsXHJcbiAgICAgIGRhdGE6IHhEYXRhLFxyXG4gICAgICBheGlzVGljazoge1xyXG4gICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMYWJlbDoge1xyXG4gICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNCNUI3QkYnLFxyXG4gICAgICAgICAgZm9udFNpemU6IDEwXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGluZToge1xyXG4gICAgICAgIHNob3c6IGZhbHNlLFxyXG4gICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjRTlFOUU5J1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vIGRhdGFab29tOiBbXHJcbiAgICAvLyAgIHtcclxuICAgIC8vICAgICB0eXBlOiBcImluc2lkZVwiLFxyXG4gICAgLy8gICAgIHN0YXJ0OiA1MCxcclxuICAgIC8vICAgICBlbmQ6IDEwMFxyXG4gICAgLy8gICB9LFxyXG4gICAgLy8gICB7XHJcbiAgICAvLyAgICAgc2hvdzogdHJ1ZSxcclxuICAgIC8vICAgICB0eXBlOiBcInNsaWRlclwiLFxyXG4gICAgLy8gICAgIHk6IFwiOTAlXCIsXHJcbiAgICAvLyAgICAgc3RhcnQ6IDUwLFxyXG4gICAgLy8gICAgIGVuZDogMTAwXHJcbiAgICAvLyAgIH1cclxuICAgIC8vIF0sXHJcbiAgICBcclxuICAgIFxyXG4gICAgc2VyaWVzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBkYXRhOiBbMTAsIDE2LCA1MCwgOTBdLFxyXG4gICAgICAgIHR5cGU6ICdsaW5lJyxcclxuICAgICAgICBjb2xvcjogJyNGRkEyNzAnLFxyXG4gICAgICAgIHlBeGlzSW5kZXg6IDEsXHJcbiAgICAgICAgbWFya1BvaW50OiB7XHJcbiAgICAgICAgICBkYXRhOiBbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ21heCcsIG5hbWU6ICfmnIDlpKflgLwnIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgICAgc2lsZW50OiB0cnVlLFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvLyBzeW1ib2w6J2ltYWdlOi8vZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUFtQ0FZQUFBQjB4SjJaQUFBQ0cwbEVRVlJvUSsyYXNXc1VRUlRHdjIvR1JMUUpJbGhZR0JCYkE2YXd5ZVVLaGJzamdtQVh3ZjhnaEJBbGpZVUl0dUhRRVArRGdLQ1dDWEdYTkxuZGdFclFRdTJUMUNLQ0dJbTQ4MlRPQ3hqUWJIWUNlekE3VSt6QnpYdXo3L3ZkelB0WWJvbmUwRWw4RzVBcEFhNEFPTDMvdldlZnV3VGVBM3lhalRlZVdXMjBGNVZHQ3hCTWV5YjJjRG5DUlZOdlRGTjNva2todWpTcU5raE1VaWRSS3NCWTFjVDN0djhHVlJKOTkvak01LzJ1UHl3QXlZdnllVDRBQ0RzZ0hJSFFBMElUOUxuTDUya0xMaEJjSUxoQWNJSGdBbm1kMHVmNTRBTEJCWUlMQkJjSUx1QnpsOC9UWmwzZ0Z3Q2RGK2pwZkVhVnhGdUFESHNxTUVjV3Q2blNxQTNCYkRVQlNKdDRzM1pXL2N6ZUFiaFFNUWc3WmxDUGR2OGF3OGJLc0RaNlNjQmFGU0FRa21ZcXU0T3hHOXQvQU95UHpxdFJyWGhaQkNlUERZSzBhNStuU0V1QXE4ZGVEL2dFWUFuQUY5ZTFTT3hsUmo2ZzNySTd2anNPQW5CZE9TZFBKL0V0Z2N3RHVPaDJDMm1iYitZK0ppYjIzUEwvbjFVS2dPN3RrK1V6eElrWEJLOFhFQ0dnM0RXMTF1TUNPWVZDeXdOZ3k5cmNIT0R1NTVja2J4Nnh5aGt6M2x3NFlxeFRXTGtBYklrZm53L3k2OUFxQmRjT3JaaDhZR3FOUjA2cUNpU1ZENkIzSEpRTXZBVng2WisxQ3VaTnZUbFhRSWR6YUg4QTJISTdxeU9LNmpXQVV3ZXJseWVtMXB3RldjcERXdjhBMkZkemtuZ0trTVVlQUFQeVlSbmIvbS9nZlFVQUVUS05Wd2ljTThKN3FEZlduZmV5WStKdnVaUzFkeTEvMDFjQUFBQUFTVVZPUks1Q1lJST0nLFxyXG4gICAgICAgICAgc3ltYm9sT2Zmc2V0OiBbLTUsIDBdLC8vMCDmmK/lt6blj7MgMzDmmK/kuIpcclxuICAgICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICAgIC8vIHBvc2l0aW9uOid0b3AnLFxyXG4gICAgICAgICAgICAvLyBkaXN0YW5jZToxMFxyXG4gICAgICAgICAgICBjb2xvcjonI2ZmZicsXHJcbiAgICAgICAgICAgIGZvbnRTaXplOjEwXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICflhZrlkZjlj4LkuI4nLFxyXG4gICAgICAgIHR5cGU6ICdiYXInLFxyXG4gICAgICAgIGJhcldpZHRoOiAxMyxcclxuICAgICAgICBzdGFjazogJ3N1bScsXHJcbiAgICAgICAgbGFiZWw6IHtcclxuICAgICAgICAgIC8vIGJhY2tncm91bmRDb2xvcjogeyBpbWFnZTogJ2RlbW8ucG5nJyB9LFxyXG4gICAgICAgICAgLy8gbm9ybWFsOiB7XHJcbiAgICAgICAgICAvLyAgIHNob3c6IHRydWUsICAgICAgICAgICAgLy/mmL7npLrmlbDlrZdcclxuICAgICAgICAgIC8vICAgcG9zaXRpb246ICd0b3AnLCAgICAgICAgLy/ov5nph4zlj6/ku6Xoh6rlt7HpgInmi6nkvY3nva5cclxuICAgICAgICAgIC8vICAgY29sb3I6ICdyZWQnLFxyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGF0YTogZGF0YTIsXHJcbiAgICAgICAgY29sb3I6IG5ldyBlY2hhcnRzLmdyYXBoaWMuTGluZWFyR3JhZGllbnQoMCwgMCwgMCwgMSwgW1xyXG4gICAgICAgICAgeyBvZmZzZXQ6IDAsIGNvbG9yOiAnIzAyQzlCNCcgfSxcclxuICAgICAgICAgIHsgb2Zmc2V0OiAxLCBjb2xvcjogJyMwMUFFQ0MnIH1cclxuICAgICAgICBdKSxcclxuICAgICAgICBpdGVtU3R5bGU6IHtcclxuICAgICAgICAgIGJhcldpZHRoOiAxMyxcclxuICAgICAgICAgIG5vcm1hbDoge1xyXG4gICAgICAgICAgICBiYXJCb3JkZXJSYWRpdXM6IFs5LCA5LCAwLCAwXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbWFya1BvaW50OiB7XHJcbiAgICAgICAgICBkYXRhOiBbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ21pbicsIG5hbWU6ICfmnIDlpKflgLwnIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgICAgc2lsZW50OiB0cnVlLFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvLyBzeW1ib2w6J2ltYWdlOi8vZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUFtQ0FZQUFBQjB4SjJaQUFBQ0cwbEVRVlJvUSsyYXNXc1VRUlRHdjIvR1JMUUpJbGhZR0JCYkE2YXd5ZVVLaGJzamdtQVh3ZjhnaEJBbGpZVUl0dUhRRVArRGdLQ1dDWEdYTkxuZGdFclFRdTJUMUNLQ0dJbTQ4MlRPQ3hqUWJIWUNlekE3VSt6QnpYdXo3L3ZkelB0WWJvbmUwRWw4RzVBcEFhNEFPTDMvdldlZnV3VGVBM3lhalRlZVdXMjBGNVZHQ3hCTWV5YjJjRG5DUlZOdlRGTjNva2todWpTcU5raE1VaWRSS3NCWTFjVDN0djhHVlJKOTkvak01LzJ1UHl3QXlZdnllVDRBQ0RzZ0hJSFFBMElUOUxuTDUya0xMaEJjSUxoQWNJSGdBbm1kMHVmNTRBTEJCWUlMQkJjSUx1QnpsOC9UWmwzZ0Z3Q2RGK2pwZkVhVnhGdUFESHNxTUVjV3Q2blNxQTNCYkRVQlNKdDRzM1pXL2N6ZUFiaFFNUWc3WmxDUGR2OGF3OGJLc0RaNlNjQmFGU0FRa21ZcXU0T3hHOXQvQU95UHpxdFJyWGhaQkNlUERZSzBhNStuU0V1QXE4ZGVEL2dFWUFuQUY5ZTFTT3hsUmo2ZzNySTd2anNPQW5CZE9TZFBKL0V0Z2N3RHVPaDJDMm1iYitZK0ppYjIzUEwvbjFVS2dPN3RrK1V6eElrWEJLOFhFQ0dnM0RXMTF1TUNPWVZDeXdOZ3k5cmNIT0R1NTVja2J4Nnh5aGt6M2x3NFlxeFRXTGtBYklrZm53L3k2OUFxQmRjT3JaaDhZR3FOUjA2cUNpU1ZENkIzSEpRTXZBVng2WisxQ3VaTnZUbFhRSWR6YUg4QTJISTdxeU9LNmpXQVV3ZXJseWVtMXB3RldjcERXdjhBMkZkemtuZ0trTVVlQUFQeVlSbmIvbS9nZlFVQUVUS05Wd2ljTThKN3FEZlduZmV5WStKdnVaUzFkeTEvMDFjQUFBQUFTVVZPUks1Q1lJST0nLFxyXG4gICAgICAgICAgc3ltYm9sT2Zmc2V0OiBbLTUsIDBdLC8vMCDmmK/lt6blj7MgMzDmmK/kuIpcclxuICAgICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICAgIC8vIHBvc2l0aW9uOid0b3AnLFxyXG4gICAgICAgICAgICAvLyBkaXN0YW5jZToxMFxyXG4gICAgICAgICAgICBjb2xvcjonI2ZmZicsXHJcbiAgICAgICAgICAgIGZvbnRTaXplOjEwXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICflsYXmsJHlj4LkuI4nLFxyXG4gICAgICAgIHR5cGU6ICdiYXInLFxyXG4gICAgICAgIHN0YWNrOiAnc3VtMScsXHJcbiAgICAgICAgYmFyV2lkdGg6IDEzLFxyXG4gICAgICAgIGRhdGE6IGRhdGEzLFxyXG4gICAgICAgIGNvbG9yOiBuZXcgZWNoYXJ0cy5ncmFwaGljLkxpbmVhckdyYWRpZW50KDAsIDAsIDAsIDEsIFtcclxuICAgICAgICAgIHsgb2Zmc2V0OiAwLCBjb2xvcjogJyMyOTcwRkYnIH0sXHJcbiAgICAgICAgICB7IG9mZnNldDogMSwgY29sb3I6ICcjODFBMkZGJyB9XHJcbiAgICAgICAgXSksXHJcbiAgICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgICAgICBub3JtYWw6IHtcclxuICAgICAgICAgICAgYmFyQm9yZGVyUmFkaXVzOiBbOSwgOSwgMCwgMF1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgXVxyXG4gIH07XHJcbiAgY2hhcnQuc2V0T3B0aW9uKG9wdGlvbik7XHJcbiAgcmV0dXJuIGNoYXJ0O1xyXG59XHJcblxyXG4vLyDlhZrlu7rlo7Dpn7Plj4LkuI7kurrmrKHliIbmnpBcclxuZXhwb3J0IGZ1bmN0aW9uIHZvaWNlQW5hbHl6ZUVjaGFydHMoY2hhcnQ6IGFueSkge1xyXG5cclxuICBcclxuICB2YXIgZGF0YTIgPSBbMzAsIDYwLCA2MCwgNzAsXTtcclxuICB2YXIgZGF0YTMgPSBbNzAsIDYwLCA5MCwgMTAwLF07XHJcblxyXG4gIHZhciB4RGF0YSA9IFsn56ys5LiA5ZGoJywgJ+esrOS6jOWRqCcsICfnrKzkuInlkagnLCAn56ys5Zub5ZGoJ107XHJcbiAgdmFyIG9wdGlvbiA9IHtcclxuICAgIGdyaWQ6IHtcclxuICAgICAgdG9wOiAnMjAlJyxcclxuICAgICAgbGVmdDogJzMlJyxcclxuICAgICAgcmlnaHQ6ICcxJScsXHJcbiAgICAgIGJvdHRvbTogJzUlJyxcclxuICAgICAgY29udGFpbkxhYmVsOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgeUF4aXM6IFt7XHJcbiAgICAgIHR5cGU6ICd2YWx1ZScsXHJcbiAgICAgIGF4aXNUaWNrOiB7XHJcbiAgICAgICAgc2hvdzogZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgc3BsaXRMaW5lOiB7XHJcbiAgICAgICAgc2hvdzogdHJ1ZSxcclxuICAgICAgICBsaW5lU3R5bGU6IHtcclxuICAgICAgICAgIHR5cGU6ICdzb2xpZCcsXHJcbiAgICAgICAgICBjb2xvcjogJyNFOUU5RTknXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGFiZWw6IHtcclxuICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjQjVCN0JGJyxcclxuICAgICAgICAgIGZvbnRTaXplOiAxMFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgYXhpc0xpbmU6IHtcclxuICAgICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgICBsaW5lU3R5bGU6IHtcclxuICAgICAgICAgIGNvbG9yOiAnI0I1QjdCRidcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAge1xyXG4gICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgdHlwZTogJ3ZhbHVlJyxcclxuICAgICAgYXhpc1RpY2s6IHtcclxuICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICBzcGxpdExpbmU6IHtcclxuICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGluZToge1xyXG4gICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjZmZmJyxcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMYWJlbDoge1xyXG4gICAgICAgIGZvcm1hdHRlcjogJ3t2YWx1ZX0lJyxcclxuICAgICAgICBtYXg6IDEwMCxcclxuICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgIHRleHRTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjQjVCN0JGJyxcclxuICAgICAgICAgIGZvbnRTaXplOiAxMFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXSxcclxuICAgIHhBeGlzOiB7XHJcbiAgICAgIHR5cGU6ICdjYXRlZ29yeScsXHJcbiAgICAgIGRhdGE6IHhEYXRhLFxyXG4gICAgICBheGlzVGljazoge1xyXG4gICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgIH0sXHJcbiAgICAgIGF4aXNMYWJlbDoge1xyXG4gICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAgICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyNCNUI3QkYnLFxyXG4gICAgICAgICAgZm9udFNpemU6IDEwXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBheGlzTGluZToge1xyXG4gICAgICAgIHNob3c6IGZhbHNlLFxyXG4gICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6ICcjRTlFOUU5J1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHNlcmllczogW1xyXG4gICAgICB7XHJcbiAgICAgICAgZGF0YTogWzEwLCAxNiwgNTAsIDkwXSxcclxuICAgICAgICB0eXBlOiAnbGluZScsXHJcbiAgICAgICAgY29sb3I6ICcjRkZBMjcwJyxcclxuICAgICAgICB5QXhpc0luZGV4OiAxLFxyXG4gICAgICAgIG1hcmtQb2ludDoge1xyXG4gICAgICAgICAgZGF0YTogW1xyXG4gICAgICAgICAgICB7IHR5cGU6ICdtYXgnLCBuYW1lOiAn5pyA5aSn5YC8JyB9LFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICAgIHNpbGVudDogdHJ1ZSxcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy8gc3ltYm9sOidpbWFnZTovL2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFBbUNBWUFBQUIweEoyWkFBQUNHMGxFUVZSb1ErMmFzV3NVUVJUR3YyL0dSTFFKSWxoWUdCQmJBNmF3eWVVS2hic2pnbUFYd2Y4Z2hCQWxqWVVJdHVIUUVQK0RnS0NXQ1hHWE5MbmRnRXJRUXUyVDFDS0NHSW00ODJUT0N4alFiSFlDZXpBN1UrekJ6WHV6Ny92ZHpQdFlib25lMEVsOEc1QXBBYTRBT0wzL3ZXZWZ1d1RlQTN5YWpUZWVXVzIwRjVWR0N4Qk1leWIyY0RuQ1JWTnZURk4zb2traHVqU3FOa2hNVWlkUktzQlkxY1QzdHY4R1ZSSjk5L2pNNS8ydVB5d0F5WXZ5ZVQ0QUNEc2dISUhRQTBJVDlMbkw1MmtMTGhCY0lMaEFjSUhnQW5tZDB1ZjU0QUxCQllJTEJCY0lMdUJ6bDgvVFpsM2dGd0NkRitqcGZFYVZ4RnVBREhzcU1FY1d0Nm5TcUEzQmJEVUJTSnQ0czNaVy9jemVBYmhRTVFnN1psQ1BkdjhhdzhiS3NEWjZTY0JhRlNBUWttWXF1NE94Rzl0L0FPeVB6cXRSclhoWkJDZVBEWUswYTUrblNFdUFxOGRlRC9nRVlBbkFGOWUxU094bFJqNmczckk3dmpzT0FuQmRPU2RQSi9FdGdjd0R1T2gyQzJtYmIrWStKaWIyM1BML24xVUtnTzd0aytVenhJa1hCSzhYRUNHZzNEVzExdU1DT1lWQ3l3Tmd5OXJjSE9EdTU1Y2tieDZ4eWhrejNsdzRZcXhUV0xrQWJJa2Zudy95NjlBcUJkY09yWmg4WUdxTlIwNnFDaVNWRDZCM0hKUU12QVZ4NlorMUN1Wk52VGxYUUlkemFIOEEySEk3cXlPSzZqV0FVd2VybHllbTFwd0ZXY3BEV3Y4QTJGZHprbmdLa01VZUFBUHlZUm5iL20vZ2ZRVUFFVEtOVndpY004SjdxRGZXbmZleVkrSnZ1WlMxZHkxLzAxY0FBQUFBU1VWT1JLNUNZSUk9JyxcclxuICAgICAgICAgIHN5bWJvbE9mZnNldDogWy01LCAwXSwvLzAg5piv5bem5Y+zIDMw5piv5LiKXHJcbiAgICAgICAgICBsYWJlbDoge1xyXG4gICAgICAgICAgICAvLyBwb3NpdGlvbjondG9wJyxcclxuICAgICAgICAgICAgLy8gZGlzdGFuY2U6MTBcclxuICAgICAgICAgICAgY29sb3I6JyNmZmYnLFxyXG4gICAgICAgICAgICBmb250U2l6ZToxMFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAn5YWa5ZGY5Y+C5LiOJyxcclxuICAgICAgICB0eXBlOiAnYmFyJyxcclxuICAgICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgICAgc3RhY2s6ICdzdW0nLFxyXG4gICAgICAgIGxhYmVsOiB7XHJcbiAgICAgICAgICAvLyBiYWNrZ3JvdW5kQ29sb3I6IHsgaW1hZ2U6ICdkZW1vLnBuZycgfSxcclxuICAgICAgICAgIC8vIG5vcm1hbDoge1xyXG4gICAgICAgICAgLy8gICBzaG93OiB0cnVlLCAgICAgICAgICAgIC8v5pi+56S65pWw5a2XXHJcbiAgICAgICAgICAvLyAgIHBvc2l0aW9uOiAndG9wJywgICAgICAgIC8v6L+Z6YeM5Y+v5Lul6Ieq5bex6YCJ5oup5L2N572uXHJcbiAgICAgICAgICAvLyAgIGNvbG9yOiAncmVkJyxcclxuICAgICAgICAgIC8vIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGRhdGE6IGRhdGEyLFxyXG4gICAgICAgIGNvbG9yOiBuZXcgZWNoYXJ0cy5ncmFwaGljLkxpbmVhckdyYWRpZW50KDAsIDAsIDAsIDEsIFtcclxuICAgICAgICAgIHsgb2Zmc2V0OiAwLCBjb2xvcjogJyMwMkM5QjQnIH0sXHJcbiAgICAgICAgICB7IG9mZnNldDogMSwgY29sb3I6ICcjMDFBRUNDJyB9XHJcbiAgICAgICAgXSksXHJcbiAgICAgICAgaXRlbVN0eWxlOiB7XHJcbiAgICAgICAgICBiYXJXaWR0aDogMTMsXHJcbiAgICAgICAgICBub3JtYWw6IHtcclxuICAgICAgICAgICAgYmFyQm9yZGVyUmFkaXVzOiBbOSwgOSwgMCwgMF1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIG1hcmtQb2ludDoge1xyXG4gICAgICAgICAgZGF0YTogW1xyXG4gICAgICAgICAgICB7IHR5cGU6ICdtaW4nLCBuYW1lOiAn5pyA5aSn5YC8JyB9LFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICAgIHNpbGVudDogdHJ1ZSxcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy8gc3ltYm9sOidpbWFnZTovL2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFBbUNBWUFBQUIweEoyWkFBQUNHMGxFUVZSb1ErMmFzV3NVUVJUR3YyL0dSTFFKSWxoWUdCQmJBNmF3eWVVS2hic2pnbUFYd2Y4Z2hCQWxqWVVJdHVIUUVQK0RnS0NXQ1hHWE5MbmRnRXJRUXUyVDFDS0NHSW00ODJUT0N4alFiSFlDZXpBN1UrekJ6WHV6Ny92ZHpQdFlib25lMEVsOEc1QXBBYTRBT0wzL3ZXZWZ1d1RlQTN5YWpUZWVXVzIwRjVWR0N4Qk1leWIyY0RuQ1JWTnZURk4zb2traHVqU3FOa2hNVWlkUktzQlkxY1QzdHY4R1ZSSjk5L2pNNS8ydVB5d0F5WXZ5ZVQ0QUNEc2dISUhRQTBJVDlMbkw1MmtMTGhCY0lMaEFjSUhnQW5tZDB1ZjU0QUxCQllJTEJCY0lMdUJ6bDgvVFpsM2dGd0NkRitqcGZFYVZ4RnVBREhzcU1FY1d0Nm5TcUEzQmJEVUJTSnQ0czNaVy9jemVBYmhRTVFnN1psQ1BkdjhhdzhiS3NEWjZTY0JhRlNBUWttWXF1NE94Rzl0L0FPeVB6cXRSclhoWkJDZVBEWUswYTUrblNFdUFxOGRlRC9nRVlBbkFGOWUxU094bFJqNmczckk3dmpzT0FuQmRPU2RQSi9FdGdjd0R1T2gyQzJtYmIrWStKaWIyM1BML24xVUtnTzd0aytVenhJa1hCSzhYRUNHZzNEVzExdU1DT1lWQ3l3Tmd5OXJjSE9EdTU1Y2tieDZ4eWhrejNsdzRZcXhUV0xrQWJJa2Zudy95NjlBcUJkY09yWmg4WUdxTlIwNnFDaVNWRDZCM0hKUU12QVZ4NlorMUN1Wk52VGxYUUlkemFIOEEySEk3cXlPSzZqV0FVd2VybHllbTFwd0ZXY3BEV3Y4QTJGZHprbmdLa01VZUFBUHlZUm5iL20vZ2ZRVUFFVEtOVndpY004SjdxRGZXbmZleVkrSnZ1WlMxZHkxLzAxY0FBQUFBU1VWT1JLNUNZSUk9JyxcclxuICAgICAgICAgIHN5bWJvbE9mZnNldDogWy01LCAwXSwvLzAg5piv5bem5Y+zIDMw5piv5LiKXHJcbiAgICAgICAgICBsYWJlbDoge1xyXG4gICAgICAgICAgICAvLyBwb3NpdGlvbjondG9wJyxcclxuICAgICAgICAgICAgLy8gZGlzdGFuY2U6MTBcclxuICAgICAgICAgICAgY29sb3I6JyNmZmYnLFxyXG4gICAgICAgICAgICBmb250U2l6ZToxMFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAn5bGF5rCR5Y+C5LiOJyxcclxuICAgICAgICB0eXBlOiAnYmFyJyxcclxuICAgICAgICBzdGFjazogJ3N1bTEnLFxyXG4gICAgICAgIGJhcldpZHRoOiAxMyxcclxuICAgICAgICBkYXRhOiBkYXRhMyxcclxuICAgICAgICBjb2xvcjogbmV3IGVjaGFydHMuZ3JhcGhpYy5MaW5lYXJHcmFkaWVudCgwLCAwLCAwLCAxLCBbXHJcbiAgICAgICAgICB7IG9mZnNldDogMCwgY29sb3I6ICcjMjk3MEZGJyB9LFxyXG4gICAgICAgICAgeyBvZmZzZXQ6IDEsIGNvbG9yOiAnIzgxQTJGRicgfVxyXG4gICAgICAgIF0pLFxyXG4gICAgICAgIGl0ZW1TdHlsZToge1xyXG4gICAgICAgICAgYmFyV2lkdGg6IDEzLFxyXG4gICAgICAgICAgbm9ybWFsOiB7XHJcbiAgICAgICAgICAgIGJhckJvcmRlclJhZGl1czogWzksIDksIDAsIDBdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIF1cclxuICB9O1xyXG4gIGNoYXJ0LnNldE9wdGlvbihvcHRpb24pO1xyXG4gIHJldHVybiBjaGFydDtcclxufVxyXG5cclxuIl19
|