single-scripture-rcl 3.4.30 → 3.4.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -221,7 +221,10 @@ export function useScriptureAlignmentEdit(_ref) {
|
|
|
221
221
|
var verseObjects = [];
|
|
222
222
|
if (originalScriptureBookObjects) {
|
|
223
223
|
// @ts-ignore
|
|
224
|
-
var
|
|
224
|
+
var languageId = originalScriptureBookObjects === null || originalScriptureBookObjects === void 0 ? void 0 : originalScriptureBookObjects.languageId;
|
|
225
|
+
var origBookId = originalScriptureBookObjects === null || originalScriptureBookObjects === void 0 ? void 0 : originalScriptureBookObjects.bookId;
|
|
226
|
+
var headers = originalScriptureBookObjects === null || originalScriptureBookObjects === void 0 ? void 0 : originalScriptureBookObjects.headers;
|
|
227
|
+
var verses = getVersesForRef(basicReference, originalScriptureBookObjects, languageId);
|
|
225
228
|
if (verses !== null && verses !== void 0 && verses.length) {
|
|
226
229
|
var _iterator = _createForOfIteratorHelper(verses),
|
|
227
230
|
_step;
|
|
@@ -240,6 +243,12 @@ export function useScriptureAlignmentEdit(_ref) {
|
|
|
240
243
|
_iterator.f();
|
|
241
244
|
}
|
|
242
245
|
}
|
|
246
|
+
console.log("originalVerseObjects() - Original scripture found for bookId: ".concat(bookId, ", origBookId: ").concat(origBookId, ", languageId: ").concat(languageId, ", chapter: ").concat(chapter, ", verse: ").concat(verse), {
|
|
247
|
+
headers: headers,
|
|
248
|
+
vo: verseObjects[0]
|
|
249
|
+
});
|
|
250
|
+
} else {
|
|
251
|
+
console.log("originalVerseObjects() - Original scripture book objects are null or undefined for bookId: ".concat(bookId, ", chapter: ").concat(chapter, ", verse: ").concat(verse));
|
|
243
252
|
}
|
|
244
253
|
return verseObjects;
|
|
245
254
|
}, [originalScriptureBookObjects, chapter, verse, bookId]);
|
|
@@ -402,7 +411,8 @@ export function useScriptureAlignmentEdit(_ref) {
|
|
|
402
411
|
wordBank: wordBank,
|
|
403
412
|
alignments: alignments,
|
|
404
413
|
bibleUsfm: bibleUsfm,
|
|
405
|
-
resourceLink: resourceLink
|
|
414
|
+
resourceLink: resourceLink,
|
|
415
|
+
originalScriptureBookObjects: originalScriptureBookObjects
|
|
406
416
|
};
|
|
407
417
|
if (!(alignments !== null && alignments !== void 0 && alignments.length)) {
|
|
408
418
|
_alignerData.errorMessage = 'There are no words to align in the Original language';
|
|
@@ -478,7 +488,7 @@ export function useScriptureAlignmentEdit(_ref) {
|
|
|
478
488
|
}
|
|
479
489
|
|
|
480
490
|
/**
|
|
481
|
-
* callback
|
|
491
|
+
* callback to enable/disable verse editor
|
|
482
492
|
* @param {boolean} editing_ - if true, editor is shown, otherwise editor is hidden
|
|
483
493
|
* @param {string} _newVerseText - optional verse text
|
|
484
494
|
*/
|
|
@@ -641,4 +651,4 @@ export function useScriptureAlignmentEdit(_ref) {
|
|
|
641
651
|
}
|
|
642
652
|
};
|
|
643
653
|
}
|
|
644
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIkYiLCJfZSIsIm5vcm1hbENvbXBsZXRpb24iLCJkaWRFcnIiLCJzdGVwIiwiX2UyIiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIm9iaiIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0IiwibGVuIiwiYXJyMiIsIlJlYWN0IiwiQWxpZ25tZW50SGVscGVycyIsIm1pZ3JhdGVPcmlnaW5hbExhbmd1YWdlSGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJ1c2ZtSGVscGVycyIsImlzRXF1YWwiLCJCb29rT2JqZWN0c1R5cGUiLCJTY3JpcHR1cmVDb25maWciLCJTY3JpcHR1cmVSZWZlcmVuY2VUeXBlIiwiU2VydmVyQ29uZmlnVHlwZSIsIlZlcnNlT2JqZWN0c1R5cGUiLCJnZXRBbGlnbm1lbnRzIiwiZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyIsIk9SSUdJTkFMX1NPVVJDRSIsImdldFZlcnNlc0ZvclJlZiIsImlzVXNmbUFsaWduZWQiLCJ0YXJnZXRWZXJzZVVTRk0iLCJvcmlnaW5hbFZlcnNlT2JqZWN0cyIsIl9vcmlnaW5hbFZlcnNlT2JqZWN0cyIsIl9BbGlnbm1lbnRIZWxwZXJzJGV4dCIsImV4dHJhY3RBbGlnbm1lbnRzRnJvbVRhcmdldFZlcnNlIiwiYWxpZ25tZW50cyIsIndvcmRCYW5rIiwiYXJlQWxnbm1lbnRzQ29tcGxldGUiLCJnZXRDdXJyZW50VmVyc2VVc2ZtIiwidXBkYXRlZFZlcnNlT2JqZWN0cyIsImluaXRpYWxWZXJzZU9iamVjdHMiLCJ2ZXJzZVRleHRDaGFuZ2VkIiwibmV3VmVyc2VUZXh0IiwiY3VycmVudFZlcnNlT2JqZWN0c18iLCJfQWxpZ25tZW50SGVscGVycyR1cGQiLCJ1cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZSIsInRhcmdldFZlcnNlVGV4dCIsImNvbnZlcnRWZXJzZURhdGFUb1VTRk0iLCJhbGxTcGFjZXMiLCJ0ZXh0IiwiaGFzVGV4dENoYW5nZWRTaWduaWZpY2FudGx5IiwiaW5pdGlhbFZlcnNlVGV4dCIsImNoYW5nZWQiLCJsZW5ndGhEaWZmZXJlbmNlIiwiZmlyc3RQYXJ0T2ZJbml0aWFsIiwic3Vic3RyaW5nIiwibGFzdENoYXJzIiwicG9zIiwibGFzdEluZGV4T2YiLCJsYXN0VXNmbVRhZyIsImVuZHNXaXRoUXVvdGUiLCJ1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0IiwiX3JlZiIsImN1cnJlbnRJbmRleCIsImVuYWJsZUVkaXQiLCJlbmFibGVBbGlnbm1lbnQiLCJodHRwQ29uZmlnIiwiaXNOZXdUZXN0YW1lbnQiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzIiwib3JpZ2luYWxSZXBvVXJsIiwicmVmZXJlbmNlIiwic2NyaXB0dXJlQ29uZmlnIiwic2NyaXB0dXJlU2V0dGluZ3MiLCJzZXRTYXZlZENoYW5nZXMiLCJzb3VyY2VMYW5ndWFnZSIsInN0YXJ0RWRpdEJyYW5jaCIsInRhcmdldExhbmd1YWdlIiwidGl0bGUiLCJ3b3JraW5nUmVzb3VyY2VCcmFuY2giLCJfUmVhY3QkdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsImFsaWduZWQiLCJhbGlnbmVyRGF0YSIsImVkaXRpbmciLCJuZXdBbGlnbm1lbnRzIiwiX1JlYWN0JHVzZVN0YXRlMiIsInN0YXRlIiwic2V0U3RhdGVfIiwiX3N0YXRlIiwiY2hhcHRlciIsInZlcnNlIiwiYm9va0lkIiwiYmFzaWNSZWZlcmVuY2UiLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiY2xlYXJDaGFuZ2VzIiwiY29uc29sZSIsImxvZyIsImNvbmNhdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJjbGVhclN0YXRlIiwib3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5nc18iLCJyZXNvdXJjZUlkIiwib3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5ncyIsInJlc291cmNlTGluayIsInVzZU1lbW8iLCJ2ZXJzZU9iamVjdHMiLCJ2ZXJzZXMiLCJsYW5ndWFnZUlkIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJfdmVyc2VSZWZlcmVuY2UkdmVyc2UiLCJ2ZXJzZVJlZmVyZW5jZSIsIm9yaWdWZXJzZU9iamVjdHMiLCJ2ZXJzZURhdGEiLCJnZXRDdXJyZW50VmVyc2VPYmplY3RzIiwiX3VwZGF0ZWRWZXJzZU9iamVjdHMiLCJ1c2VFZmZlY3QiLCJub3RFbXB0eSIsImFsaWduZWRfIiwicmVzdWx0cyIsImdldENoYW5nZXMiLCJfbmV3U3RhdGUiLCJ1cGRhdGVkVmVyc2VPYmplY3RzXyIsInVwZGF0ZVZlcnNlV2l0aE5ld0FsaWdubWVudHMiLCJfQWxpZ25tZW50SGVscGVycyR1cGQyIiwidGFyZ2V0VmVyc2VPYmplY3RzIiwiX3NjcmlwdHVyZUNvbmZpZyR2ZXJzIiwicmVmIiwidmVyc2VzRm9yUmVmIiwiaXNNaWdyYXRlZCIsInByZWZpeCIsIl9pbml0aWFsVmVyc2VPYmplY3RzIiwidXBkYXRlZEFsaWdubWVudHMiLCJpbml0aWFsQWxpZ25tZW50cyIsInNhbWUiLCJmaXJzdERpZmYiLCJ1cGRhdGVkQWxpZ25tZW50IiwiaW5pdGlhbEFsaWdubWVudCIsImRpZmZlcmVudCIsIm1pZ3JhdGVBbGlnbm1lbnRzIiwibWlncmF0ZVRhcmdldEFsaWdubWVudHNUb09yaWdpbmFsIiwiaGFuZGxlQWxpZ25tZW50Q2xpY2siLCJfYWxpZ25lckRhdGEiLCJfc2NyaXB0dXJlQ29uZmlnJHJlc28iLCJfYWxpZ25lckRhdGEkc2NyaXB0dXIiLCJvcmlnaW5hbFZlcnNlVXNmbSIsIl9BbGlnbm1lbnRIZWxwZXJzJHBhciIsInBhcnNlVXNmbVRvV29yZEFsaWduZXJEYXRhIiwidGFyZ2V0V29yZHMiLCJ2ZXJzZUFsaWdubWVudHMiLCJiaWJsZVVzZm0iLCJyZXNvdXJjZVN0YXRlIiwicmVzb3VyY2UiLCJlcnJvck1lc3NhZ2UiLCJfbmV3QWxpZ25tZW50cyIsInZlcnNlVXNmbSIsImFkZEFsaWdubWVudHNUb1ZlcnNlVVNGTSIsImFsaWduZWRWZXJzZU9iamVjdHMiLCJ1c2ZtVmVyc2VUb0pzb24iLCJzYXZlQWxpZ25tZW50IiwiY2FsbFNldFNhdmVkU3RhdGUiLCJjYW5jZWxBbGlnbm1lbnQiLCJzZXRFZGl0aW5nIiwiX3giLCJfc2V0RWRpdGluZyIsIl9jYWxsZWUiLCJlZGl0aW5nXyIsIl9uZXdWZXJzZVRleHQiLCJ2ZXJzZVRleHRDaGFuZ2VkRnJvbUxhc3RFZGl0IiwidmVyc2VUZXh0Q2hhbmdlZEZyb21Jbml0aWFsIiwiX0FsaWdubWVudEhlbHBlcnMkdXBkNCIsIl9hbGlnbm1lbnRzQ2hhbmdlZCIsIl9hcmdzIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsImN1cnJlbnRWZXJzZU9iamVjdHMiLCJzZXRWZXJzZUNoYW5nZWQiLCJfaW5pdGlhbFZlcnNlVGV4dCIsIl90YXJnZXRWZXJzZU9iamVjdHMiLCJfQWxpZ25tZW50SGVscGVycyR1cGQzIiwidW5zYXZlZENoYW5nZXMiLCJ1bnNhdmVkQ2hhbmdlc18iLCJvbkFsaWdubWVudHNDaGFuZ2UiLCJhbGlnbm1lbnRDb21wbGV0ZSIsImFjdGlvbnMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBBbGlnbm1lbnRIZWxwZXJzLFxuICBtaWdyYXRlT3JpZ2luYWxMYW5ndWFnZUhlbHBlcnMsXG4gIFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMsXG4gIHVzZm1IZWxwZXJzLFxufSBmcm9tICd3b3JkLWFsaWduZXItcmNsJ1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ0ByZWFjdC1ob29rei9kZWVwLWVxdWFsJ1xuaW1wb3J0IHtcbiAgQm9va09iamVjdHNUeXBlLFxuICBTY3JpcHR1cmVDb25maWcsXG4gIFNjcmlwdHVyZVJlZmVyZW5jZVR5cGUsXG4gIFNlcnZlckNvbmZpZ1R5cGUsXG4gIFZlcnNlT2JqZWN0c1R5cGUsXG59IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0QWxpZ25tZW50cywgZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyB9IGZyb20gJy4uL3V0aWxzL1NjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHsgT1JJR0lOQUxfU09VUkNFIH0gZnJvbSAnLi4vdXRpbHMnXG5pbXBvcnQgeyBnZXRWZXJzZXNGb3JSZWYgfSBmcm9tICcuL3VzZVNjcmlwdHVyZSdcblxuaW50ZXJmYWNlIFN0YXJ0RWRpdCB7XG4gICgpOiBQcm9taXNlPHN0cmluZz47XG59XG5cbnR5cGUgTGFuZ3VhZ2VUeXBlID0ge1xuICBsYW5ndWFnZUlkOiBzdHJpbmcsIC8vIHNob3J0IGxhbmd1YWdlIGNvZGUgc3VjaCBhcyBcImVuXCJcbiAgZGlyZWN0aW9uOiBzdHJpbmcsIC8vIGxhbmd1YWdlIGRpcmVjdGlvbiBcImx0clwiIG9yIFwicnRsXCJcbn07XG5cbmludGVyZmFjZSBBbGlnbmVyRGF0YVR5cGUge1xuICB3b3JkQmFuaz86IE9iamVjdFtdLCAvLyBsaXN0IG9mIHdvcmRiYW5rIHdvcmQgKHRhcmdldCBsYW5ndWFnZSB3b3JkcykgaW4gZm9ybWF0IG5lZWRlZCBieSB3b3JkLWFsaWduZXItcmNsXG4gIGFsaWdubWVudHM/OiBPYmplY3RbXSwgLy8gbGlzdCBvZiB3b3JkIGFsaWdubWVudHMgaW4gZm9ybWF0IG5lZWRlZCBieSB3b3JkLWFsaWduZXItcmNsXG4gIGVycm9yTWVzc2FnZT86IHN0cmluZywgLy8gaWYgcHJlc2VudCB0aGVuIHdlIGRvbid0IGhhdmUgbmVjZXNzYXJ5IGRhdGEgdG8gZG8gYWxpZ25tZW50XG4gIGJpYmxlVXNmbT86IHN0cmluZywgLy8gYmlibGUgVVNGTSB3aXRoIGFsaWdubWVudHNcbiAgcmVzb3VyY2VMaW5rPzogc3RyaW5nLCAvLyBpZGVudGlmaWVyIGZvciByZXNvdXJjZSBzdWNoIGFzIFwidW5mb2xkaW5nV29yZC9lbi91bHQvbWFzdGVyL21hdFwiXG59XG5cbmludGVyZmFjZSBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlIHtcbiAgICB0YXJnZXRXb3Jkcz86IE9iamVjdFtdLCAvLyBsaXN0IG9mIHRhcmdldCBsYW5ndWFnZSB3b3JkcyBpbiBmb3JtYXQgdXNlZCBpbiB3b3JkLWFsaWduZXItcmNsXG4gICAgdmVyc2VBbGlnbm1lbnRzPzogT2JqZWN0W10sIC8vIGxpc3Qgb2Ygd29yZCBhbGlnbm1lbnRzIGluIGZvcm1hdCB1c2VkIGJ5IHdvcmQtYWxpZ25lci1yY2xcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY3JpcHR1cmVBTGlnbm1lbnRFZGl0UHJvcHMge1xuICAvLyBpbmRleCB0byB1c2UgZm9yIGJvb2sgKGUuZy4gYDAxYCBmb3IgYEdFTmApXG4gIGJvb2tJbmRleDogc3RyaW5nLFxuICAvLyBjdXJyZW50IHZlcnNlIHNlbGVjdGVkIGZyb20gaW5pdGlhbFZlcnNlT2JqZWN0c1tdXG4gIGN1cnJlbnRJbmRleDogbnVtYmVyLFxuICAvLyByZWZlcmVuY2UgZm9yIHZlcnNlIHNlbGVjdGVkIGZvciBhbGlnbm1lbnRcbiAgY3VycmVudFZlcnNlUmVmOiBTY3JpcHR1cmVSZWZlcmVuY2VUeXBlLFxuICAvLyBpZiB0cnVlIHRoZW4gZWRpdGluZyBpcyBhbGxvd2VkXG4gIGVuYWJsZUVkaXQ6IGJvb2xlYW4sXG4gIC8vIGlmIHRydWUgdGhlbiBhbGlnbm1lbnQgaXMgYWxsb3dlZFxuICBlbmFibGVBbGlnbm1lbnQ6IGJvb2xlYW4sXG4gIC8vIGNvbmZpZ3VyYXRpb24gdG8gdXNlIGZvciBodHRwIGNvbW11bmljYXRpb25cbiAgaHR0cENvbmZpZzogU2VydmVyQ29uZmlnVHlwZSxcbiAgLy8gYXJyYXkgb2YgdGhlIGluaXRpYWwgdmVyc2VPYmplY3RzIGZvciBjdXJyZW50IHJlZmVyZW5jZVxuICBpbml0aWFsVmVyc2VPYmplY3RzOiBWZXJzZU9iamVjdHNUeXBlLFxuICAvLyBpbml0aWFsIHRleHQgZm9yIHZlcnNlXG4gIGluaXRpYWxWZXJzZVRleHQ6IHN0cmluZyxcbiAgLy8gZmxhZyB0aGF0IHdlIGFyZSB3b3JraW5nIG9uIE5UIGJvb2tcbiAgaXNOZXdUZXN0YW1lbnQ6IGJvb2xlYW4sXG4gIC8vIHVzZXIgbmFtZSBvZiBsb2dnZWQgaW4gdXNlclxuICBsb2dnZWRJblVzZXI6IHN0cmluZyxcbiAgLy8gb3duZXIgdG8gdXNlIHdoZW4gZmV0Y2hpbmcgb3JpZ2luYWwgbGFuZ3VhZ2UgcmVzb3VyY2VzXG4gIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcjogc3RyaW5nLFxuICAvLyB1cmwgZm9yIHRoZSBvcmlnaW5hbCBsYW5ndWFnZSByZXBvXG4gIG9yaWdpbmFsUmVwb1VybDogc3RyaW5nLFxuICAvLyBvcmlnaW5hbCBzY3JpcHR1cmUgYm9va09iamVjdHMgZm9yIGN1cnJlbnQgYm9va1xuICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzOiBCb29rT2JqZWN0c1R5cGUsXG4gIC8qKiBjdXJyZW50IHJlZmVyZW5jZSAqKi9cbiAgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2VUeXBlO1xuICAvLyBkZXRhaWxzIGFib3V0IHRoZSBjdXJyZW50IHNjcmlwdHVyZSBsb2FkZWRcbiAgc2NyaXB0dXJlQ29uZmlnOiBTY3JpcHR1cmVDb25maWcsXG4gIC8vIHNldHRpbmdzIHRvIGJlIHVzZWQgZm9yIHNjcmlwdHVyZVxuICBzY3JpcHR1cmVTZXR0aW5nczogeyB9LFxuICAvLyBjYWxsYmFjayB0byBzYXZlIGN1cnJlbnQgdmVyc2UgZWRpdCBhbmQgYWxpZ25tZW50IGNoYW5nZXNcbiAgc2V0U2F2ZWRDaGFuZ2VzOiBGdW5jdGlvbixcbiAgLy8gc291cmNlIGxhbmd1YWdlIGNvZGUgc3VjaCBhcyBgaGJvYFxuICBzb3VyY2VMYW5ndWFnZTogc3RyaW5nLFxuICAvLyBjYWxsYmFjayB0byBjcmVhdGUgYSB1c2VyIGJyYW5jaCBmb3Igc2F2aW5nIGVkaXQgZGF0YVxuICBzdGFydEVkaXRCcmFuY2g6IFN0YXJ0RWRpdCxcbiAgLy8gY3VycmVudCB0YXJnZXQgbGFuZ3VhZ2VcbiAgdGFyZ2V0TGFuZ3VhZ2U6IExhbmd1YWdlVHlwZSxcbiAgLy8gdGl0bGUgdG8gc2hvdyBpbiBhbGlnbm1lbnRcbiAgdGl0bGU6IHN0cmluZyxcbiAgIC8vIGJyYW5jaCBuYW1lIGN1cnJlbnRseSBiZWluZyB1c2VkIChlLmcuIGBtYXN0ZXJgIG9yIHVzZXIgYnJhbmNoKVxuICB3b3JraW5nUmVzb3VyY2VCcmFuY2g6IHN0cmluZyxcbn1cblxuLyoqXG4gKiBkZXRlcm1pbmVzIGlmIGFsaWdubWVudCBpcyBjb21wbGV0ZSBiYXNlZCBvbiB0YXJnZXQgVVNGTSBhbmQgb3JpZ2luYWwgbGFuZ3VhZ2UgdmVyc2Ugb2JqZWN0c1xuICogQHBhcmFtIHtzdHJpbmd9IHRhcmdldFZlcnNlVVNGTVxuICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSBvcmlnaW5hbFZlcnNlT2JqZWN0c1xuICovXG5mdW5jdGlvbiBpc1VzZm1BbGlnbmVkKHRhcmdldFZlcnNlVVNGTTpzdHJpbmcsIG9yaWdpbmFsVmVyc2VPYmplY3RzOlZlcnNlT2JqZWN0c1R5cGUpOmJvb2xlYW4ge1xuICBvcmlnaW5hbFZlcnNlT2JqZWN0cyA9IG9yaWdpbmFsVmVyc2VPYmplY3RzPy5sZW5ndGggPyBvcmlnaW5hbFZlcnNlT2JqZWN0cyA6IG51bGwgLy8gbWFrZSBzdXJlIG5vdCBwYXNzaW5nIGVtcHR5IEFycmF5XG5cbiAgaWYgKCB0YXJnZXRWZXJzZVVTRk0gJiYgb3JpZ2luYWxWZXJzZU9iamVjdHMpIHtcbiAgICBjb25zdCB7XG4gICAgICBhbGlnbm1lbnRzLFxuICAgICAgd29yZEJhbmssXG4gICAgfSA9IEFsaWdubWVudEhlbHBlcnMuZXh0cmFjdEFsaWdubWVudHNGcm9tVGFyZ2V0VmVyc2UodGFyZ2V0VmVyc2VVU0ZNLCBvcmlnaW5hbFZlcnNlT2JqZWN0cylcbiAgICByZXR1cm4gQWxpZ25tZW50SGVscGVycy5hcmVBbGdubWVudHNDb21wbGV0ZSh3b3JkQmFuaywgYWxpZ25tZW50cylcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG5cbi8qKlxuICogZ2V0IHRoZSB1cGRhdGVkIFVTRk0gZm9yIHRhcmdldCB2ZXJzZSBmcm9tIHRoZSB1cGRhdGVkIHZlcnNlIG9iamVjdHMgYW5kIGxhdGVzdCB0ZXh0XG4gKiBAcGFyYW0ge1ZlcnNlT2JqZWN0c1R5cGV9IHVwZGF0ZWRWZXJzZU9iamVjdHNcbiAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gaW5pdGlhbFZlcnNlT2JqZWN0c1xuICogQHBhcmFtIHtib29sZWFufSB2ZXJzZVRleHRDaGFuZ2VkXG4gKiBAcGFyYW0ge3N0cmluZ30gbmV3VmVyc2VUZXh0XG4gKi9cbmZ1bmN0aW9uIGdldEN1cnJlbnRWZXJzZVVzZm0odXBkYXRlZFZlcnNlT2JqZWN0czpWZXJzZU9iamVjdHNUeXBlLCBpbml0aWFsVmVyc2VPYmplY3RzOlZlcnNlT2JqZWN0c1R5cGUsIHZlcnNlVGV4dENoYW5nZWQ6IGJvb2xlYW4sIG5ld1ZlcnNlVGV4dDpzdHJpbmcpOnN0cmluZyB7XG4gIGxldCB0YXJnZXRWZXJzZVVTRk0gPSBudWxsXG4gIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHNfID0gdXBkYXRlZFZlcnNlT2JqZWN0cyB8fCBpbml0aWFsVmVyc2VPYmplY3RzXG5cbiAgaWYgKHZlcnNlVGV4dENoYW5nZWQgJiYgbmV3VmVyc2VUZXh0KSB7XG4gICAgY29uc3QgeyB0YXJnZXRWZXJzZVRleHQgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoY3VycmVudFZlcnNlT2JqZWN0c18sIG5ld1ZlcnNlVGV4dClcbiAgICB0YXJnZXRWZXJzZVVTRk0gPSB0YXJnZXRWZXJzZVRleHRcbiAgfSBlbHNlIHtcbiAgICB0YXJnZXRWZXJzZVVTRk0gPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmNvbnZlcnRWZXJzZURhdGFUb1VTRk0oY3VycmVudFZlcnNlT2JqZWN0c18pXG4gIH1cbiAgcmV0dXJuIHRhcmdldFZlcnNlVVNGTVxufVxuXG4vKipcbiAqIHJldHVybiB0cnVlIGlmIG9ubHkgc3BhY2VzIGluIGNvbnRlbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0XG4gKi9cbmZ1bmN0aW9uIGFsbFNwYWNlcyh0ZXh0OnN0cmluZyk6Ym9vbGVhbiB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xuICAgIGlmICh0ZXh0W2ldICE9PSAnICcpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZVxufVxuXG4vKipcbiAqIG1ha2Ugc3VyZSB0aGVyZSBpcyBhIHNpZ25pZmljYW50IGNoYW5nZSB0byB0aGUgdGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IG5ld1ZlcnNlVGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IGluaXRpYWxWZXJzZVRleHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1RleHRDaGFuZ2VkU2lnbmlmaWNhbnRseShuZXdWZXJzZVRleHQ6c3RyaW5nLCBpbml0aWFsVmVyc2VUZXh0OnN0cmluZyk6Ym9vbGVhbiB7XG4gIGxldCBjaGFuZ2VkID0gbmV3VmVyc2VUZXh0ICE9PSBpbml0aWFsVmVyc2VUZXh0XG5cbiAgaWYgKGNoYW5nZWQgJiYgbmV3VmVyc2VUZXh0KSB7IC8vIG1ha2Ugc3VyZSBpdCdzIHNpZ25pZmljYW50XG4gICAgY29uc3QgbGVuZ3RoRGlmZmVyZW5jZSA9IG5ld1ZlcnNlVGV4dC5sZW5ndGggLSBpbml0aWFsVmVyc2VUZXh0Py5sZW5ndGhcbiAgICBjb25zdCBmaXJzdFBhcnRPZkluaXRpYWwgPSBuZXdWZXJzZVRleHQuc3Vic3RyaW5nKDAsIGluaXRpYWxWZXJzZVRleHQubGVuZ3RoKVxuXG4gICAgaWYgKChsZW5ndGhEaWZmZXJlbmNlID4gMCkgJiYgKGluaXRpYWxWZXJzZVRleHQgPT09IGZpcnN0UGFydE9mSW5pdGlhbCkpIHsgLy8gaWYgaW5pdGlhbCBwYXJ0cyBtYXRjaFxuICAgICAgLy8gYWRkIGV4ZW1wdGlvbiBpZiB0aGUgdXNmbSBlbmRzIHdpdGggYSBxdW90ZSB0YWdcbiAgICAgIGNvbnN0IGxhc3RDaGFycyA9IG5ld1ZlcnNlVGV4dC5zdWJzdHJpbmcobmV3VmVyc2VUZXh0Lmxlbmd0aCAtIGxlbmd0aERpZmZlcmVuY2UpXG4gICAgICBjb25zdCBwb3MgPSBuZXdWZXJzZVRleHQubGFzdEluZGV4T2YoJ1xcXFwnKVxuICAgICAgY29uc3QgbGFzdFVzZm1UYWcgPSBuZXdWZXJzZVRleHRbcG9zICsgMV1cbiAgICAgIGNvbnN0IGVuZHNXaXRoUXVvdGUgPSAocG9zID4gMCkgJiYgKGxhc3RVc2ZtVGFnID09PSAncScpXG5cbiAgICAgIGlmIChlbmRzV2l0aFF1b3RlICYmIGFsbFNwYWNlcyhsYXN0Q2hhcnMpKSB7XG4gICAgICAgIGNoYW5nZWQgPSBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gY2hhbmdlZFxufVxuXG4vLyBtYW5hZ2UgdmVyc2UgZWRpdCBhbmQgYWxpZ25tZW50IHN0YXRlc1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQoe1xuICBjdXJyZW50SW5kZXgsXG4gIGVuYWJsZUVkaXQsXG4gIGVuYWJsZUFsaWdubWVudCxcbiAgaHR0cENvbmZpZyxcbiAgaW5pdGlhbFZlcnNlT2JqZWN0cyxcbiAgaW5pdGlhbFZlcnNlVGV4dCxcbiAgaXNOZXdUZXN0YW1lbnQsXG4gIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgb3JpZ2luYWxSZXBvVXJsLFxuICByZWZlcmVuY2UsXG4gIHNjcmlwdHVyZUNvbmZpZyxcbiAgc2NyaXB0dXJlU2V0dGluZ3MsXG4gIHNldFNhdmVkQ2hhbmdlcyxcbiAgc291cmNlTGFuZ3VhZ2UsXG4gIHN0YXJ0RWRpdEJyYW5jaCxcbiAgdGFyZ2V0TGFuZ3VhZ2UsXG4gIHRpdGxlLFxuICB3b3JraW5nUmVzb3VyY2VCcmFuY2gsXG59IDogU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzKSB7XG4gIHR5cGUgU3RhdGVUeXBlcyA9IHtcbiAgICBhbGlnbmVkOiBib29sZWFuLFxuICAgIGFsaWduZXJEYXRhOiBBbGlnbmVyRGF0YVR5cGUsXG4gICAgZWRpdGluZzogYm9vbGVhbixcbiAgICBuZXdBbGlnbm1lbnRzOiBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlLFxuICAgIG5ld1ZlcnNlVGV4dDogc3RyaW5nLFxuICAgIHVwZGF0ZWRWZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGUsXG4gICAgdmVyc2VUZXh0Q2hhbmdlZDogYm9vbGVhbixcbiAgfVxuXG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVfXSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICBhbGlnbmVkOiBmYWxzZSxcbiAgICBhbGlnbmVyRGF0YTogbnVsbCxcbiAgICBlZGl0aW5nOiBmYWxzZSxcbiAgICBuZXdBbGlnbm1lbnRzOiBudWxsLFxuICAgIG5ld1ZlcnNlVGV4dDogbnVsbCxcbiAgICB1cGRhdGVkVmVyc2VPYmplY3RzOiBudWxsLFxuICAgIHZlcnNlVGV4dENoYW5nZWQ6IGZhbHNlLFxuICB9KVxuXG4gIGNvbnN0IF9zdGF0ZTogU3RhdGVUeXBlcyA9IHN0YXRlIC8vIFRyaWNreTogd29yay1hcm91bmQgZm9yIGJ1ZyB0aGF0IHN0YW5kYXJkIHR5cGVzY3JpcHQgdHlwZSBjYXN0aW5nIGRvZXMgbm90IHdvcmsgaW4gLnRzeCBmaWxlc1xuICBjb25zdCB7XG4gICAgYWxpZ25lZCxcbiAgICBhbGlnbmVyRGF0YSxcbiAgICBlZGl0aW5nLFxuICAgIG5ld0FsaWdubWVudHMsXG4gICAgbmV3VmVyc2VUZXh0LFxuICAgIHVwZGF0ZWRWZXJzZU9iamVjdHMsXG4gICAgdmVyc2VUZXh0Q2hhbmdlZCxcbiAgfSA9IF9zdGF0ZVxuICBjb25zdCBjaGFwdGVyID0gcmVmZXJlbmNlPy5jaGFwdGVyXG4gIGNvbnN0IHZlcnNlID0gcmVmZXJlbmNlPy52ZXJzZVxuICBjb25zdCBib29rSWQgPSByZWZlcmVuY2U/LmJvb2tJZFxuICBjb25zdCBiYXNpY1JlZmVyZW5jZSA9IHsgLy8gb25seSBoYXMgdGhlIHRocmVlIGJhc2ljIGZpZWxkc1xuICAgIGNoYXB0ZXIsXG4gICAgdmVyc2UsXG4gICAgYm9va0lkLFxuICB9XG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICBmdW5jdGlvbiBjbGVhckNoYW5nZXMoKSB7XG4gICAgY29uc29sZS5sb2coYGNsZWFyQ2hhbmdlcygpIC0gJHtKU09OLnN0cmluZ2lmeShiYXNpY1JlZmVyZW5jZSl9YClcbiAgICBjb25zdCBjbGVhclN0YXRlID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBhbGlnbmVyRGF0YTogbnVsbCxcbiAgICAgIGVkaXRpbmc6IGZhbHNlLFxuICAgICAgbmV3QWxpZ25tZW50czogbnVsbCxcbiAgICAgIG5ld1ZlcnNlVGV4dDogbnVsbCxcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHM6IG51bGwsXG4gICAgICB2ZXJzZVRleHRDaGFuZ2VkOiBmYWxzZSxcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwoc3RhdGUsIGNsZWFyU3RhdGUpKSB7XG4gICAgICBjb25zb2xlLmxvZyhgY2xlYXJDaGFuZ2VzKCkgLSByZWZlcmVuY2UgY2hhbmdlZCwgcmVzZXQgZWRpdC9hbGlnbm1lbnQgc3RhdGUgdmFyaWFibGVzYClcbiAgICAgIHNldFN0YXRlKGNsZWFyU3RhdGUpXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgb3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5nc18gPSB7XG4gICAgLi4uc2NyaXB0dXJlU2V0dGluZ3MsXG4gICAgcmVzb3VyY2VJZDogT1JJR0lOQUxfU09VUkNFLFxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBodHRwQ29uZmlnID0gaHR0cENvbmZpZyB8fCB7fVxuICBjb25zdCBvcmlnaW5hbFNjcmlwdHVyZVNldHRpbmdzID0gZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyhcbiAgICBib29rSWQsIG9yaWdpbmFsU2NyaXB0dXJlU2V0dGluZ3NfLCBpc05ld1Rlc3RhbWVudCwgb3JpZ2luYWxSZXBvVXJsLFxuICApXG5cbiAgaWYgKCFlbmFibGVBbGlnbm1lbnQpIHsgLy8gaWYgbm90IGVuYWJsZWQsIHRoZW4gd2UgZG9uJ3QgZmV0Y2ggcmVzb3VyY2VcbiAgICBvcmlnaW5hbFNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IG51bGxcbiAgfVxuXG4gIGNvbnN0IG9yaWdpbmFsVmVyc2VPYmplY3RzID0gUmVhY3QudXNlTWVtbygoKSA9PiB7IC8vIGdldCB0aGUgb3JpZ2luYWwgbGFuZ3VhZ2UgdmVyc2VPYmplY3RzXG4gICAgY29uc3QgdmVyc2VPYmplY3RzID0gW11cblxuICAgIGlmIChvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBjb25zdCB2ZXJzZXMgPSBnZXRWZXJzZXNGb3JSZWYoYmFzaWNSZWZlcmVuY2UsIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM/Lmxhbmd1YWdlSWQpXG5cbiAgICAgIGlmICh2ZXJzZXM/Lmxlbmd0aCkge1xuICAgICAgICBmb3IgKGNvbnN0IHZlcnNlUmVmZXJlbmNlIG9mIHZlcnNlcykge1xuICAgICAgICAgIGNvbnN0IG9yaWdWZXJzZU9iamVjdHMgPSB2ZXJzZVJlZmVyZW5jZT8udmVyc2VEYXRhPy52ZXJzZU9iamVjdHNcblxuICAgICAgICAgIGlmIChvcmlnVmVyc2VPYmplY3RzKSB7XG4gICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh2ZXJzZU9iamVjdHMsIG9yaWdWZXJzZU9iamVjdHMpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2ZXJzZU9iamVjdHNcbiAgfSwgW29yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsIGNoYXB0ZXIsIHZlcnNlLCBib29rSWRdKVxuXG4gIC8qKlxuICAgKiBnZXQgY3VycmVudCB2ZXJzZU9iamVjdHNcbiAgICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSBfdXBkYXRlZFZlcnNlT2JqZWN0cyAtIG9wdGlvbmFsIG92ZXJyaWRlcyB1cGRhdGVkVmVyc2VPYmplY3RzXG4gICAqL1xuICBmdW5jdGlvbiBnZXRDdXJyZW50VmVyc2VPYmplY3RzKF91cGRhdGVkVmVyc2VPYmplY3RzOiBWZXJzZU9iamVjdHNUeXBlID0gdXBkYXRlZFZlcnNlT2JqZWN0cykge1xuICAgIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHNfID0gX3VwZGF0ZWRWZXJzZU9iamVjdHMgfHwgaW5pdGlhbFZlcnNlT2JqZWN0c1xuICAgIHJldHVybiBjdXJyZW50VmVyc2VPYmplY3RzX1xuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gdXBkYXRlIGFsaWdubWVudCBzdGF0dXMgd2hlbiBhbGlnbmVyIGlzIGhpZGRlblxuICAgIGNvbnN0IG5vdEVtcHR5ID0gISFpbml0aWFsVmVyc2VPYmplY3RzXG4gICAgbGV0IGFsaWduZWRfID0gZmFsc2VcblxuICAgIGlmICghYWxpZ25lckRhdGEpIHsgLy8gc2tpcCBpZiBhbGlnbmVyIGlzIGJlaW5nIHNob3duXG4gICAgICBpZiAobm90RW1wdHkpIHsgLy8gc2tpcCBpZiBlbXB0eVxuICAgICAgICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzXyA9IGdldEN1cnJlbnRWZXJzZU9iamVjdHMoKVxuXG4gICAgICAgIGlmICghZW5hYmxlQWxpZ25tZW50KSB7XG4gICAgICAgICAgYWxpZ25lZF8gPSB0cnVlXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmVyc2VUZXh0ICYmIChuZXdWZXJzZVRleHQgIT09IGluaXRpYWxWZXJzZVRleHQpKSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0cyA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoY3VycmVudFZlcnNlT2JqZWN0c18sIG5ld1ZlcnNlVGV4dClcbiAgICAgICAgICBhbGlnbmVkXyA9IGlzVXNmbUFsaWduZWQocmVzdWx0cz8udGFyZ2V0VmVyc2VUZXh0LCBvcmlnaW5hbFZlcnNlT2JqZWN0cylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB0YXJnZXRWZXJzZVVTRk0gPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmNvbnZlcnRWZXJzZURhdGFUb1VTRk0oY3VycmVudFZlcnNlT2JqZWN0c18pXG4gICAgICAgICAgYWxpZ25lZF8gPSBpc1VzZm1BbGlnbmVkKHRhcmdldFZlcnNlVVNGTSwgb3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGFsaWduZWQgIT09IGFsaWduZWRfKSB7XG4gICAgICAgIHNldFN0YXRlKHsgYWxpZ25lZDogYWxpZ25lZF8gfSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpbml0aWFsVmVyc2VPYmplY3RzLCBhbGlnbmVyRGF0YSwgbmV3VmVyc2VUZXh0LCBpbml0aWFsVmVyc2VUZXh0LCBlbmFibGVBbGlnbm1lbnQsIG9yaWdpbmFsVmVyc2VPYmplY3RzXSlcblxuICAvKipcbiAgICogZ2V0IGNoYW5nZXMgZm9yIHNhdmluZ1xuICAgKiBAcGFyYW0ge29iamVjdH0gbmV3U3RhdGUgLSBvcHRpb25hbGx5IHBhc3MgaW4gbmV3IHN0YXRlICh0byBvdmVycmlkZSBzdGF0ZSlcbiAgICovXG4gIGZ1bmN0aW9uIGdldENoYW5nZXMobmV3U3RhdGUgPSB7fSkge1xuICAgIGNvbnNvbGUubG9nKGBnZXRDaGFuZ2VzIC0gc3RhcnRlZCAke2N1cnJlbnRJbmRleH0gLSBwYXNzZWQgc3RhdGVgLCBuZXdTdGF0ZSlcbiAgICBjb25zdCBfbmV3U3RhdGUgPSB7XG4gICAgICBzdGF0ZSxcbiAgICAgIC4uLm5ld1N0YXRlLFxuICAgIH1cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3Qge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgbmV3QWxpZ25tZW50cyxcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHMsXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB2ZXJzZVRleHRDaGFuZ2VkLFxuICAgIH0gPSBfbmV3U3RhdGVcbiAgICBsZXQgdXBkYXRlZFZlcnNlT2JqZWN0c18gPSB1cGRhdGVkVmVyc2VPYmplY3RzXG5cbiAgICBpZiAobmV3QWxpZ25tZW50cykgeyAvLyBpZiB1bnNhdmVkIGFsaWdubWVudCBjaGFuZ2VzLCBhcHBseSB0aGVtXG4gICAgICBjb25zb2xlLmxvZyhgZ2V0Q2hhbmdlcyAtIGFwcGx5aW5nIHVuc2F2ZWQgYWxpZ25tZW50c31gKVxuICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0c18gPSB1cGRhdGVWZXJzZVdpdGhOZXdBbGlnbm1lbnRzKClcbiAgICB9XG5cbiAgICBpZiAodmVyc2VUZXh0Q2hhbmdlZCAmJiBuZXdWZXJzZVRleHQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBnZXRDaGFuZ2VzIC0gYXBwbHlpbmcgbmV3IHRleHQ6YCwgbmV3VmVyc2VUZXh0KVxuICAgICAgY29uc3QgY3VycmVudFZlcnNlT2JqZWN0c18gPSBnZXRDdXJyZW50VmVyc2VPYmplY3RzKHVwZGF0ZWRWZXJzZU9iamVjdHNfKVxuICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0c18gJiYgY29uc29sZS5sb2coYGdldENoYW5nZXMgLSBhcHBseWluZyB1cGRhdGVkIGFsaWdubWVudHNgKVxuICAgICAgY29uc3QgeyB0YXJnZXRWZXJzZU9iamVjdHMgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoY3VycmVudFZlcnNlT2JqZWN0c18sIG5ld1ZlcnNlVGV4dClcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHNfID0gdGFyZ2V0VmVyc2VPYmplY3RzXG4gICAgfSBlbHNlIHsgLy8gb25seSBhbGlnbm1lbnQgY2hhbmdlcyB0byB1cGxvYWRcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHNfICYmIGNvbnNvbGUubG9nKGBnZXRDaGFuZ2VzIC0gYXBwbHlpbmcgdXBkYXRlZCBhbGlnbm1lbnRzYCwgeyBuZXdWZXJzZVRleHQsIHVwZGF0ZWRWZXJzZU9iamVjdHNfIH0pXG4gICAgICB1cGRhdGVkVmVyc2VPYmplY3RzXyA9IHVwZGF0ZWRWZXJzZU9iamVjdHNfIHx8IGluaXRpYWxWZXJzZU9iamVjdHNcbiAgICB9XG5cbiAgICBpZiAodXBkYXRlZFZlcnNlT2JqZWN0c18pIHtcbiAgICAgIGNvbnN0IHJlZiA9IHNjcmlwdHVyZUNvbmZpZz8udmVyc2VzRm9yUmVmPy5bY3VycmVudEluZGV4XVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmV3VmVyc2VUZXh0LFxuICAgICAgICByZWYsXG4gICAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHM6IHVwZGF0ZWRWZXJzZU9iamVjdHNfLFxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7fVxuICB9XG5cbiAgLyoqXG4gICAqIGNvbXBhcmUgaW5pdGlhbCBhbGlnbm1lbnRzIHdpdGggZmluYWwgdG8gc2VlIGlmIGNoYW5nZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHByZWZpeFxuICAgKiBAcGFyYW0ge1ZlcnNlT2JqZWN0c1R5cGV9IF91cGRhdGVkVmVyc2VPYmplY3RzXG4gICAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gX2luaXRpYWxWZXJzZU9iamVjdHNcbiAgICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgY2hhbmdlZFxuICAgKi9cbiAgZnVuY3Rpb24gaXNNaWdyYXRlZChwcmVmaXg6c3RyaW5nLCBfdXBkYXRlZFZlcnNlT2JqZWN0czpWZXJzZU9iamVjdHNUeXBlID0gdXBkYXRlZFZlcnNlT2JqZWN0cywgX2luaXRpYWxWZXJzZU9iamVjdHM6VmVyc2VPYmplY3RzVHlwZSA9IGluaXRpYWxWZXJzZU9iamVjdHMpOmJvb2xlYW4ge1xuICAgIGNvbnN0IHVwZGF0ZWRBbGlnbm1lbnRzID0gZ2V0QWxpZ25tZW50cyhfdXBkYXRlZFZlcnNlT2JqZWN0cylcbiAgICBjb25zdCBpbml0aWFsQWxpZ25tZW50cyA9IGdldEFsaWdubWVudHMoX2luaXRpYWxWZXJzZU9iamVjdHMpXG4gICAgbGV0IHNhbWUgPSB1cGRhdGVkQWxpZ25tZW50cy5sZW5ndGggPT09IGluaXRpYWxBbGlnbm1lbnRzLmxlbmd0aCAvLyBmaXJzdCBtYWtlIHN1cmUgbGVuZ3RocyBhcmUgdGhlIHNhbWVcbiAgICBsZXQgZmlyc3REaWZmXG5cbiAgICBpZiAoc2FtZSkgeyAvLyBldmVuIGlmIGxlbmd0aHMgYXJlIHRoZSBzYW1lIGRvdWJsZSBjaGVjayBlYWNoIGFsaWdubWVudFxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB1cGRhdGVkQWxpZ25tZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCB1cGRhdGVkQWxpZ25tZW50ID0gdXBkYXRlZEFsaWdubWVudHNbaV1cbiAgICAgICAgY29uc3QgaW5pdGlhbEFsaWdubWVudCA9IGluaXRpYWxBbGlnbm1lbnRzW2ldXG5cbiAgICAgICAgaWYgKCFpc0VxdWFsKHVwZGF0ZWRBbGlnbm1lbnQsIGluaXRpYWxBbGlnbm1lbnQpKSB7XG4gICAgICAgICAgZmlyc3REaWZmID0gaVxuICAgICAgICAgIHNhbWUgPSBmYWxzZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkaWZmZXJlbnQgPSAhc2FtZVxuXG4gICAgaWYgKGRpZmZlcmVudCkge1xuICAgICAgY29uc29sZS5sb2coYCR7cHJlZml4fSAtIHRhcmdldCB2ZXJzZSBhbGlnbm1lbnRzIG1pZ3JhdGVkIHRvIG1hdGNoIG9yaWdpbmFsIGxhbmd1YWdlLCBmaXJzdCBkaWZmZXJlbmNlIGlzIGF0ICR7Zmlyc3REaWZmfWAsIHVwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGRpZmZlcmVudFxuICB9XG5cbiAgLyoqXG4gICAqIGRvIGFsaWdubWVudHMgbWlncmF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcmVmaXhcbiAgICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSB1cGRhdGVkVmVyc2VPYmplY3RzXG4gICAqL1xuICBmdW5jdGlvbiBtaWdyYXRlQWxpZ25tZW50cyhwcmVmaXg6IHN0cmluZywgdXBkYXRlZFZlcnNlT2JqZWN0czogVmVyc2VPYmplY3RzVHlwZSA9IG51bGwpOiBWZXJzZU9iamVjdHNUeXBlIHtcbiAgICB1cGRhdGVkVmVyc2VPYmplY3RzID0gdXBkYXRlZFZlcnNlT2JqZWN0cyB8fCBnZXRDdXJyZW50VmVyc2VPYmplY3RzKClcbiAgICBjb25zdCBfdXBkYXRlZFZlcnNlT2JqZWN0cyA9IG1pZ3JhdGVPcmlnaW5hbExhbmd1YWdlSGVscGVycy5taWdyYXRlVGFyZ2V0QWxpZ25tZW50c1RvT3JpZ2luYWwodXBkYXRlZFZlcnNlT2JqZWN0cywgb3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgaXNNaWdyYXRlZChwcmVmaXgsIF91cGRhdGVkVmVyc2VPYmplY3RzLCB1cGRhdGVkVmVyc2VPYmplY3RzKVxuICAgIHJldHVybiBfdXBkYXRlZFZlcnNlT2JqZWN0c1xuICB9XG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIGZvciB3aGVuIHVzZXIgY2xpY2tlZCBvbiBhbGlnbm1lbnQgYnV0dG9uIC0gd2lsbCBzaG93IGlmIG5vdCBhbHJlYWR5IHNob3duXG4gICAqL1xuICBmdW5jdGlvbiBoYW5kbGVBbGlnbm1lbnRDbGljaygpIHtcbiAgICBpZiAoZW5hYmxlQWxpZ25tZW50KSB7XG4gICAgICBsZXQgX2FsaWduZXJEYXRhOiBBbGlnbmVyRGF0YVR5cGUgPSBudWxsXG5cbiAgICAgIGlmICghYWxpZ25lckRhdGEpIHsgLy8gaWYgd29yZCBhbGlnbmVyIG5vdCBzaG93blxuICAgICAgICBjb25zb2xlLmxvZyhgaGFuZGxlQWxpZ25tZW50Q2xpY2sgLSB0b2dnbGUgT04gYWxpZ25tZW50YClcbiAgICAgICAgbGV0IG9yaWdpbmFsVmVyc2VVc2ZtID0gbnVsbFxuICAgICAgICBsZXQgX3VwZGF0ZWRWZXJzZU9iamVjdHMgPSB1cGRhdGVkVmVyc2VPYmplY3RzXG5cbiAgICAgICAgaWYgKG9yaWdpbmFsVmVyc2VPYmplY3RzKSB7XG4gICAgICAgICAgb3JpZ2luYWxWZXJzZVVzZm0gPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmNvbnZlcnRWZXJzZURhdGFUb1VTRk0ob3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgICAgICAgX3VwZGF0ZWRWZXJzZU9iamVjdHMgPSBtaWdyYXRlQWxpZ25tZW50cygnaGFuZGxlQWxpZ25tZW50Q2xpY2soKScpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0YXJnZXRWZXJzZVVTRk0gPSBnZXRDdXJyZW50VmVyc2VVc2ZtKF91cGRhdGVkVmVyc2VPYmplY3RzLCBpbml0aWFsVmVyc2VPYmplY3RzLCB2ZXJzZVRleHRDaGFuZ2VkLCBuZXdWZXJzZVRleHQpXG5cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHRhcmdldFdvcmRzOiB3b3JkQmFuayxcbiAgICAgICAgICB2ZXJzZUFsaWdubWVudHM6IGFsaWdubWVudHMsXG4gICAgICAgIH0gPSBBbGlnbm1lbnRIZWxwZXJzLnBhcnNlVXNmbVRvV29yZEFsaWduZXJEYXRhKHRhcmdldFZlcnNlVVNGTSwgb3JpZ2luYWxWZXJzZVVzZm0pXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgY29uc3QgYmlibGVVc2ZtID0gc2NyaXB0dXJlQ29uZmlnPy5iaWJsZVVzZm0gfHwgJydcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCByZXNvdXJjZUxpbmsgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdGU/LnJlc291cmNlPy5yZXNvdXJjZUxpbmsgfHwgYWxpZ25lckRhdGE/LnNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VMaW5rIHx8ICcnXG5cbiAgICAgICAgX2FsaWduZXJEYXRhID0ge1xuICAgICAgICAgIHdvcmRCYW5rLFxuICAgICAgICAgIGFsaWdubWVudHMsXG4gICAgICAgICAgYmlibGVVc2ZtLFxuICAgICAgICAgIHJlc291cmNlTGluayxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghYWxpZ25tZW50cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgX2FsaWduZXJEYXRhLmVycm9yTWVzc2FnZSA9ICdUaGVyZSBhcmUgbm8gd29yZHMgdG8gYWxpZ24gaW4gdGhlIE9yaWdpbmFsIGxhbmd1YWdlJ1xuICAgICAgICB9IGVsc2UgaWYgKCF3b3JkQmFuaz8ubGVuZ3RoKSB7XG4gICAgICAgICAgX2FsaWduZXJEYXRhLmVycm9yTWVzc2FnZSA9ICdUaGVyZSBhcmUgbm8gd29yZHMgdG8gYWxpZ24gaW4gdGhlIExpdGVyYWwvU2ltcGxpZmllZCBTY3JpcHR1cmUgVGV4dCdcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHsgLy8gd29yZCBhbGlnbmVyIGN1cnJlbnRseSBzaG93blxuICAgICAgICBjb25zb2xlLmxvZyhgaGFuZGxlQWxpZ25tZW50Q2xpY2sgLSBhbGlnbm1lbnQgYWxyZWFkeSBzaG93bmApXG4gICAgICAgIF9hbGlnbmVyRGF0YSA9IGFsaWduZXJEYXRhXG4gICAgICB9XG4gICAgICBzZXRTdGF0ZSh7IGFsaWduZXJEYXRhOiBfYWxpZ25lckRhdGEgfSlcbiAgICAgIGNvbnNvbGUubG9nKF9hbGlnbmVyRGF0YSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHVwZGF0ZWQgdmVyc2Ugb2JqZWN0cyBhZnRlciBhbGlnbm1lbnRzIGNoYW5nZWRcbiAgICogQHBhcmFtIHtBbGlnbmVyUmVzdWx0c0RhdGFUeXBlfSBfbmV3QWxpZ25tZW50cyAtIHJlc3VsdHMgb2YgYWxpZ25lclxuICAgKi9cbiAgZnVuY3Rpb24gdXBkYXRlVmVyc2VXaXRoTmV3QWxpZ25tZW50cyhfbmV3QWxpZ25tZW50czogQWxpZ25lclJlc3VsdHNEYXRhVHlwZSA9IG5ld0FsaWdubWVudHMpOlZlcnNlT2JqZWN0c1R5cGUge1xuICAgIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHNfID0gZ2V0Q3VycmVudFZlcnNlT2JqZWN0cygpXG4gICAgY29uc3QgdGFyZ2V0VmVyc2VUZXh0ID0gbmV3VmVyc2VUZXh0IHx8IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuY29udmVydFZlcnNlRGF0YVRvVVNGTShjdXJyZW50VmVyc2VPYmplY3RzXylcbiAgICBjb25zdCB2ZXJzZVVzZm0gPSBBbGlnbm1lbnRIZWxwZXJzLmFkZEFsaWdubWVudHNUb1ZlcnNlVVNGTShfbmV3QWxpZ25tZW50cy50YXJnZXRXb3JkcywgX25ld0FsaWdubWVudHMudmVyc2VBbGlnbm1lbnRzLCB0YXJnZXRWZXJzZVRleHQpXG5cbiAgICBpZiAoIXZlcnNlVXNmbSkge1xuICAgICAgY29uc29sZS5lcnJvcihgdXBkYXRlVmVyc2VXaXRoTmV3QWxpZ25tZW50cygpIC0gZXJyb3IgbWVyZ2luZyBhbGlnbm1lbnRzYClcbiAgICB9XG5cbiAgICBjb25zdCBhbGlnbmVkVmVyc2VPYmplY3RzID0gdXNmbUhlbHBlcnMudXNmbVZlcnNlVG9Kc29uKHZlcnNlVXNmbSlcbiAgICByZXR1cm4gYWxpZ25lZFZlcnNlT2JqZWN0c1xuICB9XG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIGZvciB3aGVuIHVzZXIgY2xpY2tlZCBvbiBidXR0b24gdG8gc2F2ZSBjdXJyZW50IGFsaWdubWVudHMgaW4gd29yZCBhbGlnbmVyLiAgR2VuZXJhdGVzIG5ldyB2ZXJzZSBjb250ZW50IGFuZCBzYXZlcyBpbiBzdGF0ZS4gQ2xvc2VzIGFsaWduZXIgZGlzcGxheVxuICAgKiBAcGFyYW0ge0FsaWduZXJSZXN1bHRzRGF0YVR5cGV9IF9uZXdBbGlnbm1lbnRzIC0gcmVzdWx0cyBvZiBhbGlnbmVyXG4gICAqL1xuICBmdW5jdGlvbiBzYXZlQWxpZ25tZW50KF9uZXdBbGlnbm1lbnRzOiBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlID0gbmV3QWxpZ25tZW50cykge1xuICAgIGNvbnNvbGUubG9nKGBzYXZlQWxpZ25tZW50KCkgLSBuZXdBbGlnbm1lbnRzYCwgX25ld0FsaWdubWVudHMpXG5cbiAgICBpZiAoX25ld0FsaWdubWVudHMpIHtcbiAgICAgIGNvbnN0IGFsaWduZWRWZXJzZU9iamVjdHMgPSB1cGRhdGVWZXJzZVdpdGhOZXdBbGlnbm1lbnRzKF9uZXdBbGlnbm1lbnRzKVxuICAgICAgY29uc29sZS5sb2coYHNhdmVBbGlnbm1lbnQoKSAtIGFsaWduZWRWZXJzZU9iamVjdHNgLCBhbGlnbmVkVmVyc2VPYmplY3RzKVxuICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgIGFsaWduZXJEYXRhOiBudWxsLFxuICAgICAgICBlZGl0aW5nOiBmYWxzZSxcbiAgICAgICAgbmV3QWxpZ25tZW50czogbnVsbCxcbiAgICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0czogYWxpZ25lZFZlcnNlT2JqZWN0cyxcbiAgICAgIH1cbiAgICAgIHNldFN0YXRlKG5ld1N0YXRlKVxuICAgICAgY2FsbFNldFNhdmVkU3RhdGUodHJ1ZSwgbmV3U3RhdGUgKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhgc2F2ZUFsaWdubWVudCgpIC0gbm8gYWxpZ25tZW50IGNoYW5nZXNgKVxuICAgICAgc2V0U3RhdGUoe1xuICAgICAgICBhbGlnbmVyRGF0YTogbnVsbCxcbiAgICAgICAgZWRpdGluZzogZmFsc2UsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmb3Igd2hlbiB1c2VyIGNsaWNrZWQgb24gYnV0dG9uIHRvIGNhbmNlbCB3b3JrIGluIHdvcmQgYWxpZ25lci4gIENhbGN1bGF0ZXMgYW5kIGRpc3BsYXlzIGN1cnJlbnQgYWxpZ25tZW50IHZhbGlkIHN0YXRlLiBDbG9zZXMgYWxpZ25lciBkaXNwbGF5XG4gICAqL1xuICBmdW5jdGlvbiBjYW5jZWxBbGlnbm1lbnQoKSB7XG4gICAgY29uc29sZS5sb2coYGNhbmNlbEFsaWdubWVudCgpYClcbiAgICBjb25zdCB0YXJnZXRWZXJzZVVTRk0gPSBnZXRDdXJyZW50VmVyc2VVc2ZtKHVwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMsIHZlcnNlVGV4dENoYW5nZWQsIG5ld1ZlcnNlVGV4dClcbiAgICBjb25zdCBhbGlnbmVkID0gaXNVc2ZtQWxpZ25lZCh0YXJnZXRWZXJzZVVTRk0sIG9yaWdpbmFsVmVyc2VPYmplY3RzKVxuICAgIHNldFN0YXRlKHsgYWxpZ25lckRhdGE6IG51bGwsIGFsaWduZWQgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmb3IgYnV0dG9uIHRvIHNldCBlZGl0aW5nIHN0YXRlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZWRpdGluZ18gLSBpZiB0cnVlLCBlZGl0b3IgaXMgc2hvd24sIG90aGVyd2lzZSBlZGl0b3IgaXMgaGlkZGVuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBfbmV3VmVyc2VUZXh0IC0gb3B0aW9uYWwgdmVyc2UgdGV4dFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXdhaXRcbiAgYXN5bmMgZnVuY3Rpb24gc2V0RWRpdGluZyhlZGl0aW5nXzogYm9vbGVhbiwgX25ld1ZlcnNlVGV4dDogc3RyaW5nID0gbmV3VmVyc2VUZXh0KSB7XG4gICAgaWYgKGVuYWJsZUVkaXQpIHtcbiAgICAgIGlmIChlZGl0aW5nXyAhPT0gZWRpdGluZykge1xuICAgICAgICBfbmV3VmVyc2VUZXh0ID0gX25ld1ZlcnNlVGV4dCB8fCBpbml0aWFsVmVyc2VUZXh0XG4gICAgICAgIGxldCBfdXBkYXRlZFZlcnNlT2JqZWN0cyA9IG51bGxcbiAgICAgICAgY29uc3QgdmVyc2VUZXh0Q2hhbmdlZEZyb21MYXN0RWRpdCA9IF9uZXdWZXJzZVRleHQgIT09IG5ld1ZlcnNlVGV4dFxuICAgICAgICBjb25zdCB2ZXJzZVRleHRDaGFuZ2VkRnJvbUluaXRpYWwgPSBfbmV3VmVyc2VUZXh0ICE9PSBpbml0aWFsVmVyc2VUZXh0XG4gICAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICAgIGVkaXRpbmc6IGVkaXRpbmdfLFxuICAgICAgICAgIG5ld1ZlcnNlVGV4dDogX25ld1ZlcnNlVGV4dCxcbiAgICAgICAgICB2ZXJzZVRleHRDaGFuZ2VkOiB2ZXJzZVRleHRDaGFuZ2VkRnJvbUluaXRpYWwsXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWVkaXRpbmdfICYmIHZlcnNlVGV4dENoYW5nZWRGcm9tTGFzdEVkaXQpIHsgLy8gaWYgZG9uZSBlZGl0aW5nIGFuZCB2ZXJzZSBoYXMgY2hhbmdlZCwgdXBkYXRlIHRoZSB2ZXJzZSBvYmplY3RzXG4gICAgICAgICAgX3VwZGF0ZWRWZXJzZU9iamVjdHMgPSB1cGRhdGVkVmVyc2VPYmplY3RzIHx8IGN1cnJlbnRWZXJzZU9iamVjdHNcblxuICAgICAgICAgIGlmICh2ZXJzZVRleHRDaGFuZ2VkRnJvbUluaXRpYWwpIHsgLy8gaWYgdmVyc2UgaGFzIGNoYW5nZWQgZnJvbSBpbml0aWFsLCBtaWdyYXRlIGFsaWdubWVudHMgaW4gdGhlIHZlcnNlIG9iamVjdHNcbiAgICAgICAgICAgIC8vIGRvIG1pZ3JhdGlvbiBvZiBhbGlnbm1lbnRzIHRvIG1hdGNoIGxhdGVzdCBvcmlnaW5hbCBsYW5ndWFnZVxuICAgICAgICAgICAgX3VwZGF0ZWRWZXJzZU9iamVjdHMgPSBtaWdyYXRlQWxpZ25tZW50cygnc2V0RWRpdGluZygpJywgX3VwZGF0ZWRWZXJzZU9iamVjdHMpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gYXBwbHkgYWxpZ25tZW50cyBmcm9tIHVwZGF0ZWQgdmVyc2VPYmplY3RzIHRvIGVkaXRlZCB2ZXJzZSB0ZXh0IGFuZCBnZW5lcmF0ZSBuZXcgdmVyc2Ugb2JqZWN0c1xuICAgICAgICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VPYmplY3RzIH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKF91cGRhdGVkVmVyc2VPYmplY3RzLCBfbmV3VmVyc2VUZXh0KVxuICAgICAgICAgIF91cGRhdGVkVmVyc2VPYmplY3RzID0gdGFyZ2V0VmVyc2VPYmplY3RzIC8vIHVwZGF0ZSB2ZXJzZU9iamVjdHMgdG8gbWF0Y2ggY3VycmVudCB0ZXh0XG4gICAgICAgICAgbmV3U3RhdGVbJ3VwZGF0ZWRWZXJzZU9iamVjdHMnXSA9IF91cGRhdGVkVmVyc2VPYmplY3RzXG4gICAgICAgIH1cblxuICAgICAgICBzZXRTdGF0ZShuZXdTdGF0ZSlcbiAgICAgICAgY29uc3QgX2FsaWdubWVudHNDaGFuZ2VkID0gKF91cGRhdGVkVmVyc2VPYmplY3RzICYmICFpc0VxdWFsKGluaXRpYWxWZXJzZU9iamVjdHMsIF91cGRhdGVkVmVyc2VPYmplY3RzKSlcbiAgICAgICAgY2FsbFNldFNhdmVkU3RhdGUodmVyc2VUZXh0Q2hhbmdlZEZyb21Jbml0aWFsIHx8IF9hbGlnbm1lbnRzQ2hhbmdlZCwgbmV3U3RhdGUgKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmcm9tIHRoZSBlZGl0IG9uQ2hhbmdlIGV2ZW50IHRvIHVwZGF0ZSBlZGl0IHN0YXRlIHZhcmlhYmxlc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGNoYW5nZWQgLSB0cnVlIGlmIHRoZSBuZXdWZXJzZVRleHQgaXMgZGlmZmVyZW50IHRoYW4gdGhlIGluaXRpYWxWZXJzZVRleHRcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5ld1ZlcnNlVGV4dCAtIGN1cnJlbnQgY2hhbmdlZCB2ZXJzZSB0ZXh0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBfaW5pdGlhbFZlcnNlVGV4dCAtIGluaXRpYWwgdmVyc2UgdGV4dFxuICAgKi9cbiAgZnVuY3Rpb24gc2V0VmVyc2VDaGFuZ2VkKGNoYW5nZWQ6IGJvb2xlYW4sIG5ld1ZlcnNlVGV4dDogc3RyaW5nLCBfaW5pdGlhbFZlcnNlVGV4dDogc3RyaW5nKSB7XG4gICAgY29uc3QgX3RhcmdldFZlcnNlT2JqZWN0cyA9IGN1cnJlbnRWZXJzZU9iamVjdHMgfHwgaW5pdGlhbFZlcnNlT2JqZWN0c1xuICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VUZXh0IH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKF90YXJnZXRWZXJzZU9iamVjdHMsIG5ld1ZlcnNlVGV4dClcbiAgICBjb25zdCBhbGlnbmVkID0gaXNVc2ZtQWxpZ25lZCh0YXJnZXRWZXJzZVRleHQsIG9yaWdpbmFsVmVyc2VPYmplY3RzKVxuICAgIGNvbnN0IHZlcnNlVGV4dENoYW5nZWQgPSBuZXdWZXJzZVRleHQgIT09IGluaXRpYWxWZXJzZVRleHRcblxuICAgIHNldFN0YXRlKHtcbiAgICAgIHZlcnNlVGV4dENoYW5nZWQsXG4gICAgICBuZXdWZXJzZVRleHQsXG4gICAgICBhbGlnbmVkLFxuICAgIH0pXG4gIH1cblxuICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzID0gUmVhY3QudXNlTWVtbyggKCkgPT4geyAvLyBpZiB2ZXJzZSBoYXMgYmVlbiBlZGl0ZWQgb3IgYWxpZ25tZW50IGNoYW5nZWQsIHRoZW4gZ2VuZXJhdGUgbmV3IHZlcnNlT2JqZWN0cyB0byBkaXNwbGF5IGluIFNjcmlwdHVyZVBhbmVcbiAgICBpZiAoaW5pdGlhbFZlcnNlT2JqZWN0cykge1xuICAgICAgY29uc3QgdGFyZ2V0VmVyc2VVU0ZNID0gZ2V0Q3VycmVudFZlcnNlVXNmbSh1cGRhdGVkVmVyc2VPYmplY3RzLCBpbml0aWFsVmVyc2VPYmplY3RzLCB2ZXJzZVRleHRDaGFuZ2VkLCBuZXdWZXJzZVRleHQpXG4gICAgICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzXyA9IHVzZm1IZWxwZXJzLnVzZm1WZXJzZVRvSnNvbih0YXJnZXRWZXJzZVVTRk0pXG4gICAgICByZXR1cm4gY3VycmVudFZlcnNlT2JqZWN0c19cbiAgICB9XG4gICAgcmV0dXJuIGluaXRpYWxWZXJzZU9iamVjdHNcbiAgfSwgW3VwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMsIHZlcnNlVGV4dENoYW5nZWQsIG5ld1ZlcnNlVGV4dF0pXG5cbiAgY29uc3QgdW5zYXZlZENoYW5nZXM6Ym9vbGVhbiA9IFJlYWN0LnVzZU1lbW8oICgpID0+IHsgLy8gaWYgdmVyc2UgaGFzIGJlZW4gZWRpdGVkIG9yIGFsaWdubWVudCBjaGFuZ2VkLCB0aGVuIGluZGljYXRlIHdlIGhhdmUgdW5zYXZlZCBjaGFuZ2VzXG4gICAgY29uc3QgY2hhbmdlZCA9IHZlcnNlVGV4dENoYW5nZWQgfHwgKHVwZGF0ZWRWZXJzZU9iamVjdHMgJiYgIWlzRXF1YWwoaW5pdGlhbFZlcnNlT2JqZWN0cywgdXBkYXRlZFZlcnNlT2JqZWN0cykpXG4gICAgcmV0dXJuIGNoYW5nZWRcbiAgfSwgW3VwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMsIHZlcnNlVGV4dENoYW5nZWRdKVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayB0byBzY3JpcHR1cmUgY2FyZCB0byB1cGRhdGVkIHdpdGggbGF0ZXN0IHN0YXRlIGZvciBzYXZpbmdcbiAgICogQHBhcmFtIHtib29sZWFufSB1bnNhdmVkQ2hhbmdlc19cbiAgICogQHBhcmFtIHtvYmplY3R9IG5ld1N0YXRlXG4gICAqL1xuICBmdW5jdGlvbiBjYWxsU2V0U2F2ZWRTdGF0ZSh1bnNhdmVkQ2hhbmdlc186IGJvb2xlYW4sIG5ld1N0YXRlOiB7fSA9IHsgfSApIHtcbiAgICBjb25zdCBfbmV3U3RhdGUgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIC4uLm5ld1N0YXRlLFxuICAgIH1cblxuICAgIC8vIGNvbnNvbGUubG9nKGBjYWxsU2V0U2F2ZWRTdGF0ZSAtIG5ldyBzdGF0ZWAsIF9uZXdTdGF0ZSlcbiAgICBzZXRTYXZlZENoYW5nZXMgJiYgc2V0U2F2ZWRDaGFuZ2VzKGN1cnJlbnRJbmRleCwgIXVuc2F2ZWRDaGFuZ2VzXywge1xuICAgICAgZ2V0Q2hhbmdlcyxcbiAgICAgIGNsZWFyQ2hhbmdlcyxcbiAgICAgIHN0YXRlOiBfbmV3U3RhdGUsXG4gICAgfSlcbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHNldCBzYXZlZCBjaGFuZ2VzIHdoZW5ldmVyIHVzZXIgZWRpdHMgdmVyc2UgdGV4dCBvciBhbGlnbm1lbnRzIG9yIGlmIGFsaWdubWVudHMgYXJlIG9wZW5cbiAgICBjb25zdCB1bnNhdmVkQ2hhbmdlc18gPSB1bnNhdmVkQ2hhbmdlcyB8fCAhIWFsaWduZXJEYXRhXG4gICAgY2FsbFNldFNhdmVkU3RhdGUodW5zYXZlZENoYW5nZXNfKVxuICB9LCBbdW5zYXZlZENoYW5nZXMsIGFsaWduZXJEYXRhXSlcblxuICAvKipcbiAgICogY2FsbGJhY2sgZm9yIHdoZW4gYWxpZ25tZW50cyBhcmUgYmVpbmcgY2hhbmdlZFxuICAgKiBAcGFyYW0ge0FsaWduZXJSZXN1bHRzRGF0YVR5cGV9IHJlc3VsdHNcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gdHJ1ZSBpZiBhbGlnbm1lbnQgaXMgY29tcGxldGVcbiAgICovXG4gIGZ1bmN0aW9uIG9uQWxpZ25tZW50c0NoYW5nZShyZXN1bHRzOiBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlKTpib29sZWFuIHtcbiAgICBjb25zb2xlLmxvZyhgb25BbGlnbm1lbnRzQ2hhbmdlKCkgLSBhbGlnbm1lbnQgY2hhbmdlZCwgcmVzdWx0c2AsIHJlc3VsdHMpIC8vIG1lcmdlIGFsaWdubWVudHMgaW50byB0YXJnZXQgdmVyc2UgYW5kIGNvbnZlcnQgdG8gVVNGTVxuICAgIGNvbnN0IHsgdGFyZ2V0V29yZHMsIHZlcnNlQWxpZ25tZW50cyB9ID0gcmVzdWx0c1xuICAgIGNvbnN0IGFsaWdubWVudENvbXBsZXRlID0gQWxpZ25tZW50SGVscGVycy5hcmVBbGdubWVudHNDb21wbGV0ZSh0YXJnZXRXb3JkcywgdmVyc2VBbGlnbm1lbnRzKVxuICAgIGNvbnNvbGUubG9nKGBBbGlnbm1lbnRzIGFyZSAke2FsaWdubWVudENvbXBsZXRlID8gJ0NPTVBMRVRFIScgOiAnaW5jb21wbGV0ZSd9YClcbiAgICBzZXRTdGF0ZSh7IG5ld0FsaWdubWVudHM6IHJlc3VsdHMsIGFsaWduZWQ6IGFsaWdubWVudENvbXBsZXRlIH0pXG4gICAgcmV0dXJuIGFsaWdubWVudENvbXBsZXRlXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFjdGlvbnM6IHtcbiAgICAgIGNhbmNlbEFsaWdubWVudCxcbiAgICAgIGNsZWFyQ2hhbmdlcyxcbiAgICAgIGdldENoYW5nZXMsXG4gICAgICBoYW5kbGVBbGlnbm1lbnRDbGljayxcbiAgICAgIG9uQWxpZ25tZW50c0NoYW5nZSxcbiAgICAgIHNhdmVBbGlnbm1lbnQsXG4gICAgICBzZXRFZGl0aW5nLFxuICAgICAgc2V0VmVyc2VDaGFuZ2VkLFxuICAgIH0sXG4gICAgc3RhdGU6IHtcbiAgICAgIGFsaWduZWQsXG4gICAgICBhbGlnbmVyRGF0YSxcbiAgICAgIGN1cnJlbnRWZXJzZU9iamVjdHMsXG4gICAgICBlZGl0aW5nLFxuICAgICAgZW5hYmxlRWRpdCxcbiAgICAgIGVuYWJsZUFsaWdubWVudCxcbiAgICAgIGluaXRpYWxWZXJzZVRleHQsXG4gICAgICBpbml0aWFsVmVyc2VPYmplY3RzLFxuICAgICAgbmV3VmVyc2VUZXh0LFxuICAgICAgcmVmZXJlbmNlOiBiYXNpY1JlZmVyZW5jZSxcbiAgICAgIHNvdXJjZUxhbmd1YWdlLFxuICAgICAgdGFyZ2V0TGFuZ3VhZ2UsXG4gICAgICB0aXRsZSxcbiAgICAgIHVuc2F2ZWRDaGFuZ2VzLFxuICAgICAgdmVyc2VUZXh0Q2hhbmdlZCxcbiAgICB9LFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7K0NBQ0EscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFBLFdBQUFDLENBQUEsU0FBQUMsQ0FBQSxFQUFBRCxDQUFBLE9BQUFFLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxTQUFBLEVBQUFDLENBQUEsR0FBQUgsQ0FBQSxDQUFBSSxjQUFBLEVBQUFDLENBQUEsR0FBQUosTUFBQSxDQUFBSyxjQUFBLGNBQUFQLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLElBQUFELENBQUEsQ0FBQUQsQ0FBQSxJQUFBRSxDQUFBLENBQUFPLEtBQUEsS0FBQUMsQ0FBQSx3QkFBQUMsTUFBQSxHQUFBQSxNQUFBLE9BQUFDLENBQUEsR0FBQUYsQ0FBQSxD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
|
|
654
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIkYiLCJfZSIsIm5vcm1hbENvbXBsZXRpb24iLCJkaWRFcnIiLCJzdGVwIiwiX2UyIiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIm9iaiIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0IiwibGVuIiwiYXJyMiIsIlJlYWN0IiwiQWxpZ25tZW50SGVscGVycyIsIm1pZ3JhdGVPcmlnaW5hbExhbmd1YWdlSGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJ1c2ZtSGVscGVycyIsImlzRXF1YWwiLCJCb29rT2JqZWN0c1R5cGUiLCJTY3JpcHR1cmVDb25maWciLCJTY3JpcHR1cmVSZWZlcmVuY2VUeXBlIiwiU2VydmVyQ29uZmlnVHlwZSIsIlZlcnNlT2JqZWN0c1R5cGUiLCJnZXRBbGlnbm1lbnRzIiwiZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyIsIk9SSUdJTkFMX1NPVVJDRSIsImdldFZlcnNlc0ZvclJlZiIsImlzVXNmbUFsaWduZWQiLCJ0YXJnZXRWZXJzZVVTRk0iLCJvcmlnaW5hbFZlcnNlT2JqZWN0cyIsIl9vcmlnaW5hbFZlcnNlT2JqZWN0cyIsIl9BbGlnbm1lbnRIZWxwZXJzJGV4dCIsImV4dHJhY3RBbGlnbm1lbnRzRnJvbVRhcmdldFZlcnNlIiwiYWxpZ25tZW50cyIsIndvcmRCYW5rIiwiYXJlQWxnbm1lbnRzQ29tcGxldGUiLCJnZXRDdXJyZW50VmVyc2VVc2ZtIiwidXBkYXRlZFZlcnNlT2JqZWN0cyIsImluaXRpYWxWZXJzZU9iamVjdHMiLCJ2ZXJzZVRleHRDaGFuZ2VkIiwibmV3VmVyc2VUZXh0IiwiY3VycmVudFZlcnNlT2JqZWN0c18iLCJfQWxpZ25tZW50SGVscGVycyR1cGQiLCJ1cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZSIsInRhcmdldFZlcnNlVGV4dCIsImNvbnZlcnRWZXJzZURhdGFUb1VTRk0iLCJhbGxTcGFjZXMiLCJ0ZXh0IiwiaGFzVGV4dENoYW5nZWRTaWduaWZpY2FudGx5IiwiaW5pdGlhbFZlcnNlVGV4dCIsImNoYW5nZWQiLCJsZW5ndGhEaWZmZXJlbmNlIiwiZmlyc3RQYXJ0T2ZJbml0aWFsIiwic3Vic3RyaW5nIiwibGFzdENoYXJzIiwicG9zIiwibGFzdEluZGV4T2YiLCJsYXN0VXNmbVRhZyIsImVuZHNXaXRoUXVvdGUiLCJ1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0IiwiX3JlZiIsImN1cnJlbnRJbmRleCIsImVuYWJsZUVkaXQiLCJlbmFibGVBbGlnbm1lbnQiLCJodHRwQ29uZmlnIiwiaXNOZXdUZXN0YW1lbnQiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzIiwib3JpZ2luYWxSZXBvVXJsIiwicmVmZXJlbmNlIiwic2NyaXB0dXJlQ29uZmlnIiwic2NyaXB0dXJlU2V0dGluZ3MiLCJzZXRTYXZlZENoYW5nZXMiLCJzb3VyY2VMYW5ndWFnZSIsInN0YXJ0RWRpdEJyYW5jaCIsInRhcmdldExhbmd1YWdlIiwidGl0bGUiLCJ3b3JraW5nUmVzb3VyY2VCcmFuY2giLCJfUmVhY3QkdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsImFsaWduZWQiLCJhbGlnbmVyRGF0YSIsImVkaXRpbmciLCJuZXdBbGlnbm1lbnRzIiwiX1JlYWN0JHVzZVN0YXRlMiIsInN0YXRlIiwic2V0U3RhdGVfIiwiX3N0YXRlIiwiY2hhcHRlciIsInZlcnNlIiwiYm9va0lkIiwiYmFzaWNSZWZlcmVuY2UiLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiY2xlYXJDaGFuZ2VzIiwiY29uc29sZSIsImxvZyIsImNvbmNhdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJjbGVhclN0YXRlIiwib3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5nc18iLCJyZXNvdXJjZUlkIiwib3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5ncyIsInJlc291cmNlTGluayIsInVzZU1lbW8iLCJ2ZXJzZU9iamVjdHMiLCJsYW5ndWFnZUlkIiwib3JpZ0Jvb2tJZCIsImhlYWRlcnMiLCJ2ZXJzZXMiLCJfaXRlcmF0b3IiLCJfc3RlcCIsIl92ZXJzZVJlZmVyZW5jZSR2ZXJzZSIsInZlcnNlUmVmZXJlbmNlIiwib3JpZ1ZlcnNlT2JqZWN0cyIsInZlcnNlRGF0YSIsInZvIiwiZ2V0Q3VycmVudFZlcnNlT2JqZWN0cyIsIl91cGRhdGVkVmVyc2VPYmplY3RzIiwidXNlRWZmZWN0Iiwibm90RW1wdHkiLCJhbGlnbmVkXyIsInJlc3VsdHMiLCJnZXRDaGFuZ2VzIiwiX25ld1N0YXRlIiwidXBkYXRlZFZlcnNlT2JqZWN0c18iLCJ1cGRhdGVWZXJzZVdpdGhOZXdBbGlnbm1lbnRzIiwiX0FsaWdubWVudEhlbHBlcnMkdXBkMiIsInRhcmdldFZlcnNlT2JqZWN0cyIsIl9zY3JpcHR1cmVDb25maWckdmVycyIsInJlZiIsInZlcnNlc0ZvclJlZiIsImlzTWlncmF0ZWQiLCJwcmVmaXgiLCJfaW5pdGlhbFZlcnNlT2JqZWN0cyIsInVwZGF0ZWRBbGlnbm1lbnRzIiwiaW5pdGlhbEFsaWdubWVudHMiLCJzYW1lIiwiZmlyc3REaWZmIiwidXBkYXRlZEFsaWdubWVudCIsImluaXRpYWxBbGlnbm1lbnQiLCJkaWZmZXJlbnQiLCJtaWdyYXRlQWxpZ25tZW50cyIsIm1pZ3JhdGVUYXJnZXRBbGlnbm1lbnRzVG9PcmlnaW5hbCIsImhhbmRsZUFsaWdubWVudENsaWNrIiwiX2FsaWduZXJEYXRhIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvIiwiX2FsaWduZXJEYXRhJHNjcmlwdHVyIiwib3JpZ2luYWxWZXJzZVVzZm0iLCJfQWxpZ25tZW50SGVscGVycyRwYXIiLCJwYXJzZVVzZm1Ub1dvcmRBbGlnbmVyRGF0YSIsInRhcmdldFdvcmRzIiwidmVyc2VBbGlnbm1lbnRzIiwiYmlibGVVc2ZtIiwicmVzb3VyY2VTdGF0ZSIsInJlc291cmNlIiwiZXJyb3JNZXNzYWdlIiwiX25ld0FsaWdubWVudHMiLCJ2ZXJzZVVzZm0iLCJhZGRBbGlnbm1lbnRzVG9WZXJzZVVTRk0iLCJhbGlnbmVkVmVyc2VPYmplY3RzIiwidXNmbVZlcnNlVG9Kc29uIiwic2F2ZUFsaWdubWVudCIsImNhbGxTZXRTYXZlZFN0YXRlIiwiY2FuY2VsQWxpZ25tZW50Iiwic2V0RWRpdGluZyIsIl94IiwiX3NldEVkaXRpbmciLCJfY2FsbGVlIiwiZWRpdGluZ18iLCJfbmV3VmVyc2VUZXh0IiwidmVyc2VUZXh0Q2hhbmdlZEZyb21MYXN0RWRpdCIsInZlcnNlVGV4dENoYW5nZWRGcm9tSW5pdGlhbCIsIl9BbGlnbm1lbnRIZWxwZXJzJHVwZDQiLCJfYWxpZ25tZW50c0NoYW5nZWQiLCJfYXJncyIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJjdXJyZW50VmVyc2VPYmplY3RzIiwic2V0VmVyc2VDaGFuZ2VkIiwiX2luaXRpYWxWZXJzZVRleHQiLCJfdGFyZ2V0VmVyc2VPYmplY3RzIiwiX0FsaWdubWVudEhlbHBlcnMkdXBkMyIsInVuc2F2ZWRDaGFuZ2VzIiwidW5zYXZlZENoYW5nZXNfIiwib25BbGlnbm1lbnRzQ2hhbmdlIiwiYWxpZ25tZW50Q29tcGxldGUiLCJhY3Rpb25zIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgQWxpZ25tZW50SGVscGVycyxcbiAgbWlncmF0ZU9yaWdpbmFsTGFuZ3VhZ2VIZWxwZXJzLFxuICBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLFxuICB1c2ZtSGVscGVycyxcbn0gZnJvbSAnd29yZC1hbGlnbmVyLXJjbCdcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdAcmVhY3QtaG9va3ovZGVlcC1lcXVhbCdcbmltcG9ydCB7XG4gIEJvb2tPYmplY3RzVHlwZSxcbiAgU2NyaXB0dXJlQ29uZmlnLFxuICBTY3JpcHR1cmVSZWZlcmVuY2VUeXBlLFxuICBTZXJ2ZXJDb25maWdUeXBlLFxuICBWZXJzZU9iamVjdHNUeXBlLFxufSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IGdldEFsaWdubWVudHMsIGdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MgfSBmcm9tICcuLi91dGlscy9TY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7IE9SSUdJTkFMX1NPVVJDRSB9IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IHsgZ2V0VmVyc2VzRm9yUmVmIH0gZnJvbSAnLi91c2VTY3JpcHR1cmUnXG5cbmludGVyZmFjZSBTdGFydEVkaXQge1xuICAoKTogUHJvbWlzZTxzdHJpbmc+O1xufVxuXG50eXBlIExhbmd1YWdlVHlwZSA9IHtcbiAgbGFuZ3VhZ2VJZDogc3RyaW5nLCAvLyBzaG9ydCBsYW5ndWFnZSBjb2RlIHN1Y2ggYXMgXCJlblwiXG4gIGRpcmVjdGlvbjogc3RyaW5nLCAvLyBsYW5ndWFnZSBkaXJlY3Rpb24gXCJsdHJcIiBvciBcInJ0bFwiXG59O1xuXG5pbnRlcmZhY2UgQWxpZ25lckRhdGFUeXBlIHtcbiAgd29yZEJhbms/OiBPYmplY3RbXSwgLy8gbGlzdCBvZiB3b3JkYmFuayB3b3JkICh0YXJnZXQgbGFuZ3VhZ2Ugd29yZHMpIGluIGZvcm1hdCBuZWVkZWQgYnkgd29yZC1hbGlnbmVyLXJjbFxuICBhbGlnbm1lbnRzPzogT2JqZWN0W10sIC8vIGxpc3Qgb2Ygd29yZCBhbGlnbm1lbnRzIGluIGZvcm1hdCBuZWVkZWQgYnkgd29yZC1hbGlnbmVyLXJjbFxuICBlcnJvck1lc3NhZ2U/OiBzdHJpbmcsIC8vIGlmIHByZXNlbnQgdGhlbiB3ZSBkb24ndCBoYXZlIG5lY2Vzc2FyeSBkYXRhIHRvIGRvIGFsaWdubWVudFxuICBiaWJsZVVzZm0/OiBzdHJpbmcsIC8vIGJpYmxlIFVTRk0gd2l0aCBhbGlnbm1lbnRzXG4gIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM/OiBPYmplY3QsIC8vIG9yaWdpbmFsIGxhbmd1YWdlIGZvciBib29rXG4gIHJlc291cmNlTGluaz86IHN0cmluZywgLy8gaWRlbnRpZmllciBmb3IgcmVzb3VyY2Ugc3VjaCBhcyBcInVuZm9sZGluZ1dvcmQvZW4vdWx0L21hc3Rlci9tYXRcIlxufVxuXG5pbnRlcmZhY2UgQWxpZ25lclJlc3VsdHNEYXRhVHlwZSB7XG4gICAgdGFyZ2V0V29yZHM/OiBPYmplY3RbXSwgLy8gbGlzdCBvZiB0YXJnZXQgbGFuZ3VhZ2Ugd29yZHMgaW4gZm9ybWF0IHVzZWQgaW4gd29yZC1hbGlnbmVyLXJjbFxuICAgIHZlcnNlQWxpZ25tZW50cz86IE9iamVjdFtdLCAvLyBsaXN0IG9mIHdvcmQgYWxpZ25tZW50cyBpbiBmb3JtYXQgdXNlZCBieSB3b3JkLWFsaWduZXItcmNsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzIHtcbiAgLy8gaW5kZXggdG8gdXNlIGZvciBib29rIChlLmcuIGAwMWAgZm9yIGBHRU5gKVxuICBib29rSW5kZXg6IHN0cmluZyxcbiAgLy8gY3VycmVudCB2ZXJzZSBzZWxlY3RlZCBmcm9tIGluaXRpYWxWZXJzZU9iamVjdHNbXVxuICBjdXJyZW50SW5kZXg6IG51bWJlcixcbiAgLy8gcmVmZXJlbmNlIGZvciB2ZXJzZSBzZWxlY3RlZCBmb3IgYWxpZ25tZW50XG4gIGN1cnJlbnRWZXJzZVJlZjogU2NyaXB0dXJlUmVmZXJlbmNlVHlwZSxcbiAgLy8gaWYgdHJ1ZSB0aGVuIGVkaXRpbmcgaXMgYWxsb3dlZFxuICBlbmFibGVFZGl0OiBib29sZWFuLFxuICAvLyBpZiB0cnVlIHRoZW4gYWxpZ25tZW50IGlzIGFsbG93ZWRcbiAgZW5hYmxlQWxpZ25tZW50OiBib29sZWFuLFxuICAvLyBjb25maWd1cmF0aW9uIHRvIHVzZSBmb3IgaHR0cCBjb21tdW5pY2F0aW9uXG4gIGh0dHBDb25maWc6IFNlcnZlckNvbmZpZ1R5cGUsXG4gIC8vIGFycmF5IG9mIHRoZSBpbml0aWFsIHZlcnNlT2JqZWN0cyBmb3IgY3VycmVudCByZWZlcmVuY2VcbiAgaW5pdGlhbFZlcnNlT2JqZWN0czogVmVyc2VPYmplY3RzVHlwZSxcbiAgLy8gaW5pdGlhbCB0ZXh0IGZvciB2ZXJzZVxuICBpbml0aWFsVmVyc2VUZXh0OiBzdHJpbmcsXG4gIC8vIGZsYWcgdGhhdCB3ZSBhcmUgd29ya2luZyBvbiBOVCBib29rXG4gIGlzTmV3VGVzdGFtZW50OiBib29sZWFuLFxuICAvLyB1c2VyIG5hbWUgb2YgbG9nZ2VkIGluIHVzZXJcbiAgbG9nZ2VkSW5Vc2VyOiBzdHJpbmcsXG4gIC8vIG93bmVyIHRvIHVzZSB3aGVuIGZldGNoaW5nIG9yaWdpbmFsIGxhbmd1YWdlIHJlc291cmNlc1xuICBvcmlnaW5hbExhbmd1YWdlT3duZXI6IHN0cmluZyxcbiAgLy8gdXJsIGZvciB0aGUgb3JpZ2luYWwgbGFuZ3VhZ2UgcmVwb1xuICBvcmlnaW5hbFJlcG9Vcmw6IHN0cmluZyxcbiAgLy8gb3JpZ2luYWwgc2NyaXB0dXJlIGJvb2tPYmplY3RzIGZvciBjdXJyZW50IGJvb2tcbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0czogQm9va09iamVjdHNUeXBlLFxuICAvKiogY3VycmVudCByZWZlcmVuY2UgKiovXG4gIHJlZmVyZW5jZTogU2NyaXB0dXJlUmVmZXJlbmNlVHlwZTtcbiAgLy8gZGV0YWlscyBhYm91dCB0aGUgY3VycmVudCBzY3JpcHR1cmUgbG9hZGVkXG4gIHNjcmlwdHVyZUNvbmZpZzogU2NyaXB0dXJlQ29uZmlnLFxuICAvLyBzZXR0aW5ncyB0byBiZSB1c2VkIGZvciBzY3JpcHR1cmVcbiAgc2NyaXB0dXJlU2V0dGluZ3M6IHsgfSxcbiAgLy8gY2FsbGJhY2sgdG8gc2F2ZSBjdXJyZW50IHZlcnNlIGVkaXQgYW5kIGFsaWdubWVudCBjaGFuZ2VzXG4gIHNldFNhdmVkQ2hhbmdlczogRnVuY3Rpb24sXG4gIC8vIHNvdXJjZSBsYW5ndWFnZSBjb2RlIHN1Y2ggYXMgYGhib2BcbiAgc291cmNlTGFuZ3VhZ2U6IHN0cmluZyxcbiAgLy8gY2FsbGJhY2sgdG8gY3JlYXRlIGEgdXNlciBicmFuY2ggZm9yIHNhdmluZyBlZGl0IGRhdGFcbiAgc3RhcnRFZGl0QnJhbmNoOiBTdGFydEVkaXQsXG4gIC8vIGN1cnJlbnQgdGFyZ2V0IGxhbmd1YWdlXG4gIHRhcmdldExhbmd1YWdlOiBMYW5ndWFnZVR5cGUsXG4gIC8vIHRpdGxlIHRvIHNob3cgaW4gYWxpZ25tZW50XG4gIHRpdGxlOiBzdHJpbmcsXG4gICAvLyBicmFuY2ggbmFtZSBjdXJyZW50bHkgYmVpbmcgdXNlZCAoZS5nLiBgbWFzdGVyYCBvciB1c2VyIGJyYW5jaClcbiAgd29ya2luZ1Jlc291cmNlQnJhbmNoOiBzdHJpbmcsXG59XG5cbi8qKlxuICogZGV0ZXJtaW5lcyBpZiBhbGlnbm1lbnQgaXMgY29tcGxldGUgYmFzZWQgb24gdGFyZ2V0IFVTRk0gYW5kIG9yaWdpbmFsIGxhbmd1YWdlIHZlcnNlIG9iamVjdHNcbiAqIEBwYXJhbSB7c3RyaW5nfSB0YXJnZXRWZXJzZVVTRk1cbiAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gb3JpZ2luYWxWZXJzZU9iamVjdHNcbiAqL1xuZnVuY3Rpb24gaXNVc2ZtQWxpZ25lZCh0YXJnZXRWZXJzZVVTRk06c3RyaW5nLCBvcmlnaW5hbFZlcnNlT2JqZWN0czpWZXJzZU9iamVjdHNUeXBlKTpib29sZWFuIHtcbiAgb3JpZ2luYWxWZXJzZU9iamVjdHMgPSBvcmlnaW5hbFZlcnNlT2JqZWN0cz8ubGVuZ3RoID8gb3JpZ2luYWxWZXJzZU9iamVjdHMgOiBudWxsIC8vIG1ha2Ugc3VyZSBub3QgcGFzc2luZyBlbXB0eSBBcnJheVxuXG4gIGlmICggdGFyZ2V0VmVyc2VVU0ZNICYmIG9yaWdpbmFsVmVyc2VPYmplY3RzKSB7XG4gICAgY29uc3Qge1xuICAgICAgYWxpZ25tZW50cyxcbiAgICAgIHdvcmRCYW5rLFxuICAgIH0gPSBBbGlnbm1lbnRIZWxwZXJzLmV4dHJhY3RBbGlnbm1lbnRzRnJvbVRhcmdldFZlcnNlKHRhcmdldFZlcnNlVVNGTSwgb3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgcmV0dXJuIEFsaWdubWVudEhlbHBlcnMuYXJlQWxnbm1lbnRzQ29tcGxldGUod29yZEJhbmssIGFsaWdubWVudHMpXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuXG4vKipcbiAqIGdldCB0aGUgdXBkYXRlZCBVU0ZNIGZvciB0YXJnZXQgdmVyc2UgZnJvbSB0aGUgdXBkYXRlZCB2ZXJzZSBvYmplY3RzIGFuZCBsYXRlc3QgdGV4dFxuICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSB1cGRhdGVkVmVyc2VPYmplY3RzXG4gKiBAcGFyYW0ge1ZlcnNlT2JqZWN0c1R5cGV9IGluaXRpYWxWZXJzZU9iamVjdHNcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gdmVyc2VUZXh0Q2hhbmdlZFxuICogQHBhcmFtIHtzdHJpbmd9IG5ld1ZlcnNlVGV4dFxuICovXG5mdW5jdGlvbiBnZXRDdXJyZW50VmVyc2VVc2ZtKHVwZGF0ZWRWZXJzZU9iamVjdHM6VmVyc2VPYmplY3RzVHlwZSwgaW5pdGlhbFZlcnNlT2JqZWN0czpWZXJzZU9iamVjdHNUeXBlLCB2ZXJzZVRleHRDaGFuZ2VkOiBib29sZWFuLCBuZXdWZXJzZVRleHQ6c3RyaW5nKTpzdHJpbmcge1xuICBsZXQgdGFyZ2V0VmVyc2VVU0ZNID0gbnVsbFxuICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzXyA9IHVwZGF0ZWRWZXJzZU9iamVjdHMgfHwgaW5pdGlhbFZlcnNlT2JqZWN0c1xuXG4gIGlmICh2ZXJzZVRleHRDaGFuZ2VkICYmIG5ld1ZlcnNlVGV4dCkge1xuICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VUZXh0IH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKGN1cnJlbnRWZXJzZU9iamVjdHNfLCBuZXdWZXJzZVRleHQpXG4gICAgdGFyZ2V0VmVyc2VVU0ZNID0gdGFyZ2V0VmVyc2VUZXh0XG4gIH0gZWxzZSB7XG4gICAgdGFyZ2V0VmVyc2VVU0ZNID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5jb252ZXJ0VmVyc2VEYXRhVG9VU0ZNKGN1cnJlbnRWZXJzZU9iamVjdHNfKVxuICB9XG4gIHJldHVybiB0YXJnZXRWZXJzZVVTRk1cbn1cblxuLyoqXG4gKiByZXR1cm4gdHJ1ZSBpZiBvbmx5IHNwYWNlcyBpbiBjb250ZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gdGV4dFxuICovXG5mdW5jdGlvbiBhbGxTcGFjZXModGV4dDpzdHJpbmcpOmJvb2xlYW4ge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAodGV4dFtpXSAhPT0gJyAnKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWVcbn1cblxuLyoqXG4gKiBtYWtlIHN1cmUgdGhlcmUgaXMgYSBzaWduaWZpY2FudCBjaGFuZ2UgdG8gdGhlIHRleHRcbiAqIEBwYXJhbSB7c3RyaW5nfSBuZXdWZXJzZVRleHRcbiAqIEBwYXJhbSB7c3RyaW5nfSBpbml0aWFsVmVyc2VUZXh0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNUZXh0Q2hhbmdlZFNpZ25pZmljYW50bHkobmV3VmVyc2VUZXh0OnN0cmluZywgaW5pdGlhbFZlcnNlVGV4dDpzdHJpbmcpOmJvb2xlYW4ge1xuICBsZXQgY2hhbmdlZCA9IG5ld1ZlcnNlVGV4dCAhPT0gaW5pdGlhbFZlcnNlVGV4dFxuXG4gIGlmIChjaGFuZ2VkICYmIG5ld1ZlcnNlVGV4dCkgeyAvLyBtYWtlIHN1cmUgaXQncyBzaWduaWZpY2FudFxuICAgIGNvbnN0IGxlbmd0aERpZmZlcmVuY2UgPSBuZXdWZXJzZVRleHQubGVuZ3RoIC0gaW5pdGlhbFZlcnNlVGV4dD8ubGVuZ3RoXG4gICAgY29uc3QgZmlyc3RQYXJ0T2ZJbml0aWFsID0gbmV3VmVyc2VUZXh0LnN1YnN0cmluZygwLCBpbml0aWFsVmVyc2VUZXh0Lmxlbmd0aClcblxuICAgIGlmICgobGVuZ3RoRGlmZmVyZW5jZSA+IDApICYmIChpbml0aWFsVmVyc2VUZXh0ID09PSBmaXJzdFBhcnRPZkluaXRpYWwpKSB7IC8vIGlmIGluaXRpYWwgcGFydHMgbWF0Y2hcbiAgICAgIC8vIGFkZCBleGVtcHRpb24gaWYgdGhlIHVzZm0gZW5kcyB3aXRoIGEgcXVvdGUgdGFnXG4gICAgICBjb25zdCBsYXN0Q2hhcnMgPSBuZXdWZXJzZVRleHQuc3Vic3RyaW5nKG5ld1ZlcnNlVGV4dC5sZW5ndGggLSBsZW5ndGhEaWZmZXJlbmNlKVxuICAgICAgY29uc3QgcG9zID0gbmV3VmVyc2VUZXh0Lmxhc3RJbmRleE9mKCdcXFxcJylcbiAgICAgIGNvbnN0IGxhc3RVc2ZtVGFnID0gbmV3VmVyc2VUZXh0W3BvcyArIDFdXG4gICAgICBjb25zdCBlbmRzV2l0aFF1b3RlID0gKHBvcyA+IDApICYmIChsYXN0VXNmbVRhZyA9PT0gJ3EnKVxuXG4gICAgICBpZiAoZW5kc1dpdGhRdW90ZSAmJiBhbGxTcGFjZXMobGFzdENoYXJzKSkge1xuICAgICAgICBjaGFuZ2VkID0gZmFsc2VcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNoYW5nZWRcbn1cblxuLy8gbWFuYWdlIHZlcnNlIGVkaXQgYW5kIGFsaWdubWVudCBzdGF0ZXNcbmV4cG9ydCBmdW5jdGlvbiB1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0KHtcbiAgY3VycmVudEluZGV4LFxuICBlbmFibGVFZGl0LFxuICBlbmFibGVBbGlnbm1lbnQsXG4gIGh0dHBDb25maWcsXG4gIGluaXRpYWxWZXJzZU9iamVjdHMsXG4gIGluaXRpYWxWZXJzZVRleHQsXG4gIGlzTmV3VGVzdGFtZW50LFxuICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsXG4gIG9yaWdpbmFsUmVwb1VybCxcbiAgcmVmZXJlbmNlLFxuICBzY3JpcHR1cmVDb25maWcsXG4gIHNjcmlwdHVyZVNldHRpbmdzLFxuICBzZXRTYXZlZENoYW5nZXMsXG4gIHNvdXJjZUxhbmd1YWdlLFxuICBzdGFydEVkaXRCcmFuY2gsXG4gIHRhcmdldExhbmd1YWdlLFxuICB0aXRsZSxcbiAgd29ya2luZ1Jlc291cmNlQnJhbmNoLFxufSA6IFNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcykge1xuICB0eXBlIFN0YXRlVHlwZXMgPSB7XG4gICAgYWxpZ25lZDogYm9vbGVhbixcbiAgICBhbGlnbmVyRGF0YTogQWxpZ25lckRhdGFUeXBlLFxuICAgIGVkaXRpbmc6IGJvb2xlYW4sXG4gICAgbmV3QWxpZ25tZW50czogQWxpZ25lclJlc3VsdHNEYXRhVHlwZSxcbiAgICBuZXdWZXJzZVRleHQ6IHN0cmluZyxcbiAgICB1cGRhdGVkVmVyc2VPYmplY3RzOiBWZXJzZU9iamVjdHNUeXBlLFxuICAgIHZlcnNlVGV4dENoYW5nZWQ6IGJvb2xlYW4sXG4gIH1cblxuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlX10gPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgYWxpZ25lZDogZmFsc2UsXG4gICAgYWxpZ25lckRhdGE6IG51bGwsXG4gICAgZWRpdGluZzogZmFsc2UsXG4gICAgbmV3QWxpZ25tZW50czogbnVsbCxcbiAgICBuZXdWZXJzZVRleHQ6IG51bGwsXG4gICAgdXBkYXRlZFZlcnNlT2JqZWN0czogbnVsbCxcbiAgICB2ZXJzZVRleHRDaGFuZ2VkOiBmYWxzZSxcbiAgfSlcblxuICBjb25zdCBfc3RhdGU6IFN0YXRlVHlwZXMgPSBzdGF0ZSAvLyBUcmlja3k6IHdvcmstYXJvdW5kIGZvciBidWcgdGhhdCBzdGFuZGFyZCB0eXBlc2NyaXB0IHR5cGUgY2FzdGluZyBkb2VzIG5vdCB3b3JrIGluIC50c3ggZmlsZXNcbiAgY29uc3Qge1xuICAgIGFsaWduZWQsXG4gICAgYWxpZ25lckRhdGEsXG4gICAgZWRpdGluZyxcbiAgICBuZXdBbGlnbm1lbnRzLFxuICAgIG5ld1ZlcnNlVGV4dCxcbiAgICB1cGRhdGVkVmVyc2VPYmplY3RzLFxuICAgIHZlcnNlVGV4dENoYW5nZWQsXG4gIH0gPSBfc3RhdGVcbiAgY29uc3QgY2hhcHRlciA9IHJlZmVyZW5jZT8uY2hhcHRlclxuICBjb25zdCB2ZXJzZSA9IHJlZmVyZW5jZT8udmVyc2VcbiAgY29uc3QgYm9va0lkID0gcmVmZXJlbmNlPy5ib29rSWRcbiAgY29uc3QgYmFzaWNSZWZlcmVuY2UgPSB7IC8vIG9ubHkgaGFzIHRoZSB0aHJlZSBiYXNpYyBmaWVsZHNcbiAgICBjaGFwdGVyLFxuICAgIHZlcnNlLFxuICAgIGJvb2tJZCxcbiAgfVxuXG4gIGZ1bmN0aW9uIHNldFN0YXRlKG5ld1N0YXRlKSB7XG4gICAgc2V0U3RhdGVfKHByZXZTdGF0ZSA9PiAoeyAuLi5wcmV2U3RhdGUsIC4uLm5ld1N0YXRlIH0pKVxuICB9XG5cbiAgZnVuY3Rpb24gY2xlYXJDaGFuZ2VzKCkge1xuICAgIGNvbnNvbGUubG9nKGBjbGVhckNoYW5nZXMoKSAtICR7SlNPTi5zdHJpbmdpZnkoYmFzaWNSZWZlcmVuY2UpfWApXG4gICAgY29uc3QgY2xlYXJTdGF0ZSA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgYWxpZ25lckRhdGE6IG51bGwsXG4gICAgICBlZGl0aW5nOiBmYWxzZSxcbiAgICAgIG5ld0FsaWdubWVudHM6IG51bGwsXG4gICAgICBuZXdWZXJzZVRleHQ6IG51bGwsXG4gICAgICB1cGRhdGVkVmVyc2VPYmplY3RzOiBudWxsLFxuICAgICAgdmVyc2VUZXh0Q2hhbmdlZDogZmFsc2UsXG4gICAgfVxuXG4gICAgaWYgKCFpc0VxdWFsKHN0YXRlLCBjbGVhclN0YXRlKSkge1xuICAgICAgY29uc29sZS5sb2coYGNsZWFyQ2hhbmdlcygpIC0gcmVmZXJlbmNlIGNoYW5nZWQsIHJlc2V0IGVkaXQvYWxpZ25tZW50IHN0YXRlIHZhcmlhYmxlc2ApXG4gICAgICBzZXRTdGF0ZShjbGVhclN0YXRlKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG9yaWdpbmFsU2NyaXB0dXJlU2V0dGluZ3NfID0ge1xuICAgIC4uLnNjcmlwdHVyZVNldHRpbmdzLFxuICAgIHJlc291cmNlSWQ6IE9SSUdJTkFMX1NPVVJDRSxcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgaHR0cENvbmZpZyA9IGh0dHBDb25maWcgfHwge31cbiAgY29uc3Qgb3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5ncyA9IGdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MoXG4gICAgYm9va0lkLCBvcmlnaW5hbFNjcmlwdHVyZVNldHRpbmdzXywgaXNOZXdUZXN0YW1lbnQsIG9yaWdpbmFsUmVwb1VybCxcbiAgKVxuXG4gIGlmICghZW5hYmxlQWxpZ25tZW50KSB7IC8vIGlmIG5vdCBlbmFibGVkLCB0aGVuIHdlIGRvbid0IGZldGNoIHJlc291cmNlXG4gICAgb3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBudWxsXG4gIH1cblxuICBjb25zdCBvcmlnaW5hbFZlcnNlT2JqZWN0cyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4geyAvLyBnZXQgdGhlIG9yaWdpbmFsIGxhbmd1YWdlIHZlcnNlT2JqZWN0c1xuICAgIGNvbnN0IHZlcnNlT2JqZWN0cyA9IFtdXG5cbiAgICBpZiAob3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cykge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgY29uc3QgbGFuZ3VhZ2VJZCA9IG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM/Lmxhbmd1YWdlSWRcbiAgICAgIGNvbnN0IG9yaWdCb29rSWQgPSBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzPy5ib29rSWRcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzPy5oZWFkZXJzXG4gICAgICBjb25zdCB2ZXJzZXMgPSBnZXRWZXJzZXNGb3JSZWYoYmFzaWNSZWZlcmVuY2UsIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsIGxhbmd1YWdlSWQpXG5cbiAgICAgIGlmICh2ZXJzZXM/Lmxlbmd0aCkge1xuICAgICAgICBmb3IgKGNvbnN0IHZlcnNlUmVmZXJlbmNlIG9mIHZlcnNlcykge1xuICAgICAgICAgIGNvbnN0IG9yaWdWZXJzZU9iamVjdHMgPSB2ZXJzZVJlZmVyZW5jZT8udmVyc2VEYXRhPy52ZXJzZU9iamVjdHNcblxuICAgICAgICAgIGlmIChvcmlnVmVyc2VPYmplY3RzKSB7XG4gICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh2ZXJzZU9iamVjdHMsIG9yaWdWZXJzZU9iamVjdHMpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnNvbGUubG9nKGBvcmlnaW5hbFZlcnNlT2JqZWN0cygpIC0gT3JpZ2luYWwgc2NyaXB0dXJlIGZvdW5kIGZvciBib29rSWQ6ICR7Ym9va0lkfSwgb3JpZ0Jvb2tJZDogJHtvcmlnQm9va0lkfSwgbGFuZ3VhZ2VJZDogJHtsYW5ndWFnZUlkfSwgY2hhcHRlcjogJHtjaGFwdGVyfSwgdmVyc2U6ICR7dmVyc2V9YCwgeyBoZWFkZXJzLCB2bzogdmVyc2VPYmplY3RzWzBdIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKGBvcmlnaW5hbFZlcnNlT2JqZWN0cygpIC0gT3JpZ2luYWwgc2NyaXB0dXJlIGJvb2sgb2JqZWN0cyBhcmUgbnVsbCBvciB1bmRlZmluZWQgZm9yIGJvb2tJZDogJHtib29rSWR9LCBjaGFwdGVyOiAke2NoYXB0ZXJ9LCB2ZXJzZTogJHt2ZXJzZX1gKVxuICAgIH1cbiAgICByZXR1cm4gdmVyc2VPYmplY3RzXG4gIH0sIFtvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLCBjaGFwdGVyLCB2ZXJzZSwgYm9va0lkXSlcblxuICAvKipcbiAgICogZ2V0IGN1cnJlbnQgdmVyc2VPYmplY3RzXG4gICAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gX3VwZGF0ZWRWZXJzZU9iamVjdHMgLSBvcHRpb25hbCBvdmVycmlkZXMgdXBkYXRlZFZlcnNlT2JqZWN0c1xuICAgKi9cbiAgZnVuY3Rpb24gZ2V0Q3VycmVudFZlcnNlT2JqZWN0cyhfdXBkYXRlZFZlcnNlT2JqZWN0czogVmVyc2VPYmplY3RzVHlwZSA9IHVwZGF0ZWRWZXJzZU9iamVjdHMpIHtcbiAgICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzXyA9IF91cGRhdGVkVmVyc2VPYmplY3RzIHx8IGluaXRpYWxWZXJzZU9iamVjdHNcbiAgICByZXR1cm4gY3VycmVudFZlcnNlT2JqZWN0c19cbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHVwZGF0ZSBhbGlnbm1lbnQgc3RhdHVzIHdoZW4gYWxpZ25lciBpcyBoaWRkZW5cbiAgICBjb25zdCBub3RFbXB0eSA9ICEhaW5pdGlhbFZlcnNlT2JqZWN0c1xuICAgIGxldCBhbGlnbmVkXyA9IGZhbHNlXG5cbiAgICBpZiAoIWFsaWduZXJEYXRhKSB7IC8vIHNraXAgaWYgYWxpZ25lciBpcyBiZWluZyBzaG93blxuICAgICAgaWYgKG5vdEVtcHR5KSB7IC8vIHNraXAgaWYgZW1wdHlcbiAgICAgICAgY29uc3QgY3VycmVudFZlcnNlT2JqZWN0c18gPSBnZXRDdXJyZW50VmVyc2VPYmplY3RzKClcblxuICAgICAgICBpZiAoIWVuYWJsZUFsaWdubWVudCkge1xuICAgICAgICAgIGFsaWduZWRfID0gdHJ1ZVxuICAgICAgICB9IGVsc2UgaWYgKG5ld1ZlcnNlVGV4dCAmJiAobmV3VmVyc2VUZXh0ICE9PSBpbml0aWFsVmVyc2VUZXh0KSkge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKGN1cnJlbnRWZXJzZU9iamVjdHNfLCBuZXdWZXJzZVRleHQpXG4gICAgICAgICAgYWxpZ25lZF8gPSBpc1VzZm1BbGlnbmVkKHJlc3VsdHM/LnRhcmdldFZlcnNlVGV4dCwgb3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgdGFyZ2V0VmVyc2VVU0ZNID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5jb252ZXJ0VmVyc2VEYXRhVG9VU0ZNKGN1cnJlbnRWZXJzZU9iamVjdHNfKVxuICAgICAgICAgIGFsaWduZWRfID0gaXNVc2ZtQWxpZ25lZCh0YXJnZXRWZXJzZVVTRk0sIG9yaWdpbmFsVmVyc2VPYmplY3RzKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChhbGlnbmVkICE9PSBhbGlnbmVkXykge1xuICAgICAgICBzZXRTdGF0ZSh7IGFsaWduZWQ6IGFsaWduZWRfIH0pXG4gICAgICB9XG4gICAgfVxuICB9LCBbaW5pdGlhbFZlcnNlT2JqZWN0cywgYWxpZ25lckRhdGEsIG5ld1ZlcnNlVGV4dCwgaW5pdGlhbFZlcnNlVGV4dCwgZW5hYmxlQWxpZ25tZW50LCBvcmlnaW5hbFZlcnNlT2JqZWN0c10pXG5cbiAgLyoqXG4gICAqIGdldCBjaGFuZ2VzIGZvciBzYXZpbmdcbiAgICogQHBhcmFtIHtvYmplY3R9IG5ld1N0YXRlIC0gb3B0aW9uYWxseSBwYXNzIGluIG5ldyBzdGF0ZSAodG8gb3ZlcnJpZGUgc3RhdGUpXG4gICAqL1xuICBmdW5jdGlvbiBnZXRDaGFuZ2VzKG5ld1N0YXRlID0ge30pIHtcbiAgICBjb25zb2xlLmxvZyhgZ2V0Q2hhbmdlcyAtIHN0YXJ0ZWQgJHtjdXJyZW50SW5kZXh9IC0gcGFzc2VkIHN0YXRlYCwgbmV3U3RhdGUpXG4gICAgY29uc3QgX25ld1N0YXRlID0ge1xuICAgICAgc3RhdGUsXG4gICAgICAuLi5uZXdTdGF0ZSxcbiAgICB9XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG5ld0FsaWdubWVudHMsXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBuZXdWZXJzZVRleHQsXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB1cGRhdGVkVmVyc2VPYmplY3RzLFxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdmVyc2VUZXh0Q2hhbmdlZCxcbiAgICB9ID0gX25ld1N0YXRlXG4gICAgbGV0IHVwZGF0ZWRWZXJzZU9iamVjdHNfID0gdXBkYXRlZFZlcnNlT2JqZWN0c1xuXG4gICAgaWYgKG5ld0FsaWdubWVudHMpIHsgLy8gaWYgdW5zYXZlZCBhbGlnbm1lbnQgY2hhbmdlcywgYXBwbHkgdGhlbVxuICAgICAgY29uc29sZS5sb2coYGdldENoYW5nZXMgLSBhcHBseWluZyB1bnNhdmVkIGFsaWdubWVudHN9YClcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHNfID0gdXBkYXRlVmVyc2VXaXRoTmV3QWxpZ25tZW50cygpXG4gICAgfVxuXG4gICAgaWYgKHZlcnNlVGV4dENoYW5nZWQgJiYgbmV3VmVyc2VUZXh0KSB7XG4gICAgICBjb25zb2xlLmxvZyhgZ2V0Q2hhbmdlcyAtIGFwcGx5aW5nIG5ldyB0ZXh0OmAsIG5ld1ZlcnNlVGV4dClcbiAgICAgIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHNfID0gZ2V0Q3VycmVudFZlcnNlT2JqZWN0cyh1cGRhdGVkVmVyc2VPYmplY3RzXylcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHNfICYmIGNvbnNvbGUubG9nKGBnZXRDaGFuZ2VzIC0gYXBwbHlpbmcgdXBkYXRlZCBhbGlnbm1lbnRzYClcbiAgICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VPYmplY3RzIH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKGN1cnJlbnRWZXJzZU9iamVjdHNfLCBuZXdWZXJzZVRleHQpXG4gICAgICB1cGRhdGVkVmVyc2VPYmplY3RzXyA9IHRhcmdldFZlcnNlT2JqZWN0c1xuICAgIH0gZWxzZSB7IC8vIG9ubHkgYWxpZ25tZW50IGNoYW5nZXMgdG8gdXBsb2FkXG4gICAgICB1cGRhdGVkVmVyc2VPYmplY3RzXyAmJiBjb25zb2xlLmxvZyhgZ2V0Q2hhbmdlcyAtIGFwcGx5aW5nIHVwZGF0ZWQgYWxpZ25tZW50c2AsIHsgbmV3VmVyc2VUZXh0LCB1cGRhdGVkVmVyc2VPYmplY3RzXyB9KVxuICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0c18gPSB1cGRhdGVkVmVyc2VPYmplY3RzXyB8fCBpbml0aWFsVmVyc2VPYmplY3RzXG4gICAgfVxuXG4gICAgaWYgKHVwZGF0ZWRWZXJzZU9iamVjdHNfKSB7XG4gICAgICBjb25zdCByZWYgPSBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZj8uW2N1cnJlbnRJbmRleF1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICAgICAgcmVmLFxuICAgICAgICB1cGRhdGVkVmVyc2VPYmplY3RzOiB1cGRhdGVkVmVyc2VPYmplY3RzXyxcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge31cbiAgfVxuXG4gIC8qKlxuICAgKiBjb21wYXJlIGluaXRpYWwgYWxpZ25tZW50cyB3aXRoIGZpbmFsIHRvIHNlZSBpZiBjaGFuZ2VkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcmVmaXhcbiAgICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSBfdXBkYXRlZFZlcnNlT2JqZWN0c1xuICAgKiBAcGFyYW0ge1ZlcnNlT2JqZWN0c1R5cGV9IF9pbml0aWFsVmVyc2VPYmplY3RzXG4gICAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmIGNoYW5nZWRcbiAgICovXG4gIGZ1bmN0aW9uIGlzTWlncmF0ZWQocHJlZml4OnN0cmluZywgX3VwZGF0ZWRWZXJzZU9iamVjdHM6VmVyc2VPYmplY3RzVHlwZSA9IHVwZGF0ZWRWZXJzZU9iamVjdHMsIF9pbml0aWFsVmVyc2VPYmplY3RzOlZlcnNlT2JqZWN0c1R5cGUgPSBpbml0aWFsVmVyc2VPYmplY3RzKTpib29sZWFuIHtcbiAgICBjb25zdCB1cGRhdGVkQWxpZ25tZW50cyA9IGdldEFsaWdubWVudHMoX3VwZGF0ZWRWZXJzZU9iamVjdHMpXG4gICAgY29uc3QgaW5pdGlhbEFsaWdubWVudHMgPSBnZXRBbGlnbm1lbnRzKF9pbml0aWFsVmVyc2VPYmplY3RzKVxuICAgIGxldCBzYW1lID0gdXBkYXRlZEFsaWdubWVudHMubGVuZ3RoID09PSBpbml0aWFsQWxpZ25tZW50cy5sZW5ndGggLy8gZmlyc3QgbWFrZSBzdXJlIGxlbmd0aHMgYXJlIHRoZSBzYW1lXG4gICAgbGV0IGZpcnN0RGlmZlxuXG4gICAgaWYgKHNhbWUpIHsgLy8gZXZlbiBpZiBsZW5ndGhzIGFyZSB0aGUgc2FtZSBkb3VibGUgY2hlY2sgZWFjaCBhbGlnbm1lbnRcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdXBkYXRlZEFsaWdubWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgdXBkYXRlZEFsaWdubWVudCA9IHVwZGF0ZWRBbGlnbm1lbnRzW2ldXG4gICAgICAgIGNvbnN0IGluaXRpYWxBbGlnbm1lbnQgPSBpbml0aWFsQWxpZ25tZW50c1tpXVxuXG4gICAgICAgIGlmICghaXNFcXVhbCh1cGRhdGVkQWxpZ25tZW50LCBpbml0aWFsQWxpZ25tZW50KSkge1xuICAgICAgICAgIGZpcnN0RGlmZiA9IGlcbiAgICAgICAgICBzYW1lID0gZmFsc2VcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZGlmZmVyZW50ID0gIXNhbWVcblxuICAgIGlmIChkaWZmZXJlbnQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGAke3ByZWZpeH0gLSB0YXJnZXQgdmVyc2UgYWxpZ25tZW50cyBtaWdyYXRlZCB0byBtYXRjaCBvcmlnaW5hbCBsYW5ndWFnZSwgZmlyc3QgZGlmZmVyZW5jZSBpcyBhdCAke2ZpcnN0RGlmZn1gLCB1cGRhdGVkVmVyc2VPYmplY3RzLCBpbml0aWFsVmVyc2VPYmplY3RzKVxuICAgIH1cblxuICAgIHJldHVybiBkaWZmZXJlbnRcbiAgfVxuXG4gIC8qKlxuICAgKiBkbyBhbGlnbm1lbnRzIG1pZ3JhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJlZml4XG4gICAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gdXBkYXRlZFZlcnNlT2JqZWN0c1xuICAgKi9cbiAgZnVuY3Rpb24gbWlncmF0ZUFsaWdubWVudHMocHJlZml4OiBzdHJpbmcsIHVwZGF0ZWRWZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGUgPSBudWxsKTogVmVyc2VPYmplY3RzVHlwZSB7XG4gICAgdXBkYXRlZFZlcnNlT2JqZWN0cyA9IHVwZGF0ZWRWZXJzZU9iamVjdHMgfHwgZ2V0Q3VycmVudFZlcnNlT2JqZWN0cygpXG4gICAgY29uc3QgX3VwZGF0ZWRWZXJzZU9iamVjdHMgPSBtaWdyYXRlT3JpZ2luYWxMYW5ndWFnZUhlbHBlcnMubWlncmF0ZVRhcmdldEFsaWdubWVudHNUb09yaWdpbmFsKHVwZGF0ZWRWZXJzZU9iamVjdHMsIG9yaWdpbmFsVmVyc2VPYmplY3RzKVxuICAgIGlzTWlncmF0ZWQocHJlZml4LCBfdXBkYXRlZFZlcnNlT2JqZWN0cywgdXBkYXRlZFZlcnNlT2JqZWN0cylcbiAgICByZXR1cm4gX3VwZGF0ZWRWZXJzZU9iamVjdHNcbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmb3Igd2hlbiB1c2VyIGNsaWNrZWQgb24gYWxpZ25tZW50IGJ1dHRvbiAtIHdpbGwgc2hvdyBpZiBub3QgYWxyZWFkeSBzaG93blxuICAgKi9cbiAgZnVuY3Rpb24gaGFuZGxlQWxpZ25tZW50Q2xpY2soKSB7XG4gICAgaWYgKGVuYWJsZUFsaWdubWVudCkge1xuICAgICAgbGV0IF9hbGlnbmVyRGF0YTogQWxpZ25lckRhdGFUeXBlID0gbnVsbFxuXG4gICAgICBpZiAoIWFsaWduZXJEYXRhKSB7IC8vIGlmIHdvcmQgYWxpZ25lciBub3Qgc2hvd25cbiAgICAgICAgY29uc29sZS5sb2coYGhhbmRsZUFsaWdubWVudENsaWNrIC0gdG9nZ2xlIE9OIGFsaWdubWVudGApXG4gICAgICAgIGxldCBvcmlnaW5hbFZlcnNlVXNmbSA9IG51bGxcbiAgICAgICAgbGV0IF91cGRhdGVkVmVyc2VPYmplY3RzID0gdXBkYXRlZFZlcnNlT2JqZWN0c1xuXG4gICAgICAgIGlmIChvcmlnaW5hbFZlcnNlT2JqZWN0cykge1xuICAgICAgICAgIG9yaWdpbmFsVmVyc2VVc2ZtID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5jb252ZXJ0VmVyc2VEYXRhVG9VU0ZNKG9yaWdpbmFsVmVyc2VPYmplY3RzKVxuICAgICAgICAgIF91cGRhdGVkVmVyc2VPYmplY3RzID0gbWlncmF0ZUFsaWdubWVudHMoJ2hhbmRsZUFsaWdubWVudENsaWNrKCknKVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFyZ2V0VmVyc2VVU0ZNID0gZ2V0Q3VycmVudFZlcnNlVXNmbShfdXBkYXRlZFZlcnNlT2JqZWN0cywgaW5pdGlhbFZlcnNlT2JqZWN0cywgdmVyc2VUZXh0Q2hhbmdlZCwgbmV3VmVyc2VUZXh0KVxuXG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICB0YXJnZXRXb3Jkczogd29yZEJhbmssXG4gICAgICAgICAgdmVyc2VBbGlnbm1lbnRzOiBhbGlnbm1lbnRzLFxuICAgICAgICB9ID0gQWxpZ25tZW50SGVscGVycy5wYXJzZVVzZm1Ub1dvcmRBbGlnbmVyRGF0YSh0YXJnZXRWZXJzZVVTRk0sIG9yaWdpbmFsVmVyc2VVc2ZtKVxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGNvbnN0IGJpYmxlVXNmbSA9IHNjcmlwdHVyZUNvbmZpZz8uYmlibGVVc2ZtIHx8ICcnXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgY29uc3QgcmVzb3VyY2VMaW5rID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXRlPy5yZXNvdXJjZT8ucmVzb3VyY2VMaW5rIHx8IGFsaWduZXJEYXRhPy5zY3JpcHR1cmVDb25maWc/LnJlc291cmNlTGluayB8fCAnJ1xuXG4gICAgICAgIF9hbGlnbmVyRGF0YSA9IHtcbiAgICAgICAgICB3b3JkQmFuayxcbiAgICAgICAgICBhbGlnbm1lbnRzLFxuICAgICAgICAgIGJpYmxlVXNmbSxcbiAgICAgICAgICByZXNvdXJjZUxpbmssXG4gICAgICAgICAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghYWxpZ25tZW50cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgX2FsaWduZXJEYXRhLmVycm9yTWVzc2FnZSA9ICdUaGVyZSBhcmUgbm8gd29yZHMgdG8gYWxpZ24gaW4gdGhlIE9yaWdpbmFsIGxhbmd1YWdlJ1xuICAgICAgICB9IGVsc2UgaWYgKCF3b3JkQmFuaz8ubGVuZ3RoKSB7XG4gICAgICAgICAgX2FsaWduZXJEYXRhLmVycm9yTWVzc2FnZSA9ICdUaGVyZSBhcmUgbm8gd29yZHMgdG8gYWxpZ24gaW4gdGhlIExpdGVyYWwvU2ltcGxpZmllZCBTY3JpcHR1cmUgVGV4dCdcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHsgLy8gd29yZCBhbGlnbmVyIGN1cnJlbnRseSBzaG93blxuICAgICAgICBjb25zb2xlLmxvZyhgaGFuZGxlQWxpZ25tZW50Q2xpY2sgLSBhbGlnbm1lbnQgYWxyZWFkeSBzaG93bmApXG4gICAgICAgIF9hbGlnbmVyRGF0YSA9IGFsaWduZXJEYXRhXG4gICAgICB9XG4gICAgICBzZXRTdGF0ZSh7IGFsaWduZXJEYXRhOiBfYWxpZ25lckRhdGEgfSlcbiAgICAgIGNvbnNvbGUubG9nKF9hbGlnbmVyRGF0YSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHVwZGF0ZWQgdmVyc2Ugb2JqZWN0cyBhZnRlciBhbGlnbm1lbnRzIGNoYW5nZWRcbiAgICogQHBhcmFtIHtBbGlnbmVyUmVzdWx0c0RhdGFUeXBlfSBfbmV3QWxpZ25tZW50cyAtIHJlc3VsdHMgb2YgYWxpZ25lclxuICAgKi9cbiAgZnVuY3Rpb24gdXBkYXRlVmVyc2VXaXRoTmV3QWxpZ25tZW50cyhfbmV3QWxpZ25tZW50czogQWxpZ25lclJlc3VsdHNEYXRhVHlwZSA9IG5ld0FsaWdubWVudHMpOlZlcnNlT2JqZWN0c1R5cGUge1xuICAgIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHNfID0gZ2V0Q3VycmVudFZlcnNlT2JqZWN0cygpXG4gICAgY29uc3QgdGFyZ2V0VmVyc2VUZXh0ID0gbmV3VmVyc2VUZXh0IHx8IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuY29udmVydFZlcnNlRGF0YVRvVVNGTShjdXJyZW50VmVyc2VPYmplY3RzXylcbiAgICBjb25zdCB2ZXJzZVVzZm0gPSBBbGlnbm1lbnRIZWxwZXJzLmFkZEFsaWdubWVudHNUb1ZlcnNlVVNGTShfbmV3QWxpZ25tZW50cy50YXJnZXRXb3JkcywgX25ld0FsaWdubWVudHMudmVyc2VBbGlnbm1lbnRzLCB0YXJnZXRWZXJzZVRleHQpXG5cbiAgICBpZiAoIXZlcnNlVXNmbSkge1xuICAgICAgY29uc29sZS5lcnJvcihgdXBkYXRlVmVyc2VXaXRoTmV3QWxpZ25tZW50cygpIC0gZXJyb3IgbWVyZ2luZyBhbGlnbm1lbnRzYClcbiAgICB9XG5cbiAgICBjb25zdCBhbGlnbmVkVmVyc2VPYmplY3RzID0gdXNmbUhlbHBlcnMudXNmbVZlcnNlVG9Kc29uKHZlcnNlVXNmbSlcbiAgICByZXR1cm4gYWxpZ25lZFZlcnNlT2JqZWN0c1xuICB9XG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIGZvciB3aGVuIHVzZXIgY2xpY2tlZCBvbiBidXR0b24gdG8gc2F2ZSBjdXJyZW50IGFsaWdubWVudHMgaW4gd29yZCBhbGlnbmVyLiAgR2VuZXJhdGVzIG5ldyB2ZXJzZSBjb250ZW50IGFuZCBzYXZlcyBpbiBzdGF0ZS4gQ2xvc2VzIGFsaWduZXIgZGlzcGxheVxuICAgKiBAcGFyYW0ge0FsaWduZXJSZXN1bHRzRGF0YVR5cGV9IF9uZXdBbGlnbm1lbnRzIC0gcmVzdWx0cyBvZiBhbGlnbmVyXG4gICAqL1xuICBmdW5jdGlvbiBzYXZlQWxpZ25tZW50KF9uZXdBbGlnbm1lbnRzOiBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlID0gbmV3QWxpZ25tZW50cykge1xuICAgIGNvbnNvbGUubG9nKGBzYXZlQWxpZ25tZW50KCkgLSBuZXdBbGlnbm1lbnRzYCwgX25ld0FsaWdubWVudHMpXG5cbiAgICBpZiAoX25ld0FsaWdubWVudHMpIHtcbiAgICAgIGNvbnN0IGFsaWduZWRWZXJzZU9iamVjdHMgPSB1cGRhdGVWZXJzZVdpdGhOZXdBbGlnbm1lbnRzKF9uZXdBbGlnbm1lbnRzKVxuICAgICAgY29uc29sZS5sb2coYHNhdmVBbGlnbm1lbnQoKSAtIGFsaWduZWRWZXJzZU9iamVjdHNgLCBhbGlnbmVkVmVyc2VPYmplY3RzKVxuICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgIGFsaWduZXJEYXRhOiBudWxsLFxuICAgICAgICBlZGl0aW5nOiBmYWxzZSxcbiAgICAgICAgbmV3QWxpZ25tZW50czogbnVsbCxcbiAgICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0czogYWxpZ25lZFZlcnNlT2JqZWN0cyxcbiAgICAgIH1cbiAgICAgIHNldFN0YXRlKG5ld1N0YXRlKVxuICAgICAgY2FsbFNldFNhdmVkU3RhdGUodHJ1ZSwgbmV3U3RhdGUgKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhgc2F2ZUFsaWdubWVudCgpIC0gbm8gYWxpZ25tZW50IGNoYW5nZXNgKVxuICAgICAgc2V0U3RhdGUoe1xuICAgICAgICBhbGlnbmVyRGF0YTogbnVsbCxcbiAgICAgICAgZWRpdGluZzogZmFsc2UsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmb3Igd2hlbiB1c2VyIGNsaWNrZWQgb24gYnV0dG9uIHRvIGNhbmNlbCB3b3JrIGluIHdvcmQgYWxpZ25lci4gIENhbGN1bGF0ZXMgYW5kIGRpc3BsYXlzIGN1cnJlbnQgYWxpZ25tZW50IHZhbGlkIHN0YXRlLiBDbG9zZXMgYWxpZ25lciBkaXNwbGF5XG4gICAqL1xuICBmdW5jdGlvbiBjYW5jZWxBbGlnbm1lbnQoKSB7XG4gICAgY29uc29sZS5sb2coYGNhbmNlbEFsaWdubWVudCgpYClcbiAgICBjb25zdCB0YXJnZXRWZXJzZVVTRk0gPSBnZXRDdXJyZW50VmVyc2VVc2ZtKHVwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMsIHZlcnNlVGV4dENoYW5nZWQsIG5ld1ZlcnNlVGV4dClcbiAgICBjb25zdCBhbGlnbmVkID0gaXNVc2ZtQWxpZ25lZCh0YXJnZXRWZXJzZVVTRk0sIG9yaWdpbmFsVmVyc2VPYmplY3RzKVxuICAgIHNldFN0YXRlKHsgYWxpZ25lckRhdGE6IG51bGwsIGFsaWduZWQgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayB0byBlbmFibGUvZGlzYWJsZSB2ZXJzZSBlZGl0b3JcbiAgICogQHBhcmFtIHtib29sZWFufSBlZGl0aW5nXyAtIGlmIHRydWUsIGVkaXRvciBpcyBzaG93biwgb3RoZXJ3aXNlIGVkaXRvciBpcyBoaWRkZW5cbiAgICogQHBhcmFtIHtzdHJpbmd9IF9uZXdWZXJzZVRleHQgLSBvcHRpb25hbCB2ZXJzZSB0ZXh0XG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVxdWlyZS1hd2FpdFxuICBhc3luYyBmdW5jdGlvbiBzZXRFZGl0aW5nKGVkaXRpbmdfOiBib29sZWFuLCBfbmV3VmVyc2VUZXh0OiBzdHJpbmcgPSBuZXdWZXJzZVRleHQpIHtcbiAgICBpZiAoZW5hYmxlRWRpdCkge1xuICAgICAgaWYgKGVkaXRpbmdfICE9PSBlZGl0aW5nKSB7XG4gICAgICAgIF9uZXdWZXJzZVRleHQgPSBfbmV3VmVyc2VUZXh0IHx8IGluaXRpYWxWZXJzZVRleHRcbiAgICAgICAgbGV0IF91cGRhdGVkVmVyc2VPYmplY3RzID0gbnVsbFxuICAgICAgICBjb25zdCB2ZXJzZVRleHRDaGFuZ2VkRnJvbUxhc3RFZGl0ID0gX25ld1ZlcnNlVGV4dCAhPT0gbmV3VmVyc2VUZXh0XG4gICAgICAgIGNvbnN0IHZlcnNlVGV4dENoYW5nZWRGcm9tSW5pdGlhbCA9IF9uZXdWZXJzZVRleHQgIT09IGluaXRpYWxWZXJzZVRleHRcbiAgICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgICAgZWRpdGluZzogZWRpdGluZ18sXG4gICAgICAgICAgbmV3VmVyc2VUZXh0OiBfbmV3VmVyc2VUZXh0LFxuICAgICAgICAgIHZlcnNlVGV4dENoYW5nZWQ6IHZlcnNlVGV4dENoYW5nZWRGcm9tSW5pdGlhbCxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZWRpdGluZ18gJiYgdmVyc2VUZXh0Q2hhbmdlZEZyb21MYXN0RWRpdCkgeyAvLyBpZiBkb25lIGVkaXRpbmcgYW5kIHZlcnNlIGhhcyBjaGFuZ2VkLCB1cGRhdGUgdGhlIHZlcnNlIG9iamVjdHNcbiAgICAgICAgICBfdXBkYXRlZFZlcnNlT2JqZWN0cyA9IHVwZGF0ZWRWZXJzZU9iamVjdHMgfHwgY3VycmVudFZlcnNlT2JqZWN0c1xuXG4gICAgICAgICAgaWYgKHZlcnNlVGV4dENoYW5nZWRGcm9tSW5pdGlhbCkgeyAvLyBpZiB2ZXJzZSBoYXMgY2hhbmdlZCBmcm9tIGluaXRpYWwsIG1pZ3JhdGUgYWxpZ25tZW50cyBpbiB0aGUgdmVyc2Ugb2JqZWN0c1xuICAgICAgICAgICAgLy8gZG8gbWlncmF0aW9uIG9mIGFsaWdubWVudHMgdG8gbWF0Y2ggbGF0ZXN0IG9yaWdpbmFsIGxhbmd1YWdlXG4gICAgICAgICAgICBfdXBkYXRlZFZlcnNlT2JqZWN0cyA9IG1pZ3JhdGVBbGlnbm1lbnRzKCdzZXRFZGl0aW5nKCknLCBfdXBkYXRlZFZlcnNlT2JqZWN0cylcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBhcHBseSBhbGlnbm1lbnRzIGZyb20gdXBkYXRlZCB2ZXJzZU9iamVjdHMgdG8gZWRpdGVkIHZlcnNlIHRleHQgYW5kIGdlbmVyYXRlIG5ldyB2ZXJzZSBvYmplY3RzXG4gICAgICAgICAgY29uc3QgeyB0YXJnZXRWZXJzZU9iamVjdHMgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoX3VwZGF0ZWRWZXJzZU9iamVjdHMsIF9uZXdWZXJzZVRleHQpXG4gICAgICAgICAgX3VwZGF0ZWRWZXJzZU9iamVjdHMgPSB0YXJnZXRWZXJzZU9iamVjdHMgLy8gdXBkYXRlIHZlcnNlT2JqZWN0cyB0byBtYXRjaCBjdXJyZW50IHRleHRcbiAgICAgICAgICBuZXdTdGF0ZVsndXBkYXRlZFZlcnNlT2JqZWN0cyddID0gX3VwZGF0ZWRWZXJzZU9iamVjdHNcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFN0YXRlKG5ld1N0YXRlKVxuICAgICAgICBjb25zdCBfYWxpZ25tZW50c0NoYW5nZWQgPSAoX3VwZGF0ZWRWZXJzZU9iamVjdHMgJiYgIWlzRXF1YWwoaW5pdGlhbFZlcnNlT2JqZWN0cywgX3VwZGF0ZWRWZXJzZU9iamVjdHMpKVxuICAgICAgICBjYWxsU2V0U2F2ZWRTdGF0ZSh2ZXJzZVRleHRDaGFuZ2VkRnJvbUluaXRpYWwgfHwgX2FsaWdubWVudHNDaGFuZ2VkLCBuZXdTdGF0ZSApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIGZyb20gdGhlIGVkaXQgb25DaGFuZ2UgZXZlbnQgdG8gdXBkYXRlIGVkaXQgc3RhdGUgdmFyaWFibGVzXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gY2hhbmdlZCAtIHRydWUgaWYgdGhlIG5ld1ZlcnNlVGV4dCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgaW5pdGlhbFZlcnNlVGV4dFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3VmVyc2VUZXh0IC0gY3VycmVudCBjaGFuZ2VkIHZlcnNlIHRleHRcbiAgICogQHBhcmFtIHtzdHJpbmd9IF9pbml0aWFsVmVyc2VUZXh0IC0gaW5pdGlhbCB2ZXJzZSB0ZXh0XG4gICAqL1xuICBmdW5jdGlvbiBzZXRWZXJzZUNoYW5nZWQoY2hhbmdlZDogYm9vbGVhbiwgbmV3VmVyc2VUZXh0OiBzdHJpbmcsIF9pbml0aWFsVmVyc2VUZXh0OiBzdHJpbmcpIHtcbiAgICBjb25zdCBfdGFyZ2V0VmVyc2VPYmplY3RzID0gY3VycmVudFZlcnNlT2JqZWN0cyB8fCBpbml0aWFsVmVyc2VPYmplY3RzXG4gICAgY29uc3QgeyB0YXJnZXRWZXJzZVRleHQgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoX3RhcmdldFZlcnNlT2JqZWN0cywgbmV3VmVyc2VUZXh0KVxuICAgIGNvbnN0IGFsaWduZWQgPSBpc1VzZm1BbGlnbmVkKHRhcmdldFZlcnNlVGV4dCwgb3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgY29uc3QgdmVyc2VUZXh0Q2hhbmdlZCA9IG5ld1ZlcnNlVGV4dCAhPT0gaW5pdGlhbFZlcnNlVGV4dFxuXG4gICAgc2V0U3RhdGUoe1xuICAgICAgdmVyc2VUZXh0Q2hhbmdlZCxcbiAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICAgIGFsaWduZWQsXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHMgPSBSZWFjdC51c2VNZW1vKCAoKSA9PiB7IC8vIGlmIHZlcnNlIGhhcyBiZWVuIGVkaXRlZCBvciBhbGlnbm1lbnQgY2hhbmdlZCwgdGhlbiBnZW5lcmF0ZSBuZXcgdmVyc2VPYmplY3RzIHRvIGRpc3BsYXkgaW4gU2NyaXB0dXJlUGFuZVxuICAgIGlmIChpbml0aWFsVmVyc2VPYmplY3RzKSB7XG4gICAgICBjb25zdCB0YXJnZXRWZXJzZVVTRk0gPSBnZXRDdXJyZW50VmVyc2VVc2ZtKHVwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMsIHZlcnNlVGV4dENoYW5nZWQsIG5ld1ZlcnNlVGV4dClcbiAgICAgIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHNfID0gdXNmbUhlbHBlcnMudXNmbVZlcnNlVG9Kc29uKHRhcmdldFZlcnNlVVNGTSlcbiAgICAgIHJldHVybiBjdXJyZW50VmVyc2VPYmplY3RzX1xuICAgIH1cbiAgICByZXR1cm4gaW5pdGlhbFZlcnNlT2JqZWN0c1xuICB9LCBbdXBkYXRlZFZlcnNlT2JqZWN0cywgaW5pdGlhbFZlcnNlT2JqZWN0cywgdmVyc2VUZXh0Q2hhbmdlZCwgbmV3VmVyc2VUZXh0XSlcblxuICBjb25zdCB1bnNhdmVkQ2hhbmdlczpib29sZWFuID0gUmVhY3QudXNlTWVtbyggKCkgPT4geyAvLyBpZiB2ZXJzZSBoYXMgYmVlbiBlZGl0ZWQgb3IgYWxpZ25tZW50IGNoYW5nZWQsIHRoZW4gaW5kaWNhdGUgd2UgaGF2ZSB1bnNhdmVkIGNoYW5nZXNcbiAgICBjb25zdCBjaGFuZ2VkID0gdmVyc2VUZXh0Q2hhbmdlZCB8fCAodXBkYXRlZFZlcnNlT2JqZWN0cyAmJiAhaXNFcXVhbChpbml0aWFsVmVyc2VPYmplY3RzLCB1cGRhdGVkVmVyc2VPYmplY3RzKSlcbiAgICByZXR1cm4gY2hhbmdlZFxuICB9LCBbdXBkYXRlZFZlcnNlT2JqZWN0cywgaW5pdGlhbFZlcnNlT2JqZWN0cywgdmVyc2VUZXh0Q2hhbmdlZF0pXG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIHRvIHNjcmlwdHVyZSBjYXJkIHRvIHVwZGF0ZWQgd2l0aCBsYXRlc3Qgc3RhdGUgZm9yIHNhdmluZ1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHVuc2F2ZWRDaGFuZ2VzX1xuICAgKiBAcGFyYW0ge29iamVjdH0gbmV3U3RhdGVcbiAgICovXG4gIGZ1bmN0aW9uIGNhbGxTZXRTYXZlZFN0YXRlKHVuc2F2ZWRDaGFuZ2VzXzogYm9vbGVhbiwgbmV3U3RhdGU6IHt9ID0geyB9ICkge1xuICAgIGNvbnN0IF9uZXdTdGF0ZSA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgLi4ubmV3U3RhdGUsXG4gICAgfVxuXG4gICAgLy8gY29uc29sZS5sb2coYGNhbGxTZXRTYXZlZFN0YXRlIC0gbmV3IHN0YXRlYCwgX25ld1N0YXRlKVxuICAgIHNldFNhdmVkQ2hhbmdlcyAmJiBzZXRTYXZlZENoYW5nZXMoY3VycmVudEluZGV4LCAhdW5zYXZlZENoYW5nZXNfLCB7XG4gICAgICBnZXRDaGFuZ2VzLFxuICAgICAgY2xlYXJDaGFuZ2VzLFxuICAgICAgc3RhdGU6IF9uZXdTdGF0ZSxcbiAgICB9KVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gc2V0IHNhdmVkIGNoYW5nZXMgd2hlbmV2ZXIgdXNlciBlZGl0cyB2ZXJzZSB0ZXh0IG9yIGFsaWdubWVudHMgb3IgaWYgYWxpZ25tZW50cyBhcmUgb3BlblxuICAgIGNvbnN0IHVuc2F2ZWRDaGFuZ2VzXyA9IHVuc2F2ZWRDaGFuZ2VzIHx8ICEhYWxpZ25lckRhdGFcbiAgICBjYWxsU2V0U2F2ZWRTdGF0ZSh1bnNhdmVkQ2hhbmdlc18pXG4gIH0sIFt1bnNhdmVkQ2hhbmdlcywgYWxpZ25lckRhdGFdKVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmb3Igd2hlbiBhbGlnbm1lbnRzIGFyZSBiZWluZyBjaGFuZ2VkXG4gICAqIEBwYXJhbSB7QWxpZ25lclJlc3VsdHNEYXRhVHlwZX0gcmVzdWx0c1xuICAgKiBAcmV0dXJuIHtib29sZWFufSB0cnVlIGlmIGFsaWdubWVudCBpcyBjb21wbGV0ZVxuICAgKi9cbiAgZnVuY3Rpb24gb25BbGlnbm1lbnRzQ2hhbmdlKHJlc3VsdHM6IEFsaWduZXJSZXN1bHRzRGF0YVR5cGUpOmJvb2xlYW4ge1xuICAgIGNvbnNvbGUubG9nKGBvbkFsaWdubWVudHNDaGFuZ2UoKSAtIGFsaWdubWVudCBjaGFuZ2VkLCByZXN1bHRzYCwgcmVzdWx0cykgLy8gbWVyZ2UgYWxpZ25tZW50cyBpbnRvIHRhcmdldCB2ZXJzZSBhbmQgY29udmVydCB0byBVU0ZNXG4gICAgY29uc3QgeyB0YXJnZXRXb3JkcywgdmVyc2VBbGlnbm1lbnRzIH0gPSByZXN1bHRzXG4gICAgY29uc3QgYWxpZ25tZW50Q29tcGxldGUgPSBBbGlnbm1lbnRIZWxwZXJzLmFyZUFsZ25tZW50c0NvbXBsZXRlKHRhcmdldFdvcmRzLCB2ZXJzZUFsaWdubWVudHMpXG4gICAgY29uc29sZS5sb2coYEFsaWdubWVudHMgYXJlICR7YWxpZ25tZW50Q29tcGxldGUgPyAnQ09NUExFVEUhJyA6ICdpbmNvbXBsZXRlJ31gKVxuICAgIHNldFN0YXRlKHsgbmV3QWxpZ25tZW50czogcmVzdWx0cywgYWxpZ25lZDogYWxpZ25tZW50Q29tcGxldGUgfSlcbiAgICByZXR1cm4gYWxpZ25tZW50Q29tcGxldGVcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWN0aW9uczoge1xuICAgICAgY2FuY2VsQWxpZ25tZW50LFxuICAgICAgY2xlYXJDaGFuZ2VzLFxuICAgICAgZ2V0Q2hhbmdlcyxcbiAgICAgIGhhbmRsZUFsaWdubWVudENsaWNrLFxuICAgICAgb25BbGlnbm1lbnRzQ2hhbmdlLFxuICAgICAgc2F2ZUFsaWdubWVudCxcbiAgICAgIHNldEVkaXRpbmcsXG4gICAgICBzZXRWZXJzZUNoYW5nZWQsXG4gICAgfSxcbiAgICBzdGF0ZToge1xuICAgICAgYWxpZ25lZCxcbiAgICAgIGFsaWduZXJEYXRhLFxuICAgICAgY3VycmVudFZlcnNlT2JqZWN0cyxcbiAgICAgIGVkaXRpbmcsXG4gICAgICBlbmFibGVFZGl0LFxuICAgICAgZW5hYmxlQWxpZ25tZW50LFxuICAgICAgaW5pdGlhbFZlcnNlVGV4dCxcbiAgICAgIGluaXRpYWxWZXJzZU9iamVjdHMsXG4gICAgICBuZXdWZXJzZVRleHQsXG4gICAgICByZWZlcmVuY2U6IGJhc2ljUmVmZXJlbmNlLFxuICAgICAgc291cmNlTGFuZ3VhZ2UsXG4gICAgICB0YXJnZXRMYW5ndWFnZSxcbiAgICAgIHRpdGxlLFxuICAgICAgdW5zYXZlZENoYW5nZXMsXG4gICAgICB2ZXJzZVRleHRDaGFuZ2VkLFxuICAgIH0sXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjsrQ0FDQSxxSkFBQUEsbUJBQUEsWUFBQUEsb0JBQUEsV0FBQUMsQ0FBQSxTQUFBQyxDQUFBLEVBQUFELENBQUEsT0FBQUUsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLFNBQUEsRUFBQUMsQ0FBQSxHQUFBSCxDQUFBLENBQUFJLGNBQUEsRUFBQUMsQ0FBQSxHQUFBSixNQUFBLENBQUFLLGNBQUEsY0FBQVAsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsSUFBQUQsQ0FBQSxDQUFBRCxDQUFBLElBQUFFLENBQUEsQ0FBQU8sS0FBQSxLQUFBQyxDQUFBLHdCQUFBQyxNQUFBLEdBQUFBLE1BQUEsT0FBQUMsQ0FBQSxHQUFBRixDQUFBLENBQUFHLFFBQUEsa0JBQUFDLENBQUEsR0FBQUosQ0FBQSxDQUFBSyxhQUFBLHVCQUFBQyxDQUFBLEdBQUFOLENBQUEsQ0FBQU8sV0FBQSw4QkFBQUMsT0FBQWpCLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLFdBQUFDLE1BQUEsQ0FBQUssY0FBQSxDQUFBUCxDQUFBLEVBQUFELENBQUEsSUFBQVMsS0FBQSxFQUFBUCxDQUFBLEVBQUFpQixVQUFBLE1BQUFD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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "single-scripture-rcl",
|
|
3
3
|
"description": "A React Component Library for Rendering a Single Scripture Resource.",
|
|
4
|
-
"version": "3.4.
|
|
4
|
+
"version": "3.4.32",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/unfoldingWord/single-scripture-rcl.git"
|