StringArtGenerator/loading-bar.js

804 wiersze
100 KiB
JavaScript

(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
// Generated by LiveScript 1.4.0
var presets, simpleStr, wrap, slice$ = [].slice, toString$ = {}.toString;
presets = require('./presets').presets;
simpleStr = function(arr){
return arr.join('');
};
wrap = function(content){
return "data:image/svg+xml;base64," + btoa(content);
};
(function(){
var make, handler, ldBar;
make = {
head: function(viewBox){
return "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"" + viewBox + "\">";
},
gradient: function(dir, dur){
var colors, ret, len, gx, gy, x, y, i$, i, idx;
dir == null && (dir = 45);
dur == null && (dur = 1);
colors = slice$.call(arguments, 2);
ret = [this.head("0 0 100 100")];
len = colors.length * 4 + 1;
dir = dir * Math.PI / 180;
gx = Math.pow(Math.cos(dir), 2);
gy = Math.sqrt(gx - Math.pow(gx, 2));
if (dir > Math.PI * 0.25) {
gy = Math.pow(Math.sin(dir), 2);
gx = Math.sqrt(gy - Math.pow(gy, 2));
}
x = gx * 100;
y = gy * 100;
ret.push("<defs><linearGradient id=\"gradient\" x1=\"0\" x2=\"" + gx + "\" y1=\"0\" y2=\"" + gy + "\">");
for (i$ = 0; i$ < len; ++i$) {
i = i$;
idx = i * 100 / (len - 1);
ret.push("<stop offset=\"" + idx + "%\" stop-color=\"" + colors[i % colors.length] + "\"/>");
}
ret.push("</linearGradient></defs>\n<rect x=\"0\" y=\"0\" width=\"400\" height=\"400\" fill=\"url(#gradient)\">\n<animateTransform attributeName=\"transform\" type=\"translate\" from=\"-" + x + ",-" + y + "\"\nto=\"0,0\" dur=\"" + dur + "s\" repeatCount=\"indefinite\"/></rect></svg>");
return wrap(ret.join(""));
},
stripe: function(c1, c2, dur){
var ret, i;
c1 == null && (c1 = '#b4b4b4');
c2 == null && (c2 = '#e6e6e6');
dur == null && (dur = 1);
ret = [this.head("0 0 100 100")];
ret = ret.concat([
"<rect fill=\"" + c2 + "\" width=\"100\" height=\"100\"/>", "<g><g>", (function(){
var i$, results$ = [];
for (i$ = 0; i$ < 13; ++i$) {
i = i$;
results$.push(("<polygon fill=\"" + c1 + "\" ") + ("points=\"" + (-90 + i * 20) + ",100 " + (-100 + i * 20) + ",") + ("100 " + (-60 + i * 20) + ",0 " + (-50 + i * 20) + ",0 \"/>"));
}
return results$;
}()).join(""), "</g><animateTransform attributeName=\"transform\" type=\"translate\" ", "from=\"0,0\" to=\"20,0\" dur=\"" + dur + "s\" repeatCount=\"indefinite\"/></g></svg>"
].join(""));
return wrap(ret);
},
bubble: function(c1, c2, count, dur, size, sw){
var ret, i$, i, idx, x, r, d;
c1 == null && (c1 = '#39d');
c2 == null && (c2 = '#9cf');
count == null && (count = 15);
dur == null && (dur = 1);
size == null && (size = 6);
sw == null && (sw = 1);
ret = [this.head("0 0 200 200"), "<rect x=\"0\" y=\"0\" width=\"200\" height=\"200\" fill=\"" + c1 + "\"/>"];
for (i$ = 0; i$ < count; ++i$) {
i = i$;
idx = -(i / count) * dur;
x = Math.random() * 184 + 8;
r = (Math.random() * 0.7 + 0.3) * size;
d = dur * (1 + Math.random() * 0.5);
ret.push(["<circle cx=\"" + x + "\" cy=\"0\" r=\"" + r + "\" fill=\"none\" stroke=\"" + c2 + "\" stroke-width=\"" + sw + "\">", "<animate attributeName=\"cy\" values=\"190;-10\" times=\"0;1\" ", "dur=\"" + d + "s\" begin=\"" + idx + "s\" repeatCount=\"indefinite\"/>", "</circle>", "<circle cx=\"" + x + "\" cy=\"0\" r=\"" + r + "\" fill=\"none\" stroke=\"" + c2 + "\" stroke-width=\"" + sw + "\">", "<animate attributeName=\"cy\" values=\"390;190\" times=\"0;1\" ", "dur=\"" + d + "s\" begin=\"" + idx + "s\" repeatCount=\"indefinite\"/>", "</circle>"].join(""));
}
return wrap(ret.join("") + "</svg>");
}
};
handler = {
queue: {},
running: false,
main: function(timestamp){
var keepon, removed, k, ref$, func, ret, this$ = this;
keepon = false;
removed = [];
for (k in ref$ = this.queue) {
func = ref$[k];
ret = func(timestamp);
if (!ret) {
removed.push(func);
}
keepon = keepon || ret;
}
for (k in ref$ = this.queue) {
func = ref$[k];
if (removed.indexOf(func) >= 0) {
delete this.queue[k];
}
}
if (keepon) {
return requestAnimationFrame(function(it){
return this$.main(it);
});
} else {
return this.running = false;
}
},
add: function(key, f){
var this$ = this;
if (!this.queue[key]) {
this.queue[key] = f;
}
if (!this.running) {
this.running = true;
return requestAnimationFrame(function(it){
return this$.main(it);
});
}
}
};
window.ldBar = ldBar = function(selector, option){
var xmlns, root, cls, idPrefix, id, domTree, newNode, x$, config, attr, that, isStroke, parseRes, dom, svg, text, group, length, path0, path1, patimg, img, ret, size, this$ = this;
option == null && (option = {});
xmlns = {
xlink: "http://www.w3.org/1999/xlink"
};
root = toString$.call(selector).slice(8, -1) === 'String' ? document.querySelector(selector) : selector;
if (!root.ldBar) {
root.ldBar = this;
} else {
return root.ldBar;
}
cls = root.getAttribute('class') || '';
if (!~cls.indexOf('ldBar')) {
root.setAttribute('class', cls + " ldBar");
}
idPrefix = "ldBar-" + Math.random().toString(16).substring(2);
id = {
key: idPrefix,
clip: idPrefix + "-clip",
filter: idPrefix + "-filter",
pattern: idPrefix + "-pattern",
mask: idPrefix + "-mask",
maskPath: idPrefix + "-mask-path"
};
domTree = function(n, o){
var k, v;
n = newNode(n);
for (k in o) {
v = o[k];
if (k !== 'attr') {
n.appendChild(domTree(k, v || {}));
}
}
n.attrs(o.attr || {});
return n;
};
newNode = function(n){
return document.createElementNS("http://www.w3.org/2000/svg", n);
};
x$ = document.body.__proto__.__proto__.__proto__;
x$.text = function(t){
return this.appendChild(document.createTextNode(t));
};
x$.attrs = function(o){
var k, v, ret, results$ = [];
for (k in o) {
v = o[k];
ret = /([^:]+):([^:]+)/.exec(k);
if (!ret || !xmlns[ret[1]]) {
results$.push(this.setAttribute(k, v));
} else {
results$.push(this.setAttributeNS(xmlns[ret[1]], k, v));
}
}
return results$;
};
x$.styles = function(o){
var k, v, results$ = [];
for (k in o) {
v = o[k];
results$.push(this.style[k] = v);
}
return results$;
};
x$.append = function(n){
var r;
return this.appendChild(r = document.createElementNS("http://www.w3.og/2000/svg", n));
};
x$.attr = function(n, v){
if (v != null) {
return this.setAttribute(n, v);
} else {
return this.getAttribute(n);
}
};
config = {
"type": 'stroke',
"img": '',
"path": 'M10 10L90 10M90 8M90 12',
"fill-dir": 'btt',
"fill": '#25b',
"fill-background": '#ddd',
"fill-background-extrude": 3,
"pattern-size": null,
"stroke-dir": 'normal',
"stroke": '#25b',
"stroke-width": '3',
"stroke-trail": '#ddd',
"stroke-trail-width": 0.5,
"duration": 1,
"easing": 'linear',
"value": 0,
"img-size": null,
"bbox": null,
"set-dim": true,
"aspect-ratio": "xMidYMid",
"min": 0,
"max": 100
};
config["preset"] = root.attr("data-preset") || option["preset"];
if (config.preset != null) {
import$(config, presets[config.preset]);
}
for (attr in config) {
if (that = that = root.attr("data-" + attr)) {
config[attr] = that;
}
}
import$(config, option);
if (config.img) {
config.path = null;
}
isStroke = config.type === 'stroke';
parseRes = function(v){
var parser, ret;
parser = /data:ldbar\/res,([^()]+)\(([^)]+)\)/;
ret = parser.exec(v);
if (!ret) {
return v;
}
return ret = make[ret[1]].apply(make, ret[2].split(','));
};
config.fill = parseRes(config.fill);
config.stroke = parseRes(config.stroke);
if (config["set-dim"] === 'false') {
config["set-dim"] = false;
}
dom = {
attr: {
"xmlns:xlink": 'http://www.w3.org/1999/xlink',
preserveAspectRatio: config["aspect-ratio"],
width: "100%",
height: "100%"
},
defs: {
filter: {
attr: {
id: id.filter,
x: -1,
y: -1,
width: 3,
height: 3
},
feMorphology: {
attr: {
operator: +config["fill-background-extrude"] >= 0 ? 'dilate' : 'erode',
radius: Math.abs(+config["fill-background-extrude"])
}
},
feColorMatrix: {
attr: {
values: '0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0',
result: "cm"
}
}
},
mask: {
attr: {
id: id.mask
},
image: {
attr: {
"xlink:href": config.img,
filter: "url(#" + id.filter + ")",
x: 0,
y: 0,
width: 100,
height: 100,
preserveAspectRatio: config["aspect-ratio"]
}
}
},
g: {
mask: {
attr: {
id: id.maskPath
},
path: {
attr: {
d: config.path || "",
fill: '#fff',
stroke: '#fff',
filter: "url(#" + id.filter + ")"
}
}
}
},
clipPath: {
attr: {
id: id.clip
},
rect: {
attr: {
'class': 'mask',
fill: '#000'
}
}
},
pattern: {
attr: {
id: id.pattern,
patternUnits: 'userSpaceOnUse',
x: 0,
y: 0,
width: 300,
height: 300
},
image: {
attr: {
x: 0,
y: 0,
width: 300,
height: 300
}
}
}
}
};
svg = domTree('svg', dom);
text = document.createElement('div');
text.setAttribute('class', 'ldBar-label');
root.appendChild(svg);
root.appendChild(text);
group = [0, 0];
length = 0;
this.fit = function(){
var that, box, d, rect;
if (that = config["bbox"]) {
box = that.split(' ').map(function(it){
return +it.trim();
});
box = {
x: box[0],
y: box[1],
width: box[2],
height: box[3]
};
} else {
box = group[1].getBBox();
}
if (!box || box.width === 0 || box.height === 0) {
box = {
x: 0,
y: 0,
width: 100,
height: 100
};
}
d = Math.max.apply(null, ['stroke-width', 'stroke-trail-width', 'fill-background-extrude'].map(function(it){
return config[it];
})) * 1.5;
svg.attrs({
viewBox: [box.x - d, box.y - d, box.width + d * 2, box.height + d * 2].join(" ")
});
if (config["set-dim"]) {
['width', 'height'].map(function(it){
if (!root.style[it] || this$.fit[it]) {
root.style[it] = (box[it] + d * 2) + "px";
return this$.fit[it] = true;
}
});
}
rect = group[0].querySelector('rect');
if (rect) {
return rect.attrs({
x: box.x - d,
y: box.y - d,
width: box.width + d * 2,
height: box.height + d * 2
});
}
};
if (config.path) {
if (isStroke) {
group[0] = domTree('g', {
path: {
attr: {
d: config.path,
fill: 'none',
'class': 'baseline'
}
}
});
} else {
group[0] = domTree('g', {
rect: {
attr: {
x: 0,
y: 0,
width: 100,
height: 100,
mask: "url(#" + id.maskPath + ")",
fill: config["fill-background"],
'class': 'frame'
}
}
});
}
svg.appendChild(group[0]);
group[1] = domTree('g', {
path: {
attr: {
d: config.path,
'class': isStroke ? 'mainline' : 'solid',
"clip-path": config.type === 'fill' ? "url(#" + id.clip + ")" : ''
}
}
});
svg.appendChild(group[1]);
path0 = group[0].querySelector(isStroke ? 'path' : 'rect');
path1 = group[1].querySelector('path');
if (isStroke) {
path1.attrs({
fill: 'none'
});
}
patimg = svg.querySelector('pattern image');
img = new Image();
img.addEventListener('load', function(){
var box, that;
box = (that = config["pattern-size"])
? {
width: +that,
height: +that
}
: img.width && img.height
? {
width: img.width,
height: img.height
}
: {
width: 300,
height: 300
};
svg.querySelector('pattern').attrs({
width: box.width,
height: box.height
});
return patimg.attrs({
width: box.width,
height: box.height
});
});
if (/.+\..+|^data:/.exec(!isStroke
? config.fill
: config.stroke)) {
img.src = !isStroke
? config.fill
: config.stroke;
patimg.attrs({
"xlink:href": img.src
});
}
if (isStroke) {
path0.attrs({
stroke: config["stroke-trail"],
"stroke-width": config["stroke-trail-width"]
});
path1.attrs({
"stroke-width": config["stroke-width"],
stroke: /.+\..+|^data:/.exec(config.stroke)
? "url(#" + id.pattern + ")"
: config.stroke
});
}
if (config.fill && !isStroke) {
path1.attrs({
fill: /.+\..+|^data:/.exec(config.fill)
? "url(#" + id.pattern + ")"
: config.fill
});
}
length = path1.getTotalLength();
this.fit();
this.inited = true;
} else if (config.img) {
if (config["img-size"]) {
ret = config["img-size"].split(',');
size = {
width: +ret[0],
height: +ret[1]
};
} else {
size = {
width: 100,
height: 100
};
}
group[0] = domTree('g', {
rect: {
attr: {
x: 0,
y: 0,
width: 100,
height: 100,
mask: "url(#" + id.mask + ")",
fill: config["fill-background"]
}
}
});
svg.querySelector('mask image').attrs({
width: size.width,
height: size.height
});
group[1] = domTree('g', {
image: {
attr: {
width: size.width,
height: size.height,
x: 0,
y: 0,
preserveAspectRatio: config["aspect-ratio"],
"clip-path": config.type === 'fill' ? "url(#" + id.clip + ")" : '',
"xlink:href": config.img,
'class': 'solid'
}
}
});
img = new Image();
img.addEventListener('load', function(){
var ret, size;
if (config["img-size"]) {
ret = config["img-size"].split(',');
size = {
width: +ret[0],
height: +ret[1]
};
} else if (img.width && img.height) {
size = {
width: img.width,
height: img.height
};
} else {
size = {
width: 100,
height: 100
};
}
svg.querySelector('mask image').attrs({
width: size.width,
height: size.height
});
group[1].querySelector('image').attrs({
width: size.width,
height: size.height
});
this$.fit();
this$.set(undefined, false);
return this$.inited = true;
});
img.src = config.img;
svg.appendChild(group[0]);
svg.appendChild(group[1]);
}
svg.attrs({
width: '100%',
height: '100%'
});
this.transition = {
value: {
src: 0,
des: 0
},
time: {},
ease: function(t, b, c, d){
t = t / (d * 0.5);
if (t < 1) {
return c * 0.5 * t * t + b;
}
t = t - 1;
return -c * 0.5 * (t * (t - 2) - 1) + b;
},
handler: function(time, doTransition){
var ref$, min, max, dv, dt, dur, v, p, node, style, box, dir;
doTransition == null && (doTransition = true);
if (this.time.src == null) {
this.time.src = time;
}
ref$ = [config["min"], config["max"]], min = ref$[0], max = ref$[1];
ref$ = [this.value.des - this.value.src, (time - this.time.src) * 0.001, +config["duration"] || 1], dv = ref$[0], dt = ref$[1], dur = ref$[2];
v = doTransition
? Math.round(this.ease(dt, this.value.src, dv, dur))
: this.value.des;
v >= min || (v = min);
v <= max || (v = max);
text.textContent = v;
p = 100.0 * (v - min) / (max - min);
if (isStroke) {
node = path1;
style = {
"stroke-dasharray": config["stroke-dir"] === 'reverse'
? "0 " + length * (100 - p) * 0.01 + " " + length * p * 0.01 + " 0"
: p * 0.01 * length + " " + ((100 - p) * 0.01 * length + 1)
};
} else {
box = group[1].getBBox();
dir = config["fill-dir"];
style = dir === 'btt' || !dir
? {
y: box.y + box.height * (100 - p) * 0.01,
height: box.height * p * 0.01,
x: box.x,
width: box.width
}
: dir === 'ttb'
? {
y: box.y,
height: box.height * p * 0.01,
x: box.x,
width: box.width
}
: dir === 'ltr'
? {
y: box.y,
height: box.height,
x: box.x,
width: box.width * p * 0.01
}
: dir === 'rtl' ? {
y: box.y,
height: box.height,
x: box.x + box.width * (100 - p) * 0.01,
width: box.width * p * 0.01
} : void 8;
node = svg.querySelector('rect');
}
node.attrs(style);
if (dt >= dur) {
delete this.time.src;
return false;
}
return true;
},
start: function(src, des, doTransition){
var ref$, this$ = this;
ref$ = this.value;
ref$.src = src;
ref$.des = des;
!!(root.offsetWidth || root.offsetHeight || root.getClientRects().length);
if (!doTransition || !(root.offsetWidth || root.offsetHeight || root.getClientRects().length)) {
this.time.src = 0;
this.handler(1000, false);
return;
}
return handler.add(id.key, function(time){
return this$.handler(time);
});
}
};
this.set = function(v, doTransition){
var src, des;
doTransition == null && (doTransition = true);
src = this.value || 0;
if (v != null) {
this.value = v;
} else {
v = this.value;
}
des = this.value;
return this.transition.start(src, des, doTransition);
};
this.set(+config.value || 0, false);
return this;
};
return window.addEventListener('load', function(){
var i$, ref$, len$, node, results$ = [];
for (i$ = 0, len$ = (ref$ = document.querySelectorAll('.ldBar')).length; i$ < len$; ++i$) {
node = ref$[i$];
if (!node.ldBar) {
results$.push(node.ldBar = new ldBar(node));
}
}
return results$;
}, false);
})();
module.exports = ldBar;
function import$(obj, src){
var own = {}.hasOwnProperty;
for (var key in src) if (own.call(src, key)) obj[key] = src[key];
return obj;
}
},{"./presets":2}],2:[function(require,module,exports){
// Generated by LiveScript 1.4.0
var presets, out$ = typeof exports != 'undefined' && exports || this;
out$.presets = presets = {
rainbow: {
"type": 'stroke',
"path": 'M10 10L90 10',
"stroke": 'data:ldbar/res,gradient(0,1,#a551df,#fd51ad,#ff7f82,#ffb874,#ffeb90)',
"bbox": "10 10 80 10"
},
energy: {
"type": 'fill',
"path": 'M15 5L85 5A5 5 0 0 1 85 15L15 15A5 5 0 0 1 15 5',
"stroke": '#f00',
"fill": 'data:ldbar/res,gradient(45,2,#4e9,#8fb,#4e9)',
"fill-dir": "ltr",
"fill-background": '#444',
"fill-background-extrude": 1,
"bbox": "10 5 80 10"
},
stripe: {
"type": 'fill',
"path": 'M15 5L85 5A5 5 0 0 1 85 15L15 15A5 5 0 0 1 15 5',
"stroke": '#f00',
"fill": 'data:ldbar/res,stripe(#25b,#58e,1)',
"fill-dir": "ltr",
"fill-background": '#ddd',
"fill-background-extrude": 1,
"bbox": "10 5 80 10"
},
text: {
"type": 'fill',
"img": "data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"70\" height=\"20\" viewBox=\"0 0 70 20\"><text x=\"35\" y=\"10\" text-anchor=\"middle\" dominant-baseline=\"central\" font-family=\"arial\">LOADING</text></svg>",
"fill-background-extrude": 1.3,
"pattern-size": 100,
"fill-dir": "ltr",
"img-size": "70,20",
"bbox": "0 0 70 20"
},
line: {
"type": 'stroke',
"path": 'M10 10L90 10',
"stroke": '#25b',
"stroke-width": 3,
"stroke-trail": '#ddd',
"stroke-trail-width": 1,
"bbox": "10 10 80 10"
},
fan: {
"type": 'stroke',
"path": 'M10 90A40 40 0 0 1 90 90',
"fill-dir": 'btt',
"fill": '#25b',
"fill-background": '#ddd',
"fill-background-extrude": 3,
"stroke-dir": 'normal',
"stroke": '#25b',
"stroke-width": '3',
"stroke-trail": '#ddd',
"stroke-trail-width": 0.5,
"bbox": "10 50 80 40"
},
circle: {
"type": 'stroke',
"path": 'M50 10A40 40 0 0 1 50 90A40 40 0 0 1 50 10',
"fill-dir": 'btt',
"fill": '#25b',
"fill-background": '#ddd',
"fill-background-extrude": 3,
"stroke-dir": 'normal',
"stroke": '#25b',
"stroke-width": '3',
"stroke-trail": '#ddd',
"stroke-trail-width": 0.5,
"bbox": "10 10 80 80"
},
bubble: {
"type": 'fill',
"path": 'M50 10A40 40 0 0 1 50 90A40 40 0 0 1 50 10',
"fill-dir": 'btt',
"fill": 'data:ldbar/res,bubble(#39d,#cef)',
"pattern-size": "150",
"fill-background": '#ddd',
"fill-background-extrude": 2,
"stroke-dir": 'normal',
"stroke": '#25b',
"stroke-width": '3',
"stroke-trail": '#ddd',
"stroke-trail-width": 0.5,
"bbox": "10 10 80 80"
}
};
},{}]},{},[1])
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCIvVXNlcnMvdGtpcmJ5L3dvcmtzcGFjZS96YnJ5aWt0L2xvYWRpbmcvcHJvamVjdHMvbGRCYXIvbG9hZGluZy1iYXIvc3JjL2xvYWRpbmctYmFyLmxzIiwiL1VzZXJzL3RraXJieS93b3Jrc3BhY2UvemJyeWlrdC9sb2FkaW5nL3Byb2plY3RzL2xkQmFyL2xvYWRpbmctYmFyL3NyYy9wcmVzZXRzLmxzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7QUNBdUIsT0FBSCxDQUFBLENBQUEsQ0FBQSxPQUFBLENBQUEsV0FBQSxDQUFBLENBQUc7QUFFdkIsU0FBVyxDQUFBLENBQUEsQ0FBRSxRQUFBLENBQUEsR0FBQTtTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUE7O0FBQy9CLElBQUssQ0FBQSxDQUFBLENBQUUsUUFBQSxDQUFBLE9BQUE7U0FBeUMsNEJBQUMsQ0FBQSxDQUFBLENBQUUsSUFBRixDQUFPLE9BQUQ7O0FBRXZELENBQUcsUUFBQSxDQUFBLENBQUgsQ0FBQTtBQUFBLE1BQUEsSUFBQSxFQUFBLE9BQUEsRUFBQSxLQUFBO0FBQUEsRUFDSSxJQUFLLENBQUEsQ0FBQSxDQUNELENBRlI7QUFBQSxJQUVRLElBRlIsRUFFYyxRQUFBLENBQUEsT0FBQSxDQUZkLENBQUE7QUFBQSxNQUFBLE1BQUEsQ0FFMkIsMEdBQUEsQ0FBQSxDQUFBLENBRThDLE9BQUEsQ0FBQSxDQUFBLENBQUEsS0FKekUsQ0FBQTtBQUFBLElBQUEsQ0FBQSxDQUFBO0FBQUEsSUFPUSxRQVBSLEVBT2tCLFFBQUEsQ0FBQSxHQUFBLEVBQUEsR0FBQSxDQVBsQixDQUFBO0FBQUEsVUFBQSxNQUFBLEVBQUEsR0FBQSxFQUFBLEdBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLENBQUEsRUFBQSxDQUFBLEVBQUEsRUFBQSxFQUFBLENBQUEsRUFBQSxHQUFBO0FBQUEsTUFPbUIsR0FQbkIsUUFBQSxDQUFBLEVB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O0lBQ0UsWUFBTztJQUNBLG1CQUFFO0lBQ00sMkJBQUU7SUFDckIsUUFBYztFQVBkO0VBUVYsTUFDVTtJQUFBLFFBQUU7SUFDSCxPQUEyTjtJQUN2TSwyQkFBRTtJQUNiLGdCQUFFO0lBQ04sWUFBTztJQUNQLFlBQVM7SUFDYixRQUFhO0VBTmI7RUFPVixNQUNVO0lBQUEsUUFBRTtJQUNGLFFBQUU7SUFDQSxVQUFFO0lBQ0ksZ0JBQUU7SUFDRixnQkFBRTtJQUNJLHNCQUFFO0lBQ2hCLFFBQWU7RUFOZjtFQU9WLEtBQ1U7SUFBQSxRQUFFO0lBQ0YsUUFBRTtJQUNFLFlBQUU7SUFDTixRQUFFO0lBQ1MsbUJBQUU7SUFDTSwyQkFBRTtJQUNmLGNBQUU7SUFDTixVQUFFO0lBQ0ksZ0JBQUU7SUFDRixnQkFBRTtJQUNJLHNCQUFFO0lBQ2hCLFFBQWU7RUFYZjtFQVlWLFFBQ1U7SUFBQSxRQUFFO0lBQ0YsUUFBRTtJQUNFLFlBQUU7SUFDTixRQUFFO0lBQ1MsbUJBQUU7SUFDTSwyQkFBRTtJQUNmLGNBQUU7SUFDTixVQUFFO0lBQ0ksZ0JBQUU7SUFDRixnQkFBRTtJQUNJLHNCQUFFO0lBQ2hCLFFBQWU7RUFYZjtFQVlWLFFBQ1U7SUFBQSxRQUFFO0lBQ0YsUUFBRTtJQUNFLFlBQUU7SUFDTixRQUFFO0lBQ00sZ0JBQU87SUFDSixtQkFBRTtJQUNNLDJCQUFFO0lBQ2YsY0FBRTtJQUNOLFVBQUU7SUFDSSxnQkFBRTtJQUNGLGdCQUFFO0lBQ0ksc0JBQUU7SUFDaEIsUUFBZTtFQVpmO0FBbEVWIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsInJlcXVpcmUhIFwiLi9wcmVzZXRzXCI6IHtwcmVzZXRzfVxuXG5zaW1wbGUtc3RyID0gKGFycikgLT4gYXJyLmpvaW4gJydcbndyYXAgPSAoY29udGVudCkgLT4gXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFwiICsgYnRvYShjb250ZW50KVxuXG5kbyAtPlxuICAgIG1ha2UgPVxuICAgICAgICBoZWFkOiAodmlld0JveCkgLT4gXCJcIlwiXG4gICAgICAgICAgICAgICAgPD94bWwgdmVyc2lvbj1cIjEuMFwiIGVuY29kaW5nPVwidXRmLThcIj8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiI3ZpZXdCb3hcIj5cbiAgICAgICAgICAgICAgICBcIlwiXCJcblxuICAgICAgICBncmFkaWVudDogKGRpciA9IDQ1LCBkdXIgPSAxLCAuLi5jb2xvcnMpIC0+XG4gICAgICAgICAgICByZXQgPSBbQGhlYWQgXCIwIDAgMTAwIDEwMFwiXVxuICAgICAgICAgICAgbGVuID0gY29sb3JzLmxlbmd0aCAqIDQgKyAxXG4gICAgICAgICAgICBkaXIgPSBkaXIgKiBNYXRoLlBJIC8gMTgwXG4gICAgICAgICAgICBneCA9IE1hdGguY29zKGRpcikgKiogMlxuICAgICAgICAgICAgZ3kgPSBNYXRoLnNxcnQoZ3ggLSBneCAqKiAyKVxuICAgICAgICAgICAgaWYgZGlyID4gTWF0aC5QSSAqIDAuMjUgPT5cbiAgICAgICAgICAgICAgICBneSA9IE1hdGguc2luKGRpcikgKiogMlxuICAgICAgICAgICAgICAgIGd4ID0gTWF0aC5zcXJ0KGd5IC0gZ3kgKiogMilcbiAgICAgICAgICAgIHggPSBneCAqIDEwMFxuICAgICAgICAgICAgeSA9IGd5ICogMTAwXG4gICAgICAgICAgICByZXQucHVzaCBcIlwiXCI8ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9XCJncmFkaWVudFwiIHgxPVwiMFwiIHgyPVwiI2d4XCIgeTE9XCIwXCIgeTI9XCIjZ3lcIj5cIlwiXCJcbiAgICAgICAgICAgIGZvciBpIGZyb20gMCB0aWwgbGVuID0+XG4gICAgICAgICAgICAgICAgaWR4ID0gaSAqIDEwMCAvIChsZW4gLSAxKVxuICAgICAgICAgICAgICAgIHJldC5wdXNoIFwiXCJcIjxzdG9wIG9mZnNldD1cIiN7aWR4fSVcIiBzdG9wLWNvbG9yPVwiI3tjb2xvcnNbaSAlIGNvbG9ycy5sZW5ndGhdfVwiLz5cIlwiXCJcbiAgICAgICAgICAgIHJldC5wdXNoIFwiXCJcIlxuICAgICAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPlxuICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwMFwiIGhlaWdodD1cIjQwMFwiIGZpbGw9XCJ1cmwoXFwjZ3JhZGllbnQpXCI+XG4gICAgICAgICAgICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT1cInRyYW5zZm9ybVwiIHR5cGU9XCJ0cmFuc2xhdGVcIiBmcm9tPVwiLSN4LC0jeVwiXG4gICAgICAgICAgICAgICAgdG89XCIwLDBcIiBkdXI9XCIje2R1cn1zXCIgcmVwZWF0Q291bnQ9XCJpbmRlZmluaXRlXCIvPjwvcmVjdD48L3N2Zz5cbiAgICAgICAgICAgICAgICBcIlwiXCJcbiAgICAgICAgICAgIHdyYXAgcmV0LmpvaW4oXCJcIilcblxuICAgICAgICBzdHJpcGU6IChjMT1cXCNiNGI0YjQsIGMyPVxcI2U2ZTZlNiwgZHVyID0gMSkgLT5cbiAgICAgICAgICAgIHJldCA9IFtAaGVhZCBcIjAgMCAxMDAgMTAwXCJdXG4gICAgICAgICAgICByZXQgKys9IFtcbiAgICAgICAgICAgICAgICBcIlwiXCI8cmVjdCBmaWxsPVwiI2MyXCIgd2lkdGg9XCIxMDBcIiBoZWlnaHQ9XCIxMDBcIi8+XCJcIlwiXG4gICAgICAgICAgICAgICAgXCJcIlwiPGc+PGc+XCJcIlwiXG4gICAgICAgICAgICAgICAgW1wiXCJcIjxwb2x5Z29uIGZpbGw9XCIjYzFcIiBcIlwiXCIgK1xuICAgICAgICAgICAgICAgICBcIlwiXCJwb2ludHM9XCIjey05MCArIGkgKiAyMH0sMTAwICN7LTEwMCArIGkgKiAyMH0sXCJcIlwiICtcbiAgICAgICAgICAgICAgICAgXCJcIlwiMTAwICN7LTYwICsgaSAqIDIwfSwwICN7LTUwICsgaSAqIDIwfSwwIFwiLz5cIlwiXCIgZm9yIGkgZnJvbSAwIHRpbCAxM10uam9pbihcIlwiKVxuICAgICAgICAgICAgICAgIFwiXCJcIjwvZz48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCIgdHlwZT1cInRyYW5zbGF0ZVwiIFwiXCJcIlxuICAgICAgICAgICAgICAgIFwiXCJcImZyb209XCIwLDBcIiB0bz1cIjIwLDBcIiBkdXI9XCIje2R1cn1zXCIgcmVwZWF0Q291bnQ9XCJpbmRlZmluaXRlXCIvPjwvZz48L3N2Zz5cIlwiXCJcbiAgICAgICAgICAgIF0uam9pbihcIlwiKVxuICAgICAgICAgICAgd3JhcCByZXRcblxuICAgICAgICBidWJibGU6IChjMSA9IFxcIzM5ZCwgYzIgPSBcXCM5Y2YsIGNvdW50ID0gMTUsIGR1ciA9IDEsIHNpemUgPSA2LCBzdz0xKSAtPlxuICAgICAgICAgICAgcmV0ID0gW0BoZWFkKFwiMCAwIDIwMCAyMDBcIiksIFwiXCJcIjxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjIwMFwiIGhlaWdodD1cIjIwMFwiIGZpbGw9XCIjYzFcIi8+XCJcIlwiXVxuICAgICAgICAgICAgZm9yIGkgZnJvbSAwIHRpbCBjb3VudCA9PlxuICAgICAgICAgICAgICAgIGlkeCA9IC0oaSAvIGNvdW50KSAqIGR1clxuICAgICAgICAgICAgICAgIHggPSBNYXRoLnJhbmRvbSEgKiAxODQgKyA4XG4gICAgICAgICAgICAgICAgciA9ICggTWF0aC5yYW5kb20hICogMC43ICsgMC4zICkgKiBzaXplXG4gICAgICAgICAgICAgICAgZCA9IGR1ciAqICgxICsgTWF0aC5yYW5kb20hICogMC41KVxuICAgICAgICAgICAgICAgIHJldC5wdXNoIFtcbiAgICAgICAgICAgICAgICAgICAgXCJcIlwiPGNpcmNsZSBjeD1cIiN4XCIgY3k9XCIwXCIgcj1cIiNyXCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCIjYzJcIiBzdHJva2Utd2lkdGg9XCIjc3dcIj5cIlwiXCJcbiAgICAgICAgICAgICAgICAgICAgXCJcIlwiPGFuaW1hdGUgYXR0cmlidXRlTmFtZT1cImN5XCIgdmFsdWVzPVwiMTkwOy0xMFwiIHRpbWVzPVwiMDsxXCIgXCJcIlwiXG4gICAgICAgICAgICAgICAgICAgIFwiXCJcImR1cj1cIiN7ZH1zXCIgYmVnaW49XCIje2lkeH1zXCIgcmVwZWF0Q291bnQ9XCJpbmRlZmluaXRlXCIvPlwiXCJcIlxuICAgICAgICAgICAgICAgICAgICBcIlwiXCI8L2NpcmNsZT5cIlwiXCJcbiAgICAgICAgICAgICAgICAgICAgXCJcIlwiPGNpcmNsZSBjeD1cIiN4XCIgY3k9XCIwXCIgcj1cIiNyXCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCIjYzJcIiBzdHJva2Utd2lkdGg9XCIjc3dcIj5cIlwiXCJcbiAgICAgICAgICAgICAgICAgICAgXCJcIlwiPGFuaW1hdGUgYXR0cmlidXRlTmFtZT1cImN5XCIgdmFsdWVzPVwiMzkwOzE5MFwiIHRpbWVzPVwiMDsxXCIgXCJcIlwiXG4gICAgICAgICAgICAgICAgICAgIFwiXCJcImR1cj1cIiN7ZH1zXCIgYmVnaW49XCIje2lkeH1zXCIgcmVwZWF0Q291bnQ9XCJpbmRlZmluaXRlXCIvPlwiXCJcIlxuICAgICAgICAgICAgICAgICAgICBcIlwiXCI8L2NpcmNsZT5cIlwiXCJcbiAgICAgICAgICAgICAgICBdLmpvaW4oXCJcIilcbiAgICAgICAgICAgIHdyYXAocmV0LmpvaW4oXCJcIikgKyBcIjwvc3ZnPlwiKVxuXG4gICAgaGFuZGxlciA9XG4gICAgICAgIHF1ZXVlOiB7fVxuICAgICAgICBydW5uaW5nOiBmYWxzZVxuICAgICAgICBtYWluOiAodGltZXN0YW1wKSAtPlxuICAgICAgICAgICAga2VlcG9uID0gZmFsc2VcbiAgICAgICAgICAgIHJlbW92ZWQgPSBbXVxuICAgICAgICAgICAgZm9yIGssZnVuYyBvZiBAcXVldWUgPT5cbiAgICAgICAgICAgICAgICByZXQgPSBmdW5jIHRpbWVzdGFtcFxuICAgICAgICAgICAgICAgIGlmICFyZXQgPT4gcmVtb3ZlZC5wdXNoIGZ1bmNcbiAgICAgICAgICAgICAgICBrZWVwb24gPSBrZWVwb24gb3IgcmV0XG4gICAgICAgICAgICBmb3IgayxmdW5jIG9mIEBxdWV1ZSA9PiBpZiByZW1vdmVkLmluZGV4T2YoZnVuYykgPj0gMCA9PiBkZWxldGUgQHF1ZXVlW2tdXG4gICAgICAgICAgICBpZiBrZWVwb24gPT4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lICh+PiBAbWFpbiBpdClcbiAgICAgICAgICAgIGVsc2UgQHJ1bm5pbmcgPSBmYWxzZVxuICAgICAgICBhZGQ6IChrZXksIGYpIC0+XG4gICAgICAgICAgICBpZiAhQHF1ZXVlW2tleV0gPT4gQHF1ZXVlW2tleV0gPSBmXG4gICAgICAgICAgICBpZiAhQHJ1bm5pbmcgPT5cbiAgICAgICAgICAgICAgICBAcnVubmluZyA9IHRydWVcbiAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgKH4+IEBtYWluIGl0KVxuXG5cbiAgICB3aW5kb3cubGRCYXIgPSBsZEJhciA9IChzZWxlY3Rvciwgb3B0aW9uID0ge30pIC0+XG4gICAgICAgIHhtbG5zID0geGxpbms6IFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiXG4gICAgICAgIHJvb3QgPSBpZiB0eXBlb2YhIHNlbGVjdG9yIGlzIFxcU3RyaW5nXG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yIHNlbGVjdG9yXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHNlbGVjdG9yXG5cbiAgICAgICAgaWYgIXJvb3QubGRCYXIgPT4gcm9vdC5sZEJhciA9IEBcbiAgICAgICAgZWxzZSByZXR1cm4gcm9vdC5sZEJhclxuXG4gICAgICAgIGNscyA9IHJvb3QuZ2V0QXR0cmlidXRlKFxcY2xhc3MpIG9yICcnXG4gICAgICAgIGlmICF+Y2xzLmluZGV4T2YoJ2xkQmFyJykgPT4gcm9vdC5zZXRBdHRyaWJ1dGUgXFxjbGFzcywgXCIjY2xzIGxkQmFyXCJcbiAgICAgICAgaWQtcHJlZml4ID0gXCJsZEJhci0je01hdGgucmFuZG9tIXRvU3RyaW5nIDE2IC5zdWJzdHJpbmcgMn1cIlxuICAgICAgICBpZCA9XG4gICAgICAgICAgICBrZXk6IGlkLXByZWZpeFxuICAgICAgICAgICAgY2xpcDogXCIje2lkLXByZWZpeH0tY2xpcFwiXG4gICAgICAgICAgICBmaWx0ZXI6IFwiI3tpZC1wcmVmaXh9LWZpbHRlclwiXG4gICAgICAgICAgICBwYXR0ZXJuOiBcIiN7aWQtcHJlZml4fS1wYXR0ZXJuXCJcbiAgICAgICAgICAgIG1hc2s6IFwiI3tpZC1wcmVmaXh9LW1hc2tcIlxuICAgICAgICAgICAgbWFzay1wYXRoOiBcIiN7aWQtcHJlZml4fS1tYXNrLXBhdGhcIlxuICAgICAgICBkb21UcmVlID0gKG4sbykgLT5cbiAgICAgICAgICAgIG4gPSBuZXdOb2RlIG5cbiAgICAgICAgICAgIGZvciBrLHYgb2YgbyA9PiBpZiBrICE9IFxcYXR0ciA9PiBuLmFwcGVuZENoaWxkIGRvbVRyZWUoaywgdiBvciB7fSlcbiAgICAgICAgICAgIG4uYXR0cnMoby5hdHRyIG9yIHt9KVxuICAgICAgICAgICAgblxuICAgICAgICBuZXdOb2RlID0gKG4pIC0+IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsIG5cbiAgICAgICAgZG9jdW1lbnQuYm9keS5fX3Byb3RvX18uX19wcm90b19fLl9fcHJvdG9fX1xuICAgICAgICAgICAgLi50ZXh0ID0gKHQpIC0+IEBhcHBlbmRDaGlsZCBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0KVxuICAgICAgICAgICAgLi5hdHRycyA9IChvKSAtPiBmb3Igayx2IG9mIG8gPT5cbiAgICAgICAgICAgICAgICByZXQgPSAvKFteOl0rKTooW146XSspLy5leGVjKGspXG4gICAgICAgICAgICAgICAgaWYgIXJldCBvciAheG1sbnNbcmV0LjFdID0+IEBzZXRBdHRyaWJ1dGUgaywgdlxuICAgICAgICAgICAgICAgIGVsc2UgQHNldEF0dHJpYnV0ZU5TIHhtbG5zW3JldC4xXSwgaywgdlxuICAgICAgICAgICAgLi5zdHlsZXMgPSAobykgLT4gZm9yIGssdiBvZiBvID0+IEBzdHlsZVtrXSA9IHZcbiAgICAgICAgICAgIC4uYXBwZW5kID0gKG4pIC0+IEBhcHBlbmRDaGlsZCByID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TIFwiaHR0cDovL3d3dy53My5vZy8yMDAwL3N2Z1wiLCBuXG4gICAgICAgICAgICAuLmF0dHIgPSAobix2KSAtPiBpZiB2PyA9PiBAc2V0QXR0cmlidXRlIG4sIHYgZWxzZSBAZ2V0QXR0cmlidXRlIG5cbiAgICAgICAgY29uZmlnID1cbiAgICAgICAgICAgIFwidHlwZVwiOiAnc3Ryb2tlJ1xuICAgICAgICAgICAgXCJpbWdcIjogJydcbiAgICAgICAgICAgIFwicGF0aFwiOiAnTTEwIDEwTDkwIDEwTTkwIDhNOTAgMTInXG4gICAgICAgICAgICBcImZpbGwtZGlyXCI6IFxcYnR0XG4gICAgICAgICAgICBcImZpbGxcIjogXFwjMjViXG4gICAgICAgICAgICBcImZpbGwtYmFja2dyb3VuZFwiOiBcXCNkZGRcbiAgICAgICAgICAgIFwiZmlsbC1iYWNrZ3JvdW5kLWV4dHJ1ZGVcIjogM1xuICAgICAgICAgICAgXCJwYXR0ZXJuLXNpemVcIjogbnVsbFxuICAgICAgICAgICAgXCJzdHJva2UtZGlyXCI6IFxcbm9ybWFsXG4gICAgICAgICAgICBcInN0cm9rZVwiOiBcXCMyNWJcbiAgICAgICAgICAgIFwic3Ryb2tlLXdpZHRoXCI6IFxcM1xuICAgICAgICAgICAgXCJzdHJva2UtdHJhaWxcIjogXFwjZGRkXG4gICAgICAgICAgICBcInN0cm9rZS10cmFpbC13aWR0aFwiOiAwLjVcbiAgICAgICAgICAgIFwiZHVyYXRpb25cIjogMVxuICAgICAgICAgICAgXCJlYXNpbmdcIjogXFxsaW5lYXJcbiAgICAgICAgICAgIFwidmFsdWVcIjogMFxuICAgICAgICAgICAgXCJpbWctc2l6ZVwiOiBudWxsXG4gICAgICAgICAgICBcImJib3hcIjogbnVsbFxuICAgICAgICAgICAgXCJzZXQtZGltXCI6IHRydWVcbiAgICAgICAgICAgIFwiYXNwZWN0LXJhdGlvXCI6IFwieE1pZFlNaWRcIlxuICAgICAgICAgICAgXCJtaW5cIjogMFxuICAgICAgICAgICAgXCJtYXhcIjogMTAwXG5cbiAgICAgICAgY29uZmlnW1wicHJlc2V0XCJdID0gcm9vdC5hdHRyKFwiZGF0YS1wcmVzZXRcIikgb3Igb3B0aW9uW1wicHJlc2V0XCJdXG5cbiAgICAgICAgaWYgY29uZmlnLnByZXNldD9cbiAgICAgICAgICAgICMgdXNlIHRoZSBkZWZhdWx0IHByZXNldFxuICAgICAgICAgICAgY29uZmlnIDw8PCBwcmVzZXRzW2NvbmZpZy5wcmVzZXRdXG5cbiAgICAgICAgIyBvdmVyd3JpdGUgaWYgdGhlcmUgYXJlIGFyZ3VtZW50cyBwYXNzZWQgdmlhIGRhdGEtKiBhdHRyaWJ1dGVzXG4gICAgICAgIGZvciBhdHRyIG9mIGNvbmZpZ1xuICAgICAgICAgICAgaWYgdGhhdCA9IHJvb3QuYXR0ciBcImRhdGEtI3thdHRyfVwiXG4gICAgICAgICAgICAgICAgY29uZmlnW2F0dHJdID0gdGhhdFxuXG4gICAgICAgIGNvbmZpZyA8PDwgb3B0aW9uXG4gICAgICAgIGlmIGNvbmZpZy5pbWcgPT4gY29uZmlnLnBhdGggPSBudWxsXG5cbiAgICAgICAgaXMtc3Ryb2tlID0gY29uZmlnLnR5cGUgPT0gXFxzdHJva2VcbiAgICAgICAgcGFyc2UtcmVzID0gKHYpIC0+XG4gICAgICAgICAgICBwYXJzZXIgPSAvZGF0YTpsZGJhclxcL3JlcywoW14oKV0rKVxcKChbXildKylcXCkvXG4gICAgICAgICAgICByZXQgPSBwYXJzZXIuZXhlYyh2KVxuICAgICAgICAgICAgaWYgIXJldCA9PiByZXR1cm4gdlxuICAgICAgICAgICAgcmV0ID0gbWFrZVtyZXQuMV0uYXBwbHkgbWFrZSwgcmV0LjIuc3BsaXQoXFwsKVxuICAgICAgICBjb25maWcuZmlsbCA9IHBhcnNlLXJlcyBjb25maWcuZmlsbFxuICAgICAgICBjb25maWcuc3Ryb2tlID0gcGFyc2UtcmVzIGNvbmZpZy5zdHJva2VcbiAgICAgICAgaWYgY29uZmlnW1wic2V0LWRpbVwiXSA9PSBcXGZhbHNlID0+IGNvbmZpZ1tcInNldC1kaW1cIl0gPSBmYWxzZVxuXG4gICAgICAgIGRvbSA9XG4gICAgICAgICAgICBhdHRyOlxuICAgICAgICAgICAgICAgIFwieG1sbnM6eGxpbmtcIjogXFxodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXG4gICAgICAgICAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbzogY29uZmlnW1wiYXNwZWN0LXJhdGlvXCJdXG4gICAgICAgICAgICAgICAgd2lkdGg6IFwiMTAwJVwiLCBoZWlnaHQ6IFwiMTAwJVwiXG4gICAgICAgICAgICBkZWZzOlxuICAgICAgICAgICAgICAgIGZpbHRlcjpcbiAgICAgICAgICAgICAgICAgICAgYXR0cjogaWQ6IGlkLmZpbHRlciwgeDogLTEsIHk6IC0xLCB3aWR0aDogMywgaGVpZ2h0OiAzXG4gICAgICAgICAgICAgICAgICAgIGZlTW9ycGhvbG9neTogYXR0cjpcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiAoaWYgK2NvbmZpZ1tcImZpbGwtYmFja2dyb3VuZC1leHRydWRlXCJdPj0wID0+IFxcZGlsYXRlIGVsc2UgXFxlcm9kZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJhZGl1czogTWF0aC5hYnMoK2NvbmZpZ1tcImZpbGwtYmFja2dyb3VuZC1leHRydWRlXCJdKVxuICAgICAgICAgICAgICAgICAgICBmZUNvbG9yTWF0cml4OiBhdHRyOiB7dmFsdWVzOiAnMCAwIDAgMCAxICAgIDAgMCAwIDAgMSAgICAwIDAgMCAwIDEgICAgMCAwIDAgMSAwJywgcmVzdWx0OiBcImNtXCJ9XG4gICAgICAgICAgICAgICAgbWFzazpcbiAgICAgICAgICAgICAgICAgICAgYXR0cjogaWQ6IGlkLm1hc2tcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IGF0dHI6XG4gICAgICAgICAgICAgICAgICAgICAgICBcInhsaW5rOmhyZWZcIjogY29uZmlnLmltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiBcInVybChcXCMje2lkLmZpbHRlcn0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IDAsIHk6IDAsIHdpZHRoOiAxMDAsIGhlaWdodDogMTAwLCBwcmVzZXJ2ZUFzcGVjdFJhdGlvOiBjb25maWdbXCJhc3BlY3QtcmF0aW9cIl1cblxuICAgICAgICAgICAgICAgIGc6XG4gICAgICAgICAgICAgICAgICAgIG1hc2s6XG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRyOiBpZDogaWQubWFzay1wYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBhdHRyOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ6IGNvbmZpZy5wYXRoIG9yIFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiBcXCNmZmZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U6IFxcI2ZmZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjogXCJ1cmwoXFwjI3tpZC5maWx0ZXJ9KVwiXG5cbiAgICAgICAgICAgICAgICBjbGlwUGF0aDpcbiAgICAgICAgICAgICAgICAgICAgYXR0cjogaWQ6IGlkLmNsaXBcbiAgICAgICAgICAgICAgICAgICAgcmVjdDoge2F0dHI6IGNsYXNzOiBcXG1hc2ssIGZpbGw6IFxcIzAwMH1cbiAgICAgICAgICAgICAgICBwYXR0ZXJuOlxuICAgICAgICAgICAgICAgICAgICBhdHRyOlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGlkLnBhdHRlcm4sIHBhdHRlcm5Vbml0czogXFx1c2VyU3BhY2VPblVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgeDowLCB5OiAwLCB3aWR0aDogMzAwLCBoZWlnaHQ6IDMwMFxuICAgICAgICAgICAgICAgICAgICBpbWFnZTogYXR0cjogeDogMCwgeTogMCwgd2lkdGg6IDMwMCwgaGVpZ2h0OiAzMDBcblxuICAgICAgICBzdmcgPSBkb21UcmVlIFxcc3ZnLCBkb21cbiAgICAgICAgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgXFxkaXZcbiAgICAgICAgdGV4dC5zZXRBdHRyaWJ1dGUgXFxjbGFzcywgXFxsZEJhci1sYWJlbFxuICAgICAgICByb290LmFwcGVuZENoaWxkIHN2Z1xuICAgICAgICByb290LmFwcGVuZENoaWxkIHRleHRcblxuICAgICAgICBncm91cCA9IFswLDBdXG4gICAgICAgIGxlbmd0aCA9IDBcblxuICAgICAgICBAZml0ID0gfj5cbiAgICAgICAgICAgIGlmIGNvbmZpZ1tcImJib3hcIl0gPT5cbiAgICAgICAgICAgICAgYm94ID0gdGhhdC5zcGxpdCgnICcpLm1hcCgtPisoaXQudHJpbSEpKVxuICAgICAgICAgICAgICBib3ggPSB7eDogYm94LjAsIHk6IGJveC4xLCB3aWR0aDogYm94LjIsIGhlaWdodDogYm94LjN9XG4gICAgICAgICAgICBlbHNlIGJveCA9IGdyb3VwLjEuZ2V0QkJveCFcbiAgICAgICAgICAgIGlmICFib3ggb3IgYm94LndpZHRoID09IDAgb3IgYm94LmhlaWdodCA9PSAwID0+IGJveCA9IHt4OiAwLCB5OiAwLCB3aWR0aDogMTAwLCBoZWlnaHQ6IDEwMH1cbiAgICAgICAgICAgIGQgPSAoTWF0aC5tYXguYXBwbHkoXG4gICAgICAgICAgICAgIG51bGwsIDxbc3Ryb2tlLXdpZHRoIHN0cm9rZS10cmFpbC13aWR0aCBmaWxsLWJhY2tncm91bmQtZXh0cnVkZV0+Lm1hcCgtPmNvbmZpZ1tpdF0pKVxuICAgICAgICAgICAgKSAqIDEuNVxuXG4gICAgICAgICAgICBzdmcuYXR0cnMgdmlld0JveDogW2JveC54IC0gZCwgYm94LnkgLSBkLCBib3gud2lkdGggKyBkICogMiwgYm94LmhlaWdodCArIGQgKiAyXS5qb2luKFwiIFwiKVxuICAgICAgICAgICAgaWYgY29uZmlnW1wic2V0LWRpbVwiXSA9PiA8W3dpZHRoIGhlaWdodF0+Lm1hcCB+PiBpZiAhcm9vdC5zdHlsZVtpdF0gb3IgQGZpdFtpdF0gPT5cbiAgICAgICAgICAgICAgcm9vdC5zdHlsZVtpdF0gPSBcIiN7Ym94W2l0XSArIGQgKiAyfXB4XCJcbiAgICAgICAgICAgICAgQGZpdFtpdF0gPSB0cnVlXG5cbiAgICAgICAgICAgIHJlY3QgPSBncm91cC4wLnF1ZXJ5U2VsZWN0b3IgXFxyZWN0XG4gICAgICAgICAgICBpZiByZWN0ID0+IHJlY3QuYXR0cnMgZG9cbiAgICAgICAgICAgICAgICB4OiBib3gueCAtIGQsIHk6IGJveC55IC0gZCwgd2lkdGg6IGJveC53aWR0aCArIGQgKiAyLCBoZWlnaHQ6IGJveC5oZWlnaHQgKyBkICogMlxuXG4gICAgICAgIGlmIGNvbmZpZy5wYXRoID0+XG4gICAgICAgICAgICBpZiBpcy1zdHJva2UgPT5cbiAgICAgICAgICAgICAgICBncm91cC4wID0gZG9tVHJlZSBcXGcsIHBhdGg6IGF0dHI6XG4gICAgICAgICAgICAgICAgICAgIGQ6IGNvbmZpZy5wYXRoXG4gICAgICAgICAgICAgICAgICAgIGZpbGw6IFxcbm9uZVxuICAgICAgICAgICAgICAgICAgICBjbGFzczogXFxiYXNlbGluZVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGdyb3VwLjAgPSBkb21UcmVlIFxcZywgcmVjdDogYXR0cjpcbiAgICAgICAgICAgICAgICAgICAgeDogMCwgeTogMCwgd2lkdGg6IDEwMCwgaGVpZ2h0OiAxMDBcbiAgICAgICAgICAgICAgICAgICAgbWFzazogXCJ1cmwoXFwjI3tpZC5tYXNrLXBhdGh9KVwiLCBmaWxsOiBjb25maWdbXCJmaWxsLWJhY2tncm91bmRcIl1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFxcZnJhbWVcblxuICAgICAgICAgICAgc3ZnLmFwcGVuZENoaWxkIGdyb3VwLjBcbiAgICAgICAgICAgIGdyb3VwLjEgPSBkb21UcmVlIFxcZywgcGF0aDogYXR0cjpcbiAgICAgICAgICAgICAgICBkOiBjb25maWcucGF0aCwgY2xhc3M6IGlmIGlzLXN0cm9rZSA9PiBcXG1haW5saW5lIGVsc2UgXFxzb2xpZFxuICAgICAgICAgICAgICAgIFwiY2xpcC1wYXRoXCI6IGlmIGNvbmZpZy50eXBlID09IFxcZmlsbCA9PiBcInVybChcXCMje2lkLmNsaXB9KVwiIGVsc2UgJydcbiAgICAgICAgICAgIHN2Zy5hcHBlbmRDaGlsZCBncm91cC4xXG4gICAgICAgICAgICBwYXRoMCA9IGdyb3VwLjAucXVlcnlTZWxlY3RvciAoaWYgaXMtc3Ryb2tlID0+IFxccGF0aCBlbHNlIFxccmVjdClcbiAgICAgICAgICAgIHBhdGgxID0gZ3JvdXAuMS5xdWVyeVNlbGVjdG9yIFxccGF0aFxuICAgICAgICAgICAgaWYgaXMtc3Ryb2tlID0+IHBhdGgxLmF0dHJzIGZpbGw6IFxcbm9uZVxuXG4gICAgICAgICAgICBwYXRpbWcgPSBzdmcucXVlcnlTZWxlY3RvciAncGF0dGVybiBpbWFnZSdcbiAgICAgICAgICAgIGltZyA9IG5ldyBJbWFnZSFcbiAgICAgICAgICAgIGltZy5hZGRFdmVudExpc3RlbmVyIFxcbG9hZCwgLT5cbiAgICAgICAgICAgICAgICBib3ggPSBpZiBjb25maWdbXCJwYXR0ZXJuLXNpemVcIl0gPT4ge3dpZHRoOiArdGhhdCwgaGVpZ2h0OiArdGhhdH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIGltZy53aWR0aCBhbmQgaW1nLmhlaWdodCA9PiB7d2lkdGg6IGltZy53aWR0aCwgaGVpZ2h0OiBpbWcuaGVpZ2h0fVxuICAgICAgICAgICAgICAgIGVsc2Uge3dpZHRoOiAzMDAsIGhlaWdodDogMzAwfVxuICAgICAgICAgICAgICAgIHN2Zy5xdWVyeVNlbGVjdG9yIFxccGF0dGVybiAuYXR0cnMge3dpZHRoOiBib3gud2lkdGgsIGhlaWdodDogYm94LmhlaWdodH1cbiAgICAgICAgICAgICAgICBwYXRpbWcuYXR0cnMge3dpZHRoOiBib3gud2lkdGgsIGhlaWdodDogYm94LmhlaWdodH1cbiAgICAgICAgICAgIGlmIC8uK1xcLi4rfF5kYXRhOi8uZXhlYyhpZiAhaXMtc3Ryb2tlID0+IGNvbmZpZy5maWxsIGVsc2UgY29uZmlnLnN0cm9rZSkgPT5cbiAgICAgICAgICAgICAgICBpbWcuc3JjID0gaWYgIWlzLXN0cm9rZSA9PiBjb25maWcuZmlsbCBlbHNlIGNvbmZpZy5zdHJva2VcbiAgICAgICAgICAgICAgICBwYXRpbWcuYXR0cnMgXCJ4bGluazpocmVmXCI6IGltZy5zcmMgI2lmICFpcy1zdHJva2UgPT4gY29uZmlnLmZpbGwgZWxzZSBjb25maWcuc3Ryb2tlXG5cbiAgICAgICAgICAgIGlmIGlzLXN0cm9rZSA9PlxuICAgICAgICAgICAgICAgIHBhdGgwLmF0dHJzIHN0cm9rZTogY29uZmlnW1wic3Ryb2tlLXRyYWlsXCJdLCBcInN0cm9rZS13aWR0aFwiOiBjb25maWdbXCJzdHJva2UtdHJhaWwtd2lkdGhcIl1cbiAgICAgICAgICAgICAgICBwYXRoMS5hdHRycyBkb1xuICAgICAgICAgICAgICAgICAgICBcInN0cm9rZS13aWR0aFwiOiBjb25maWdbXCJzdHJva2Utd2lkdGhcIl1cbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiBpZiAvLitcXC4uK3xeZGF0YTovLmV4ZWMoY29uZmlnLnN0cm9rZSkgPT4gXCJ1cmwoXFwjI3tpZC5wYXR0ZXJufSlcIiBlbHNlIGNvbmZpZy5zdHJva2VcbiAgICAgICAgICAgIGlmIGNvbmZpZy5maWxsIGFuZCAhaXMtc3Ryb2tlID0+XG4gICAgICAgICAgICAgICAgcGF0aDEuYXR0cnMgZG9cbiAgICAgICAgICAgICAgICAgICAgZmlsbDogaWYgLy4rXFwuLit8XmRhdGE6Ly5leGVjKGNvbmZpZy5maWxsKSA9PiBcInVybChcXCMje2lkLnBhdHRlcm59KVwiIGVsc2UgY29uZmlnLmZpbGxcblxuICAgICAgICAgICAgbGVuZ3RoID0gcGF0aDEuZ2V0VG90YWxMZW5ndGghXG4gICAgICAgICAgICBAZml0IVxuICAgICAgICAgICAgQGluaXRlZCA9IHRydWVcbiAgICAgICAgZWxzZSBpZiBjb25maWcuaW1nID0+XG4gICAgICAgICAgICBpZiBjb25maWdbXCJpbWctc2l6ZVwiXSA9PlxuICAgICAgICAgICAgICAgIHJldCA9IGNvbmZpZ1tcImltZy1zaXplXCJdLnNwbGl0KFxcLClcbiAgICAgICAgICAgICAgICBzaXplID0ge3dpZHRoOiArcmV0LjAsIGhlaWdodDogK3JldC4xfVxuICAgICAgICAgICAgZWxzZSBzaXplID0ge3dpZHRoOiAxMDAsIGhlaWdodDogMTAwfVxuXG4gICAgICAgICAgICBncm91cC4wID0gZG9tVHJlZSBcXGcsIHJlY3Q6IGF0dHI6XG4gICAgICAgICAgICAgICAgeDogMCwgeTogMCwgd2lkdGg6IDEwMCwgaGVpZ2h0OiAxMDAsIG1hc2s6IFwidXJsKFxcIyN7aWQubWFza30pXCIsIGZpbGw6IGNvbmZpZ1tcImZpbGwtYmFja2dyb3VuZFwiXVxuICAgICAgICAgICAgc3ZnLnF1ZXJ5U2VsZWN0b3IgJ21hc2sgaW1hZ2UnIC5hdHRycyBkb1xuICAgICAgICAgICAgICAgIHdpZHRoOiBzaXplLndpZHRoLCBoZWlnaHQ6IHNpemUuaGVpZ2h0XG4gICAgICAgICAgICBncm91cC4xID0gZG9tVHJlZSBcXGcsIGltYWdlOiBhdHRyOlxuICAgICAgICAgICAgICAgIHdpZHRoOiBzaXplLndpZHRoLCBoZWlnaHQ6IHNpemUuaGVpZ2h0LCB4OiAwLCB5OiAwLCBwcmVzZXJ2ZUFzcGVjdFJhdGlvOiBjb25maWdbXCJhc3BlY3QtcmF0aW9cIl1cbiAgICAgICAgICAgICAgICAjd2lkdGg6IDEwMCwgaGVpZ2h0OiAxMDAsIHg6IDAsIHk6IDAsIHByZXNlcnZlQXNwZWN0UmF0aW86IFwieE1pZFlNaWRcIlxuICAgICAgICAgICAgICAgIFwiY2xpcC1wYXRoXCI6IGlmIGNvbmZpZy50eXBlID09IFxcZmlsbCA9PiBcInVybChcXCMje2lkLmNsaXB9KVwiIGVsc2UgJydcbiAgICAgICAgICAgICAgICBcInhsaW5rOmhyZWZcIjogY29uZmlnLmltZywgY2xhc3M6IFxcc29saWRcbiAgICAgICAgICAgIGltZyA9IG5ldyBJbWFnZSFcbiAgICAgICAgICAgIGltZy5hZGRFdmVudExpc3RlbmVyIFxcbG9hZCwgfj5cbiAgICAgICAgICAgICAgICBpZiBjb25maWdbXCJpbWctc2l6ZVwiXSA9PlxuICAgICAgICAgICAgICAgICAgICByZXQgPSBjb25maWdbXCJpbWctc2l6ZVwiXS5zcGxpdChcXCwpXG4gICAgICAgICAgICAgICAgICAgIHNpemUgPSB7d2lkdGg6ICtyZXQuMCwgaGVpZ2h0OiArcmV0LjF9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiBpbWcud2lkdGggYW5kIGltZy5oZWlnaHQgPT4gc2l6ZSA9IHt3aWR0aDogaW1nLndpZHRoLCBoZWlnaHQ6IGltZy5oZWlnaHR9XG4gICAgICAgICAgICAgICAgZWxzZSBzaXplID0ge3dpZHRoOiAxMDAsIGhlaWdodDogMTAwfVxuICAgICAgICAgICAgICAgIHN2Zy5xdWVyeVNlbGVjdG9yICdtYXNrIGltYWdlJyAuYXR0cnMgZG9cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHNpemUud2lkdGgsIGhlaWdodDogc2l6ZS5oZWlnaHRcbiAgICAgICAgICAgICAgICBncm91cC4xLnF1ZXJ5U2VsZWN0b3IgJ2ltYWdlJyAuYXR0cnMgZG9cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHNpemUud2lkdGgsIGhlaWdodDogc2l6ZS5oZWlnaHRcblxuICAgICAgICAgICAgICAgIEBmaXQhXG4gICAgICAgICAgICAgICAgQHNldCB1bmRlZmluZWQsIGZhbHNlXG4gICAgICAgICAgICAgICAgQGluaXRlZCA9IHRydWVcbiAgICAgICAgICAgIGltZy5zcmMgPSBjb25maWcuaW1nXG4gICAgICAgICAgICBzdmcuYXBwZW5kQ2hpbGQgZ3JvdXAuMFxuICAgICAgICAgICAgc3ZnLmFwcGVuZENoaWxkIGdyb3VwLjFcbiAgICAgICAgc3ZnLmF0dHJzIHdpZHRoOiBcXDEwMCUsIGhlaWdodDogXFwxMDAlICMsIHZpZXdCb3g6ICcwIDAgMTAwIDEwMCdcblxuICAgICAgICBAdHJhbnNpdGlvbiA9XG4gICAgICAgICAgICB2YWx1ZTpcbiAgICAgICAgICAgICAgICBzcmM6IDBcbiAgICAgICAgICAgICAgICBkZXM6IDBcbiAgICAgICAgICAgIHRpbWU6IHt9XG5cbiAgICAgICAgICAgIGVhc2U6ICh0LGIsYyxkKSAtPlxuICAgICAgICAgICAgICAgIHQgPSB0IC8gKGQgKiAwLjUpXG4gICAgICAgICAgICAgICAgaWYgdCA8IDEgPT4gcmV0dXJuIGMgKiAwLjUgKiB0ICogdCArIGJcbiAgICAgICAgICAgICAgICB0ID0gdCAtIDFcbiAgICAgICAgICAgICAgICByZXR1cm4gLWMgKiAwLjUgKiAodCoodCAtIDIpIC0gMSkgKyBiXG5cbiAgICAgICAgICAgIGhhbmRsZXI6ICh0aW1lLCBkb1RyYW5zaXRpb24gPSB0cnVlKSAtPlxuICAgICAgICAgICAgICAgIGlmICFAdGltZS5zcmM/ID0+IEB0aW1lLnNyYyA9IHRpbWVcbiAgICAgICAgICAgICAgICBbbWluLG1heF0gPSBbY29uZmlnW1wibWluXCJdLCBjb25maWdbXCJtYXhcIl1dXG4gICAgICAgICAgICAgICAgW2R2LCBkdCwgZHVyXSA9IFtAdmFsdWUuZGVzIC0gQHZhbHVlLnNyYywgKHRpbWUgLSBAdGltZS5zcmMpICogMC4wMDEsICtjb25maWdbXCJkdXJhdGlvblwiXSBvciAxXVxuICAgICAgICAgICAgICAgIHYgPSBpZiBkb1RyYW5zaXRpb24gPT4gTWF0aC5yb3VuZChAZWFzZSBkdCwgQHZhbHVlLnNyYywgZHYsIGR1cikgZWxzZSBAdmFsdWUuZGVzXG4gICAgICAgICAgICAgICAgdiA+Pz0gbWluXG4gICAgICAgICAgICAgICAgdiA8Pz0gbWF4XG4gICAgICAgICAgICAgICAgdGV4dC50ZXh0Q29udGVudCA9IHZcbiAgICAgICAgICAgICAgICBwID0gMTAwLjAgKiAodiAtIG1pbiApIC8gKCBtYXggLSBtaW4gKVxuICAgICAgICAgICAgICAgIGlmIGlzLXN0cm9rZSA9PlxuICAgICAgICAgICAgICAgICAgICBub2RlID0gcGF0aDFcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzdHJva2UtZGFzaGFycmF5XCI6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBjb25maWdbXCJzdHJva2UtZGlyXCJdID09IFxccmV2ZXJzZSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjAgI3tsZW5ndGggKiAoMTAwIC0gcCkgKiAwLjAxfSAje2xlbmd0aCAqIHAgKiAwLjAxfSAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlID0+IFwiI3twICogMC4wMSAqIGxlbmd0aH0gI3soMTAwIC0gcCkgKiAwLjAxICogbGVuZ3RoICsgMX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgYm94ID0gZ3JvdXAuMS5nZXRCQm94IVxuICAgICAgICAgICAgICAgICAgICBkaXIgPSBjb25maWdbXCJmaWxsLWRpclwiXVxuICAgICAgICAgICAgICAgICAgICBzdHlsZSA9IGlmIGRpciA9PSBcXGJ0dCBvciAhZGlyID0+IGRvXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiBib3gueSArIGJveC5oZWlnaHQgKiAoMTAwIC0gcCkgKiAwLjAxXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGJveC5oZWlnaHQgKiBwICogMC4wMVxuICAgICAgICAgICAgICAgICAgICAgICAgeDogYm94LngsIHdpZHRoOiBib3gud2lkdGhcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiBkaXIgPT0gXFx0dGIgPT4gZG9cbiAgICAgICAgICAgICAgICAgICAgICAgIHk6IGJveC55LCBoZWlnaHQ6IGJveC5oZWlnaHQgKiBwICogMC4wMVxuICAgICAgICAgICAgICAgICAgICAgICAgeDogYm94LngsIHdpZHRoOiBib3gud2lkdGhcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiBkaXIgPT0gXFxsdHIgPT4gZG9cbiAgICAgICAgICAgICAgICAgICAgICAgIHk6IGJveC55LCBoZWlnaHQ6IGJveC5oZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IGJveC54LCB3aWR0aDogYm94LndpZHRoICogcCAqIDAuMDFcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiBkaXIgPT0gXFxydGwgPT4gZG9cbiAgICAgICAgICAgICAgICAgICAgICAgIHk6IGJveC55LCBoZWlnaHQ6IGJveC5oZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IGJveC54ICsgYm94LndpZHRoICogKDEwMCAtIHApICogMC4wMVxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGJveC53aWR0aCAqIHAgKiAwLjAxXG4gICAgICAgICAgICAgICAgICAgIG5vZGUgPSBzdmcucXVlcnlTZWxlY3RvciBcXHJlY3RcbiAgICAgICAgICAgICAgICBub2RlLmF0dHJzIHN0eWxlXG4gICAgICAgICAgICAgICAgaWYgZHQgPj0gZHVyID0+IGRlbGV0ZSBAdGltZS5zcmM7IHJldHVybiBmYWxzZVxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgICBzdGFydDogKHNyYywgZGVzLCBkb1RyYW5zaXRpb24pIC0+XG4gICAgICAgICAgICAgICAgQHZhbHVlIDw8PCB7c3JjLCBkZXN9XG4gICAgICAgICAgICAgICAgISEoIHJvb3Qub2Zmc2V0V2lkdGggfHwgcm9vdC5vZmZzZXRIZWlnaHQgfHwgcm9vdC5nZXRDbGllbnRSZWN0cyFsZW5ndGggKVxuICAgICAgICAgICAgICAgIGlmICFkb1RyYW5zaXRpb24gb3IgISggcm9vdC5vZmZzZXRXaWR0aCB8fCByb290Lm9mZnNldEhlaWdodCB8fCByb290LmdldENsaWVudFJlY3RzIWxlbmd0aCApID0+XG4gICAgICAgICAgICAgICAgICAgIEB0aW1lLnNyYyA9IDBcbiAgICAgICAgICAgICAgICAgICAgQGhhbmRsZXIgMTAwMCwgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgICAgaGFuZGxlci5hZGQgaWQua2V5LCAodGltZSkgfj4gcmV0dXJuIEBoYW5kbGVyIHRpbWVcblxuICAgICAgICBAc2V0ID0gKHYsZG9UcmFuc2l0aW9uID0gdHJ1ZSkgLT5cbiAgICAgICAgICAgIHNyYyA9IEB2YWx1ZSBvciAwXG4gICAgICAgICAgICBpZiB2PyA9PiBAdmFsdWUgPSB2IGVsc2UgdiA9IEB2YWx1ZVxuICAgICAgICAgICAgZGVzID0gQHZhbHVlXG4gICAgICAgICAgICBAdHJhbnNpdGlvbi5zdGFydCBzcmMsIGRlcywgZG9UcmFuc2l0aW9uXG5cbiAgICAgICAgQHNldCAoK2NvbmZpZy52YWx1ZSBvciAwKSwgZmFsc2VcbiAgICAgICAgQFxuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgXFxsb2FkLCAoLT5cbiAgICAgICAgZm9yIG5vZGUgaW4gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcXC5sZEJhcikgPT5cbiAgICAgICAgICBpZiAhbm9kZS5sZEJhciA9PiBub2RlLmxkQmFyID0gbmV3IGxkQmFyIG5vZGVcbiAgICApLCBmYWxzZVxuXG5tb2R1bGUuZXhwb3J0cyA9IGxkQmFyXG4iLCJleHBvcnQgcHJlc2V0cyA9XG4gICAgcmFpbmJvdzpcbiAgICAgICAgXCJ0eXBlXCI6ICdzdHJva2UnXG4gICAgICAgIFwicGF0aFwiOiAnTTEwIDEwTDkwIDEwJ1xuICAgICAgICBcInN0cm9rZVwiOiAnZGF0YTpsZGJhci9yZXMsZ3JhZGllbnQoMCwxLCNhNTUxZGYsI2ZkNTFhZCwjZmY3ZjgyLCNmZmI4NzQsI2ZmZWI5MCknXG4gICAgICAgIFwiYmJveFwiOiBcIjEwIDEwIDgwIDEwXCJcbiAgICBlbmVyZ3k6XG4gICAgICAgIFwidHlwZVwiOiAnZmlsbCdcbiAgICAgICAgXCJwYXRoXCI6ICdNMTUgNUw4NSA1QTUgNSAwIDAgMSA4NSAxNUwxNSAxNUE1IDUgMCAwIDEgMTUgNSdcbiAgICAgICAgXCJzdHJva2VcIjogXFwjZjAwXG4gICAgICAgIFwiZmlsbFwiOiAnZGF0YTpsZGJhci9yZXMsZ3JhZGllbnQoNDUsMiwjNGU5LCM4ZmIsIzRlOSknXG4gICAgICAgIFwiZmlsbC1kaXJcIjogXCJsdHJcIlxuICAgICAgICBcImZpbGwtYmFja2dyb3VuZFwiOiBcXCM0NDRcbiAgICAgICAgXCJmaWxsLWJhY2tncm91bmQtZXh0cnVkZVwiOiAxXG4gICAgICAgIFwiYmJveFwiOiBcIjEwIDUgODAgMTBcIlxuICAgIHN0cmlwZTpcbiAgICAgICAgXCJ0eXBlXCI6ICdmaWxsJ1xuICAgICAgICBcInBhdGhcIjogJ00xNSA1TDg1IDVBNSA1IDAgMCAxIDg1IDE1TDE1IDE1QTUgNSAwIDAgMSAxNSA1J1xuICAgICAgICBcInN0cm9rZVwiOiBcXCNmMDBcbiAgICAgICAgXCJmaWxsXCI6ICdkYXRhOmxkYmFyL3JlcyxzdHJpcGUoIzI1YiwjNThlLDEpJ1xuICAgICAgICBcImZpbGwtZGlyXCI6IFwibHRyXCJcbiAgICAgICAgXCJmaWxsLWJhY2tncm91bmRcIjogXFwjZGRkXG4gICAgICAgIFwiZmlsbC1iYWNrZ3JvdW5kLWV4dHJ1ZGVcIjogMVxuICAgICAgICBcImJib3hcIjogXCIxMCA1IDgwIDEwXCJcbiAgICB0ZXh0OlxuICAgICAgICBcInR5cGVcIjogJ2ZpbGwnXG4gICAgICAgIFwiaW1nXCI6IFwiXCJcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjcwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDcwIDIwXCI+PHRleHQgeD1cIjM1XCIgeT1cIjEwXCIgdGV4dC1hbmNob3I9XCJtaWRkbGVcIiBkb21pbmFudC1iYXNlbGluZT1cImNlbnRyYWxcIiBmb250LWZhbWlseT1cImFyaWFsXCI+TE9BRElORzwvdGV4dD48L3N2Zz5cIlwiXCJcbiAgICAgICAgXCJmaWxsLWJhY2tncm91bmQtZXh0cnVkZVwiOiAxLjNcbiAgICAgICAgXCJwYXR0ZXJuLXNpemVcIjogMTAwXG4gICAgICAgIFwiZmlsbC1kaXJcIjogXCJsdHJcIlxuICAgICAgICBcImltZy1zaXplXCI6IFwiNzAsMjBcIlxuICAgICAgICBcImJib3hcIjogXCIwIDAgNzAgMjBcIlxuICAgIGxpbmU6XG4gICAgICAgIFwidHlwZVwiOiAnc3Ryb2tlJ1xuICAgICAgICBcInBhdGhcIjogJ00xMCAxMEw5MCAxMCdcbiAgICAgICAgXCJzdHJva2VcIjogXFwjMjViXG4gICAgICAgIFwic3Ryb2tlLXdpZHRoXCI6IDNcbiAgICAgICAgXCJzdHJva2UtdHJhaWxcIjogXFwjZGRkXG4gICAgICAgIFwic3Ryb2tlLXRyYWlsLXdpZHRoXCI6IDFcbiAgICAgICAgXCJiYm94XCI6IFwiMTAgMTAgODAgMTBcIlxuICAgIGZhbjpcbiAgICAgICAgXCJ0eXBlXCI6ICdzdHJva2UnXG4gICAgICAgIFwicGF0aFwiOiAnTTEwIDkwQTQwIDQwIDAgMCAxIDkwIDkwJ1xuICAgICAgICBcImZpbGwtZGlyXCI6IFxcYnR0XG4gICAgICAgIFwiZmlsbFwiOiBcXCMyNWJcbiAgICAgICAgXCJmaWxsLWJhY2tncm91bmRcIjogXFwjZGRkXG4gICAgICAgIFwiZmlsbC1iYWNrZ3JvdW5kLWV4dHJ1ZGVcIjogM1xuICAgICAgICBcInN0cm9rZS1kaXJcIjogXFxub3JtYWxcbiAgICAgICAgXCJzdHJva2VcIjogXFwjMjViXG4gICAgICAgIFwic3Ryb2tlLXdpZHRoXCI6IFxcM1xuICAgICAgICBcInN0cm9rZS10cmFpbFwiOiBcXCNkZGRcbiAgICAgICAgXCJzdHJva2UtdHJhaWwtd2lkdGhcIjogMC41XG4gICAgICAgIFwiYmJveFwiOiBcIjEwIDUwIDgwIDQwXCJcbiAgICBjaXJjbGU6XG4gICAgICAgIFwidHlwZVwiOiAnc3Ryb2tlJ1xuICAgICAgICBcInBhdGhcIjogJ001MCAxMEE0MCA0MCAwIDAgMSA1MCA5MEE0MCA0MCAwIDAgMSA1MCAxMCdcbiAgICAgICAgXCJmaWxsLWRpclwiOiBcXGJ0dFxuICAgICAgICBcImZpbGxcIjogXFwjMjViXG4gICAgICAgIFwiZmlsbC1iYWNrZ3JvdW5kXCI6IFxcI2RkZFxuICAgICAgICBcImZpbGwtYmFja2dyb3VuZC1leHRydWRlXCI6IDNcbiAgICAgICAgXCJzdHJva2UtZGlyXCI6IFxcbm9ybWFsXG4gICAgICAgIFwic3Ryb2tlXCI6IFxcIzI1YlxuICAgICAgICBcInN0cm9rZS13aWR0aFwiOiBcXDNcbiAgICAgICAgXCJzdHJva2UtdHJhaWxcIjogXFwjZGRkXG4gICAgICAgIFwic3Ryb2tlLXRyYWlsLXdpZHRoXCI6IDAuNVxuICAgICAgICBcImJib3hcIjogXCIxMCAxMCA4MCA4MFwiXG4gICAgYnViYmxlOlxuICAgICAgICBcInR5cGVcIjogJ2ZpbGwnXG4gICAgICAgIFwicGF0aFwiOiAnTTUwIDEwQTQwIDQwIDAgMCAxIDUwIDkwQTQwIDQwIDAgMCAxIDUwIDEwJ1xuICAgICAgICBcImZpbGwtZGlyXCI6IFxcYnR0XG4gICAgICAgIFwiZmlsbFwiOiAnZGF0YTpsZGJhci9yZXMsYnViYmxlKCMzOWQsI2NlZiknXG4gICAgICAgIFwicGF0dGVybi1zaXplXCI6IFwiMTUwXCJcbiAgICAgICAgXCJmaWxsLWJhY2tncm91bmRcIjogXFwjZGRkXG4gICAgICAgIFwiZmlsbC1iYWNrZ3JvdW5kLWV4dHJ1ZGVcIjogMlxuICAgICAgICBcInN0cm9rZS1kaXJcIjogXFxub3JtYWxcbiAgICAgICAgXCJzdHJva2VcIjogXFwjMjViXG4gICAgICAgIFwic3Ryb2tlLXdpZHRoXCI6IFxcM1xuICAgICAgICBcInN0cm9rZS10cmFpbFwiOiBcXCNkZGRcbiAgICAgICAgXCJzdHJva2UtdHJhaWwtd2lkdGhcIjogMC41XG4gICAgICAgIFwiYmJveFwiOiBcIjEwIDEwIDgwIDgwXCJcbiJdfQ==