import { __assign, __rest } from "/_nuxt/node_modules/tslib/tslib.es6.js?v=e4f18c29"; import { invariant } from "/_nuxt/node_modules/@apollo/client/utilities/globals/index.js?v=e4f18c29"; import { ApolloLink } from "/_nuxt/node_modules/@apollo/client/link/core/index.js?v=e4f18c29"; import { Observable, hasDirectives } from "/_nuxt/node_modules/@apollo/client/utilities/index.js?v=e4f18c29"; import { serializeFetchParameter } from "/_nuxt/node_modules/@apollo/client/link/http/serializeFetchParameter.js?v=e4f18c29"; import { selectURI } from "/_nuxt/node_modules/@apollo/client/link/http/selectURI.js?v=e4f18c29"; import { handleError, readMultipartBody, parseAndCheckHttpResponse, } from "/_nuxt/node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js?v=e4f18c29"; import { checkFetcher } from "/_nuxt/node_modules/@apollo/client/link/http/checkFetcher.js?v=e4f18c29"; import { selectHttpOptionsAndBodyInternal, defaultPrinter, fallbackHttpConfig, } from "/_nuxt/node_modules/@apollo/client/link/http/selectHttpOptionsAndBody.js?v=e4f18c29"; import { rewriteURIForGET } from "/_nuxt/node_modules/@apollo/client/link/http/rewriteURIForGET.js?v=e4f18c29"; import { fromError, filterOperationVariables } from "/_nuxt/node_modules/@apollo/client/link/utils/index.js?v=e4f18c29"; import { maybe, getMainDefinition, removeClientSetsFromDocument, } from "/_nuxt/node_modules/@apollo/client/utilities/index.js?v=e4f18c29"; var backupFetch = maybe(function () { return fetch; }); export var createHttpLink = function (linkOptions) { if (linkOptions === void 0) { linkOptions = {}; } var _a = linkOptions.uri, uri = _a === void 0 ? "/graphql" : _a, // use default global fetch if nothing passed in preferredFetch = linkOptions.fetch, _b = linkOptions.print, print = _b === void 0 ? defaultPrinter : _b, includeExtensions = linkOptions.includeExtensions, preserveHeaderCase = linkOptions.preserveHeaderCase, useGETForQueries = linkOptions.useGETForQueries, _c = linkOptions.includeUnusedVariables, includeUnusedVariables = _c === void 0 ? false : _c, requestOptions = __rest(linkOptions, ["uri", "fetch", "print", "includeExtensions", "preserveHeaderCase", "useGETForQueries", "includeUnusedVariables"]); if (globalThis.__DEV__ !== false) { // Make sure at least one of preferredFetch, window.fetch, or backupFetch is // defined, so requests won't fail at runtime. checkFetcher(preferredFetch || backupFetch); } var linkConfig = { http: { includeExtensions: includeExtensions, preserveHeaderCase: preserveHeaderCase }, options: requestOptions.fetchOptions, credentials: requestOptions.credentials, headers: requestOptions.headers, }; return new ApolloLink(function (operation) { var chosenURI = selectURI(operation, uri); var context = operation.getContext(); // `apollographql-client-*` headers are automatically set if a // `clientAwareness` object is found in the context. These headers are // set first, followed by the rest of the headers pulled from // `context.headers`. If desired, `apollographql-client-*` headers set by // the `clientAwareness` object can be overridden by // `apollographql-client-*` headers set in `context.headers`. var clientAwarenessHeaders = {}; if (context.clientAwareness) { var _a = context.clientAwareness, name_1 = _a.name, version = _a.version; if (name_1) { clientAwarenessHeaders["apollographql-client-name"] = name_1; } if (version) { clientAwarenessHeaders["apollographql-client-version"] = version; } } var contextHeaders = __assign(__assign({}, clientAwarenessHeaders), context.headers); var contextConfig = { http: context.http, options: context.fetchOptions, credentials: context.credentials, headers: contextHeaders, }; if (hasDirectives(["client"], operation.query)) { var transformedQuery = removeClientSetsFromDocument(operation.query); if (!transformedQuery) { return fromError(new Error("HttpLink: Trying to send a client-only query to the server. To send to the server, ensure a non-client field is added to the query or set the `transformOptions.removeClientFields` option to `true`.")); } operation.query = transformedQuery; } //uses fallback, link, and then context to build options var _b = selectHttpOptionsAndBodyInternal(operation, print, fallbackHttpConfig, linkConfig, contextConfig), options = _b.options, body = _b.body; if (body.variables && !includeUnusedVariables) { body.variables = filterOperationVariables(body.variables, operation.query); } var controller; if (!options.signal && typeof AbortController !== "undefined") { controller = new AbortController(); options.signal = controller.signal; } // If requested, set method to GET if there are no mutations. var definitionIsMutation = function (d) { return d.kind === "OperationDefinition" && d.operation === "mutation"; }; var definitionIsSubscription = function (d) { return d.kind === "OperationDefinition" && d.operation === "subscription"; }; var isSubscription = definitionIsSubscription(getMainDefinition(operation.query)); // does not match custom directives beginning with @defer var hasDefer = hasDirectives(["defer"], operation.query); if (useGETForQueries && !operation.query.definitions.some(definitionIsMutation)) { options.method = "GET"; } if (hasDefer || isSubscription) { options.headers = options.headers || {}; var acceptHeader = "multipart/mixed;"; // Omit defer-specific headers if the user attempts to defer a selection // set on a subscription and log a warning. if (isSubscription && hasDefer) { globalThis.__DEV__ !== false && invariant.warn(41); } if (isSubscription) { acceptHeader += "boundary=graphql;subscriptionSpec=1.0,application/json"; } else if (hasDefer) { acceptHeader += "deferSpec=20220824,application/json"; } options.headers.accept = acceptHeader; } if (options.method === "GET") { var _c = rewriteURIForGET(chosenURI, body), newURI = _c.newURI, parseError = _c.parseError; if (parseError) { return fromError(parseError); } chosenURI = newURI; } else { try { options.body = serializeFetchParameter(body, "Payload"); } catch (parseError) { return fromError(parseError); } } return new Observable(function (observer) { // Prefer linkOptions.fetch (preferredFetch) if provided, and otherwise // fall back to the *current* global window.fetch function (see issue // #7832), or (if all else fails) the backupFetch function we saved when // this module was first evaluated. This last option protects against the // removal of window.fetch, which is unlikely but not impossible. var currentFetch = preferredFetch || maybe(function () { return fetch; }) || backupFetch; var observerNext = observer.next.bind(observer); currentFetch(chosenURI, options) .then(function (response) { var _a; operation.setContext({ response: response }); var ctype = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get("content-type"); if (ctype !== null && /^multipart\/mixed/i.test(ctype)) { return readMultipartBody(response, observerNext); } else { return parseAndCheckHttpResponse(operation)(response).then(observerNext); } }) .then(function () { controller = undefined; observer.complete(); }) .catch(function (err) { controller = undefined; handleError(err, observer); }); return function () { // XXX support canceling this request // https://developers.google.com/web/updates/2017/09/abortable-fetch if (controller) controller.abort(); }; }); }); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlSHR0cExpbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGluay9odHRwL2NyZWF0ZUh0dHBMaW5rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFDTCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLHlCQUF5QixHQUMxQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBQ0wsZ0NBQWdDLEVBQ2hDLGNBQWMsRUFDZCxrQkFBa0IsR0FDbkIsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEUsT0FBTyxFQUNMLEtBQUssRUFDTCxpQkFBaUIsRUFDakIsNEJBQTRCLEdBQzdCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsSUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLGNBQU0sT0FBQSxLQUFLLEVBQUwsQ0FBSyxDQUFDLENBQUM7QUFFdkMsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUFHLFVBQUMsV0FBNkI7SUFBN0IsNEJBQUEsRUFBQSxnQkFBNkI7SUFFeEQsSUFBQSxLQVNFLFdBQVcsSUFURyxFQUFoQixHQUFHLG1CQUFHLFVBQVUsS0FBQTtJQUNo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dGVudCI6WyJpbXBvcnQgeyBpbnZhcmlhbnQgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2dsb2JhbHMvaW5kZXguanNcIjtcblxuaW1wb3J0IHR5cGUgeyBEZWZpbml0aW9uTm9kZSB9IGZyb20gXCJncmFwaHFsXCI7XG5cbmltcG9ydCB7IEFwb2xsb0xpbmsgfSBmcm9tIFwiLi4vY29yZS9pbmRleC5qc1wiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgaGFzRGlyZWN0aXZlcyB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvaW5kZXguanNcIjtcbmltcG9ydCB7IHNlcmlhbGl6ZUZldGNoUGFyYW1ldGVyIH0gZnJvbSBcIi4vc2VyaWFsaXplRmV0Y2hQYXJhbWV0ZXIuanNcIjtcbmltcG9ydCB7IHNlbGVjdFVSSSB9IGZyb20gXCIuL3NlbGVjdFVSSS5qc1wiO1xuaW1wb3J0IHtcbiAgaGFuZGxlRXJyb3IsXG4gIHJlYWRNdWx0aXBhcnRCb2R5LFxuICBwYXJzZUFuZENoZWNrSHR0cFJlc3BvbnNlLFxufSBmcm9tIFwiLi9wYXJzZUFuZENoZWNrSHR0cFJlc3BvbnNlLmpzXCI7XG5pbXBvcnQgeyBjaGVja0ZldGNoZXIgfSBmcm9tIFwiLi9jaGVja0ZldGNoZXIuanNcIjtcbmltcG9ydCB0eXBlIHsgSHR0cE9wdGlvbnMgfSBmcm9tIFwiLi9zZWxlY3RIdHRwT3B0aW9uc0FuZEJvZHkuanNcIjtcbmltcG9ydCB7XG4gIHNlbGVjdEh0dHBPcHRpb25zQW5kQm9keUludGVybmFsLFxuICBkZWZhdWx0UHJpbnRlcixcbiAgZmFsbGJhY2tIdHRwQ29uZmlnLFxufSBmcm9tIFwiLi9zZWxlY3RIdHRwT3B0aW9uc0FuZEJvZHkuanNcIjtcbmltcG9ydCB7IHJld3JpdGVVUklGb3JHRVQgfSBmcm9tIFwiLi9yZXdyaXRlVVJJRm9yR0VULmpzXCI7XG5pbXBvcnQgeyBmcm9tRXJyb3IsIGZpbHRlck9wZXJhdGlvblZhcmlhYmxlcyB9IGZyb20gXCIuLi91dGlscy9pbmRleC5qc1wiO1xuaW1wb3J0IHtcbiAgbWF5YmUsXG4gIGdldE1haW5EZWZpbml0aW9uLFxuICByZW1vdmVDbGllbnRTZXRzRnJvbURvY3VtZW50LFxufSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2luZGV4LmpzXCI7XG5cbmNvbnN0IGJhY2t1cEZldGNoID0gbWF5YmUoKCkgPT4gZmV0Y2gpO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlSHR0cExpbmsgPSAobGlua09wdGlvbnM6IEh0dHBPcHRpb25zID0ge30pID0+IHtcbiAgbGV0IHtcbiAgICB1cmkgPSBcIi9ncmFwaHFsXCIsXG4gICAgLy8gdXNlIGRlZmF1bHQgZ2xvYmFsIGZldGNoIGlmIG5vdGhpbmcgcGFzc2VkIGluXG4gICAgZmV0Y2g6IHByZWZlcnJlZEZldGNoLFxuICAgIHByaW50ID0gZGVmYXVsdFByaW50ZXIsXG4gICAgaW5jbHVkZUV4dGVuc2lvbnMsXG4gICAgcHJlc2VydmVIZWFkZXJDYXNlLFxuICAgIHVzZUdFVEZvclF1ZXJpZXMsXG4gICAgaW5jbHVkZVVudXNlZFZhcmlhYmxlcyA9IGZhbHNlLFxuICAgIC4uLnJlcXVlc3RPcHRpb25zXG4gIH0gPSBsaW5rT3B0aW9ucztcblxuICBpZiAoX19ERVZfXykge1xuICAgIC8vIE1ha2Ugc3VyZSBhdCBsZWFzdCBvbmUgb2YgcHJlZmVycmVkRmV0Y2gsIHdpbmRvdy5mZXRjaCwgb3IgYmFja3VwRmV0Y2ggaXNcbiAgICAvLyBkZWZpbmVkLCBzbyByZXF1ZXN0cyB3b24ndCBmYWlsIGF0IHJ1bnRpbWUuXG4gICAgY2hlY2tGZXRjaGVyKHByZWZlcnJlZEZldGNoIHx8IGJhY2t1cEZldGNoKTtcbiAgfVxuXG4gIGNvbnN0IGxpbmtDb25maWcgPSB7XG4gICAgaHR0cDogeyBpbmNsdWRlRXh0ZW5zaW9ucywgcHJlc2VydmVIZWFkZXJDYXNlIH0sXG4gICAgb3B0aW9uczogcmVxdWVzdE9wdGlvbnMuZmV0Y2hPcHRpb25zLFxuICAgIGNyZWRlbnRpYWxzOiByZXF1ZXN0T3B0aW9ucy5jcmVkZW50aWFscyxcbiAgICBoZWFkZXJzOiByZXF1ZXN0T3B0aW9ucy5oZWFkZXJzLFxuICB9O1xuXG4gIHJldHVybiBuZXcgQXBvbGxvTGluaygob3BlcmF0aW9uKSA9PiB7XG4gICAgbGV0IGNob3NlblVSSSA9IHNlbGVjdFVSSShvcGVyYXRpb24sIHVyaSk7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gb3BlcmF0aW9uLmdldENvbnRleHQoKTtcblxuICAgIC8vIGBhcG9sbG9ncmFwaHFsLWNsaWVudC0qYCBoZWFkZXJzIGFyZSBhdXRvbWF0aWNhbGx5IHNldCBpZiBhXG4gICAgLy8gYGNsaWVudEF3YXJlbmVzc2Agb2JqZWN0IGlzIGZvdW5kIGluIHRoZSBjb250ZXh0LiBUaGVzZSBoZWFkZXJzIGFyZVxuICAgIC8vIHNldCBmaXJzdCwgZm9sbG93ZWQgYnkgdGhlIHJlc3Qgb2YgdGhlIGhlYWRlcnMgcHVsbGVkIGZyb21cbiAgICAvLyBgY29udGV4dC5oZWFkZXJzYC4gSWYgZGVzaXJlZCwgYGFwb2xsb2dyYXBocWwtY2xpZW50LSpgIGhlYWRlcnMgc2V0IGJ5XG4gICAgLy8gdGhlIGBjbGllbnRBd2FyZW5lc3NgIG9iamVjdCBjYW4gYmUgb3ZlcnJpZGRlbiBieVxuICAgIC8vIGBhcG9sbG9ncmFwaHFsLWNsaWVudC0qYCBoZWFkZXJzIHNldCBpbiBgY29udGV4dC5oZWFkZXJzYC5cbiAgICBjb25zdCBjbGllbnRBd2FyZW5lc3NIZWFkZXJzOiB7XG4gICAgICBcImFwb2xsb2dyYXBocWwtY2xpZW50LW5hbWVcIj86IHN0cmluZztcbiAgICAgIFwiYXBvbGxvZ3JhcGhxbC1jbGllbnQtdmVyc2lvblwiPzogc3RyaW5nO1xuICAgIH0gPSB7fTtcblxuICAgIGlmIChjb250ZXh0LmNsaWVudEF3YXJlbmVzcykge1xuICAgICAgY29uc3QgeyBuYW1lLCB2ZXJzaW9uIH0gPSBjb250ZXh0LmNsaWVudEF3YXJlbmVzcztcbiAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgIGNsaWVudEF3YXJlbmVzc0hlYWRlcnNbXCJhcG9sbG9ncmFwaHFsLWNsaWVudC1uYW1lXCJdID0gbmFtZTtcbiAgICAgIH1cbiAgICAgIGlmICh2ZXJzaW9uKSB7XG4gICAgICAgIGNsaWVudEF3YXJlbmVzc0hlYWRlcnNbXCJhcG9sbG9ncmFwaHFsLWNsaWVudC12ZXJzaW9uXCJdID0gdmVyc2lvbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb250ZXh0SGVhZGVycyA9IHsgLi4uY2xpZW50QXdhcmVuZXNzSGVhZGVycywgLi4uY29udGV4dC5oZWFkZXJzIH07XG5cbiAgICBjb25zdCBjb250ZXh0Q29uZmlnID0ge1xuICAgICAgaHR0cDogY29udGV4dC5odHRwLFxuICAgICAgb3B0aW9uczogY29udGV4dC5mZXRjaE9wdGlvbnMsXG4gICAgICBjcmVkZW50aWFsczogY29udGV4dC5jcmVkZW50aWFscyxcbiAgICAgIGhlYWRlcnM6IGNvbnRleHRIZWFkZXJzLFxuICAgIH07XG5cbiAgICBpZiAoaGFzRGlyZWN0aXZlcyhbXCJjbGllbnRcIl0sIG9wZXJhdGlvbi5xdWVyeSkpIHtcbiAgICAgIGNvbnN0IHRyYW5zZm9ybWVkUXVlcnkgPSByZW1vdmVDbGllbnRTZXRzRnJvbURvY3VtZW50KG9wZXJhdGlvbi5xdWVyeSk7XG5cbiAgICAgIGlmICghdHJhbnNmb3JtZWRRdWVyeSkge1xuICAgICAgICByZXR1cm4gZnJvbUVycm9yKFxuICAgICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICAgIFwiSHR0cExpbms6IFRyeWluZyB0byBzZW5kIGEgY2xpZW50LW9ubHkgcXVlcnkgdG8gdGhlIHNlcnZlci4gVG8gc2VuZCB0byB0aGUgc2VydmVyLCBlbnN1cmUgYSBub24tY2xpZW50IGZpZWxkIGlzIGFkZGVkIHRvIHRoZSBxdWVyeSBvciBzZXQgdGhlIGB0cmFuc2Zvcm1PcHRpb25zLnJlbW92ZUNsaWVudEZpZWxkc2Agb3B0aW9uIHRvIGB0cnVlYC5cIlxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgb3BlcmF0aW9uLnF1ZXJ5ID0gdHJhbnNmb3JtZWRRdWVyeTtcbiAgICB9XG5cbiAgICAvL3VzZXMgZmFsbGJhY2ssIGxpbmssIGFuZCB0aGVuIGNvbnRleHQgdG8gYnVpbGQgb3B0aW9uc1xuICAgIGNvbnN0IHsgb3B0aW9ucywgYm9keSB9ID0gc2VsZWN0SHR0cE9wdGlvbnNBbmRCb2R5SW50ZXJuYWwoXG4gICAgICBvcGVyYXRpb24sXG4gICAgICBwcmludCxcbiAgICAgIGZhbGxiYWNrSHR0cENvbmZpZyxcbiAgICAgIGxpbmtDb25maWcsXG4gICAgICBjb250ZXh0Q29uZmlnXG4gICAgKTtcblxuICAgIGlmIChib2R5LnZhcmlhYmxlcyAmJiAhaW5jbHVkZVVudXNlZFZhcmlhYmxlcykge1xuICAgICAgYm9keS52YXJpYWJsZXMgPSBmaWx0ZXJPcGVyYXRpb25WYXJpYWJsZXMoXG4gICAgICAgIGJvZHkudmFyaWFibGVzLFxuICAgICAgICBvcGVyYXRpb24ucXVlcnlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IGNvbnRyb2xsZXI6IEFib3J0Q29udHJvbGxlciB8IHVuZGVmaW5lZDtcbiAgICBpZiAoIW9wdGlvbnMuc2lnbmFsICYmIHR5cGVvZiBBYm9ydENvbnRyb2xsZXIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICBvcHRpb25zLnNpZ25hbCA9IGNvbnRyb2xsZXIuc2lnbmFsO1xuICAgIH1cblxuICAgIC8vIElmIHJlcXVlc3RlZCwgc2V0IG1ldGhvZCB0byBHRVQgaWYgdGhlcmUgYXJlIG5vIG11dGF0aW9ucy5cbiAgICBjb25zdCBkZWZpbml0aW9uSXNNdXRhdGlvbiA9IChkOiBEZWZpbml0aW9uTm9kZSkgPT4ge1xuICAgICAgcmV0dXJuIGQua2luZCA9PT0gXCJPcGVyYXRpb25EZWZpbml0aW9uXCIgJiYgZC5vcGVyYXRpb24gPT09IFwibXV0YXRpb25cIjtcbiAgICB9O1xuICAgIGNvbnN0IGRlZmluaXRpb25Jc1N1YnNjcmlwdGlvbiA9IChkOiBEZWZpbml0aW9uTm9kZSkgPT4ge1xuICAgICAgcmV0dXJuIGQua2luZCA9PT0gXCJPcGVyYXRpb25EZWZpbml0aW9uXCIgJiYgZC5vcGVyYXRpb24gPT09IFwic3Vic2NyaXB0aW9uXCI7XG4gICAgfTtcbiAgICBjb25zdCBpc1N1YnNjcmlwdGlvbiA9IGRlZmluaXRpb25Jc1N1YnNjcmlwdGlvbihcbiAgICAgIGdldE1haW5EZWZpbml0aW9uKG9wZXJhdGlvbi5xdWVyeSlcbiAgICApO1xuICAgIC8vIGRvZXMgbm90IG1hdGNoIGN1c3RvbSBkaXJlY3RpdmVzIGJlZ2lubmluZyB3aXRoIEBkZWZlclxuICAgIGNvbnN0IGhhc0RlZmVyID0gaGFzRGlyZWN0aXZlcyhbXCJkZWZlclwiXSwgb3BlcmF0aW9uLnF1ZXJ5KTtcbiAgICBpZiAoXG4gICAgICB1c2VHRVRGb3JRdWVyaWVzICYmXG4gICAgICAhb3BlcmF0aW9uLnF1ZXJ5LmRlZmluaXRpb25zLnNvbWUoZGVmaW5pdGlvbklzTXV0YXRpb24pXG4gICAgKSB7XG4gICAgICBvcHRpb25zLm1ldGhvZCA9IFwiR0VUXCI7XG4gICAgfVxuXG4gICAgaWYgKGhhc0RlZmVyIHx8IGlzU3Vic2NyaXB0aW9uKSB7XG4gICAgICBvcHRpb25zLmhlYWRlcnMgPSBvcHRpb25zLmhlYWRlcnMgfHwge307XG4gICAgICBsZXQgYWNjZXB0SGVhZGVyID0gXCJtdWx0aXBhcnQvbWl4ZWQ7XCI7XG4gICAgICAvLyBPbWl0IGRlZmVyLXNwZWNpZmljIGhlYWRlcnMgaWYgdGhlIHVzZXIgYXR0ZW1wdHMgdG8gZGVmZXIgYSBzZWxlY3Rpb25cbiAgICAgIC8vIHNldCBvbiBhIHN1YnNjcmlwdGlvbiBhbmQgbG9nIGEgd2FybmluZy5cbiAgICAgIGlmIChpc1N1YnNjcmlwdGlvbiAmJiBoYXNEZWZlcikge1xuICAgICAgICBpbnZhcmlhbnQud2FybihcIk11bHRpcGFydC1zdWJzY3JpcHRpb25zIGRvIG5vdCBzdXBwb3J0IEBkZWZlclwiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgIGFjY2VwdEhlYWRlciArPVxuICAgICAgICAgIFwiYm91bmRhcnk9Z3JhcGhxbDtzdWJzY3JpcHRpb25TcGVjPTEuMCxhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgICB9IGVsc2UgaWYgKGhhc0RlZmVyKSB7XG4gICAgICAgIGFjY2VwdEhlYWRlciArPSBcImRlZmVyU3BlYz0yMDIyMDgyNCxhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgICB9XG4gICAgICBvcHRpb25zLmhlYWRlcnMuYWNjZXB0ID0gYWNjZXB0SGVhZGVyO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLm1ldGhvZCA9PT0gXCJHRVRcIikge1xuICAgICAgY29uc3QgeyBuZXdVUkksIHBhcnNlRXJyb3IgfSA9IHJld3JpdGVVUklGb3JHRVQoY2hvc2VuVVJJLCBib2R5KTtcbiAgICAgIGlmIChwYXJzZUVycm9yKSB7XG4gICAgICAgIHJldHVybiBmcm9tRXJyb3IocGFyc2VFcnJvcik7XG4gICAgICB9XG4gICAgICBjaG9zZW5VUkkgPSBuZXdVUkk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIChvcHRpb25zIGFzIGFueSkuYm9keSA9IHNlcmlhbGl6ZUZldGNoUGFyYW1ldGVyKGJvZHksIFwiUGF5bG9hZFwiKTtcbiAgICAgIH0gY2F0Y2ggKHBhcnNlRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGZyb21FcnJvcihwYXJzZUVycm9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICAvLyBQcmVmZXIgbGlua09wdGlvbnMuZmV0Y2ggKHByZWZlcnJlZEZldGNoKSBpZiBwcm92aWRlZCwgYW5kIG90aGVyd2lzZVxuICAgICAgLy8gZmFsbCBiYWNrIHRvIHRoZSAqY3VycmVudCogZ2xvYmFsIHdpbmRvdy5mZXRjaCBmdW5jdGlvbiAoc2VlIGlzc3VlXG4gICAgICAvLyAjNzgzMiksIG9yIChpZiBhbGwgZWxzZSBmYWlscykgdGhlIGJhY2t1cEZldGNoIGZ1bmN0aW9uIHdlIHNhdmVkIHdoZW5cbiAgICAgIC8vIHRoaXMgbW9kdWxlIHdhcyBmaXJzdCBldmFsdWF0ZWQuIFRoaXMgbGFzdCBvcHRpb24gcHJvdGVjdHMgYWdhaW5zdCB0aGVcbiAgICAgIC8vIHJlbW92YWwgb2Ygd2luZG93LmZldGNoLCB3aGljaCBpcyB1bmxpa2VseSBidXQgbm90IGltcG9zc2libGUuXG4gICAgICBjb25zdCBjdXJyZW50RmV0Y2ggPSBwcmVmZXJyZWRGZXRjaCB8fCBtYXliZSgoKSA9PiBmZXRjaCkgfHwgYmFja3VwRmV0Y2g7XG5cbiAgICAgIGNvbnN0IG9ic2VydmVyTmV4dCA9IG9ic2VydmVyLm5leHQuYmluZChvYnNlcnZlcik7XG4gICAgICBjdXJyZW50RmV0Y2ghKGNob3NlblVSSSwgb3B0aW9ucylcbiAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgb3BlcmF0aW9uLnNldENvbnRleHQoeyByZXNwb25zZSB9KTtcbiAgICAgICAgICBjb25zdCBjdHlwZSA9IHJlc3BvbnNlLmhlYWRlcnM/LmdldChcImNvbnRlbnQtdHlwZVwiKTtcblxuICAgICAgICAgIGlmIChjdHlwZSAhPT0gbnVsbCAmJiAvXm11bHRpcGFydFxcL21peGVkL2kudGVzdChjdHlwZSkpIHtcbiAgICAgICAgICAgIHJldHVybiByZWFkTXVsdGlwYXJ0Qm9keShyZXNwb25zZSwgb2JzZXJ2ZXJOZXh0KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlQW5kQ2hlY2tIdHRwUmVzcG9uc2Uob3BlcmF0aW9uKShyZXNwb25zZSkudGhlbihcbiAgICAgICAgICAgICAgb2JzZXJ2ZXJOZXh0XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIGNvbnRyb2xsZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICBjb250cm9sbGVyID0gdW5kZWZpbmVkO1xuICAgICAgICAgIGhhbmRsZUVycm9yKGVyciwgb2JzZXJ2ZXIpO1xuICAgICAgICB9KTtcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgLy8gWFhYIHN1cHBvcnQgY2FuY2VsaW5nIHRoaXMgcmVxdWVzdFxuICAgICAgICAvLyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS93ZWIvdXBkYXRlcy8yMDE3LzA5L2Fib3J0YWJsZS1mZXRjaFxuICAgICAgICBpZiAoY29udHJvbGxlcikgY29udHJvbGxlci5hYm9ydCgpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfSk7XG59O1xuIl0sInhfZ29vZ2xlX2lnbm9yZUxpc3QiOlswXX0=