New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

aurorajs

Package Overview
Dependencies
Maintainers
1
Versions
59
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aurorajs - npm Package Compare versions

Comparing version 0.1.55 to 0.1.56

27

index.js

@@ -17,10 +17,2 @@ "use strict";

checkanswer.serial = lines[i].split("erial Number: ")[1];
if (lines[i].split("art Number:").length > 1) {
if (lines[i].split("art Number: ")[1].length > 1) {
checkanswer.serial += "/" + lines[i].split("art Number: ")[1];
}
else {
checkanswer.serial = "none";
}
}
}

@@ -31,2 +23,10 @@ else {

}
if (lines[i].split("art Number:").length > 1) {
if (lines[i].split("art Number: ")[1].length > 1) {
checkanswer.pn = lines[i].split("art Number: ")[1];
}
else {
checkanswer.pn = "none";
}
}
if (lines[i].split("irmware:").length > 1) {

@@ -101,3 +101,3 @@ if (lines[i].split("irmware: ")[1].length > 1) {

for (var i = 0; i < addressesoptions.length; i++) {
if (!addressesoptions[i].serial || addressesoptions[i].serial === "none" || !addressesoptions[i].firmware || addressesoptions[i].firmware === "none" || !addressesoptions[i].dateprod || addressesoptions[i].dateprod === "none") {
if (!addressesoptions[i].serial || addressesoptions[i].serial === "none" || !addressesoptions[i].pn || addressesoptions[i].pn === "none" || !addressesoptions[i].firmware || addressesoptions[i].firmware === "none" || !addressesoptions[i].dateprod || addressesoptions[i].dateprod === "none") {
checkmodel.push(addressesoptions[i].uuid);

@@ -110,3 +110,3 @@ }

for (var i = 0; i < a.length; i++) {
if (a[i].serial && a[i].serial !== "none" && a[i].firmware && a[i].firmware !== "none" && a[i].dateprod && a[i].dateprod !== "none") {
if (a[i].serial && a[i].serial !== "none" && a[i].pn && a[i].pn !== "none" && a[i].firmware && a[i].firmware !== "none" && a[i].dateprod && a[i].dateprod !== "none") {
for (var add = 0; add < that.addresses.length; add++) {

@@ -132,2 +132,4 @@ if (that.addresses[add].uuid === a[i].uuid) {

apians[i].address = a[f].address;
if (a[f].pn)
apians[i].pn = a[f].pn;
apians[i].model = "Aurora";

@@ -172,2 +174,4 @@ apians[i].apiVersion = apiVersion;

apians[i].address = addressesoptions[f].address;
if (addressesoptions[f].pn)
apians[i].pn = addressesoptions[f].pn;
apians[i].model = "Aurora";

@@ -220,2 +224,3 @@ apians[i].apiVersion = apiVersion;

checkanswer.dateprod = "none";
checkanswer.pn = "none";
resolve(checkanswer);

@@ -287,2 +292,2 @@ });

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDcEMsSUFBWSxPQUFPLFdBQU0sVUFBVSxDQUFDLENBQUE7QUFDcEMsSUFBWSxFQUFFLFdBQU0sSUFBSSxDQUFDLENBQUE7QUFDekIsSUFBTyxRQUFRLFdBQVcsVUFBVSxDQUFDLENBQUM7QUFDdEMsSUFBTyxLQUFLLFdBQVcsT0FBTyxDQUFDLENBQUM7QUFFaEMsSUFBSSxVQUFVLEdBQVcsT0FBTyxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUMsQ0FBQyxVQUFVLENBQUM7QUFHekUsa0JBQWtCLFdBQVcsRUFBRSxHQUFHO0lBRTlCLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxNQUFNLEdBQUcsV0FBVyxDQUFDLE9BQU8sR0FBRyxvQkFBb0IsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDO0lBRXRGLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBVyxVQUFTLE9BQU8sRUFBRSxNQUFNO1FBR2pELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBUyxJQUFJO1lBQ3hCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBSXBDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzdDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFFakQsV0FBVyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBRXpELEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQzNDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0NBRS9DLFdBQVcsQ0FBQyxNQUFNLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBRWxFLENBQUM7NEJBQUMsSUFBSSxDQUFDLENBQUM7Z0NBQ0osV0FBVyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7NEJBQ2hDLENBQUM7d0JBQ0wsQ0FBQztvQkFFTCxDQUFDO29CQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNKLFdBQVcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO29CQUNoQyxDQUFDO2dCQUNMLENBQUM7Z0JBTUQsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDeEMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFFNUMsV0FBVyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUUxRCxDQUFDO29CQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNKLFdBQVcsQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO29CQUNsQyxDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNsRCxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3RELFdBQVcsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNwRSxDQUFDO29CQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNKLFdBQVcsQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO29CQUNsQyxDQUFDO2dCQUNMLENBQUM7WUFFTCxDQUFDO1lBSUQsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxXQUFXLENBQUMsUUFBUSxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNyRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFekIsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQy9CLENBQUM7UUFRTCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBUyxHQUFHO1lBQ2pCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUlQLENBQUMsQ0FBQyxDQUFDO0FBRVAsQ0FBQztBQUlELHlCQUF5QixTQUFxQjtJQUMxQyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDaEIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDeEMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUVsRyxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQXdFRDtJQUtJLGFBQVksU0FBcUIsRUFBRSxRQUFnQixFQUFFLEdBQVk7UUFDN0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxHQUFXLENBQUM7UUFDaEIsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNOLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZCxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDdEIsR0FBRyxHQUFHLFNBQVMsR0FBRyx1QkFBdUIsQ0FBQztZQUM5QyxDQUFDO1lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUM3QixHQUFHLEdBQUcsU0FBUyxHQUFHLHFCQUFxQixDQUFDO1lBQzVDLENBQUM7WUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzlCLEdBQUcsR0FBRyxTQUFTLEdBQUcsc0JBQXNCLENBQUM7WUFDN0MsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLEdBQUcsR0FBRyxRQUFRLENBQUM7WUFDbkIsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBRUQsa0JBQUksR0FBSjtRQUVJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDcEIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUU3QixJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFFdEMsSUFBSSxrQkFBa0IsR0FBRyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUUzRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7UUFFaEIsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFTLFVBQVMsT0FBTyxFQUFFLE1BQU07WUFFL0MsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDO1lBRXBCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBRS9DLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDL04sVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFOUMsQ0FBQztZQUNMLENBQUM7WUFHRCxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRXhCLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztnQkFFakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBUyxDQUFDO29CQUdyQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQzt3QkFFaEMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDOzRCQUVsSSxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7Z0NBRW5ELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29DQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQ0FDL0IsQ0FBQzs0QkFFTCxDQUFDO3dCQUNMLENBQUM7b0JBQ0wsQ0FBQztvQkFLRCxJQUFJLENBQUMsU0FBUyxHQUFHLGtCQUFrQixHQUFHLGtCQUFrQixHQUFHLFVBQVUsR0FBRyxRQUFRLEdBQUcsVUFBVSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBUyxJQUFZO3dCQUVsSSxJQUFJLE1BQU0sR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUN0QyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQzs0QkFDckMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0NBRWhDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0NBRTlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7d0NBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO29DQUN0RCxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO3dDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztvQ0FDdEQsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQzt3Q0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7b0NBQ2hELEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7d0NBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO29DQUVuRCxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztvQ0FDM0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7Z0NBRXRDLENBQUM7NEJBQ0wsQ0FBQzt3QkFFTCxDQUFDO3dCQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFFcEIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVMsR0FBRzt3QkFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFFakIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNoQixDQUFDLENBQUMsQ0FBQztnQkFHUCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBUyxHQUFHO29CQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLGtCQUFrQixHQUFHLGtCQUFrQixHQUFHLFVBQVUsR0FBRyxRQUFRLEdBQUcsVUFBVSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBUyxJQUFZO3dCQUVsSSxJQUFJLE1BQU0sR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUN0QyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQzs0QkFDckMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7NEJBQzNCLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO3dCQUN0QyxDQUFDO3dCQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDcEIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVMsR0FBRzt3QkFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDakIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNoQixDQUFDLENBQUMsQ0FBQztnQkFFUCxDQUFDLENBQUMsQ0FBQztZQUdQLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFFSixJQUFJLENBQUMsU0FBUyxHQUFHLGtCQUFrQixHQUFHLGtCQUFrQixHQUFHLFVBQVUsR0FBRyxRQUFRLEdBQUcsVUFBVSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBUyxJQUFZO29CQUVsSSxJQUFJLE1BQU0sR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN0QyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQzt3QkFDckMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQzs0QkFFL0MsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dDQUU3QyxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7b0NBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7Z0NBQ3BGLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztvQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztnQ0FDcEYsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO29DQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO2dDQUM5RSxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7b0NBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0NBRWpGLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO2dDQUMzQixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQzs0QkFDdEMsQ0FBQzt3QkFDTCxDQUFDO29CQUVMLENBQUM7b0JBRUQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUVwQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBUyxHQUFHO29CQUNqQixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hCLENBQUMsQ0FBQyxDQUFDO1lBRVAsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBRVAsQ0FBQztJQUVELG1CQUFLLEdBQUwsVUFBTSxJQUFZO1FBR2QsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFBQyxNQUFNLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRzFDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFcEIsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUkvQixJQUFJLFdBQVcsR0FBYSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUUzQyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQVcsVUFBUyxPQUFPLEVBQUUsTUFBTTtZQUdqRCxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDeEMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUM3QixXQUFXLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQ25DLFdBQVcsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDL0MsQ0FBQztZQUNMLENBQUM7WUFHRCxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBUyxLQUFLO2dCQUcxQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztvQkFDcEMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFDbkMsV0FBVyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO29CQUNuQyxDQUFDO2dCQUNMLENBQUM7Z0JBS0QsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBUyxDQUFDO29CQUN0QyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2YsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO29CQUNMLFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVMsQ0FBQzt3QkFDdEMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNmLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzt3QkFDTCxRQUFRLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFTLENBQUM7NEJBQ3RDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDZixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7NEJBQ0wsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBUyxDQUFDO2dDQUN0QyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQ2YsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVMsR0FBRztnQ0FFakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQ0FFakIsV0FBVyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0NBQzVCLFdBQVcsQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO2dDQUM5QixXQUFXLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztnQ0FFOUIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDOzRCQUV6QixDQUFDLENBQUMsQ0FBQzt3QkFDUCxDQUFDLENBQUMsQ0FBQztvQkFDUCxDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDLENBQUMsQ0FBQztZQUdQLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFTLEdBQUc7Z0JBQ2pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBRTFCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVoQixDQUFDLENBQUMsQ0FBQztRQUdQLENBQUMsQ0FBQyxDQUFDO0lBRVAsQ0FBQztJQUdELHNCQUFRLEdBQVIsVUFBUyxJQUFlO1FBRXBCLElBQUksU0FBUyxHQUFlLEVBQUUsQ0FBQztRQUMvQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ25DLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDUCxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDNUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBRW5DLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDcEMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDckMsQ0FBQztnQkFFTCxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLFNBQVMsR0FBRyxhQUFhLENBQUM7UUFDOUIsQ0FBQztRQUlELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUVoQixJQUFJLFVBQVUsR0FBZSxFQUFFLENBQUM7UUFFaEMsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFhLFVBQVMsT0FBTyxFQUFFLE1BQU07WUFHbkQsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBUyxRQUFRLEVBQUUsUUFBUTtnQkFFN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVMsT0FBTztvQkFFM0MsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFFekIsUUFBUSxFQUFFLENBQUM7Z0JBRWYsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVMsR0FBRztvQkFFakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBRXhCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO3dCQUU1QyxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDOzRCQUMxQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUN0QyxDQUFDO29CQUdMLENBQUM7b0JBR0QsUUFBUSxFQUFFLENBQUM7Z0JBRWYsQ0FBQyxDQUFDLENBQUM7WUFFUCxDQUFDLEVBQUUsVUFBUyxHQUFHO2dCQUNYLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBR04sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQixDQUFDO2dCQUFDLElBQUksQ0FBQyxDQUFDO29CQUVKLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFFeEIsQ0FBQztZQUVMLENBQUMsQ0FBQyxDQUFDO1FBS1AsQ0FBQyxDQUFDLENBQUM7SUFHUCxDQUFDO0lBR0QseUJBQVcsR0FBWCxVQUFZLEdBQWlFO1FBQ3pFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDTixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO2dCQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQztZQUNsRCxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO2dCQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUMvQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUN2QyxDQUFDO0lBQ0wsQ0FBQztJQUNMLFVBQUM7QUFBRCxDQTVUQSxBQTRUQyxJQUFBO0FBQ0QsaUJBQVMsR0FBRyxDQUFBIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibGV0IGV4ZWMgPSByZXF1aXJlKFwicHJvbWlzZWQtZXhlY1wiKTtcbmltcG9ydCAqIGFzIFByb21pc2UgZnJvbSBcImJsdWViaXJkXCI7XG5pbXBvcnQgKiBhcyBPcyBmcm9tIFwib3NcIjtcbmltcG9ydCBsc3VzYmRldiA9IHJlcXVpcmUoXCJsc3VzYmRldlwiKTtcbmltcG9ydCBhc3luYyA9IHJlcXVpcmUoXCJhc3luY1wiKTtcblxubGV0IGFwaVZlcnNpb246IHN0cmluZyA9IHJlcXVpcmUoX19kaXJuYW1lICsgXCIvcGFja2FnZS5qc29uXCIpLmFwaVZlcnNpb247XG5cblxuZnVuY3Rpb24gY2hlY2tpbmcoY2hlY2thbnN3ZXIsIGV4ZSkge1xuXG4gICAgbGV0IGNtZCA9IGV4ZSArIFwiIC1hIFwiICsgY2hlY2thbnN3ZXIuYWRkcmVzcyArIFwiIC1ZIDIwIC1uIC1mIC1nIC1wXCIgKyBjaGVja2Fuc3dlci5kZXY7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2U8SUFkZHJlc3M+KGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuXG5cbiAgICAgICAgZXhlYyhjbWQpLnRoZW4oZnVuY3Rpb24oZGF0YSkgeyAvLyBmaXJtd2FyZVxuICAgICAgICAgICAgbGV0IGxpbmVzID0gZGF0YS5zcGxpdChcIlxcblwiKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcblxuXG5cbiAgICAgICAgICAgICAgICBpZiAobGluZXNbaV0uc3BsaXQoXCJlcmlhbCBOdW1iZXI6XCIpLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmVzW2ldLnNwbGl0KFwiZXJpYWwgTnVtYmVyOiBcIilbMV0ubGVuZ3RoID4gMSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja2Fuc3dlci5zZXJpYWwgPSBsaW5lc1tpXS5zcGxpdChcImVyaWFsIE51bWJlcjogXCIpWzFdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluZXNbaV0uc3BsaXQoXCJhcnQgTnVtYmVyOlwiKS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmVzW2ldLnNwbGl0KFwiYXJ0IE51bWJlcjogXCIpWzFdLmxlbmd0aCA+IDEpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2Fuc3dlci5zZXJpYWwgKz0gXCIvXCIgKyBsaW5lc1tpXS5zcGxpdChcImFydCBOdW1iZXI6IFwiKVsxXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYW5zd2VyLnNlcmlhbCA9IFwibm9uZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2thbnN3ZXIuc2VyaWFsID0gXCJub25lXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cblxuXG5cblxuICAgICAgICAgICAgICAgIGlmIChsaW5lc1tpXS5zcGxpdChcImlybXdhcmU6XCIpLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmVzW2ldLnNwbGl0KFwiaXJtd2FyZTogXCIpWzFdLmxlbmd0aCA+IDEpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2thbnN3ZXIuZmlybXdhcmUgPSBsaW5lc1tpXS5zcGxpdChcImlybXdhcmU6IFwiKVsxXTtcblxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2thbnN3ZXIuZmlybXdhcmUgPSBcIm5vbmVcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobGluZXNbaV0uc3BsaXQoXCJhbnVmYWN0dXJpbmcgRGF0ZTpcIikubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAobGluZXNbaV0uc3BsaXQoXCJhbnVmYWN0dXJpbmcgRGF0ZTogXCIpWzFdLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYW5zd2VyLmRhdGVwcm9kID0gbGluZXNbaV0uc3BsaXQoXCJhbnVmYWN0dXJpbmcgRGF0ZTogXCIpWzFdO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2thbnN3ZXIuZGF0ZXByb2QgPSBcIm5vbmVcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG5cblxuICAgICAgICAgICAgaWYgKGNoZWNrYW5zd2VyLnNlcmlhbCAmJiBjaGVja2Fuc3dlci5maXJtd2FyZSAmJiBjaGVja2Fuc3dlci5kYXRlcHJvZCkge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoY2hlY2thbnN3ZXIpO1xuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlamVjdChcIm1hbGZvcm1lZCBhbnN3ZXJcIik7XG4gICAgICAgICAgICB9XG5cblxuXG5cblxuICAgICAgICAgICAgLy8gICBjaGVja2Fuc3dlci5maXJtd2FyZSA9IGRhdGE7XG5cbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfSk7XG5cblxuXG4gICAgfSk7XG5cbn1cblxuXG5cbmZ1bmN0aW9uIHByZXBhcmVfYWRkcmVzcyhhZGRyZXNzZXM6IElBZGRyZXNzW10pIHtcbiAgICBsZXQgcmVhZGRyID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhZGRyZXNzZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcmVhZGRyW2ldID0geyB1dWlkOiBhZGRyZXNzZXNbaV0udXVpZCwgZGV2OiBhZGRyZXNzZXNbaV0uaHViLCBhZGRyZXNzOiBhZGRyZXNzZXNbaV0uYWRkcmVzcyB9O1xuXG4gICAgfVxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShyZWFkZHIpO1xufVxuXG5cblxuaW50ZXJmYWNlIElzdHJpbmcge1xuICAgIHZvbHRhZ2U6IG51bWJlcjtcbiAgICBjdXJyZW50OiBudW1iZXI7XG4gICAgcG93ZXI6IG51bWJlcjtcbn1cblxuXG5cbmludGVyZmFjZSBJQVBJIHtcblxuICAgIF9pZDogc3RyaW5nO1xuICAgIHVpZDogc3RyaW5nO1xuICAgIGJvb3RJZDogc3RyaW5nO1xuICAgIGJvb3RUaW1lOiBudW1iZXI7XG4gICAgYWN0aXZlOiBib29sZWFuO1xuICAgIHVwZGF0ZWRBdDogbnVtYmVyO1xuICAgIGRhdGU6IHN0cmluZztcbiAgICBzdHJpbmdzOiBJc3RyaW5nW107XG4gICAgZ3JpZDoge1xuICAgICAgICB2b2x0YWdlOiBudW1iZXI7XG4gICAgICAgIGN1cnJlbnQ6IG51bWJlcjtcbiAgICAgICAgcG93ZXI6IG51bWJlcjtcbiAgICAgICAgaHo6IG51bWJlcjtcbiAgICB9O1xuICAgIERjQWNDdnJFZmY6IG51bWJlcjtcbiAgICBpbnZUZW1wOiBudW1iZXI7XG4gICAgZW52VGVtcDogbnVtYmVyO1xuICAgIGRhaWx5RW5lcmd5OiBudW1iZXI7XG4gICAgd2Vla2x5RW5lcmd5OiBudW1iZXI7XG4gICAgbGFzdDdEYXlzRW5lcmd5OiBudW1iZXI7XG4gICAgbW9udGhseUVuZXJneTogbnVtYmVyO1xuICAgIHllYXJseUVuZXJneTogbnVtYmVyO1xuICAgIHRvdGFsRW5lcmd5OiBudW1iZXI7XG4gICAgcGFydGlhbEVuZXJneTogbnVtYmVyO1xuICAgIGJ1bGtWOiBudW1iZXI7XG4gICAgYnVsa01WOiBudW1iZXI7XG4gICAgYnVsa0RDOiBudW1iZXI7XG4gICAgaXNvUmVzOiBudW1iZXI7XG4gICAgZ3JpZFZEQzogbnVtYmVyO1xuICAgIGdyaWRBdmdWOiBudW1iZXI7XG4gICAgZ3JpZERDSHo6IG51bWJlcjtcbiAgICBwZWFrTWF4OiBudW1iZXI7XG4gICAgcGVha0RheTogbnVtYmVyO1xuICAgIHBpbjFXOiBudW1iZXI7XG4gICAgcGluMlc6IG51bWJlcjtcblxuICAgIGZpcm13YXJlOiBzdHJpbmc7XG4gICAgZGF0ZXByb2Q6IHN0cmluZztcbiAgICBzZXJpYWw6IHN0cmluZztcbiAgICBhZGRyZXNzOiBudW1iZXI7XG4gICAgbW9kZWw6IHN0cmluZztcbiAgICBhcGlWZXJzaW9uOiBzdHJpbmc7XG59XG5cblxuXG5pbnRlcmZhY2UgSUFkZHJlc3Mge1xuICAgIHV1aWQ6IHN0cmluZztcbiAgICBkZXY/OiBzdHJpbmc7XG4gICAgYWRkcmVzczogbnVtYmVyO1xuICAgIGh1Yj86IHN0cmluZztcbiAgICBmaXJtd2FyZT86IHN0cmluZztcbiAgICBkYXRlcHJvZD86IHN0cmluZztcbiAgICBzZXJpYWw/OiBzdHJpbmc7XG4gICAgbW9kZWw/OiBzdHJpbmc7XG4gICAgYXBpVmVyc2lvbj86IHN0cmluZztcbn1cblxuY2xhc3MgQUpTIHtcbiAgICBhZGRyZXNzZXM6IElBZGRyZXNzW107XG4gICAgdGltZXpvbmU6IHN0cmluZztcbiAgICBleGVjOiBzdHJpbmc7XG4gICAgYXBpVmVyc2lvbjogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKGFkZHJlc3NlczogSUFkZHJlc3NbXSwgdGltZXpvbmU6IHN0cmluZywgZXhlPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYXBpVmVyc2lvbiA9IGFwaVZlcnNpb247XG4gICAgICAgIHRoaXMuYWRkcmVzc2VzID0gYWRkcmVzc2VzO1xuICAgICAgICB0aGlzLnRpbWV6b25lID0gdGltZXpvbmU7XG4gICAgICAgIGxldCBjbWQ6IHN0cmluZztcbiAgICAgICAgaWYgKGV4ZSkge1xuICAgICAgICAgICAgY21kID0gZXhlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKE9zLmFyY2goKSA9PT0gXCJhcm1cIikge1xuICAgICAgICAgICAgICAgIGNtZCA9IF9fZGlybmFtZSArIFwiL2Jpbi9yYXNwMi9hdXJvcmEuYmluXCI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKE9zLmFyY2goKSA9PT0gXCJ4NjRcIikge1xuICAgICAgICAgICAgICAgIGNtZCA9IF9fZGlybmFtZSArIFwiL2Jpbi94NjQvYXVyb3JhLmJpblwiO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChPcy5hcmNoKCkgPT09IFwiaWEzMlwiKSB7XG4gICAgICAgICAgICAgICAgY21kID0gX19kaXJuYW1lICsgXCIvYmluL2lhMzIvYXVyb3JhLmJpblwiO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjbWQgPSBcImF1cm9yYVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5leGVjID0gY21kO1xuICAgIH1cblxuICAgIGRhdGEoKSB7XG5cbiAgICAgICAgbGV0IGV4ZSA9IHRoaXMuZXhlYztcbiAgICAgICAgbGV0IHRpbWV6b25lID0gdGhpcy50aW1lem9uZTtcblxuICAgICAgICBsZXQgYWRkcmVzc2Vzb3B0aW9ucyA9IHRoaXMuYWRkcmVzc2VzO1xuXG4gICAgICAgIGxldCBwcmVwYXJlZF9hZGRyZXNzZXMgPSBwcmVwYXJlX2FkZHJlc3MoYWRkcmVzc2Vzb3B0aW9ucyk7XG5cbiAgICAgICAgbGV0IHRoYXQgPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxJQVBJW10+KGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuXG4gICAgICAgICAgICBsZXQgY2hlY2ttb2RlbCA9IFtdO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFkZHJlc3Nlc29wdGlvbnMubGVuZ3RoOyBpKyspIHtcblxuICAgICAgICAgICAgICAgIGlmICghYWRkcmVzc2Vzb3B0aW9uc1tpXS5zZXJpYWwgfHwgYWRkcmVzc2Vzb3B0aW9uc1tpXS5zZXJpYWwgPT09IFwibm9uZVwiIHx8ICFhZGRyZXNzZXNvcHRpb25zW2ldLmZpcm13YXJlIHx8IGFkZHJlc3Nlc29wdGlvbnNbaV0uZmlybXdhcmUgPT09IFwibm9uZVwiIHx8ICFhZGRyZXNzZXNvcHRpb25zW2ldLmRhdGVwcm9kIHx8IGFkZHJlc3Nlc29wdGlvbnNbaV0uZGF0ZXByb2QgPT09IFwibm9uZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrbW9kZWwucHVzaChhZGRyZXNzZXNvcHRpb25zW2ldLnV1aWQpO1xuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIGlmIChjaGVja21vZGVsLmxlbmd0aCA+IDApIHtcblxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2hlY2tpbmcgdmVyc2lvbnNcIik7XG5cbiAgICAgICAgICAgICAgICB0aGF0LmNoZWNrQWxsKGNoZWNrbW9kZWwpLnRoZW4oZnVuY3Rpb24oYSkge1xuXG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhW2ldLnNlcmlhbCAmJiBhW2ldLnNlcmlhbCAhPT0gXCJub25lXCIgJiYgYVtpXS5maXJtd2FyZSAmJiBhW2ldLmZpcm13YXJlICE9PSBcIm5vbmVcIiAmJiBhW2ldLmRhdGVwcm9kICYmIGFbaV0uZGF0ZXByb2QgIT09IFwibm9uZVwiKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBhZGQgPSAwOyBhZGQgPCB0aGF0LmFkZHJlc3Nlcy5sZW5ndGg7IGFkZCsrKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQuYWRkcmVzc2VzW2FkZF0udXVpZCA9PT0gYVtpXS51dWlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmFkZHJlc3Nlc1thZGRdID0gYVtpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cblxuXG5cbiAgICAgICAgICAgICAgICAgICAgZXhlYyhfX2Rpcm5hbWUgKyBcIi9hdXJvcmEuc2ggLWEgXFxcIlwiICsgcHJlcGFyZWRfYWRkcmVzc2VzICsgXCJcXFwiIC10IFxcXCJcIiArIHRpbWV6b25lICsgXCJcXFwiIC1lIFxcXCJcIiArIGV4ZSArIFwiXFxcIlwiKS50aGVuKGZ1bmN0aW9uKGRhdGE6IHN0cmluZykge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXBpYW5zOiBJQVBJW10gPSBKU09OLnBhcnNlKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcGlhbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBmID0gMDsgZiA8IGEubGVuZ3RoOyBmKyspIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXBpYW5zW2ldLnVpZCA9PT0gYVtmXS51dWlkKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhW2ZdLmZpcm13YXJlKSBhcGlhbnNbaV0uZmlybXdhcmUgPSBhW2ZdLmZpcm13YXJlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFbZl0uZGF0ZXByb2QpIGFwaWFuc1tpXS5kYXRlcHJvZCA9IGFbZl0uZGF0ZXByb2Q7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYVtmXS5zZXJpYWwpIGFwaWFuc1tpXS5zZXJpYWwgPSBhW2ZdLnNlcmlhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhW2ZdLmFkZHJlc3MpIGFwaWFuc1tpXS5hZGRyZXNzID0gYVtmXS5hZGRyZXNzO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGlhbnNbaV0ubW9kZWwgPSBcIkF1cm9yYVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpYW5zW2ldLmFwaVZlcnNpb24gPSBhcGlWZXJzaW9uO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShhcGlhbnMpO1xuXG4gICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG5cbiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgZXhlYyhfX2Rpcm5hbWUgKyBcIi9hdXJvcmEuc2ggLWEgXFxcIlwiICsgcHJlcGFyZWRfYWRkcmVzc2VzICsgXCJcXFwiIC10IFxcXCJcIiArIHRpbWV6b25lICsgXCJcXFwiIC1lIFxcXCJcIiArIGV4ZSArIFwiXFxcIlwiKS50aGVuKGZ1bmN0aW9uKGRhdGE6IHN0cmluZykge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXBpYW5zOiBJQVBJW10gPSBKU09OLnBhcnNlKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcGlhbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGlhbnNbaV0ubW9kZWwgPSBcIkF1cm9yYVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwaWFuc1tpXS5hcGlWZXJzaW9uID0gYXBpVmVyc2lvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShhcGlhbnMpO1xuICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB9KTtcblxuXG4gICAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgZXhlYyhfX2Rpcm5hbWUgKyBcIi9hdXJvcmEuc2ggLWEgXFxcIlwiICsgcHJlcGFyZWRfYWRkcmVzc2VzICsgXCJcXFwiIC10IFxcXCJcIiArIHRpbWV6b25lICsgXCJcXFwiIC1lIFxcXCJcIiArIGV4ZSArIFwiXFxcIlwiKS50aGVuKGZ1bmN0aW9uKGRhdGE6IHN0cmluZykge1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCBhcGlhbnM6IElBUElbXSA9IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXBpYW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBmID0gMDsgZiA8IGFkZHJlc3Nlc29wdGlvbnMubGVuZ3RoOyBmKyspIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcGlhbnNbaV0udWlkID09PSBhZGRyZXNzZXNvcHRpb25zW2ZdLnV1aWQpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWRkcmVzc2Vzb3B0aW9uc1tmXS5maXJtd2FyZSkgYXBpYW5zW2ldLmZpcm13YXJlID0gYWRkcmVzc2Vzb3B0aW9uc1tmXS5maXJtd2FyZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFkZHJlc3Nlc29wdGlvbnNbZl0uZGF0ZXByb2QpIGFwaWFuc1tpXS5kYXRlcHJvZCA9IGFkZHJlc3Nlc29wdGlvbnNbZl0uZGF0ZXByb2Q7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhZGRyZXNzZXNvcHRpb25zW2ZdLnNlcmlhbCkgYXBpYW5zW2ldLnNlcmlhbCA9IGFkZHJlc3Nlc29wdGlvbnNbZl0uc2VyaWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWRkcmVzc2Vzb3B0aW9uc1tmXS5hZGRyZXNzKSBhcGlhbnNbaV0uYWRkcmVzcyA9IGFkZHJlc3Nlc29wdGlvbnNbZl0uYWRkcmVzcztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGlhbnNbaV0ubW9kZWwgPSBcIkF1cm9yYVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGlhbnNbaV0uYXBpVmVyc2lvbiA9IGFwaVZlcnNpb247XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGFwaWFucyk7XG5cbiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICB9XG5cbiAgICBjaGVjayh1dWlkOiBzdHJpbmcpIHsgLy8gZ2V0IG1vZGVsLCBmaXJtd2FyZSwgcHJvZHVjdGlvbiBkYXRlXG5cblxuICAgICAgICBpZiAoIXV1aWQpIHRocm93IEVycm9yKFwibm8gdWlkIHByb3ZpZGVkXCIpO1xuXG5cbiAgICAgICAgbGV0IGV4ZSA9IHRoaXMuZXhlYztcblxuICAgICAgICBsZXQgYWRkcmVzc2VzID0gdGhpcy5hZGRyZXNzZXM7XG5cblxuXG4gICAgICAgIGxldCBjaGVja2Fuc3dlciA9IDxJQWRkcmVzcz57IHV1aWQ6IHV1aWQgfTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8SUFkZHJlc3M+KGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuXG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWRkcmVzc2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGFkZHJlc3Nlc1tpXS51dWlkID09PSB1dWlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrYW5zd2VyLmh1YiA9IGFkZHJlc3Nlc1tpXS5odWI7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrYW5zd2VyLmFkZHJlc3MgPSBhZGRyZXNzZXNbaV0uYWRkcmVzcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgbHN1c2JkZXYoKS50aGVuKGZ1bmN0aW9uKGRldmlzKSB7XG5cblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGV2aXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRldmlzW2ldLmh1YiA9PT0gY2hlY2thbnN3ZXIuaHViKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja2Fuc3dlci5kZXYgPSBkZXZpc1tpXS5kZXY7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cblxuXG5cbiAgICAgICAgICAgICAgICBjaGVja2luZyhjaGVja2Fuc3dlciwgZXhlKS50aGVuKGZ1bmN0aW9uKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShhKTtcbiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tpbmcoY2hlY2thbnN3ZXIsIGV4ZSkudGhlbihmdW5jdGlvbihhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGEpO1xuICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNraW5nKGNoZWNrYW5zd2VyLCBleGUpLnRoZW4oZnVuY3Rpb24oYSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoYSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2luZyhjaGVja2Fuc3dlciwgZXhlKS50aGVuKGZ1bmN0aW9uKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnIpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYW5zd2VyLnNlcmlhbCA9IFwibm9uZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2Fuc3dlci5maXJtd2FyZSA9IFwibm9uZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2Fuc3dlci5kYXRlcHJvZCA9IFwibm9uZVwiO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoY2hlY2thbnN3ZXIpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG5cblxuICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcImVycnJycnIyXCIpO1xuXG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgIH0pO1xuXG5cbiAgICAgICAgfSk7XG5cbiAgICB9XG5cblxuICAgIGNoZWNrQWxsKGFkZHM/OiBzdHJpbmdbXSkge1xuXG4gICAgICAgIGxldCBhZGRyZXNzZXM6IElBZGRyZXNzW10gPSBbXTtcbiAgICAgICAgbGV0IHRoaXNhZGRyZXNzZXMgPSB0aGlzLmFkZHJlc3NlcztcbiAgICAgICAgaWYgKGFkZHMpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpc2FkZHJlc3Nlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGEgPSAwOyBhIDwgYWRkcy5sZW5ndGg7IGErKykge1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzYWRkcmVzc2VzW2ldLnV1aWQgPT09IGFkZHNbYV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3Nlcy5wdXNoKHRoaXNhZGRyZXNzZXNbaV0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhZGRyZXNzZXMgPSB0aGlzYWRkcmVzc2VzO1xuICAgICAgICB9XG5cblxuXG4gICAgICAgIGxldCB0aGF0ID0gdGhpcztcblxuICAgICAgICBsZXQgYWxsYW5zd2VyczogSUFkZHJlc3NbXSA9IFtdO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxJQWRkcmVzc1tdPihmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcblxuXG4gICAgICAgICAgICBhc3luYy5lYWNoKGFkZHJlc3NlcywgZnVuY3Rpb24oaXRlcmF0b3IsIGNhbGxiYWNrKSB7XG5cbiAgICAgICAgICAgICAgICB0aGF0LmNoZWNrKGl0ZXJhdG9yLnV1aWQpLnRoZW4oZnVuY3Rpb24oY2hrYW5zdykge1xuXG4gICAgICAgICAgICAgICAgICAgIGFsbGFuc3dlcnMucHVzaChjaGthbnN3KTtcblxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuXG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXNhZGRyZXNzZXMubGVuZ3RoOyBpKyspIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXNhZGRyZXNzZXNbaV0udXVpZCA9PT0gaXRlcmF0b3IudXVpZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbGFuc3dlcnMucHVzaCh0aGlzYWRkcmVzc2VzW2ldKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG5cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgfSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICAvLyBPbmUgb2YgdGhlIGl0ZXJhdGlvbnMgcHJvZHVjZWQgYW4gZXJyb3IuXG4gICAgICAgICAgICAgICAgICAgIC8vIEFsbCBwcm9jZXNzaW5nIHdpbGwgbm93IHN0b3AuXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShhbGxhbnN3ZXJzKTtcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSk7XG5cblxuXG5cbiAgICAgICAgfSk7XG5cblxuICAgIH1cblxuXG4gICAgcmVjb25maWd1cmUob3B0OiB7IGFkZHJlc3Nlcz86IElBZGRyZXNzW10sIHRpbWV6b25lPzogc3RyaW5nLCBleGVjPzogc3RyaW5nIH0pIHtcbiAgICAgICAgaWYgKG9wdCkge1xuICAgICAgICAgICAgaWYgKG9wdC5hZGRyZXNzZXMpIHRoaXMuYWRkcmVzc2VzID0gb3B0LmFkZHJlc3NlcztcbiAgICAgICAgICAgIGlmIChvcHQudGltZXpvbmUpIHRoaXMudGltZXpvbmUgPSBvcHQudGltZXpvbmU7XG4gICAgICAgICAgICBpZiAob3B0LmV4ZWMpIHRoaXMuZXhlYyA9IG9wdC5leGVjO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0ID0gQUpTXG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
//# sourceMappingURL=data:application/json;base64,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QyxDQUFDO0lBR1AsQ0FBQztJQUdELHlCQUFXLEdBQVgsVUFBWSxHQUFpRTtRQUN6RSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ04sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztnQkFBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7WUFDbEQsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztnQkFBQyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDL0MsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDdkMsQ0FBQztJQUNMLENBQUM7SUFDTCxVQUFDO0FBQUQsQ0FoVUEsQUFnVUMsSUFBQTtBQUNELGlCQUFTLEdBQUcsQ0FBQSIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImxldCBleGVjID0gcmVxdWlyZShcInByb21pc2VkLWV4ZWNcIik7XG5pbXBvcnQgKiBhcyBQcm9taXNlIGZyb20gXCJibHVlYmlyZFwiO1xuaW1wb3J0ICogYXMgT3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgbHN1c2JkZXYgPSByZXF1aXJlKFwibHN1c2JkZXZcIik7XG5pbXBvcnQgYXN5bmMgPSByZXF1aXJlKFwiYXN5bmNcIik7XG5cbmxldCBhcGlWZXJzaW9uOiBzdHJpbmcgPSByZXF1aXJlKF9fZGlybmFtZSArIFwiL3BhY2thZ2UuanNvblwiKS5hcGlWZXJzaW9uO1xuXG5cbmZ1bmN0aW9uIGNoZWNraW5nKGNoZWNrYW5zd2VyLCBleGUpIHtcblxuICAgIGxldCBjbWQgPSBleGUgKyBcIiAtYSBcIiArIGNoZWNrYW5zd2VyLmFkZHJlc3MgKyBcIiAtWSAyMCAtbiAtZiAtZyAtcFwiICsgY2hlY2thbnN3ZXIuZGV2O1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPElBZGRyZXNzPihmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcblxuXG4gICAgICAgIGV4ZWMoY21kKS50aGVuKGZ1bmN0aW9uKGRhdGEpIHsgLy8gZmlybXdhcmVcbiAgICAgICAgICAgIGxldCBsaW5lcyA9IGRhdGEuc3BsaXQoXCJcXG5cIik7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG5cblxuXG4gICAgICAgICAgICAgICAgaWYgKGxpbmVzW2ldLnNwbGl0KFwiZXJpYWwgTnVtYmVyOlwiKS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsaW5lc1tpXS5zcGxpdChcImVyaWFsIE51bWJlcjogXCIpWzFdLmxlbmd0aCA+IDEpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2thbnN3ZXIuc2VyaWFsID0gbGluZXNbaV0uc3BsaXQoXCJlcmlhbCBOdW1iZXI6IFwiKVsxXTtcblxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2thbnN3ZXIuc2VyaWFsID0gXCJub25lXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgIGlmIChsaW5lc1tpXS5zcGxpdChcImFydCBOdW1iZXI6XCIpLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmVzW2ldLnNwbGl0KFwiYXJ0IE51bWJlcjogXCIpWzFdLmxlbmd0aCA+IDEpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2thbnN3ZXIucG4gPSBsaW5lc1tpXS5zcGxpdChcImFydCBOdW1iZXI6IFwiKVsxXTtcblxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2thbnN3ZXIucG4gPSBcIm5vbmVcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuXG5cbiAgICAgICAgICAgICAgICBpZiAobGluZXNbaV0uc3BsaXQoXCJpcm13YXJlOlwiKS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsaW5lc1tpXS5zcGxpdChcImlybXdhcmU6IFwiKVsxXS5sZW5ndGggPiAxKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYW5zd2VyLmZpcm13YXJlID0gbGluZXNbaV0uc3BsaXQoXCJpcm13YXJlOiBcIilbMV07XG5cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYW5zd2VyLmZpcm13YXJlID0gXCJub25lXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGxpbmVzW2ldLnNwbGl0KFwiYW51ZmFjdHVyaW5nIERhdGU6XCIpLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmVzW2ldLnNwbGl0KFwiYW51ZmFjdHVyaW5nIERhdGU6IFwiKVsxXS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja2Fuc3dlci5kYXRlcHJvZCA9IGxpbmVzW2ldLnNwbGl0KFwiYW51ZmFjdHVyaW5nIERhdGU6IFwiKVsxXTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYW5zd2VyLmRhdGVwcm9kID0gXCJub25lXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuXG5cbiAgICAgICAgICAgIGlmIChjaGVja2Fuc3dlci5zZXJpYWwgJiYgY2hlY2thbnN3ZXIuZmlybXdhcmUgJiYgY2hlY2thbnN3ZXIuZGF0ZXByb2QpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKGNoZWNrYW5zd2VyKTtcblxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZWplY3QoXCJtYWxmb3JtZWQgYW5zd2VyXCIpO1xuICAgICAgICAgICAgfVxuXG5cblxuXG5cbiAgICAgICAgICAgIC8vICAgY2hlY2thbnN3ZXIuZmlybXdhcmUgPSBkYXRhO1xuXG4gICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIH0pO1xuXG5cblxuICAgIH0pO1xuXG59XG5cblxuXG5mdW5jdGlvbiBwcmVwYXJlX2FkZHJlc3MoYWRkcmVzc2VzOiBJQWRkcmVzc1tdKSB7XG4gICAgbGV0IHJlYWRkciA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWRkcmVzc2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHJlYWRkcltpXSA9IHsgdXVpZDogYWRkcmVzc2VzW2ldLnV1aWQsIGRldjogYWRkcmVzc2VzW2ldLmh1YiwgYWRkcmVzczogYWRkcmVzc2VzW2ldLmFkZHJlc3MgfTtcblxuICAgIH1cbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocmVhZGRyKTtcbn1cblxuXG5cbmludGVyZmFjZSBJc3RyaW5nIHtcbiAgICB2b2x0YWdlOiBudW1iZXI7XG4gICAgY3VycmVudDogbnVtYmVyO1xuICAgIHBvd2VyOiBudW1iZXI7XG59XG5cblxuXG5pbnRlcmZhY2UgSUFQSSB7XG5cbiAgICBfaWQ6IHN0cmluZztcbiAgICB1aWQ6IHN0cmluZztcbiAgICBib290SWQ6IHN0cmluZztcbiAgICBib290VGltZTogbnVtYmVyO1xuICAgIGFjdGl2ZTogYm9vbGVhbjtcbiAgICB1cGRhdGVkQXQ6IG51bWJlcjtcbiAgICBkYXRlOiBzdHJpbmc7XG4gICAgc3RyaW5nczogSXN0cmluZ1tdO1xuICAgIGdyaWQ6IHtcbiAgICAgICAgdm9sdGFnZTogbnVtYmVyO1xuICAgICAgICBjdXJyZW50OiBudW1iZXI7XG4gICAgICAgIHBvd2VyOiBudW1iZXI7XG4gICAgICAgIGh6OiBudW1iZXI7XG4gICAgfTtcbiAgICBEY0FjQ3ZyRWZmOiBudW1iZXI7XG4gICAgaW52VGVtcDogbnVtYmVyO1xuICAgIGVudlRlbXA6IG51bWJlcjtcbiAgICBkYWlseUVuZXJneTogbnVtYmVyO1xuICAgIHdlZWtseUVuZXJneTogbnVtYmVyO1xuICAgIGxhc3Q3RGF5c0VuZXJneTogbnVtYmVyO1xuICAgIG1vbnRobHlFbmVyZ3k6IG51bWJlcjtcbiAgICB5ZWFybHlFbmVyZ3k6IG51bWJlcjtcbiAgICB0b3RhbEVuZXJneTogbnVtYmVyO1xuICAgIHBhcnRpYWxFbmVyZ3k6IG51bWJlcjtcbiAgICBidWxrVjogbnVtYmVyO1xuICAgIGJ1bGtNVjogbnVtYmVyO1xuICAgIGJ1bGtEQzogbnVtYmVyO1xuICAgIGlzb1JlczogbnVtYmVyO1xuICAgIGdyaWRWREM6IG51bWJlcjtcbiAgICBncmlkQXZnVjogbnVtYmVyO1xuICAgIGdyaWREQ0h6OiBudW1iZXI7XG4gICAgcGVha01heDogbnVtYmVyO1xuICAgIHBlYWtEYXk6IG51bWJlcjtcbiAgICBwaW4xVzogbnVtYmVyO1xuICAgIHBpbjJXOiBudW1iZXI7XG5cbiAgICBmaXJtd2FyZTogc3RyaW5nO1xuICAgIGRhdGVwcm9kOiBzdHJpbmc7XG4gICAgc2VyaWFsOiBzdHJpbmc7XG4gICAgcG46IHN0cmluZztcbiAgICBhZGRyZXNzOiBudW1iZXI7XG4gICAgbW9kZWw6IHN0cmluZztcbiAgICBhcGlWZXJzaW9uOiBzdHJpbmc7XG59XG5cblxuXG5pbnRlcmZhY2UgSUFkZHJlc3Mge1xuICAgIHV1aWQ6IHN0cmluZztcbiAgICBkZXY/OiBzdHJpbmc7XG4gICAgYWRkcmVzczogbnVtYmVyO1xuICAgIGh1Yj86IHN0cmluZztcbiAgICBmaXJtd2FyZT86IHN0cmluZztcbiAgICBkYXRlcHJvZD86IHN0cmluZztcbiAgICBwbj86IHN0cmluZztcbiAgICBzZXJpYWw/OiBzdHJpbmc7XG4gICAgbW9kZWw/OiBzdHJpbmc7XG4gICAgYXBpVmVyc2lvbj86IHN0cmluZztcbn1cblxuY2xhc3MgQUpTIHtcbiAgICBhZGRyZXNzZXM6IElBZGRyZXNzW107XG4gICAgdGltZXpvbmU6IHN0cmluZztcbiAgICBleGVjOiBzdHJpbmc7XG4gICAgYXBpVmVyc2lvbjogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKGFkZHJlc3NlczogSUFkZHJlc3NbXSwgdGltZXpvbmU6IHN0cmluZywgZXhlPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYXBpVmVyc2lvbiA9IGFwaVZlcnNpb247XG4gICAgICAgIHRoaXMuYWRkcmVzc2VzID0gYWRkcmVzc2VzO1xuICAgICAgICB0aGlzLnRpbWV6b25lID0gdGltZXpvbmU7XG4gICAgICAgIGxldCBjbWQ6IHN0cmluZztcbiAgICAgICAgaWYgKGV4ZSkge1xuICAgICAgICAgICAgY21kID0gZXhlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKE9zLmFyY2goKSA9PT0gXCJhcm1cIikge1xuICAgICAgICAgICAgICAgIGNtZCA9IF9fZGlybmFtZSArIFwiL2Jpbi9yYXNwMi9hdXJvcmEuYmluXCI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKE9zLmFyY2goKSA9PT0gXCJ4NjRcIikge1xuICAgICAgICAgICAgICAgIGNtZCA9IF9fZGlybmFtZSArIFwiL2Jpbi94NjQvYXVyb3JhLmJpblwiO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChPcy5hcmNoKCkgPT09IFwiaWEzMlwiKSB7XG4gICAgICAgICAgICAgICAgY21kID0gX19kaXJuYW1lICsgXCIvYmluL2lhMzIvYXVyb3JhLmJpblwiO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjbWQgPSBcImF1cm9yYVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5leGVjID0gY21kO1xuICAgIH1cblxuICAgIGRhdGEoKSB7XG5cbiAgICAgICAgbGV0IGV4ZSA9IHRoaXMuZXhlYztcbiAgICAgICAgbGV0IHRpbWV6b25lID0gdGhpcy50aW1lem9uZTtcblxuICAgICAgICBsZXQgYWRkcmVzc2Vzb3B0aW9ucyA9IHRoaXMuYWRkcmVzc2VzO1xuXG4gICAgICAgIGxldCBwcmVwYXJlZF9hZGRyZXNzZXMgPSBwcmVwYXJlX2FkZHJlc3MoYWRkcmVzc2Vzb3B0aW9ucyk7XG5cbiAgICAgICAgbGV0IHRoYXQgPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxJQVBJW10+KGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuXG4gICAgICAgICAgICBsZXQgY2hlY2ttb2RlbCA9IFtdO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFkZHJlc3Nlc29wdGlvbnMubGVuZ3RoOyBpKyspIHtcblxuICAgICAgICAgICAgICAgIGlmICghYWRkcmVzc2Vzb3B0aW9uc1tpXS5zZXJpYWwgfHwgYWRkcmVzc2Vzb3B0aW9uc1tpXS5zZXJpYWwgPT09IFwibm9uZVwiIHx8ICFhZGRyZXNzZXNvcHRpb25zW2ldLnBuIHx8IGFkZHJlc3Nlc29wdGlvbnNbaV0ucG4gPT09IFwibm9uZVwiIHx8ICFhZGRyZXNzZXNvcHRpb25zW2ldLmZpcm13YXJlIHx8IGFkZHJlc3Nlc29wdGlvbnNbaV0uZmlybXdhcmUgPT09IFwibm9uZVwiIHx8ICFhZGRyZXNzZXNvcHRpb25zW2ldLmRhdGVwcm9kIHx8IGFkZHJlc3Nlc29wdGlvbnNbaV0uZGF0ZXByb2QgPT09IFwibm9uZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrbW9kZWwucHVzaChhZGRyZXNzZXNvcHRpb25zW2ldLnV1aWQpO1xuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIGlmIChjaGVja21vZGVsLmxlbmd0aCA+IDApIHtcblxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2hlY2tpbmcgdmVyc2lvbnNcIik7XG5cbiAgICAgICAgICAgICAgICB0aGF0LmNoZWNrQWxsKGNoZWNrbW9kZWwpLnRoZW4oZnVuY3Rpb24oYSkge1xuXG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhW2ldLnNlcmlhbCAmJiBhW2ldLnNlcmlhbCAhPT0gXCJub25lXCIgJiYgYVtpXS5wbiAmJiBhW2ldLnBuICE9PSBcIm5vbmVcIiAmJiBhW2ldLmZpcm13YXJlICYmIGFbaV0uZmlybXdhcmUgIT09IFwibm9uZVwiICYmIGFbaV0uZGF0ZXByb2QgJiYgYVtpXS5kYXRlcHJvZCAhPT0gXCJub25lXCIpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGFkZCA9IDA7IGFkZCA8IHRoYXQuYWRkcmVzc2VzLmxlbmd0aDsgYWRkKyspIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5hZGRyZXNzZXNbYWRkXS51dWlkID09PSBhW2ldLnV1aWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuYWRkcmVzc2VzW2FkZF0gPSBhW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuXG5cblxuICAgICAgICAgICAgICAgICAgICBleGVjKF9fZGlybmFtZSArIFwiL2F1cm9yYS5zaCAtYSBcXFwiXCIgKyBwcmVwYXJlZF9hZGRyZXNzZXMgKyBcIlxcXCIgLXQgXFxcIlwiICsgdGltZXpvbmUgKyBcIlxcXCIgLWUgXFxcIlwiICsgZXhlICsgXCJcXFwiXCIpLnRoZW4oZnVuY3Rpb24oZGF0YTogc3RyaW5nKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhcGlhbnM6IElBUElbXSA9IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFwaWFucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGYgPSAwOyBmIDwgYS5sZW5ndGg7IGYrKykge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcGlhbnNbaV0udWlkID09PSBhW2ZdLnV1aWQpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFbZl0uZmlybXdhcmUpIGFwaWFuc1tpXS5maXJtd2FyZSA9IGFbZl0uZmlybXdhcmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYVtmXS5kYXRlcHJvZCkgYXBpYW5zW2ldLmRhdGVwcm9kID0gYVtmXS5kYXRlcHJvZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhW2ZdLnNlcmlhbCkgYXBpYW5zW2ldLnNlcmlhbCA9IGFbZl0uc2VyaWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFbZl0uYWRkcmVzcykgYXBpYW5zW2ldLmFkZHJlc3MgPSBhW2ZdLmFkZHJlc3M7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYVtmXS5wbikgYXBpYW5zW2ldLnBuID0gYVtmXS5wbjtcblxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGlhbnNbaV0ubW9kZWwgPSBcIkF1cm9yYVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpYW5zW2ldLmFwaVZlcnNpb24gPSBhcGlWZXJzaW9uO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShhcGlhbnMpO1xuXG4gICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG5cbiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgZXhlYyhfX2Rpcm5hbWUgKyBcIi9hdXJvcmEuc2ggLWEgXFxcIlwiICsgcHJlcGFyZWRfYWRkcmVzc2VzICsgXCJcXFwiIC10IFxcXCJcIiArIHRpbWV6b25lICsgXCJcXFwiIC1lIFxcXCJcIiArIGV4ZSArIFwiXFxcIlwiKS50aGVuKGZ1bmN0aW9uKGRhdGE6IHN0cmluZykge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXBpYW5zOiBJQVBJW10gPSBKU09OLnBhcnNlKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcGlhbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGlhbnNbaV0ubW9kZWwgPSBcIkF1cm9yYVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwaWFuc1tpXS5hcGlWZXJzaW9uID0gYXBpVmVyc2lvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShhcGlhbnMpO1xuICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB9KTtcblxuXG4gICAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgZXhlYyhfX2Rpcm5hbWUgKyBcIi9hdXJvcmEuc2ggLWEgXFxcIlwiICsgcHJlcGFyZWRfYWRkcmVzc2VzICsgXCJcXFwiIC10IFxcXCJcIiArIHRpbWV6b25lICsgXCJcXFwiIC1lIFxcXCJcIiArIGV4ZSArIFwiXFxcIlwiKS50aGVuKGZ1bmN0aW9uKGRhdGE6IHN0cmluZykge1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCBhcGlhbnM6IElBUElbXSA9IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXBpYW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBmID0gMDsgZiA8IGFkZHJlc3Nlc29wdGlvbnMubGVuZ3RoOyBmKyspIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcGlhbnNbaV0udWlkID09PSBhZGRyZXNzZXNvcHRpb25zW2ZdLnV1aWQpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWRkcmVzc2Vzb3B0aW9uc1tmXS5maXJtd2FyZSkgYXBpYW5zW2ldLmZpcm13YXJlID0gYWRkcmVzc2Vzb3B0aW9uc1tmXS5maXJtd2FyZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFkZHJlc3Nlc29wdGlvbnNbZl0uZGF0ZXByb2QpIGFwaWFuc1tpXS5kYXRlcHJvZCA9IGFkZHJlc3Nlc29wdGlvbnNbZl0uZGF0ZXByb2Q7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhZGRyZXNzZXNvcHRpb25zW2ZdLnNlcmlhbCkgYXBpYW5zW2ldLnNlcmlhbCA9IGFkZHJlc3Nlc29wdGlvbnNbZl0uc2VyaWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWRkcmVzc2Vzb3B0aW9uc1tmXS5hZGRyZXNzKSBhcGlhbnNbaV0uYWRkcmVzcyA9IGFkZHJlc3Nlc29wdGlvbnNbZl0uYWRkcmVzcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFkZHJlc3Nlc29wdGlvbnNbZl0ucG4pIGFwaWFuc1tpXS5wbiA9IGFkZHJlc3Nlc29wdGlvbnNbZl0ucG47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpYW5zW2ldLm1vZGVsID0gXCJBdXJvcmFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpYW5zW2ldLmFwaVZlcnNpb24gPSBhcGlWZXJzaW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShhcGlhbnMpO1xuXG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgY2hlY2sodXVpZDogc3RyaW5nKSB7IC8vIGdldCBtb2RlbCwgZmlybXdhcmUsIHByb2R1Y3Rpb24gZGF0ZVxuXG5cbiAgICAgICAgaWYgKCF1dWlkKSB0aHJvdyBFcnJvcihcIm5vIHVpZCBwcm92aWRlZFwiKTtcblxuXG4gICAgICAgIGxldCBleGUgPSB0aGlzLmV4ZWM7XG5cbiAgICAgICAgbGV0IGFkZHJlc3NlcyA9IHRoaXMuYWRkcmVzc2VzO1xuXG5cblxuICAgICAgICBsZXQgY2hlY2thbnN3ZXIgPSA8SUFkZHJlc3M+eyB1dWlkOiB1dWlkIH07XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPElBZGRyZXNzPihmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcblxuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFkZHJlc3Nlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChhZGRyZXNzZXNbaV0udXVpZCA9PT0gdXVpZCkge1xuICAgICAgICAgICAgICAgICAgICBjaGVja2Fuc3dlci5odWIgPSBhZGRyZXNzZXNbaV0uaHViO1xuICAgICAgICAgICAgICAgICAgICBjaGVja2Fuc3dlci5hZGRyZXNzID0gYWRkcmVzc2VzW2ldLmFkZHJlc3M7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIGxzdXNiZGV2KCkudGhlbihmdW5jdGlvbihkZXZpcykge1xuXG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRldmlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZXZpc1tpXS5odWIgPT09IGNoZWNrYW5zd2VyLmh1Yikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2thbnN3ZXIuZGV2ID0gZGV2aXNbaV0uZGV2O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG5cblxuXG4gICAgICAgICAgICAgICAgY2hlY2tpbmcoY2hlY2thbnN3ZXIsIGV4ZSkudGhlbihmdW5jdGlvbihhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoYSk7XG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNraW5nKGNoZWNrYW5zd2VyLCBleGUpLnRoZW4oZnVuY3Rpb24oYSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShhKTtcbiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja2luZyhjaGVja2Fuc3dlciwgZXhlKS50aGVuKGZ1bmN0aW9uKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tpbmcoY2hlY2thbnN3ZXIsIGV4ZSkudGhlbihmdW5jdGlvbihhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoYSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2Fuc3dlci5zZXJpYWwgPSBcIm5vbmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2thbnN3ZXIuZmlybXdhcmUgPSBcIm5vbmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2thbnN3ZXIuZGF0ZXByb2QgPSBcIm5vbmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2thbnN3ZXIucG4gPSBcIm5vbmVcIjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGNoZWNrYW5zd2VyKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuXG5cbiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJlcnJycnJyMlwiKTtcblxuICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgICB9KTtcblxuXG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG5cbiAgICBjaGVja0FsbChhZGRzPzogc3RyaW5nW10pIHtcblxuICAgICAgICBsZXQgYWRkcmVzc2VzOiBJQWRkcmVzc1tdID0gW107XG4gICAgICAgIGxldCB0aGlzYWRkcmVzc2VzID0gdGhpcy5hZGRyZXNzZXM7XG4gICAgICAgIGlmIChhZGRzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXNhZGRyZXNzZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBhID0gMDsgYSA8IGFkZHMubGVuZ3RoOyBhKyspIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpc2FkZHJlc3Nlc1tpXS51dWlkID09PSBhZGRzW2FdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzZXMucHVzaCh0aGlzYWRkcmVzc2VzW2ldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWRkcmVzc2VzID0gdGhpc2FkZHJlc3NlcztcbiAgICAgICAgfVxuXG5cblxuICAgICAgICBsZXQgdGhhdCA9IHRoaXM7XG5cbiAgICAgICAgbGV0IGFsbGFuc3dlcnM6IElBZGRyZXNzW10gPSBbXTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8SUFkZHJlc3NbXT4oZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG5cblxuICAgICAgICAgICAgYXN5bmMuZWFjaChhZGRyZXNzZXMsIGZ1bmN0aW9uKGl0ZXJhdG9yLCBjYWxsYmFjaykge1xuXG4gICAgICAgICAgICAgICAgdGhhdC5jaGVjayhpdGVyYXRvci51dWlkKS50aGVuKGZ1bmN0aW9uKGNoa2Fuc3cpIHtcblxuICAgICAgICAgICAgICAgICAgICBhbGxhbnN3ZXJzLnB1c2goY2hrYW5zdyk7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcblxuICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycikge1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzYWRkcmVzc2VzLmxlbmd0aDsgaSsrKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzYWRkcmVzc2VzW2ldLnV1aWQgPT09IGl0ZXJhdG9yLnV1aWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxhbnN3ZXJzLnB1c2godGhpc2FkZHJlc3Nlc1tpXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIH0sIGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gT25lIG9mIHRoZSBpdGVyYXRpb25zIHByb2R1Y2VkIGFuIGVycm9yLlxuICAgICAgICAgICAgICAgICAgICAvLyBBbGwgcHJvY2Vzc2luZyB3aWxsIG5vdyBzdG9wLlxuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoYWxsYW5zd2Vycyk7XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0pO1xuXG5cblxuXG4gICAgICAgIH0pO1xuXG5cbiAgICB9XG5cblxuICAgIHJlY29uZmlndXJlKG9wdDogeyBhZGRyZXNzZXM/OiBJQWRkcmVzc1tdLCB0aW1lem9uZT86IHN0cmluZywgZXhlYz86IHN0cmluZyB9KSB7XG4gICAgICAgIGlmIChvcHQpIHtcbiAgICAgICAgICAgIGlmIChvcHQuYWRkcmVzc2VzKSB0aGlzLmFkZHJlc3NlcyA9IG9wdC5hZGRyZXNzZXM7XG4gICAgICAgICAgICBpZiAob3B0LnRpbWV6b25lKSB0aGlzLnRpbWV6b25lID0gb3B0LnRpbWV6b25lO1xuICAgICAgICAgICAgaWYgKG9wdC5leGVjKSB0aGlzLmV4ZWMgPSBvcHQuZXhlYztcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCA9IEFKU1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9

@@ -28,14 +28,15 @@ let exec = require("promised-exec");

if (lines[i].split("art Number:").length > 1) {
if (lines[i].split("art Number: ")[1].length > 1) {
} else {
checkanswer.serial = "none";
}
}
checkanswer.serial += "/" + lines[i].split("art Number: ")[1];
} else {
checkanswer.serial = "none";
}
}
if (lines[i].split("art Number:").length > 1) {
if (lines[i].split("art Number: ")[1].length > 1) {
checkanswer.pn = lines[i].split("art Number: ")[1];
} else {
checkanswer.serial = "none";
checkanswer.pn = "none";
}

@@ -46,4 +47,2 @@ }

if (lines[i].split("irmware:").length > 1) {

@@ -155,2 +154,3 @@ if (lines[i].split("irmware: ")[1].length > 1) {

serial: string;
pn: string;
address: number;

@@ -170,2 +170,3 @@ model: string;

dateprod?: string;
pn?: string;
serial?: string;

@@ -220,3 +221,3 @@ model?: string;

if (!addressesoptions[i].serial || addressesoptions[i].serial === "none" || !addressesoptions[i].firmware || addressesoptions[i].firmware === "none" || !addressesoptions[i].dateprod || addressesoptions[i].dateprod === "none") {
if (!addressesoptions[i].serial || addressesoptions[i].serial === "none" || !addressesoptions[i].pn || addressesoptions[i].pn === "none" || !addressesoptions[i].firmware || addressesoptions[i].firmware === "none" || !addressesoptions[i].dateprod || addressesoptions[i].dateprod === "none") {
checkmodel.push(addressesoptions[i].uuid);

@@ -237,3 +238,3 @@

if (a[i].serial && a[i].serial !== "none" && a[i].firmware && a[i].firmware !== "none" && a[i].dateprod && a[i].dateprod !== "none") {
if (a[i].serial && a[i].serial !== "none" && a[i].pn && a[i].pn !== "none" && a[i].firmware && a[i].firmware !== "none" && a[i].dateprod && a[i].dateprod !== "none") {

@@ -265,3 +266,5 @@ for (let add = 0; add < that.addresses.length; add++) {

if (a[f].address) apians[i].address = a[f].address;
if (a[f].pn) apians[i].pn = a[f].pn;
apians[i].model = "Aurora";

@@ -317,2 +320,3 @@ apians[i].apiVersion = apiVersion;

if (addressesoptions[f].address) apians[i].address = addressesoptions[f].address;
if (addressesoptions[f].pn) apians[i].pn = addressesoptions[f].pn;

@@ -392,2 +396,3 @@ apians[i].model = "Aurora";

checkanswer.dateprod = "none";
checkanswer.pn = "none";

@@ -394,0 +399,0 @@ resolve(checkanswer);

{
"name": "aurorajs",
"version": "0.1.55",
"version": "0.1.56",
"apiVersion": "0.0.3",

@@ -5,0 +5,0 @@ "main": "index.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc