single-scripture-rcl 3.4.30 → 3.4.31

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.
@@ -402,7 +402,8 @@ export function useScriptureAlignmentEdit(_ref) {
402
402
  wordBank: wordBank,
403
403
  alignments: alignments,
404
404
  bibleUsfm: bibleUsfm,
405
- resourceLink: resourceLink
405
+ resourceLink: resourceLink,
406
+ originalScriptureBookObjects: originalScriptureBookObjects
406
407
  };
407
408
  if (!(alignments !== null && alignments !== void 0 && alignments.length)) {
408
409
  _alignerData.errorMessage = 'There are no words to align in the Original language';
@@ -641,4 +642,4 @@ export function useScriptureAlignmentEdit(_ref) {
641
642
  }
642
643
  };
643
644
  }
644
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIkYiLCJfZSIsIm5vcm1hbENvbXBsZXRpb24iLCJkaWRFcnIiLCJzdGVwIiwiX2UyIiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIm9iaiIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0IiwibGVuIiwiYXJyMiIsIlJlYWN0IiwiQWxpZ25tZW50SGVscGVycyIsIm1pZ3JhdGVPcmlnaW5hbExhbmd1YWdlSGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJ1c2ZtSGVscGVycyIsImlzRXF1YWwiLCJCb29rT2JqZWN0c1R5cGUiLCJTY3JpcHR1cmVDb25maWciLCJTY3JpcHR1cmVSZWZlcmVuY2VUeXBlIiwiU2VydmVyQ29uZmlnVHlwZSIsIlZlcnNlT2JqZWN0c1R5cGUiLCJnZXRBbGlnbm1lbnRzIiwiZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyIsIk9SSUdJTkFMX1NPVVJDRSIsImdldFZlcnNlc0ZvclJlZiIsImlzVXNmbUFsaWduZWQiLCJ0YXJnZXRWZXJzZVVTRk0iLCJvcmlnaW5hbFZlcnNlT2JqZWN0cyIsIl9vcmlnaW5hbFZlcnNlT2JqZWN0cyIsIl9BbGlnbm1lbnRIZWxwZXJzJGV4dCIsImV4dHJhY3RBbGlnbm1lbnRzRnJvbVRhcmdldFZlcnNlIiwiYWxpZ25tZW50cyIsIndvcmRCYW5rIiwiYXJlQWxnbm1lbnRzQ29tcGxldGUiLCJnZXRDdXJyZW50VmVyc2VVc2ZtIiwidXBkYXRlZFZlcnNlT2JqZWN0cyIsImluaXRpYWxWZXJzZU9iamVjdHMiLCJ2ZXJzZVRleHRDaGFuZ2VkIiwibmV3VmVyc2VUZXh0IiwiY3VycmVudFZlcnNlT2JqZWN0c18iLCJfQWxpZ25tZW50SGVscGVycyR1cGQiLCJ1cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZSIsInRhcmdldFZlcnNlVGV4dCIsImNvbnZlcnRWZXJzZURhdGFUb1VTRk0iLCJhbGxTcGFjZXMiLCJ0ZXh0IiwiaGFzVGV4dENoYW5nZWRTaWduaWZpY2FudGx5IiwiaW5pdGlhbFZlcnNlVGV4dCIsImNoYW5nZWQiLCJsZW5ndGhEaWZmZXJlbmNlIiwiZmlyc3RQYXJ0T2ZJbml0aWFsIiwic3Vic3RyaW5nIiwibGFzdENoYXJzIiwicG9zIiwibGFzdEluZGV4T2YiLCJsYXN0VXNmbVRhZyIsImVuZHNXaXRoUXVvdGUiLCJ1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0IiwiX3JlZiIsImN1cnJlbnRJbmRleCIsImVuYWJsZUVkaXQiLCJlbmFibGVBbGlnbm1lbnQiLCJodHRwQ29uZmlnIiwiaXNOZXdUZXN0YW1lbnQiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzIiwib3JpZ2luYWxSZXBvVXJsIiwicmVmZXJlbmNlIiwic2NyaXB0dXJlQ29uZmlnIiwic2NyaXB0dXJlU2V0dGluZ3MiLCJzZXRTYXZlZENoYW5nZXMiLCJzb3VyY2VMYW5ndWFnZSIsInN0YXJ0RWRpdEJyYW5jaCIsInRhcmdldExhbmd1YWdlIiwidGl0bGUiLCJ3b3JraW5nUmVzb3VyY2VCcmFuY2giLCJfUmVhY3QkdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsImFsaWduZWQiLCJhbGlnbmVyRGF0YSIsImVkaXRpbmciLCJuZXdBbGlnbm1lbnRzIiwiX1JlYWN0JHVzZVN0YXRlMiIsInN0YXRlIiwic2V0U3RhdGVfIiwiX3N0YXRlIiwiY2hhcHRlciIsInZlcnNlIiwiYm9va0lkIiwiYmFzaWNSZWZlcmVuY2UiLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiY2xlYXJDaGFuZ2VzIiwiY29uc29sZSIsImxvZyIsImNvbmNhdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJjbGVhclN0YXRlIiwib3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5nc18iLCJyZXNvdXJjZUlkIiwib3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5ncyIsInJlc291cmNlTGluayIsInVzZU1lbW8iLCJ2ZXJzZU9iamVjdHMiLCJ2ZXJzZXMiLCJsYW5ndWFnZUlkIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJfdmVyc2VSZWZlcmVuY2UkdmVyc2UiLCJ2ZXJzZVJlZmVyZW5jZSIsIm9yaWdWZXJzZU9iamVjdHMiLCJ2ZXJzZURhdGEiLCJnZXRDdXJyZW50VmVyc2VPYmplY3RzIiwiX3VwZGF0ZWRWZXJzZU9iamVjdHMiLCJ1c2VFZmZlY3QiLCJub3RFbXB0eSIsImFsaWduZWRfIiwicmVzdWx0cyIsImdldENoYW5nZXMiLCJfbmV3U3RhdGUiLCJ1cGRhdGVkVmVyc2VPYmplY3RzXyIsInVwZGF0ZVZlcnNlV2l0aE5ld0FsaWdubWVudHMiLCJfQWxpZ25tZW50SGVscGVycyR1cGQyIiwidGFyZ2V0VmVyc2VPYmplY3RzIiwiX3NjcmlwdHVyZUNvbmZpZyR2ZXJzIiwicmVmIiwidmVyc2VzRm9yUmVmIiwiaXNNaWdyYXRlZCIsInByZWZpeCIsIl9pbml0aWFsVmVyc2VPYmplY3RzIiwidXBkYXRlZEFsaWdubWVudHMiLCJpbml0aWFsQWxpZ25tZW50cyIsInNhbWUiLCJmaXJzdERpZmYiLCJ1cGRhdGVkQWxpZ25tZW50IiwiaW5pdGlhbEFsaWdubWVudCIsImRpZmZlcmVudCIsIm1pZ3JhdGVBbGlnbm1lbnRzIiwibWlncmF0ZVRhcmdldEFsaWdubWVudHNUb09yaWdpbmFsIiwiaGFuZGxlQWxpZ25tZW50Q2xpY2siLCJfYWxpZ25lckRhdGEiLCJfc2NyaXB0dXJlQ29uZmlnJHJlc28iLCJfYWxpZ25lckRhdGEkc2NyaXB0dXIiLCJvcmlnaW5hbFZlcnNlVXNmbSIsIl9BbGlnbm1lbnRIZWxwZXJzJHBhciIsInBhcnNlVXNmbVRvV29yZEFsaWduZXJEYXRhIiwidGFyZ2V0V29yZHMiLCJ2ZXJzZUFsaWdubWVudHMiLCJiaWJsZVVzZm0iLCJyZXNvdXJjZVN0YXRlIiwicmVzb3VyY2UiLCJlcnJvck1lc3NhZ2UiLCJfbmV3QWxpZ25tZW50cyIsInZlcnNlVXNmbSIsImFkZEFsaWdubWVudHNUb1ZlcnNlVVNGTSIsImFsaWduZWRWZXJzZU9iamVjdHMiLCJ1c2ZtVmVyc2VUb0pzb24iLCJzYXZlQWxpZ25tZW50IiwiY2FsbFNldFNhdmVkU3RhdGUiLCJjYW5jZWxBbGlnbm1lbnQiLCJzZXRFZGl0aW5nIiwiX3giLCJfc2V0RWRpdGluZyIsIl9jYWxsZWUiLCJlZGl0aW5nXyIsIl9uZXdWZXJzZVRleHQiLCJ2ZXJzZVRleHRDaGFuZ2VkRnJvbUxhc3RFZGl0IiwidmVyc2VUZXh0Q2hhbmdlZEZyb21Jbml0aWFsIiwiX0FsaWdubWVudEhlbHBlcnMkdXBkNCIsIl9hbGlnbm1lbnRzQ2hhbmdlZCIsIl9hcmdzIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsImN1cnJlbnRWZXJzZU9iamVjdHMiLCJzZXRWZXJzZUNoYW5nZWQiLCJfaW5pdGlhbFZlcnNlVGV4dCIsIl90YXJnZXRWZXJzZU9iamVjdHMiLCJfQWxpZ25tZW50SGVscGVycyR1cGQzIiwidW5zYXZlZENoYW5nZXMiLCJ1bnNhdmVkQ2hhbmdlc18iLCJvbkFsaWdubWVudHNDaGFuZ2UiLCJhbGlnbm1lbnRDb21wbGV0ZSIsImFjdGlvbnMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBBbGlnbm1lbnRIZWxwZXJzLFxuICBtaWdyYXRlT3JpZ2luYWxMYW5ndWFnZUhlbHBlcnMsXG4gIFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMsXG4gIHVzZm1IZWxwZXJzLFxufSBmcm9tICd3b3JkLWFsaWduZXItcmNsJ1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ0ByZWFjdC1ob29rei9kZWVwLWVxdWFsJ1xuaW1wb3J0IHtcbiAgQm9va09iamVjdHNUeXBlLFxuICBTY3JpcHR1cmVDb25maWcsXG4gIFNjcmlwdHVyZVJlZmVyZW5jZVR5cGUsXG4gIFNlcnZlckNvbmZpZ1R5cGUsXG4gIFZlcnNlT2JqZWN0c1R5cGUsXG59IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0QWxpZ25tZW50cywgZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyB9IGZyb20gJy4uL3V0aWxzL1NjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHsgT1JJR0lOQUxfU09VUkNFIH0gZnJvbSAnLi4vdXRpbHMnXG5pbXBvcnQgeyBnZXRWZXJzZXNGb3JSZWYgfSBmcm9tICcuL3VzZVNjcmlwdHVyZSdcblxuaW50ZXJmYWNlIFN0YXJ0RWRpdCB7XG4gICgpOiBQcm9taXNlPHN0cmluZz47XG59XG5cbnR5cGUgTGFuZ3VhZ2VUeXBlID0ge1xuICBsYW5ndWFnZUlkOiBzdHJpbmcsIC8vIHNob3J0IGxhbmd1YWdlIGNvZGUgc3VjaCBhcyBcImVuXCJcbiAgZGlyZWN0aW9uOiBzdHJpbmcsIC8vIGxhbmd1YWdlIGRpcmVjdGlvbiBcImx0clwiIG9yIFwicnRsXCJcbn07XG5cbmludGVyZmFjZSBBbGlnbmVyRGF0YVR5cGUge1xuICB3b3JkQmFuaz86IE9iamVjdFtdLCAvLyBsaXN0IG9mIHdvcmRiYW5rIHdvcmQgKHRhcmdldCBsYW5ndWFnZSB3b3JkcykgaW4gZm9ybWF0IG5lZWRlZCBieSB3b3JkLWFsaWduZXItcmNsXG4gIGFsaWdubWVudHM/OiBPYmplY3RbXSwgLy8gbGlzdCBvZiB3b3JkIGFsaWdubWVudHMgaW4gZm9ybWF0IG5lZWRlZCBieSB3b3JkLWFsaWduZXItcmNsXG4gIGVycm9yTWVzc2FnZT86IHN0cmluZywgLy8gaWYgcHJlc2VudCB0aGVuIHdlIGRvbid0IGhhdmUgbmVjZXNzYXJ5IGRhdGEgdG8gZG8gYWxpZ25tZW50XG4gIGJpYmxlVXNmbT86IHN0cmluZywgLy8gYmlibGUgVVNGTSB3aXRoIGFsaWdubWVudHNcbiAgcmVzb3VyY2VMaW5rPzogc3RyaW5nLCAvLyBpZGVudGlmaWVyIGZvciByZXNvdXJjZSBzdWNoIGFzIFwidW5mb2xkaW5nV29yZC9lbi91bHQvbWFzdGVyL21hdFwiXG59XG5cbmludGVyZmFjZSBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlIHtcbiAgICB0YXJnZXRXb3Jkcz86IE9iamVjdFtdLCAvLyBsaXN0IG9mIHRhcmdldCBsYW5ndWFnZSB3b3JkcyBpbiBmb3JtYXQgdXNlZCBpbiB3b3JkLWFsaWduZXItcmNsXG4gICAgdmVyc2VBbGlnbm1lbnRzPzogT2JqZWN0W10sIC8vIGxpc3Qgb2Ygd29yZCBhbGlnbm1lbnRzIGluIGZvcm1hdCB1c2VkIGJ5IHdvcmQtYWxpZ25lci1yY2xcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY3JpcHR1cmVBTGlnbm1lbnRFZGl0UHJvcHMge1xuICAvLyBpbmRleCB0byB1c2UgZm9yIGJvb2sgKGUuZy4gYDAxYCBmb3IgYEdFTmApXG4gIGJvb2tJbmRleDogc3RyaW5nLFxuICAvLyBjdXJyZW50IHZlcnNlIHNlbGVjdGVkIGZyb20gaW5pdGlhbFZlcnNlT2JqZWN0c1tdXG4gIGN1cnJlbnRJbmRleDogbnVtYmVyLFxuICAvLyByZWZlcmVuY2UgZm9yIHZlcnNlIHNlbGVjdGVkIGZvciBhbGlnbm1lbnRcbiAgY3VycmVudFZlcnNlUmVmOiBTY3JpcHR1cmVSZWZlcmVuY2VUeXBlLFxuICAvLyBpZiB0cnVlIHRoZW4gZWRpdGluZyBpcyBhbGxvd2VkXG4gIGVuYWJsZUVkaXQ6IGJvb2xlYW4sXG4gIC8vIGlmIHRydWUgdGhlbiBhbGlnbm1lbnQgaXMgYWxsb3dlZFxuICBlbmFibGVBbGlnbm1lbnQ6IGJvb2xlYW4sXG4gIC8vIGNvbmZpZ3VyYXRpb24gdG8gdXNlIGZvciBodHRwIGNvbW11bmljYXRpb25cbiAgaHR0cENvbmZpZzogU2VydmVyQ29uZmlnVHlwZSxcbiAgLy8gYXJyYXkgb2YgdGhlIGluaXRpYWwgdmVyc2VPYmplY3RzIGZvciBjdXJyZW50IHJlZmVyZW5jZVxuICBpbml0aWFsVmVyc2VPYmplY3RzOiBWZXJzZU9iamVjdHNUeXBlLFxuICAvLyBpbml0aWFsIHRleHQgZm9yIHZlcnNlXG4gIGluaXRpYWxWZXJzZVRleHQ6IHN0cmluZyxcbiAgLy8gZmxhZyB0aGF0IHdlIGFyZSB3b3JraW5nIG9uIE5UIGJvb2tcbiAgaXNOZXdUZXN0YW1lbnQ6IGJvb2xlYW4sXG4gIC8vIHVzZXIgbmFtZSBvZiBsb2dnZWQgaW4gdXNlclxuICBsb2dnZWRJblVzZXI6IHN0cmluZyxcbiAgLy8gb3duZXIgdG8gdXNlIHdoZW4gZmV0Y2hpbmcgb3JpZ2luYWwgbGFuZ3VhZ2UgcmVzb3VyY2VzXG4gIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcjogc3RyaW5nLFxuICAvLyB1cmwgZm9yIHRoZSBvcmlnaW5hbCBsYW5ndWFnZSByZXBvXG4gIG9yaWdpbmFsUmVwb1VybDogc3RyaW5nLFxuICAvLyBvcmlnaW5hbCBzY3JpcHR1cmUgYm9va09iamVjdHMgZm9yIGN1cnJlbnQgYm9va1xuICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzOiBCb29rT2JqZWN0c1R5cGUsXG4gIC8qKiBjdXJyZW50IHJlZmVyZW5jZSAqKi9cbiAgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2VUeXBlO1xuICAvLyBkZXRhaWxzIGFib3V0IHRoZSBjdXJyZW50IHNjcmlwdHVyZSBsb2FkZWRcbiAgc2NyaXB0dXJlQ29uZmlnOiBTY3JpcHR1cmVDb25maWcsXG4gIC8vIHNldHRpbmdzIHRvIGJlIHVzZWQgZm9yIHNjcmlwdHVyZVxuICBzY3JpcHR1cmVTZXR0aW5nczogeyB9LFxuICAvLyBjYWxsYmFjayB0byBzYXZlIGN1cnJlbnQgdmVyc2UgZWRpdCBhbmQgYWxpZ25tZW50IGNoYW5nZXNcbiAgc2V0U2F2ZWRDaGFuZ2VzOiBGdW5jdGlvbixcbiAgLy8gc291cmNlIGxhbmd1YWdlIGNvZGUgc3VjaCBhcyBgaGJvYFxuICBzb3VyY2VMYW5ndWFnZTogc3RyaW5nLFxuICAvLyBjYWxsYmFjayB0byBjcmVhdGUgYSB1c2VyIGJyYW5jaCBmb3Igc2F2aW5nIGVkaXQgZGF0YVxuICBzdGFydEVkaXRCcmFuY2g6IFN0YXJ0RWRpdCxcbiAgLy8gY3VycmVudCB0YXJnZXQgbGFuZ3VhZ2VcbiAgdGFyZ2V0TGFuZ3VhZ2U6IExhbmd1YWdlVHlwZSxcbiAgLy8gdGl0bGUgdG8gc2hvdyBpbiBhbGlnbm1lbnRcbiAgdGl0bGU6IHN0cmluZyxcbiAgIC8vIGJyYW5jaCBuYW1lIGN1cnJlbnRseSBiZWluZyB1c2VkIChlLmcuIGBtYXN0ZXJgIG9yIHVzZXIgYnJhbmNoKVxuICB3b3JraW5nUmVzb3VyY2VCcmFuY2g6IHN0cmluZyxcbn1cblxuLyoqXG4gKiBkZXRlcm1pbmVzIGlmIGFsaWdubWVudCBpcyBjb21wbGV0ZSBiYXNlZCBvbiB0YXJnZXQgVVNGTSBhbmQgb3JpZ2luYWwgbGFuZ3VhZ2UgdmVyc2Ugb2JqZWN0c1xuICogQHBhcmFtIHtzdHJpbmd9IHRhcmdldFZlcnNlVVNGTVxuICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSBvcmlnaW5hbFZlcnNlT2JqZWN0c1xuICovXG5mdW5jdGlvbiBpc1VzZm1BbGlnbmVkKHRhcmdldFZlcnNlVVNGTTpzdHJpbmcsIG9yaWdpbmFsVmVyc2VPYmplY3RzOlZlcnNlT2JqZWN0c1R5cGUpOmJvb2xlYW4ge1xuICBvcmlnaW5hbFZlcnNlT2JqZWN0cyA9IG9yaWdpbmFsVmVyc2VPYmplY3RzPy5sZW5ndGggPyBvcmlnaW5hbFZlcnNlT2JqZWN0cyA6IG51bGwgLy8gbWFrZSBzdXJlIG5vdCBwYXNzaW5nIGVtcHR5IEFycmF5XG5cbiAgaWYgKCB0YXJnZXRWZXJzZVVTRk0gJiYgb3JpZ2luYWxWZXJzZU9iamVjdHMpIHtcbiAgICBjb25zdCB7XG4gICAgICBhbGlnbm1lbnRzLFxuICAgICAgd29yZEJhbmssXG4gICAgfSA9IEFsaWdubWVudEhlbHBlcnMuZXh0cmFjdEFsaWdubWVudHNGcm9tVGFyZ2V0VmVyc2UodGFyZ2V0VmVyc2VVU0ZNLCBvcmlnaW5hbFZlcnNlT2JqZWN0cylcbiAgICByZXR1cm4gQWxpZ25tZW50SGVscGVycy5hcmVBbGdubWVudHNDb21wbGV0ZSh3b3JkQmFuaywgYWxpZ25tZW50cylcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG5cbi8qKlxuICogZ2V0IHRoZSB1cGRhdGVkIFVTRk0gZm9yIHRhcmdldCB2ZXJzZSBmcm9tIHRoZSB1cGRhdGVkIHZlcnNlIG9iamVjdHMgYW5kIGxhdGVzdCB0ZXh0XG4gKiBAcGFyYW0ge1ZlcnNlT2JqZWN0c1R5cGV9IHVwZGF0ZWRWZXJzZU9iamVjdHNcbiAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gaW5pdGlhbFZlcnNlT2JqZWN0c1xuICogQHBhcmFtIHtib29sZWFufSB2ZXJzZVRleHRDaGFuZ2VkXG4gKiBAcGFyYW0ge3N0cmluZ30gbmV3VmVyc2VUZXh0XG4gKi9cbmZ1bmN0aW9uIGdldEN1cnJlbnRWZXJzZVVzZm0odXBkYXRlZFZlcnNlT2JqZWN0czpWZXJzZU9iamVjdHNUeXBlLCBpbml0aWFsVmVyc2VPYmplY3RzOlZlcnNlT2JqZWN0c1R5cGUsIHZlcnNlVGV4dENoYW5nZWQ6IGJvb2xlYW4sIG5ld1ZlcnNlVGV4dDpzdHJpbmcpOnN0cmluZyB7XG4gIGxldCB0YXJnZXRWZXJzZVVTRk0gPSBudWxsXG4gIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHNfID0gdXBkYXRlZFZlcnNlT2JqZWN0cyB8fCBpbml0aWFsVmVyc2VPYmplY3RzXG5cbiAgaWYgKHZlcnNlVGV4dENoYW5nZWQgJiYgbmV3VmVyc2VUZXh0KSB7XG4gICAgY29uc3QgeyB0YXJnZXRWZXJzZVRleHQgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoY3VycmVudFZlcnNlT2JqZWN0c18sIG5ld1ZlcnNlVGV4dClcbiAgICB0YXJnZXRWZXJzZVVTRk0gPSB0YXJnZXRWZXJzZVRleHRcbiAgfSBlbHNlIHtcbiAgICB0YXJnZXRWZXJzZVVTRk0gPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmNvbnZlcnRWZXJzZURhdGFUb1VTRk0oY3VycmVudFZlcnNlT2JqZWN0c18pXG4gIH1cbiAgcmV0dXJuIHRhcmdldFZlcnNlVVNGTVxufVxuXG4vKipcbiAqIHJldHVybiB0cnVlIGlmIG9ubHkgc3BhY2VzIGluIGNvbnRlbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0XG4gKi9cbmZ1bmN0aW9uIGFsbFNwYWNlcyh0ZXh0OnN0cmluZyk6Ym9vbGVhbiB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xuICAgIGlmICh0ZXh0W2ldICE9PSAnICcpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZVxufVxuXG4vKipcbiAqIG1ha2Ugc3VyZSB0aGVyZSBpcyBhIHNpZ25pZmljYW50IGNoYW5nZSB0byB0aGUgdGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IG5ld1ZlcnNlVGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IGluaXRpYWxWZXJzZVRleHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1RleHRDaGFuZ2VkU2lnbmlmaWNhbnRseShuZXdWZXJzZVRleHQ6c3RyaW5nLCBpbml0aWFsVmVyc2VUZXh0OnN0cmluZyk6Ym9vbGVhbiB7XG4gIGxldCBjaGFuZ2VkID0gbmV3VmVyc2VUZXh0ICE9PSBpbml0aWFsVmVyc2VUZXh0XG5cbiAgaWYgKGNoYW5nZWQgJiYgbmV3VmVyc2VUZXh0KSB7IC8vIG1ha2Ugc3VyZSBpdCdzIHNpZ25pZmljYW50XG4gICAgY29uc3QgbGVuZ3RoRGlmZmVyZW5jZSA9IG5ld1ZlcnNlVGV4dC5sZW5ndGggLSBpbml0aWFsVmVyc2VUZXh0Py5sZW5ndGhcbiAgICBjb25zdCBmaXJzdFBhcnRPZkluaXRpYWwgPSBuZXdWZXJzZVRleHQuc3Vic3RyaW5nKDAsIGluaXRpYWxWZXJzZVRleHQubGVuZ3RoKVxuXG4gICAgaWYgKChsZW5ndGhEaWZmZXJlbmNlID4gMCkgJiYgKGluaXRpYWxWZXJzZVRleHQgPT09IGZpcnN0UGFydE9mSW5pdGlhbCkpIHsgLy8gaWYgaW5pdGlhbCBwYXJ0cyBtYXRjaFxuICAgICAgLy8gYWRkIGV4ZW1wdGlvbiBpZiB0aGUgdXNmbSBlbmRzIHdpdGggYSBxdW90ZSB0YWdcbiAgICAgIGNvbnN0IGxhc3RDaGFycyA9IG5ld1ZlcnNlVGV4dC5zdWJzdHJpbmcobmV3VmVyc2VUZXh0Lmxlbmd0aCAtIGxlbmd0aERpZmZlcmVuY2UpXG4gICAgICBjb25zdCBwb3MgPSBuZXdWZXJzZVRleHQubGFzdEluZGV4T2YoJ1xcXFwnKVxuICAgICAgY29uc3QgbGFzdFVzZm1UYWcgPSBuZXdWZXJzZVRleHRbcG9zICsgMV1cbiAgICAgIGNvbnN0IGVuZHNXaXRoUXVvdGUgPSAocG9zID4gMCkgJiYgKGxhc3RVc2ZtVGFnID09PSAncScpXG5cbiAgICAgIGlmIChlbmRzV2l0aFF1b3RlICYmIGFsbFNwYWNlcyhsYXN0Q2hhcnMpKSB7XG4gICAgICAgIGNoYW5nZWQgPSBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gY2hhbmdlZFxufVxuXG4vLyBtYW5hZ2UgdmVyc2UgZWRpdCBhbmQgYWxpZ25tZW50IHN0YXRlc1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQoe1xuICBjdXJyZW50SW5kZXgsXG4gIGVuYWJsZUVkaXQsXG4gIGVuYWJsZUFsaWdubWVudCxcbiAgaHR0cENvbmZpZyxcbiAgaW5pdGlhbFZlcnNlT2JqZWN0cyxcbiAgaW5pdGlhbFZlcnNlVGV4dCxcbiAgaXNOZXdUZXN0YW1lbnQsXG4gIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgb3JpZ2luYWxSZXBvVXJsLFxuICByZWZlcmVuY2UsXG4gIHNjcmlwdHVyZUNvbmZpZyxcbiAgc2NyaXB0dXJlU2V0dGluZ3MsXG4gIHNldFNhdmVkQ2hhbmdlcyxcbiAgc291cmNlTGFuZ3VhZ2UsXG4gIHN0YXJ0RWRpdEJyYW5jaCxcbiAgdGFyZ2V0TGFuZ3VhZ2UsXG4gIHRpdGxlLFxuICB3b3JraW5nUmVzb3VyY2VCcmFuY2gsXG59IDogU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzKSB7XG4gIHR5cGUgU3RhdGVUeXBlcyA9IHtcbiAgICBhbGlnbmVkOiBib29sZWFuLFxuICAgIGFsaWduZXJEYXRhOiBBbGlnbmVyRGF0YVR5cGUsXG4gICAgZWRpdGluZzogYm9vbGVhbixcbiAgICBuZXdBbGlnbm1lbnRzOiBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlLFxuICAgIG5ld1ZlcnNlVGV4dDogc3RyaW5nLFxuICAgIHVwZGF0ZWRWZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGUsXG4gICAgdmVyc2VUZXh0Q2hhbmdlZDogYm9vbGVhbixcbiAgfVxuXG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVfXSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICBhbGlnbmVkOiBmYWxzZSxcbiAgICBhbGlnbmVyRGF0YTogbnVsbCxcbiAgICBlZGl0aW5nOiBmYWxzZSxcbiAgICBuZXdBbGlnbm1lbnRzOiBudWxsLFxuICAgIG5ld1ZlcnNlVGV4dDogbnVsbCxcbiAgICB1cGRhdGVkVmVyc2VPYmplY3RzOiBudWxsLFxuICAgIHZlcnNlVGV4dENoYW5nZWQ6IGZhbHNlLFxuICB9KVxuXG4gIGNvbnN0IF9zdGF0ZTogU3RhdGVUeXBlcyA9IHN0YXRlIC8vIFRyaWNreTogd29yay1hcm91bmQgZm9yIGJ1ZyB0aGF0IHN0YW5kYXJkIHR5cGVzY3JpcHQgdHlwZSBjYXN0aW5nIGRvZXMgbm90IHdvcmsgaW4gLnRzeCBmaWxlc1xuICBjb25zdCB7XG4gICAgYWxpZ25lZCxcbiAgICBhbGlnbmVyRGF0YSxcbiAgICBlZGl0aW5nLFxuICAgIG5ld0FsaWdubWVudHMsXG4gICAgbmV3VmVyc2VUZXh0LFxuICAgIHVwZGF0ZWRWZXJzZU9iamVjdHMsXG4gICAgdmVyc2VUZXh0Q2hhbmdlZCxcbiAgfSA9IF9zdGF0ZVxuICBjb25zdCBjaGFwdGVyID0gcmVmZXJlbmNlPy5jaGFwdGVyXG4gIGNvbnN0IHZlcnNlID0gcmVmZXJlbmNlPy52ZXJzZVxuICBjb25zdCBib29rSWQgPSByZWZlcmVuY2U/LmJvb2tJZFxuICBjb25zdCBiYXNpY1JlZmVyZW5jZSA9IHsgLy8gb25seSBoYXMgdGhlIHRocmVlIGJhc2ljIGZpZWxkc1xuICAgIGNoYXB0ZXIsXG4gICAgdmVyc2UsXG4gICAgYm9va0lkLFxuICB9XG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICBmdW5jdGlvbiBjbGVhckNoYW5nZXMoKSB7XG4gICAgY29uc29sZS5sb2coYGNsZWFyQ2hhbmdlcygpIC0gJHtKU09OLnN0cmluZ2lmeShiYXNpY1JlZmVyZW5jZSl9YClcbiAgICBjb25zdCBjbGVhclN0YXRlID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBhbGlnbmVyRGF0YTogbnVsbCxcbiAgICAgIGVkaXRpbmc6IGZhbHNlLFxuICAgICAgbmV3QWxpZ25tZW50czogbnVsbCxcbiAgICAgIG5ld1ZlcnNlVGV4dDogbnVsbCxcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHM6IG51bGwsXG4gICAgICB2ZXJzZVRleHRDaGFuZ2VkOiBmYWxzZSxcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwoc3RhdGUsIGNsZWFyU3RhdGUpKSB7XG4gICAgICBjb25zb2xlLmxvZyhgY2xlYXJDaGFuZ2VzKCkgLSByZWZlcmVuY2UgY2hhbmdlZCwgcmVzZXQgZWRpdC9hbGlnbm1lbnQgc3RhdGUgdmFyaWFibGVzYClcbiAgICAgIHNldFN0YXRlKGNsZWFyU3RhdGUpXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgb3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5nc18gPSB7XG4gICAgLi4uc2NyaXB0dXJlU2V0dGluZ3MsXG4gICAgcmVzb3VyY2VJZDogT1JJR0lOQUxfU09VUkNFLFxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBodHRwQ29uZmlnID0gaHR0cENvbmZpZyB8fCB7fVxuICBjb25zdCBvcmlnaW5hbFNjcmlwdHVyZVNldHRpbmdzID0gZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyhcbiAgICBib29rSWQsIG9yaWdpbmFsU2NyaXB0dXJlU2V0dGluZ3NfLCBpc05ld1Rlc3RhbWVudCwgb3JpZ2luYWxSZXBvVXJsLFxuICApXG5cbiAgaWYgKCFlbmFibGVBbGlnbm1lbnQpIHsgLy8gaWYgbm90IGVuYWJsZWQsIHRoZW4gd2UgZG9uJ3QgZmV0Y2ggcmVzb3VyY2VcbiAgICBvcmlnaW5hbFNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IG51bGxcbiAgfVxuXG4gIGNvbnN0IG9yaWdpbmFsVmVyc2VPYmplY3RzID0gUmVhY3QudXNlTWVtbygoKSA9PiB7IC8vIGdldCB0aGUgb3JpZ2luYWwgbGFuZ3VhZ2UgdmVyc2VPYmplY3RzXG4gICAgY29uc3QgdmVyc2VPYmplY3RzID0gW11cblxuICAgIGlmIChvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBjb25zdCB2ZXJzZXMgPSBnZXRWZXJzZXNGb3JSZWYoYmFzaWNSZWZlcmVuY2UsIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM/Lmxhbmd1YWdlSWQpXG5cbiAgICAgIGlmICh2ZXJzZXM/Lmxlbmd0aCkge1xuICAgICAgICBmb3IgKGNvbnN0IHZlcnNlUmVmZXJlbmNlIG9mIHZlcnNlcykge1xuICAgICAgICAgIGNvbnN0IG9yaWdWZXJzZU9iamVjdHMgPSB2ZXJzZVJlZmVyZW5jZT8udmVyc2VEYXRhPy52ZXJzZU9iamVjdHNcblxuICAgICAgICAgIGlmIChvcmlnVmVyc2VPYmplY3RzKSB7XG4gICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh2ZXJzZU9iamVjdHMsIG9yaWdWZXJzZU9iamVjdHMpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2ZXJzZU9iamVjdHNcbiAgfSwgW29yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsIGNoYXB0ZXIsIHZlcnNlLCBib29rSWRdKVxuXG4gIC8qKlxuICAgKiBnZXQgY3VycmVudCB2ZXJzZU9iamVjdHNcbiAgICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSBfdXBkYXRlZFZlcnNlT2JqZWN0cyAtIG9wdGlvbmFsIG92ZXJyaWRlcyB1cGRhdGVkVmVyc2VPYmplY3RzXG4gICAqL1xuICBmdW5jdGlvbiBnZXRDdXJyZW50VmVyc2VPYmplY3RzKF91cGRhdGVkVmVyc2VPYmplY3RzOiBWZXJzZU9iamVjdHNUeXBlID0gdXBkYXRlZFZlcnNlT2JqZWN0cykge1xuICAgIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHNfID0gX3VwZGF0ZWRWZXJzZU9iamVjdHMgfHwgaW5pdGlhbFZlcnNlT2JqZWN0c1xuICAgIHJldHVybiBjdXJyZW50VmVyc2VPYmplY3RzX1xuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gdXBkYXRlIGFsaWdubWVudCBzdGF0dXMgd2hlbiBhbGlnbmVyIGlzIGhpZGRlblxuICAgIGNvbnN0IG5vdEVtcHR5ID0gISFpbml0aWFsVmVyc2VPYmplY3RzXG4gICAgbGV0IGFsaWduZWRfID0gZmFsc2VcblxuICAgIGlmICghYWxpZ25lckRhdGEpIHsgLy8gc2tpcCBpZiBhbGlnbmVyIGlzIGJlaW5nIHNob3duXG4gICAgICBpZiAobm90RW1wdHkpIHsgLy8gc2tpcCBpZiBlbXB0eVxuICAgICAgICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzXyA9IGdldEN1cnJlbnRWZXJzZU9iamVjdHMoKVxuXG4gICAgICAgIGlmICghZW5hYmxlQWxpZ25tZW50KSB7XG4gICAgICAgICAgYWxpZ25lZF8gPSB0cnVlXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmVyc2VUZXh0ICYmIChuZXdWZXJzZVRleHQgIT09IGluaXRpYWxWZXJzZVRleHQpKSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0cyA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoY3VycmVudFZlcnNlT2JqZWN0c18sIG5ld1ZlcnNlVGV4dClcbiAgICAgICAgICBhbGlnbmVkXyA9IGlzVXNmbUFsaWduZWQocmVzdWx0cz8udGFyZ2V0VmVyc2VUZXh0LCBvcmlnaW5hbFZlcnNlT2JqZWN0cylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB0YXJnZXRWZXJzZVVTRk0gPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmNvbnZlcnRWZXJzZURhdGFUb1VTRk0oY3VycmVudFZlcnNlT2JqZWN0c18pXG4gICAgICAgICAgYWxpZ25lZF8gPSBpc1VzZm1BbGlnbmVkKHRhcmdldFZlcnNlVVNGTSwgb3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGFsaWduZWQgIT09IGFsaWduZWRfKSB7XG4gICAgICAgIHNldFN0YXRlKHsgYWxpZ25lZDogYWxpZ25lZF8gfSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpbml0aWFsVmVyc2VPYmplY3RzLCBhbGlnbmVyRGF0YSwgbmV3VmVyc2VUZXh0LCBpbml0aWFsVmVyc2VUZXh0LCBlbmFibGVBbGlnbm1lbnQsIG9yaWdpbmFsVmVyc2VPYmplY3RzXSlcblxuICAvKipcbiAgICogZ2V0IGNoYW5nZXMgZm9yIHNhdmluZ1xuICAgKiBAcGFyYW0ge29iamVjdH0gbmV3U3RhdGUgLSBvcHRpb25hbGx5IHBhc3MgaW4gbmV3IHN0YXRlICh0byBvdmVycmlkZSBzdGF0ZSlcbiAgICovXG4gIGZ1bmN0aW9uIGdldENoYW5nZXMobmV3U3RhdGUgPSB7fSkge1xuICAgIGNvbnNvbGUubG9nKGBnZXRDaGFuZ2VzIC0gc3RhcnRlZCAke2N1cnJlbnRJbmRleH0gLSBwYXNzZWQgc3RhdGVgLCBuZXdTdGF0ZSlcbiAgICBjb25zdCBfbmV3U3RhdGUgPSB7XG4gICAgICBzdGF0ZSxcbiAgICAgIC4uLm5ld1N0YXRlLFxuICAgIH1cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3Qge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgbmV3QWxpZ25tZW50cyxcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHMsXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB2ZXJzZVRleHRDaGFuZ2VkLFxuICAgIH0gPSBfbmV3U3RhdGVcbiAgICBsZXQgdXBkYXRlZFZlcnNlT2JqZWN0c18gPSB1cGRhdGVkVmVyc2VPYmplY3RzXG5cbiAgICBpZiAobmV3QWxpZ25tZW50cykgeyAvLyBpZiB1bnNhdmVkIGFsaWdubWVudCBjaGFuZ2VzLCBhcHBseSB0aGVtXG4gICAgICBjb25zb2xlLmxvZyhgZ2V0Q2hhbmdlcyAtIGFwcGx5aW5nIHVuc2F2ZWQgYWxpZ25tZW50c31gKVxuICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0c18gPSB1cGRhdGVWZXJzZVdpdGhOZXdBbGlnbm1lbnRzKClcbiAgICB9XG5cbiAgICBpZiAodmVyc2VUZXh0Q2hhbmdlZCAmJiBuZXdWZXJzZVRleHQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBnZXRDaGFuZ2VzIC0gYXBwbHlpbmcgbmV3IHRleHQ6YCwgbmV3VmVyc2VUZXh0KVxuICAgICAgY29uc3QgY3VycmVudFZlcnNlT2JqZWN0c18gPSBnZXRDdXJyZW50VmVyc2VPYmplY3RzKHVwZGF0ZWRWZXJzZU9iamVjdHNfKVxuICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0c18gJiYgY29uc29sZS5sb2coYGdldENoYW5nZXMgLSBhcHBseWluZyB1cGRhdGVkIGFsaWdubWVudHNgKVxuICAgICAgY29uc3QgeyB0YXJnZXRWZXJzZU9iamVjdHMgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoY3VycmVudFZlcnNlT2JqZWN0c18sIG5ld1ZlcnNlVGV4dClcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHNfID0gdGFyZ2V0VmVyc2VPYmplY3RzXG4gICAgfSBlbHNlIHsgLy8gb25seSBhbGlnbm1lbnQgY2hhbmdlcyB0byB1cGxvYWRcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHNfICYmIGNvbnNvbGUubG9nKGBnZXRDaGFuZ2VzIC0gYXBwbHlpbmcgdXBkYXRlZCBhbGlnbm1lbnRzYCwgeyBuZXdWZXJzZVRleHQsIHVwZGF0ZWRWZXJzZU9iamVjdHNfIH0pXG4gICAgICB1cGRhdGVkVmVyc2VPYmplY3RzXyA9IHVwZGF0ZWRWZXJzZU9iamVjdHNfIHx8IGluaXRpYWxWZXJzZU9iamVjdHNcbiAgICB9XG5cbiAgICBpZiAodXBkYXRlZFZlcnNlT2JqZWN0c18pIHtcbiAgICAgIGNvbnN0IHJlZiA9IHNjcmlwdHVyZUNvbmZpZz8udmVyc2VzRm9yUmVmPy5bY3VycmVudEluZGV4XVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmV3VmVyc2VUZXh0LFxuICAgICAgICByZWYsXG4gICAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHM6IHVwZGF0ZWRWZXJzZU9iamVjdHNfLFxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7fVxuICB9XG5cbiAgLyoqXG4gICAqIGNvbXBhcmUgaW5pdGlhbCBhbGlnbm1lbnRzIHdpdGggZmluYWwgdG8gc2VlIGlmIGNoYW5nZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHByZWZpeFxuICAgKiBAcGFyYW0ge1ZlcnNlT2JqZWN0c1R5cGV9IF91cGRhdGVkVmVyc2VPYmplY3RzXG4gICAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gX2luaXRpYWxWZXJzZU9iamVjdHNcbiAgICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgY2hhbmdlZFxuICAgKi9cbiAgZnVuY3Rpb24gaXNNaWdyYXRlZChwcmVmaXg6c3RyaW5nLCBfdXBkYXRlZFZlcnNlT2JqZWN0czpWZXJzZU9iamVjdHNUeXBlID0gdXBkYXRlZFZlcnNlT2JqZWN0cywgX2luaXRpYWxWZXJzZU9iamVjdHM6VmVyc2VPYmplY3RzVHlwZSA9IGluaXRpYWxWZXJzZU9iamVjdHMpOmJvb2xlYW4ge1xuICAgIGNvbnN0IHVwZGF0ZWRBbGlnbm1lbnRzID0gZ2V0QWxpZ25tZW50cyhfdXBkYXRlZFZlcnNlT2JqZWN0cylcbiAgICBjb25zdCBpbml0aWFsQWxpZ25tZW50cyA9IGdldEFsaWdubWVudHMoX2luaXRpYWxWZXJzZU9iamVjdHMpXG4gICAgbGV0IHNhbWUgPSB1cGRhdGVkQWxpZ25tZW50cy5sZW5ndGggPT09IGluaXRpYWxBbGlnbm1lbnRzLmxlbmd0aCAvLyBmaXJzdCBtYWtlIHN1cmUgbGVuZ3RocyBhcmUgdGhlIHNhbWVcbiAgICBsZXQgZmlyc3REaWZmXG5cbiAgICBpZiAoc2FtZSkgeyAvLyBldmVuIGlmIGxlbmd0aHMgYXJlIHRoZSBzYW1lIGRvdWJsZSBjaGVjayBlYWNoIGFsaWdubWVudFxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB1cGRhdGVkQWxpZ25tZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCB1cGRhdGVkQWxpZ25tZW50ID0gdXBkYXRlZEFsaWdubWVudHNbaV1cbiAgICAgICAgY29uc3QgaW5pdGlhbEFsaWdubWVudCA9IGluaXRpYWxBbGlnbm1lbnRzW2ldXG5cbiAgICAgICAgaWYgKCFpc0VxdWFsKHVwZGF0ZWRBbGlnbm1lbnQsIGluaXRpYWxBbGlnbm1lbnQpKSB7XG4gICAgICAgICAgZmlyc3REaWZmID0gaVxuICAgICAgICAgIHNhbWUgPSBmYWxzZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkaWZmZXJlbnQgPSAhc2FtZVxuXG4gICAgaWYgKGRpZmZlcmVudCkge1xuICAgICAgY29uc29sZS5sb2coYCR7cHJlZml4fSAtIHRhcmdldCB2ZXJzZSBhbGlnbm1lbnRzIG1pZ3JhdGVkIHRvIG1hdGNoIG9yaWdpbmFsIGxhbmd1YWdlLCBmaXJzdCBkaWZmZXJlbmNlIGlzIGF0ICR7Zmlyc3REaWZmfWAsIHVwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGRpZmZlcmVudFxuICB9XG5cbiAgLyoqXG4gICAqIGRvIGFsaWdubWVudHMgbWlncmF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcmVmaXhcbiAgICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSB1cGRhdGVkVmVyc2VPYmplY3RzXG4gICAqL1xuICBmdW5jdGlvbiBtaWdyYXRlQWxpZ25tZW50cyhwcmVmaXg6IHN0cmluZywgdXBkYXRlZFZlcnNlT2JqZWN0czogVmVyc2VPYmplY3RzVHlwZSA9IG51bGwpOiBWZXJzZU9iamVjdHNUeXBlIHtcbiAgICB1cGRhdGVkVmVyc2VPYmplY3RzID0gdXBkYXRlZFZlcnNlT2JqZWN0cyB8fCBnZXRDdXJyZW50VmVyc2VPYmplY3RzKClcbiAgICBjb25zdCBfdXBkYXRlZFZlcnNlT2JqZWN0cyA9IG1pZ3JhdGVPcmlnaW5hbExhbmd1YWdlSGVscGVycy5taWdyYXRlVGFyZ2V0QWxpZ25tZW50c1RvT3JpZ2luYWwodXBkYXRlZFZlcnNlT2JqZWN0cywgb3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgaXNNaWdyYXRlZChwcmVmaXgsIF91cGRhdGVkVmVyc2VPYmplY3RzLCB1cGRhdGVkVmVyc2VPYmplY3RzKVxuICAgIHJldHVybiBfdXBkYXRlZFZlcnNlT2JqZWN0c1xuICB9XG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIGZvciB3aGVuIHVzZXIgY2xpY2tlZCBvbiBhbGlnbm1lbnQgYnV0dG9uIC0gd2lsbCBzaG93IGlmIG5vdCBhbHJlYWR5IHNob3duXG4gICAqL1xuICBmdW5jdGlvbiBoYW5kbGVBbGlnbm1lbnRDbGljaygpIHtcbiAgICBpZiAoZW5hYmxlQWxpZ25tZW50KSB7XG4gICAgICBsZXQgX2FsaWduZXJEYXRhOiBBbGlnbmVyRGF0YVR5cGUgPSBudWxsXG5cbiAgICAgIGlmICghYWxpZ25lckRhdGEpIHsgLy8gaWYgd29yZCBhbGlnbmVyIG5vdCBzaG93blxuICAgICAgICBjb25zb2xlLmxvZyhgaGFuZGxlQWxpZ25tZW50Q2xpY2sgLSB0b2dnbGUgT04gYWxpZ25tZW50YClcbiAgICAgICAgbGV0IG9yaWdpbmFsVmVyc2VVc2ZtID0gbnVsbFxuICAgICAgICBsZXQgX3VwZGF0ZWRWZXJzZU9iamVjdHMgPSB1cGRhdGVkVmVyc2VPYmplY3RzXG5cbiAgICAgICAgaWYgKG9yaWdpbmFsVmVyc2VPYmplY3RzKSB7XG4gICAgICAgICAgb3JpZ2luYWxWZXJzZVVzZm0gPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmNvbnZlcnRWZXJzZURhdGFUb1VTRk0ob3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgICAgICAgX3VwZGF0ZWRWZXJzZU9iamVjdHMgPSBtaWdyYXRlQWxpZ25tZW50cygnaGFuZGxlQWxpZ25tZW50Q2xpY2soKScpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0YXJnZXRWZXJzZVVTRk0gPSBnZXRDdXJyZW50VmVyc2VVc2ZtKF91cGRhdGVkVmVyc2VPYmplY3RzLCBpbml0aWFsVmVyc2VPYmplY3RzLCB2ZXJzZVRleHRDaGFuZ2VkLCBuZXdWZXJzZVRleHQpXG5cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHRhcmdldFdvcmRzOiB3b3JkQmFuayxcbiAgICAgICAgICB2ZXJzZUFsaWdubWVudHM6IGFsaWdubWVudHMsXG4gICAgICAgIH0gPSBBbGlnbm1lbnRIZWxwZXJzLnBhcnNlVXNmbVRvV29yZEFsaWduZXJEYXRhKHRhcmdldFZlcnNlVVNGTSwgb3JpZ2luYWxWZXJzZVVzZm0pXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgY29uc3QgYmlibGVVc2ZtID0gc2NyaXB0dXJlQ29uZmlnPy5iaWJsZVVzZm0gfHwgJydcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCByZXNvdXJjZUxpbmsgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdGU/LnJlc291cmNlPy5yZXNvdXJjZUxpbmsgfHwgYWxpZ25lckRhdGE/LnNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VMaW5rIHx8ICcnXG5cbiAgICAgICAgX2FsaWduZXJEYXRhID0ge1xuICAgICAgICAgIHdvcmRCYW5rLFxuICAgICAgICAgIGFsaWdubWVudHMsXG4gICAgICAgICAgYmlibGVVc2ZtLFxuICAgICAgICAgIHJlc291cmNlTGluayxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghYWxpZ25tZW50cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgX2FsaWduZXJEYXRhLmVycm9yTWVzc2FnZSA9ICdUaGVyZSBhcmUgbm8gd29yZHMgdG8gYWxpZ24gaW4gdGhlIE9yaWdpbmFsIGxhbmd1YWdlJ1xuICAgICAgICB9IGVsc2UgaWYgKCF3b3JkQmFuaz8ubGVuZ3RoKSB7XG4gICAgICAgICAgX2FsaWduZXJEYXRhLmVycm9yTWVzc2FnZSA9ICdUaGVyZSBhcmUgbm8gd29yZHMgdG8gYWxpZ24gaW4gdGhlIExpdGVyYWwvU2ltcGxpZmllZCBTY3JpcHR1cmUgVGV4dCdcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHsgLy8gd29yZCBhbGlnbmVyIGN1cnJlbnRseSBzaG93blxuICAgICAgICBjb25zb2xlLmxvZyhgaGFuZGxlQWxpZ25tZW50Q2xpY2sgLSBhbGlnbm1lbnQgYWxyZWFkeSBzaG93bmApXG4gICAgICAgIF9hbGlnbmVyRGF0YSA9IGFsaWduZXJEYXRhXG4gICAgICB9XG4gICAgICBzZXRTdGF0ZSh7IGFsaWduZXJEYXRhOiBfYWxpZ25lckRhdGEgfSlcbiAgICAgIGNvbnNvbGUubG9nKF9hbGlnbmVyRGF0YSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHVwZGF0ZWQgdmVyc2Ugb2JqZWN0cyBhZnRlciBhbGlnbm1lbnRzIGNoYW5nZWRcbiAgICogQHBhcmFtIHtBbGlnbmVyUmVzdWx0c0RhdGFUeXBlfSBfbmV3QWxpZ25tZW50cyAtIHJlc3VsdHMgb2YgYWxpZ25lclxuICAgKi9cbiAgZnVuY3Rpb24gdXBkYXRlVmVyc2VXaXRoTmV3QWxpZ25tZW50cyhfbmV3QWxpZ25tZW50czogQWxpZ25lclJlc3VsdHNEYXRhVHlwZSA9IG5ld0FsaWdubWVudHMpOlZlcnNlT2JqZWN0c1R5cGUge1xuICAgIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHNfID0gZ2V0Q3VycmVudFZlcnNlT2JqZWN0cygpXG4gICAgY29uc3QgdGFyZ2V0VmVyc2VUZXh0ID0gbmV3VmVyc2VUZXh0IHx8IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuY29udmVydFZlcnNlRGF0YVRvVVNGTShjdXJyZW50VmVyc2VPYmplY3RzXylcbiAgICBjb25zdCB2ZXJzZVVzZm0gPSBBbGlnbm1lbnRIZWxwZXJzLmFkZEFsaWdubWVudHNUb1ZlcnNlVVNGTShfbmV3QWxpZ25tZW50cy50YXJnZXRXb3JkcywgX25ld0FsaWdubWVudHMudmVyc2VBbGlnbm1lbnRzLCB0YXJnZXRWZXJzZVRleHQpXG5cbiAgICBpZiAoIXZlcnNlVXNmbSkge1xuICAgICAgY29uc29sZS5lcnJvcihgdXBkYXRlVmVyc2VXaXRoTmV3QWxpZ25tZW50cygpIC0gZXJyb3IgbWVyZ2luZyBhbGlnbm1lbnRzYClcbiAgICB9XG5cbiAgICBjb25zdCBhbGlnbmVkVmVyc2VPYmplY3RzID0gdXNmbUhlbHBlcnMudXNmbVZlcnNlVG9Kc29uKHZlcnNlVXNmbSlcbiAgICByZXR1cm4gYWxpZ25lZFZlcnNlT2JqZWN0c1xuICB9XG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIGZvciB3aGVuIHVzZXIgY2xpY2tlZCBvbiBidXR0b24gdG8gc2F2ZSBjdXJyZW50IGFsaWdubWVudHMgaW4gd29yZCBhbGlnbmVyLiAgR2VuZXJhdGVzIG5ldyB2ZXJzZSBjb250ZW50IGFuZCBzYXZlcyBpbiBzdGF0ZS4gQ2xvc2VzIGFsaWduZXIgZGlzcGxheVxuICAgKiBAcGFyYW0ge0FsaWduZXJSZXN1bHRzRGF0YVR5cGV9IF9uZXdBbGlnbm1lbnRzIC0gcmVzdWx0cyBvZiBhbGlnbmVyXG4gICAqL1xuICBmdW5jdGlvbiBzYXZlQWxpZ25tZW50KF9uZXdBbGlnbm1lbnRzOiBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlID0gbmV3QWxpZ25tZW50cykge1xuICAgIGNvbnNvbGUubG9nKGBzYXZlQWxpZ25tZW50KCkgLSBuZXdBbGlnbm1lbnRzYCwgX25ld0FsaWdubWVudHMpXG5cbiAgICBpZiAoX25ld0FsaWdubWVudHMpIHtcbiAgICAgIGNvbnN0IGFsaWduZWRWZXJzZU9iamVjdHMgPSB1cGRhdGVWZXJzZVdpdGhOZXdBbGlnbm1lbnRzKF9uZXdBbGlnbm1lbnRzKVxuICAgICAgY29uc29sZS5sb2coYHNhdmVBbGlnbm1lbnQoKSAtIGFsaWduZWRWZXJzZU9iamVjdHNgLCBhbGlnbmVkVmVyc2VPYmplY3RzKVxuICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgIGFsaWduZXJEYXRhOiBudWxsLFxuICAgICAgICBlZGl0aW5nOiBmYWxzZSxcbiAgICAgICAgbmV3QWxpZ25tZW50czogbnVsbCxcbiAgICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0czogYWxpZ25lZFZlcnNlT2JqZWN0cyxcbiAgICAgIH1cbiAgICAgIHNldFN0YXRlKG5ld1N0YXRlKVxuICAgICAgY2FsbFNldFNhdmVkU3RhdGUodHJ1ZSwgbmV3U3RhdGUgKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhgc2F2ZUFsaWdubWVudCgpIC0gbm8gYWxpZ25tZW50IGNoYW5nZXNgKVxuICAgICAgc2V0U3RhdGUoe1xuICAgICAgICBhbGlnbmVyRGF0YTogbnVsbCxcbiAgICAgICAgZWRpdGluZzogZmFsc2UsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmb3Igd2hlbiB1c2VyIGNsaWNrZWQgb24gYnV0dG9uIHRvIGNhbmNlbCB3b3JrIGluIHdvcmQgYWxpZ25lci4gIENhbGN1bGF0ZXMgYW5kIGRpc3BsYXlzIGN1cnJlbnQgYWxpZ25tZW50IHZhbGlkIHN0YXRlLiBDbG9zZXMgYWxpZ25lciBkaXNwbGF5XG4gICAqL1xuICBmdW5jdGlvbiBjYW5jZWxBbGlnbm1lbnQoKSB7XG4gICAgY29uc29sZS5sb2coYGNhbmNlbEFsaWdubWVudCgpYClcbiAgICBjb25zdCB0YXJnZXRWZXJzZVVTRk0gPSBnZXRDdXJyZW50VmVyc2VVc2ZtKHVwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMsIHZlcnNlVGV4dENoYW5nZWQsIG5ld1ZlcnNlVGV4dClcbiAgICBjb25zdCBhbGlnbmVkID0gaXNVc2ZtQWxpZ25lZCh0YXJnZXRWZXJzZVVTRk0sIG9yaWdpbmFsVmVyc2VPYmplY3RzKVxuICAgIHNldFN0YXRlKHsgYWxpZ25lckRhdGE6IG51bGwsIGFsaWduZWQgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmb3IgYnV0dG9uIHRvIHNldCBlZGl0aW5nIHN0YXRlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZWRpdGluZ18gLSBpZiB0cnVlLCBlZGl0b3IgaXMgc2hvd24sIG90aGVyd2lzZSBlZGl0b3IgaXMgaGlkZGVuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBfbmV3VmVyc2VUZXh0IC0gb3B0aW9uYWwgdmVyc2UgdGV4dFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXdhaXRcbiAgYXN5bmMgZnVuY3Rpb24gc2V0RWRpdGluZyhlZGl0aW5nXzogYm9vbGVhbiwgX25ld1ZlcnNlVGV4dDogc3RyaW5nID0gbmV3VmVyc2VUZXh0KSB7XG4gICAgaWYgKGVuYWJsZUVkaXQpIHtcbiAgICAgIGlmIChlZGl0aW5nXyAhPT0gZWRpdGluZykge1xuICAgICAgICBfbmV3VmVyc2VUZXh0ID0gX25ld1ZlcnNlVGV4dCB8fCBpbml0aWFsVmVyc2VUZXh0XG4gICAgICAgIGxldCBfdXBkYXRlZFZlcnNlT2JqZWN0cyA9IG51bGxcbiAgICAgICAgY29uc3QgdmVyc2VUZXh0Q2hhbmdlZEZyb21MYXN0RWRpdCA9IF9uZXdWZXJzZVRleHQgIT09IG5ld1ZlcnNlVGV4dFxuICAgICAgICBjb25zdCB2ZXJzZVRleHRDaGFuZ2VkRnJvbUluaXRpYWwgPSBfbmV3VmVyc2VUZXh0ICE9PSBpbml0aWFsVmVyc2VUZXh0XG4gICAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICAgIGVkaXRpbmc6IGVkaXRpbmdfLFxuICAgICAgICAgIG5ld1ZlcnNlVGV4dDogX25ld1ZlcnNlVGV4dCxcbiAgICAgICAgICB2ZXJzZVRleHRDaGFuZ2VkOiB2ZXJzZVRleHRDaGFuZ2VkRnJvbUluaXRpYWwsXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWVkaXRpbmdfICYmIHZlcnNlVGV4dENoYW5nZWRGcm9tTGFzdEVkaXQpIHsgLy8gaWYgZG9uZSBlZGl0aW5nIGFuZCB2ZXJzZSBoYXMgY2hhbmdlZCwgdXBkYXRlIHRoZSB2ZXJzZSBvYmplY3RzXG4gICAgICAgICAgX3VwZGF0ZWRWZXJzZU9iamVjdHMgPSB1cGRhdGVkVmVyc2VPYmplY3RzIHx8IGN1cnJlbnRWZXJzZU9iamVjdHNcblxuICAgICAgICAgIGlmICh2ZXJzZVRleHRDaGFuZ2VkRnJvbUluaXRpYWwpIHsgLy8gaWYgdmVyc2UgaGFzIGNoYW5nZWQgZnJvbSBpbml0aWFsLCBtaWdyYXRlIGFsaWdubWVudHMgaW4gdGhlIHZlcnNlIG9iamVjdHNcbiAgICAgICAgICAgIC8vIGRvIG1pZ3JhdGlvbiBvZiBhbGlnbm1lbnRzIHRvIG1hdGNoIGxhdGVzdCBvcmlnaW5hbCBsYW5ndWFnZVxuICAgICAgICAgICAgX3VwZGF0ZWRWZXJzZU9iamVjdHMgPSBtaWdyYXRlQWxpZ25tZW50cygnc2V0RWRpdGluZygpJywgX3VwZGF0ZWRWZXJzZU9iamVjdHMpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gYXBwbHkgYWxpZ25tZW50cyBmcm9tIHVwZGF0ZWQgdmVyc2VPYmplY3RzIHRvIGVkaXRlZCB2ZXJzZSB0ZXh0IGFuZCBnZW5lcmF0ZSBuZXcgdmVyc2Ugb2JqZWN0c1xuICAgICAgICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VPYmplY3RzIH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKF91cGRhdGVkVmVyc2VPYmplY3RzLCBfbmV3VmVyc2VUZXh0KVxuICAgICAgICAgIF91cGRhdGVkVmVyc2VPYmplY3RzID0gdGFyZ2V0VmVyc2VPYmplY3RzIC8vIHVwZGF0ZSB2ZXJzZU9iamVjdHMgdG8gbWF0Y2ggY3VycmVudCB0ZXh0XG4gICAgICAgICAgbmV3U3RhdGVbJ3VwZGF0ZWRWZXJzZU9iamVjdHMnXSA9IF91cGRhdGVkVmVyc2VPYmplY3RzXG4gICAgICAgIH1cblxuICAgICAgICBzZXRTdGF0ZShuZXdTdGF0ZSlcbiAgICAgICAgY29uc3QgX2FsaWdubWVudHNDaGFuZ2VkID0gKF91cGRhdGVkVmVyc2VPYmplY3RzICYmICFpc0VxdWFsKGluaXRpYWxWZXJzZU9iamVjdHMsIF91cGRhdGVkVmVyc2VPYmplY3RzKSlcbiAgICAgICAgY2FsbFNldFNhdmVkU3RhdGUodmVyc2VUZXh0Q2hhbmdlZEZyb21Jbml0aWFsIHx8IF9hbGlnbm1lbnRzQ2hhbmdlZCwgbmV3U3RhdGUgKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmcm9tIHRoZSBlZGl0IG9uQ2hhbmdlIGV2ZW50IHRvIHVwZGF0ZSBlZGl0IHN0YXRlIHZhcmlhYmxlc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGNoYW5nZWQgLSB0cnVlIGlmIHRoZSBuZXdWZXJzZVRleHQgaXMgZGlmZmVyZW50IHRoYW4gdGhlIGluaXRpYWxWZXJzZVRleHRcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5ld1ZlcnNlVGV4dCAtIGN1cnJlbnQgY2hhbmdlZCB2ZXJzZSB0ZXh0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBfaW5pdGlhbFZlcnNlVGV4dCAtIGluaXRpYWwgdmVyc2UgdGV4dFxuICAgKi9cbiAgZnVuY3Rpb24gc2V0VmVyc2VDaGFuZ2VkKGNoYW5nZWQ6IGJvb2xlYW4sIG5ld1ZlcnNlVGV4dDogc3RyaW5nLCBfaW5pdGlhbFZlcnNlVGV4dDogc3RyaW5nKSB7XG4gICAgY29uc3QgX3RhcmdldFZlcnNlT2JqZWN0cyA9IGN1cnJlbnRWZXJzZU9iamVjdHMgfHwgaW5pdGlhbFZlcnNlT2JqZWN0c1xuICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VUZXh0IH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKF90YXJnZXRWZXJzZU9iamVjdHMsIG5ld1ZlcnNlVGV4dClcbiAgICBjb25zdCBhbGlnbmVkID0gaXNVc2ZtQWxpZ25lZCh0YXJnZXRWZXJzZVRleHQsIG9yaWdpbmFsVmVyc2VPYmplY3RzKVxuICAgIGNvbnN0IHZlcnNlVGV4dENoYW5nZWQgPSBuZXdWZXJzZVRleHQgIT09IGluaXRpYWxWZXJzZVRleHRcblxuICAgIHNldFN0YXRlKHtcbiAgICAgIHZlcnNlVGV4dENoYW5nZWQsXG4gICAgICBuZXdWZXJzZVRleHQsXG4gICAgICBhbGlnbmVkLFxuICAgIH0pXG4gIH1cblxuICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzID0gUmVhY3QudXNlTWVtbyggKCkgPT4geyAvLyBpZiB2ZXJzZSBoYXMgYmVlbiBlZGl0ZWQgb3IgYWxpZ25tZW50IGNoYW5nZWQsIHRoZW4gZ2VuZXJhdGUgbmV3IHZlcnNlT2JqZWN0cyB0byBkaXNwbGF5IGluIFNjcmlwdHVyZVBhbmVcbiAgICBpZiAoaW5pdGlhbFZlcnNlT2JqZWN0cykge1xuICAgICAgY29uc3QgdGFyZ2V0VmVyc2VVU0ZNID0gZ2V0Q3VycmVudFZlcnNlVXNmbSh1cGRhdGVkVmVyc2VPYmplY3RzLCBpbml0aWFsVmVyc2VPYmplY3RzLCB2ZXJzZVRleHRDaGFuZ2VkLCBuZXdWZXJzZVRleHQpXG4gICAgICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzXyA9IHVzZm1IZWxwZXJzLnVzZm1WZXJzZVRvSnNvbih0YXJnZXRWZXJzZVVTRk0pXG4gICAgICByZXR1cm4gY3VycmVudFZlcnNlT2JqZWN0c19cbiAgICB9XG4gICAgcmV0dXJuIGluaXRpYWxWZXJzZU9iamVjdHNcbiAgfSwgW3VwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMsIHZlcnNlVGV4dENoYW5nZWQsIG5ld1ZlcnNlVGV4dF0pXG5cbiAgY29uc3QgdW5zYXZlZENoYW5nZXM6Ym9vbGVhbiA9IFJlYWN0LnVzZU1lbW8oICgpID0+IHsgLy8gaWYgdmVyc2UgaGFzIGJlZW4gZWRpdGVkIG9yIGFsaWdubWVudCBjaGFuZ2VkLCB0aGVuIGluZGljYXRlIHdlIGhhdmUgdW5zYXZlZCBjaGFuZ2VzXG4gICAgY29uc3QgY2hhbmdlZCA9IHZlcnNlVGV4dENoYW5nZWQgfHwgKHVwZGF0ZWRWZXJzZU9iamVjdHMgJiYgIWlzRXF1YWwoaW5pdGlhbFZlcnNlT2JqZWN0cywgdXBkYXRlZFZlcnNlT2JqZWN0cykpXG4gICAgcmV0dXJuIGNoYW5nZWRcbiAgfSwgW3VwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMsIHZlcnNlVGV4dENoYW5nZWRdKVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayB0byBzY3JpcHR1cmUgY2FyZCB0byB1cGRhdGVkIHdpdGggbGF0ZXN0IHN0YXRlIGZvciBzYXZpbmdcbiAgICogQHBhcmFtIHtib29sZWFufSB1bnNhdmVkQ2hhbmdlc19cbiAgICogQHBhcmFtIHtvYmplY3R9IG5ld1N0YXRlXG4gICAqL1xuICBmdW5jdGlvbiBjYWxsU2V0U2F2ZWRTdGF0ZSh1bnNhdmVkQ2hhbmdlc186IGJvb2xlYW4sIG5ld1N0YXRlOiB7fSA9IHsgfSApIHtcbiAgICBjb25zdCBfbmV3U3RhdGUgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIC4uLm5ld1N0YXRlLFxuICAgIH1cblxuICAgIC8vIGNvbnNvbGUubG9nKGBjYWxsU2V0U2F2ZWRTdGF0ZSAtIG5ldyBzdGF0ZWAsIF9uZXdTdGF0ZSlcbiAgICBzZXRTYXZlZENoYW5nZXMgJiYgc2V0U2F2ZWRDaGFuZ2VzKGN1cnJlbnRJbmRleCwgIXVuc2F2ZWRDaGFuZ2VzXywge1xuICAgICAgZ2V0Q2hhbmdlcyxcbiAgICAgIGNsZWFyQ2hhbmdlcyxcbiAgICAgIHN0YXRlOiBfbmV3U3RhdGUsXG4gICAgfSlcbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHNldCBzYXZlZCBjaGFuZ2VzIHdoZW5ldmVyIHVzZXIgZWRpdHMgdmVyc2UgdGV4dCBvciBhbGlnbm1lbnRzIG9yIGlmIGFsaWdubWVudHMgYXJlIG9wZW5cbiAgICBjb25zdCB1bnNhdmVkQ2hhbmdlc18gPSB1bnNhdmVkQ2hhbmdlcyB8fCAhIWFsaWduZXJEYXRhXG4gICAgY2FsbFNldFNhdmVkU3RhdGUodW5zYXZlZENoYW5nZXNfKVxuICB9LCBbdW5zYXZlZENoYW5nZXMsIGFsaWduZXJEYXRhXSlcblxuICAvKipcbiAgICogY2FsbGJhY2sgZm9yIHdoZW4gYWxpZ25tZW50cyBhcmUgYmVpbmcgY2hhbmdlZFxuICAgKiBAcGFyYW0ge0FsaWduZXJSZXN1bHRzRGF0YVR5cGV9IHJlc3VsdHNcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gdHJ1ZSBpZiBhbGlnbm1lbnQgaXMgY29tcGxldGVcbiAgICovXG4gIGZ1bmN0aW9uIG9uQWxpZ25tZW50c0NoYW5nZShyZXN1bHRzOiBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlKTpib29sZWFuIHtcbiAgICBjb25zb2xlLmxvZyhgb25BbGlnbm1lbnRzQ2hhbmdlKCkgLSBhbGlnbm1lbnQgY2hhbmdlZCwgcmVzdWx0c2AsIHJlc3VsdHMpIC8vIG1lcmdlIGFsaWdubWVudHMgaW50byB0YXJnZXQgdmVyc2UgYW5kIGNvbnZlcnQgdG8gVVNGTVxuICAgIGNvbnN0IHsgdGFyZ2V0V29yZHMsIHZlcnNlQWxpZ25tZW50cyB9ID0gcmVzdWx0c1xuICAgIGNvbnN0IGFsaWdubWVudENvbXBsZXRlID0gQWxpZ25tZW50SGVscGVycy5hcmVBbGdubWVudHNDb21wbGV0ZSh0YXJnZXRXb3JkcywgdmVyc2VBbGlnbm1lbnRzKVxuICAgIGNvbnNvbGUubG9nKGBBbGlnbm1lbnRzIGFyZSAke2FsaWdubWVudENvbXBsZXRlID8gJ0NPTVBMRVRFIScgOiAnaW5jb21wbGV0ZSd9YClcbiAgICBzZXRTdGF0ZSh7IG5ld0FsaWdubWVudHM6IHJlc3VsdHMsIGFsaWduZWQ6IGFsaWdubWVudENvbXBsZXRlIH0pXG4gICAgcmV0dXJuIGFsaWdubWVudENvbXBsZXRlXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFjdGlvbnM6IHtcbiAgICAgIGNhbmNlbEFsaWdubWVudCxcbiAgICAgIGNsZWFyQ2hhbmdlcyxcbiAgICAgIGdldENoYW5nZXMsXG4gICAgICBoYW5kbGVBbGlnbm1lbnRDbGljayxcbiAgICAgIG9uQWxpZ25tZW50c0NoYW5nZSxcbiAgICAgIHNhdmVBbGlnbm1lbnQsXG4gICAgICBzZXRFZGl0aW5nLFxuICAgICAgc2V0VmVyc2VDaGFuZ2VkLFxuICAgIH0sXG4gICAgc3RhdGU6IHtcbiAgICAgIGFsaWduZWQsXG4gICAgICBhbGlnbmVyRGF0YSxcbiAgICAgIGN1cnJlbnRWZXJzZU9iamVjdHMsXG4gICAgICBlZGl0aW5nLFxuICAgICAgZW5hYmxlRWRpdCxcbiAgICAgIGVuYWJsZUFsaWdubWVudCxcbiAgICAgIGluaXRpYWxWZXJzZVRleHQsXG4gICAgICBpbml0aWFsVmVyc2VPYmplY3RzLFxuICAgICAgbmV3VmVyc2VUZXh0LFxuICAgICAgcmVmZXJlbmNlOiBiYXNpY1JlZmVyZW5jZSxcbiAgICAgIHNvdXJjZUxhbmd1YWdlLFxuICAgICAgdGFyZ2V0TGFuZ3VhZ2UsXG4gICAgICB0aXRsZSxcbiAgICAgIHVuc2F2ZWRDaGFuZ2VzLFxuICAgICAgdmVyc2VUZXh0Q2hhbmdlZCxcbiAgICB9LFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7K0NBQ0EscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFBLFdBQUFDLENBQUEsU0FBQUMsQ0FBQSxFQUFBRCxDQUFBLE9BQUFFLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxTQUFBLEVBQUFDLENBQUEsR0FBQUgsQ0FBQSxDQUFBSSxjQUFBLEVBQUFDLENBQUEsR0FBQUosTUFBQSxDQUFBSyxjQUFBLGNBQUFQLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLElBQUFELENBQUEsQ0FBQUQsQ0FBQSxJQUFBRSxDQUFBLENBQUFPLEtBQUEsS0FBQUMsQ0FBQSx3QkFBQUMsTUFBQSxHQUFBQSxNQUFBLE9BQUFDLENBQUEsR0FBQUYsQ0FBQSxD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
645
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIkYiLCJfZSIsIm5vcm1hbENvbXBsZXRpb24iLCJkaWRFcnIiLCJzdGVwIiwiX2UyIiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIm9iaiIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0IiwibGVuIiwiYXJyMiIsIlJlYWN0IiwiQWxpZ25tZW50SGVscGVycyIsIm1pZ3JhdGVPcmlnaW5hbExhbmd1YWdlSGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJ1c2ZtSGVscGVycyIsImlzRXF1YWwiLCJCb29rT2JqZWN0c1R5cGUiLCJTY3JpcHR1cmVDb25maWciLCJTY3JpcHR1cmVSZWZlcmVuY2VUeXBlIiwiU2VydmVyQ29uZmlnVHlwZSIsIlZlcnNlT2JqZWN0c1R5cGUiLCJnZXRBbGlnbm1lbnRzIiwiZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyIsIk9SSUdJTkFMX1NPVVJDRSIsImdldFZlcnNlc0ZvclJlZiIsImlzVXNmbUFsaWduZWQiLCJ0YXJnZXRWZXJzZVVTRk0iLCJvcmlnaW5hbFZlcnNlT2JqZWN0cyIsIl9vcmlnaW5hbFZlcnNlT2JqZWN0cyIsIl9BbGlnbm1lbnRIZWxwZXJzJGV4dCIsImV4dHJhY3RBbGlnbm1lbnRzRnJvbVRhcmdldFZlcnNlIiwiYWxpZ25tZW50cyIsIndvcmRCYW5rIiwiYXJlQWxnbm1lbnRzQ29tcGxldGUiLCJnZXRDdXJyZW50VmVyc2VVc2ZtIiwidXBkYXRlZFZlcnNlT2JqZWN0cyIsImluaXRpYWxWZXJzZU9iamVjdHMiLCJ2ZXJzZVRleHRDaGFuZ2VkIiwibmV3VmVyc2VUZXh0IiwiY3VycmVudFZlcnNlT2JqZWN0c18iLCJfQWxpZ25tZW50SGVscGVycyR1cGQiLCJ1cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZSIsInRhcmdldFZlcnNlVGV4dCIsImNvbnZlcnRWZXJzZURhdGFUb1VTRk0iLCJhbGxTcGFjZXMiLCJ0ZXh0IiwiaGFzVGV4dENoYW5nZWRTaWduaWZpY2FudGx5IiwiaW5pdGlhbFZlcnNlVGV4dCIsImNoYW5nZWQiLCJsZW5ndGhEaWZmZXJlbmNlIiwiZmlyc3RQYXJ0T2ZJbml0aWFsIiwic3Vic3RyaW5nIiwibGFzdENoYXJzIiwicG9zIiwibGFzdEluZGV4T2YiLCJsYXN0VXNmbVRhZyIsImVuZHNXaXRoUXVvdGUiLCJ1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0IiwiX3JlZiIsImN1cnJlbnRJbmRleCIsImVuYWJsZUVkaXQiLCJlbmFibGVBbGlnbm1lbnQiLCJodHRwQ29uZmlnIiwiaXNOZXdUZXN0YW1lbnQiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzIiwib3JpZ2luYWxSZXBvVXJsIiwicmVmZXJlbmNlIiwic2NyaXB0dXJlQ29uZmlnIiwic2NyaXB0dXJlU2V0dGluZ3MiLCJzZXRTYXZlZENoYW5nZXMiLCJzb3VyY2VMYW5ndWFnZSIsInN0YXJ0RWRpdEJyYW5jaCIsInRhcmdldExhbmd1YWdlIiwidGl0bGUiLCJ3b3JraW5nUmVzb3VyY2VCcmFuY2giLCJfUmVhY3QkdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsImFsaWduZWQiLCJhbGlnbmVyRGF0YSIsImVkaXRpbmciLCJuZXdBbGlnbm1lbnRzIiwiX1JlYWN0JHVzZVN0YXRlMiIsInN0YXRlIiwic2V0U3RhdGVfIiwiX3N0YXRlIiwiY2hhcHRlciIsInZlcnNlIiwiYm9va0lkIiwiYmFzaWNSZWZlcmVuY2UiLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiY2xlYXJDaGFuZ2VzIiwiY29uc29sZSIsImxvZyIsImNvbmNhdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJjbGVhclN0YXRlIiwib3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5nc18iLCJyZXNvdXJjZUlkIiwib3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5ncyIsInJlc291cmNlTGluayIsInVzZU1lbW8iLCJ2ZXJzZU9iamVjdHMiLCJ2ZXJzZXMiLCJsYW5ndWFnZUlkIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJfdmVyc2VSZWZlcmVuY2UkdmVyc2UiLCJ2ZXJzZVJlZmVyZW5jZSIsIm9yaWdWZXJzZU9iamVjdHMiLCJ2ZXJzZURhdGEiLCJnZXRDdXJyZW50VmVyc2VPYmplY3RzIiwiX3VwZGF0ZWRWZXJzZU9iamVjdHMiLCJ1c2VFZmZlY3QiLCJub3RFbXB0eSIsImFsaWduZWRfIiwicmVzdWx0cyIsImdldENoYW5nZXMiLCJfbmV3U3RhdGUiLCJ1cGRhdGVkVmVyc2VPYmplY3RzXyIsInVwZGF0ZVZlcnNlV2l0aE5ld0FsaWdubWVudHMiLCJfQWxpZ25tZW50SGVscGVycyR1cGQyIiwidGFyZ2V0VmVyc2VPYmplY3RzIiwiX3NjcmlwdHVyZUNvbmZpZyR2ZXJzIiwicmVmIiwidmVyc2VzRm9yUmVmIiwiaXNNaWdyYXRlZCIsInByZWZpeCIsIl9pbml0aWFsVmVyc2VPYmplY3RzIiwidXBkYXRlZEFsaWdubWVudHMiLCJpbml0aWFsQWxpZ25tZW50cyIsInNhbWUiLCJmaXJzdERpZmYiLCJ1cGRhdGVkQWxpZ25tZW50IiwiaW5pdGlhbEFsaWdubWVudCIsImRpZmZlcmVudCIsIm1pZ3JhdGVBbGlnbm1lbnRzIiwibWlncmF0ZVRhcmdldEFsaWdubWVudHNUb09yaWdpbmFsIiwiaGFuZGxlQWxpZ25tZW50Q2xpY2siLCJfYWxpZ25lckRhdGEiLCJfc2NyaXB0dXJlQ29uZmlnJHJlc28iLCJfYWxpZ25lckRhdGEkc2NyaXB0dXIiLCJvcmlnaW5hbFZlcnNlVXNmbSIsIl9BbGlnbm1lbnRIZWxwZXJzJHBhciIsInBhcnNlVXNmbVRvV29yZEFsaWduZXJEYXRhIiwidGFyZ2V0V29yZHMiLCJ2ZXJzZUFsaWdubWVudHMiLCJiaWJsZVVzZm0iLCJyZXNvdXJjZVN0YXRlIiwicmVzb3VyY2UiLCJlcnJvck1lc3NhZ2UiLCJfbmV3QWxpZ25tZW50cyIsInZlcnNlVXNmbSIsImFkZEFsaWdubWVudHNUb1ZlcnNlVVNGTSIsImFsaWduZWRWZXJzZU9iamVjdHMiLCJ1c2ZtVmVyc2VUb0pzb24iLCJzYXZlQWxpZ25tZW50IiwiY2FsbFNldFNhdmVkU3RhdGUiLCJjYW5jZWxBbGlnbm1lbnQiLCJzZXRFZGl0aW5nIiwiX3giLCJfc2V0RWRpdGluZyIsIl9jYWxsZWUiLCJlZGl0aW5nXyIsIl9uZXdWZXJzZVRleHQiLCJ2ZXJzZVRleHRDaGFuZ2VkRnJvbUxhc3RFZGl0IiwidmVyc2VUZXh0Q2hhbmdlZEZyb21Jbml0aWFsIiwiX0FsaWdubWVudEhlbHBlcnMkdXBkNCIsIl9hbGlnbm1lbnRzQ2hhbmdlZCIsIl9hcmdzIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsImN1cnJlbnRWZXJzZU9iamVjdHMiLCJzZXRWZXJzZUNoYW5nZWQiLCJfaW5pdGlhbFZlcnNlVGV4dCIsIl90YXJnZXRWZXJzZU9iamVjdHMiLCJfQWxpZ25tZW50SGVscGVycyR1cGQzIiwidW5zYXZlZENoYW5nZXMiLCJ1bnNhdmVkQ2hhbmdlc18iLCJvbkFsaWdubWVudHNDaGFuZ2UiLCJhbGlnbm1lbnRDb21wbGV0ZSIsImFjdGlvbnMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBBbGlnbm1lbnRIZWxwZXJzLFxuICBtaWdyYXRlT3JpZ2luYWxMYW5ndWFnZUhlbHBlcnMsXG4gIFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMsXG4gIHVzZm1IZWxwZXJzLFxufSBmcm9tICd3b3JkLWFsaWduZXItcmNsJ1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ0ByZWFjdC1ob29rei9kZWVwLWVxdWFsJ1xuaW1wb3J0IHtcbiAgQm9va09iamVjdHNUeXBlLFxuICBTY3JpcHR1cmVDb25maWcsXG4gIFNjcmlwdHVyZVJlZmVyZW5jZVR5cGUsXG4gIFNlcnZlckNvbmZpZ1R5cGUsXG4gIFZlcnNlT2JqZWN0c1R5cGUsXG59IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0QWxpZ25tZW50cywgZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyB9IGZyb20gJy4uL3V0aWxzL1NjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHsgT1JJR0lOQUxfU09VUkNFIH0gZnJvbSAnLi4vdXRpbHMnXG5pbXBvcnQgeyBnZXRWZXJzZXNGb3JSZWYgfSBmcm9tICcuL3VzZVNjcmlwdHVyZSdcblxuaW50ZXJmYWNlIFN0YXJ0RWRpdCB7XG4gICgpOiBQcm9taXNlPHN0cmluZz47XG59XG5cbnR5cGUgTGFuZ3VhZ2VUeXBlID0ge1xuICBsYW5ndWFnZUlkOiBzdHJpbmcsIC8vIHNob3J0IGxhbmd1YWdlIGNvZGUgc3VjaCBhcyBcImVuXCJcbiAgZGlyZWN0aW9uOiBzdHJpbmcsIC8vIGxhbmd1YWdlIGRpcmVjdGlvbiBcImx0clwiIG9yIFwicnRsXCJcbn07XG5cbmludGVyZmFjZSBBbGlnbmVyRGF0YVR5cGUge1xuICB3b3JkQmFuaz86IE9iamVjdFtdLCAvLyBsaXN0IG9mIHdvcmRiYW5rIHdvcmQgKHRhcmdldCBsYW5ndWFnZSB3b3JkcykgaW4gZm9ybWF0IG5lZWRlZCBieSB3b3JkLWFsaWduZXItcmNsXG4gIGFsaWdubWVudHM/OiBPYmplY3RbXSwgLy8gbGlzdCBvZiB3b3JkIGFsaWdubWVudHMgaW4gZm9ybWF0IG5lZWRlZCBieSB3b3JkLWFsaWduZXItcmNsXG4gIGVycm9yTWVzc2FnZT86IHN0cmluZywgLy8gaWYgcHJlc2VudCB0aGVuIHdlIGRvbid0IGhhdmUgbmVjZXNzYXJ5IGRhdGEgdG8gZG8gYWxpZ25tZW50XG4gIGJpYmxlVXNmbT86IHN0cmluZywgLy8gYmlibGUgVVNGTSB3aXRoIGFsaWdubWVudHNcbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cz86IE9iamVjdCwgLy8gb3JpZ2luYWwgbGFuZ3VhZ2UgZm9yIGJvb2tcbiAgcmVzb3VyY2VMaW5rPzogc3RyaW5nLCAvLyBpZGVudGlmaWVyIGZvciByZXNvdXJjZSBzdWNoIGFzIFwidW5mb2xkaW5nV29yZC9lbi91bHQvbWFzdGVyL21hdFwiXG59XG5cbmludGVyZmFjZSBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlIHtcbiAgICB0YXJnZXRXb3Jkcz86IE9iamVjdFtdLCAvLyBsaXN0IG9mIHRhcmdldCBsYW5ndWFnZSB3b3JkcyBpbiBmb3JtYXQgdXNlZCBpbiB3b3JkLWFsaWduZXItcmNsXG4gICAgdmVyc2VBbGlnbm1lbnRzPzogT2JqZWN0W10sIC8vIGxpc3Qgb2Ygd29yZCBhbGlnbm1lbnRzIGluIGZvcm1hdCB1c2VkIGJ5IHdvcmQtYWxpZ25lci1yY2xcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY3JpcHR1cmVBTGlnbm1lbnRFZGl0UHJvcHMge1xuICAvLyBpbmRleCB0byB1c2UgZm9yIGJvb2sgKGUuZy4gYDAxYCBmb3IgYEdFTmApXG4gIGJvb2tJbmRleDogc3RyaW5nLFxuICAvLyBjdXJyZW50IHZlcnNlIHNlbGVjdGVkIGZyb20gaW5pdGlhbFZlcnNlT2JqZWN0c1tdXG4gIGN1cnJlbnRJbmRleDogbnVtYmVyLFxuICAvLyByZWZlcmVuY2UgZm9yIHZlcnNlIHNlbGVjdGVkIGZvciBhbGlnbm1lbnRcbiAgY3VycmVudFZlcnNlUmVmOiBTY3JpcHR1cmVSZWZlcmVuY2VUeXBlLFxuICAvLyBpZiB0cnVlIHRoZW4gZWRpdGluZyBpcyBhbGxvd2VkXG4gIGVuYWJsZUVkaXQ6IGJvb2xlYW4sXG4gIC8vIGlmIHRydWUgdGhlbiBhbGlnbm1lbnQgaXMgYWxsb3dlZFxuICBlbmFibGVBbGlnbm1lbnQ6IGJvb2xlYW4sXG4gIC8vIGNvbmZpZ3VyYXRpb24gdG8gdXNlIGZvciBodHRwIGNvbW11bmljYXRpb25cbiAgaHR0cENvbmZpZzogU2VydmVyQ29uZmlnVHlwZSxcbiAgLy8gYXJyYXkgb2YgdGhlIGluaXRpYWwgdmVyc2VPYmplY3RzIGZvciBjdXJyZW50IHJlZmVyZW5jZVxuICBpbml0aWFsVmVyc2VPYmplY3RzOiBWZXJzZU9iamVjdHNUeXBlLFxuICAvLyBpbml0aWFsIHRleHQgZm9yIHZlcnNlXG4gIGluaXRpYWxWZXJzZVRleHQ6IHN0cmluZyxcbiAgLy8gZmxhZyB0aGF0IHdlIGFyZSB3b3JraW5nIG9uIE5UIGJvb2tcbiAgaXNOZXdUZXN0YW1lbnQ6IGJvb2xlYW4sXG4gIC8vIHVzZXIgbmFtZSBvZiBsb2dnZWQgaW4gdXNlclxuICBsb2dnZWRJblVzZXI6IHN0cmluZyxcbiAgLy8gb3duZXIgdG8gdXNlIHdoZW4gZmV0Y2hpbmcgb3JpZ2luYWwgbGFuZ3VhZ2UgcmVzb3VyY2VzXG4gIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcjogc3RyaW5nLFxuICAvLyB1cmwgZm9yIHRoZSBvcmlnaW5hbCBsYW5ndWFnZSByZXBvXG4gIG9yaWdpbmFsUmVwb1VybDogc3RyaW5nLFxuICAvLyBvcmlnaW5hbCBzY3JpcHR1cmUgYm9va09iamVjdHMgZm9yIGN1cnJlbnQgYm9va1xuICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzOiBCb29rT2JqZWN0c1R5cGUsXG4gIC8qKiBjdXJyZW50IHJlZmVyZW5jZSAqKi9cbiAgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2VUeXBlO1xuICAvLyBkZXRhaWxzIGFib3V0IHRoZSBjdXJyZW50IHNjcmlwdHVyZSBsb2FkZWRcbiAgc2NyaXB0dXJlQ29uZmlnOiBTY3JpcHR1cmVDb25maWcsXG4gIC8vIHNldHRpbmdzIHRvIGJlIHVzZWQgZm9yIHNjcmlwdHVyZVxuICBzY3JpcHR1cmVTZXR0aW5nczogeyB9LFxuICAvLyBjYWxsYmFjayB0byBzYXZlIGN1cnJlbnQgdmVyc2UgZWRpdCBhbmQgYWxpZ25tZW50IGNoYW5nZXNcbiAgc2V0U2F2ZWRDaGFuZ2VzOiBGdW5jdGlvbixcbiAgLy8gc291cmNlIGxhbmd1YWdlIGNvZGUgc3VjaCBhcyBgaGJvYFxuICBzb3VyY2VMYW5ndWFnZTogc3RyaW5nLFxuICAvLyBjYWxsYmFjayB0byBjcmVhdGUgYSB1c2VyIGJyYW5jaCBmb3Igc2F2aW5nIGVkaXQgZGF0YVxuICBzdGFydEVkaXRCcmFuY2g6IFN0YXJ0RWRpdCxcbiAgLy8gY3VycmVudCB0YXJnZXQgbGFuZ3VhZ2VcbiAgdGFyZ2V0TGFuZ3VhZ2U6IExhbmd1YWdlVHlwZSxcbiAgLy8gdGl0bGUgdG8gc2hvdyBpbiBhbGlnbm1lbnRcbiAgdGl0bGU6IHN0cmluZyxcbiAgIC8vIGJyYW5jaCBuYW1lIGN1cnJlbnRseSBiZWluZyB1c2VkIChlLmcuIGBtYXN0ZXJgIG9yIHVzZXIgYnJhbmNoKVxuICB3b3JraW5nUmVzb3VyY2VCcmFuY2g6IHN0cmluZyxcbn1cblxuLyoqXG4gKiBkZXRlcm1pbmVzIGlmIGFsaWdubWVudCBpcyBjb21wbGV0ZSBiYXNlZCBvbiB0YXJnZXQgVVNGTSBhbmQgb3JpZ2luYWwgbGFuZ3VhZ2UgdmVyc2Ugb2JqZWN0c1xuICogQHBhcmFtIHtzdHJpbmd9IHRhcmdldFZlcnNlVVNGTVxuICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSBvcmlnaW5hbFZlcnNlT2JqZWN0c1xuICovXG5mdW5jdGlvbiBpc1VzZm1BbGlnbmVkKHRhcmdldFZlcnNlVVNGTTpzdHJpbmcsIG9yaWdpbmFsVmVyc2VPYmplY3RzOlZlcnNlT2JqZWN0c1R5cGUpOmJvb2xlYW4ge1xuICBvcmlnaW5hbFZlcnNlT2JqZWN0cyA9IG9yaWdpbmFsVmVyc2VPYmplY3RzPy5sZW5ndGggPyBvcmlnaW5hbFZlcnNlT2JqZWN0cyA6IG51bGwgLy8gbWFrZSBzdXJlIG5vdCBwYXNzaW5nIGVtcHR5IEFycmF5XG5cbiAgaWYgKCB0YXJnZXRWZXJzZVVTRk0gJiYgb3JpZ2luYWxWZXJzZU9iamVjdHMpIHtcbiAgICBjb25zdCB7XG4gICAgICBhbGlnbm1lbnRzLFxuICAgICAgd29yZEJhbmssXG4gICAgfSA9IEFsaWdubWVudEhlbHBlcnMuZXh0cmFjdEFsaWdubWVudHNGcm9tVGFyZ2V0VmVyc2UodGFyZ2V0VmVyc2VVU0ZNLCBvcmlnaW5hbFZlcnNlT2JqZWN0cylcbiAgICByZXR1cm4gQWxpZ25tZW50SGVscGVycy5hcmVBbGdubWVudHNDb21wbGV0ZSh3b3JkQmFuaywgYWxpZ25tZW50cylcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG5cbi8qKlxuICogZ2V0IHRoZSB1cGRhdGVkIFVTRk0gZm9yIHRhcmdldCB2ZXJzZSBmcm9tIHRoZSB1cGRhdGVkIHZlcnNlIG9iamVjdHMgYW5kIGxhdGVzdCB0ZXh0XG4gKiBAcGFyYW0ge1ZlcnNlT2JqZWN0c1R5cGV9IHVwZGF0ZWRWZXJzZU9iamVjdHNcbiAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gaW5pdGlhbFZlcnNlT2JqZWN0c1xuICogQHBhcmFtIHtib29sZWFufSB2ZXJzZVRleHRDaGFuZ2VkXG4gKiBAcGFyYW0ge3N0cmluZ30gbmV3VmVyc2VUZXh0XG4gKi9cbmZ1bmN0aW9uIGdldEN1cnJlbnRWZXJzZVVzZm0odXBkYXRlZFZlcnNlT2JqZWN0czpWZXJzZU9iamVjdHNUeXBlLCBpbml0aWFsVmVyc2VPYmplY3RzOlZlcnNlT2JqZWN0c1R5cGUsIHZlcnNlVGV4dENoYW5nZWQ6IGJvb2xlYW4sIG5ld1ZlcnNlVGV4dDpzdHJpbmcpOnN0cmluZyB7XG4gIGxldCB0YXJnZXRWZXJzZVVTRk0gPSBudWxsXG4gIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHNfID0gdXBkYXRlZFZlcnNlT2JqZWN0cyB8fCBpbml0aWFsVmVyc2VPYmplY3RzXG5cbiAgaWYgKHZlcnNlVGV4dENoYW5nZWQgJiYgbmV3VmVyc2VUZXh0KSB7XG4gICAgY29uc3QgeyB0YXJnZXRWZXJzZVRleHQgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoY3VycmVudFZlcnNlT2JqZWN0c18sIG5ld1ZlcnNlVGV4dClcbiAgICB0YXJnZXRWZXJzZVVTRk0gPSB0YXJnZXRWZXJzZVRleHRcbiAgfSBlbHNlIHtcbiAgICB0YXJnZXRWZXJzZVVTRk0gPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmNvbnZlcnRWZXJzZURhdGFUb1VTRk0oY3VycmVudFZlcnNlT2JqZWN0c18pXG4gIH1cbiAgcmV0dXJuIHRhcmdldFZlcnNlVVNGTVxufVxuXG4vKipcbiAqIHJldHVybiB0cnVlIGlmIG9ubHkgc3BhY2VzIGluIGNvbnRlbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0XG4gKi9cbmZ1bmN0aW9uIGFsbFNwYWNlcyh0ZXh0OnN0cmluZyk6Ym9vbGVhbiB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xuICAgIGlmICh0ZXh0W2ldICE9PSAnICcpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZVxufVxuXG4vKipcbiAqIG1ha2Ugc3VyZSB0aGVyZSBpcyBhIHNpZ25pZmljYW50IGNoYW5nZSB0byB0aGUgdGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IG5ld1ZlcnNlVGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IGluaXRpYWxWZXJzZVRleHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1RleHRDaGFuZ2VkU2lnbmlmaWNhbnRseShuZXdWZXJzZVRleHQ6c3RyaW5nLCBpbml0aWFsVmVyc2VUZXh0OnN0cmluZyk6Ym9vbGVhbiB7XG4gIGxldCBjaGFuZ2VkID0gbmV3VmVyc2VUZXh0ICE9PSBpbml0aWFsVmVyc2VUZXh0XG5cbiAgaWYgKGNoYW5nZWQgJiYgbmV3VmVyc2VUZXh0KSB7IC8vIG1ha2Ugc3VyZSBpdCdzIHNpZ25pZmljYW50XG4gICAgY29uc3QgbGVuZ3RoRGlmZmVyZW5jZSA9IG5ld1ZlcnNlVGV4dC5sZW5ndGggLSBpbml0aWFsVmVyc2VUZXh0Py5sZW5ndGhcbiAgICBjb25zdCBmaXJzdFBhcnRPZkluaXRpYWwgPSBuZXdWZXJzZVRleHQuc3Vic3RyaW5nKDAsIGluaXRpYWxWZXJzZVRleHQubGVuZ3RoKVxuXG4gICAgaWYgKChsZW5ndGhEaWZmZXJlbmNlID4gMCkgJiYgKGluaXRpYWxWZXJzZVRleHQgPT09IGZpcnN0UGFydE9mSW5pdGlhbCkpIHsgLy8gaWYgaW5pdGlhbCBwYXJ0cyBtYXRjaFxuICAgICAgLy8gYWRkIGV4ZW1wdGlvbiBpZiB0aGUgdXNmbSBlbmRzIHdpdGggYSBxdW90ZSB0YWdcbiAgICAgIGNvbnN0IGxhc3RDaGFycyA9IG5ld1ZlcnNlVGV4dC5zdWJzdHJpbmcobmV3VmVyc2VUZXh0Lmxlbmd0aCAtIGxlbmd0aERpZmZlcmVuY2UpXG4gICAgICBjb25zdCBwb3MgPSBuZXdWZXJzZVRleHQubGFzdEluZGV4T2YoJ1xcXFwnKVxuICAgICAgY29uc3QgbGFzdFVzZm1UYWcgPSBuZXdWZXJzZVRleHRbcG9zICsgMV1cbiAgICAgIGNvbnN0IGVuZHNXaXRoUXVvdGUgPSAocG9zID4gMCkgJiYgKGxhc3RVc2ZtVGFnID09PSAncScpXG5cbiAgICAgIGlmIChlbmRzV2l0aFF1b3RlICYmIGFsbFNwYWNlcyhsYXN0Q2hhcnMpKSB7XG4gICAgICAgIGNoYW5nZWQgPSBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gY2hhbmdlZFxufVxuXG4vLyBtYW5hZ2UgdmVyc2UgZWRpdCBhbmQgYWxpZ25tZW50IHN0YXRlc1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQoe1xuICBjdXJyZW50SW5kZXgsXG4gIGVuYWJsZUVkaXQsXG4gIGVuYWJsZUFsaWdubWVudCxcbiAgaHR0cENvbmZpZyxcbiAgaW5pdGlhbFZlcnNlT2JqZWN0cyxcbiAgaW5pdGlhbFZlcnNlVGV4dCxcbiAgaXNOZXdUZXN0YW1lbnQsXG4gIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgb3JpZ2luYWxSZXBvVXJsLFxuICByZWZlcmVuY2UsXG4gIHNjcmlwdHVyZUNvbmZpZyxcbiAgc2NyaXB0dXJlU2V0dGluZ3MsXG4gIHNldFNhdmVkQ2hhbmdlcyxcbiAgc291cmNlTGFuZ3VhZ2UsXG4gIHN0YXJ0RWRpdEJyYW5jaCxcbiAgdGFyZ2V0TGFuZ3VhZ2UsXG4gIHRpdGxlLFxuICB3b3JraW5nUmVzb3VyY2VCcmFuY2gsXG59IDogU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzKSB7XG4gIHR5cGUgU3RhdGVUeXBlcyA9IHtcbiAgICBhbGlnbmVkOiBib29sZWFuLFxuICAgIGFsaWduZXJEYXRhOiBBbGlnbmVyRGF0YVR5cGUsXG4gICAgZWRpdGluZzogYm9vbGVhbixcbiAgICBuZXdBbGlnbm1lbnRzOiBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlLFxuICAgIG5ld1ZlcnNlVGV4dDogc3RyaW5nLFxuICAgIHVwZGF0ZWRWZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGUsXG4gICAgdmVyc2VUZXh0Q2hhbmdlZDogYm9vbGVhbixcbiAgfVxuXG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVfXSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICBhbGlnbmVkOiBmYWxzZSxcbiAgICBhbGlnbmVyRGF0YTogbnVsbCxcbiAgICBlZGl0aW5nOiBmYWxzZSxcbiAgICBuZXdBbGlnbm1lbnRzOiBudWxsLFxuICAgIG5ld1ZlcnNlVGV4dDogbnVsbCxcbiAgICB1cGRhdGVkVmVyc2VPYmplY3RzOiBudWxsLFxuICAgIHZlcnNlVGV4dENoYW5nZWQ6IGZhbHNlLFxuICB9KVxuXG4gIGNvbnN0IF9zdGF0ZTogU3RhdGVUeXBlcyA9IHN0YXRlIC8vIFRyaWNreTogd29yay1hcm91bmQgZm9yIGJ1ZyB0aGF0IHN0YW5kYXJkIHR5cGVzY3JpcHQgdHlwZSBjYXN0aW5nIGRvZXMgbm90IHdvcmsgaW4gLnRzeCBmaWxlc1xuICBjb25zdCB7XG4gICAgYWxpZ25lZCxcbiAgICBhbGlnbmVyRGF0YSxcbiAgICBlZGl0aW5nLFxuICAgIG5ld0FsaWdubWVudHMsXG4gICAgbmV3VmVyc2VUZXh0LFxuICAgIHVwZGF0ZWRWZXJzZU9iamVjdHMsXG4gICAgdmVyc2VUZXh0Q2hhbmdlZCxcbiAgfSA9IF9zdGF0ZVxuICBjb25zdCBjaGFwdGVyID0gcmVmZXJlbmNlPy5jaGFwdGVyXG4gIGNvbnN0IHZlcnNlID0gcmVmZXJlbmNlPy52ZXJzZVxuICBjb25zdCBib29rSWQgPSByZWZlcmVuY2U/LmJvb2tJZFxuICBjb25zdCBiYXNpY1JlZmVyZW5jZSA9IHsgLy8gb25seSBoYXMgdGhlIHRocmVlIGJhc2ljIGZpZWxkc1xuICAgIGNoYXB0ZXIsXG4gICAgdmVyc2UsXG4gICAgYm9va0lkLFxuICB9XG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICBmdW5jdGlvbiBjbGVhckNoYW5nZXMoKSB7XG4gICAgY29uc29sZS5sb2coYGNsZWFyQ2hhbmdlcygpIC0gJHtKU09OLnN0cmluZ2lmeShiYXNpY1JlZmVyZW5jZSl9YClcbiAgICBjb25zdCBjbGVhclN0YXRlID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBhbGlnbmVyRGF0YTogbnVsbCxcbiAgICAgIGVkaXRpbmc6IGZhbHNlLFxuICAgICAgbmV3QWxpZ25tZW50czogbnVsbCxcbiAgICAgIG5ld1ZlcnNlVGV4dDogbnVsbCxcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHM6IG51bGwsXG4gICAgICB2ZXJzZVRleHRDaGFuZ2VkOiBmYWxzZSxcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwoc3RhdGUsIGNsZWFyU3RhdGUpKSB7XG4gICAgICBjb25zb2xlLmxvZyhgY2xlYXJDaGFuZ2VzKCkgLSByZWZlcmVuY2UgY2hhbmdlZCwgcmVzZXQgZWRpdC9hbGlnbm1lbnQgc3RhdGUgdmFyaWFibGVzYClcbiAgICAgIHNldFN0YXRlKGNsZWFyU3RhdGUpXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgb3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5nc18gPSB7XG4gICAgLi4uc2NyaXB0dXJlU2V0dGluZ3MsXG4gICAgcmVzb3VyY2VJZDogT1JJR0lOQUxfU09VUkNFLFxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBodHRwQ29uZmlnID0gaHR0cENvbmZpZyB8fCB7fVxuICBjb25zdCBvcmlnaW5hbFNjcmlwdHVyZVNldHRpbmdzID0gZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyhcbiAgICBib29rSWQsIG9yaWdpbmFsU2NyaXB0dXJlU2V0dGluZ3NfLCBpc05ld1Rlc3RhbWVudCwgb3JpZ2luYWxSZXBvVXJsLFxuICApXG5cbiAgaWYgKCFlbmFibGVBbGlnbm1lbnQpIHsgLy8gaWYgbm90IGVuYWJsZWQsIHRoZW4gd2UgZG9uJ3QgZmV0Y2ggcmVzb3VyY2VcbiAgICBvcmlnaW5hbFNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IG51bGxcbiAgfVxuXG4gIGNvbnN0IG9yaWdpbmFsVmVyc2VPYmplY3RzID0gUmVhY3QudXNlTWVtbygoKSA9PiB7IC8vIGdldCB0aGUgb3JpZ2luYWwgbGFuZ3VhZ2UgdmVyc2VPYmplY3RzXG4gICAgY29uc3QgdmVyc2VPYmplY3RzID0gW11cblxuICAgIGlmIChvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBjb25zdCB2ZXJzZXMgPSBnZXRWZXJzZXNGb3JSZWYoYmFzaWNSZWZlcmVuY2UsIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM/Lmxhbmd1YWdlSWQpXG5cbiAgICAgIGlmICh2ZXJzZXM/Lmxlbmd0aCkge1xuICAgICAgICBmb3IgKGNvbnN0IHZlcnNlUmVmZXJlbmNlIG9mIHZlcnNlcykge1xuICAgICAgICAgIGNvbnN0IG9yaWdWZXJzZU9iamVjdHMgPSB2ZXJzZVJlZmVyZW5jZT8udmVyc2VEYXRhPy52ZXJzZU9iamVjdHNcblxuICAgICAgICAgIGlmIChvcmlnVmVyc2VPYmplY3RzKSB7XG4gICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh2ZXJzZU9iamVjdHMsIG9yaWdWZXJzZU9iamVjdHMpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2ZXJzZU9iamVjdHNcbiAgfSwgW29yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsIGNoYXB0ZXIsIHZlcnNlLCBib29rSWRdKVxuXG4gIC8qKlxuICAgKiBnZXQgY3VycmVudCB2ZXJzZU9iamVjdHNcbiAgICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSBfdXBkYXRlZFZlcnNlT2JqZWN0cyAtIG9wdGlvbmFsIG92ZXJyaWRlcyB1cGRhdGVkVmVyc2VPYmplY3RzXG4gICAqL1xuICBmdW5jdGlvbiBnZXRDdXJyZW50VmVyc2VPYmplY3RzKF91cGRhdGVkVmVyc2VPYmplY3RzOiBWZXJzZU9iamVjdHNUeXBlID0gdXBkYXRlZFZlcnNlT2JqZWN0cykge1xuICAgIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHNfID0gX3VwZGF0ZWRWZXJzZU9iamVjdHMgfHwgaW5pdGlhbFZlcnNlT2JqZWN0c1xuICAgIHJldHVybiBjdXJyZW50VmVyc2VPYmplY3RzX1xuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gdXBkYXRlIGFsaWdubWVudCBzdGF0dXMgd2hlbiBhbGlnbmVyIGlzIGhpZGRlblxuICAgIGNvbnN0IG5vdEVtcHR5ID0gISFpbml0aWFsVmVyc2VPYmplY3RzXG4gICAgbGV0IGFsaWduZWRfID0gZmFsc2VcblxuICAgIGlmICghYWxpZ25lckRhdGEpIHsgLy8gc2tpcCBpZiBhbGlnbmVyIGlzIGJlaW5nIHNob3duXG4gICAgICBpZiAobm90RW1wdHkpIHsgLy8gc2tpcCBpZiBlbXB0eVxuICAgICAgICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzXyA9IGdldEN1cnJlbnRWZXJzZU9iamVjdHMoKVxuXG4gICAgICAgIGlmICghZW5hYmxlQWxpZ25tZW50KSB7XG4gICAgICAgICAgYWxpZ25lZF8gPSB0cnVlXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmVyc2VUZXh0ICYmIChuZXdWZXJzZVRleHQgIT09IGluaXRpYWxWZXJzZVRleHQpKSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0cyA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoY3VycmVudFZlcnNlT2JqZWN0c18sIG5ld1ZlcnNlVGV4dClcbiAgICAgICAgICBhbGlnbmVkXyA9IGlzVXNmbUFsaWduZWQocmVzdWx0cz8udGFyZ2V0VmVyc2VUZXh0LCBvcmlnaW5hbFZlcnNlT2JqZWN0cylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB0YXJnZXRWZXJzZVVTRk0gPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmNvbnZlcnRWZXJzZURhdGFUb1VTRk0oY3VycmVudFZlcnNlT2JqZWN0c18pXG4gICAgICAgICAgYWxpZ25lZF8gPSBpc1VzZm1BbGlnbmVkKHRhcmdldFZlcnNlVVNGTSwgb3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGFsaWduZWQgIT09IGFsaWduZWRfKSB7XG4gICAgICAgIHNldFN0YXRlKHsgYWxpZ25lZDogYWxpZ25lZF8gfSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpbml0aWFsVmVyc2VPYmplY3RzLCBhbGlnbmVyRGF0YSwgbmV3VmVyc2VUZXh0LCBpbml0aWFsVmVyc2VUZXh0LCBlbmFibGVBbGlnbm1lbnQsIG9yaWdpbmFsVmVyc2VPYmplY3RzXSlcblxuICAvKipcbiAgICogZ2V0IGNoYW5nZXMgZm9yIHNhdmluZ1xuICAgKiBAcGFyYW0ge29iamVjdH0gbmV3U3RhdGUgLSBvcHRpb25hbGx5IHBhc3MgaW4gbmV3IHN0YXRlICh0byBvdmVycmlkZSBzdGF0ZSlcbiAgICovXG4gIGZ1bmN0aW9uIGdldENoYW5nZXMobmV3U3RhdGUgPSB7fSkge1xuICAgIGNvbnNvbGUubG9nKGBnZXRDaGFuZ2VzIC0gc3RhcnRlZCAke2N1cnJlbnRJbmRleH0gLSBwYXNzZWQgc3RhdGVgLCBuZXdTdGF0ZSlcbiAgICBjb25zdCBfbmV3U3RhdGUgPSB7XG4gICAgICBzdGF0ZSxcbiAgICAgIC4uLm5ld1N0YXRlLFxuICAgIH1cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3Qge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgbmV3QWxpZ25tZW50cyxcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHMsXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB2ZXJzZVRleHRDaGFuZ2VkLFxuICAgIH0gPSBfbmV3U3RhdGVcbiAgICBsZXQgdXBkYXRlZFZlcnNlT2JqZWN0c18gPSB1cGRhdGVkVmVyc2VPYmplY3RzXG5cbiAgICBpZiAobmV3QWxpZ25tZW50cykgeyAvLyBpZiB1bnNhdmVkIGFsaWdubWVudCBjaGFuZ2VzLCBhcHBseSB0aGVtXG4gICAgICBjb25zb2xlLmxvZyhgZ2V0Q2hhbmdlcyAtIGFwcGx5aW5nIHVuc2F2ZWQgYWxpZ25tZW50c31gKVxuICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0c18gPSB1cGRhdGVWZXJzZVdpdGhOZXdBbGlnbm1lbnRzKClcbiAgICB9XG5cbiAgICBpZiAodmVyc2VUZXh0Q2hhbmdlZCAmJiBuZXdWZXJzZVRleHQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBnZXRDaGFuZ2VzIC0gYXBwbHlpbmcgbmV3IHRleHQ6YCwgbmV3VmVyc2VUZXh0KVxuICAgICAgY29uc3QgY3VycmVudFZlcnNlT2JqZWN0c18gPSBnZXRDdXJyZW50VmVyc2VPYmplY3RzKHVwZGF0ZWRWZXJzZU9iamVjdHNfKVxuICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0c18gJiYgY29uc29sZS5sb2coYGdldENoYW5nZXMgLSBhcHBseWluZyB1cGRhdGVkIGFsaWdubWVudHNgKVxuICAgICAgY29uc3QgeyB0YXJnZXRWZXJzZU9iamVjdHMgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoY3VycmVudFZlcnNlT2JqZWN0c18sIG5ld1ZlcnNlVGV4dClcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHNfID0gdGFyZ2V0VmVyc2VPYmplY3RzXG4gICAgfSBlbHNlIHsgLy8gb25seSBhbGlnbm1lbnQgY2hhbmdlcyB0byB1cGxvYWRcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHNfICYmIGNvbnNvbGUubG9nKGBnZXRDaGFuZ2VzIC0gYXBwbHlpbmcgdXBkYXRlZCBhbGlnbm1lbnRzYCwgeyBuZXdWZXJzZVRleHQsIHVwZGF0ZWRWZXJzZU9iamVjdHNfIH0pXG4gICAgICB1cGRhdGVkVmVyc2VPYmplY3RzXyA9IHVwZGF0ZWRWZXJzZU9iamVjdHNfIHx8IGluaXRpYWxWZXJzZU9iamVjdHNcbiAgICB9XG5cbiAgICBpZiAodXBkYXRlZFZlcnNlT2JqZWN0c18pIHtcbiAgICAgIGNvbnN0IHJlZiA9IHNjcmlwdHVyZUNvbmZpZz8udmVyc2VzRm9yUmVmPy5bY3VycmVudEluZGV4XVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmV3VmVyc2VUZXh0LFxuICAgICAgICByZWYsXG4gICAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHM6IHVwZGF0ZWRWZXJzZU9iamVjdHNfLFxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7fVxuICB9XG5cbiAgLyoqXG4gICAqIGNvbXBhcmUgaW5pdGlhbCBhbGlnbm1lbnRzIHdpdGggZmluYWwgdG8gc2VlIGlmIGNoYW5nZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHByZWZpeFxuICAgKiBAcGFyYW0ge1ZlcnNlT2JqZWN0c1R5cGV9IF91cGRhdGVkVmVyc2VPYmplY3RzXG4gICAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gX2luaXRpYWxWZXJzZU9iamVjdHNcbiAgICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgY2hhbmdlZFxuICAgKi9cbiAgZnVuY3Rpb24gaXNNaWdyYXRlZChwcmVmaXg6c3RyaW5nLCBfdXBkYXRlZFZlcnNlT2JqZWN0czpWZXJzZU9iamVjdHNUeXBlID0gdXBkYXRlZFZlcnNlT2JqZWN0cywgX2luaXRpYWxWZXJzZU9iamVjdHM6VmVyc2VPYmplY3RzVHlwZSA9IGluaXRpYWxWZXJzZU9iamVjdHMpOmJvb2xlYW4ge1xuICAgIGNvbnN0IHVwZGF0ZWRBbGlnbm1lbnRzID0gZ2V0QWxpZ25tZW50cyhfdXBkYXRlZFZlcnNlT2JqZWN0cylcbiAgICBjb25zdCBpbml0aWFsQWxpZ25tZW50cyA9IGdldEFsaWdubWVudHMoX2luaXRpYWxWZXJzZU9iamVjdHMpXG4gICAgbGV0IHNhbWUgPSB1cGRhdGVkQWxpZ25tZW50cy5sZW5ndGggPT09IGluaXRpYWxBbGlnbm1lbnRzLmxlbmd0aCAvLyBmaXJzdCBtYWtlIHN1cmUgbGVuZ3RocyBhcmUgdGhlIHNhbWVcbiAgICBsZXQgZmlyc3REaWZmXG5cbiAgICBpZiAoc2FtZSkgeyAvLyBldmVuIGlmIGxlbmd0aHMgYXJlIHRoZSBzYW1lIGRvdWJsZSBjaGVjayBlYWNoIGFsaWdubWVudFxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB1cGRhdGVkQWxpZ25tZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCB1cGRhdGVkQWxpZ25tZW50ID0gdXBkYXRlZEFsaWdubWVudHNbaV1cbiAgICAgICAgY29uc3QgaW5pdGlhbEFsaWdubWVudCA9IGluaXRpYWxBbGlnbm1lbnRzW2ldXG5cbiAgICAgICAgaWYgKCFpc0VxdWFsKHVwZGF0ZWRBbGlnbm1lbnQsIGluaXRpYWxBbGlnbm1lbnQpKSB7XG4gICAgICAgICAgZmlyc3REaWZmID0gaVxuICAgICAgICAgIHNhbWUgPSBmYWxzZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkaWZmZXJlbnQgPSAhc2FtZVxuXG4gICAgaWYgKGRpZmZlcmVudCkge1xuICAgICAgY29uc29sZS5sb2coYCR7cHJlZml4fSAtIHRhcmdldCB2ZXJzZSBhbGlnbm1lbnRzIG1pZ3JhdGVkIHRvIG1hdGNoIG9yaWdpbmFsIGxhbmd1YWdlLCBmaXJzdCBkaWZmZXJlbmNlIGlzIGF0ICR7Zmlyc3REaWZmfWAsIHVwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGRpZmZlcmVudFxuICB9XG5cbiAgLyoqXG4gICAqIGRvIGFsaWdubWVudHMgbWlncmF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcmVmaXhcbiAgICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSB1cGRhdGVkVmVyc2VPYmplY3RzXG4gICAqL1xuICBmdW5jdGlvbiBtaWdyYXRlQWxpZ25tZW50cyhwcmVmaXg6IHN0cmluZywgdXBkYXRlZFZlcnNlT2JqZWN0czogVmVyc2VPYmplY3RzVHlwZSA9IG51bGwpOiBWZXJzZU9iamVjdHNUeXBlIHtcbiAgICB1cGRhdGVkVmVyc2VPYmplY3RzID0gdXBkYXRlZFZlcnNlT2JqZWN0cyB8fCBnZXRDdXJyZW50VmVyc2VPYmplY3RzKClcbiAgICBjb25zdCBfdXBkYXRlZFZlcnNlT2JqZWN0cyA9IG1pZ3JhdGVPcmlnaW5hbExhbmd1YWdlSGVscGVycy5taWdyYXRlVGFyZ2V0QWxpZ25tZW50c1RvT3JpZ2luYWwodXBkYXRlZFZlcnNlT2JqZWN0cywgb3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgaXNNaWdyYXRlZChwcmVmaXgsIF91cGRhdGVkVmVyc2VPYmplY3RzLCB1cGRhdGVkVmVyc2VPYmplY3RzKVxuICAgIHJldHVybiBfdXBkYXRlZFZlcnNlT2JqZWN0c1xuICB9XG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIGZvciB3aGVuIHVzZXIgY2xpY2tlZCBvbiBhbGlnbm1lbnQgYnV0dG9uIC0gd2lsbCBzaG93IGlmIG5vdCBhbHJlYWR5IHNob3duXG4gICAqL1xuICBmdW5jdGlvbiBoYW5kbGVBbGlnbm1lbnRDbGljaygpIHtcbiAgICBpZiAoZW5hYmxlQWxpZ25tZW50KSB7XG4gICAgICBsZXQgX2FsaWduZXJEYXRhOiBBbGlnbmVyRGF0YVR5cGUgPSBudWxsXG5cbiAgICAgIGlmICghYWxpZ25lckRhdGEpIHsgLy8gaWYgd29yZCBhbGlnbmVyIG5vdCBzaG93blxuICAgICAgICBjb25zb2xlLmxvZyhgaGFuZGxlQWxpZ25tZW50Q2xpY2sgLSB0b2dnbGUgT04gYWxpZ25tZW50YClcbiAgICAgICAgbGV0IG9yaWdpbmFsVmVyc2VVc2ZtID0gbnVsbFxuICAgICAgICBsZXQgX3VwZGF0ZWRWZXJzZU9iamVjdHMgPSB1cGRhdGVkVmVyc2VPYmplY3RzXG5cbiAgICAgICAgaWYgKG9yaWdpbmFsVmVyc2VPYmplY3RzKSB7XG4gICAgICAgICAgb3JpZ2luYWxWZXJzZVVzZm0gPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmNvbnZlcnRWZXJzZURhdGFUb1VTRk0ob3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgICAgICAgX3VwZGF0ZWRWZXJzZU9iamVjdHMgPSBtaWdyYXRlQWxpZ25tZW50cygnaGFuZGxlQWxpZ25tZW50Q2xpY2soKScpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0YXJnZXRWZXJzZVVTRk0gPSBnZXRDdXJyZW50VmVyc2VVc2ZtKF91cGRhdGVkVmVyc2VPYmplY3RzLCBpbml0aWFsVmVyc2VPYmplY3RzLCB2ZXJzZVRleHRDaGFuZ2VkLCBuZXdWZXJzZVRleHQpXG5cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHRhcmdldFdvcmRzOiB3b3JkQmFuayxcbiAgICAgICAgICB2ZXJzZUFsaWdubWVudHM6IGFsaWdubWVudHMsXG4gICAgICAgIH0gPSBBbGlnbm1lbnRIZWxwZXJzLnBhcnNlVXNmbVRvV29yZEFsaWduZXJEYXRhKHRhcmdldFZlcnNlVVNGTSwgb3JpZ2luYWxWZXJzZVVzZm0pXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgY29uc3QgYmlibGVVc2ZtID0gc2NyaXB0dXJlQ29uZmlnPy5iaWJsZVVzZm0gfHwgJydcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCByZXNvdXJjZUxpbmsgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdGU/LnJlc291cmNlPy5yZXNvdXJjZUxpbmsgfHwgYWxpZ25lckRhdGE/LnNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VMaW5rIHx8ICcnXG5cbiAgICAgICAgX2FsaWduZXJEYXRhID0ge1xuICAgICAgICAgIHdvcmRCYW5rLFxuICAgICAgICAgIGFsaWdubWVudHMsXG4gICAgICAgICAgYmlibGVVc2ZtLFxuICAgICAgICAgIHJlc291cmNlTGluayxcbiAgICAgICAgICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFhbGlnbm1lbnRzPy5sZW5ndGgpIHtcbiAgICAgICAgICBfYWxpZ25lckRhdGEuZXJyb3JNZXNzYWdlID0gJ1RoZXJlIGFyZSBubyB3b3JkcyB0byBhbGlnbiBpbiB0aGUgT3JpZ2luYWwgbGFuZ3VhZ2UnXG4gICAgICAgIH0gZWxzZSBpZiAoIXdvcmRCYW5rPy5sZW5ndGgpIHtcbiAgICAgICAgICBfYWxpZ25lckRhdGEuZXJyb3JNZXNzYWdlID0gJ1RoZXJlIGFyZSBubyB3b3JkcyB0byBhbGlnbiBpbiB0aGUgTGl0ZXJhbC9TaW1wbGlmaWVkIFNjcmlwdHVyZSBUZXh0J1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgeyAvLyB3b3JkIGFsaWduZXIgY3VycmVudGx5IHNob3duXG4gICAgICAgIGNvbnNvbGUubG9nKGBoYW5kbGVBbGlnbm1lbnRDbGljayAtIGFsaWdubWVudCBhbHJlYWR5IHNob3duYClcbiAgICAgICAgX2FsaWduZXJEYXRhID0gYWxpZ25lckRhdGFcbiAgICAgIH1cbiAgICAgIHNldFN0YXRlKHsgYWxpZ25lckRhdGE6IF9hbGlnbmVyRGF0YSB9KVxuICAgICAgY29uc29sZS5sb2coX2FsaWduZXJEYXRhKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgdXBkYXRlZCB2ZXJzZSBvYmplY3RzIGFmdGVyIGFsaWdubWVudHMgY2hhbmdlZFxuICAgKiBAcGFyYW0ge0FsaWduZXJSZXN1bHRzRGF0YVR5cGV9IF9uZXdBbGlnbm1lbnRzIC0gcmVzdWx0cyBvZiBhbGlnbmVyXG4gICAqL1xuICBmdW5jdGlvbiB1cGRhdGVWZXJzZVdpdGhOZXdBbGlnbm1lbnRzKF9uZXdBbGlnbm1lbnRzOiBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlID0gbmV3QWxpZ25tZW50cyk6VmVyc2VPYmplY3RzVHlwZSB7XG4gICAgY29uc3QgY3VycmVudFZlcnNlT2JqZWN0c18gPSBnZXRDdXJyZW50VmVyc2VPYmplY3RzKClcbiAgICBjb25zdCB0YXJnZXRWZXJzZVRleHQgPSBuZXdWZXJzZVRleHQgfHwgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5jb252ZXJ0VmVyc2VEYXRhVG9VU0ZNKGN1cnJlbnRWZXJzZU9iamVjdHNfKVxuICAgIGNvbnN0IHZlcnNlVXNmbSA9IEFsaWdubWVudEhlbHBlcnMuYWRkQWxpZ25tZW50c1RvVmVyc2VVU0ZNKF9uZXdBbGlnbm1lbnRzLnRhcmdldFdvcmRzLCBfbmV3QWxpZ25tZW50cy52ZXJzZUFsaWdubWVudHMsIHRhcmdldFZlcnNlVGV4dClcblxuICAgIGlmICghdmVyc2VVc2ZtKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGB1cGRhdGVWZXJzZVdpdGhOZXdBbGlnbm1lbnRzKCkgLSBlcnJvciBtZXJnaW5nIGFsaWdubWVudHNgKVxuICAgIH1cblxuICAgIGNvbnN0IGFsaWduZWRWZXJzZU9iamVjdHMgPSB1c2ZtSGVscGVycy51c2ZtVmVyc2VUb0pzb24odmVyc2VVc2ZtKVxuICAgIHJldHVybiBhbGlnbmVkVmVyc2VPYmplY3RzXG4gIH1cblxuICAvKipcbiAgICogY2FsbGJhY2sgZm9yIHdoZW4gdXNlciBjbGlja2VkIG9uIGJ1dHRvbiB0byBzYXZlIGN1cnJlbnQgYWxpZ25tZW50cyBpbiB3b3JkIGFsaWduZXIuICBHZW5lcmF0ZXMgbmV3IHZlcnNlIGNvbnRlbnQgYW5kIHNhdmVzIGluIHN0YXRlLiBDbG9zZXMgYWxpZ25lciBkaXNwbGF5XG4gICAqIEBwYXJhbSB7QWxpZ25lclJlc3VsdHNEYXRhVHlwZX0gX25ld0FsaWdubWVudHMgLSByZXN1bHRzIG9mIGFsaWduZXJcbiAgICovXG4gIGZ1bmN0aW9uIHNhdmVBbGlnbm1lbnQoX25ld0FsaWdubWVudHM6IEFsaWduZXJSZXN1bHRzRGF0YVR5cGUgPSBuZXdBbGlnbm1lbnRzKSB7XG4gICAgY29uc29sZS5sb2coYHNhdmVBbGlnbm1lbnQoKSAtIG5ld0FsaWdubWVudHNgLCBfbmV3QWxpZ25tZW50cylcblxuICAgIGlmIChfbmV3QWxpZ25tZW50cykge1xuICAgICAgY29uc3QgYWxpZ25lZFZlcnNlT2JqZWN0cyA9IHVwZGF0ZVZlcnNlV2l0aE5ld0FsaWdubWVudHMoX25ld0FsaWdubWVudHMpXG4gICAgICBjb25zb2xlLmxvZyhgc2F2ZUFsaWdubWVudCgpIC0gYWxpZ25lZFZlcnNlT2JqZWN0c2AsIGFsaWduZWRWZXJzZU9iamVjdHMpXG4gICAgICBjb25zdCBuZXdTdGF0ZSA9IHtcbiAgICAgICAgYWxpZ25lckRhdGE6IG51bGwsXG4gICAgICAgIGVkaXRpbmc6IGZhbHNlLFxuICAgICAgICBuZXdBbGlnbm1lbnRzOiBudWxsLFxuICAgICAgICB1cGRhdGVkVmVyc2VPYmplY3RzOiBhbGlnbmVkVmVyc2VPYmplY3RzLFxuICAgICAgfVxuICAgICAgc2V0U3RhdGUobmV3U3RhdGUpXG4gICAgICBjYWxsU2V0U2F2ZWRTdGF0ZSh0cnVlLCBuZXdTdGF0ZSApXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKGBzYXZlQWxpZ25tZW50KCkgLSBubyBhbGlnbm1lbnQgY2hhbmdlc2ApXG4gICAgICBzZXRTdGF0ZSh7XG4gICAgICAgIGFsaWduZXJEYXRhOiBudWxsLFxuICAgICAgICBlZGl0aW5nOiBmYWxzZSxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIGZvciB3aGVuIHVzZXIgY2xpY2tlZCBvbiBidXR0b24gdG8gY2FuY2VsIHdvcmsgaW4gd29yZCBhbGlnbmVyLiAgQ2FsY3VsYXRlcyBhbmQgZGlzcGxheXMgY3VycmVudCBhbGlnbm1lbnQgdmFsaWQgc3RhdGUuIENsb3NlcyBhbGlnbmVyIGRpc3BsYXlcbiAgICovXG4gIGZ1bmN0aW9uIGNhbmNlbEFsaWdubWVudCgpIHtcbiAgICBjb25zb2xlLmxvZyhgY2FuY2VsQWxpZ25tZW50KClgKVxuICAgIGNvbnN0IHRhcmdldFZlcnNlVVNGTSA9IGdldEN1cnJlbnRWZXJzZVVzZm0odXBkYXRlZFZlcnNlT2JqZWN0cywgaW5pdGlhbFZlcnNlT2JqZWN0cywgdmVyc2VUZXh0Q2hhbmdlZCwgbmV3VmVyc2VUZXh0KVxuICAgIGNvbnN0IGFsaWduZWQgPSBpc1VzZm1BbGlnbmVkKHRhcmdldFZlcnNlVVNGTSwgb3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgc2V0U3RhdGUoeyBhbGlnbmVyRGF0YTogbnVsbCwgYWxpZ25lZCB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIGZvciBidXR0b24gdG8gc2V0IGVkaXRpbmcgc3RhdGVcbiAgICogQHBhcmFtIHtib29sZWFufSBlZGl0aW5nXyAtIGlmIHRydWUsIGVkaXRvciBpcyBzaG93biwgb3RoZXJ3aXNlIGVkaXRvciBpcyBoaWRkZW5cbiAgICogQHBhcmFtIHtzdHJpbmd9IF9uZXdWZXJzZVRleHQgLSBvcHRpb25hbCB2ZXJzZSB0ZXh0XG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVxdWlyZS1hd2FpdFxuICBhc3luYyBmdW5jdGlvbiBzZXRFZGl0aW5nKGVkaXRpbmdfOiBib29sZWFuLCBfbmV3VmVyc2VUZXh0OiBzdHJpbmcgPSBuZXdWZXJzZVRleHQpIHtcbiAgICBpZiAoZW5hYmxlRWRpdCkge1xuICAgICAgaWYgKGVkaXRpbmdfICE9PSBlZGl0aW5nKSB7XG4gICAgICAgIF9uZXdWZXJzZVRleHQgPSBfbmV3VmVyc2VUZXh0IHx8IGluaXRpYWxWZXJzZVRleHRcbiAgICAgICAgbGV0IF91cGRhdGVkVmVyc2VPYmplY3RzID0gbnVsbFxuICAgICAgICBjb25zdCB2ZXJzZVRleHRDaGFuZ2VkRnJvbUxhc3RFZGl0ID0gX25ld1ZlcnNlVGV4dCAhPT0gbmV3VmVyc2VUZXh0XG4gICAgICAgIGNvbnN0IHZlcnNlVGV4dENoYW5nZWRGcm9tSW5pdGlhbCA9IF9uZXdWZXJzZVRleHQgIT09IGluaXRpYWxWZXJzZVRleHRcbiAgICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgICAgZWRpdGluZzogZWRpdGluZ18sXG4gICAgICAgICAgbmV3VmVyc2VUZXh0OiBfbmV3VmVyc2VUZXh0LFxuICAgICAgICAgIHZlcnNlVGV4dENoYW5nZWQ6IHZlcnNlVGV4dENoYW5nZWRGcm9tSW5pdGlhbCxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZWRpdGluZ18gJiYgdmVyc2VUZXh0Q2hhbmdlZEZyb21MYXN0RWRpdCkgeyAvLyBpZiBkb25lIGVkaXRpbmcgYW5kIHZlcnNlIGhhcyBjaGFuZ2VkLCB1cGRhdGUgdGhlIHZlcnNlIG9iamVjdHNcbiAgICAgICAgICBfdXBkYXRlZFZlcnNlT2JqZWN0cyA9IHVwZGF0ZWRWZXJzZU9iamVjdHMgfHwgY3VycmVudFZlcnNlT2JqZWN0c1xuXG4gICAgICAgICAgaWYgKHZlcnNlVGV4dENoYW5nZWRGcm9tSW5pdGlhbCkgeyAvLyBpZiB2ZXJzZSBoYXMgY2hhbmdlZCBmcm9tIGluaXRpYWwsIG1pZ3JhdGUgYWxpZ25tZW50cyBpbiB0aGUgdmVyc2Ugb2JqZWN0c1xuICAgICAgICAgICAgLy8gZG8gbWlncmF0aW9uIG9mIGFsaWdubWVudHMgdG8gbWF0Y2ggbGF0ZXN0IG9yaWdpbmFsIGxhbmd1YWdlXG4gICAgICAgICAgICBfdXBkYXRlZFZlcnNlT2JqZWN0cyA9IG1pZ3JhdGVBbGlnbm1lbnRzKCdzZXRFZGl0aW5nKCknLCBfdXBkYXRlZFZlcnNlT2JqZWN0cylcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBhcHBseSBhbGlnbm1lbnRzIGZyb20gdXBkYXRlZCB2ZXJzZU9iamVjdHMgdG8gZWRpdGVkIHZlcnNlIHRleHQgYW5kIGdlbmVyYXRlIG5ldyB2ZXJzZSBvYmplY3RzXG4gICAgICAgICAgY29uc3QgeyB0YXJnZXRWZXJzZU9iamVjdHMgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoX3VwZGF0ZWRWZXJzZU9iamVjdHMsIF9uZXdWZXJzZVRleHQpXG4gICAgICAgICAgX3VwZGF0ZWRWZXJzZU9iamVjdHMgPSB0YXJnZXRWZXJzZU9iamVjdHMgLy8gdXBkYXRlIHZlcnNlT2JqZWN0cyB0byBtYXRjaCBjdXJyZW50IHRleHRcbiAgICAgICAgICBuZXdTdGF0ZVsndXBkYXRlZFZlcnNlT2JqZWN0cyddID0gX3VwZGF0ZWRWZXJzZU9iamVjdHNcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFN0YXRlKG5ld1N0YXRlKVxuICAgICAgICBjb25zdCBfYWxpZ25tZW50c0NoYW5nZWQgPSAoX3VwZGF0ZWRWZXJzZU9iamVjdHMgJiYgIWlzRXF1YWwoaW5pdGlhbFZlcnNlT2JqZWN0cywgX3VwZGF0ZWRWZXJzZU9iamVjdHMpKVxuICAgICAgICBjYWxsU2V0U2F2ZWRTdGF0ZSh2ZXJzZVRleHRDaGFuZ2VkRnJvbUluaXRpYWwgfHwgX2FsaWdubWVudHNDaGFuZ2VkLCBuZXdTdGF0ZSApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIGZyb20gdGhlIGVkaXQgb25DaGFuZ2UgZXZlbnQgdG8gdXBkYXRlIGVkaXQgc3RhdGUgdmFyaWFibGVzXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gY2hhbmdlZCAtIHRydWUgaWYgdGhlIG5ld1ZlcnNlVGV4dCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgaW5pdGlhbFZlcnNlVGV4dFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3VmVyc2VUZXh0IC0gY3VycmVudCBjaGFuZ2VkIHZlcnNlIHRleHRcbiAgICogQHBhcmFtIHtzdHJpbmd9IF9pbml0aWFsVmVyc2VUZXh0IC0gaW5pdGlhbCB2ZXJzZSB0ZXh0XG4gICAqL1xuICBmdW5jdGlvbiBzZXRWZXJzZUNoYW5nZWQoY2hhbmdlZDogYm9vbGVhbiwgbmV3VmVyc2VUZXh0OiBzdHJpbmcsIF9pbml0aWFsVmVyc2VUZXh0OiBzdHJpbmcpIHtcbiAgICBjb25zdCBfdGFyZ2V0VmVyc2VPYmplY3RzID0gY3VycmVudFZlcnNlT2JqZWN0cyB8fCBpbml0aWFsVmVyc2VPYmplY3RzXG4gICAgY29uc3QgeyB0YXJnZXRWZXJzZVRleHQgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoX3RhcmdldFZlcnNlT2JqZWN0cywgbmV3VmVyc2VUZXh0KVxuICAgIGNvbnN0IGFsaWduZWQgPSBpc1VzZm1BbGlnbmVkKHRhcmdldFZlcnNlVGV4dCwgb3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgY29uc3QgdmVyc2VUZXh0Q2hhbmdlZCA9IG5ld1ZlcnNlVGV4dCAhPT0gaW5pdGlhbFZlcnNlVGV4dFxuXG4gICAgc2V0U3RhdGUoe1xuICAgICAgdmVyc2VUZXh0Q2hhbmdlZCxcbiAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICAgIGFsaWduZWQsXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHMgPSBSZWFjdC51c2VNZW1vKCAoKSA9PiB7IC8vIGlmIHZlcnNlIGhhcyBiZWVuIGVkaXRlZCBvciBhbGlnbm1lbnQgY2hhbmdlZCwgdGhlbiBnZW5lcmF0ZSBuZXcgdmVyc2VPYmplY3RzIHRvIGRpc3BsYXkgaW4gU2NyaXB0dXJlUGFuZVxuICAgIGlmIChpbml0aWFsVmVyc2VPYmplY3RzKSB7XG4gICAgICBjb25zdCB0YXJnZXRWZXJzZVVTRk0gPSBnZXRDdXJyZW50VmVyc2VVc2ZtKHVwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMsIHZlcnNlVGV4dENoYW5nZWQsIG5ld1ZlcnNlVGV4dClcbiAgICAgIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHNfID0gdXNmbUhlbHBlcnMudXNmbVZlcnNlVG9Kc29uKHRhcmdldFZlcnNlVVNGTSlcbiAgICAgIHJldHVybiBjdXJyZW50VmVyc2VPYmplY3RzX1xuICAgIH1cbiAgICByZXR1cm4gaW5pdGlhbFZlcnNlT2JqZWN0c1xuICB9LCBbdXBkYXRlZFZlcnNlT2JqZWN0cywgaW5pdGlhbFZlcnNlT2JqZWN0cywgdmVyc2VUZXh0Q2hhbmdlZCwgbmV3VmVyc2VUZXh0XSlcblxuICBjb25zdCB1bnNhdmVkQ2hhbmdlczpib29sZWFuID0gUmVhY3QudXNlTWVtbyggKCkgPT4geyAvLyBpZiB2ZXJzZSBoYXMgYmVlbiBlZGl0ZWQgb3IgYWxpZ25tZW50IGNoYW5nZWQsIHRoZW4gaW5kaWNhdGUgd2UgaGF2ZSB1bnNhdmVkIGNoYW5nZXNcbiAgICBjb25zdCBjaGFuZ2VkID0gdmVyc2VUZXh0Q2hhbmdlZCB8fCAodXBkYXRlZFZlcnNlT2JqZWN0cyAmJiAhaXNFcXVhbChpbml0aWFsVmVyc2VPYmplY3RzLCB1cGRhdGVkVmVyc2VPYmplY3RzKSlcbiAgICByZXR1cm4gY2hhbmdlZFxuICB9LCBbdXBkYXRlZFZlcnNlT2JqZWN0cywgaW5pdGlhbFZlcnNlT2JqZWN0cywgdmVyc2VUZXh0Q2hhbmdlZF0pXG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIHRvIHNjcmlwdHVyZSBjYXJkIHRvIHVwZGF0ZWQgd2l0aCBsYXRlc3Qgc3RhdGUgZm9yIHNhdmluZ1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHVuc2F2ZWRDaGFuZ2VzX1xuICAgKiBAcGFyYW0ge29iamVjdH0gbmV3U3RhdGVcbiAgICovXG4gIGZ1bmN0aW9uIGNhbGxTZXRTYXZlZFN0YXRlKHVuc2F2ZWRDaGFuZ2VzXzogYm9vbGVhbiwgbmV3U3RhdGU6IHt9ID0geyB9ICkge1xuICAgIGNvbnN0IF9uZXdTdGF0ZSA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgLi4ubmV3U3RhdGUsXG4gICAgfVxuXG4gICAgLy8gY29uc29sZS5sb2coYGNhbGxTZXRTYXZlZFN0YXRlIC0gbmV3IHN0YXRlYCwgX25ld1N0YXRlKVxuICAgIHNldFNhdmVkQ2hhbmdlcyAmJiBzZXRTYXZlZENoYW5nZXMoY3VycmVudEluZGV4LCAhdW5zYXZlZENoYW5nZXNfLCB7XG4gICAgICBnZXRDaGFuZ2VzLFxuICAgICAgY2xlYXJDaGFuZ2VzLFxuICAgICAgc3RhdGU6IF9uZXdTdGF0ZSxcbiAgICB9KVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gc2V0IHNhdmVkIGNoYW5nZXMgd2hlbmV2ZXIgdXNlciBlZGl0cyB2ZXJzZSB0ZXh0IG9yIGFsaWdubWVudHMgb3IgaWYgYWxpZ25tZW50cyBhcmUgb3BlblxuICAgIGNvbnN0IHVuc2F2ZWRDaGFuZ2VzXyA9IHVuc2F2ZWRDaGFuZ2VzIHx8ICEhYWxpZ25lckRhdGFcbiAgICBjYWxsU2V0U2F2ZWRTdGF0ZSh1bnNhdmVkQ2hhbmdlc18pXG4gIH0sIFt1bnNhdmVkQ2hhbmdlcywgYWxpZ25lckRhdGFdKVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmb3Igd2hlbiBhbGlnbm1lbnRzIGFyZSBiZWluZyBjaGFuZ2VkXG4gICAqIEBwYXJhbSB7QWxpZ25lclJlc3VsdHNEYXRhVHlwZX0gcmVzdWx0c1xuICAgKiBAcmV0dXJuIHtib29sZWFufSB0cnVlIGlmIGFsaWdubWVudCBpcyBjb21wbGV0ZVxuICAgKi9cbiAgZnVuY3Rpb24gb25BbGlnbm1lbnRzQ2hhbmdlKHJlc3VsdHM6IEFsaWduZXJSZXN1bHRzRGF0YVR5cGUpOmJvb2xlYW4ge1xuICAgIGNvbnNvbGUubG9nKGBvbkFsaWdubWVudHNDaGFuZ2UoKSAtIGFsaWdubWVudCBjaGFuZ2VkLCByZXN1bHRzYCwgcmVzdWx0cykgLy8gbWVyZ2UgYWxpZ25tZW50cyBpbnRvIHRhcmdldCB2ZXJzZSBhbmQgY29udmVydCB0byBVU0ZNXG4gICAgY29uc3QgeyB0YXJnZXRXb3JkcywgdmVyc2VBbGlnbm1lbnRzIH0gPSByZXN1bHRzXG4gICAgY29uc3QgYWxpZ25tZW50Q29tcGxldGUgPSBBbGlnbm1lbnRIZWxwZXJzLmFyZUFsZ25tZW50c0NvbXBsZXRlKHRhcmdldFdvcmRzLCB2ZXJzZUFsaWdubWVudHMpXG4gICAgY29uc29sZS5sb2coYEFsaWdubWVudHMgYXJlICR7YWxpZ25tZW50Q29tcGxldGUgPyAnQ09NUExFVEUhJyA6ICdpbmNvbXBsZXRlJ31gKVxuICAgIHNldFN0YXRlKHsgbmV3QWxpZ25tZW50czogcmVzdWx0cywgYWxpZ25lZDogYWxpZ25tZW50Q29tcGxldGUgfSlcbiAgICByZXR1cm4gYWxpZ25tZW50Q29tcGxldGVcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWN0aW9uczoge1xuICAgICAgY2FuY2VsQWxpZ25tZW50LFxuICAgICAgY2xlYXJDaGFuZ2VzLFxuICAgICAgZ2V0Q2hhbmdlcyxcbiAgICAgIGhhbmRsZUFsaWdubWVudENsaWNrLFxuICAgICAgb25BbGlnbm1lbnRzQ2hhbmdlLFxuICAgICAgc2F2ZUFsaWdubWVudCxcbiAgICAgIHNldEVkaXRpbmcsXG4gICAgICBzZXRWZXJzZUNoYW5nZWQsXG4gICAgfSxcbiAgICBzdGF0ZToge1xuICAgICAgYWxpZ25lZCxcbiAgICAgIGFsaWduZXJEYXRhLFxuICAgICAgY3VycmVudFZlcnNlT2JqZWN0cyxcbiAgICAgIGVkaXRpbmcsXG4gICAgICBlbmFibGVFZGl0LFxuICAgICAgZW5hYmxlQWxpZ25tZW50LFxuICAgICAgaW5pdGlhbFZlcnNlVGV4dCxcbiAgICAgIGluaXRpYWxWZXJzZU9iamVjdHMsXG4gICAgICBuZXdWZXJzZVRleHQsXG4gICAgICByZWZlcmVuY2U6IGJhc2ljUmVmZXJlbmNlLFxuICAgICAgc291cmNlTGFuZ3VhZ2UsXG4gICAgICB0YXJnZXRMYW5ndWFnZSxcbiAgICAgIHRpdGxlLFxuICAgICAgdW5zYXZlZENoYW5nZXMsXG4gICAgICB2ZXJzZVRleHRDaGFuZ2VkLFxuICAgIH0sXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjsrQ0FDQSxxSkFBQUEsbUJBQUEsWUFBQUEsb0JBQUEsV0FBQUMsQ0FBQSxTQUFBQyxDQUFBLEVBQUFELENBQUEsT0FBQUUsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLFNBQUEsRUFBQUMsQ0FBQSxHQUFBSCxDQUFBLENBQUFJLGNBQUEsRUFBQUMsQ0FBQSxHQUFBSixNQUFBLENBQUFLLGNBQUEsY0FBQVAsQ0FBQSxFQUFBRCxDQUFB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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.30",
4
+ "version": "3.4.31",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/unfoldingWord/single-scripture-rcl.git"