@dashkite/joy
Version:
*The simplicity of Lodash with the functional flair of Rambda.*
284 lines (283 loc) • 32 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: Object.getOwnPropertyDescriptor(all, name).get
});
}
_export(exports, {
get camelCase () {
return camelCase;
},
get capitalize () {
return capitalize;
},
get collapse () {
return collapse;
},
get dash () {
return dash;
},
get dashed () {
return dashed;
},
get dashes () {
return dashes;
},
get dquote () {
return dquote;
},
get elide () {
return elide;
},
get enclose () {
return enclose;
},
get endsWith () {
return endsWith;
},
get fromBase () {
return fromBase;
},
get gloss () {
return gloss;
},
get hyphenate () {
return hyphenate;
},
get interpolate () {
return interpolate;
},
get isBlank () {
return isBlank;
},
get isMatch () {
return isMatch;
},
get match () {
return match;
},
get normalize () {
return normalize;
},
get pad () {
return pad;
},
get padEnd () {
return padEnd;
},
get padStart () {
return padStart;
},
get parseNumber () {
return parseNumber;
},
get quote () {
return quote;
},
get repeat () {
return repeat;
},
get replace () {
return replace;
},
get snakeCase () {
return snakeCase;
},
get split () {
return split;
},
get squote () {
return squote;
},
get startsWith () {
return startsWith;
},
get titleCase () {
return titleCase;
},
get toBase () {
return toBase;
},
get toLowerCase () {
return toLowerCase;
},
get toString () {
return toString;
},
get toUpperCase () {
return toUpperCase;
},
get trim () {
return trim;
},
get truncate () {
return truncate;
},
get uncase () {
return uncase;
},
get underscore () {
return underscore;
},
get underscored () {
return underscored;
},
get underscores () {
return underscores;
},
get w () {
return w;
},
get words () {
return words;
}
});
const _function = require("./function");
const _type = require("./type");
const _value = require("./value");
var camelCase, capitalize, collapse, dash, dashed, dashes, dquote, elide, enclose, endsWith, fromBase, gloss, hyphenate, interpolate, isBlank, isMatch, match, normalize, pad, padEnd, padStart, parseNumber, quote, repeat, replace, snakeCase, split, squote, startsWith, titleCase, toBase, toLower, toLowerCase, toString, toUpper, toUpperCase, trim, trimEnd, trimStart, truncate, uncase, underscore, underscored, underscores, w, words;
toString = function(x) {
return x.toString();
};
toBase = (0, _function.curry)(function(radix, number) {
if ((0, _type.isNumber)(radix) && ((0, _type.isNumber)(number) || (0, _type.isBigInt)(number))) {
if (2 <= radix && radix <= 36) {
return number.toString(radix);
} else {
throw new TypeError("toBase: radix must between 2 and 36");
}
} else {
throw new TypeError("toBase: arguments must be numbers");
}
});
fromBase = (0, _function.curry)(function(radix, string) {
return Number.parseInt(string, radix);
});
parseNumber = function(string) {
return Number(string);
};
match = (0, _function.curry)(function(pattern, string) {
return string.match(pattern);
});
isMatch = (0, _function.curry)(function(pattern, string) {
return pattern.test(string);
});
replace = (0, _function.curry)(function(pattern, replacement, string) {
return string.replace(pattern, replacement);
});
toUpperCase = toUpper = (0, _function.detach)(String.prototype.toUpperCase);
toLowerCase = toLower = (0, _function.detach)(String.prototype.toLowerCase);
trim = (0, _function.detach)(String.prototype.trim);
trimStart = (0, _function.detach)(String.prototype.trimStart);
trimEnd = (0, _function.detach)(String.prototype.trimEnd);
collapse = function(s) {
return replace(/\s+/g, " ", trim(s));
};
// adapted from https://github.com/VitorLuizC/normalize-text
normalize = function(string) {
return string.normalize("NFKD").replace(/[\u0300-\u036F]/g, "");
};
uncase = (0, _function.pipe)([
replace(/^[A-Z]/g, function(c) {
return c.toLowerCase();
}),
replace(/[A-Z]/g, function(c) {
return ` ${c.toLowerCase()}`;
}),
replace(/[_-]/g, " ")
]);
gloss = (0, _function.pipe)([
normalize,
collapse,
toLowerCase,
replace(/[^A-Za-z0-9 ]+/g, "")
]);
camelCase = (0, _function.pipe)([
uncase,
gloss,
replace(/\s\w/g, (0, _function.pipe)([
trim,
toUpperCase
]))
]);
dashed = dashes = dash = hyphenate = (0, _function.pipe)([
uncase,
gloss,
replace(/\s/g, function(s) {
return "-";
})
]);
underscored = underscores = underscore = snakeCase = (0, _function.pipe)([
uncase,
gloss,
replace(/\s/g, function(s) {
return "_";
})
]);
capitalize = function(string) {
return toUpperCase(string[0]) + string.slice(1);
};
titleCase = replace(/\b\w/g, toUpperCase);
startsWith = (0, _function.curry)(function(target, string) {
return string.startsWith(target);
});
endsWith = (0, _function.curry)(function(target, string) {
return string.endsWith(target);
});
padEnd = (0, _function.curry)(function(n, padding, string) {
return string.padEnd(n, padding);
});
padStart = (0, _function.curry)(function(n, padding, string) {
return string.padStart(n, padding);
});
pad = (0, _function.curry)(function(n, padding, string) {
return padStart(n, padding, padEnd(Math.ceil((n - string.length) / 2) + string.length, padding, string));
});
repeat = (0, _function.curry)(function(n, string) {
return string.repeat(n);
});
enclose = (0, _function.curry)(function(delimiter, string) {
return function({ start, end }) {
if (delimiter.length > 1) {
[start, end] = delimiter;
} else {
start = end = delimiter;
}
return start + string + end;
}({});
});
quote = dquote = enclose('"');
squote = enclose("'");
truncate = (0, _function.curry)(function(n, string) {
return string.slice(0, n);
});
elide = (0, _function.curry)(function(n, end, string) {
if (string.length > n) {
return replace(/\W+\w*$/, end, truncate(n - end.length + 1, string));
} else {
return string;
}
});
split = (0, _function.curry)(function(re, s) {
return s.split(re);
});
w = words = (0, _function.pipe)([
trim,
split(/\s+/)
]);
isBlank = function(s) {
return (0, _type.isString)(s) && (0, _value.isEmpty)(s);
};
interpolate = (0, _function.curry)(function(template, context) {
var f, parameters;
parameters = Object.keys(context);
f = new Function(`{${parameters}}`, `return \`${template}\``);
return f(context);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL0BkYXNoa2l0ZS9qb3kvc3JjL3RleHQuY29mZmVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLElBQUEsU0FBQSxFQUFBLFVBQUEsRUFBQSxRQUFBLEVBQUEsSUFBQSxFQUFBLE1BQUEsRUFBQSxNQUFBLEVBQUEsTUFBQSxFQUFBLEtBQUEsRUFBQSxPQUFBLEVBQUEsUUFBQSxFQUFBLFFBQUEsRUFBQSxLQUFBLEVBQUEsU0FBQSxFQUFBLFdBQUEsRUFBQSxPQUFBLEVBQUEsT0FBQSxFQUFBLEtBQUEsRUFBQSxTQUFBLEVBQUEsR0FBQSxFQUFBLE1BQUEsRUFBQSxRQUFBLEVBQUEsV0FBQSxFQUFBLEtBQUEsRUFBQSxNQUFBLEVBQUEsT0FBQSxFQUFBLFNBQUEsRUFBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLFVBQUEsRUFBQSxTQUFBLEVBQUEsTUFBQSxFQUFBLE9BQUEsRUFBQSxXQUFBLEVBQUEsUUFBQSxFQUFBLE9BQUEsRUFBQSxXQUFBLEVBQUEsSUFBQSxFQUFBLE9BQUEsRUFBQSxTQUFBLEVBQUEsUUFBQSxFQUFBLE1BQUEsRUFBQSxVQUFBLEVBQUEsV0FBQSxFQUFBLFdBQUEsRUFBQSxDQUFBLEVBQUE7O0FBQUEsT0FBQTtFQUFRLEtBQVI7RUFBZSxJQUFmO0VBQXFCLE1BQXJCO0NBQUEsTUFBQTs7QUFDQSxPQUFBO0VBQVMsUUFBVDtFQUFtQixRQUFuQjtFQUE2QixRQUE3QjtDQUFBLE1BQUE7O0FBQ0EsT0FBQTtFQUFRLE9BQVI7Q0FBQSxNQUFBOztBQUVBLFFBQUEsR0FBVyxRQUFBLENBQUMsQ0FBRCxDQUFBO1NBQU8sQ0FBQyxDQUFDLFFBQUYsQ0FBQTtBQUFQOztBQUVYLE1BQUEsR0FBUyxLQUFBLENBQU0sUUFBQSxDQUFDLEtBQUQsRUFBUSxNQUFSLENBQUE7RUFDYixJQUFHLENBQUMsUUFBQSxDQUFTLEtBQVQsQ0FBRCxDQUFBLElBQW9CLENBQUMsQ0FBQyxRQUFBLENBQVMsTUFBVCxD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RjtFQTZCRSxVQTdCRjtFQThCRSxRQTlCRjtFQStCRSxHQS9CRjtFQWdDRSxNQWhDRjtFQWlDRSxRQWpDRjtFQWtDRSxNQWxDRjtFQW1DRSxLQW5DRjtFQW9DRSxDQXBDRjtFQXFDRSxLQXJDRjtFQXNDRSxPQXRDRjtFQXVDRSxLQXZDRjtFQXdDRSxPQXhDRjtFQXlDRSxPQXpDRjtFQTBDRSxXQTFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3VycnksIHBpcGUsIGRldGFjaH0gZnJvbSBcIi4vZnVuY3Rpb25cIlxuaW1wb3J0IHsgaXNTdHJpbmcsIGlzTnVtYmVyLCBpc0JpZ0ludCB9IGZyb20gXCIuL3R5cGVcIlxuaW1wb3J0IHtpc0VtcHR5fSBmcm9tIFwiLi92YWx1ZVwiXG5cbnRvU3RyaW5nID0gKHgpIC0+IHgudG9TdHJpbmcoKVxuXG50b0Jhc2UgPSBjdXJyeSAocmFkaXgsIG51bWJlcikgLT5cbiAgaWYgKGlzTnVtYmVyIHJhZGl4KSAmJiAoKGlzTnVtYmVyIG51bWJlcikgfHwgaXNCaWdJbnQgbnVtYmVyKVxuICAgIGlmIDIgPD0gcmFkaXggPD0gMzZcbiAgICAgIG51bWJlci50b1N0cmluZyByYWRpeFxuICAgIGVsc2VcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IgXCJ0b0Jhc2U6IHJhZGl4IG11c3QgYmV0d2VlbiAyIGFuZCAzNlwiXG4gIGVsc2VcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yIFwidG9CYXNlOiBhcmd1bWVudHMgbXVzdCBiZSBudW1iZXJzXCJcblxuZnJvbUJhc2UgPSBjdXJyeSAocmFkaXgsIHN0cmluZykgLT4gTnVtYmVyLnBhcnNlSW50IHN0cmluZywgcmFkaXhcblxucGFyc2VOdW1iZXIgPSAoc3RyaW5nKSAtPiBOdW1iZXIgc3RyaW5nXG5cbm1hdGNoID0gY3VycnkgKHBhdHRlcm4sIHN0cmluZykgLT4gc3RyaW5nLm1hdGNoIHBhdHRlcm5cblxuaXNNYXRjaCA9IGN1cnJ5IChwYXR0ZXJuLCBzdHJpbmcpIC0+IHBhdHRlcm4udGVzdCBzdHJpbmdcblxucmVwbGFjZSA9IGN1cnJ5IChwYXR0ZXJuLCByZXBsYWNlbWVudCwgc3RyaW5nKSAtPlxuICBzdHJpbmcucmVwbGFjZSBwYXR0ZXJuLCByZXBsYWNlbWVudFxuXG50b1VwcGVyQ2FzZSA9IHRvVXBwZXIgPSBkZXRhY2ggU3RyaW5nOjp0b1VwcGVyQ2FzZVxuXG50b0xvd2VyQ2FzZSA9IHRvTG93ZXIgPSBkZXRhY2ggU3RyaW5nOjp0b0xvd2VyQ2FzZVxuXG50cmltID0gZGV0YWNoIFN0cmluZzo6dHJpbVxuXG50cmltU3RhcnQgPSBkZXRhY2ggU3RyaW5nOjp0cmltU3RhcnRcblxudHJpbUVuZCA9IGRldGFjaCBTdHJpbmc6OnRyaW1FbmRcblxuY29sbGFwc2UgPSAocykgLT4gcmVwbGFjZSAvXFxzKy9nLCBcIiBcIiwgdHJpbSBzXG5cbiMgYWRhcHRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXRvckx1aXpDL25vcm1hbGl6ZS10ZXh0XG5ub3JtYWxpemUgPSAoc3RyaW5nKSAtPlxuICBzdHJpbmdcbiAgLm5vcm1hbGl6ZSBcIk5GS0RcIlxuICAucmVwbGFjZSAvW1xcdTAzMDAtXFx1MDM2Rl0vZywgXCJcIlxuXG51bmNhc2UgPSBwaXBlIFtcbiAgcmVwbGFjZSAvXltBLVpdL2csIChjKSAtPiBjLnRvTG93ZXJDYXNlKClcbiAgcmVwbGFjZSAvW0EtWl0vZywgKGMpIC0+IFwiICN7Yy50b0xvd2VyQ2FzZSgpfVwiXG4gIHJlcGxhY2UgL1tfLV0vZywgXCIgXCJcbl1cblxuZ2xvc3MgPSBwaXBlIFtcbiAgbm9ybWFsaXplXG4gIGNvbGxhcHNlXG4gIHRvTG93ZXJDYXNlXG4gIHJlcGxhY2UgL1teQS1aYS16MC05IF0rL2csIFwiXCJcbl1cblxuY2FtZWxDYXNlID0gcGlwZSBbXG4gIHVuY2FzZVxuICBnbG9zc1xuICByZXBsYWNlIC9cXHNcXHcvZywgcGlwZSBbXG4gICAgdHJpbVxuICAgIHRvVXBwZXJDYXNlXG4gIF1cbl1cblxuZGFzaGVkID0gZGFzaGVzID0gZGFzaCA9IGh5cGhlbmF0ZSA9IHBpcGUgW1xuICB1bmNhc2VcbiAgZ2xvc3NcbiAgcmVwbGFjZSAvXFxzL2csIChzKSAtPiBcIi1cIlxuXVxuXG51bmRlcnNjb3JlZCA9IHVuZGVyc2NvcmVzID0gdW5kZXJzY29yZSA9IHNuYWtlQ2FzZSA9IHBpcGUgW1xuICB1bmNhc2VcbiAgZ2xvc3NcbiAgcmVwbGFjZSAvXFxzL2csIChzKSAtPiBcIl9cIlxuXVxuXG5jYXBpdGFsaXplID0gKHN0cmluZykgLT4gKHRvVXBwZXJDYXNlIHN0cmluZ1swXSkgKyBzdHJpbmdbMS4uXVxuXG50aXRsZUNhc2UgPSByZXBsYWNlIC9cXGJcXHcvZywgdG9VcHBlckNhc2Vcblxuc3RhcnRzV2l0aCA9IGN1cnJ5ICh0YXJnZXQsIHN0cmluZykgLT4gc3RyaW5nLnN0YXJ0c1dpdGggdGFyZ2V0XG5cbmVuZHNXaXRoID0gY3VycnkgKHRhcmdldCwgc3RyaW5nKSAtPiBzdHJpbmcuZW5kc1dpdGggdGFyZ2V0XG5cbnBhZEVuZCA9IGN1cnJ5IChuLCBwYWRkaW5nLCBzdHJpbmcpIC0+IHN0cmluZy5wYWRFbmQgbiwgcGFkZGluZ1xuXG5wYWRTdGFydCA9IGN1cnJ5IChuLCBwYWRkaW5nLCBzdHJpbmcpIC0+IHN0cmluZy5wYWRTdGFydCBuLCBwYWRkaW5nXG5cbnBhZCA9IGN1cnJ5IChuLCBwYWRkaW5nLCBzdHJpbmcpIC0+XG4gIHBhZFN0YXJ0IG4sIHBhZGRpbmcsXG4gICAgcGFkRW5kIChNYXRoLmNlaWwgKG4gLSBzdHJpbmcubGVuZ3RoKS8yKSArIHN0cmluZy5sZW5ndGgsIHBhZGRpbmcsIHN0cmluZ1xuXG5yZXBlYXQgPSBjdXJyeSAobiwgc3RyaW5nKSAtPiBzdHJpbmcucmVwZWF0IG5cblxuZW5jbG9zZSA9IGN1cnJ5IChkZWxpbWl0ZXIsIHN0cmluZykgLT5cbiAgZG8gKHtzdGFydCwgZW5kfSA9IHt9KSAtPlxuICAgIGlmIGRlbGltaXRlci5sZW5ndGggPiAxXG4gICAgICBbIHN0YXJ0LCBlbmQgXSA9IGRlbGltaXRlclxuICAgIGVsc2VcbiAgICAgIHN0YXJ0ID0gZW5kID0gZGVsaW1pdGVyXG4gICAgc3RhcnQgKyBzdHJpbmcgKyBlbmRcblxucXVvdGUgPSBkcXVvdGUgPSBlbmNsb3NlICdcIidcblxuc3F1b3RlID0gZW5jbG9zZSBcIidcIlxuXG50cnVuY2F0ZSA9IGN1cnJ5IChuLCBzdHJpbmcpIC0+IHN0cmluZ1swLi4ubl1cblxuZWxpZGUgPSBjdXJyeSAobiwgZW5kLCBzdHJpbmcpIC0+XG4gIGlmIHN0cmluZy5sZW5ndGggPiBuXG4gICAgcmVwbGFjZSAvXFxXK1xcdyokLywgZW5kLCB0cnVuY2F0ZSBuIC0gZW5kLmxlbmd0aCArIDEsIHN0cmluZ1xuICBlbHNlXG4gICAgc3RyaW5nXG5cbnNwbGl0ID0gY3VycnkgKHJlLCBzKSAtPiBzLnNwbGl0IHJlXG5cbncgPSB3b3JkcyA9IHBpcGUgW1xuICB0cmltXG4gIHNwbGl0IC9cXHMrL1xuXVxuXG5pc0JsYW5rID0gKHMpIC0+IChpc1N0cmluZyBzKSAmJiAoaXNFbXB0eSBzKVxuXG5pbnRlcnBvbGF0ZSA9IGN1cnJ5ICggdGVtcGxhdGUsIGNvbnRleHQgKSAtPlxuICBwYXJhbWV0ZXJzID0gT2JqZWN0LmtleXMgY29udGV4dFxuICBmID0gbmV3IEZ1bmN0aW9uIFwieyN7IHBhcmFtZXRlcnMgfX1cIiwgXCJyZXR1cm4gYCN7IHRlbXBsYXRlIH1gXCJcbiAgZiBjb250ZXh0XG5cbmV4cG9ydCB7XG4gIHRvU3RyaW5nXG4gIHRvQmFzZVxuICBmcm9tQmFzZVxuICBwYXJzZU51bWJlclxuICB0b1VwcGVyQ2FzZVxuICB0b0xvd2VyQ2FzZVxuICBjb2xsYXBzZVxuICBub3JtYWxpemVcbiAgdW5jYXNlXG4gIGdsb3NzXG4gIGNhbWVsQ2FzZVxuICBkYXNoZWRcbiAgZGFzaGVzXG4gIGRhc2hcbiAgaHlwaGVuYXRlXG4gIHVuZGVyc2NvcmVkXG4gIHVuZGVyc2NvcmVzXG4gIHVuZGVyc2NvcmVcbiAgc25ha2VDYXNlXG4gIGNhcGl0YWxpemVcbiAgdGl0bGVDYXNlXG4gIHRyaW1cbiAgdHJ1bmNhdGVcbiAgZWxpZGVcbiAgZW5jbG9zZVxuICBxdW90ZVxuICBkcXVvdGVcbiAgc3F1b3RlXG4gIHN0YXJ0c1dpdGhcbiAgZW5kc1dpdGhcbiAgcGFkXG4gIHBhZEVuZFxuICBwYWRTdGFydFxuICByZXBlYXRcbiAgc3BsaXRcbiAgd1xuICB3b3Jkc1xuICBpc0JsYW5rXG4gIG1hdGNoXG4gIGlzTWF0Y2hcbiAgcmVwbGFjZVxuICBpbnRlcnBvbGF0ZVxufVxuIl19
//# sourceURL=/@dashkite/joy/src/text.coffee
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlcyI6WyIvQGRhc2hraXRlL2pveS9zcmMvdGV4dC5jb2ZmZWUiXSwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3VycnksIHBpcGUsIGRldGFjaH0gZnJvbSBcIi4vZnVuY3Rpb25cIlxuaW1wb3J0IHsgaXNTdHJpbmcsIGlzTnVtYmVyLCBpc0JpZ0ludCB9IGZyb20gXCIuL3R5cGVcIlxuaW1wb3J0IHtpc0VtcHR5fSBmcm9tIFwiLi92YWx1ZVwiXG5cbnRvU3RyaW5nID0gKHgpIC0+IHgudG9TdHJpbmcoKVxuXG50b0Jhc2UgPSBjdXJyeSAocmFkaXgsIG51bWJlcikgLT5cbiAgaWYgKGlzTnVtYmVyIHJhZGl4KSAmJiAoKGlzTnVtYmVyIG51bWJlcikgfHwgaXNCaWdJbnQgbnVtYmVyKVxuICAgIGlmIDIgPD0gcmFkaXggPD0gMzZcbiAgICAgIG51bWJlci50b1N0cmluZyByYWRpeFxuICAgIGVsc2VcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IgXCJ0b0Jhc2U6IHJhZGl4IG11c3QgYmV0d2VlbiAyIGFuZCAzNlwiXG4gIGVsc2VcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yIFwidG9CYXNlOiBhcmd1bWVudHMgbXVzdCBiZSBudW1iZXJzXCJcblxuZnJvbUJhc2UgPSBjdXJyeSAocmFkaXgsIHN0cmluZykgLT4gTnVtYmVyLnBhcnNlSW50IHN0cmluZywgcmFkaXhcblxucGFyc2VOdW1iZXIgPSAoc3RyaW5nKSAtPiBOdW1iZXIgc3RyaW5nXG5cbm1hdGNoID0gY3VycnkgKHBhdHRlcm4sIHN0cmluZykgLT4gc3RyaW5nLm1hdGNoIHBhdHRlcm5cblxuaXNNYXRjaCA9IGN1cnJ5IChwYXR0ZXJuLCBzdHJpbmcpIC0+IHBhdHRlcm4udGVzdCBzdHJpbmdcblxucmVwbGFjZSA9IGN1cnJ5IChwYXR0ZXJuLCByZXBsYWNlbWVudCwgc3RyaW5nKSAtPlxuICBzdHJpbmcucmVwbGFjZSBwYXR0ZXJuLCByZXBsYWNlbWVudFxuXG50b1VwcGVyQ2FzZSA9IHRvVXBwZXIgPSBkZXRhY2ggU3RyaW5nOjp0b1VwcGVyQ2FzZVxuXG50b0xvd2VyQ2FzZSA9IHRvTG93ZXIgPSBkZXRhY2ggU3RyaW5nOjp0b0xvd2VyQ2FzZVxuXG50cmltID0gZGV0YWNoIFN0cmluZzo6dHJpbVxuXG50cmltU3RhcnQgPSBkZXRhY2ggU3RyaW5nOjp0cmltU3RhcnRcblxudHJpbUVuZCA9IGRldGFjaCBTdHJpbmc6OnRyaW1FbmRcblxuY29sbGFwc2UgPSAocykgLT4gcmVwbGFjZSAvXFxzKy9nLCBcIiBcIiwgdHJpbSBzXG5cbiMgYWRhcHRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXRvckx1aXpDL25vcm1hbGl6ZS10ZXh0XG5ub3JtYWxpemUgPSAoc3RyaW5nKSAtPlxuICBzdHJpbmdcbiAgLm5vcm1hbGl6ZSBcIk5GS0RcIlxuICAucmVwbGFjZSAvW1xcdTAzMDAtXFx1MDM2Rl0vZywgXCJcIlxuXG51bmNhc2UgPSBwaXBlIFtcbiAgcmVwbGFjZSAvXltBLVpdL2csIChjKSAtPiBjLnRvTG93ZXJDYXNlKClcbiAgcmVwbGFjZSAvW0EtWl0vZywgKGMpIC0+IFwiICN7Yy50b0xvd2VyQ2FzZSgpfVwiXG4gIHJlcGxhY2UgL1tfLV0vZywgXCIgXCJcbl1cblxuZ2xvc3MgPSBwaXBlIFtcbiAgbm9ybWFsaXplXG4gIGNvbGxhcHNlXG4gIHRvTG93ZXJDYXNlXG4gIHJlcGxhY2UgL1teQS1aYS16MC05IF0rL2csIFwiXCJcbl1cblxuY2FtZWxDYXNlID0gcGlwZSBbXG4gIHVuY2FzZVxuICBnbG9zc1xuICByZXBsYWNlIC9cXHNcXHcvZywgcGlwZSBbXG4gICAgdHJpbVxuICAgIHRvVXBwZXJDYXNlXG4gIF1cbl1cblxuZGFzaGVkID0gZGFzaGVzID0gZGFzaCA9IGh5cGhlbmF0ZSA9IHBpcGUgW1xuICB1bmNhc2VcbiAgZ2xvc3NcbiAgcmVwbGFjZSAvXFxzL2csIChzKSAtPiBcIi1cIlxuXVxuXG51bmRlcnNjb3JlZCA9IHVuZGVyc2NvcmVzID0gdW5kZXJzY29yZSA9IHNuYWtlQ2FzZSA9IHBpcGUgW1xuICB1bmNhc2VcbiAgZ2xvc3NcbiAgcmVwbGFjZSAvXFxzL2csIChzKSAtPiBcIl9cIlxuXVxuXG5jYXBpdGFsaXplID0gKHN0cmluZykgLT4gKHRvVXBwZXJDYXNlIHN0cmluZ1swXSkgKyBzdHJpbmdbMS4uXVxuXG50aXRsZUNhc2UgPSByZXBsYWNlIC9cXGJcXHcvZywgdG9VcHBlckNhc2Vcblxuc3RhcnRzV2l0aCA9IGN1cnJ5ICh0YXJnZXQsIHN0cmluZykgLT4gc3RyaW5nLnN0YXJ0c1dpdGggdGFyZ2V0XG5cbmVuZHNXaXRoID0gY3VycnkgKHRhcmdldCwgc3RyaW5nKSAtPiBzdHJpbmcuZW5kc1dpdGggdGFyZ2V0XG5cbnBhZEVuZCA9IGN1cnJ5IChuLCBwYWRkaW5nLCBzdHJpbmcpIC0+IHN0cmluZy5wYWRFbmQgbiwgcGFkZGluZ1xuXG5wYWRTdGFydCA9IGN1cnJ5IChuLCBwYWRkaW5nLCBzdHJpbmcpIC0+IHN0cmluZy5wYWRTdGFydCBuLCBwYWRkaW5nXG5cbnBhZCA9IGN1cnJ5IChuLCBwYWRkaW5nLCBzdHJpbmcpIC0+XG4gIHBhZFN0YXJ0IG4sIHBhZGRpbmcsXG4gICAgcGFkRW5kIChNYXRoLmNlaWwgKG4gLSBzdHJpbmcubGVuZ3RoKS8yKSArIHN0cmluZy5sZW5ndGgsIHBhZGRpbmcsIHN0cmluZ1xuXG5yZXBlYXQgPSBjdXJyeSAobiwgc3RyaW5nKSAtPiBzdHJpbmcucmVwZWF0IG5cblxuZW5jbG9zZSA9IGN1cnJ5IChkZWxpbWl0ZXIsIHN0cmluZykgLT5cbiAgZG8gKHtzdGFydCwgZW5kfSA9IHt9KSAtPlxuICAgIGlmIGRlbGltaXRlci5sZW5ndGggPiAxXG4gICAgICBbIHN0YXJ0LCBlbmQgXSA9IGRlbGltaXRlclxuICAgIGVsc2VcbiAgICAgIHN0YXJ0ID0gZW5kID0gZGVsaW1pdGVyXG4gICAgc3RhcnQgKyBzdHJpbmcgKyBlbmRcblxucXVvdGUgPSBkcXVvdGUgPSBlbmNsb3NlICdcIidcblxuc3F1b3RlID0gZW5jbG9zZSBcIidcIlxuXG50cnVuY2F0ZSA9IGN1cnJ5IChuLCBzdHJpbmcpIC0+IHN0cmluZ1swLi4ubl1cblxuZWxpZGUgPSBjdXJyeSAobiwgZW5kLCBzdHJpbmcpIC0+XG4gIGlmIHN0cmluZy5sZW5ndGggPiBuXG4gICAgcmVwbGFjZSAvXFxXK1xcdyokLywgZW5kLCB0cnVuY2F0ZSBuIC0gZW5kLmxlbmd0aCArIDEsIHN0cmluZ1xuICBlbHNlXG4gICAgc3RyaW5nXG5cbnNwbGl0ID0gY3VycnkgKHJlLCBzKSAtPiBzLnNwbGl0IHJlXG5cbncgPSB3b3JkcyA9IHBpcGUgW1xuICB0cmltXG4gIHNwbGl0IC9cXHMrL1xuXVxuXG5pc0JsYW5rID0gKHMpIC0+IChpc1N0cmluZyBzKSAmJiAoaXNFbXB0eSBzKVxuXG5pbnRlcnBvbGF0ZSA9IGN1cnJ5ICggdGVtcGxhdGUsIGNvbnRleHQgKSAtPlxuICBwYXJhbWV0ZXJzID0gT2JqZWN0LmtleXMgY29udGV4dFxuICBmID0gbmV3IEZ1bmN0aW9uIFwieyN7IHBhcmFtZXRlcnMgfX1cIiwgXCJyZXR1cm4gYCN7IHRlbXBsYXRlIH1gXCJcbiAgZiBjb250ZXh0XG5cbmV4cG9ydCB7XG4gIHRvU3RyaW5nXG4gIHRvQmFzZVxuICBmcm9tQmFzZVxuICBwYXJzZU51bWJlclxuICB0b1VwcGVyQ2FzZVxuICB0b0xvd2VyQ2FzZVxuICBjb2xsYXBzZVxuICBub3JtYWxpemVcbiAgdW5jYXNlXG4gIGdsb3NzXG4gIGNhbWVsQ2FzZVxuICBkYXNoZWRcbiAgZGFzaGVzXG4gIGRhc2hcbiAgaHlwaGVuYXRlXG4gIHVuZGVyc2NvcmVkXG4gIHVuZGVyc2NvcmVzXG4gIHVuZGVyc2NvcmVcbiAgc25ha2VDYXNlXG4gIGNhcGl0YWxpemVcbiAgdGl0bGVDYXNlXG4gIHRyaW1cbiAgdHJ1bmNhdGVcbiAgZWxpZGVcbiAgZW5jbG9zZVxuICBxdW90ZVxuICBkcXVvdGVcbiAgc3F1b3RlXG4gIHN0YXJ0c1dpdGhcbiAgZW5kc1dpdGhcbiAgcGFkXG4gIHBhZEVuZFxuICBwYWRTdGFydFxuICByZXBlYXRcbiAgc3BsaXRcbiAgd1xuICB3b3Jkc1xuICBpc0JsYW5rXG4gIG1hdGNoXG4gIGlzTWF0Y2hcbiAgcmVwbGFjZVxuICBpbnRlcnBvbGF0ZVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBNklFLFNBWEY7Ozs7ZUFvQkUsVUFwQkY7O1FBT0UsUUFQRjs7OztlQWNFLElBZEY7OztlQVlFLE1BWkY7OztlQWFFLE1BYkY7OztlQTJCRSxNQTNCRjs7O2VBd0JFLEtBeEJGOzs7ZUF5QkUsT0F6QkY7OztlQThCRSxRQTlCRjs7O2VBR0UsUUFIRjs7O2VBVUUsS0FWRjs7UUFlRSxTQWZGOzs7O2VBMENFLFdBMUNGOzs7ZUFzQ0UsT0F0Q0Y7O1FBd0NFLE9BeENGOzs7O2VBdUNFLEtBdkNGOztRQVFFLFNBUkY7OztRQStCRSxHQS9CRjs7OztlQWdDRSxNQWhDRjs7O2VBaUNFLFFBakNGOzs7ZUFJRSxXQUpGOzs7ZUEwQkUsS0ExQkY7OztlQWtDRSxNQWxDRjs7UUF5Q0UsT0F6Q0Y7Ozs7ZUFtQkUsU0FuQkY7OztlQW1DRSxLQW5DRjs7O2VBNEJFLE1BNUJGOzs7ZUE2QkUsVUE3QkY7OztlQXFCRSxTQXJCRjs7O2VBRUUsTUFGRjs7O2VBTUUsV0FORjs7O2VBQ0UsUUFERjs7O2VBS0UsV0FMRjs7UUFzQkUsSUF0QkY7OztRQXVCRSxRQXZCRjs7OztlQVNFLE1BVEY7OztlQWtCRSxVQWxCRjs7O2VBZ0JFLFdBaEJGOzs7ZUFpQkUsV0FqQkY7O1FBb0NFLENBcENGOzs7O2VBcUNFLEtBckNGOzs7MEJBbElBO3NCQUNBO3VCQUNBO0FBRkEsSUFBQSxTQUFBLEVBQUEsVUFBQSxFQUFBLFFBQUEsRUFBQSxJQUFBLEVBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxNQUFBLEVBQUEsS0FBQSxFQUFBLE9BQUEsRUFBQSxRQUFBLEVBQUEsUUFBQSxFQUFBLEtBQUEsRUFBQSxTQUFBLEVBQUEsV0FBQSxFQUFBLE9BQUEsRUFBQSxPQUFBLEVBQUEsS0FBQSxFQUFBLFNBQUEsRUFBQSxHQUFBLEVBQUEsTUFBQSxFQUFBLFFBQUEsRUFBQSxXQUFBLEVBQUEsS0FBQSxFQUFBLE1BQUEsRUFBQSxPQUFBLEVBQUEsU0FBQSxFQUFBLEtBQUEsRUFBQSxNQUFBLEVBQUEsVUFBQSxFQUFBLFNBQUEsRUFBQSxNQUFBLEVBQUEsT0FBQSxFQUFBLFdBQUEsRUFBQSxRQUFBLEVBQUEsT0FBQSxFQUFBLFdBQUEsRUFBQSxJQUFBLEVBQUEsT0FBQSxFQUFBLFNBQUEsRUFBQSxRQUFBLEVBQUEsTUFBQSxFQUFBLFVBQUEsRUFBQSxXQUFBLEVBQUEsV0FBQSxFQUFBLENBQUEsRUFBQTtBQUlBLFFBQUEsR0FBVyxRQUFBLENBQUMsQ0FBRCxDQUFBO1dBQU8sQ0FBQyxDQUFDLFFBQUYsQ0FBQTtBQUFQO0FBRVgsTUFBQSxHQUFTLG1CQUFBLEVBQU0sUUFBQSxDQUFDLEtBQUQsRUFBUSxNQUFSLENBQUE7SUFDYixJQUFHLElBQUMsY0FBQSxFQUFTLEtBQVQsQ0FBRCxDQUFBLElBQW9CLEFBQUMsSUFBQyxjQUFBLEVBQVMsTUFBVCxDQUFELENBQUEsT0FBcUIsY0FBQSxFQUFTLE9BQVQsQ0FBdEIsQ0FBdkIsQ0FBQTtRQUNFLElBQUcsQ0FBQSxJQUFLLEtBQUwsSUFBSyxLQUFMLElBQWMsRUFBZCxDQUFILENBQUE7bUJBQ0UsTUFBTSxDQUFDLFFBQVAsQ0FBZ0IsS0FBaEIsRUFERjtTQUFBLE1BQUE7WUFHRSxNQUFNLElBQUksU0FBSixDQUFjLHFDQUFkLEVBSFI7U0FERjtLQUFBLE1BQUE7UUFNRSxNQUFNLElBQUksU0FBSixDQUFjLG1DQUFkLEVBTlI7O0FBRGEsQ0FBTjtBQVNULFFBQUEsT0FBVyxlQUFBLEVBQU0sUUFBQSxDQUFDLEtBQUQsRUFBUSxNQUFSLENBQUE7V0FBbUIsTUFBTSxDQUFDLFFBQVAsQ0FBZ0IsTUFBaEIsRUFBd0IsS0FBeEI7QUFBbkIsQ0FBTjtBQUVYLFdBQUEsR0FBYyxRQUFBLENBQUMsTUFBRCxDQUFBO1dBQVksTUFBQSxDQUFPLE1BQVA7QUFBWjtBQUVkLEtBQUEsT0FBUSxlQUFBLEVBQU0sUUFBQSxDQUFDLE9BQUQsRUFBVSxNQUFWLENBQUE7V0FBcUIsTUFBTSxDQUFDLEtBQVAsQ0FBYSxPQUFiO0FBQXJCLENBQU47QUFFUixPQUFBLE9BQVUsZUFBQSxFQUFNLFFBQUEsQ0FBQyxPQUFELEVBQVUsTUFBVixDQUFBO1dBQXFCLE9BQU8sQ0FBQyxJQUFSLENBQWEsTUFBYjtBQUFyQixDQUFOO0FBRVYsT0FBQSxPQUFVLGVBQUEsRUFBTSxRQUFBLENBQUMsT0FBRCxFQUFVLFdBQVYsRUFBdUIsTUFBdkIsQ0FBQTtXQUNkLE1BQU0sQ0FBQyxPQUFQLENBQWUsT0FBZixFQUF3QixXQUF4QjtBQURjLENBQU47QUFHVixXQUFBLEdBQWMsT0FBQSxPQUFVLGdCQUFBLEVBQU8sTUFBTSxDQUFBLFNBQUUsQ0FBQSxXQUFmO0FBRXhCLFdBQUEsR0FBYyxPQUFBLE9BQVUsZ0JBQUEsRUFBTyxNQUFNLENBQUEsU0FBRSxDQUFBLFdBQWY7QUFFeEIsSUFBQSxPQUFPLGdCQUFBLEVBQU8sTUFBTSxDQUFBLFNBQUUsQ0FBQSxJQUFmO0FBRVAsU0FBQSxHQUFZLG9CQUFBLEVBQU8sTUFBTSxDQUFBLFNBQUUsQ0FBQSxTQUFmO0FBRVosT0FBQSxPQUFVLGdCQUFBLEVBQU8sTUFBTSxDQUFBLFNBQUUsQ0FBQSxPQUFmO0FBRVYsUUFBQSxHQUFXLFFBQUEsQ0FBQyxDQUFELENBQUE7V0FBTyxPQUFBLENBQVEsTUFBUixFQUFnQixHQUFoQixFQUFxQixJQUFBLENBQUssQ0FBTCxDQUFyQjtBQUFQLEVBcENYOztBQXVDQSxTQUFBLEdBQVksUUFBQSxDQUFDLE1BQUQsQ0FBQTtXQUNWLE1BQ0EsQ0FBQyxTQURELENBQ1csTUFEWCxDQUVBLENBQUMsT0FGRCxDQUVTLGtCQUZULEVBRTZCLEVBRjdCO0FBRFU7QUFLWixNQUFBLE9BQVMsY0FBQSxFQUFLO0lBQ1osT0FBQSxDQUFRLFNBQVIsRUFBbUIsUUFBQSxDQUFDLENBQUQsQ0FBQTtlQUFPLENBQUMsQ0FBQyxXQUFGLENBQUE7SUFBUCxDQUFuQixDQURZO0lBRVosT0FBQSxDQUFRLFFBQVIsRUFBa0IsUUFBQSxDQUFDLENBQUQsQ0FBQTtlQUFPLENBQUEsQ0FBQSxDQUFBLENBQUksQ0FBQyxDQUFDLFdBQUYsQ0FBQSxDQUFKLENBQUEsQ0FBQTtJQUFQLENBQWxCLENBRlk7SUFHWixPQUFBLENBQVEsT0FBUixFQUFpQixHQUFqQixDQUhZO0NBQUw7QUFNVCxLQUFBLE9BQVEsY0FBQSxFQUFLO0lBQ1gsU0FEVztJQUVYLFFBRlc7SUFHWCxXQUhXO0lBSVgsT0FBQSxDQUFRLGlCQUFSLEVBQTJCLEVBQTNCLENBSlc7Q0FBTDtBQU9SLFNBQUEsT0FBWSxjQUFBLEVBQUs7SUFDZixNQURlO0lBRWYsS0FGZTtJQUdmLE9BQUEsQ0FBUSxPQUFSLE1BQWlCLGNBQUEsRUFBSztRQUNwQixJQURvQjtRQUVwQixXQUZvQjtLQUFMLENBQWpCLENBSGU7Q0FBTDtBQVNaLE1BQUEsR0FBUyxNQUFBLEdBQVMsSUFBQSxHQUFPLFNBQUEsT0FBWSxjQUFBLEVBQUs7SUFDeEMsTUFEd0M7SUFFeEMsS0FGd0M7SUFHeEMsT0FBQSxDQUFRLEtBQVIsRUFBZSxRQUFBLENBQUMsQ0FBRCxDQUFBO2VBQU87SUFBUCxDQUFmLENBSHdDO0NBQUw7QUFNckMsV0FBQSxHQUFjLFdBQUEsR0FBYyxVQUFBLEdBQWEsU0FBQSxPQUFZLGNBQUEsRUFBSztJQUN4RCxNQUR3RDtJQUV4RCxLQUZ3RDtJQUd4RCxPQUFBLENBQVEsS0FBUixFQUFlLFFBQUEsQ0FBQyxDQUFELENBQUE7ZUFBTztJQUFQLENBQWYsQ0FId0Q7Q0FBTDtBQU1yRCxVQUFBLEdBQWEsUUFBQSxDQUFDLE1BQUQsQ0FBQTtXQUFZLEFBQUMsV0FBQSxDQUFZLE1BQU0sQ0FBQyxDQUFELENBQWxCLENBQUQsQ0FBQSxFQUEwQixNQUFNLENBQUEsS0FBQSxDQUFBO0FBQTVDO0FBRWIsU0FBQSxHQUFZLE9BQUEsQ0FBUSxPQUFSLEVBQWlCLFdBQWpCO0FBRVosVUFBQSxPQUFhLGVBQUEsRUFBTSxRQUFBLENBQUMsTUFBRCxFQUFTLE1BQVQsQ0FBQTtXQUFvQixNQUFNLENBQUMsVUFBUCxDQUFrQixNQUFsQjtBQUFwQixDQUFOO0FBRWIsUUFBQSxPQUFXLGVBQUEsRUFBTSxRQUFBLENBQUMsTUFBRCxFQUFTLE1BQVQsQ0FBQTtXQUFvQixNQUFNLENBQUMsUUFBUCxDQUFnQixNQUFoQjtBQUFwQixDQUFOO0FBRVgsTUFBQSxPQUFTLGVBQUEsRUFBTSxRQUFBLENBQUMsQ0FBRCxFQUFJLE9BQUosRUFBYSxNQUFiLENBQUE7V0FBd0IsTUFBTSxDQUFDLE1BQVAsQ0FBYyxDQUFkLEVBQWlCLE9BQWpCO0FBQXhCLENBQU47QUFFVCxRQUFBLEdBQVcsbUJBQUEsRUFBTSxRQUFBLENBQUMsQ0FBRCxFQUFJLE9BQUosRUFBYSxNQUFiLENBQUE7V0FBd0IsTUFBTSxDQUFDLFFBQVAsQ0FBZ0IsQ0FBaEIsRUFBbUIsT0FBbkI7QUFBeEIsQ0FBTjtBQUVYLEdBQUEsT0FBTSxlQUFBLEVBQU0sUUFBQSxDQUFDLENBQUQsRUFBSSxPQUFKLEVBQWEsTUFBYixDQUFBO1dBQ1YsUUFBQSxDQUFTLENBQVQsRUFBWSxPQUFaLEVBQ0UsTUFBQSxDQUFRLEFBQUQsSUFBSyxDQUFDLElBQUwsQ0FBVSxBQUFDLENBQUEsSUFBSSxNQUFNLENBQUMsTUFBWixBQUFZLENBQVosR0FBb0IsQ0FBOUIsQ0FBRCxDQUFBLEVBQW9DLE1BQU0sQ0FBQyxNQUFsRCxFQUEwRCxPQUExRCxFQUFtRSxNQUFuRSxDQURGO0FBRFUsQ0FBTjtBQUlOLE1BQUEsT0FBUyxlQUFBLEVBQU0sUUFBQSxDQUFDLENBQUQsRUFBSSxNQUFKLENBQUE7V0FBZSxNQUFNLENBQUMsTUFBUCxDQUFjLENBQWQ7QUFBZixDQUFOO0FBRVQsT0FBQSxPQUFVLGVBQUEsRUFBTSxRQUFBLENBQUMsU0FBRCxFQUFZLE1BQVosQ0FBQTtXQUNYLFFBQUEsQ0FBQyxFQUFDLEtBQUQsRUFBUSxHQUFSLEVBQUQsQ0FBQTtRQUNELElBQUcsU0FBUyxDQUFDLE1BQVYsR0FBbUIsQ0FBdEIsRUFBQTtZQUNFLENBQUUsS0FBRixFQUFTLEdBQVQsQ0FBQSxHQUFpQixVQURuQjtTQUFBLE1BQUE7WUFHRSxLQUFBLEdBQVEsR0FBQSxHQUFNLFVBSGhCOztlQUlBLEtBQUEsR0FBUSxNQUFSLEdBQWlCO0lBTGhCLENBQUEsQ0FBZ0IsQ0FBQTtBQURMLENBQU47QUFRVixLQUFBLEdBQVEsTUFBQSxHQUFTLE9BQUEsQ0FBUSxHQUFSO0FBRWpCLE1BQUEsR0FBUyxPQUFBLENBQVEsR0FBUjtBQUVULFFBQUEsR0FBVyxtQkFBQSxFQUFNLFFBQUEsQ0FBQyxDQUFELEVBQUksTUFBSixDQUFBO1dBQWUsTUFBTSxDQUFBLEtBQUEsQ0FBQSxHQUFBO0FBQXJCLENBQU47QUFFWCxLQUFBLE9BQVEsZUFBQSxFQUFNLFFBQUEsQ0FBQyxDQUFELEVBQUksR0FBSixFQUFTLE1BQVQsQ0FBQTtJQUNaLElBQUcsTUFBTSxDQUFDLE1BQVAsR0FBZ0IsQ0FBbkIsRUFBQTtlQUNFLE9BQUEsQ0FBUSxTQUFSLEVBQW1CLEdBQW5CLEVBQXdCLFFBQUEsQ0FBUyxDQUFBLEdBQUksR0FBRyxDQUFDLE1BQVIsR0FBaUIsQ0FBMUIsRUFBNkIsTUFBN0IsQ0FBeEIsRUFERjtLQUFBLE1BQUE7ZUFHRSxPQUhGOztBQURZLENBQU47QUFNUixLQUFBLE9BQVEsZUFBQSxFQUFNLFFBQUEsQ0FBQyxFQUFELEVBQUssQ0FBTCxDQUFBO1dBQVcsQ0FBQyxDQUFDLEtBQUYsQ0FBUSxFQUFSO0FBQVgsQ0FBTjtBQUVSLENBQUEsR0FBSSxLQUFBLE9BQVEsY0FBQSxFQUFLO0lBQ2YsSUFEZTtJQUVmLEtBQUEsQ0FBTSxLQUFOLENBRmU7Q0FBTDtBQUtaLE9BQUEsR0FBVSxRQUFBLENBQUMsQ0FBRCxDQUFBO1dBQU8sSUFBQyxjQUFBLEVBQVMsQ0FBVCxDQUFELENBQUEsSUFBZ0IsR0FBQyxjQUFBLEVBQVEsQ0FBUixDQUFEO0FBQXZCO0FBRVYsV0FBQSxPQUFjLGVBQUEsRUFBTSxRQUFBLENBQUUsUUFBRixFQUFZLE9BQVosQ0FBQTtJQUNwQixJQUFBLENBQUEsRUFBQTtJQUFFLFVBQUEsR0FBYSxNQUFNLENBQUMsSUFBUCxDQUFZLE9BQVo7SUFDYixDQUFBLEdBQUksSUFBSSxRQUFKLENBQWEsQ0FBQSxDQUFBLENBQUEsQ0FBSyxVQUFMLENBQUEsQ0FBQSxDQUFiLEVBQWtDLENBQUEsU0FBQSxDQUFBLENBQVksUUFBWixDQUFBLEVBQUEsQ0FBbEM7V0FDSixDQUFBLENBQUUsT0FBRjtBQUhrQixDQUFOIn0=