@dbx-tools/appkit-mastra 0.4.0 → 0.5.0

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.
package/lib/src/memory.js CHANGED
@@ -272,4 +272,4 @@ function collectAgentDefinitions(config) {
272
272
  function withId(value, fallback) {
273
273
  return value.id ? value : { ...value, id: fallback };
274
274
  }
275
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lbW9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFFSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckQsT0FBTyxFQUFFLElBQUksRUFBbUIsTUFBTSxJQUFJLENBQUM7QUFJM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUvRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBRTNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLDBCQUEwQixDQUFDLFFBQW9CO0lBQ25FLDhEQUE4RDtJQUM5RCxnRUFBZ0U7SUFDaEUsb0VBQW9FO0lBQ3BFLG1DQUFtQztJQUNuQyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSx3QkFBd0IsRUFBRSxDQUFDLENBQUM7SUFDakUsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLEdBQUcsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDekMsQ0FBQztBQU1EOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUEwQjtJQUN0RCxJ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QUM5QyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQseUVBQXlFO0FBQ3pFLFNBQVMsYUFBYSxDQUFDLE9BQW1DO0lBQ3hELE9BQU8sSUFBSSxRQUFRLENBQ2pCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsY0FBYyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBOEMsQ0FDeEYsQ0FBQztBQUNKLENBQUM7QUFFRCxnRUFBZ0U7QUFDaEUsU0FBUyxzQkFBc0IsQ0FBQyxPQUFtRDtJQUNqRixPQUFPLE9BQU8sS0FBSyxJQUFJLENBQUM7QUFDMUIsQ0FBQztBQUVELGlFQUFpRTtBQUNqRSxTQUFTLHVCQUF1QixDQUFDLE1BQTBCO0lBQ3pELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDN0IsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN2QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQUUsT0FBTyxNQUFNLENBQUM7SUFDekMsSUFBSSxPQUFRLE1BQWdDLENBQUMsWUFBWSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3ZFLE9BQU8sQ0FBQyxNQUErQixDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUErQyxDQUFDLENBQUM7QUFDeEUsQ0FBQztBQUVELGdFQUFnRTtBQUNoRSxTQUFTLE1BQU0sQ0FBNEIsS0FBUSxFQUFFLFFBQWdCO0lBQ25FLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQztBQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBMYWtlYmFzZS1iYWNrZWQgTWFzdHJhIG1lbW9yeSB3aXJpbmcuXG4gKlxuICogUHJvdmlkZXMgYSB7QGxpbmsgTWVtb3J5QnVpbGRlcn0gdGhhdCBtaW50cyBvbmUgYE1lbW9yeWAgcGVyIGFnZW50XG4gKiB3aXRoIHR3byBpbmRlcGVuZGVudCBrbm9iczpcbiAqXG4gKiAtICoqU3RvcmFnZSoqICh0aHJlYWRzIC8gbWVzc2FnZXMgdmlhIGBQb3N0Z3Jlc1N0b3JlYCk6IGRlZmF1bHRzIHRvXG4gKiAgICoqcGVyLWFnZW50KiogbmFtZXNwYWNpbmcgdmlhIHtAbGluayBhZ2VudFN0b3JhZ2VTY2hlbWFOYW1lfSBzb1xuICogICBjb252ZXJzYXRpb24gaGlzdG9yeSBzdGF5cyBpc29sYXRlZCBiZXR3ZWVuIGFnZW50cyBpbiB0aGUgc2FtZVxuICogICBkYXRhYmFzZS4gYFBvc3RncmVzU3RvcmVgIGF1dG8tY3JlYXRlcyB0aGUgc2NoZW1hIHdpdGhcbiAqICAgYENSRUFURSBTQ0hFTUEgSUYgTk9UIEVYSVNUU2Agb24gaW5pdC5cbiAqIC0gKipNZW1vcnkqKiAoc2VtYW50aWMgcmVjYWxsIHZpYSBgUGdWZWN0b3JgKTogZGVmYXVsdHMgdG8gYSBzaW5nbGVcbiAqICAgKipzaGFyZWQqKiBpbnN0YW5jZSBhY3Jvc3MgZXZlcnkgYWdlbnQuIENyb3NzLWFnZW50IHJlY2FsbCBvbiBvbmVcbiAqICAgaW5kZXggaXMgYWxtb3N0IGFsd2F5cyB3aGF0IHVzZXJzIHdhbnQ7IG9wdCBpbnRvIHBlci1hZ2VudCByZWNhbGxcbiAqICAgYnkgcGFzc2luZyBhIHtAbGluayBNYXN0cmFNZW1vcnlDb25maWdPdmVycmlkZX0gb24gdGhlIGFnZW50LlxuICpcbiAqIEFkZGl0aW9uYWxseSwge0BsaW5rIE1lbW9yeUJ1aWxkZXIuaW5zdGFuY2VTdG9yYWdlfSByZXR1cm5zIGFcbiAqICoqTWFzdHJhLWluc3RhbmNlLWxldmVsKiogYFBvc3RncmVzU3RvcmVgIChzY2hlbWEgYG1hc3RyYV9pbnN0YW5jZWApXG4gKiB1c2VkIGZvciB3b3JrZmxvdyBzbmFwc2hvdHMgLSB0aGUgcGVyc2lzdGVuY2UgbGF5ZXJcbiAqIGBhZ2VudC5yZXN1bWVTdHJlYW0oKWAgcmVhZHMgZnJvbSB3aGVuIHdha2luZyBhIHN1c3BlbmRlZFxuICogYHJlcXVpcmVBcHByb3ZhbGAgdG9vbCBjYWxsLiBQZXItYWdlbnQgc3RvcmVzIGFyZSBub3QgZW5vdWdoIGZvclxuICogdGhpczogd29ya2Zsb3cgcnVucyBhcmUgc2NvcGVkIHRvIHRoZSBNYXN0cmEgaW5zdGFuY2UsIG5vdCBhblxuICogaW5kaXZpZHVhbCBhZ2VudCdzIGBNZW1vcnlgLlxuICpcbiAqIFBsdWdpbi1sZXZlbCBgY29uZmlnLnN0b3JhZ2VgIC8gYGNvbmZpZy5tZW1vcnlgIGFjdCBhcyB0aGUgYmFzZWxpbmVcbiAqIChhdXRvLWRlZmF1bHRlZCB0byBgdHJ1ZWAgaW4gYHBsdWdpbi50c2Agd2hlbiB0aGUgYGxha2ViYXNlYCBwbHVnaW5cbiAqIGlzIHJlZ2lzdGVyZWQpOyBwZXItYWdlbnQgc2V0dGluZ3MgY2FzY2FkZSBvbiB0b3Agb2YgdGhhdC5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgZ2V0VXNlcm5hbWVXaXRoQXBpTG9va3VwIH0gZnJvbSBcIkBkYXRhYnJpY2tzL2FwcGtpdFwiO1xuaW1wb3J0IHsgaGFzaCwgbG9nIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IGZhc3RlbWJlZCB9IGZyb20gXCJAbWFzdHJhL2Zhc3RlbWJlZFwiO1xuaW1wb3J0IHsgTWVtb3J5IH0gZnJvbSBcIkBtYXN0cmEvbWVtb3J5XCI7XG5pbXBvcnQgeyBQZ1ZlY3RvciwgUG9zdGdyZXNTdG9yZSB9IGZyb20gXCJAbWFzdHJhL3BnXCI7XG5pbXBvcnQgeyBQb29sLCB0eXBlIFBvb2xDb25maWcgfSBmcm9tIFwicGdcIjtcblxuaW1wb3J0IHR5cGUgeyBNYXN0cmFBZ2VudERlZmluaXRpb24sIE1hc3RyYU1lbW9yeUNvbmZpZ092ZXJyaWRlIH0gZnJvbSBcIi4vYWdlbnRzXCI7XG5pbXBvcnQgdHlwZSB7IE1hc3RyYVBsdWdpbkNvbmZpZyB9IGZyb20gXCIuL2NvbmZpZ1wiO1xuaW1wb3J0IHsgYWdlbnRTdG9yYWdlU2NoZW1hTmFtZSB9IGZyb20gXCIuL3N0b3JhZ2Utc2NoZW1hXCI7XG5pbXBvcnQgeyBzdW1tYXJ5TW9kZWwsIFRJVExFX0lOU1RSVUNUSU9OUyB9IGZyb20gXCIuL3N1bW1hcml6ZVwiO1xuXG5jb25zdCBsb2dnZXIgPSBsb2cubG9nZ2VyKFwibWFzdHJhL21lbW9yeVwiKTtcblxuLyoqXG4gKiBCdWlsZCBhIGRlZGljYXRlZCAqKnNlcnZpY2UtcHJpbmNpcGFsKiogTGFrZWJhc2UgcG9vbCBmb3IgTWFzdHJhXG4gKiBtZW1vcnkgZnJvbSB0aGUgbGFrZWJhc2UgcGx1Z2luJ3MgcmVzb2x2ZWQgU1AgcGcgY29uZmlnLlxuICpcbiAqIFRoZSBwbHVnaW4ncyBgZXhwb3J0cygpLnBvb2xgIGlzIGEgYFJvdXRpbmdQb29sYCB0aGF0IHN3aXRjaGVzIHRvXG4gKiB0aGUgcGVyLXVzZXIgKE9CTykgcG9vbCB3aGVuZXZlciBhIHF1ZXJ5IHJ1bnMgaW5zaWRlIGFuIGBhc1VzZXJgXG4gKiBzY29wZSAtIGV4YWN0bHkgdGhlIGNvbnRleHQgdGhlIG1hc3RyYSBwbHVnaW4gZXN0YWJsaXNoZXMgYXJvdW5kXG4gKiBldmVyeSBjaGF0IHR1cm4uIE1lbW9yeSAodGhyZWFkcyAvIG1lc3NhZ2VzICsgc2VtYW50aWMgcmVjYWxsKSBtdXN0XG4gKiBpbnN0ZWFkIGFsd2F5cyBhY3QgYXMgdGhlIGFwcCBzZXJ2aWNlIHByaW5jaXBhbDogaXQgb3ducyB0aGVcbiAqIGF1dG8tY3JlYXRlZCBgbWFzdHJhXypgIHNjaGVtYXMgKGEgcGVyLXVzZXIgcm9sZSB1c3VhbGx5IGNhbid0XG4gKiBgQ1JFQVRFIFNDSEVNQWApIGFuZCBpcyBzaGFyZWQgYWNyb3NzIHVzZXJzLCBzbyBpdCBjYW5ub3QgaW5oZXJpdCBhXG4gKiByZXF1ZXN0J3MgT0JPIGlkZW50aXR5LlxuICpcbiAqIGBwZ0NvbmZpZ2AgbXVzdCBiZSB0aGUgcGx1Z2luJ3MgYGV4cG9ydHMoKS5nZXRQZ0NvbmZpZygpYCBldmFsdWF0ZWRcbiAqICoqb3V0c2lkZSoqIGFueSBgYXNVc2VyYCBzY29wZSAoaS5lLiBkdXJpbmcgc2V0dXApLCBzbyBpdCBjYXJyaWVzXG4gKiB0aGUgU1AgY29ubmVjdGlvbiB0YXJnZXQsIE9BdXRoIHRva2VuLXJlZnJlc2ggYHBhc3N3b3JkYCBjYWxsYmFjayxcbiAqIGFuZCBhbnkgYGxha2ViYXNlKHsgcG9vbCB9KWAgdHVuaW5nIG92ZXJyaWRlcyAtIGFsbCBvZiB3aGljaCB0aGlzXG4gKiBwb29sIGluaGVyaXRzLiBTZWUgdGhlIGNhbGwgc2l0ZSBpbiBgcGx1Z2luLnRzYC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVNlcnZpY2VQcmluY2lwYWxQb29sKHBnQ29uZmlnOiBQb29sQ29uZmlnKTogUHJvbWlzZTxQb29sPiB7XG4gIC8vIGBnZXRQZ0NvbmZpZygpYCByZXNvbHZlcyB0aGUgU1AgdXNlcm5hbWUgc3luY2hyb25vdXNseSBmcm9tXG4gIC8vIGBQR1VTRVJgIC8gYERBVEFCUklDS1NfQ0xJRU5UX0lEYDsgZmFsbCBiYWNrIHRvIHRoZSBhc3luYyBBUElcbiAgLy8gbG9va3VwIChlLmcuIGxvY2FsIGRldiBhdXRoZW50aWNhdGluZyB2aWEgUEFUKSBzbyB0aGUgcG9vbCBhbHdheXNcbiAgLy8gaGFzIGFuIGlkZW50aXR5IHRvIGNvbm5lY3Qgd2l0aC5cbiAgY29uc3QgdXNlciA9IHBnQ29uZmlnLnVzZXIgPz8gKGF3YWl0IGdldFVzZXJuYW1lV2l0aEFwaUxvb2t1cCgpKTtcbiAgcmV0dXJuIG5ldyBQb29sKHsgLi4ucGdDb25maWcsIHVzZXIgfSk7XG59XG5cbi8qKiBFZmZlY3RpdmUgcGVyLWtub2Igc2V0dGluZyBhZnRlciB0aGUgcGx1Z2luL2FnZW50IGNhc2NhZGUuICovXG50eXBlIFN0b3JhZ2VTZXR0aW5nID0gTWFzdHJhQWdlbnREZWZpbml0aW9uW1wic3RvcmFnZVwiXTtcbnR5cGUgTWVtb3J5U2V0dGluZyA9IE1hc3RyYUFnZW50RGVmaW5pdGlvbltcIm1lbW9yeVwiXTtcblxuLyoqXG4gKiBUcnVlIHdoZW4gYW55IHBsdWdpbi1sZXZlbCBvciBwZXItYWdlbnQgc2V0dGluZyBjb3VsZCBuZWVkIHRoZVxuICogTGFrZWJhc2UgcG9vbC4gVXNlZCBieSBgcGx1Z2luLnRzYCB0byBnYXRlIGNyZWF0aW9uIG9mIHRoZVxuICogc2VydmljZS1wcmluY2lwYWwgcG9vbCBhbmQgdGhlIHtAbGluayBNZW1vcnlCdWlsZGVyfSB0aGF0IGNvbnN1bWVzXG4gKiBpdDsgd2hlbiBmYWxzZSBuZWl0aGVyIGlzIGJ1aWx0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbmVlZHNMYWtlYmFzZShjb25maWc6IE1hc3RyYVBsdWdpbkNvbmZpZyk6IGJvb2xlYW4ge1xuICBpZiAoc2V0dGluZ05lZWRzU2hhcmVkUG9vbChjb25maWcuc3RvcmFnZSkpIHJldHVybiB0cnVlO1xuICBpZiAoc2V0dGluZ05lZWRzU2hhcmVkUG9vbChjb25maWcubWVtb3J5KSkgcmV0dXJuIHRydWU7XG4gIGNvbnN0IGRlZnMgPSBjb2xsZWN0QWdlbnREZWZpbml0aW9ucyhjb25maWcpO1xuICByZXR1cm4gZGVmcy5zb21lKChkKSA9PiBzZXR0aW5nTmVlZHNTaGFyZWRQb29sKGQuc3RvcmFnZSkgfHwgc2V0dGluZ05lZWRzU2hhcmVkUG9vbChkLm1lbW9yeSkpO1xufVxuXG4vKipcbiAqIENvbnN0cnVjdCBhIHBlci1hZ2VudCB7QGxpbmsgTWVtb3J5fSBmYWN0b3J5IGJvdW5kIHRvIHRoZSBzdXBwbGllZFxuICogc2VydmljZS1wcmluY2lwYWwgcG9vbCAoc2VlIHtAbGluayBjcmVhdGVTZXJ2aWNlUHJpbmNpcGFsUG9vbH0pLlxuICogQ2FjaGVzIHRoZSBzaGFyZWQgYFBnVmVjdG9yYCBzaW5nbGV0b24gKGJ1aWx0IG9uIGZpcnN0IG5lZWQpIHNvIGVhY2hcbiAqIGFnZW50IGJ1aWxkIGlzIE8oMSkgYWZ0ZXIgdGhlIGZpcnN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWVtb3J5QnVpbGRlcihcbiAgY29uZmlnOiBNYXN0cmFQbHVnaW5Db25maWcsXG4gIHNlcnZpY2VQcmluY2lwYWxQb29sOiBQb29sLFxuKTogTWVtb3J5QnVpbGRlciB7XG4gIHJldHVybiBuZXcgTWVtb3J5QnVpbGRlcihjb25maWcsIHNlcnZpY2VQcmluY2lwYWxQb29sKTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgb25lIGBNZW1vcnlgIHBlciBhZ2VudCBhZ2FpbnN0IGEgc2hhcmVkIHNlcnZpY2UtcHJpbmNpcGFsXG4gKiBMYWtlYmFzZSBwb29sLiBQZXItaW5zdGFuY2Ugc3RhdGUga2VlcHMgdGhlIHNoYXJlZCBgUGdWZWN0b3JgIGFsaXZlXG4gKiBhY3Jvc3MgY2FsbHMgc28gcmVnaXN0ZXJpbmcgTiBhZ2VudHMgc3RheXMgY2hlYXAuXG4gKi9cbmV4cG9ydCBjbGFzcyBNZW1vcnlCdWlsZGVyIHtcbiAgcHJpdmF0ZSBzaGFyZWRWZWN0b3I6IFBnVmVjdG9yIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBNYXN0cmFQbHVnaW5Db25maWcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlUHJpbmNpcGFsUG9vbDogUG9vbCxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBCdWlsZCB0aGUgTWFzdHJhLWluc3RhbmNlLWxldmVsIHN0b3JhZ2UgdXNlZCBmb3Igd29ya2Zsb3dcbiAgICogc25hcHNob3RzLiBSZXR1cm5zIGB1bmRlZmluZWRgIHdoZW4gcGx1Z2luLWxldmVsIGBzdG9yYWdlYCBpc1xuICAgKiBkaXNhYmxlZCwgaW4gd2hpY2ggY2FzZSBgYWdlbnQucmVzdW1lU3RyZWFtKClgIChhbmQgdGhlcmVmb3JlXG4gICAqIHRoZSBgcmVxdWlyZUFwcHJvdmFsYCBmbG93KSB3aWxsIG5vdCBiZSBhdmFpbGFibGUuXG4gICAqXG4gICAqIFRoZSBzdG9yZSBsaXZlcyBpbiBhIGRlZGljYXRlZCBgbWFzdHJhX2luc3RhbmNlYCBzY2hlbWEgc28gaXRcbiAgICogbmV2ZXIgY29sbGlkZXMgd2l0aCBwZXItYWdlbnQge0BsaW5rIGFnZW50U3RvcmFnZVNjaGVtYU5hbWV9IG5hbWVzcGFjZXMuXG4gICAqIFdvcmtmbG93IHNuYXBzaG90cyBhcmUgbm90IHBlci1hZ2VudCBzdGF0ZTsgdGhleSBiZWxvbmcgdG8gdGhlXG4gICAqIGBNYXN0cmFgIGluc3RhbmNlIHRoYXQgb3ducyB0aGUgd29ya2Zsb3cgZXhlY3V0aW9uLlxuICAgKi9cbiAgaW5zdGFuY2VTdG9yYWdlKCk6IFBvc3RncmVzU3RvcmUgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHNldHRpbmcgPSB0aGlzLmNvbmZpZy5zdG9yYWdlO1xuICAgIGlmICghc2V0dGluZykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAodHlwZW9mIHNldHRpbmcgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHJldHVybiBuZXcgUG9zdGdyZXNTdG9yZShcbiAgICAgICAgd2l0aElkKHNldHRpbmcsIFwibWFzdHJhLXN0b3JlX19pbnN0YW5jZVwiKSBhcyBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIFBvc3RncmVzU3RvcmU+WzBdLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBQb3N0Z3Jlc1N0b3JlKHtcbiAgICAgIGlkOiBcIm1hc3RyYS1zdG9yZV9faW5zdGFuY2VcIixcbiAgICAgIHNjaGVtYU5hbWU6IFwibWFzdHJhX2luc3RhbmNlXCIsXG4gICAgICBwb29sOiB0aGlzLnNlcnZpY2VQcmluY2lwYWxQb29sLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgYE1lbW9yeWAgZm9yIGBhZ2VudElkYCBhZnRlciB0aGUgcGx1Z2luL2FnZW50IGNhc2NhZGUuXG4gICAqIFJldHVybnMgYHVuZGVmaW5lZGAgd2hlbiB0aGUgYWdlbnQgaGFzIG5laXRoZXIgc3RvcmFnZSBub3IgYVxuICAgKiB2ZWN0b3Igc3RvcmUgZW5hYmxlZCAtIE1hc3RyYSBhY2NlcHRzIGEgbWlzc2luZyBgbWVtb3J5YCBmaWVsZFxuICAgKiBhbmQgdHJlYXRzIHRoZSBhZ2VudCBhcyBzdGF0ZWxlc3MuXG4gICAqL1xuICBmb3JBZ2VudChhZ2VudElkOiBzdHJpbmcsIGRlZjogTWFzdHJhQWdlbnREZWZpbml0aW9uKTogTWVtb3J5IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzdG9yYWdlU2V0dGluZyA9IGRlZi5zdG9yYWdlID8/IHRoaXMuY29uZmlnLnN0b3JhZ2U7XG4gICAgY29uc3QgbWVtb3J5U2V0dGluZyA9IGRlZi5tZW1vcnkgPz8gdGhpcy5jb25maWcubWVtb3J5O1xuXG4gICAgY29uc3Qgc3RvcmFnZSA9IHRoaXMuYnVpbGRTdG9yYWdlKGFnZW50SWQsIHN0b3JhZ2VTZXR0aW5nKTtcbiAgICBjb25zdCB2ZWN0b3IgPSB0aGlzLmJ1aWxkVmVjdG9yKG1lbW9yeVNldHRpbmcpO1xuICAgIGlmICghc3RvcmFnZSAmJiAhdmVjdG9yKSB7XG4gICAgICBsb2dnZXIuZGVidWcoXCJhZ2VudDpzdGF0ZWxlc3NcIiwgeyBhZ2VudElkIH0pO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBsb2dnZXIuZGVidWcoXCJhZ2VudDpjb25maWd1cmVkXCIsIHtcbiAgICAgIGFnZW50SWQsXG4gICAgICBzdG9yYWdlOiBzdG9yYWdlICE9PSB1bmRlZmluZWQsXG4gICAgICB2ZWN0b3I6IHZlY3RvciAhPT0gdW5kZWZpbmVkLFxuICAgICAgdmVjdG9yTW9kZTpcbiAgICAgICAgdmVjdG9yID09PSB1bmRlZmluZWQgPyBcIm9mZlwiIDogdHlwZW9mIG1lbW9yeVNldHRpbmcgPT09IFwib2JqZWN0XCIgPyBcImRlZGljYXRlZFwiIDogXCJzaGFyZWRcIixcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgTWVtb3J5KHtcbiAgICAgIC4uLihzdG9yYWdlID8geyBzdG9yYWdlIH0gOiB7fSksXG4gICAgICAuLi4odmVjdG9yID8geyB2ZWN0b3IsIGVtYmVkZGVyOiBmYXN0ZW1iZWQgfSA6IHt9KSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgbGFzdE1lc3NhZ2VzOiAxMCxcbiAgICAgICAgLi4uKHZlY3RvciA/IHsgc2VtYW50aWNSZWNhbGw6IHsgdG9wSzogMywgbWVzc2FnZVJhbmdlOiAyIH0gfSA6IHt9KSxcbiAgICAgICAgLy8gQXV0by1uYW1lIGVhY2ggdGhyZWFkIGZyb20gaXRzIG9wZW5pbmcgdHVybiBzbyB0aGVcbiAgICAgICAgLy8gY29udmVyc2F0aW9uIGxpc3QgdGhlIFVJIHJlbmRlcnMgc2hvd3MgbWVhbmluZ2Z1bCB0aXRsZXNcbiAgICAgICAgLy8gaW5zdGVhZCBvZiByYXcgaWRzLiBUaXRsaW5nIHJ1bnMgb24gdGhlIHNtYWxsIC8gZmFzdCBjaGF0XG4gICAgICAgIC8vIHRpZXIgKHNlZSBgc3VtbWFyaXplLnRzYCkgcmF0aGVyIHRoYW4gdGhlIGFnZW50J3MgcHJpbWFyeVxuICAgICAgICAvLyBtb2RlbCwgc28gbmFtaW5nIGEgdGhyZWFkIG5ldmVyIHNwZW5kcyB0aGUgaGVhdnl3ZWlnaHQgbW9kZWwuXG4gICAgICAgIC8vIE9ubHkgbWVhbmluZ2Z1bCB3aGVuIHN0b3JhZ2UgaXMgb247IGhhcm1sZXNzIG90aGVyd2lzZS5cbiAgICAgICAgLi4uKHN0b3JhZ2VcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgZ2VuZXJhdGVUaXRsZToge1xuICAgICAgICAgICAgICAgIG1vZGVsOiBzdW1tYXJ5TW9kZWwodGhpcy5jb25maWcpLFxuICAgICAgICAgICAgICAgIGluc3RydWN0aW9uczogVElUTEVfSU5TVFJVQ1RJT05TLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRTdG9yYWdlKGFnZW50SWQ6IHN0cmluZywgc2V0dGluZzogU3RvcmFnZVNldHRpbmcpOiBQb3N0Z3Jlc1N0b3JlIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXNldHRpbmcpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgaWYgKHR5cGVvZiBzZXR0aW5nID09PSBcImJvb2xlYW5cIikge1xuICAgICAgcmV0dXJuIG5ldyBQb3N0Z3Jlc1N0b3JlKHtcbiAgICAgICAgaWQ6IGBtYXN0cmEtc3RvcmVfXyR7YWdlbnRJZH1gLFxuICAgICAgICBzY2hlbWFOYW1lOiBhZ2VudFN0b3JhZ2VTY2hlbWFOYW1lKGFnZW50SWQpLFxuICAgICAgICBwb29sOiB0aGlzLnNlcnZpY2VQcmluY2lwYWxQb29sLFxuICAgICAgfSk7XG4gICAgfVxuICAgIC8vIENhc3Q6IGB3aXRoSWRgIGd1YXJhbnRlZXMgYGlkYCBpcyBzZXQsIGJ1dCB0aGUgZGlzdHJpYnV0aXZlXG4gICAgLy8gT21pdCArIGBpZD86IHN0cmluZ2Agc2hhcGUgZG9lc24ndCBzdHJ1Y3R1cmFsbHkgbmFycm93IHRvIHRoZVxuICAgIC8vIGRpc2NyaW1pbmF0ZWQgdW5pb24gbWVtYmVycy4gUnVudGltZSBzaGFwZSBpcyBpZGVudGljYWwuXG4gICAgcmV0dXJuIG5ldyBQb3N0Z3Jlc1N0b3JlKFxuICAgICAgd2l0aElkKHNldHRpbmcsIGBtYXN0cmEtc3RvcmVfXyR7YWdlbnRJZH1gKSBhcyBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIFBvc3RncmVzU3RvcmU+WzBdLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSB0aGUgYWdlbnQncyB2ZWN0b3Igc3RvcmUuIENhc2NhZGU6XG4gICAqXG4gICAqIC0gZmFsc3k6IG5vIHZlY3Rvci5cbiAgICogLSBgYm9vbGVhbmAgLyBgdW5kZWZpbmVkLWluaGVyaXRpbmctdHJ1ZWA6IHJldHVybiB0aGUgc2hhcmVkXG4gICAqICAgc2luZ2xldG9uIChidWlsdCBsYXppbHkgb24gZmlyc3QgY2FsbCkuIEFsbCBhZ2VudHMgdGhhdFxuICAgKiAgIGRlZmF1bHQtZW5hYmxlIG1lbW9yeSB3cml0ZSBpbnRvIGFuZCByZWNhbGwgZnJvbSBvbmUgaW5kZXguXG4gICAqIC0gb2JqZWN0OiBidWlsZCBhIGRlZGljYXRlZCBgUGdWZWN0b3JgIGZvciB0aGlzIGFnZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZFZlY3RvcihzZXR0aW5nOiBNZW1vcnlTZXR0aW5nKTogUGdWZWN0b3IgfCB1bmRlZmluZWQge1xuICAgIGlmICghc2V0dGluZykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAodHlwZW9mIHNldHRpbmcgPT09IFwiYm9vbGVhblwiKSByZXR1cm4gdGhpcy5nZXRTaGFyZWRWZWN0b3IoKTtcbiAgICByZXR1cm4gYnVpbGRQZ1ZlY3RvcihzZXR0aW5nKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2hhcmVkVmVjdG9yKCk6IFBnVmVjdG9yIHtcbiAgICBpZiAoIXRoaXMuc2hhcmVkVmVjdG9yKSB7XG4gICAgICB0aGlzLnNoYXJlZFZlY3RvciA9IGJ1aWxkU2hhcmVkUGdWZWN0b3IodGhpcy5zZXJ2aWNlUHJpbmNpcGFsUG9vbCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNoYXJlZFZlY3RvcjtcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkIHRoZSBzaGFyZWQgYFBnVmVjdG9yYCB0aGF0IGJhY2tzIHRoZSBkZWZhdWx0XG4gKiBgZGVmLm1lbW9yeSA9PT0gdHJ1ZWAgY2FzZSBhY3Jvc3MgZXZlcnkgYWdlbnQuXG4gKlxuICogYFBnVmVjdG9yYCdzIGNvbnN0cnVjdG9yIGFjY2VwdHMgb25seSBjb25uZWN0aW9uLXN0eWxlIGNvbmZpZ3NcbiAqIChgSG9zdENvbmZpZ2AgLyBgQ29ubmVjdGlvblN0cmluZ0NvbmZpZ2AgLyBgQ2xpZW50Q29uZmlnYCk7IHRoZXJlIGlzXG4gKiBubyBgeyBwb29sIH1gIHNob3J0aGFuZCB0aGUgd2F5IGBQb3N0Z3Jlc1N0b3JlYCBoYXMgb25lLiBXb3JzZSwgdGhlXG4gKiBjb25zdHJ1Y3RvciBzeW5jaHJvbm91c2x5IGtpY2tzIG9mZiBhIGBjYWNoZVdhcm11cFByb21pc2VgIElJRkUgdGhhdFxuICogY2FsbHMgYHRoaXMucG9vbC5jb25uZWN0KClgIGJlZm9yZSByZXR1cm5pbmcsIHNvIHdlIGNhbid0IGNsZWFubHlcbiAqIGhhbmQgaXQgYW4gaW5lcnQgY29uZmlnIGFuZCBwYXRjaCB0aGUgcG9vbCBhZnRlcndhcmRzLlxuICpcbiAqIFRoZSB0cmljazogcGFzcyBpbGxlZ2FsLWJ1dC12YWxpZGF0aW9uLXBhc3NpbmcgcGxhY2Vob2xkZXJzIHNvIHRoZVxuICogd2FybXVwJ3MgYG5ldC5jb25uZWN0KClgIHJlamVjdHMgc3luY2hyb25vdXNseSB3aXRoIGBSYW5nZUVycm9yYFxuICogKE5vZGUgdmFsaWRhdGVzIGAwIDw9IHBvcnQgPCA2NTUzNmApLiBUaGUgSUlGRSdzIGBjYXRjaCB7fWAgc3dhbGxvd3NcbiAqIGl0LCBubyBETlMgbG9va3VwIG9yIFRDUCBhdHRlbXB0IGhhcHBlbnMsIGFuZCB3ZSB0aGVuIHN3YXBcbiAqIGBwZ1ZlY3Rvci5wb29sYCB0byB0aGUgbGFrZWJhc2UgcG9vbC4gRXZlcnkgc3Vic2VxdWVudCBgUGdWZWN0b3JgXG4gKiBtZXRob2QgcmVhZHMgYHRoaXMucG9vbGAgYXQgY2FsbCB0aW1lLCBzbyBhbGwgcmVhbCBJL08gZ29lcyB0aHJvdWdoXG4gKiB0aGUgbGFrZWJhc2UgcG9vbCBmcm9tIHRoZW4gb24uIFRoZSBwbGFjZWhvbGRlciBwb29sIGlzIGAuZW5kKClgJ2RcbiAqIHNvIGl0cyBzb2NrZXQgYm9vay1rZWVwaW5nIGlzIHJlbGVhc2VkLlxuICovXG5mdW5jdGlvbiBidWlsZFNoYXJlZFBnVmVjdG9yKHBvb2w6IFBvb2wpOiBQZ1ZlY3RvciB7XG4gIGNvbnN0IHZlY3RvciA9IG5ldyBQZ1ZlY3Rvcih7XG4gICAgaWQ6IGBwZyR7aGFzaC5pZCgpfWAsXG4gICAgLy8gS2VlcCB0aGUgcmVjYWxsIGluZGV4IG91dCBvZiBgcHVibGljYDogb24gYSBMYWtlYmFzZSBkYXRhYmFzZSB0aGUgYXBwXG4gICAgLy8gc2VydmljZSBwcmluY2lwYWwgaGFzIG5vIENSRUFURSBvbiBgcHVibGljYCAoUEcxNSsgbG9ja3MgaXQgZG93biksIHNvIGFcbiAgICAvLyBkZWZhdWx0LXNjaGVtYSBQZ1ZlY3RvciBmYWlscyBvbiBDUkVBVEUgSU5ERVggd2l0aCBcInBlcm1pc3Npb24gZGVuaWVkIGZvclxuICAgIC8vIHNjaGVtYSBwdWJsaWNcIi4gUGdWZWN0b3IgcnVucyBDUkVBVEUgU0NIRU1BIElGIE5PVCBFWElTVFMgZm9yIGEgbmFtZWRcbiAgICAvLyBzY2hlbWEsIHNvIHRoZSBTUCBjcmVhdGVzIGFuZCBvd25zIGBtYXN0cmFfaW5zdGFuY2VgICh0aGUgc2FtZVxuICAgIC8vIGluc3RhbmNlLWxldmVsIHNjaGVtYSB0aGUgd29ya2Zsb3ctc25hcHNob3Qgc3RvcmUgdXNlcykgYW5kIHRoZSBpbmRleFxuICAgIC8vIGxhbmRzIHRoZXJlLiBUYWJsZSBuYW1lcyBkb24ndCBjb2xsaWRlIHdpdGggdGhlIHN0b3JhZ2UgdGFibGVzLlxuICAgIHNjaGVtYU5hbWU6IFwibWFzdHJhX2luc3RhbmNlXCIsXG4gICAgaG9zdDogXCItMVwiLFxuICAgIHBvcnQ6IC0xLFxuICAgIGRhdGFiYXNlOiBcIl9cIixcbiAgICB1c2VyOiBcIl9cIixcbiAgICBwYXNzd29yZDogXCJfXCIsXG4gIH0pO1xuICBjb25zdCBwbGFjZWhvbGRlciA9IHZlY3Rvci5wb29sO1xuICB2ZWN0b3IucG9vbCA9IHBvb2w7XG4gIHZvaWQgcGxhY2Vob2xkZXIuZW5kKCkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcbiAgcmV0dXJuIHZlY3Rvcjtcbn1cblxuLyoqIFBlci1hZ2VudCBkZWRpY2F0ZWQgYFBnVmVjdG9yYCAocmFyZTsgb3B0LWluIHZpYSBvYmplY3Qgb3ZlcnJpZGUpLiAqL1xuZnVuY3Rpb24gYnVpbGRQZ1ZlY3RvcihzZXR0aW5nOiBNYXN0cmFNZW1vcnlDb25maWdPdmVycmlkZSk6IFBnVmVjdG9yIHtcbiAgcmV0dXJuIG5ldyBQZ1ZlY3RvcihcbiAgICB3aXRoSWQoc2V0dGluZywgYHBnLXZlY3Rvcl9fJHtoYXNoLmlkKCl9YCkgYXMgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBQZ1ZlY3Rvcj5bMF0sXG4gICk7XG59XG5cbi8qKiBUcnVlIHdoZW4gdGhpcyBzZXR0aW5nIHJlcXVpcmVzIHRoZSBzaGFyZWQgTGFrZWJhc2UgcG9vbC4gKi9cbmZ1bmN0aW9uIHNldHRpbmdOZWVkc1NoYXJlZFBvb2woc2V0dGluZzogU3RvcmFnZVNldHRpbmcgfCBNZW1vcnlTZXR0aW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gIHJldHVybiBzZXR0aW5nID09PSB0cnVlO1xufVxuXG4vKiogV2FsayB0aGUgdGhyZWUgc2hhcGVzIG9mIGBjb25maWcuYWdlbnRzYCBpbnRvIGEgZmxhdCBsaXN0LiAqL1xuZnVuY3Rpb24gY29sbGVjdEFnZW50RGVmaW5pdGlvbnMoY29uZmlnOiBNYXN0cmFQbHVnaW5Db25maWcpOiBNYXN0cmFBZ2VudERlZmluaXRpb25bXSB7XG4gIGNvbnN0IGFnZW50cyA9IGNvbmZpZy5hZ2VudHM7XG4gIGlmICghYWdlbnRzKSByZXR1cm4gW107XG4gIGlmIChBcnJheS5pc0FycmF5KGFnZW50cykpIHJldHVybiBhZ2VudHM7XG4gIGlmICh0eXBlb2YgKGFnZW50cyBhcyBNYXN0cmFBZ2VudERlZmluaXRpb24pLmluc3RydWN0aW9ucyA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBbYWdlbnRzIGFzIE1hc3RyYUFnZW50RGVmaW5pdGlvbl07XG4gIH1cbiAgcmV0dXJuIE9iamVjdC52YWx1ZXMoYWdlbnRzIGFzIFJlY29yZDxzdHJpbmcsIE1hc3RyYUFnZW50RGVmaW5pdGlvbj4pO1xufVxuXG4vKiogRmlsbCBpbiBhIGRlZmF1bHQgYGlkYCB3aGVuIHRoZSBjYWxsZXIgZGlkbid0IHN1cHBseSBvbmUuICovXG5mdW5jdGlvbiB3aXRoSWQ8VCBleHRlbmRzIHsgaWQ/OiBzdHJpbmcgfT4odmFsdWU6IFQsIGZhbGxiYWNrOiBzdHJpbmcpOiBUIHtcbiAgcmV0dXJuIHZhbHVlLmlkID8gdmFsdWUgOiB7IC4uLnZhbHVlLCBpZDogZmFsbGJhY2sgfTtcbn1cbiJdfQ==
275
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lbW9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFFSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckQsT0FBTyxFQUFFLElBQUksRUFBbUIsTUFBTSxJQUFJLENBQUM7QUFJM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7QUFFM0M7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsMEJBQTBCLENBQUMsUUFBb0I7SUFDbkUsOERBQThEO0lBQzlELGdFQUFnRTtJQUNoRSxvRUFBb0U7SUFDcEUsbUNBQW1DO0lBQ25DLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLHdCQUF3QixFQUFFLENBQUMsQ0FBQztJQUNqRSxPQUFPLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBRyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBTUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLE1BQTBCO0lBQ3RELElBQUksc0JBQXNCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ3hELElBQUksc0JBQXNCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ3ZELE1BQU0sSUFBSSxHQUFHLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ2pHLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsTUFBMEIsRUFDMUIsb0JBQTBCO0lBRTFCLE9BQU8sSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFLG9CQUFvQixDQUFDLENBQUM7QUFDekQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUlMO0lBQ0E7SUFKWCxZQUFZLENBQXVCO0lBRTNDLFlBQ21CLE1BQTBCLEVBQzFCLG9CQUEwQjtRQUQxQixXQUFNLEdBQU4sTUFBTSxDQUFvQjtRQUMxQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQU07SUFDMUMsQ0FBQztJQUVKOzs7Ozs7Ozs7O09BVUc7SUFDSCxlQUFlO1FBQ2IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUMvQixJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sSUFBSSxhQUFhLENBQ3RCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsd0JBQXdCLENBQW1ELENBQzVGLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxJQUFJLGFBQWEsQ0FBQztZQUN2QixFQUFFLEVBQUUsd0JBQXdCO1lBQzVCLFVBQVUsRUFBRSxpQkFBaUI7WUFDN0IsSUFBSSxFQUFFLElBQUksQ0FBQyxvQkFBb0I7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsUUFBUSxDQUFDLE9BQWUsRUFBRSxHQUEwQjtRQUNsRCxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzFELE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFFdkQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDM0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDN0MsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUU7WUFDL0IsT0FBTztZQUNQLE9BQU8sRUFBRSxPQUFPLEtBQUssU0FBUztZQUM5QixNQUFNLEVBQUUsTUFBTSxLQUFLLFNBQVM7WUFDNUIsVUFBVSxFQUNSLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxhQUFhLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVE7U0FDNUYsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLE1BQU0sQ0FBQztZQUNoQixHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDL0IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbEQsT0FBTyxFQUFFO2dCQUNQLFlBQVksRUFBRSxFQUFFO2dCQUNoQixHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbkUscURBQXFEO2dCQUNyRCwyREFBMkQ7Z0JBQzNELDREQUE0RDtnQkFDNUQsNERBQTREO2dCQUM1RCxnRUFBZ0U7Z0JBQ2hFLDBEQUEwRDtnQkFDMUQsR0FBRyxDQUFDLE9BQU87b0JBQ1QsQ0FBQyxDQUFDO3dCQUNFLGFBQWEsRUFBRTs0QkFDYixLQUFLLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7NEJBQ2hDLFlBQVksRUFBRSxrQkFBa0I7eUJBQ2pDO3FCQUNGO29CQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDUjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxZQUFZLENBQUMsT0FBZSxFQUFFLE9BQXVCO1FBQzNELElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDL0IsSUFBSSxPQUFPLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNqQyxPQUFPLElBQUksYUFBYSxDQUFDO2dCQUN2QixFQUFFLEVBQUUsaUJBQWlCLE9BQU8sRUFBRTtnQkFDOUIsVUFBVSxFQUFFLHNCQUFzQixDQUFDLE9BQU8sQ0FBQztnQkFDM0MsSUFBSSxFQUFFLElBQUksQ0FBQyxvQkFBb0I7YUFDaEMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELDhEQUE4RDtRQUM5RCxnRUFBZ0U7UUFDaEUsMkRBQTJEO1FBQzNELE9BQU8sSUFBSSxhQUFhLENBQ3RCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLE9BQU8sRUFBRSxDQUFtRCxDQUM5RixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ssV0FBVyxDQUFDLE9BQXNCO1FBQ3hDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDL0IsSUFBSSxPQUFPLE9BQU8sS0FBSyxTQUFTO1lBQUUsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDaEUsT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxTQUFTLG1CQUFtQixDQUFDLElBQVU7SUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxRQUFRLENBQUM7UUFDMUIsRUFBRSxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ3BCLHdFQUF3RTtRQUN4RSwwRUFBMEU7UUFDMUUsNEVBQTRFO1FBQzVFLHdFQUF3RTtRQUN4RSxpRUFBaUU7UUFDakUsd0VBQXdFO1FBQ3hFLGtFQUFrRTtRQUNsRSxVQUFVLEVBQUUsaUJBQWlCO1FBQzdCLElBQUksRUFBRSxJQUFJO1FBQ1YsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNSLFFBQVEsRUFBRSxHQUFHO1FBQ2IsSUFBSSxFQUFFLEdBQUc7UUFDVCxRQUFRLEVBQUUsR0FBRztLQUNkLENBQUMsQ0FBQztJQUNILE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDaEMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsS0FBSyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCx5RUFBeUU7QUFDekUsU0FBUyxhQUFhLENBQUMsT0FBbUM7SUFDeEQsT0FBTyxJQUFJLFFBQVEsQ0FDakIsTUFBTSxDQUFDLE9BQU8sRUFBRSxjQUFjLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUE4QyxDQUN4RixDQUFDO0FBQ0osQ0FBQztBQUVELGdFQUFnRTtBQUNoRSxTQUFTLHNCQUFzQixDQUFDLE9BQW1EO0lBQ2pGLE9BQU8sT0FBTyxLQUFLLElBQUksQ0FBQztBQUMxQixDQUFDO0FBRUQsaUVBQWlFO0FBQ2pFLFNBQVMsdUJBQXVCLENBQUMsTUFBMEI7SUFDekQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUM3QixJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUN6QyxJQUFJLE9BQVEsTUFBZ0MsQ0FBQyxZQUFZLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdkUsT0FBTyxDQUFDLE1BQStCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQStDLENBQUMsQ0FBQztBQUN4RSxDQUFDO0FBRUQsZ0VBQWdFO0FBQ2hFLFNBQVMsTUFBTSxDQUE0QixLQUFRLEVBQUUsUUFBZ0I7SUFDbkUsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDO0FBQ3ZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIExha2ViYXNlLWJhY2tlZCBNYXN0cmEgbWVtb3J5IHdpcmluZy5cbiAqXG4gKiBQcm92aWRlcyBhIHtAbGluayBNZW1vcnlCdWlsZGVyfSB0aGF0IG1pbnRzIG9uZSBgTWVtb3J5YCBwZXIgYWdlbnRcbiAqIHdpdGggdHdvIGluZGVwZW5kZW50IGtub2JzOlxuICpcbiAqIC0gKipTdG9yYWdlKiogKHRocmVhZHMgLyBtZXNzYWdlcyB2aWEgYFBvc3RncmVzU3RvcmVgKTogZGVmYXVsdHMgdG9cbiAqICAgKipwZXItYWdlbnQqKiBuYW1lc3BhY2luZyB2aWEge0BsaW5rIGFnZW50U3RvcmFnZVNjaGVtYU5hbWV9IHNvXG4gKiAgIGNvbnZlcnNhdGlvbiBoaXN0b3J5IHN0YXlzIGlzb2xhdGVkIGJldHdlZW4gYWdlbnRzIGluIHRoZSBzYW1lXG4gKiAgIGRhdGFiYXNlLiBgUG9zdGdyZXNTdG9yZWAgYXV0by1jcmVhdGVzIHRoZSBzY2hlbWEgd2l0aFxuICogICBgQ1JFQVRFIFNDSEVNQSBJRiBOT1QgRVhJU1RTYCBvbiBpbml0LlxuICogLSAqKk1lbW9yeSoqIChzZW1hbnRpYyByZWNhbGwgdmlhIGBQZ1ZlY3RvcmApOiBkZWZhdWx0cyB0byBhIHNpbmdsZVxuICogICAqKnNoYXJlZCoqIGluc3RhbmNlIGFjcm9zcyBldmVyeSBhZ2VudC4gQ3Jvc3MtYWdlbnQgcmVjYWxsIG9uIG9uZVxuICogICBpbmRleCBpcyBhbG1vc3QgYWx3YXlzIHdoYXQgdXNlcnMgd2FudDsgb3B0IGludG8gcGVyLWFnZW50IHJlY2FsbFxuICogICBieSBwYXNzaW5nIGEge0BsaW5rIE1hc3RyYU1lbW9yeUNvbmZpZ092ZXJyaWRlfSBvbiB0aGUgYWdlbnQuXG4gKlxuICogQWRkaXRpb25hbGx5LCB7QGxpbmsgTWVtb3J5QnVpbGRlci5pbnN0YW5jZVN0b3JhZ2V9IHJldHVybnMgYVxuICogKipNYXN0cmEtaW5zdGFuY2UtbGV2ZWwqKiBgUG9zdGdyZXNTdG9yZWAgKHNjaGVtYSBgbWFzdHJhX2luc3RhbmNlYClcbiAqIHVzZWQgZm9yIHdvcmtmbG93IHNuYXBzaG90cyAtIHRoZSBwZXJzaXN0ZW5jZSBsYXllclxuICogYGFnZW50LnJlc3VtZVN0cmVhbSgpYCByZWFkcyBmcm9tIHdoZW4gd2FraW5nIGEgc3VzcGVuZGVkXG4gKiBgcmVxdWlyZUFwcHJvdmFsYCB0b29sIGNhbGwuIFBlci1hZ2VudCBzdG9yZXMgYXJlIG5vdCBlbm91Z2ggZm9yXG4gKiB0aGlzOiB3b3JrZmxvdyBydW5zIGFyZSBzY29wZWQgdG8gdGhlIE1hc3RyYSBpbnN0YW5jZSwgbm90IGFuXG4gKiBpbmRpdmlkdWFsIGFnZW50J3MgYE1lbW9yeWAuXG4gKlxuICogUGx1Z2luLWxldmVsIGBjb25maWcuc3RvcmFnZWAgLyBgY29uZmlnLm1lbW9yeWAgYWN0IGFzIHRoZSBiYXNlbGluZVxuICogKGF1dG8tZGVmYXVsdGVkIHRvIGB0cnVlYCBpbiBgcGx1Z2luLnRzYCB3aGVuIHRoZSBgbGFrZWJhc2VgIHBsdWdpblxuICogaXMgcmVnaXN0ZXJlZCk7IHBlci1hZ2VudCBzZXR0aW5ncyBjYXNjYWRlIG9uIHRvcCBvZiB0aGF0LlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBnZXRVc2VybmFtZVdpdGhBcGlMb29rdXAgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgeyBoYXNoLCBsb2cgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgZmFzdGVtYmVkIH0gZnJvbSBcIkBtYXN0cmEvZmFzdGVtYmVkXCI7XG5pbXBvcnQgeyBNZW1vcnkgfSBmcm9tIFwiQG1hc3RyYS9tZW1vcnlcIjtcbmltcG9ydCB7IFBnVmVjdG9yLCBQb3N0Z3Jlc1N0b3JlIH0gZnJvbSBcIkBtYXN0cmEvcGdcIjtcbmltcG9ydCB7IFBvb2wsIHR5cGUgUG9vbENvbmZpZyB9IGZyb20gXCJwZ1wiO1xuXG5pbXBvcnQgdHlwZSB7IE1hc3RyYUFnZW50RGVmaW5pdGlvbiwgTWFzdHJhTWVtb3J5Q29uZmlnT3ZlcnJpZGUgfSBmcm9tIFwiLi9hZ2VudHMudHNcIjtcbmltcG9ydCB0eXBlIHsgTWFzdHJhUGx1Z2luQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlnLnRzXCI7XG5pbXBvcnQgeyBhZ2VudFN0b3JhZ2VTY2hlbWFOYW1lIH0gZnJvbSBcIi4vc3RvcmFnZS1zY2hlbWEudHNcIjtcbmltcG9ydCB7IHN1bW1hcnlNb2RlbCwgVElUTEVfSU5TVFJVQ1RJT05TIH0gZnJvbSBcIi4vc3VtbWFyaXplLnRzXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJtYXN0cmEvbWVtb3J5XCIpO1xuXG4vKipcbiAqIEJ1aWxkIGEgZGVkaWNhdGVkICoqc2VydmljZS1wcmluY2lwYWwqKiBMYWtlYmFzZSBwb29sIGZvciBNYXN0cmFcbiAqIG1lbW9yeSBmcm9tIHRoZSBsYWtlYmFzZSBwbHVnaW4ncyByZXNvbHZlZCBTUCBwZyBjb25maWcuXG4gKlxuICogVGhlIHBsdWdpbidzIGBleHBvcnRzKCkucG9vbGAgaXMgYSBgUm91dGluZ1Bvb2xgIHRoYXQgc3dpdGNoZXMgdG9cbiAqIHRoZSBwZXItdXNlciAoT0JPKSBwb29sIHdoZW5ldmVyIGEgcXVlcnkgcnVucyBpbnNpZGUgYW4gYGFzVXNlcmBcbiAqIHNjb3BlIC0gZXhhY3RseSB0aGUgY29udGV4dCB0aGUgbWFzdHJhIHBsdWdpbiBlc3RhYmxpc2hlcyBhcm91bmRcbiAqIGV2ZXJ5IGNoYXQgdHVybi4gTWVtb3J5ICh0aHJlYWRzIC8gbWVzc2FnZXMgKyBzZW1hbnRpYyByZWNhbGwpIG11c3RcbiAqIGluc3RlYWQgYWx3YXlzIGFjdCBhcyB0aGUgYXBwIHNlcnZpY2UgcHJpbmNpcGFsOiBpdCBvd25zIHRoZVxuICogYXV0by1jcmVhdGVkIGBtYXN0cmFfKmAgc2NoZW1hcyAoYSBwZXItdXNlciByb2xlIHVzdWFsbHkgY2FuJ3RcbiAqIGBDUkVBVEUgU0NIRU1BYCkgYW5kIGlzIHNoYXJlZCBhY3Jvc3MgdXNlcnMsIHNvIGl0IGNhbm5vdCBpbmhlcml0IGFcbiAqIHJlcXVlc3QncyBPQk8gaWRlbnRpdHkuXG4gKlxuICogYHBnQ29uZmlnYCBtdXN0IGJlIHRoZSBwbHVnaW4ncyBgZXhwb3J0cygpLmdldFBnQ29uZmlnKClgIGV2YWx1YXRlZFxuICogKipvdXRzaWRlKiogYW55IGBhc1VzZXJgIHNjb3BlIChpLmUuIGR1cmluZyBzZXR1cCksIHNvIGl0IGNhcnJpZXNcbiAqIHRoZSBTUCBjb25uZWN0aW9uIHRhcmdldCwgT0F1dGggdG9rZW4tcmVmcmVzaCBgcGFzc3dvcmRgIGNhbGxiYWNrLFxuICogYW5kIGFueSBgbGFrZWJhc2UoeyBwb29sIH0pYCB0dW5pbmcgb3ZlcnJpZGVzIC0gYWxsIG9mIHdoaWNoIHRoaXNcbiAqIHBvb2wgaW5oZXJpdHMuIFNlZSB0aGUgY2FsbCBzaXRlIGluIGBwbHVnaW4udHNgLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlU2VydmljZVByaW5jaXBhbFBvb2wocGdDb25maWc6IFBvb2xDb25maWcpOiBQcm9taXNlPFBvb2w+IHtcbiAgLy8gYGdldFBnQ29uZmlnKClgIHJlc29sdmVzIHRoZSBTUCB1c2VybmFtZSBzeW5jaHJvbm91c2x5IGZyb21cbiAgLy8gYFBHVVNFUmAgLyBgREFUQUJSSUNLU19DTElFTlRfSURgOyBmYWxsIGJhY2sgdG8gdGhlIGFzeW5jIEFQSVxuICAvLyBsb29rdXAgKGUuZy4gbG9jYWwgZGV2IGF1dGhlbnRpY2F0aW5nIHZpYSBQQVQpIHNvIHRoZSBwb29sIGFsd2F5c1xuICAvLyBoYXMgYW4gaWRlbnRpdHkgdG8gY29ubmVjdCB3aXRoLlxuICBjb25zdCB1c2VyID0gcGdDb25maWcudXNlciA/PyAoYXdhaXQgZ2V0VXNlcm5hbWVXaXRoQXBpTG9va3VwKCkpO1xuICByZXR1cm4gbmV3IFBvb2woeyAuLi5wZ0NvbmZpZywgdXNlciB9KTtcbn1cblxuLyoqIEVmZmVjdGl2ZSBwZXIta25vYiBzZXR0aW5nIGFmdGVyIHRoZSBwbHVnaW4vYWdlbnQgY2FzY2FkZS4gKi9cbnR5cGUgU3RvcmFnZVNldHRpbmcgPSBNYXN0cmFBZ2VudERlZmluaXRpb25bXCJzdG9yYWdlXCJdO1xudHlwZSBNZW1vcnlTZXR0aW5nID0gTWFzdHJhQWdlbnREZWZpbml0aW9uW1wibWVtb3J5XCJdO1xuXG4vKipcbiAqIFRydWUgd2hlbiBhbnkgcGx1Z2luLWxldmVsIG9yIHBlci1hZ2VudCBzZXR0aW5nIGNvdWxkIG5lZWQgdGhlXG4gKiBMYWtlYmFzZSBwb29sLiBVc2VkIGJ5IGBwbHVnaW4udHNgIHRvIGdhdGUgY3JlYXRpb24gb2YgdGhlXG4gKiBzZXJ2aWNlLXByaW5jaXBhbCBwb29sIGFuZCB0aGUge0BsaW5rIE1lbW9yeUJ1aWxkZXJ9IHRoYXQgY29uc3VtZXNcbiAqIGl0OyB3aGVuIGZhbHNlIG5laXRoZXIgaXMgYnVpbHQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuZWVkc0xha2ViYXNlKGNvbmZpZzogTWFzdHJhUGx1Z2luQ29uZmlnKTogYm9vbGVhbiB7XG4gIGlmIChzZXR0aW5nTmVlZHNTaGFyZWRQb29sKGNvbmZpZy5zdG9yYWdlKSkgcmV0dXJuIHRydWU7XG4gIGlmIChzZXR0aW5nTmVlZHNTaGFyZWRQb29sKGNvbmZpZy5tZW1vcnkpKSByZXR1cm4gdHJ1ZTtcbiAgY29uc3QgZGVmcyA9IGNvbGxlY3RBZ2VudERlZmluaXRpb25zKGNvbmZpZyk7XG4gIHJldHVybiBkZWZzLnNvbWUoKGQpID0+IHNldHRpbmdOZWVkc1NoYXJlZFBvb2woZC5zdG9yYWdlKSB8fCBzZXR0aW5nTmVlZHNTaGFyZWRQb29sKGQubWVtb3J5KSk7XG59XG5cbi8qKlxuICogQ29uc3RydWN0IGEgcGVyLWFnZW50IHtAbGluayBNZW1vcnl9IGZhY3RvcnkgYm91bmQgdG8gdGhlIHN1cHBsaWVkXG4gKiBzZXJ2aWNlLXByaW5jaXBhbCBwb29sIChzZWUge0BsaW5rIGNyZWF0ZVNlcnZpY2VQcmluY2lwYWxQb29sfSkuXG4gKiBDYWNoZXMgdGhlIHNoYXJlZCBgUGdWZWN0b3JgIHNpbmdsZXRvbiAoYnVpbHQgb24gZmlyc3QgbmVlZCkgc28gZWFjaFxuICogYWdlbnQgYnVpbGQgaXMgTygxKSBhZnRlciB0aGUgZmlyc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNZW1vcnlCdWlsZGVyKFxuICBjb25maWc6IE1hc3RyYVBsdWdpbkNvbmZpZyxcbiAgc2VydmljZVByaW5jaXBhbFBvb2w6IFBvb2wsXG4pOiBNZW1vcnlCdWlsZGVyIHtcbiAgcmV0dXJuIG5ldyBNZW1vcnlCdWlsZGVyKGNvbmZpZywgc2VydmljZVByaW5jaXBhbFBvb2wpO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBvbmUgYE1lbW9yeWAgcGVyIGFnZW50IGFnYWluc3QgYSBzaGFyZWQgc2VydmljZS1wcmluY2lwYWxcbiAqIExha2ViYXNlIHBvb2wuIFBlci1pbnN0YW5jZSBzdGF0ZSBrZWVwcyB0aGUgc2hhcmVkIGBQZ1ZlY3RvcmAgYWxpdmVcbiAqIGFjcm9zcyBjYWxscyBzbyByZWdpc3RlcmluZyBOIGFnZW50cyBzdGF5cyBjaGVhcC5cbiAqL1xuZXhwb3J0IGNsYXNzIE1lbW9yeUJ1aWxkZXIge1xuICBwcml2YXRlIHNoYXJlZFZlY3RvcjogUGdWZWN0b3IgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IE1hc3RyYVBsdWdpbkNvbmZpZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2VQcmluY2lwYWxQb29sOiBQb29sLFxuICApIHt9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHRoZSBNYXN0cmEtaW5zdGFuY2UtbGV2ZWwgc3RvcmFnZSB1c2VkIGZvciB3b3JrZmxvd1xuICAgKiBzbmFwc2hvdHMuIFJldHVybnMgYHVuZGVmaW5lZGAgd2hlbiBwbHVnaW4tbGV2ZWwgYHN0b3JhZ2VgIGlzXG4gICAqIGRpc2FibGVkLCBpbiB3aGljaCBjYXNlIGBhZ2VudC5yZXN1bWVTdHJlYW0oKWAgKGFuZCB0aGVyZWZvcmVcbiAgICogdGhlIGByZXF1aXJlQXBwcm92YWxgIGZsb3cpIHdpbGwgbm90IGJlIGF2YWlsYWJsZS5cbiAgICpcbiAgICogVGhlIHN0b3JlIGxpdmVzIGluIGEgZGVkaWNhdGVkIGBtYXN0cmFfaW5zdGFuY2VgIHNjaGVtYSBzbyBpdFxuICAgKiBuZXZlciBjb2xsaWRlcyB3aXRoIHBlci1hZ2VudCB7QGxpbmsgYWdlbnRTdG9yYWdlU2NoZW1hTmFtZX0gbmFtZXNwYWNlcy5cbiAgICogV29ya2Zsb3cgc25hcHNob3RzIGFyZSBub3QgcGVyLWFnZW50IHN0YXRlOyB0aGV5IGJlbG9uZyB0byB0aGVcbiAgICogYE1hc3RyYWAgaW5zdGFuY2UgdGhhdCBvd25zIHRoZSB3b3JrZmxvdyBleGVjdXRpb24uXG4gICAqL1xuICBpbnN0YW5jZVN0b3JhZ2UoKTogUG9zdGdyZXNTdG9yZSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgc2V0dGluZyA9IHRoaXMuY29uZmlnLnN0b3JhZ2U7XG4gICAgaWYgKCFzZXR0aW5nKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmICh0eXBlb2Ygc2V0dGluZyA9PT0gXCJvYmplY3RcIikge1xuICAgICAgcmV0dXJuIG5ldyBQb3N0Z3Jlc1N0b3JlKFxuICAgICAgICB3aXRoSWQoc2V0dGluZywgXCJtYXN0cmEtc3RvcmVfX2luc3RhbmNlXCIpIGFzIENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgUG9zdGdyZXNTdG9yZT5bMF0sXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFBvc3RncmVzU3RvcmUoe1xuICAgICAgaWQ6IFwibWFzdHJhLXN0b3JlX19pbnN0YW5jZVwiLFxuICAgICAgc2NoZW1hTmFtZTogXCJtYXN0cmFfaW5zdGFuY2VcIixcbiAgICAgIHBvb2w6IHRoaXMuc2VydmljZVByaW5jaXBhbFBvb2wsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBgTWVtb3J5YCBmb3IgYGFnZW50SWRgIGFmdGVyIHRoZSBwbHVnaW4vYWdlbnQgY2FzY2FkZS5cbiAgICogUmV0dXJucyBgdW5kZWZpbmVkYCB3aGVuIHRoZSBhZ2VudCBoYXMgbmVpdGhlciBzdG9yYWdlIG5vciBhXG4gICAqIHZlY3RvciBzdG9yZSBlbmFibGVkIC0gTWFzdHJhIGFjY2VwdHMgYSBtaXNzaW5nIGBtZW1vcnlgIGZpZWxkXG4gICAqIGFuZCB0cmVhdHMgdGhlIGFnZW50IGFzIHN0YXRlbGVzcy5cbiAgICovXG4gIGZvckFnZW50KGFnZW50SWQ6IHN0cmluZywgZGVmOiBNYXN0cmFBZ2VudERlZmluaXRpb24pOiBNZW1vcnkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHN0b3JhZ2VTZXR0aW5nID0gZGVmLnN0b3JhZ2UgPz8gdGhpcy5jb25maWcuc3RvcmFnZTtcbiAgICBjb25zdCBtZW1vcnlTZXR0aW5nID0gZGVmLm1lbW9yeSA/PyB0aGlzLmNvbmZpZy5tZW1vcnk7XG5cbiAgICBjb25zdCBzdG9yYWdlID0gdGhpcy5idWlsZFN0b3JhZ2UoYWdlbnRJZCwgc3RvcmFnZVNldHRpbmcpO1xuICAgIGNvbnN0IHZlY3RvciA9IHRoaXMuYnVpbGRWZWN0b3IobWVtb3J5U2V0dGluZyk7XG4gICAgaWYgKCFzdG9yYWdlICYmICF2ZWN0b3IpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhcImFnZW50OnN0YXRlbGVzc1wiLCB7IGFnZW50SWQgfSk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGxvZ2dlci5kZWJ1ZyhcImFnZW50OmNvbmZpZ3VyZWRcIiwge1xuICAgICAgYWdlbnRJZCxcbiAgICAgIHN0b3JhZ2U6IHN0b3JhZ2UgIT09IHVuZGVmaW5lZCxcbiAgICAgIHZlY3RvcjogdmVjdG9yICE9PSB1bmRlZmluZWQsXG4gICAgICB2ZWN0b3JNb2RlOlxuICAgICAgICB2ZWN0b3IgPT09IHVuZGVmaW5lZCA/IFwib2ZmXCIgOiB0eXBlb2YgbWVtb3J5U2V0dGluZyA9PT0gXCJvYmplY3RcIiA/IFwiZGVkaWNhdGVkXCIgOiBcInNoYXJlZFwiLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBNZW1vcnkoe1xuICAgICAgLi4uKHN0b3JhZ2UgPyB7IHN0b3JhZ2UgfSA6IHt9KSxcbiAgICAgIC4uLih2ZWN0b3IgPyB7IHZlY3RvciwgZW1iZWRkZXI6IGZhc3RlbWJlZCB9IDoge30pLFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBsYXN0TWVzc2FnZXM6IDEwLFxuICAgICAgICAuLi4odmVjdG9yID8geyBzZW1hbnRpY1JlY2FsbDogeyB0b3BLOiAzLCBtZXNzYWdlUmFuZ2U6IDIgfSB9IDoge30pLFxuICAgICAgICAvLyBBdXRvLW5hbWUgZWFjaCB0aHJlYWQgZnJvbSBpdHMgb3BlbmluZyB0dXJuIHNvIHRoZVxuICAgICAgICAvLyBjb252ZXJzYXRpb24gbGlzdCB0aGUgVUkgcmVuZGVycyBzaG93cyBtZWFuaW5nZnVsIHRpdGxlc1xuICAgICAgICAvLyBpbnN0ZWFkIG9mIHJhdyBpZHMuIFRpdGxpbmcgcnVucyBvbiB0aGUgc21hbGwgLyBmYXN0IGNoYXRcbiAgICAgICAgLy8gdGllciAoc2VlIGBzdW1tYXJpemUudHNgKSByYXRoZXIgdGhhbiB0aGUgYWdlbnQncyBwcmltYXJ5XG4gICAgICAgIC8vIG1vZGVsLCBzbyBuYW1pbmcgYSB0aHJlYWQgbmV2ZXIgc3BlbmRzIHRoZSBoZWF2eXdlaWdodCBtb2RlbC5cbiAgICAgICAgLy8gT25seSBtZWFuaW5nZnVsIHdoZW4gc3RvcmFnZSBpcyBvbjsgaGFybWxlc3Mgb3RoZXJ3aXNlLlxuICAgICAgICAuLi4oc3RvcmFnZVxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBnZW5lcmF0ZVRpdGxlOiB7XG4gICAgICAgICAgICAgICAgbW9kZWw6IHN1bW1hcnlNb2RlbCh0aGlzLmNvbmZpZyksXG4gICAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zOiBUSVRMRV9JTlNUUlVDVElPTlMsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFN0b3JhZ2UoYWdlbnRJZDogc3RyaW5nLCBzZXR0aW5nOiBTdG9yYWdlU2V0dGluZyk6IFBvc3RncmVzU3RvcmUgfCB1bmRlZmluZWQge1xuICAgIGlmICghc2V0dGluZykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAodHlwZW9mIHNldHRpbmcgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICByZXR1cm4gbmV3IFBvc3RncmVzU3RvcmUoe1xuICAgICAgICBpZDogYG1hc3RyYS1zdG9yZV9fJHthZ2VudElkfWAsXG4gICAgICAgIHNjaGVtYU5hbWU6IGFnZW50U3RvcmFnZVNjaGVtYU5hbWUoYWdlbnRJZCksXG4gICAgICAgIHBvb2w6IHRoaXMuc2VydmljZVByaW5jaXBhbFBvb2wsXG4gICAgICB9KTtcbiAgICB9XG4gICAgLy8gQ2FzdDogYHdpdGhJZGAgZ3VhcmFudGVlcyBgaWRgIGlzIHNldCwgYnV0IHRoZSBkaXN0cmlidXRpdmVcbiAgICAvLyBPbWl0ICsgYGlkPzogc3RyaW5nYCBzaGFwZSBkb2Vzbid0IHN0cnVjdHVyYWxseSBuYXJyb3cgdG8gdGhlXG4gICAgLy8gZGlzY3JpbWluYXRlZCB1bmlvbiBtZW1iZXJzLiBSdW50aW1lIHNoYXBlIGlzIGlkZW50aWNhbC5cbiAgICByZXR1cm4gbmV3IFBvc3RncmVzU3RvcmUoXG4gICAgICB3aXRoSWQoc2V0dGluZywgYG1hc3RyYS1zdG9yZV9fJHthZ2VudElkfWApIGFzIENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgUG9zdGdyZXNTdG9yZT5bMF0sXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlIHRoZSBhZ2VudCdzIHZlY3RvciBzdG9yZS4gQ2FzY2FkZTpcbiAgICpcbiAgICogLSBmYWxzeTogbm8gdmVjdG9yLlxuICAgKiAtIGBib29sZWFuYCAvIGB1bmRlZmluZWQtaW5oZXJpdGluZy10cnVlYDogcmV0dXJuIHRoZSBzaGFyZWRcbiAgICogICBzaW5nbGV0b24gKGJ1aWx0IGxhemlseSBvbiBmaXJzdCBjYWxsKS4gQWxsIGFnZW50cyB0aGF0XG4gICAqICAgZGVmYXVsdC1lbmFibGUgbWVtb3J5IHdyaXRlIGludG8gYW5kIHJlY2FsbCBmcm9tIG9uZSBpbmRleC5cbiAgICogLSBvYmplY3Q6IGJ1aWxkIGEgZGVkaWNhdGVkIGBQZ1ZlY3RvcmAgZm9yIHRoaXMgYWdlbnQuXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkVmVjdG9yKHNldHRpbmc6IE1lbW9yeVNldHRpbmcpOiBQZ1ZlY3RvciB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFzZXR0aW5nKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmICh0eXBlb2Ygc2V0dGluZyA9PT0gXCJib29sZWFuXCIpIHJldHVybiB0aGlzLmdldFNoYXJlZFZlY3RvcigpO1xuICAgIHJldHVybiBidWlsZFBnVmVjdG9yKHNldHRpbmcpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTaGFyZWRWZWN0b3IoKTogUGdWZWN0b3Ige1xuICAgIGlmICghdGhpcy5zaGFyZWRWZWN0b3IpIHtcbiAgICAgIHRoaXMuc2hhcmVkVmVjdG9yID0gYnVpbGRTaGFyZWRQZ1ZlY3Rvcih0aGlzLnNlcnZpY2VQcmluY2lwYWxQb29sKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc2hhcmVkVmVjdG9yO1xuICB9XG59XG5cbi8qKlxuICogQnVpbGQgdGhlIHNoYXJlZCBgUGdWZWN0b3JgIHRoYXQgYmFja3MgdGhlIGRlZmF1bHRcbiAqIGBkZWYubWVtb3J5ID09PSB0cnVlYCBjYXNlIGFjcm9zcyBldmVyeSBhZ2VudC5cbiAqXG4gKiBgUGdWZWN0b3JgJ3MgY29uc3RydWN0b3IgYWNjZXB0cyBvbmx5IGNvbm5lY3Rpb24tc3R5bGUgY29uZmlnc1xuICogKGBIb3N0Q29uZmlnYCAvIGBDb25uZWN0aW9uU3RyaW5nQ29uZmlnYCAvIGBDbGllbnRDb25maWdgKTsgdGhlcmUgaXNcbiAqIG5vIGB7IHBvb2wgfWAgc2hvcnRoYW5kIHRoZSB3YXkgYFBvc3RncmVzU3RvcmVgIGhhcyBvbmUuIFdvcnNlLCB0aGVcbiAqIGNvbnN0cnVjdG9yIHN5bmNocm9ub3VzbHkga2lja3Mgb2ZmIGEgYGNhY2hlV2FybXVwUHJvbWlzZWAgSUlGRSB0aGF0XG4gKiBjYWxscyBgdGhpcy5wb29sLmNvbm5lY3QoKWAgYmVmb3JlIHJldHVybmluZywgc28gd2UgY2FuJ3QgY2xlYW5seVxuICogaGFuZCBpdCBhbiBpbmVydCBjb25maWcgYW5kIHBhdGNoIHRoZSBwb29sIGFmdGVyd2FyZHMuXG4gKlxuICogVGhlIHRyaWNrOiBwYXNzIGlsbGVnYWwtYnV0LXZhbGlkYXRpb24tcGFzc2luZyBwbGFjZWhvbGRlcnMgc28gdGhlXG4gKiB3YXJtdXAncyBgbmV0LmNvbm5lY3QoKWAgcmVqZWN0cyBzeW5jaHJvbm91c2x5IHdpdGggYFJhbmdlRXJyb3JgXG4gKiAoTm9kZSB2YWxpZGF0ZXMgYDAgPD0gcG9ydCA8IDY1NTM2YCkuIFRoZSBJSUZFJ3MgYGNhdGNoIHt9YCBzd2FsbG93c1xuICogaXQsIG5vIEROUyBsb29rdXAgb3IgVENQIGF0dGVtcHQgaGFwcGVucywgYW5kIHdlIHRoZW4gc3dhcFxuICogYHBnVmVjdG9yLnBvb2xgIHRvIHRoZSBsYWtlYmFzZSBwb29sLiBFdmVyeSBzdWJzZXF1ZW50IGBQZ1ZlY3RvcmBcbiAqIG1ldGhvZCByZWFkcyBgdGhpcy5wb29sYCBhdCBjYWxsIHRpbWUsIHNvIGFsbCByZWFsIEkvTyBnb2VzIHRocm91Z2hcbiAqIHRoZSBsYWtlYmFzZSBwb29sIGZyb20gdGhlbiBvbi4gVGhlIHBsYWNlaG9sZGVyIHBvb2wgaXMgYC5lbmQoKWAnZFxuICogc28gaXRzIHNvY2tldCBib29rLWtlZXBpbmcgaXMgcmVsZWFzZWQuXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkU2hhcmVkUGdWZWN0b3IocG9vbDogUG9vbCk6IFBnVmVjdG9yIHtcbiAgY29uc3QgdmVjdG9yID0gbmV3IFBnVmVjdG9yKHtcbiAgICBpZDogYHBnJHtoYXNoLmlkKCl9YCxcbiAgICAvLyBLZWVwIHRoZSByZWNhbGwgaW5kZXggb3V0IG9mIGBwdWJsaWNgOiBvbiBhIExha2ViYXNlIGRhdGFiYXNlIHRoZSBhcHBcbiAgICAvLyBzZXJ2aWNlIHByaW5jaXBhbCBoYXMgbm8gQ1JFQVRFIG9uIGBwdWJsaWNgIChQRzE1KyBsb2NrcyBpdCBkb3duKSwgc28gYVxuICAgIC8vIGRlZmF1bHQtc2NoZW1hIFBnVmVjdG9yIGZhaWxzIG9uIENSRUFURSBJTkRFWCB3aXRoIFwicGVybWlzc2lvbiBkZW5pZWQgZm9yXG4gICAgLy8gc2NoZW1hIHB1YmxpY1wiLiBQZ1ZlY3RvciBydW5zIENSRUFURSBTQ0hFTUEgSUYgTk9UIEVYSVNUUyBmb3IgYSBuYW1lZFxuICAgIC8vIHNjaGVtYSwgc28gdGhlIFNQIGNyZWF0ZXMgYW5kIG93bnMgYG1hc3RyYV9pbnN0YW5jZWAgKHRoZSBzYW1lXG4gICAgLy8gaW5zdGFuY2UtbGV2ZWwgc2NoZW1hIHRoZSB3b3JrZmxvdy1zbmFwc2hvdCBzdG9yZSB1c2VzKSBhbmQgdGhlIGluZGV4XG4gICAgLy8gbGFuZHMgdGhlcmUuIFRhYmxlIG5hbWVzIGRvbid0IGNvbGxpZGUgd2l0aCB0aGUgc3RvcmFnZSB0YWJsZXMuXG4gICAgc2NoZW1hTmFtZTogXCJtYXN0cmFfaW5zdGFuY2VcIixcbiAgICBob3N0OiBcIi0xXCIsXG4gICAgcG9ydDogLTEsXG4gICAgZGF0YWJhc2U6IFwiX1wiLFxuICAgIHVzZXI6IFwiX1wiLFxuICAgIHBhc3N3b3JkOiBcIl9cIixcbiAgfSk7XG4gIGNvbnN0IHBsYWNlaG9sZGVyID0gdmVjdG9yLnBvb2w7XG4gIHZlY3Rvci5wb29sID0gcG9vbDtcbiAgdm9pZCBwbGFjZWhvbGRlci5lbmQoKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xuICByZXR1cm4gdmVjdG9yO1xufVxuXG4vKiogUGVyLWFnZW50IGRlZGljYXRlZCBgUGdWZWN0b3JgIChyYXJlOyBvcHQtaW4gdmlhIG9iamVjdCBvdmVycmlkZSkuICovXG5mdW5jdGlvbiBidWlsZFBnVmVjdG9yKHNldHRpbmc6IE1hc3RyYU1lbW9yeUNvbmZpZ092ZXJyaWRlKTogUGdWZWN0b3Ige1xuICByZXR1cm4gbmV3IFBnVmVjdG9yKFxuICAgIHdpdGhJZChzZXR0aW5nLCBgcGctdmVjdG9yX18ke2hhc2guaWQoKX1gKSBhcyBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIFBnVmVjdG9yPlswXSxcbiAgKTtcbn1cblxuLyoqIFRydWUgd2hlbiB0aGlzIHNldHRpbmcgcmVxdWlyZXMgdGhlIHNoYXJlZCBMYWtlYmFzZSBwb29sLiAqL1xuZnVuY3Rpb24gc2V0dGluZ05lZWRzU2hhcmVkUG9vbChzZXR0aW5nOiBTdG9yYWdlU2V0dGluZyB8IE1lbW9yeVNldHRpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgcmV0dXJuIHNldHRpbmcgPT09IHRydWU7XG59XG5cbi8qKiBXYWxrIHRoZSB0aHJlZSBzaGFwZXMgb2YgYGNvbmZpZy5hZ2VudHNgIGludG8gYSBmbGF0IGxpc3QuICovXG5mdW5jdGlvbiBjb2xsZWN0QWdlbnREZWZpbml0aW9ucyhjb25maWc6IE1hc3RyYVBsdWdpbkNvbmZpZyk6IE1hc3RyYUFnZW50RGVmaW5pdGlvbltdIHtcbiAgY29uc3QgYWdlbnRzID0gY29uZmlnLmFnZW50cztcbiAgaWYgKCFhZ2VudHMpIHJldHVybiBbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYWdlbnRzKSkgcmV0dXJuIGFnZW50cztcbiAgaWYgKHR5cGVvZiAoYWdlbnRzIGFzIE1hc3RyYUFnZW50RGVmaW5pdGlvbikuaW5zdHJ1Y3Rpb25zID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIFthZ2VudHMgYXMgTWFzdHJhQWdlbnREZWZpbml0aW9uXTtcbiAgfVxuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhhZ2VudHMgYXMgUmVjb3JkPHN0cmluZywgTWFzdHJhQWdlbnREZWZpbml0aW9uPik7XG59XG5cbi8qKiBGaWxsIGluIGEgZGVmYXVsdCBgaWRgIHdoZW4gdGhlIGNhbGxlciBkaWRuJ3Qgc3VwcGx5IG9uZS4gKi9cbmZ1bmN0aW9uIHdpdGhJZDxUIGV4dGVuZHMgeyBpZD86IHN0cmluZyB9Pih2YWx1ZTogVCwgZmFsbGJhY2s6IHN0cmluZyk6IFQge1xuICByZXR1cm4gdmFsdWUuaWQgPyB2YWx1ZSA6IHsgLi4udmFsdWUsIGlkOiBmYWxsYmFjayB9O1xufVxuIl19
package/lib/src/mlflow.js CHANGED
@@ -114,4 +114,4 @@ export async function logFeedback(client, params) {
114
114
  }
115
115
  return undefined;
116
116
  }
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWxmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21sZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUdILE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTdFLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7QUFLM0Msa0ZBQWtGO0FBQ2xGLE1BQU0sZUFBZSxHQUFHLENBQUMsT0FBZSxFQUFVLEVBQUUsQ0FDbEQsMEJBQTBCLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7QUFFdEUsOEVBQThFO0FBQzlFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0FBQzVCLDhFQUE4RTtBQUM5RSxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQztBQUVsQzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxhQUFhO0lBQzNCLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxJQUFJLEVBQUU7UUFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRSxJQUFJLEVBQUUsQ0FDdkQsQ0FBQztJQUNGLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFLElBQUksRUFBRSxDQUN2RixDQUFDO0lBQ0YsT0FBTyxXQUFXLElBQUksYUFBYSxDQUFDO0FBQ3RDLENBQUM7QUFFRDs7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dkIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNO1lBQ2xCLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDLEdBQUcsQ0FBQztTQUNsQyxDQUFDLENBQUM7UUFDSCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTUxmbG93IHVzZXItZmVlZGJhY2sgbG9nZ2luZzogZGV0ZWN0IHdoZXRoZXIgTUxmbG93IHRyYWNpbmcgaXMgd2lyZWRcbiAqIGZvciB0aGlzIGRlcGxveW1lbnQsIGFuZCBsb2cgYSB0aHVtYnMgLyBjb21tZW50IGFzIGEgdHJhY2VcbiAqICphc3Nlc3NtZW50KiB2aWEgdGhlIERhdGFicmlja3MgTUxmbG93IFJFU1QgQVBJLlxuICpcbiAqIEZlZWRiYWNrIGF0dGFjaGVzIHRvIGEgdHJhY2UsIGFuZCB0aGUgcGx1Z2luJ3Mgc3BhbnMgcmVhY2ggTUxmbG93XG4gKiB0aHJvdWdoIHRoZSBzYW1lIE9UZWwgcGlwZWxpbmUgYXMgZXZlcnkgb3RoZXIgQXBwS2l0IHNwYW4gKHNlZVxuICogYG9ic2VydmFiaWxpdHkudHNgKS4gTUxmbG93IGRlcml2ZXMgaXRzIHRyYWNlIGlkIGZyb20gdGhlIE9wZW5UZWxlbWV0cnlcbiAqIHRyYWNlIGlkIChgdHItPGhleChvdGVsVHJhY2VJZCk+YCksIHNvIHRoZSBzZXJ2ZXIgc3RhbXBzIHRoZSBhY3RpdmVcbiAqIHRyYWNlIGlkIG9uIGVhY2ggdHVybidzIHJlc3BvbnNlIGFuZCB0aGUgY2xpZW50IHNlbmRzIGl0IGJhY2sgaGVyZS5cbiAqXG4gKiBUaGVyZSBpcyBubyBNTGZsb3cgSlMgU0RLLCBzbyB0aGlzIHBvc3RzIHRvIHRoZSBhc3Nlc3NtZW50cyBSRVNUXG4gKiBlbmRwb2ludCBkaXJlY3RseSB1c2luZyB0aGUgT0JPLXNjb3BlZCB3b3Jrc3BhY2UgY2xpZW50ICh0aGUgZmVlZGJhY2tcbiAqIGlzIHRodXMgYXR0cmlidXRlZCB0byB0aGUgc2lnbmVkLWluIHVzZXIpLiBUcmFjZSBleHBvcnQgaXNcbiAqIGFzeW5jaHJvbm91cywgc28gdGhlIGp1c3QtZmluaXNoZWQgdHJhY2UgbWF5IG5vdCBleGlzdCBpbiBNTGZsb3cgeWV0XG4gKiB3aGVuIHRoZSB1c2VyIHJlYWN0czsgdGhlIGxvZyBjYWxsIHJldHJpZXMgYnJpZWZseSBvbiBcIm5vdCBmb3VuZFwiXG4gKiBiZWZvcmUgZ2l2aW5nIHVwIHNvZnRseS5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgYXBwa2l0IH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0XCI7XG5pbXBvcnQgeyBhc3luYywgZXJyb3IsIGxvZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBmZWVkYmFjayB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1tYXN0cmFcIjtcbmltcG9ydCB7IGRhdGFicmlja3NGZXRjaCwgcmVhZFJlc3BvbnNlSnNvbiwgcmVhZFJlc3BvbnNlVGV4dCB9IGZyb20gXCIuL3Jlc3RcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcIm1hc3RyYS9tbGZsb3dcIik7XG5cbi8qKiBXb3Jrc3BhY2UgY2xpZW50IGNhcnJpZWQgb24gYW4gQXBwS2l0IGV4ZWN1dGlvbiBjb250ZXh0LiAqL1xudHlwZSBXb3Jrc3BhY2VDbGllbnQgPSBhcHBraXQuV29ya3NwYWNlQ2xpZW50TGlrZTtcblxuLyoqIEFzc2Vzc21lbnRzIFJFU1QgcGF0aCBmb3IgYSB0cmFjZS4gYDMuMGAgaXMgdGhlIGN1cnJlbnQgTUxmbG93IEFQSSB2ZXJzaW9uLiAqL1xuY29uc3QgYXNzZXNzbWVudHNQYXRoID0gKHRyYWNlSWQ6IHN0cmluZyk6IHN0cmluZyA9PlxuICBgL2FwaS8zLjAvbWxmbG93L3RyYWNlcy8ke2VuY29kZVVSSUNvbXBvbmVudCh0cmFjZUlkKX0vYXNzZXNzbWVudHNgO1xuXG4vKiogTnVtYmVyIG9mIHRpbWVzIHRvIHJldHJ5IGEgXCJ0cmFjZSBub3QgZm91bmRcIiByZXNwb25zZSBiZWZvcmUgZ2l2aW5nIHVwLiAqL1xuY29uc3QgTk9UX0ZPVU5EX1JFVFJJRVMgPSAzO1xuLyoqIEJhc2UgYmFja29mZiBiZXR3ZWVuIFwidHJhY2Ugbm90IGZvdW5kXCIgcmV0cmllcywgaW4gbXMgKGdyb3dzIGxpbmVhcmx5KS4gKi9cbmNvbnN0IE5PVF9GT1VORF9CQUNLT0ZGX01TID0gMTIwMDtcblxuLyoqXG4gKiBXaGV0aGVyIE1MZmxvdyBmZWVkYmFjayBsb2dnaW5nIGlzIGF2YWlsYWJsZSBmb3IgdGhpcyBkZXBsb3ltZW50LlxuICpcbiAqIEVuYWJsZWQgd2hlbiBhbiBPVExQIGV4cG9ydGVyIGVuZHBvaW50IGlzIGNvbmZpZ3VyZWQgKHRyYWNlcyBhcmVcbiAqIGFjdHVhbGx5IHNoaXBwZWQgc29tZXdoZXJlKSBBTkQgYW4gTUxmbG93IGV4cGVyaW1lbnQgaXMgbmFtZWQgLSB0aGVcbiAqIHR3byBzaWduYWxzIHRoYXQgdGhlIE9UTFAgYmFja2VuZCBpcyBNTGZsb3cgYW5kIHRyYWNlcyB3aWxsXG4gKiBtYXRlcmlhbGl6ZSB0aGVyZS4gQm90aCBhcmUgc3RhbmRhcmQgZW52IHZhcnMsIHNvIG5vIHBsdWdpbiBjb25maWcgaXNcbiAqIHJlcXVpcmVkOyBhIGRlcGxveW1lbnQgb3B0cyBpbiBzaW1wbHkgYnkgd2lyaW5nIE1MZmxvdyB0cmFjaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWxmbG93RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgY29uc3QgaGFzRXhwb3J0ZXIgPSBCb29sZWFuKFxuICAgIHByb2Nlc3MuZW52Lk9URUxfRVhQT1JURVJfT1RMUF9FTkRQT0lOVD8udHJpbSgpIHx8XG4gICAgcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX1RSQUNFU19FTkRQT0lOVD8udHJpbSgpLFxuICApO1xuICBjb25zdCBoYXNFeHBlcmltZW50ID0gQm9vbGVhbihcbiAgICBwcm9jZXNzLmVudi5NTEZMT1dfRVhQRVJJTUVOVF9JRD8udHJpbSgpIHx8IHByb2Nlc3MuZW52Lk1MRkxPV19FWFBFUklNRU5UX05BTUU/LnRyaW0oKSxcbiAgKTtcbiAgcmV0dXJuIGhhc0V4cG9ydGVyICYmIGhhc0V4cGVyaW1lbnQ7XG59XG5cbi8qKlxuICogUmVzb2x2ZSB3aGV0aGVyIHVzZXIgZmVlZGJhY2sgaXMgZW5hYmxlZCBmcm9tIHRoZSBwbHVnaW4ncyBvcHRpb25hbFxuICogYGNvbmZpZy5mZWVkYmFja2Agb3ZlcnJpZGU6IHRoZSBleHBsaWNpdCBib29sZWFuIHdpbnMsIG90aGVyd2lzZSBmYWxsXG4gKiBiYWNrIHRvIGF1dG8tZGV0ZWN0aW5nIE1MZmxvdyB0cmFjaW5nICh7QGxpbmsgbWxmbG93RW5hYmxlZH0pLiBTaGFyZWRcbiAqIGJ5IHRoZSBwbHVnaW4ncyBjbGllbnQtY29uZmlnIGdhdGUgYW5kIHRoZSBzZXJ2ZXIncyB0cmFjZS1pZCBoZWFkZXIgc29cbiAqIHRoZSB0d28gbmV2ZXIgZGlzYWdyZWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlRmVlZGJhY2tFbmFibGVkKGV4cGxpY2l0OiBib29sZWFuIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gIHJldHVybiBleHBsaWNpdCA/PyBtbGZsb3dFbmFibGVkKCk7XG59XG5cbi8qKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgbG9nRmVlZGJhY2t9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dGZWVkYmFja1BhcmFtcyB7XG4gIC8qKiBNTGZsb3cgdHJhY2UgaWQgdGhlIGFzc2Vzc21lbnQgYXR0YWNoZXMgdG8gKGB0ci08aGV4PmApLiAqL1xuICB0cmFjZUlkOiBzdHJpbmc7XG4gIC8qKiBBc3Nlc3NtZW50IG5hbWU7IGRlZmF1bHRzIHBlciB3aGV0aGVyIGEgdmFsdWUgb3IgYSBjb21tZW50IGlzIHNlbnQuICovXG4gIG5hbWU/OiBzdHJpbmc7XG4gIC8qKiBUaHVtYnMgLyByYXRpbmcgLyBsYWJlbCB2YWx1ZS4gT21pdCBmb3IgYSBjb21tZW50LW9ubHkgc3VibWlzc2lvbi4gKi9cbiAgdmFsdWU/OiBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nO1xuICAvKiogRnJlZWZvcm0gY29tbWVudDogdGhlIHJhdGlvbmFsZSBhbG9uZ3NpZGUgYSB2YWx1ZSwgb3IgdGhlIHZhbHVlIGl0c2VsZiB3aGVuIG5vbmUuICovXG4gIGNvbW1lbnQ/OiBzdHJpbmc7XG4gIC8qKiBJZGVudGl0eSB0aGUgZmVlZGJhY2sgaXMgYXR0cmlidXRlZCB0byAodXNlciBlbWFpbCAvIGlkKS4gKi9cbiAgc291cmNlSWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTG9nIGEgSFVNQU4gZmVlZGJhY2sgYXNzZXNzbWVudCB0byBhIHRyYWNlLiBSZXR1cm5zIHRoZSBjcmVhdGVkXG4gKiBhc3Nlc3NtZW50IGlkIG9uIHN1Y2Nlc3MsIG9yIGB1bmRlZmluZWRgIHdoZW4gdGhlIHRyYWNlIGNhbid0IGJlXG4gKiBmb3VuZCAoZXZlbiBhZnRlciByZXRyeWluZyBmb3IgZXhwb3J0IGxhZykgb3IgdGhlIHJlcXVlc3Qgb3RoZXJ3aXNlXG4gKiBmYWlscyAtIGNhbGxlcnMgc3VyZmFjZSB0aGF0IGFzIGEgc29mdCBcIm5vdCByZWNvcmRlZFwiIHJhdGhlciB0aGFuIGFuXG4gKiBlcnJvciwga2VlcGluZyB0aGUgY2hhdCB1c2FibGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2dGZWVkYmFjayhcbiAgY2xpZW50OiBXb3Jrc3BhY2VDbGllbnQsXG4gIHBhcmFtczogTG9nRmVlZGJhY2tQYXJhbXMsXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAvLyBBIGNvbW1lbnQgd2l0aCBubyB0aHVtYnMgdmFsdWUgaXMgbG9nZ2VkIGFzIHRleHQgZmVlZGJhY2s7IGEgdmFsdWVcbiAgLy8gKHdpdGggYW4gb3B0aW9uYWwgY29tbWVudCBhcyB0aGUgcmF0aW9uYWxlKSBpcyB0aGUgdGh1bWJzIHBhdGguXG4gIGNvbnN0IGhhc1ZhbHVlID0gcGFyYW1zLnZhbHVlICE9PSB1bmRlZmluZWQ7XG4gIGNvbnN0IG5hbWUgPVxuICAgIHBhcmFtcy5uYW1lPy50cmltKCkgfHxcbiAgICAoaGFzVmFsdWUgPyBmZWVkYmFjay5ERUZBVUxUX0ZFRURCQUNLX05BTUUgOiBmZWVkYmFjay5ERUZBVUxUX0NPTU1FTlRfTkFNRSk7XG4gIGNvbnN0IHZhbHVlID0gaGFzVmFsdWUgPyBwYXJhbXMudmFsdWUgOiBwYXJhbXMuY29tbWVudDtcbiAgY29uc3QgYXNzZXNzbWVudDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgdHJhY2VfaWQ6IHBhcmFtcy50cmFjZUlkLFxuICAgIGFzc2Vzc21lbnRfbmFtZTogbmFtZSxcbiAgICBzb3VyY2U6IHtcbiAgICAgIHNvdXJjZV90eXBlOiBcIkhVTUFOXCIsXG4gICAgICBzb3VyY2VfaWQ6IHBhcmFtcy5zb3VyY2VJZD8udHJpbSgpIHx8IFwidXNlclwiLFxuICAgIH0sXG4gICAgZmVlZGJhY2s6IHsgdmFsdWUgfSxcbiAgICAuLi4oaGFzVmFsdWUgJiYgcGFyYW1zLmNvbW1lbnQ/LnRyaW0oKSA/IHsgcmF0aW9uYWxlOiBwYXJhbXMuY29tbWVudCB9IDoge30pLFxuICB9O1xuICBjb25zdCBib2R5ID0geyBhc3Nlc3NtZW50IH07XG5cbiAgZm9yIChsZXQgYXR0ZW1wdCA9IDA7IGF0dGVtcHQgPD0gTk9UX0ZPVU5EX1JFVFJJRVM7IGF0dGVtcHQrKykge1xuICAgIGxldCByZXM6IFJlc3BvbnNlO1xuICAgIHRyeSB7XG4gICAgICByZXMgPSBhd2FpdCBkYXRhYnJpY2tzRmV0Y2goY2xpZW50LCBhc3Nlc3NtZW50c1BhdGgocGFyYW1zLnRyYWNlSWQpLCB7XG4gICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgIGJvZHksXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci53YXJuKFwiZmVlZGJhY2sgcmVxdWVzdCBmYWlsZWRcIiwge1xuICAgICAgICB0cmFjZUlkOiBwYXJhbXMudHJhY2VJZCxcbiAgICAgICAgZXJyb3I6IGVycm9yLmVycm9yTWVzc2FnZShlcnIpLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAocmVzLm9rKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBhd2FpdCByZWFkUmVzcG9uc2VKc29uKHJlcyk7XG4gICAgICBjb25zdCBhc3Nlc3NtZW50SWQgPVxuICAgICAgICAocGFyc2VkIGFzIHsgYXNzZXNzbWVudD86IHsgYXNzZXNzbWVudF9pZD86IHVua25vd24gfSB9KT8uYXNzZXNzbWVudD8uYXNzZXNzbWVudF9pZCA/P1xuICAgICAgICAocGFyc2VkIGFzIHsgYXNzZXNzbWVudF9pZD86IHVua25vd24gfSk/LmFzc2Vzc21lbnRfaWQ7XG4gICAgICByZXR1cm4gdHlwZW9mIGFzc2Vzc21lbnRJZCA9PT0gXCJzdHJpbmdcIiA/IGFzc2Vzc21lbnRJZCA6IFwiXCI7XG4gICAgfVxuICAgIC8vIFRyYWNlIGV4cG9ydCBpcyBhc3luYzsgYSBmcmVzaCB0cmFjZSBtYXkgbm90IGV4aXN0IHlldC4gUmV0cnkgYVxuICAgIC8vIGZldyB0aW1lcyB3aXRoIGEgc2hvcnQgYmFja29mZiBiZWZvcmUgZ2l2aW5nIHVwIHNvZnRseS5cbiAgICBpZiAocmVzLnN0YXR1cyA9PT0gNDA0ICYmIGF0dGVtcHQgPCBOT1RfRk9VTkRfUkVUUklFUykge1xuICAgICAgYXdhaXQgYXN5bmMuc2xlZXAoTk9UX0ZPVU5EX0JBQ0tPRkZfTVMgKiAoYXR0ZW1wdCArIDEpKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBsb2dnZXIud2FybihcImZlZWRiYWNrIG5vdCByZWNvcmRlZFwiLCB7XG4gICAgICB0cmFjZUlkOiBwYXJhbXMudHJhY2VJZCxcbiAgICAgIHN0YXR1czogcmVzLnN0YXR1cyxcbiAgICAgIGJvZHk6IGF3YWl0IHJlYWRSZXNwb25zZVRleHQocmVzKSxcbiAgICB9KTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG4iXX0=
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWxmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21sZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUdILE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWhGLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7QUFLM0Msa0ZBQWtGO0FBQ2xGLE1BQU0sZUFBZSxHQUFHLENBQUMsT0FBZSxFQUFVLEVBQUUsQ0FDbEQsMEJBQTBCLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7QUFFdEUsOEVBQThFO0FBQzlFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0FBQzVCLDhFQUE4RTtBQUM5RSxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQztBQUVsQzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxhQUFhO0lBQzNCLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxJQUFJLEVBQUU7UUFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRSxJQUFJLEVBQUUsQ0FDdkQsQ0FBQztJQUNGLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFLElBQUksRUFBRSxDQUN2RixDQUFDO0lBQ0YsT0FBTyxXQUFXLElBQUksYUFBYSxDQUFDO0FBQ3RDLENBQUM7QUFFRDs7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dkIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNO1lBQ2xCLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDLEdBQUcsQ0FBQztTQUNsQyxDQUFDLENBQUM7UUFDSCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTUxmbG93IHVzZXItZmVlZGJhY2sgbG9nZ2luZzogZGV0ZWN0IHdoZXRoZXIgTUxmbG93IHRyYWNpbmcgaXMgd2lyZWRcbiAqIGZvciB0aGlzIGRlcGxveW1lbnQsIGFuZCBsb2cgYSB0aHVtYnMgLyBjb21tZW50IGFzIGEgdHJhY2VcbiAqICphc3Nlc3NtZW50KiB2aWEgdGhlIERhdGFicmlja3MgTUxmbG93IFJFU1QgQVBJLlxuICpcbiAqIEZlZWRiYWNrIGF0dGFjaGVzIHRvIGEgdHJhY2UsIGFuZCB0aGUgcGx1Z2luJ3Mgc3BhbnMgcmVhY2ggTUxmbG93XG4gKiB0aHJvdWdoIHRoZSBzYW1lIE9UZWwgcGlwZWxpbmUgYXMgZXZlcnkgb3RoZXIgQXBwS2l0IHNwYW4gKHNlZVxuICogYG9ic2VydmFiaWxpdHkudHNgKS4gTUxmbG93IGRlcml2ZXMgaXRzIHRyYWNlIGlkIGZyb20gdGhlIE9wZW5UZWxlbWV0cnlcbiAqIHRyYWNlIGlkIChgdHItPGhleChvdGVsVHJhY2VJZCk+YCksIHNvIHRoZSBzZXJ2ZXIgc3RhbXBzIHRoZSBhY3RpdmVcbiAqIHRyYWNlIGlkIG9uIGVhY2ggdHVybidzIHJlc3BvbnNlIGFuZCB0aGUgY2xpZW50IHNlbmRzIGl0IGJhY2sgaGVyZS5cbiAqXG4gKiBUaGVyZSBpcyBubyBNTGZsb3cgSlMgU0RLLCBzbyB0aGlzIHBvc3RzIHRvIHRoZSBhc3Nlc3NtZW50cyBSRVNUXG4gKiBlbmRwb2ludCBkaXJlY3RseSB1c2luZyB0aGUgT0JPLXNjb3BlZCB3b3Jrc3BhY2UgY2xpZW50ICh0aGUgZmVlZGJhY2tcbiAqIGlzIHRodXMgYXR0cmlidXRlZCB0byB0aGUgc2lnbmVkLWluIHVzZXIpLiBUcmFjZSBleHBvcnQgaXNcbiAqIGFzeW5jaHJvbm91cywgc28gdGhlIGp1c3QtZmluaXNoZWQgdHJhY2UgbWF5IG5vdCBleGlzdCBpbiBNTGZsb3cgeWV0XG4gKiB3aGVuIHRoZSB1c2VyIHJlYWN0czsgdGhlIGxvZyBjYWxsIHJldHJpZXMgYnJpZWZseSBvbiBcIm5vdCBmb3VuZFwiXG4gKiBiZWZvcmUgZ2l2aW5nIHVwIHNvZnRseS5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgYXBwa2l0IH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0XCI7XG5pbXBvcnQgeyBhc3luYywgZXJyb3IsIGxvZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBmZWVkYmFjayB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1tYXN0cmFcIjtcbmltcG9ydCB7IGRhdGFicmlja3NGZXRjaCwgcmVhZFJlc3BvbnNlSnNvbiwgcmVhZFJlc3BvbnNlVGV4dCB9IGZyb20gXCIuL3Jlc3QudHNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcIm1hc3RyYS9tbGZsb3dcIik7XG5cbi8qKiBXb3Jrc3BhY2UgY2xpZW50IGNhcnJpZWQgb24gYW4gQXBwS2l0IGV4ZWN1dGlvbiBjb250ZXh0LiAqL1xudHlwZSBXb3Jrc3BhY2VDbGllbnQgPSBhcHBraXQuV29ya3NwYWNlQ2xpZW50TGlrZTtcblxuLyoqIEFzc2Vzc21lbnRzIFJFU1QgcGF0aCBmb3IgYSB0cmFjZS4gYDMuMGAgaXMgdGhlIGN1cnJlbnQgTUxmbG93IEFQSSB2ZXJzaW9uLiAqL1xuY29uc3QgYXNzZXNzbWVudHNQYXRoID0gKHRyYWNlSWQ6IHN0cmluZyk6IHN0cmluZyA9PlxuICBgL2FwaS8zLjAvbWxmbG93L3RyYWNlcy8ke2VuY29kZVVSSUNvbXBvbmVudCh0cmFjZUlkKX0vYXNzZXNzbWVudHNgO1xuXG4vKiogTnVtYmVyIG9mIHRpbWVzIHRvIHJldHJ5IGEgXCJ0cmFjZSBub3QgZm91bmRcIiByZXNwb25zZSBiZWZvcmUgZ2l2aW5nIHVwLiAqL1xuY29uc3QgTk9UX0ZPVU5EX1JFVFJJRVMgPSAzO1xuLyoqIEJhc2UgYmFja29mZiBiZXR3ZWVuIFwidHJhY2Ugbm90IGZvdW5kXCIgcmV0cmllcywgaW4gbXMgKGdyb3dzIGxpbmVhcmx5KS4gKi9cbmNvbnN0IE5PVF9GT1VORF9CQUNLT0ZGX01TID0gMTIwMDtcblxuLyoqXG4gKiBXaGV0aGVyIE1MZmxvdyBmZWVkYmFjayBsb2dnaW5nIGlzIGF2YWlsYWJsZSBmb3IgdGhpcyBkZXBsb3ltZW50LlxuICpcbiAqIEVuYWJsZWQgd2hlbiBhbiBPVExQIGV4cG9ydGVyIGVuZHBvaW50IGlzIGNvbmZpZ3VyZWQgKHRyYWNlcyBhcmVcbiAqIGFjdHVhbGx5IHNoaXBwZWQgc29tZXdoZXJlKSBBTkQgYW4gTUxmbG93IGV4cGVyaW1lbnQgaXMgbmFtZWQgLSB0aGVcbiAqIHR3byBzaWduYWxzIHRoYXQgdGhlIE9UTFAgYmFja2VuZCBpcyBNTGZsb3cgYW5kIHRyYWNlcyB3aWxsXG4gKiBtYXRlcmlhbGl6ZSB0aGVyZS4gQm90aCBhcmUgc3RhbmRhcmQgZW52IHZhcnMsIHNvIG5vIHBsdWdpbiBjb25maWcgaXNcbiAqIHJlcXVpcmVkOyBhIGRlcGxveW1lbnQgb3B0cyBpbiBzaW1wbHkgYnkgd2lyaW5nIE1MZmxvdyB0cmFjaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWxmbG93RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgY29uc3QgaGFzRXhwb3J0ZXIgPSBCb29sZWFuKFxuICAgIHByb2Nlc3MuZW52Lk9URUxfRVhQT1JURVJfT1RMUF9FTkRQT0lOVD8udHJpbSgpIHx8XG4gICAgcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX1RSQUNFU19FTkRQT0lOVD8udHJpbSgpLFxuICApO1xuICBjb25zdCBoYXNFeHBlcmltZW50ID0gQm9vbGVhbihcbiAgICBwcm9jZXNzLmVudi5NTEZMT1dfRVhQRVJJTUVOVF9JRD8udHJpbSgpIHx8IHByb2Nlc3MuZW52Lk1MRkxPV19FWFBFUklNRU5UX05BTUU/LnRyaW0oKSxcbiAgKTtcbiAgcmV0dXJuIGhhc0V4cG9ydGVyICYmIGhhc0V4cGVyaW1lbnQ7XG59XG5cbi8qKlxuICogUmVzb2x2ZSB3aGV0aGVyIHVzZXIgZmVlZGJhY2sgaXMgZW5hYmxlZCBmcm9tIHRoZSBwbHVnaW4ncyBvcHRpb25hbFxuICogYGNvbmZpZy5mZWVkYmFja2Agb3ZlcnJpZGU6IHRoZSBleHBsaWNpdCBib29sZWFuIHdpbnMsIG90aGVyd2lzZSBmYWxsXG4gKiBiYWNrIHRvIGF1dG8tZGV0ZWN0aW5nIE1MZmxvdyB0cmFjaW5nICh7QGxpbmsgbWxmbG93RW5hYmxlZH0pLiBTaGFyZWRcbiAqIGJ5IHRoZSBwbHVnaW4ncyBjbGllbnQtY29uZmlnIGdhdGUgYW5kIHRoZSBzZXJ2ZXIncyB0cmFjZS1pZCBoZWFkZXIgc29cbiAqIHRoZSB0d28gbmV2ZXIgZGlzYWdyZWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlRmVlZGJhY2tFbmFibGVkKGV4cGxpY2l0OiBib29sZWFuIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gIHJldHVybiBleHBsaWNpdCA/PyBtbGZsb3dFbmFibGVkKCk7XG59XG5cbi8qKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgbG9nRmVlZGJhY2t9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dGZWVkYmFja1BhcmFtcyB7XG4gIC8qKiBNTGZsb3cgdHJhY2UgaWQgdGhlIGFzc2Vzc21lbnQgYXR0YWNoZXMgdG8gKGB0ci08aGV4PmApLiAqL1xuICB0cmFjZUlkOiBzdHJpbmc7XG4gIC8qKiBBc3Nlc3NtZW50IG5hbWU7IGRlZmF1bHRzIHBlciB3aGV0aGVyIGEgdmFsdWUgb3IgYSBjb21tZW50IGlzIHNlbnQuICovXG4gIG5hbWU/OiBzdHJpbmc7XG4gIC8qKiBUaHVtYnMgLyByYXRpbmcgLyBsYWJlbCB2YWx1ZS4gT21pdCBmb3IgYSBjb21tZW50LW9ubHkgc3VibWlzc2lvbi4gKi9cbiAgdmFsdWU/OiBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nO1xuICAvKiogRnJlZWZvcm0gY29tbWVudDogdGhlIHJhdGlvbmFsZSBhbG9uZ3NpZGUgYSB2YWx1ZSwgb3IgdGhlIHZhbHVlIGl0c2VsZiB3aGVuIG5vbmUuICovXG4gIGNvbW1lbnQ/OiBzdHJpbmc7XG4gIC8qKiBJZGVudGl0eSB0aGUgZmVlZGJhY2sgaXMgYXR0cmlidXRlZCB0byAodXNlciBlbWFpbCAvIGlkKS4gKi9cbiAgc291cmNlSWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTG9nIGEgSFVNQU4gZmVlZGJhY2sgYXNzZXNzbWVudCB0byBhIHRyYWNlLiBSZXR1cm5zIHRoZSBjcmVhdGVkXG4gKiBhc3Nlc3NtZW50IGlkIG9uIHN1Y2Nlc3MsIG9yIGB1bmRlZmluZWRgIHdoZW4gdGhlIHRyYWNlIGNhbid0IGJlXG4gKiBmb3VuZCAoZXZlbiBhZnRlciByZXRyeWluZyBmb3IgZXhwb3J0IGxhZykgb3IgdGhlIHJlcXVlc3Qgb3RoZXJ3aXNlXG4gKiBmYWlscyAtIGNhbGxlcnMgc3VyZmFjZSB0aGF0IGFzIGEgc29mdCBcIm5vdCByZWNvcmRlZFwiIHJhdGhlciB0aGFuIGFuXG4gKiBlcnJvciwga2VlcGluZyB0aGUgY2hhdCB1c2FibGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2dGZWVkYmFjayhcbiAgY2xpZW50OiBXb3Jrc3BhY2VDbGllbnQsXG4gIHBhcmFtczogTG9nRmVlZGJhY2tQYXJhbXMsXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAvLyBBIGNvbW1lbnQgd2l0aCBubyB0aHVtYnMgdmFsdWUgaXMgbG9nZ2VkIGFzIHRleHQgZmVlZGJhY2s7IGEgdmFsdWVcbiAgLy8gKHdpdGggYW4gb3B0aW9uYWwgY29tbWVudCBhcyB0aGUgcmF0aW9uYWxlKSBpcyB0aGUgdGh1bWJzIHBhdGguXG4gIGNvbnN0IGhhc1ZhbHVlID0gcGFyYW1zLnZhbHVlICE9PSB1bmRlZmluZWQ7XG4gIGNvbnN0IG5hbWUgPVxuICAgIHBhcmFtcy5uYW1lPy50cmltKCkgfHxcbiAgICAoaGFzVmFsdWUgPyBmZWVkYmFjay5ERUZBVUxUX0ZFRURCQUNLX05BTUUgOiBmZWVkYmFjay5ERUZBVUxUX0NPTU1FTlRfTkFNRSk7XG4gIGNvbnN0IHZhbHVlID0gaGFzVmFsdWUgPyBwYXJhbXMudmFsdWUgOiBwYXJhbXMuY29tbWVudDtcbiAgY29uc3QgYXNzZXNzbWVudDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgdHJhY2VfaWQ6IHBhcmFtcy50cmFjZUlkLFxuICAgIGFzc2Vzc21lbnRfbmFtZTogbmFtZSxcbiAgICBzb3VyY2U6IHtcbiAgICAgIHNvdXJjZV90eXBlOiBcIkhVTUFOXCIsXG4gICAgICBzb3VyY2VfaWQ6IHBhcmFtcy5zb3VyY2VJZD8udHJpbSgpIHx8IFwidXNlclwiLFxuICAgIH0sXG4gICAgZmVlZGJhY2s6IHsgdmFsdWUgfSxcbiAgICAuLi4oaGFzVmFsdWUgJiYgcGFyYW1zLmNvbW1lbnQ/LnRyaW0oKSA/IHsgcmF0aW9uYWxlOiBwYXJhbXMuY29tbWVudCB9IDoge30pLFxuICB9O1xuICBjb25zdCBib2R5ID0geyBhc3Nlc3NtZW50IH07XG5cbiAgZm9yIChsZXQgYXR0ZW1wdCA9IDA7IGF0dGVtcHQgPD0gTk9UX0ZPVU5EX1JFVFJJRVM7IGF0dGVtcHQrKykge1xuICAgIGxldCByZXM6IFJlc3BvbnNlO1xuICAgIHRyeSB7XG4gICAgICByZXMgPSBhd2FpdCBkYXRhYnJpY2tzRmV0Y2goY2xpZW50LCBhc3Nlc3NtZW50c1BhdGgocGFyYW1zLnRyYWNlSWQpLCB7XG4gICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgIGJvZHksXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci53YXJuKFwiZmVlZGJhY2sgcmVxdWVzdCBmYWlsZWRcIiwge1xuICAgICAgICB0cmFjZUlkOiBwYXJhbXMudHJhY2VJZCxcbiAgICAgICAgZXJyb3I6IGVycm9yLmVycm9yTWVzc2FnZShlcnIpLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAocmVzLm9rKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBhd2FpdCByZWFkUmVzcG9uc2VKc29uKHJlcyk7XG4gICAgICBjb25zdCBhc3Nlc3NtZW50SWQgPVxuICAgICAgICAocGFyc2VkIGFzIHsgYXNzZXNzbWVudD86IHsgYXNzZXNzbWVudF9pZD86IHVua25vd24gfSB9KT8uYXNzZXNzbWVudD8uYXNzZXNzbWVudF9pZCA/P1xuICAgICAgICAocGFyc2VkIGFzIHsgYXNzZXNzbWVudF9pZD86IHVua25vd24gfSk/LmFzc2Vzc21lbnRfaWQ7XG4gICAgICByZXR1cm4gdHlwZW9mIGFzc2Vzc21lbnRJZCA9PT0gXCJzdHJpbmdcIiA/IGFzc2Vzc21lbnRJZCA6IFwiXCI7XG4gICAgfVxuICAgIC8vIFRyYWNlIGV4cG9ydCBpcyBhc3luYzsgYSBmcmVzaCB0cmFjZSBtYXkgbm90IGV4aXN0IHlldC4gUmV0cnkgYVxuICAgIC8vIGZldyB0aW1lcyB3aXRoIGEgc2hvcnQgYmFja29mZiBiZWZvcmUgZ2l2aW5nIHVwIHNvZnRseS5cbiAgICBpZiAocmVzLnN0YXR1cyA9PT0gNDA0ICYmIGF0dGVtcHQgPCBOT1RfRk9VTkRfUkVUUklFUykge1xuICAgICAgYXdhaXQgYXN5bmMuc2xlZXAoTk9UX0ZPVU5EX0JBQ0tPRkZfTVMgKiAoYXR0ZW1wdCArIDEpKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBsb2dnZXIud2FybihcImZlZWRiYWNrIG5vdCByZWNvcmRlZFwiLCB7XG4gICAgICB0cmFjZUlkOiBwYXJhbXMudHJhY2VJZCxcbiAgICAgIHN0YXR1czogcmVzLnN0YXR1cyxcbiAgICAgIGJvZHk6IGF3YWl0IHJlYWRSZXNwb25zZVRleHQocmVzKSxcbiAgICB9KTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG4iXX0=
@@ -25,7 +25,7 @@
25
25
  import { model } from "@dbx-tools/shared-model";
26
26
  import type { MastraModelConfig } from "@mastra/core/llm";
27
27
  import type { RequestContext } from "@mastra/core/request-context";
28
- import { type MastraPluginConfig } from "./config.js";
28
+ import { type MastraPluginConfig } from "./config.ts";
29
29
  type ModelClass = model.ModelClass;
30
30
  /** Optional overrides accepted by {@link buildModel}. */
31
31
  export interface BuildModelOverrides {
package/lib/src/model.js CHANGED
@@ -26,8 +26,8 @@ import { getExecutionContext } from "@databricks/appkit";
26
26
  import { classes, resolve } from "@dbx-tools/model";
27
27
  import { functionModule, json, log, net } from "@dbx-tools/shared-core";
28
28
  import { MASTRA_USER_KEY } from "./config.js";
29
- import { MASTRA_MODEL_OVERRIDE_KEY, resolveServingConfig } from "./serving.js";
30
29
  import { rewriteServingBody, rewriteServingResponseBody } from "./serving-sanitize.js";
30
+ import { MASTRA_MODEL_OVERRIDE_KEY, resolveServingConfig } from "./serving.js";
31
31
  const { parseModelClass } = classes;
32
32
  const { selectModel } = resolve;
33
33
  /**
@@ -165,4 +165,4 @@ async function repairServingResponse(response) {
165
165
  headers,
166
166
  });
167
167
  }
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBRUgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFLeEUsT0FBTyxFQUFFLGVBQWUsRUFBc0MsTUFBTSxVQUFVLENBQUM7QUFDL0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3BGLE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxPQUFPLENBQUM7QUFDcEMsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQXFCaEM7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxVQUFVLENBQzlCLE1BQTBCLEVBQzFCLGNBQThCLEVBQzlCLFlBQWlDLEVBQUU7SUFFbkMsS0FBSyxxQkFBcUIsRUFBRSxDQUFDO0lBQzdCLGtFQUFrRTtJQUNsRSxxRUFBcUU7SUFDckUscUVBQXFFO0lBQ3JFLHFFQUFxRTtJQUNyRSxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBcUIsQ0FBQztJQUNyRSxNQUFNLGdCQUFnQixHQUFHLElBQUksRUFBRSxnQkFBZ0IsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO0lBQ3pFLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDcEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZELE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDOUIsTUFBTSxZQUFZLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLHlFQUF5RTtJQUN6RSxxRUFBcUU7SUFDckUsdURBQXVEO0lBQ3ZELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFOUUsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxNQUFNLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsYUFBYTtRQUNwQyxDQUFDLENBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBd0I7UUFDdkUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUVkLG9FQUFvRTtJQUNwRSx5REFBeUQ7SUFDekQsc0VBQXNFO0lBQ3RFLHNFQUFzRTtJQUN0RSxtRUFBbUU7SUFDbkUsa0VBQWtFO0lBQ2xFLG9DQUFvQztJQUNwQyxNQUFNLFNBQVMsR0FBRyxRQUFRLElBQUksU0FBUyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDO0lBQ2hHLE1BQU0sY0FBYyxHQUFHLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ25GLE1BQU0sUUFBUSxHQUFHLGNBQWMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2pFLE1BQU0sVUFBVSxHQUFHLGNBQWMsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDO0lBRTFELE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxXQUFXLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRTtRQUMzRSxHQUFHLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9DLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztRQUNwQixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7UUFDNUIsR0FBRyxDQUFDLFVBQVUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNuRCxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7UUFDNUIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO0tBQ3JCLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFFL0QsT0FBTztRQUNMLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxJQUFJLFlBQVk7UUFDN0MsT0FBTztRQUNQLEdBQUc7UUFDSCxPQUFPLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7S0FDL0MsQ0FBQztBQUNKLENBQUM7QUFFRCx3RUFBd0U7QUFDeEUsTUFBTSw2QkFBNkIsR0FBRyxxQkFBcUIsQ0FBQztBQUU1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQU0scUJBQXFCLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFTLEVBQUU7SUFDOUQsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4QyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRCxVQUFVLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUN4QyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQ0UsQ0FBQyxHQUFHO1lBQ0osQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyw2QkFBNkIsQ0FBQztZQUN2RCxPQUFPLElBQUksRUFBRSxJQUFJLEtBQUssUUFBUSxFQUM5QixDQUFDO1lBQ0QsT0FBTyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxTQUFTLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzVCLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBVSxTQUFTLENBQUMsQ0FBQztRQUM5QyxNQUFNLENBQUMsS0FBSyxDQUNWLE1BQU0sRUFDTixNQUFNLEtBQUssU0FBUztZQUNsQixDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7WUFDL0MsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQzFDLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0MsT0FBTyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6QyxDQUFDLENBQTRCLENBQUM7QUFDaEMsQ0FBQyxDQUFDLENBQUM7QUFFSDs7Ozs7Ozs7OztHQVVHO0FBQ0gsS0FBSyxVQUFVLHFCQUFxQixDQUFDLFFBQWtCO0lBQ3JELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvRCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQztRQUFFLE9BQU8sUUFBUSxDQUFDO0lBRS9ELE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNDLE1BQU0sU0FBUyxHQUFHLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELElBQUksU0FBUyxLQUFLLElBQUk7UUFBRSxPQUFPLFFBQVEsQ0FBQztJQUV4Qyw2RUFBNkU7SUFDN0UsNkVBQTZFO0lBQzdFLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxPQUFPLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDakMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ25DLE9BQU8sSUFBSSxRQUFRLENBQUMsU0FBUyxFQUFFO1FBQzdCLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTTtRQUN2QixVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVU7UUFDL0IsT0FBTztLQUNSLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERhdGFicmlja3MgTW9kZWwgU2VydmluZyByZXNvbHZlciBmb3IgTWFzdHJhIGFnZW50cy5cbiAqXG4gKiBFYWNoIGFnZW50IHN0ZXAgY2FsbHMge0BsaW5rIGJ1aWxkTW9kZWx9IHdpdGggdGhlIGFjdGl2ZVxuICogYFJlcXVlc3RDb250ZXh0YC4gVGhlIHVzZXIgc3RhbXBlZCBieSBgTWFzdHJhU2VydmVyYCBjYXJyaWVzIGFuXG4gKiBBcHBLaXQgYFdvcmtzcGFjZUNsaWVudGA7IHdlIGFzayBpdCBmb3IgdGhlIHdvcmtzcGFjZSBob3N0IGFuZCBhXG4gKiBmcmVzaCBiZWFyZXIgaGVhZGVyLCB0aGVuIHBvaW50IE1hc3RyYSdzIE9wZW5BSS1jb21wYXRpYmxlIHByb3ZpZGVyXG4gKiBhdCBgL3NlcnZpbmctZW5kcG9pbnRzYCBvbiB0aGF0IGhvc3QuXG4gKlxuICogVGhpcyBtb2R1bGUgb25seSBhZGRzIHRoZSBNYXN0cmEtc3BlY2lmaWMgZ2x1ZS4gVGhlIGFjdHVhbCBtb2RlbFxuICogc2VsZWN0aW9uIC0gbGlzdGluZyB0aGUgd29ya3NwYWNlIGNhdGFsb2d1ZSBhbmQgcmVzb2x2aW5nIGFuXG4gKiBleHBsaWNpdCBuYW1lIC8gY2xhc3MgLyBmYWxsYmFjayBjaGFpbiB0byBhIHJlYWwgZW5kcG9pbnQgaWQgLSBsaXZlc1xuICogaW4gYEBkYngtdG9vbHMvbW9kZWxgICh7QGxpbmsgc2VsZWN0TW9kZWx9KSBzbyBub24tTWFzdHJhIGNvbnN1bWVyc1xuICogKGUuZy4gYSBqb2IgdGhhdCBqdXN0IG5lZWRzIGEgbW9kZWwgbmFtZSkgY2FuIHJldXNlIGl0LiBIZXJlIHdlXG4gKiBhc3NlbWJsZSB0aGUgZXhwbGljaXQgYXNrIGZyb20gTWFzdHJhJ3MgcmVxdWVzdCBjb250ZXh0ICh0aGVcbiAqIHBlci1yZXF1ZXN0IG92ZXJyaWRlIHVuZGVyIHtAbGluayBNQVNUUkFfTU9ERUxfT1ZFUlJJREVfS0VZfSwgdGhlXG4gKiBhZ2VudCAvIHBsdWdpbiBgbW9kZWxJZGAsIG9yIGBEQVRBQlJJQ0tTX1NFUlZJTkdfRU5EUE9JTlRfTkFNRWApLFxuICogcGFzcyB0aGUgcGx1Z2luJ3MgZnV6enkgLyBjbGFzcyAvIGZhbGxiYWNrIGtub2JzIHRocm91Z2gsIGFuZCB3cmFwXG4gKiB0aGUgcmVzb2x2ZWQgaWQgaW4gdGhlIE9wZW5BSS1jb21wYXRpYmxlIHByb3ZpZGVyIGNvbmZpZyBNYXN0cmFcbiAqIGV4cGVjdHMuIENhdGFsb2d1ZSBmZXRjaGVzIGZhaWwgbG91ZDogbmV0d29yayAvIGF1dGggZXJyb3JzXG4gKiBwcm9wYWdhdGUgc28gY2FsbGVycyBzZWUgdGhlIHJlYWwgU0RLIG1lc3NhZ2UuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IGdldEV4ZWN1dGlvbkNvbnRleHQgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgeyBjbGFzc2VzLCByZXNvbHZlIH0gZnJvbSBcIkBkYngtdG9vbHMvbW9kZWxcIjtcbmltcG9ydCB7IGZ1bmN0aW9uTW9kdWxlLCBqc29uLCBsb2csIG5ldCB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBtb2RlbCB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1tb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBNYXN0cmFNb2RlbENvbmZpZyB9IGZyb20gXCJAbWFzdHJhL2NvcmUvbGxtXCI7XG5pbXBvcnQgdHlwZSB7IFJlcXVlc3RDb250ZXh0IH0gZnJvbSBcIkBtYXN0cmEvY29yZS9yZXF1ZXN0LWNvbnRleHRcIjtcblxuaW1wb3J0IHsgTUFTVFJBX1VTRVJfS0VZLCB0eXBlIE1hc3RyYVBsdWdpbkNvbmZpZywgdHlwZSBVc2VyIH0gZnJvbSBcIi4vY29uZmlnXCI7XG5pbXBvcnQgeyBNQVNUUkFfTU9ERUxfT1ZFUlJJREVfS0VZLCByZXNvbHZlU2VydmluZ0NvbmZpZyB9IGZyb20gXCIuL3NlcnZpbmdcIjtcbmltcG9ydCB7IHJld3JpdGVTZXJ2aW5nQm9keSwgcmV3cml0ZVNlcnZpbmdSZXNwb25zZUJvZHkgfSBmcm9tIFwiLi9zZXJ2aW5nLXNhbml0aXplXCI7XG5cbnR5cGUgTW9kZWxDbGFzcyA9IG1vZGVsLk1vZGVsQ2xhc3M7XG5jb25zdCB7IHBhcnNlTW9kZWxDbGFzcyB9ID0gY2xhc3NlcztcbmNvbnN0IHsgc2VsZWN0TW9kZWwgfSA9IHJlc29sdmU7XG5cbi8qKiBPcHRpb25hbCBvdmVycmlkZXMgYWNjZXB0ZWQgYnkge0BsaW5rIGJ1aWxkTW9kZWx9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZE1vZGVsT3ZlcnJpZGVzIHtcbiAgLyoqXG4gICAqIFN0YXRpYyBtb2RlbCBpZCBmcm9tIHRoZSBhZ2VudCAvIHBsdWdpbiBjb25maWcgKHN0cmluZyBzdWdhciBvblxuICAgKiBgZGVmLm1vZGVsYCBvciBgY29uZmlnLmRlZmF1bHRNb2RlbGApLiBMb3NlcyB0byB0aGUgcGVyLXJlcXVlc3RcbiAgICogb3ZlcnJpZGUgYnV0IHdpbnMgb3ZlciBlbnYgLyBjbGFzcyAvIGZhbGxiYWNrLlxuICAgKi9cbiAgbW9kZWxJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIENoYXQgY2FwYWJpbGl0eSBjbGFzcyB0byByZXNvbHZlIHdoZW4gbm8gZXhwbGljaXQgbW9kZWwgaWQgaXNcbiAgICogc3VwcGxpZWQuIFVzZWQgYnkgaW50ZXJuYWwgYWdlbnRzIChlLmcuIHRoZSBjaGFydCBwbGFubmVyIGFza3MgZm9yXG4gICAqIHtAbGluayBtb2RlbC5Nb2RlbENsYXNzLkNoYXRGYXN0fSkgdG8gZXhwcmVzcyBpbnRlbnQgd2l0aG91dCBwaW5uaW5nIGFuXG4gICAqIGVuZHBvaW50IG5hbWU7IHRoZSBsaXZlIGNhdGFsb2d1ZSBpcyBjbGFzc2lmaWVkIGFuZCB0aGUgdG9wXG4gICAqIGF2YWlsYWJsZSBtb2RlbCBpbiB0aGUgY2xhc3MgaXMgY2hvc2VuLCBmYWxsaW5nIGJhY2sgdG8gdGhlXG4gICAqIGNsYXNzJ3Mgc3RhdGljIGxpc3Qgd2hlbiB0aGUgd29ya3NwYWNlIGhhcyBub25lLlxuICAgKi9cbiAgbW9kZWxDbGFzcz86IE1vZGVsQ2xhc3M7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBhIGBNYXN0cmFNb2RlbENvbmZpZ2AgZm9yIHRoZSBjdXJyZW50IGFnZW50IHN0ZXAuIFJ1bnNcbiAqIHdoaWxlIGBhZ2VudC5zdHJlYW1gIGlzIGluc2lkZSB0aGUgYGFzVXNlcihyZXEpYCBzY29wZSBzbyB0b2tlbnNcbiAqIGFyZSB1c2VyLXNjb3BlZDsgb3V0c2lkZSBhbiBhY3RpdmUgdXNlciBjb250ZXh0IHRoZSB3b3Jrc3BhY2VcbiAqIGNsaWVudCBmYWxscyBiYWNrIHRvIHRoZSBzZXJ2aWNlIHByaW5jaXBhbC5cbiAqXG4gKiBFbmRwb2ludCBwcmVjZWRlbmNlOiB0aGUgcGVyLXJlcXVlc3Qgb3ZlcnJpZGVcbiAqICh7QGxpbmsgTUFTVFJBX01PREVMX09WRVJSSURFX0tFWX0sIG9ubHkgd2hlbiBgY29uZmlnLm1vZGVsT3ZlcnJpZGVgIGFsbG93c1xuICogaXQpLCB0aGVuIHtAbGluayBCdWlsZE1vZGVsT3ZlcnJpZGVzLm1vZGVsSWR9IGZyb20gdGhlIGFnZW50IC8gcGx1Z2luXG4gKiBjb25maWcsIHRoZW4gYERBVEFCUklDS1NfU0VSVklOR19FTkRQT0lOVF9OQU1FYC4gV2l0aCBub25lIG9mIHRob3NlIHNldCB0aGVcbiAqIGNhcGFiaWxpdHkgY2xhc3MgYW5kIGZhbGxiYWNrIGxhZGRlciBpbiBgQGRieC10b29scy9tb2RlbGAgY2hvb3NlIHRoZVxuICogZW5kcG9pbnQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZE1vZGVsKFxuICBjb25maWc6IE1hc3RyYVBsdWdpbkNvbmZpZyxcbiAgcmVxdWVzdENvbnRleHQ6IFJlcXVlc3RDb250ZXh0LFxuICBvdmVycmlkZXM6IEJ1aWxkTW9kZWxPdmVycmlkZXMgPSB7fSxcbik6IFByb21pc2U8TWFzdHJhTW9kZWxDb25maWc+IHtcbiAgdm9pZCBzZXR1cEZldGNoSW50ZXJjZXB0b3IoKTtcbiAgLy8gVGhlIGNoYXQgcGF0aCBzdGFtcHMgdGhlIEFwcEtpdCB1c2VyIG9uIHRoZSByZXF1ZXN0IGNvbnRleHQgdmlhXG4gIC8vIGBNYXN0cmFTZXJ2ZXJgLiBUaGUgTUNQIHRyYW5zcG9ydCByb3V0ZXMgZG9uJ3QgdGhyZWFkIHRoYXQgY29udGV4dFxuICAvLyBpbnRvIHRvb2wgZXhlY3V0aW9uLCBzbyBmYWxsIGJhY2sgdG8gdGhlIGFtYmllbnQgZXhlY3V0aW9uIGNvbnRleHRcbiAgLy8gKHRoZSBhY3RpdmUgT0JPIHNjb3BlLCBvciB0aGUgc2VydmljZSBwcmluY2lwYWwpIHdoZW4gaXQncyBhYnNlbnQuXG4gIGNvbnN0IHVzZXIgPSByZXF1ZXN0Q29udGV4dC5nZXQoTUFTVFJBX1VTRVJfS0VZKSBhcyBVc2VyIHwgdW5kZWZpbmVkO1xuICBjb25zdCBleGVjdXRpb25Db250ZXh0ID0gdXNlcj8uZXhlY3V0aW9uQ29udGV4dCA/PyBnZXRFeGVjdXRpb25Db250ZXh0KCk7XG4gIGNvbnN0IGNsaWVudENvbmZpZyA9IGV4ZWN1dGlvbkNvbnRleHQuY2xpZW50LmNvbmZpZztcbiAgY29uc3QgaG9zdCA9IChhd2FpdCBjbGllbnRDb25maWcuZ2V0SG9zdCgpKS50b1N0cmluZygpO1xuICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTtcbiAgYXdhaXQgY2xpZW50Q29uZmlnLmF1dGhlbnRpY2F0ZShoZWFkZXJzKTtcbiAgLy8gVGhlIE9wZW5BSSBOb2RlIFNESyBhcHBlbmRzIHBhdGhzIGxpa2UgYC9jaGF0L2NvbXBsZXRpb25zYCB0byB3aGF0ZXZlclxuICAvLyBVUkwgd2UgaGFuZCBpdC4gRHJvcCB0aGUgdHJhaWxpbmcgc2xhc2ggc28gdGhlIHJlc3VsdGluZyBVUkwgc3RheXNcbiAgLy8gd2VsbC1mb3JtZWQgKGAvc2VydmluZy1lbmRwb2ludHMvY2hhdC9jb21wbGV0aW9uc2ApLlxuICBjb25zdCB1cmwgPSBuZXcgVVJMKFwiL3NlcnZpbmctZW5kcG9pbnRzXCIsIGhvc3QpLnRvU3RyaW5nKCkucmVwbGFjZSgvXFwvJC8sIFwiXCIpO1xuXG4gIGNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoY29uZmlnKTtcbiAgY29uc3Qgc2VydmluZyA9IHJlc29sdmVTZXJ2aW5nQ29uZmlnKGNvbmZpZyk7XG4gIGNvbnN0IG92ZXJyaWRlID0gc2VydmluZy5hbGxvd092ZXJyaWRlXG4gICAgPyAocmVxdWVzdENvbnRleHQuZ2V0KE1BU1RSQV9NT0RFTF9PVkVSUklERV9LRVkpIGFzIHN0cmluZyB8IHVuZGVmaW5lZClcbiAgICA6IHVuZGVmaW5lZDtcblxuICAvLyBUaGUgb3ZlcnJpZGUgLyBhZ2VudCBkZWZhdWx0IC8gZW52IHZhbHVlIGNhbiBiZSBlaXRoZXIgYSBjb25jcmV0ZVxuICAvLyBlbmRwb2ludCBuYW1lIG9yIGEgbW9kZWwgY2xhc3Mgc2x1ZyAoXCJjaGF0LXRoaW5raW5nXCIgL1xuICAvLyBcImNoYXQtYmFsYW5jZWRcIiAvIFwiY2hhdC1mYXN0XCIpLiBBIGNsYXNzIHNsdWcgYmVjb21lcyBhIGNsYXNzIGludGVudFxuICAvLyAobGV0IHRoZSBsaXZlIGNhdGFsb2d1ZSBwaWNrIHRoZSBiZXN0IG1vZGVsIGluIHRoYXQgYmFuZCk7IGFueXRoaW5nXG4gIC8vIGVsc2UgaXMgYW4gZXhwbGljaXQgbmFtZSBmdXp6eS1tYXRjaGVkIGFnYWluc3QgdGhlIGNhdGFsb2d1ZS4gQW5cbiAgLy8gaW50ZXJuYWwgYG92ZXJyaWRlcy5tb2RlbENsYXNzYCAoZS5nLiB0aGUgY2hhcnQgcGxhbm5lcikgaXMgdGhlXG4gIC8vIGZsb29yIHdoZW4gbm90aGluZyB3YXMgcmVxdWVzdGVkLlxuICBjb25zdCByZXF1ZXN0ZWQgPSBvdmVycmlkZSA/PyBvdmVycmlkZXMubW9kZWxJZCA/PyBwcm9jZXNzLmVudi5EQVRBQlJJQ0tTX1NFUlZJTkdfRU5EUE9JTlRfTkFNRTtcbiAgY29uc3QgcmVxdWVzdGVkQ2xhc3MgPSByZXF1ZXN0ZWQgIT09IHVuZGVmaW5lZCA/IHBhcnNlTW9kZWxDbGFzcyhyZXF1ZXN0ZWQpIDogbnVsbDtcbiAgY29uc3QgZXhwbGljaXQgPSByZXF1ZXN0ZWRDbGFzcyA9PT0gbnVsbCA/IHJlcXVlc3RlZCA6IHVuZGVmaW5lZDtcbiAgY29uc3QgbW9kZWxDbGFzcyA9IHJlcXVlc3RlZENsYXNzID8/IG92ZXJyaWRlcy5tb2RlbENsYXNzO1xuXG4gIGNvbnN0IHsgbW9kZWxJZCwgc291cmNlIH0gPSBhd2FpdCBzZWxlY3RNb2RlbChleGVjdXRpb25Db250ZXh0LmNsaWVudCwgaG9zdCwge1xuICAgIC4uLihleHBsaWNpdCAhPT0gdW5kZWZpbmVkID8geyBleHBsaWNpdCB9IDoge30pLFxuICAgIGZ1enp5OiBzZXJ2aW5nLmZ1enp5LFxuICAgIHRocmVzaG9sZDogc2VydmluZy50aHJlc2hvbGQsXG4gICAgLi4uKG1vZGVsQ2xhc3MgIT09IHVuZGVmaW5lZCA/IHsgbW9kZWxDbGFzcyB9IDoge30pLFxuICAgIGZhbGxiYWNrczogc2VydmluZy5mYWxsYmFja3MsXG4gICAgdHRsTXM6IHNlcnZpbmcudHRsTXMsXG4gIH0pO1xuICBsb2dnZXIuZGVidWcoXCJtb2RlbCBzZWxlY3RlZFwiLCB7IG1vZGVsSWQsIHNvdXJjZSwgcmVxdWVzdGVkIH0pO1xuXG4gIHJldHVybiB7XG4gICAgcHJvdmlkZXJJZDogY29uZmlnLnByb3ZpZGVySWQgPz8gXCJkYXRhYnJpY2tzXCIsXG4gICAgbW9kZWxJZCxcbiAgICB1cmwsXG4gICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKGhlYWRlcnMuZW50cmllcygpKSxcbiAgfTtcbn1cblxuLyoqIFBhdGggcHJlZml4IHRoYXQgaWRlbnRpZmllcyBhIERhdGFicmlja3MgTW9kZWwgU2VydmluZyBSRVNUIGNhbGwuICovXG5jb25zdCBTRVJWSU5HX0VORFBPSU5UU19QQVRIX1BSRUZJWCA9IFwiL3NlcnZpbmctZW5kcG9pbnRzL1wiO1xuXG4vKipcbiAqIEluc3RhbGwgYSBzaW5nbGUgc2hhcmVkIGBnbG9iYWxUaGlzLmZldGNoYCB3cmFwcGVyIGZvciBldmVyeSBQT1NUIHRvXG4gKiBgL3NlcnZpbmctZW5kcG9pbnRzLy4uLmAuIFRoZSB3cmFwcGVyIGRvZXMgdHdvIHRoaW5nczpcbiAqXG4gKiAgIDEuIFJld3JpdGVzIHRoZSBvdXRnb2luZyBgbWVzc2FnZXNgIGFycmF5IHRvIHJlcGFpciBNYXN0cmEvQUkgU0RLXG4gKiAgICAgIHN0cmVhbS1yZXBsYXkgcXVpcmtzIHRoYXQgRGF0YWJyaWNrcy1ob3N0ZWQgQ2xhdWRlIHJlamVjdHMgKHNlZVxuICogICAgICB7QGxpbmsgcmV3cml0ZVNlcnZpbmdCb2R5fSBpbiBgLi9zZXJ2aW5nLXNhbml0aXplLmpzYCkuXG4gKiAgIDIuIEF0IGBMT0dfTEVWRUw9ZGVidWdgLCBkdW1wcyB0aGUgKHBvc3Qtc2FuaXRpemUpIEpTT04gYm9keSBzb1xuICogICAgICA0eHggZGVidWdnaW5nIGRvZXNuJ3QgaGF2ZSB0byBmaWdodCBBSSBTREsncyBgW0FycmF5XWBcbiAqICAgICAgZm9ybWF0dGVyLlxuICogICAzLiBSZXBhaXJzIHRoZSBub24tc3RyZWFtaW5nIEpTT04gcmVzcG9uc2UsIHdoZXJlIERhdGFicmlja3MtaG9zdGVkXG4gKiAgICAgIEdlbWluaSByZXR1cm5zIGBjaG9pY2VzW10ubWVzc2FnZS5jb250ZW50YCBhcyBhIHBhcnRzIGFycmF5IHRoYXRcbiAqICAgICAgdGhlIEFJIFNESydzIE9wZW5BSSBzY2hlbWEgcmVqZWN0cyAoc2VlXG4gKiAgICAgIHtAbGluayByZXdyaXRlU2VydmluZ1Jlc3BvbnNlQm9keX0pLlxuICpcbiAqIFNhZmUgdG8gY2FsbCBmcm9tIGFueSBob3QgcGF0aDoge0BsaW5rIGZ1bmN0aW9uTW9kdWxlLm1lbW9pemV9IGVuc3VyZXNcbiAqIHRoZSB3cmFwcGVyIGlzIGluc3RhbGxlZCBhdCBtb3N0IG9uY2UgcGVyIHByb2Nlc3MsIHNvIHN1YnNlcXVlbnRcbiAqIGNhbGxzIGFyZSBhIG5vLW9wIGV2ZW4gd2hlbiB7QGxpbmsgYnVpbGRNb2RlbH0gZmlyZXMgb24gZXZlcnkgYWdlbnRcbiAqIHN0ZXAuXG4gKi9cbmNvbnN0IHNldHVwRmV0Y2hJbnRlcmNlcHRvciA9IGZ1bmN0aW9uTW9kdWxlLm1lbW9pemUoKCk6IHZvaWQgPT4ge1xuICBjb25zdCBsb2dnZXIgPSBsb2cubG9nZ2VyKFwibWFzdHJhL2xsbVwiKTtcbiAgY29uc3Qgb3JpZ2luYWwgPSBnbG9iYWxUaGlzLmZldGNoLmJpbmQoZ2xvYmFsVGhpcyk7XG4gIGdsb2JhbFRoaXMuZmV0Y2ggPSAoYXN5bmMgKGlucHV0LCBpbml0KSA9PiB7XG4gICAgY29uc3QgdXJsID0gbmV0LnVybEJ1aWxkZXIoaW5wdXQpO1xuICAgIGlmIChcbiAgICAgICF1cmwgfHxcbiAgICAgICF1cmwucGF0aG5hbWUuc3RhcnRzV2l0aChTRVJWSU5HX0VORFBPSU5UU19QQVRIX1BSRUZJWCkgfHxcbiAgICAgIHR5cGVvZiBpbml0Py5ib2R5ICE9PSBcInN0cmluZ1wiXG4gICAgKSB7XG4gICAgICByZXR1cm4gb3JpZ2luYWwoaW5wdXQsIGluaXQpO1xuICAgIH1cbiAgICBjb25zdCByZXdyaXR0ZW4gPSByZXdyaXRlU2VydmluZ0JvZHkoaW5pdC5ib2R5KTtcbiAgICBpZiAocmV3cml0dGVuICE9PSBpbml0LmJvZHkpIHtcbiAgICAgIGluaXQgPSB7IC4uLmluaXQsIGJvZHk6IHJld3JpdHRlbiB9O1xuICAgIH1cbiAgICBjb25zdCBwYXJzZWQgPSBqc29uLnBhcnNlPHVua25vd24+KHJld3JpdHRlbik7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgXCJQT1NUXCIsXG4gICAgICBwYXJzZWQgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHsgdXJsOiB1cmwudG9TdHJpbmcoKSwgYm9keVR5cGU6IFwibm9uLUpTT05cIiB9XG4gICAgICAgIDogeyB1cmw6IHVybC50b1N0cmluZygpLCBib2R5OiBwYXJzZWQgfSxcbiAgICApO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgb3JpZ2luYWwoaW5wdXQsIGluaXQpO1xuICAgIHJldHVybiByZXBhaXJTZXJ2aW5nUmVzcG9uc2UocmVzcG9uc2UpO1xuICB9KSBhcyB0eXBlb2YgZ2xvYmFsVGhpcy5mZXRjaDtcbn0pO1xuXG4vKipcbiAqIFJld3JpdGUgYSBub24tc3RyZWFtaW5nIHNlcnZpbmcgcmVzcG9uc2Ugd2hvc2UgYm9keSBuZWVkcyByZXBhaXIsIGxlYXZpbmdcbiAqIGV2ZXJ5dGhpbmcgZWxzZSBieXRlLWlkZW50aWNhbC5cbiAqXG4gKiBTdHJlYW1pbmcgdHVybnMgYXJlIHBhc3NlZCBzdHJhaWdodCB0aHJvdWdoOiBhbiBTU0UgYm9keSBtdXN0IHN0YXkgYSBsaXZlXG4gKiBzdHJlYW0gKGJ1ZmZlcmluZyBpdCB0byBhIHN0cmluZyB3b3VsZCBkZWZlYXQgc3RyZWFtaW5nIGFuZCBicmVha1xuICogYHRleHQvZXZlbnQtc3RyZWFtYCBwYXJzaW5nKSwgYW5kIHRoZSBkZWx0YSBmcmFtZXMgYWxyZWFkeSBjYXJyeSBzdHJpbmdcbiAqIGNvbnRlbnQsIHNvIHRoZXkgbmV2ZXIgaGl0IHRoZSBhcnJheS1zaGFwZWQgYGNvbnRlbnRgIGJ1Zy4gTGlrZXdpc2UgYVxuICogbm9uLUpTT04gb3IgZXJyb3IgYm9keSBpcyByZXR1cm5lZCB1bnRvdWNoZWQsIHNvIHRoZSBjYWxsZXIgc3RpbGwgc2VlcyB0aGVcbiAqIG9yaWdpbmFsIHN0YXR1cyBhbmQgaGVhZGVycy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVwYWlyU2VydmluZ1Jlc3BvbnNlKHJlc3BvbnNlOiBSZXNwb25zZSk6IFByb21pc2U8UmVzcG9uc2U+IHtcbiAgY29uc3QgY29udGVudFR5cGUgPSByZXNwb25zZS5oZWFkZXJzLmdldChcImNvbnRlbnQtdHlwZVwiKSA/PyBcIlwiO1xuICBpZiAoIWNvbnRlbnRUeXBlLmluY2x1ZGVzKFwiYXBwbGljYXRpb24vanNvblwiKSkgcmV0dXJuIHJlc3BvbnNlO1xuXG4gIGNvbnN0IGJvZHkgPSBhd2FpdCByZXNwb25zZS5jbG9uZSgpLnRleHQoKTtcbiAgY29uc3QgcmV3cml0dGVuID0gcmV3cml0ZVNlcnZpbmdSZXNwb25zZUJvZHkoYm9keSk7XG4gIGlmIChyZXdyaXR0ZW4gPT09IGJvZHkpIHJldHVybiByZXNwb25zZTtcblxuICAvLyBgY29udGVudC1sZW5ndGhgIC8gYGNvbnRlbnQtZW5jb2RpbmdgIGRlc2NyaWJlIHRoZSBPUklHSU5BTCBieXRlcywgc28gdGhleVxuICAvLyBhcmUgZHJvcHBlZDogdGhlIHJld3JpdHRlbiBib2R5IGlzIGEgZGlmZmVyZW50IGxlbmd0aCBhbmQgYWxyZWFkeSBkZWNvZGVkLlxuICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMocmVzcG9uc2UuaGVhZGVycyk7XG4gIGhlYWRlcnMuZGVsZXRlKFwiY29udGVudC1sZW5ndGhcIik7XG4gIGhlYWRlcnMuZGVsZXRlKFwiY29udGVudC1lbmNvZGluZ1wiKTtcbiAgcmV0dXJuIG5ldyBSZXNwb25zZShyZXdyaXR0ZW4sIHtcbiAgICBzdGF0dXM6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICBzdGF0dXNUZXh0OiByZXNwb25zZS5zdGF0dXNUZXh0LFxuICAgIGhlYWRlcnMsXG4gIH0pO1xufVxuIl19
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBRUgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFLeEUsT0FBTyxFQUFFLGVBQWUsRUFBc0MsTUFBTSxhQUFhLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRy9FLE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxPQUFPLENBQUM7QUFDcEMsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQXFCaEM7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxVQUFVLENBQzlCLE1BQTBCLEVBQzFCLGNBQThCLEVBQzlCLFlBQWlDLEVBQUU7SUFFbkMsS0FBSyxxQkFBcUIsRUFBRSxDQUFDO0lBQzdCLGtFQUFrRTtJQUNsRSxxRUFBcUU7SUFDckUscUVBQXFFO0lBQ3JFLHFFQUFxRTtJQUNyRSxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBcUIsQ0FBQztJQUNyRSxNQUFNLGdCQUFnQixHQUFHLElBQUksRUFBRSxnQkFBZ0IsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO0lBQ3pFLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDcEQsTUFBTSxJ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OztHQVVHO0FBQ0gsS0FBSyxVQUFVLHFCQUFxQixDQUFDLFFBQWtCO0lBQ3JELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvRCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQztRQUFFLE9BQU8sUUFBUSxDQUFDO0lBRS9ELE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNDLE1BQU0sU0FBUyxHQUFHLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELElBQUksU0FBUyxLQUFLLElBQUk7UUFBRSxPQUFPLFFBQVEsQ0FBQztJQUV4Qyw2RUFBNkU7SUFDN0UsNkVBQTZFO0lBQzdFLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxPQUFPLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDakMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ25DLE9BQU8sSUFBSSxRQUFRLENBQUMsU0FBUyxFQUFFO1FBQzdCLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTTtRQUN2QixVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVU7UUFDL0IsT0FBTztLQUNSLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERhdGFicmlja3MgTW9kZWwgU2VydmluZyByZXNvbHZlciBmb3IgTWFzdHJhIGFnZW50cy5cbiAqXG4gKiBFYWNoIGFnZW50IHN0ZXAgY2FsbHMge0BsaW5rIGJ1aWxkTW9kZWx9IHdpdGggdGhlIGFjdGl2ZVxuICogYFJlcXVlc3RDb250ZXh0YC4gVGhlIHVzZXIgc3RhbXBlZCBieSBgTWFzdHJhU2VydmVyYCBjYXJyaWVzIGFuXG4gKiBBcHBLaXQgYFdvcmtzcGFjZUNsaWVudGA7IHdlIGFzayBpdCBmb3IgdGhlIHdvcmtzcGFjZSBob3N0IGFuZCBhXG4gKiBmcmVzaCBiZWFyZXIgaGVhZGVyLCB0aGVuIHBvaW50IE1hc3RyYSdzIE9wZW5BSS1jb21wYXRpYmxlIHByb3ZpZGVyXG4gKiBhdCBgL3NlcnZpbmctZW5kcG9pbnRzYCBvbiB0aGF0IGhvc3QuXG4gKlxuICogVGhpcyBtb2R1bGUgb25seSBhZGRzIHRoZSBNYXN0cmEtc3BlY2lmaWMgZ2x1ZS4gVGhlIGFjdHVhbCBtb2RlbFxuICogc2VsZWN0aW9uIC0gbGlzdGluZyB0aGUgd29ya3NwYWNlIGNhdGFsb2d1ZSBhbmQgcmVzb2x2aW5nIGFuXG4gKiBleHBsaWNpdCBuYW1lIC8gY2xhc3MgLyBmYWxsYmFjayBjaGFpbiB0byBhIHJlYWwgZW5kcG9pbnQgaWQgLSBsaXZlc1xuICogaW4gYEBkYngtdG9vbHMvbW9kZWxgICh7QGxpbmsgc2VsZWN0TW9kZWx9KSBzbyBub24tTWFzdHJhIGNvbnN1bWVyc1xuICogKGUuZy4gYSBqb2IgdGhhdCBqdXN0IG5lZWRzIGEgbW9kZWwgbmFtZSkgY2FuIHJldXNlIGl0LiBIZXJlIHdlXG4gKiBhc3NlbWJsZSB0aGUgZXhwbGljaXQgYXNrIGZyb20gTWFzdHJhJ3MgcmVxdWVzdCBjb250ZXh0ICh0aGVcbiAqIHBlci1yZXF1ZXN0IG92ZXJyaWRlIHVuZGVyIHtAbGluayBNQVNUUkFfTU9ERUxfT1ZFUlJJREVfS0VZfSwgdGhlXG4gKiBhZ2VudCAvIHBsdWdpbiBgbW9kZWxJZGAsIG9yIGBEQVRBQlJJQ0tTX1NFUlZJTkdfRU5EUE9JTlRfTkFNRWApLFxuICogcGFzcyB0aGUgcGx1Z2luJ3MgZnV6enkgLyBjbGFzcyAvIGZhbGxiYWNrIGtub2JzIHRocm91Z2gsIGFuZCB3cmFwXG4gKiB0aGUgcmVzb2x2ZWQgaWQgaW4gdGhlIE9wZW5BSS1jb21wYXRpYmxlIHByb3ZpZGVyIGNvbmZpZyBNYXN0cmFcbiAqIGV4cGVjdHMuIENhdGFsb2d1ZSBmZXRjaGVzIGZhaWwgbG91ZDogbmV0d29yayAvIGF1dGggZXJyb3JzXG4gKiBwcm9wYWdhdGUgc28gY2FsbGVycyBzZWUgdGhlIHJlYWwgU0RLIG1lc3NhZ2UuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IGdldEV4ZWN1dGlvbkNvbnRleHQgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgeyBjbGFzc2VzLCByZXNvbHZlIH0gZnJvbSBcIkBkYngtdG9vbHMvbW9kZWxcIjtcbmltcG9ydCB7IGZ1bmN0aW9uTW9kdWxlLCBqc29uLCBsb2csIG5ldCB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyBtb2RlbCB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1tb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBNYXN0cmFNb2RlbENvbmZpZyB9IGZyb20gXCJAbWFzdHJhL2NvcmUvbGxtXCI7XG5pbXBvcnQgdHlwZSB7IFJlcXVlc3RDb250ZXh0IH0gZnJvbSBcIkBtYXN0cmEvY29yZS9yZXF1ZXN0LWNvbnRleHRcIjtcblxuaW1wb3J0IHsgTUFTVFJBX1VTRVJfS0VZLCB0eXBlIE1hc3RyYVBsdWdpbkNvbmZpZywgdHlwZSBVc2VyIH0gZnJvbSBcIi4vY29uZmlnLnRzXCI7XG5pbXBvcnQgeyByZXdyaXRlU2VydmluZ0JvZHksIHJld3JpdGVTZXJ2aW5nUmVzcG9uc2VCb2R5IH0gZnJvbSBcIi4vc2VydmluZy1zYW5pdGl6ZS50c1wiO1xuaW1wb3J0IHsgTUFTVFJBX01PREVMX09WRVJSSURFX0tFWSwgcmVzb2x2ZVNlcnZpbmdDb25maWcgfSBmcm9tIFwiLi9zZXJ2aW5nLnRzXCI7XG5cbnR5cGUgTW9kZWxDbGFzcyA9IG1vZGVsLk1vZGVsQ2xhc3M7XG5jb25zdCB7IHBhcnNlTW9kZWxDbGFzcyB9ID0gY2xhc3NlcztcbmNvbnN0IHsgc2VsZWN0TW9kZWwgfSA9IHJlc29sdmU7XG5cbi8qKiBPcHRpb25hbCBvdmVycmlkZXMgYWNjZXB0ZWQgYnkge0BsaW5rIGJ1aWxkTW9kZWx9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZE1vZGVsT3ZlcnJpZGVzIHtcbiAgLyoqXG4gICAqIFN0YXRpYyBtb2RlbCBpZCBmcm9tIHRoZSBhZ2VudCAvIHBsdWdpbiBjb25maWcgKHN0cmluZyBzdWdhciBvblxuICAgKiBgZGVmLm1vZGVsYCBvciBgY29uZmlnLmRlZmF1bHRNb2RlbGApLiBMb3NlcyB0byB0aGUgcGVyLXJlcXVlc3RcbiAgICogb3ZlcnJpZGUgYnV0IHdpbnMgb3ZlciBlbnYgLyBjbGFzcyAvIGZhbGxiYWNrLlxuICAgKi9cbiAgbW9kZWxJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIENoYXQgY2FwYWJpbGl0eSBjbGFzcyB0byByZXNvbHZlIHdoZW4gbm8gZXhwbGljaXQgbW9kZWwgaWQgaXNcbiAgICogc3VwcGxpZWQuIFVzZWQgYnkgaW50ZXJuYWwgYWdlbnRzIChlLmcuIHRoZSBjaGFydCBwbGFubmVyIGFza3MgZm9yXG4gICAqIHtAbGluayBtb2RlbC5Nb2RlbENsYXNzLkNoYXRGYXN0fSkgdG8gZXhwcmVzcyBpbnRlbnQgd2l0aG91dCBwaW5uaW5nIGFuXG4gICAqIGVuZHBvaW50IG5hbWU7IHRoZSBsaXZlIGNhdGFsb2d1ZSBpcyBjbGFzc2lmaWVkIGFuZCB0aGUgdG9wXG4gICAqIGF2YWlsYWJsZSBtb2RlbCBpbiB0aGUgY2xhc3MgaXMgY2hvc2VuLCBmYWxsaW5nIGJhY2sgdG8gdGhlXG4gICAqIGNsYXNzJ3Mgc3RhdGljIGxpc3Qgd2hlbiB0aGUgd29ya3NwYWNlIGhhcyBub25lLlxuICAgKi9cbiAgbW9kZWxDbGFzcz86IE1vZGVsQ2xhc3M7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBhIGBNYXN0cmFNb2RlbENvbmZpZ2AgZm9yIHRoZSBjdXJyZW50IGFnZW50IHN0ZXAuIFJ1bnNcbiAqIHdoaWxlIGBhZ2VudC5zdHJlYW1gIGlzIGluc2lkZSB0aGUgYGFzVXNlcihyZXEpYCBzY29wZSBzbyB0b2tlbnNcbiAqIGFyZSB1c2VyLXNjb3BlZDsgb3V0c2lkZSBhbiBhY3RpdmUgdXNlciBjb250ZXh0IHRoZSB3b3Jrc3BhY2VcbiAqIGNsaWVudCBmYWxscyBiYWNrIHRvIHRoZSBzZXJ2aWNlIHByaW5jaXBhbC5cbiAqXG4gKiBFbmRwb2ludCBwcmVjZWRlbmNlOiB0aGUgcGVyLXJlcXVlc3Qgb3ZlcnJpZGVcbiAqICh7QGxpbmsgTUFTVFJBX01PREVMX09WRVJSSURFX0tFWX0sIG9ubHkgd2hlbiBgY29uZmlnLm1vZGVsT3ZlcnJpZGVgIGFsbG93c1xuICogaXQpLCB0aGVuIHtAbGluayBCdWlsZE1vZGVsT3ZlcnJpZGVzLm1vZGVsSWR9IGZyb20gdGhlIGFnZW50IC8gcGx1Z2luXG4gKiBjb25maWcsIHRoZW4gYERBVEFCUklDS1NfU0VSVklOR19FTkRQT0lOVF9OQU1FYC4gV2l0aCBub25lIG9mIHRob3NlIHNldCB0aGVcbiAqIGNhcGFiaWxpdHkgY2xhc3MgYW5kIGZhbGxiYWNrIGxhZGRlciBpbiBgQGRieC10b29scy9tb2RlbGAgY2hvb3NlIHRoZVxuICogZW5kcG9pbnQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZE1vZGVsKFxuICBjb25maWc6IE1hc3RyYVBsdWdpbkNvbmZpZyxcbiAgcmVxdWVzdENvbnRleHQ6IFJlcXVlc3RDb250ZXh0LFxuICBvdmVycmlkZXM6IEJ1aWxkTW9kZWxPdmVycmlkZXMgPSB7fSxcbik6IFByb21pc2U8TWFzdHJhTW9kZWxDb25maWc+IHtcbiAgdm9pZCBzZXR1cEZldGNoSW50ZXJjZXB0b3IoKTtcbiAgLy8gVGhlIGNoYXQgcGF0aCBzdGFtcHMgdGhlIEFwcEtpdCB1c2VyIG9uIHRoZSByZXF1ZXN0IGNvbnRleHQgdmlhXG4gIC8vIGBNYXN0cmFTZXJ2ZXJgLiBUaGUgTUNQIHRyYW5zcG9ydCByb3V0ZXMgZG9uJ3QgdGhyZWFkIHRoYXQgY29udGV4dFxuICAvLyBpbnRvIHRvb2wgZXhlY3V0aW9uLCBzbyBmYWxsIGJhY2sgdG8gdGhlIGFtYmllbnQgZXhlY3V0aW9uIGNvbnRleHRcbiAgLy8gKHRoZSBhY3RpdmUgT0JPIHNjb3BlLCBvciB0aGUgc2VydmljZSBwcmluY2lwYWwpIHdoZW4gaXQncyBhYnNlbnQuXG4gIGNvbnN0IHVzZXIgPSByZXF1ZXN0Q29udGV4dC5nZXQoTUFTVFJBX1VTRVJfS0VZKSBhcyBVc2VyIHwgdW5kZWZpbmVkO1xuICBjb25zdCBleGVjdXRpb25Db250ZXh0ID0gdXNlcj8uZXhlY3V0aW9uQ29udGV4dCA/PyBnZXRFeGVjdXRpb25Db250ZXh0KCk7XG4gIGNvbnN0IGNsaWVudENvbmZpZyA9IGV4ZWN1dGlvbkNvbnRleHQuY2xpZW50LmNvbmZpZztcbiAgY29uc3QgaG9zdCA9IChhd2FpdCBjbGllbnRDb25maWcuZ2V0SG9zdCgpKS50b1N0cmluZygpO1xuICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTtcbiAgYXdhaXQgY2xpZW50Q29uZmlnLmF1dGhlbnRpY2F0ZShoZWFkZXJzKTtcbiAgLy8gVGhlIE9wZW5BSSBOb2RlIFNESyBhcHBlbmRzIHBhdGhzIGxpa2UgYC9jaGF0L2NvbXBsZXRpb25zYCB0byB3aGF0ZXZlclxuICAvLyBVUkwgd2UgaGFuZCBpdC4gRHJvcCB0aGUgdHJhaWxpbmcgc2xhc2ggc28gdGhlIHJlc3VsdGluZyBVUkwgc3RheXNcbiAgLy8gd2VsbC1mb3JtZWQgKGAvc2VydmluZy1lbmRwb2ludHMvY2hhdC9jb21wbGV0aW9uc2ApLlxuICBjb25zdCB1cmwgPSBuZXcgVVJMKFwiL3NlcnZpbmctZW5kcG9pbnRzXCIsIGhvc3QpLnRvU3RyaW5nKCkucmVwbGFjZSgvXFwvJC8sIFwiXCIpO1xuXG4gIGNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoY29uZmlnKTtcbiAgY29uc3Qgc2VydmluZyA9IHJlc29sdmVTZXJ2aW5nQ29uZmlnKGNvbmZpZyk7XG4gIGNvbnN0IG92ZXJyaWRlID0gc2VydmluZy5hbGxvd092ZXJyaWRlXG4gICAgPyAocmVxdWVzdENvbnRleHQuZ2V0KE1BU1RSQV9NT0RFTF9PVkVSUklERV9LRVkpIGFzIHN0cmluZyB8IHVuZGVmaW5lZClcbiAgICA6IHVuZGVmaW5lZDtcblxuICAvLyBUaGUgb3ZlcnJpZGUgLyBhZ2VudCBkZWZhdWx0IC8gZW52IHZhbHVlIGNhbiBiZSBlaXRoZXIgYSBjb25jcmV0ZVxuICAvLyBlbmRwb2ludCBuYW1lIG9yIGEgbW9kZWwgY2xhc3Mgc2x1ZyAoXCJjaGF0LXRoaW5raW5nXCIgL1xuICAvLyBcImNoYXQtYmFsYW5jZWRcIiAvIFwiY2hhdC1mYXN0XCIpLiBBIGNsYXNzIHNsdWcgYmVjb21lcyBhIGNsYXNzIGludGVudFxuICAvLyAobGV0IHRoZSBsaXZlIGNhdGFsb2d1ZSBwaWNrIHRoZSBiZXN0IG1vZGVsIGluIHRoYXQgYmFuZCk7IGFueXRoaW5nXG4gIC8vIGVsc2UgaXMgYW4gZXhwbGljaXQgbmFtZSBmdXp6eS1tYXRjaGVkIGFnYWluc3QgdGhlIGNhdGFsb2d1ZS4gQW5cbiAgLy8gaW50ZXJuYWwgYG92ZXJyaWRlcy5tb2RlbENsYXNzYCAoZS5nLiB0aGUgY2hhcnQgcGxhbm5lcikgaXMgdGhlXG4gIC8vIGZsb29yIHdoZW4gbm90aGluZyB3YXMgcmVxdWVzdGVkLlxuICBjb25zdCByZXF1ZXN0ZWQgPSBvdmVycmlkZSA/PyBvdmVycmlkZXMubW9kZWxJZCA/PyBwcm9jZXNzLmVudi5EQVRBQlJJQ0tTX1NFUlZJTkdfRU5EUE9JTlRfTkFNRTtcbiAgY29uc3QgcmVxdWVzdGVkQ2xhc3MgPSByZXF1ZXN0ZWQgIT09IHVuZGVmaW5lZCA/IHBhcnNlTW9kZWxDbGFzcyhyZXF1ZXN0ZWQpIDogbnVsbDtcbiAgY29uc3QgZXhwbGljaXQgPSByZXF1ZXN0ZWRDbGFzcyA9PT0gbnVsbCA/IHJlcXVlc3RlZCA6IHVuZGVmaW5lZDtcbiAgY29uc3QgbW9kZWxDbGFzcyA9IHJlcXVlc3RlZENsYXNzID8/IG92ZXJyaWRlcy5tb2RlbENsYXNzO1xuXG4gIGNvbnN0IHsgbW9kZWxJZCwgc291cmNlIH0gPSBhd2FpdCBzZWxlY3RNb2RlbChleGVjdXRpb25Db250ZXh0LmNsaWVudCwgaG9zdCwge1xuICAgIC4uLihleHBsaWNpdCAhPT0gdW5kZWZpbmVkID8geyBleHBsaWNpdCB9IDoge30pLFxuICAgIGZ1enp5OiBzZXJ2aW5nLmZ1enp5LFxuICAgIHRocmVzaG9sZDogc2VydmluZy50aHJlc2hvbGQsXG4gICAgLi4uKG1vZGVsQ2xhc3MgIT09IHVuZGVmaW5lZCA/IHsgbW9kZWxDbGFzcyB9IDoge30pLFxuICAgIGZhbGxiYWNrczogc2VydmluZy5mYWxsYmFja3MsXG4gICAgdHRsTXM6IHNlcnZpbmcudHRsTXMsXG4gIH0pO1xuICBsb2dnZXIuZGVidWcoXCJtb2RlbCBzZWxlY3RlZFwiLCB7IG1vZGVsSWQsIHNvdXJjZSwgcmVxdWVzdGVkIH0pO1xuXG4gIHJldHVybiB7XG4gICAgcHJvdmlkZXJJZDogY29uZmlnLnByb3ZpZGVySWQgPz8gXCJkYXRhYnJpY2tzXCIsXG4gICAgbW9kZWxJZCxcbiAgICB1cmwsXG4gICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKGhlYWRlcnMuZW50cmllcygpKSxcbiAgfTtcbn1cblxuLyoqIFBhdGggcHJlZml4IHRoYXQgaWRlbnRpZmllcyBhIERhdGFicmlja3MgTW9kZWwgU2VydmluZyBSRVNUIGNhbGwuICovXG5jb25zdCBTRVJWSU5HX0VORFBPSU5UU19QQVRIX1BSRUZJWCA9IFwiL3NlcnZpbmctZW5kcG9pbnRzL1wiO1xuXG4vKipcbiAqIEluc3RhbGwgYSBzaW5nbGUgc2hhcmVkIGBnbG9iYWxUaGlzLmZldGNoYCB3cmFwcGVyIGZvciBldmVyeSBQT1NUIHRvXG4gKiBgL3NlcnZpbmctZW5kcG9pbnRzLy4uLmAuIFRoZSB3cmFwcGVyIGRvZXMgdHdvIHRoaW5nczpcbiAqXG4gKiAgIDEuIFJld3JpdGVzIHRoZSBvdXRnb2luZyBgbWVzc2FnZXNgIGFycmF5IHRvIHJlcGFpciBNYXN0cmEvQUkgU0RLXG4gKiAgICAgIHN0cmVhbS1yZXBsYXkgcXVpcmtzIHRoYXQgRGF0YWJyaWNrcy1ob3N0ZWQgQ2xhdWRlIHJlamVjdHMgKHNlZVxuICogICAgICB7QGxpbmsgcmV3cml0ZVNlcnZpbmdCb2R5fSBpbiBgLi9zZXJ2aW5nLXNhbml0aXplLmpzYCkuXG4gKiAgIDIuIEF0IGBMT0dfTEVWRUw9ZGVidWdgLCBkdW1wcyB0aGUgKHBvc3Qtc2FuaXRpemUpIEpTT04gYm9keSBzb1xuICogICAgICA0eHggZGVidWdnaW5nIGRvZXNuJ3QgaGF2ZSB0byBmaWdodCBBSSBTREsncyBgW0FycmF5XWBcbiAqICAgICAgZm9ybWF0dGVyLlxuICogICAzLiBSZXBhaXJzIHRoZSBub24tc3RyZWFtaW5nIEpTT04gcmVzcG9uc2UsIHdoZXJlIERhdGFicmlja3MtaG9zdGVkXG4gKiAgICAgIEdlbWluaSByZXR1cm5zIGBjaG9pY2VzW10ubWVzc2FnZS5jb250ZW50YCBhcyBhIHBhcnRzIGFycmF5IHRoYXRcbiAqICAgICAgdGhlIEFJIFNESydzIE9wZW5BSSBzY2hlbWEgcmVqZWN0cyAoc2VlXG4gKiAgICAgIHtAbGluayByZXdyaXRlU2VydmluZ1Jlc3BvbnNlQm9keX0pLlxuICpcbiAqIFNhZmUgdG8gY2FsbCBmcm9tIGFueSBob3QgcGF0aDoge0BsaW5rIGZ1bmN0aW9uTW9kdWxlLm1lbW9pemV9IGVuc3VyZXNcbiAqIHRoZSB3cmFwcGVyIGlzIGluc3RhbGxlZCBhdCBtb3N0IG9uY2UgcGVyIHByb2Nlc3MsIHNvIHN1YnNlcXVlbnRcbiAqIGNhbGxzIGFyZSBhIG5vLW9wIGV2ZW4gd2hlbiB7QGxpbmsgYnVpbGRNb2RlbH0gZmlyZXMgb24gZXZlcnkgYWdlbnRcbiAqIHN0ZXAuXG4gKi9cbmNvbnN0IHNldHVwRmV0Y2hJbnRlcmNlcHRvciA9IGZ1bmN0aW9uTW9kdWxlLm1lbW9pemUoKCk6IHZvaWQgPT4ge1xuICBjb25zdCBsb2dnZXIgPSBsb2cubG9nZ2VyKFwibWFzdHJhL2xsbVwiKTtcbiAgY29uc3Qgb3JpZ2luYWwgPSBnbG9iYWxUaGlzLmZldGNoLmJpbmQoZ2xvYmFsVGhpcyk7XG4gIGdsb2JhbFRoaXMuZmV0Y2ggPSAoYXN5bmMgKGlucHV0LCBpbml0KSA9PiB7XG4gICAgY29uc3QgdXJsID0gbmV0LnVybEJ1aWxkZXIoaW5wdXQpO1xuICAgIGlmIChcbiAgICAgICF1cmwgfHxcbiAgICAgICF1cmwucGF0aG5hbWUuc3RhcnRzV2l0aChTRVJWSU5HX0VORFBPSU5UU19QQVRIX1BSRUZJWCkgfHxcbiAgICAgIHR5cGVvZiBpbml0Py5ib2R5ICE9PSBcInN0cmluZ1wiXG4gICAgKSB7XG4gICAgICByZXR1cm4gb3JpZ2luYWwoaW5wdXQsIGluaXQpO1xuICAgIH1cbiAgICBjb25zdCByZXdyaXR0ZW4gPSByZXdyaXRlU2VydmluZ0JvZHkoaW5pdC5ib2R5KTtcbiAgICBpZiAocmV3cml0dGVuICE9PSBpbml0LmJvZHkpIHtcbiAgICAgIGluaXQgPSB7IC4uLmluaXQsIGJvZHk6IHJld3JpdHRlbiB9O1xuICAgIH1cbiAgICBjb25zdCBwYXJzZWQgPSBqc29uLnBhcnNlPHVua25vd24+KHJld3JpdHRlbik7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgXCJQT1NUXCIsXG4gICAgICBwYXJzZWQgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHsgdXJsOiB1cmwudG9TdHJpbmcoKSwgYm9keVR5cGU6IFwibm9uLUpTT05cIiB9XG4gICAgICAgIDogeyB1cmw6IHVybC50b1N0cmluZygpLCBib2R5OiBwYXJzZWQgfSxcbiAgICApO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgb3JpZ2luYWwoaW5wdXQsIGluaXQpO1xuICAgIHJldHVybiByZXBhaXJTZXJ2aW5nUmVzcG9uc2UocmVzcG9uc2UpO1xuICB9KSBhcyB0eXBlb2YgZ2xvYmFsVGhpcy5mZXRjaDtcbn0pO1xuXG4vKipcbiAqIFJld3JpdGUgYSBub24tc3RyZWFtaW5nIHNlcnZpbmcgcmVzcG9uc2Ugd2hvc2UgYm9keSBuZWVkcyByZXBhaXIsIGxlYXZpbmdcbiAqIGV2ZXJ5dGhpbmcgZWxzZSBieXRlLWlkZW50aWNhbC5cbiAqXG4gKiBTdHJlYW1pbmcgdHVybnMgYXJlIHBhc3NlZCBzdHJhaWdodCB0aHJvdWdoOiBhbiBTU0UgYm9keSBtdXN0IHN0YXkgYSBsaXZlXG4gKiBzdHJlYW0gKGJ1ZmZlcmluZyBpdCB0byBhIHN0cmluZyB3b3VsZCBkZWZlYXQgc3RyZWFtaW5nIGFuZCBicmVha1xuICogYHRleHQvZXZlbnQtc3RyZWFtYCBwYXJzaW5nKSwgYW5kIHRoZSBkZWx0YSBmcmFtZXMgYWxyZWFkeSBjYXJyeSBzdHJpbmdcbiAqIGNvbnRlbnQsIHNvIHRoZXkgbmV2ZXIgaGl0IHRoZSBhcnJheS1zaGFwZWQgYGNvbnRlbnRgIGJ1Zy4gTGlrZXdpc2UgYVxuICogbm9uLUpTT04gb3IgZXJyb3IgYm9keSBpcyByZXR1cm5lZCB1bnRvdWNoZWQsIHNvIHRoZSBjYWxsZXIgc3RpbGwgc2VlcyB0aGVcbiAqIG9yaWdpbmFsIHN0YXR1cyBhbmQgaGVhZGVycy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVwYWlyU2VydmluZ1Jlc3BvbnNlKHJlc3BvbnNlOiBSZXNwb25zZSk6IFByb21pc2U8UmVzcG9uc2U+IHtcbiAgY29uc3QgY29udGVudFR5cGUgPSByZXNwb25zZS5oZWFkZXJzLmdldChcImNvbnRlbnQtdHlwZVwiKSA/PyBcIlwiO1xuICBpZiAoIWNvbnRlbnRUeXBlLmluY2x1ZGVzKFwiYXBwbGljYXRpb24vanNvblwiKSkgcmV0dXJuIHJlc3BvbnNlO1xuXG4gIGNvbnN0IGJvZHkgPSBhd2FpdCByZXNwb25zZS5jbG9uZSgpLnRleHQoKTtcbiAgY29uc3QgcmV3cml0dGVuID0gcmV3cml0ZVNlcnZpbmdSZXNwb25zZUJvZHkoYm9keSk7XG4gIGlmIChyZXdyaXR0ZW4gPT09IGJvZHkpIHJldHVybiByZXNwb25zZTtcblxuICAvLyBgY29udGVudC1sZW5ndGhgIC8gYGNvbnRlbnQtZW5jb2RpbmdgIGRlc2NyaWJlIHRoZSBPUklHSU5BTCBieXRlcywgc28gdGhleVxuICAvLyBhcmUgZHJvcHBlZDogdGhlIHJld3JpdHRlbiBib2R5IGlzIGEgZGlmZmVyZW50IGxlbmd0aCBhbmQgYWxyZWFkeSBkZWNvZGVkLlxuICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMocmVzcG9uc2UuaGVhZGVycyk7XG4gIGhlYWRlcnMuZGVsZXRlKFwiY29udGVudC1sZW5ndGhcIik7XG4gIGhlYWRlcnMuZGVsZXRlKFwiY29udGVudC1lbmNvZGluZ1wiKTtcbiAgcmV0dXJuIG5ldyBSZXNwb25zZShyZXdyaXR0ZW4sIHtcbiAgICBzdGF0dXM6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICBzdGF0dXNUZXh0OiByZXNwb25zZS5zdGF0dXNUZXh0LFxuICAgIGhlYWRlcnMsXG4gIH0pO1xufVxuIl19
@@ -95,4 +95,4 @@ export async function buildObservability(options) {
95
95
  },
96
96
  });
97
97
  }
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vYnNlcnZhYmlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXRELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUVsRCxNQUFNLG9CQUFvQixHQUFHLFFBQVEsQ0FBQztBQW9DdEMsOEVBQThFO0FBQzlFLE1BQU0sVUFBVSx1QkFBdUI7SUFDckMsT0FBTyxPQUFPLENBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUMxRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0JBQWtCLENBQ3RDLE9BQW1DO0lBRW5DLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUM7SUFDekQsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDO0lBQzFFLE1BQU0sY0FBYyxHQUFHLHVCQUF1QixFQUFFLENBQUM7SUFFakQsSUFBSSxPQUFPLEVBQUUsT0FBTyxLQUFLLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEtBQUssSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUNqRixNQUFNLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFO1lBQ3RDLE1BQU0sRUFDSixPQUFPLEVBQUUsT0FBTyxLQUFLLEtBQUs7Z0JBQ3hCLENBQUMsQ0FBQywyQkFBMkI7Z0JBQzdCLENBQUMsQ0FBQyxtQ0FBbUM7U0FDMUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLE9BQU8sRUFBRSxXQUFXLElBQUksQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLG9CQUFvQixDQUFDO0lBQzNGLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLGtCQUFrQixJQUFJLDBCQUEwQixDQUFDLENBQUMsQ0FBQztJQUU1RixtRUFBbUU7SUFDbkUsc0RBQXNEO0lBQ3RELHFFQUFxRTtJQUNyRSxnRUFBZ0U7SUFDaEUsbUVBQW1FO0lBQ25FLGtFQUFrRTtJQUNsRSw2QkFBNkI7SUFDN0IsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0I7UUFDMUMsQ0FBQyxDQUFDLGtCQUFrQjtRQUNwQixDQUFDLENBQUMsUUFBUTtZQUNSLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxZQUFZO1lBQzdDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxnREFBZ0QsRUFBRTtRQUM1RCxXQUFXO1FBQ1gsa0JBQWtCO1FBQ2xCLFFBQVEsRUFBRSxRQUFRLElBQUksU0FBUztRQUMvQixpQkFBaUIsRUFBRSxpQkFBaUIsSUFBSSxTQUFTO0tBQ2xELENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxhQUFhLENBQUM7UUFDdkIsT0FBTyxFQUFFO1lBQ1AsV0FBVyxFQUFFO2dCQUNYLFdBQVc7Z0JBQ1gsTUFBTSxFQUFFLElBQUksVUFBVSxFQUFFO2dCQUN4QixrQkFBa0I7YUFDbkI7U0FDRjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1hc3RyYSBvYnNlcnZhYmlsaXR5IHdpcmVkIHRocm91Z2ggdGhlIHNhbWUgT1RlbCBwaXBlbGluZSBBcHBLaXQnc1xuICogYnVpbHQtaW4gcGx1Z2lucyAoZS5nLiBgYWdlbnRzYCkgdXNlLCB2aWEgYEBtYXN0cmEvb3RlbC1icmlkZ2VgLlxuICpcbiAqIEhvdyB0cmFjZXMgZmxvdzpcbiAqXG4gKiAxLiBgQGRhdGFicmlja3MvYXBwa2l0YCBib290cyBhIGdsb2JhbCBgTm9kZVNES2AgaW5cbiAqICAgIGBUZWxlbWV0cnlNYW5hZ2VyLmluaXRpYWxpemUoKWAgKGR1cmluZyBgY3JlYXRlQXBwYCkgd2hlblxuICogICAgYE9URUxfRVhQT1JURVJfT1RMUF9FTkRQT0lOVGAgaXMgc2V0IGluIHRoZSBwcm9jZXNzIGVudi5cbiAqIDIuIEV2ZXJ5IEFwcEtpdCBwbHVnaW4gc3BhbiAoZS5nLiB0aGUgYGFnZW50c2AgcGx1Z2luJ3NcbiAqICAgIGBleGVjdXRlU3RyZWFtYCkgaXMgY3JlYXRlZCB2aWEgdGhlIGdsb2JhbCBPVGVsIHRyYWNlclxuICogICAgKGB0cmFjZS5nZXRUcmFjZXIoPHBsdWdpbj4pYCksIHNvIGl0IGxhbmRzIG9uIHRoYXQgTm9kZVNESyBhbmRcbiAqICAgIGlzIHNoaXBwZWQgdGhyb3VnaCBpdHMgT1RMUCBleHBvcnRlci5cbiAqIDMuIFRoZSBNYXN0cmEgYE90ZWxCcmlkZ2VgIEFMU08gY3JlYXRlcyByZWFsIE9UZWwgc3BhbnMgb24gdGhlIHNhbWVcbiAqICAgIGdsb2JhbCB0cmFjZXIgZm9yIGV2ZXJ5IE1hc3RyYSBvcGVyYXRpb24gKGFnZW50IHJ1bnMsIG1vZGVsXG4gKiAgICBjYWxscywgdG9vbCBpbnZvY2F0aW9ucywgd29ya2Zsb3cgc3RlcHMpLiBUaGV5IGluaGVyaXQgdGhlXG4gKiAgICBhbWJpZW50IE9UZWwgY29udGV4dCwgc28gd2hlbiBNYXN0cmEgaXMgaW52b2tlZCBmcm9tIGluc2lkZSBhblxuICogICAgQXBwS2l0IEhUVFAgc3BhbiB0aGUgdHJhY2Ugc3RheXMgY29ubmVjdGVkLlxuICpcbiAqIE5ldCBlZmZlY3Q6IE1hc3RyYSBzcGFucyBnZXQgZXhhY3RseSB0aGUgdHJlYXRtZW50IEFwcEtpdCdzXG4gKiBgYWdlbnRzYCBwbHVnaW4gZ2V0cy4gTm8gY3VzdG9tIE9UTFAgcGlwZWxpbmUgbGl2ZXMgaW4gdGhpc1xuICogcGFja2FnZTsgdGhlIE9UTFAgZW5kcG9pbnQsIGhlYWRlcnMsIGFuZCByZXNvdXJjZSBhdHRyaWJ1dGVzIGFyZVxuICogZHJpdmVuIGJ5IHRoZSBzdGFuZGFyZCBPVGVsIGVudiB2YXJzXG4gKiAoYE9URUxfRVhQT1JURVJfT1RMUF9FTkRQT0lOVGAsIGBPVEVMX0VYUE9SVEVSX09UTFBfSEVBREVSU2AsXG4gKiBgT1RFTF9TRVJWSUNFX05BTUVgLCBgT1RFTF9SRVNPVVJDRV9BVFRSSUJVVEVTYCwgLi4uKSBhbmQgY29uc3VtZWRcbiAqIGJ5IEFwcEtpdCdzIGBUZWxlbWV0cnlNYW5hZ2VyYC4gU2V0IHRob3NlIG9uY2UgYW5kIGJvdGggQXBwS2l0IGFuZFxuICogTWFzdHJhIHNwYW5zIGVuZCB1cCBhdCB0aGUgc2FtZSBiYWNrZW5kLlxuICpcbiAqIFdoZW4gYE9URUxfRVhQT1JURVJfT1RMUF9FTkRQT0lOVGAgaXMgdW5zZXQgdGhlIGJyaWRnZSBpcyBub3RcbiAqIHJlZ2lzdGVyZWQgYXQgYWxsICh1bmxlc3MgYG9ic2VydmFiaWxpdHk6IHRydWVgIGZvcmNlcyBpdCBvbiksIHNvXG4gKiBNYXN0cmEgZG9lcyBub3QgZW1pdCBgW090ZWxCcmlkZ2VdIE5vIE9URUwgc3BhbiBmb3VuZGAgd2FybmluZ3MuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IHByb2plY3QgfSBmcm9tIFwiQGRieC10b29scy9jb3JlXCI7XG5pbXBvcnQgeyBsb2cgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJpbGl0eSB9IGZyb20gXCJAbWFzdHJhL29ic2VydmFiaWxpdHlcIjtcbmltcG9ydCB7IE90ZWxCcmlkZ2UgfSBmcm9tIFwiQG1hc3RyYS9vdGVsLWJyaWRnZVwiO1xuXG5pbXBvcnQgeyBUUkFDRV9SRVFVRVNUX0NPTlRFWFRfS0VZUyB9IGZyb20gXCIuL2NvbmZpZ1wiO1xuXG5jb25zdCBsb2dnZXIgPSBsb2cubG9nZ2VyKFwibWFzdHJhL29ic2VydmFiaWxpdHlcIik7XG5cbmNvbnN0IERFRkFVTFRfU0VSVklDRV9OQU1FID0gXCJtYXN0cmFcIjtcblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZE9ic2VydmFiaWxpdHlPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gd2lyZSB0aGUgTWFzdHJhIGBPdGVsQnJpZGdlYC4gTWlycm9yc1xuICAgKiB7QGxpbmsgTWFzdHJhUGx1Z2luQ29uZmlnLm9ic2VydmFiaWxpdHl9OlxuICAgKlxuICAgKiAtIGB1bmRlZmluZWRgIChhdXRvKTogb24gb25seSB3aGVuIGBPVEVMX0VYUE9SVEVSX09UTFBfRU5EUE9JTlRgIG9yXG4gICAqICAgYE9URUxfRVhQT1JURVJfT1RMUF9UUkFDRVNfRU5EUE9JTlRgIGlzIHNldCAoc2FtZSBzaWduYWwgQXBwS2l0J3NcbiAgICogICBgVGVsZW1ldHJ5TWFuYWdlcmAgdXNlcyB0byByZWdpc3RlciBhIHJlYWwgdHJhY2VyKS4gV2hlbiB1bnNldCxcbiAgICogICBza2lwIHRoZSBicmlkZ2UgZW50aXJlbHkgc28gTWFzdHJhIGRvZXMgbm90IGVtaXRcbiAgICogICBgW090ZWxCcmlkZ2VdIE5vIE9URUwgc3BhbiBmb3VuZGAgd2FybmluZ3Mgb24gdGhlIG5vb3AgdHJhY2VyLlxuICAgKiAtIGB0cnVlYDogZm9yY2Ugb24gZXZlbiB3aXRob3V0IGFuIE9UTFAgZW5kcG9pbnQuXG4gICAqIC0gYGZhbHNlYDogZm9yY2Ugb2ZmLlxuICAgKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTZXJ2aWNlIG5hbWUgYXR0YWNoZWQgdG8gdGhlIE1hc3RyYSBgT2JzZXJ2YWJpbGl0eWAgY29uZmlnLiBVc2VkXG4gICAqIGFzIHRoZSB0cmFjZXIgc2NvcGUgbmFtZSBvbiBicmlkZ2VkIE9UZWwgc3BhbnMgKHRoZSBgc2VydmljZS5uYW1lYFxuICAgKiByZXNvdXJjZSBhdHRyaWJ1dGUgaXMgb3duZWQgYnkgQXBwS2l0J3MgYFRlbGVtZXRyeU1hbmFnZXJgIGluc3RlYWRcbiAgICogLSBpdCByZWFkcyBgT1RFTF9TRVJWSUNFX05BTUVgIC8gYERBVEFCUklDS1NfQVBQX05BTUVgIGF0XG4gICAqIGBjcmVhdGVBcHBgIHRpbWUpLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byBwcm9qZWN0IG5hbWUgdGhlbiBgXCJtYXN0cmFcImAuXG4gICAqL1xuICBzZXJ2aWNlTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIGBSZXF1ZXN0Q29udGV4dGAga2V5cyB0byBleHRyYWN0IGFzIHNwYW4gbWV0YWRhdGEgb24gZXZlcnkgTWFzdHJhXG4gICAqIHRyYWNlLiBEZWZhdWx0cyB0byB7QGxpbmsgVFJBQ0VfUkVRVUVTVF9DT05URVhUX0tFWVN9ICh1c2VyIGlkLFxuICAgKiB0aHJlYWQgaWQsIHJlcXVlc3QgaWQsIGVudmlyb25tZW50LCBtb2RlbCBvdmVycmlkZSwgLi4uKS5cbiAgICpcbiAgICogU3VwcG9ydHMgZG90IG5vdGF0aW9uIGZvciBuZXN0ZWQgdmFsdWVzIHBlciB0aGUgTWFzdHJhIGRvY3MuXG4gICAqL1xuICByZXF1ZXN0Q29udGV4dEtleXM/OiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuLyoqIFRydWUgd2hlbiBBcHBLaXQncyBnbG9iYWwgT1RlbCBwaXBlbGluZSBpcyBjb25maWd1cmVkIHRvIGV4cG9ydCB0cmFjZXMuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPdGxwVHJhY2luZ0NvbmZpZ3VyZWQoKTogYm9vbGVhbiB7XG4gIHJldHVybiBCb29sZWFuKFxuICAgIHByb2Nlc3MuZW52Lk9URUxfRVhQT1JURVJfT1RMUF9FTkRQT0lOVCB8fCBwcm9jZXNzLmVudi5PVEVMX0VYUE9SVEVSX09UTFBfVFJBQ0VTX0VORFBPSU5ULFxuICApO1xufVxuXG4vKipcbiAqIEJ1aWxkIGEgTWFzdHJhIGBPYnNlcnZhYmlsaXR5YCB3aG9zZSBzcGFucyByaWRlIEFwcEtpdCdzIGdsb2JhbFxuICogT1RlbCBwaXBlbGluZSB2aWEgYEBtYXN0cmEvb3RlbC1icmlkZ2VgLlxuICpcbiAqIFJldHVybnMgYHVuZGVmaW5lZGAgd2hlbiB0cmFjaW5nIGlzIG9mZjogZWl0aGVyIHRoZSBjYWxsZXIgcGFzc2VkXG4gKiBgZW5hYmxlZDogZmFsc2VgLCBvciBhdXRvIG1vZGUgZmluZHMgbm8gT1RMUCBlbmRwb2ludCAodGhlIGRlZmF1bHQpLlxuICogU2tpcHBpbmcgdGhlIGJyaWRnZSBpbiB0aGF0IGNhc2UgYXZvaWRzIGBbT3RlbEJyaWRnZV0gTm8gT1RFTCBzcGFuXG4gKiBmb3VuZGAgbG9nIHNwYW0gZnJvbSBNYXN0cmEgc3BhbnMgdGhhdCBoYXZlIG5vIHBhcmVudCBvbiB0aGUgbm9vcFxuICogdHJhY2VyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRPYnNlcnZhYmlsaXR5KFxuICBvcHRpb25zPzogQnVpbGRPYnNlcnZhYmlsaXR5T3B0aW9ucyxcbik6IFByb21pc2U8T2JzZXJ2YWJpbGl0eSB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCBvdGVsQmFzZSA9IHByb2Nlc3MuZW52Lk9URUxfRVhQT1JURVJfT1RMUF9FTkRQT0lOVDtcbiAgY29uc3Qgb3RlbFRyYWNlc092ZXJyaWRlID0gcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX1RSQUNFU19FTkRQT0lOVDtcbiAgY29uc3Qgb3RscENvbmZpZ3VyZWQgPSBpc090bHBUcmFjaW5nQ29uZmlndXJlZCgpO1xuXG4gIGlmIChvcHRpb25zPy5lbmFibGVkID09PSBmYWxzZSB8fCAob3B0aW9ucz8uZW5hYmxlZCAhPT0gdHJ1ZSAmJiAhb3RscENvbmZpZ3VyZWQpKSB7XG4gICAgbG9nZ2VyLmluZm8oXCJNYXN0cmEgb2JzZXJ2YWJpbGl0eSBvZmZcIiwge1xuICAgICAgcmVhc29uOlxuICAgICAgICBvcHRpb25zPy5lbmFibGVkID09PSBmYWxzZVxuICAgICAgICAgID8gXCJkaXNhYmxlZCBpbiBwbHVnaW4gY29uZmlnXCJcbiAgICAgICAgICA6IFwiT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UIHVuc2V0XCIsXG4gICAgfSk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHNlcnZpY2VOYW1lID0gb3B0aW9ucz8uc2VydmljZU5hbWUgPz8gKGF3YWl0IHByb2plY3QubmFtZSgpKSA/PyBERUZBVUxUX1NFUlZJQ0VfTkFNRTtcbiAgY29uc3QgcmVxdWVzdENvbnRleHRLZXlzID0gWy4uLihvcHRpb25zPy5yZXF1ZXN0Q29udGV4dEtleXMgPz8gVFJBQ0VfUkVRVUVTVF9DT05URVhUX0tFWVMpXTtcblxuICAvLyBUaGUgT1RlbCBIVFRQIGV4cG9ydGVyIHRyZWF0cyBgT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UYCBhcyBhXG4gIC8vICpiYXNlKiBVUkwgYW5kIGFwcGVuZHMgdGhlIHNpZ25hbCBwYXRoIGl0c2VsZiAoZS5nLlxuICAvLyBgaHR0cDovL2xvY2FsaG9zdDo2MDA2YCAtPiBgaHR0cDovL2xvY2FsaG9zdDo2MDA2L3YxL3RyYWNlc2ApLiBMb2dcbiAgLy8gdGhlIHJlc29sdmVkIFBPU1QgVVJMIHNvIG1pc2NvbmZpZ3VyYXRpb25zIChlLmcuIGFjY2lkZW50YWxseVxuICAvLyBzZXR0aW5nIHRoZSBiYXNlIHZhciB0byBhIGAvdjEvdHJhY2VzYC1zdWZmaXhlZCBVUkwsIHdoaWNoIG1ha2VzXG4gIC8vIHRoZSBTREsgUE9TVCB0byBgLi4uL3YxL3RyYWNlcy92MS90cmFjZXNgIGFuZCBQaG9lbml4IDQwNHMpIGFyZVxuICAvLyBvYnZpb3VzIGluIHN0YXJ0dXAgb3V0cHV0LlxuICBjb25zdCByZXNvbHZlZFRyYWNlc1VybCA9IG90ZWxUcmFjZXNPdmVycmlkZVxuICAgID8gb3RlbFRyYWNlc092ZXJyaWRlXG4gICAgOiBvdGVsQmFzZVxuICAgICAgPyBgJHtvdGVsQmFzZS5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpfS92MS90cmFjZXNgXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgbG9nZ2VyLmluZm8oXCJNYXN0cmEgb2JzZXJ2YWJpbGl0eSB3aXJlZCB0aHJvdWdoIE9UZWwgYnJpZGdlXCIsIHtcbiAgICBzZXJ2aWNlTmFtZSxcbiAgICByZXF1ZXN0Q29udGV4dEtleXMsXG4gICAgb3RlbEJhc2U6IG90ZWxCYXNlID8/IFwiPHVuc2V0PlwiLFxuICAgIHJlc29sdmVkVHJhY2VzVXJsOiByZXNvbHZlZFRyYWNlc1VybCA/PyBcIjx1bnNldD5cIixcbiAgfSk7XG5cbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmlsaXR5KHtcbiAgICBjb25maWdzOiB7XG4gICAgICBzZXJ2aWNlTmFtZToge1xuICAgICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgICAgYnJpZGdlOiBuZXcgT3RlbEJyaWRnZSgpLFxuICAgICAgICByZXF1ZXN0Q29udGV4dEtleXMsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xufVxuIl19
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vYnNlcnZhYmlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXpELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUVsRCxNQUFNLG9CQUFvQixHQUFHLFFBQVEsQ0FBQztBQW9DdEMsOEVBQThFO0FBQzlFLE1BQU0sVUFBVSx1QkFBdUI7SUFDckMsT0FBTyxPQUFPLENBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUMxRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0JBQWtCLENBQ3RDLE9BQW1DO0lBRW5DLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUM7SUFDekQsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDO0lBQzFFLE1BQU0sY0FBYyxHQUFHLHVCQUF1QixFQUFFLENBQUM7SUFFakQsSUFBSSxPQUFPLEVBQUUsT0FBTyxLQUFLLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEtBQUssSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUNqRixNQUFNLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFO1lBQ3RDLE1BQU0sRUFDSixPQUFPLEVBQUUsT0FBTyxLQUFLLEtBQUs7Z0JBQ3hCLENBQUMsQ0FBQywyQkFBMkI7Z0JBQzdCLENBQUMsQ0FBQyxtQ0FBbUM7U0FDMUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLE9BQU8sRUFBRSxXQUFXLElBQUksQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLG9CQUFvQixDQUFDO0lBQzNGLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLGtCQUFrQixJQUFJLDBCQUEwQixDQUFDLENBQUMsQ0FBQztJQUU1RixtRUFBbUU7SUFDbkUsc0RBQXNEO0lBQ3RELHFFQUFxRTtJQUNyRSxnRUFBZ0U7SUFDaEUsbUVBQW1FO0lBQ25FLGtFQUFrRTtJQUNsRSw2QkFBNkI7SUFDN0IsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0I7UUFDMUMsQ0FBQyxDQUFDLGtCQUFrQjtRQUNwQixDQUFDLENBQUMsUUFBUTtZQUNSLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxZQUFZO1lBQzdDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxnREFBZ0QsRUFBRTtRQUM1RCxXQUFXO1FBQ1gsa0JBQWtCO1FBQ2xCLFFBQVEsRUFBRSxRQUFRLElBQUksU0FBUztRQUMvQixpQkFBaUIsRUFBRSxpQkFBaUIsSUFBSSxTQUFTO0tBQ2xELENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxhQUFhLENBQUM7UUFDdkIsT0FBTyxFQUFFO1lBQ1AsV0FBVyxFQUFFO2dCQUNYLFdBQVc7Z0JBQ1gsTUFBTSxFQUFFLElBQUksVUFBVSxFQUFFO2dCQUN4QixrQkFBa0I7YUFDbkI7U0FDRjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1hc3RyYSBvYnNlcnZhYmlsaXR5IHdpcmVkIHRocm91Z2ggdGhlIHNhbWUgT1RlbCBwaXBlbGluZSBBcHBLaXQnc1xuICogYnVpbHQtaW4gcGx1Z2lucyAoZS5nLiBgYWdlbnRzYCkgdXNlLCB2aWEgYEBtYXN0cmEvb3RlbC1icmlkZ2VgLlxuICpcbiAqIEhvdyB0cmFjZXMgZmxvdzpcbiAqXG4gKiAxLiBgQGRhdGFicmlja3MvYXBwa2l0YCBib290cyBhIGdsb2JhbCBgTm9kZVNES2AgaW5cbiAqICAgIGBUZWxlbWV0cnlNYW5hZ2VyLmluaXRpYWxpemUoKWAgKGR1cmluZyBgY3JlYXRlQXBwYCkgd2hlblxuICogICAgYE9URUxfRVhQT1JURVJfT1RMUF9FTkRQT0lOVGAgaXMgc2V0IGluIHRoZSBwcm9jZXNzIGVudi5cbiAqIDIuIEV2ZXJ5IEFwcEtpdCBwbHVnaW4gc3BhbiAoZS5nLiB0aGUgYGFnZW50c2AgcGx1Z2luJ3NcbiAqICAgIGBleGVjdXRlU3RyZWFtYCkgaXMgY3JlYXRlZCB2aWEgdGhlIGdsb2JhbCBPVGVsIHRyYWNlclxuICogICAgKGB0cmFjZS5nZXRUcmFjZXIoPHBsdWdpbj4pYCksIHNvIGl0IGxhbmRzIG9uIHRoYXQgTm9kZVNESyBhbmRcbiAqICAgIGlzIHNoaXBwZWQgdGhyb3VnaCBpdHMgT1RMUCBleHBvcnRlci5cbiAqIDMuIFRoZSBNYXN0cmEgYE90ZWxCcmlkZ2VgIEFMU08gY3JlYXRlcyByZWFsIE9UZWwgc3BhbnMgb24gdGhlIHNhbWVcbiAqICAgIGdsb2JhbCB0cmFjZXIgZm9yIGV2ZXJ5IE1hc3RyYSBvcGVyYXRpb24gKGFnZW50IHJ1bnMsIG1vZGVsXG4gKiAgICBjYWxscywgdG9vbCBpbnZvY2F0aW9ucywgd29ya2Zsb3cgc3RlcHMpLiBUaGV5IGluaGVyaXQgdGhlXG4gKiAgICBhbWJpZW50IE9UZWwgY29udGV4dCwgc28gd2hlbiBNYXN0cmEgaXMgaW52b2tlZCBmcm9tIGluc2lkZSBhblxuICogICAgQXBwS2l0IEhUVFAgc3BhbiB0aGUgdHJhY2Ugc3RheXMgY29ubmVjdGVkLlxuICpcbiAqIE5ldCBlZmZlY3Q6IE1hc3RyYSBzcGFucyBnZXQgZXhhY3RseSB0aGUgdHJlYXRtZW50IEFwcEtpdCdzXG4gKiBgYWdlbnRzYCBwbHVnaW4gZ2V0cy4gTm8gY3VzdG9tIE9UTFAgcGlwZWxpbmUgbGl2ZXMgaW4gdGhpc1xuICogcGFja2FnZTsgdGhlIE9UTFAgZW5kcG9pbnQsIGhlYWRlcnMsIGFuZCByZXNvdXJjZSBhdHRyaWJ1dGVzIGFyZVxuICogZHJpdmVuIGJ5IHRoZSBzdGFuZGFyZCBPVGVsIGVudiB2YXJzXG4gKiAoYE9URUxfRVhQT1JURVJfT1RMUF9FTkRQT0lOVGAsIGBPVEVMX0VYUE9SVEVSX09UTFBfSEVBREVSU2AsXG4gKiBgT1RFTF9TRVJWSUNFX05BTUVgLCBgT1RFTF9SRVNPVVJDRV9BVFRSSUJVVEVTYCwgLi4uKSBhbmQgY29uc3VtZWRcbiAqIGJ5IEFwcEtpdCdzIGBUZWxlbWV0cnlNYW5hZ2VyYC4gU2V0IHRob3NlIG9uY2UgYW5kIGJvdGggQXBwS2l0IGFuZFxuICogTWFzdHJhIHNwYW5zIGVuZCB1cCBhdCB0aGUgc2FtZSBiYWNrZW5kLlxuICpcbiAqIFdoZW4gYE9URUxfRVhQT1JURVJfT1RMUF9FTkRQT0lOVGAgaXMgdW5zZXQgdGhlIGJyaWRnZSBpcyBub3RcbiAqIHJlZ2lzdGVyZWQgYXQgYWxsICh1bmxlc3MgYG9ic2VydmFiaWxpdHk6IHRydWVgIGZvcmNlcyBpdCBvbiksIHNvXG4gKiBNYXN0cmEgZG9lcyBub3QgZW1pdCBgW090ZWxCcmlkZ2VdIE5vIE9URUwgc3BhbiBmb3VuZGAgd2FybmluZ3MuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IHByb2plY3QgfSBmcm9tIFwiQGRieC10b29scy9jb3JlXCI7XG5pbXBvcnQgeyBsb2cgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJpbGl0eSB9IGZyb20gXCJAbWFzdHJhL29ic2VydmFiaWxpdHlcIjtcbmltcG9ydCB7IE90ZWxCcmlkZ2UgfSBmcm9tIFwiQG1hc3RyYS9vdGVsLWJyaWRnZVwiO1xuXG5pbXBvcnQgeyBUUkFDRV9SRVFVRVNUX0NPTlRFWFRfS0VZUyB9IGZyb20gXCIuL2NvbmZpZy50c1wiO1xuXG5jb25zdCBsb2dnZXIgPSBsb2cubG9nZ2VyKFwibWFzdHJhL29ic2VydmFiaWxpdHlcIik7XG5cbmNvbnN0IERFRkFVTFRfU0VSVklDRV9OQU1FID0gXCJtYXN0cmFcIjtcblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZE9ic2VydmFiaWxpdHlPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gd2lyZSB0aGUgTWFzdHJhIGBPdGVsQnJpZGdlYC4gTWlycm9yc1xuICAgKiB7QGxpbmsgTWFzdHJhUGx1Z2luQ29uZmlnLm9ic2VydmFiaWxpdHl9OlxuICAgKlxuICAgKiAtIGB1bmRlZmluZWRgIChhdXRvKTogb24gb25seSB3aGVuIGBPVEVMX0VYUE9SVEVSX09UTFBfRU5EUE9JTlRgIG9yXG4gICAqICAgYE9URUxfRVhQT1JURVJfT1RMUF9UUkFDRVNfRU5EUE9JTlRgIGlzIHNldCAoc2FtZSBzaWduYWwgQXBwS2l0J3NcbiAgICogICBgVGVsZW1ldHJ5TWFuYWdlcmAgdXNlcyB0byByZWdpc3RlciBhIHJlYWwgdHJhY2VyKS4gV2hlbiB1bnNldCxcbiAgICogICBza2lwIHRoZSBicmlkZ2UgZW50aXJlbHkgc28gTWFzdHJhIGRvZXMgbm90IGVtaXRcbiAgICogICBgW090ZWxCcmlkZ2VdIE5vIE9URUwgc3BhbiBmb3VuZGAgd2FybmluZ3Mgb24gdGhlIG5vb3AgdHJhY2VyLlxuICAgKiAtIGB0cnVlYDogZm9yY2Ugb24gZXZlbiB3aXRob3V0IGFuIE9UTFAgZW5kcG9pbnQuXG4gICAqIC0gYGZhbHNlYDogZm9yY2Ugb2ZmLlxuICAgKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTZXJ2aWNlIG5hbWUgYXR0YWNoZWQgdG8gdGhlIE1hc3RyYSBgT2JzZXJ2YWJpbGl0eWAgY29uZmlnLiBVc2VkXG4gICAqIGFzIHRoZSB0cmFjZXIgc2NvcGUgbmFtZSBvbiBicmlkZ2VkIE9UZWwgc3BhbnMgKHRoZSBgc2VydmljZS5uYW1lYFxuICAgKiByZXNvdXJjZSBhdHRyaWJ1dGUgaXMgb3duZWQgYnkgQXBwS2l0J3MgYFRlbGVtZXRyeU1hbmFnZXJgIGluc3RlYWRcbiAgICogLSBpdCByZWFkcyBgT1RFTF9TRVJWSUNFX05BTUVgIC8gYERBVEFCUklDS1NfQVBQX05BTUVgIGF0XG4gICAqIGBjcmVhdGVBcHBgIHRpbWUpLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byBwcm9qZWN0IG5hbWUgdGhlbiBgXCJtYXN0cmFcImAuXG4gICAqL1xuICBzZXJ2aWNlTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIGBSZXF1ZXN0Q29udGV4dGAga2V5cyB0byBleHRyYWN0IGFzIHNwYW4gbWV0YWRhdGEgb24gZXZlcnkgTWFzdHJhXG4gICAqIHRyYWNlLiBEZWZhdWx0cyB0byB7QGxpbmsgVFJBQ0VfUkVRVUVTVF9DT05URVhUX0tFWVN9ICh1c2VyIGlkLFxuICAgKiB0aHJlYWQgaWQsIHJlcXVlc3QgaWQsIGVudmlyb25tZW50LCBtb2RlbCBvdmVycmlkZSwgLi4uKS5cbiAgICpcbiAgICogU3VwcG9ydHMgZG90IG5vdGF0aW9uIGZvciBuZXN0ZWQgdmFsdWVzIHBlciB0aGUgTWFzdHJhIGRvY3MuXG4gICAqL1xuICByZXF1ZXN0Q29udGV4dEtleXM/OiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuLyoqIFRydWUgd2hlbiBBcHBLaXQncyBnbG9iYWwgT1RlbCBwaXBlbGluZSBpcyBjb25maWd1cmVkIHRvIGV4cG9ydCB0cmFjZXMuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPdGxwVHJhY2luZ0NvbmZpZ3VyZWQoKTogYm9vbGVhbiB7XG4gIHJldHVybiBCb29sZWFuKFxuICAgIHByb2Nlc3MuZW52Lk9URUxfRVhQT1JURVJfT1RMUF9FTkRQT0lOVCB8fCBwcm9jZXNzLmVudi5PVEVMX0VYUE9SVEVSX09UTFBfVFJBQ0VTX0VORFBPSU5ULFxuICApO1xufVxuXG4vKipcbiAqIEJ1aWxkIGEgTWFzdHJhIGBPYnNlcnZhYmlsaXR5YCB3aG9zZSBzcGFucyByaWRlIEFwcEtpdCdzIGdsb2JhbFxuICogT1RlbCBwaXBlbGluZSB2aWEgYEBtYXN0cmEvb3RlbC1icmlkZ2VgLlxuICpcbiAqIFJldHVybnMgYHVuZGVmaW5lZGAgd2hlbiB0cmFjaW5nIGlzIG9mZjogZWl0aGVyIHRoZSBjYWxsZXIgcGFzc2VkXG4gKiBgZW5hYmxlZDogZmFsc2VgLCBvciBhdXRvIG1vZGUgZmluZHMgbm8gT1RMUCBlbmRwb2ludCAodGhlIGRlZmF1bHQpLlxuICogU2tpcHBpbmcgdGhlIGJyaWRnZSBpbiB0aGF0IGNhc2UgYXZvaWRzIGBbT3RlbEJyaWRnZV0gTm8gT1RFTCBzcGFuXG4gKiBmb3VuZGAgbG9nIHNwYW0gZnJvbSBNYXN0cmEgc3BhbnMgdGhhdCBoYXZlIG5vIHBhcmVudCBvbiB0aGUgbm9vcFxuICogdHJhY2VyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRPYnNlcnZhYmlsaXR5KFxuICBvcHRpb25zPzogQnVpbGRPYnNlcnZhYmlsaXR5T3B0aW9ucyxcbik6IFByb21pc2U8T2JzZXJ2YWJpbGl0eSB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCBvdGVsQmFzZSA9IHByb2Nlc3MuZW52Lk9URUxfRVhQT1JURVJfT1RMUF9FTkRQT0lOVDtcbiAgY29uc3Qgb3RlbFRyYWNlc092ZXJyaWRlID0gcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX1RSQUNFU19FTkRQT0lOVDtcbiAgY29uc3Qgb3RscENvbmZpZ3VyZWQgPSBpc090bHBUcmFjaW5nQ29uZmlndXJlZCgpO1xuXG4gIGlmIChvcHRpb25zPy5lbmFibGVkID09PSBmYWxzZSB8fCAob3B0aW9ucz8uZW5hYmxlZCAhPT0gdHJ1ZSAmJiAhb3RscENvbmZpZ3VyZWQpKSB7XG4gICAgbG9nZ2VyLmluZm8oXCJNYXN0cmEgb2JzZXJ2YWJpbGl0eSBvZmZcIiwge1xuICAgICAgcmVhc29uOlxuICAgICAgICBvcHRpb25zPy5lbmFibGVkID09PSBmYWxzZVxuICAgICAgICAgID8gXCJkaXNhYmxlZCBpbiBwbHVnaW4gY29uZmlnXCJcbiAgICAgICAgICA6IFwiT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UIHVuc2V0XCIsXG4gICAgfSk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHNlcnZpY2VOYW1lID0gb3B0aW9ucz8uc2VydmljZU5hbWUgPz8gKGF3YWl0IHByb2plY3QubmFtZSgpKSA/PyBERUZBVUxUX1NFUlZJQ0VfTkFNRTtcbiAgY29uc3QgcmVxdWVzdENvbnRleHRLZXlzID0gWy4uLihvcHRpb25zPy5yZXF1ZXN0Q29udGV4dEtleXMgPz8gVFJBQ0VfUkVRVUVTVF9DT05URVhUX0tFWVMpXTtcblxuICAvLyBUaGUgT1RlbCBIVFRQIGV4cG9ydGVyIHRyZWF0cyBgT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UYCBhcyBhXG4gIC8vICpiYXNlKiBVUkwgYW5kIGFwcGVuZHMgdGhlIHNpZ25hbCBwYXRoIGl0c2VsZiAoZS5nLlxuICAvLyBgaHR0cDovL2xvY2FsaG9zdDo2MDA2YCAtPiBgaHR0cDovL2xvY2FsaG9zdDo2MDA2L3YxL3RyYWNlc2ApLiBMb2dcbiAgLy8gdGhlIHJlc29sdmVkIFBPU1QgVVJMIHNvIG1pc2NvbmZpZ3VyYXRpb25zIChlLmcuIGFjY2lkZW50YWxseVxuICAvLyBzZXR0aW5nIHRoZSBiYXNlIHZhciB0byBhIGAvdjEvdHJhY2VzYC1zdWZmaXhlZCBVUkwsIHdoaWNoIG1ha2VzXG4gIC8vIHRoZSBTREsgUE9TVCB0byBgLi4uL3YxL3RyYWNlcy92MS90cmFjZXNgIGFuZCBQaG9lbml4IDQwNHMpIGFyZVxuICAvLyBvYnZpb3VzIGluIHN0YXJ0dXAgb3V0cHV0LlxuICBjb25zdCByZXNvbHZlZFRyYWNlc1VybCA9IG90ZWxUcmFjZXNPdmVycmlkZVxuICAgID8gb3RlbFRyYWNlc092ZXJyaWRlXG4gICAgOiBvdGVsQmFzZVxuICAgICAgPyBgJHtvdGVsQmFzZS5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpfS92MS90cmFjZXNgXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgbG9nZ2VyLmluZm8oXCJNYXN0cmEgb2JzZXJ2YWJpbGl0eSB3aXJlZCB0aHJvdWdoIE9UZWwgYnJpZGdlXCIsIHtcbiAgICBzZXJ2aWNlTmFtZSxcbiAgICByZXF1ZXN0Q29udGV4dEtleXMsXG4gICAgb3RlbEJhc2U6IG90ZWxCYXNlID8/IFwiPHVuc2V0PlwiLFxuICAgIHJlc29sdmVkVHJhY2VzVXJsOiByZXNvbHZlZFRyYWNlc1VybCA/PyBcIjx1bnNldD5cIixcbiAgfSk7XG5cbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmlsaXR5KHtcbiAgICBjb25maWdzOiB7XG4gICAgICBzZXJ2aWNlTmFtZToge1xuICAgICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgICAgYnJpZGdlOiBuZXcgT3RlbEJyaWRnZSgpLFxuICAgICAgICByZXF1ZXN0Q29udGV4dEtleXMsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xufVxuIl19
@@ -48,8 +48,8 @@ import { type ServingEndpointSummary } from "@dbx-tools/shared-model";
48
48
  import type { Agent } from "@mastra/core/agent";
49
49
  import { Mastra } from "@mastra/core/mastra";
50
50
  import type { RequestContext } from "@mastra/core/request-context";
51
- import { type MastraPluginConfig } from "./config.js";
52
- import { MastraServer } from "./server.js";
51
+ import { type MastraPluginConfig } from "./config.ts";
52
+ import { MastraServer } from "./server.ts";
53
53
  /**
54
54
  * AppKit plugin (registered name: `mastra`) that hosts Mastra agents
55
55
  * with optional Lakebase-backed memory and AI SDK chat routes under