israeli-bank-scrapers 6.5.0 → 6.5.1
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/helpers/fetch.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Page } from 'puppeteer';
|
|
2
2
|
export declare function fetchGet<TResult>(url: string, extraHeaders: Record<string, any>): Promise<TResult>;
|
|
3
|
-
export declare function fetchPost(url: string, data: Record<string, any>, extraHeaders?: Record<string, any>): Promise<
|
|
3
|
+
export declare function fetchPost<TResult = any>(url: string, data: Record<string, any>, extraHeaders?: Record<string, any>): Promise<TResult>;
|
|
4
4
|
export declare function fetchGraphql<TResult>(url: string, query: string, variables?: Record<string, unknown>, extraHeaders?: Record<string, any>): Promise<TResult>;
|
|
5
5
|
export declare function fetchGetWithinPage<TResult>(page: Page, url: string, ignoreErrors?: boolean): Promise<TResult | null>;
|
|
6
6
|
export declare function fetchPostWithinPage<TResult>(page: Page, url: string, data: Record<string, any>, extraHeaders?: Record<string, any>, ignoreErrors?: boolean): Promise<TResult | null>;
|
package/lib/helpers/fetch.js
CHANGED
|
@@ -108,4 +108,4 @@ async function fetchPostWithinPage(page, url, data, extraHeaders = {}, ignoreErr
|
|
|
108
108
|
}
|
|
109
109
|
return null;
|
|
110
110
|
}
|
|
111
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZUZldGNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJKU09OX0NPTlRFTlRfVFlQRSIsImdldEpzb25IZWFkZXJzIiwiQWNjZXB0IiwiZmV0Y2hHZXQiLCJ1cmwiLCJleHRyYUhlYWRlcnMiLCJoZWFkZXJzIiwiT2JqZWN0IiwiYXNzaWduIiwicmVxdWVzdCIsIm1ldGhvZCIsImZldGNoUmVzdWx0Iiwibm9kZUZldGNoIiwic3RhdHVzIiwiRXJyb3IiLCJqc29uIiwiZmV0Y2hQb3N0IiwiZGF0YSIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwicmVzdWx0IiwiZmV0Y2hHcmFwaHFsIiwicXVlcnkiLCJ2YXJpYWJsZXMiLCJvcGVyYXRpb25OYW1lIiwiZXJyb3JzIiwibGVuZ3RoIiwibWVzc2FnZSIsImZldGNoR2V0V2l0aGluUGFnZSIsInBhZ2UiLCJpZ25vcmVFcnJvcnMiLCJldmFsdWF0ZSIsImlubmVyVXJsIiwicmVzcG9uc2UiLCJmZXRjaCIsImNyZWRlbnRpYWxzIiwidGV4dCIsInN0YWNrIiwiU3RyaW5nIiwicGFyc2UiLCJmZXRjaFBvc3RXaXRoaW5QYWdlIiwiaW5uZXJEYXRhIiwiaW5uZXJFeHRyYUhlYWRlcnMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9mZXRjaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbm9kZUZldGNoIGZyb20gJ25vZGUtZmV0Y2gnO1xuaW1wb3J0IHsgdHlwZSBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcblxuY29uc3QgSlNPTl9DT05URU5UX1RZUEUgPSAnYXBwbGljYXRpb24vanNvbic7XG5cbmZ1bmN0aW9uIGdldEpzb25IZWFkZXJzKCkge1xuICByZXR1cm4ge1xuICAgIEFjY2VwdDogSlNPTl9DT05URU5UX1RZUEUsXG4gICAgJ0NvbnRlbnQtVHlwZSc6IEpTT05fQ09OVEVOVF9UWVBFLFxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hHZXQ8VFJlc3VsdD4odXJsOiBzdHJpbmcsIGV4dHJhSGVhZGVyczogUmVjb3JkPHN0cmluZywgYW55Pik6IFByb21pc2U8VFJlc3VsdD4ge1xuICBsZXQgaGVhZGVycyA9IGdldEpzb25IZWFkZXJzKCk7XG4gIGlmIChleHRyYUhlYWRlcnMpIHtcbiAgICBoZWFkZXJzID0gT2JqZWN0LmFzc2lnbihoZWFkZXJzLCBleHRyYUhlYWRlcnMpO1xuICB9XG4gIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgICBoZWFkZXJzLFxuICB9O1xuICBjb25zdCBmZXRjaFJlc3VsdCA9IGF3YWl0IG5vZGVGZXRjaCh1cmwsIHJlcXVlc3QpO1xuXG4gIGlmIChmZXRjaFJlc3VsdC5zdGF0dXMgIT09IDIwMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgc2VuZGluZyBhIHJlcXVlc3QgdG8gdGhlIGluc3RpdHV0ZSBzZXJ2ZXIgcmV0dXJuZWQgd2l0aCBzdGF0dXMgY29kZSAke2ZldGNoUmVzdWx0LnN0YXR1c31gKTtcbiAgfVxuXG4gIHJldHVybiBmZXRjaFJlc3VsdC5qc29uKCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaFBvc3QodXJsOiBzdHJpbmcsIGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4sIGV4dHJhSGVhZGVyczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9KSB7XG4gIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgaGVhZGVyczogeyAuLi5nZXRKc29uSGVhZGVycygpLCAuLi5leHRyYUhlYWRlcnMgfSxcbiAgICBib2R5OiBKU09OLnN0cmluZ2lmeShkYXRhKSxcbiAgfTtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbm9kZUZldGNoKHVybCwgcmVxdWVzdCk7XG4gIHJldHVybiByZXN1bHQuanNvbigpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hHcmFwaHFsPFRSZXN1bHQ+KFxuICB1cmw6IHN0cmluZyxcbiAgcXVlcnk6IHN0cmluZyxcbiAgdmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9LFxuICBleHRyYUhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSxcbik6IFByb21pc2U8VFJlc3VsdD4ge1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBmZXRjaFBvc3QodXJsLCB7IG9wZXJhdGlvbk5hbWU6IG51bGwsIHF1ZXJ5LCB2YXJpYWJsZXMgfSwgZXh0cmFIZWFkZXJzKTtcbiAgaWYgKHJlc3VsdC5lcnJvcnM/Lmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQuZXJyb3JzWzBdLm1lc3NhZ2UpO1xuICB9XG4gIHJldHVybiByZXN1bHQuZGF0YSBhcyBQcm9taXNlPFRSZXN1bHQ+O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hHZXRXaXRoaW5QYWdlPFRSZXN1bHQ+KFxuICBwYWdlOiBQYWdlLFxuICB1cmw6IHN0cmluZyxcbiAgaWdub3JlRXJyb3JzID0gZmFsc2UsXG4pOiBQcm9taXNlPFRSZXN1bHQgfCBudWxsPiB7XG4gIGNvbnN0IFtyZXN1bHQsIHN0YXR1c10gPSBhd2FpdCBwYWdlLmV2YWx1YXRlKGFzeW5jIGlubmVyVXJsID0+IHtcbiAgICBsZXQgcmVzcG9uc2U6IFJlc3BvbnNlIHwgdW5kZWZpbmVkO1xuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IGZldGNoKGlubmVyVXJsLCB7IGNyZWRlbnRpYWxzOiAnaW5jbHVkZScgfSk7XG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDQpIHtcbiAgICAgICAgcmV0dXJuIFtudWxsLCByZXNwb25zZS5zdGF0dXNdIGFzIGNvbnN0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIFthd2FpdCByZXNwb25zZS50ZXh0KCksIHJlc3BvbnNlLnN0YXR1c10gYXMgY29uc3Q7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgZmV0Y2hHZXRXaXRoaW5QYWdlIGVycm9yOiAke2UgaW5zdGFuY2VvZiBFcnJvciA/IGAke2UubWVzc2FnZX1cXG4ke2Uuc3RhY2t9YCA6IFN0cmluZyhlKX0sIHVybDogJHtpbm5lclVybH0sIHN0YXR1czogJHtyZXNwb25zZT8uc3RhdHVzfWAsXG4gICAgICApO1xuICAgIH1cbiAgfSwgdXJsKTtcbiAgaWYgKHJlc3VsdCAhPT0gbnVsbCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICghaWdub3JlRXJyb3JzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgZmV0Y2hHZXRXaXRoaW5QYWdlIHBhcnNlIGVycm9yOiAke2UgaW5zdGFuY2VvZiBFcnJvciA/IGAke2UubWVzc2FnZX1cXG4ke2Uuc3RhY2t9YCA6IFN0cmluZyhlKX0sIHVybDogJHt1cmx9LCByZXN1bHQ6ICR7cmVzdWx0fSwgc3RhdHVzOiAke3N0YXR1c31gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoUG9zdFdpdGhpblBhZ2U8VFJlc3VsdD4oXG4gIHBhZ2U6IFBhZ2UsXG4gIHVybDogc3RyaW5nLFxuICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICBleHRyYUhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSxcbiAgaWdub3JlRXJyb3JzID0gZmFsc2UsXG4pOiBQcm9taXNlPFRSZXN1bHQgfCBudWxsPiB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBhZ2UuZXZhbHVhdGUoXG4gICAgYXN5bmMgKGlubmVyVXJsOiBzdHJpbmcsIGlubmVyRGF0YTogUmVjb3JkPHN0cmluZywgYW55PiwgaW5uZXJFeHRyYUhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goaW5uZXJVcmwsIHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGlubmVyRGF0YSksXG4gICAgICAgIGNyZWRlbnRpYWxzOiAnaW5jbHVkZScsXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItb2JqZWN0LXNwcmVhZFxuICAgICAgICBoZWFkZXJzOiBPYmplY3QuYXNzaWduKFxuICAgICAgICAgIHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgnIH0sXG4gICAgICAgICAgaW5uZXJFeHRyYUhlYWRlcnMsXG4gICAgICAgICksXG4gICAgICB9KTtcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDIwNCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7XG4gICAgfSxcbiAgICB1cmwsXG4gICAgZGF0YSxcbiAgICBleHRyYUhlYWRlcnMsXG4gICk7XG5cbiAgdHJ5IHtcbiAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmICghaWdub3JlRXJyb3JzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBmZXRjaFBvc3RXaXRoaW5QYWdlIHBhcnNlIGVycm9yOiAke2UgaW5zdGFuY2VvZiBFcnJvciA/IGAke2UubWVzc2FnZX1cXG4ke2Uuc3RhY2t9YCA6IFN0cmluZyhlKX0sIHVybDogJHt1cmx9LCBkYXRhOiAke0pTT04uc3RyaW5naWZ5KGRhdGEpfSwgZXh0cmFIZWFkZXJzOiAke0pTT04uc3RyaW5naWZ5KGV4dHJhSGVhZGVycyl9LCByZXN1bHQ6ICR7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
|
|
111
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZUZldGNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJKU09OX0NPTlRFTlRfVFlQRSIsImdldEpzb25IZWFkZXJzIiwiQWNjZXB0IiwiZmV0Y2hHZXQiLCJ1cmwiLCJleHRyYUhlYWRlcnMiLCJoZWFkZXJzIiwiT2JqZWN0IiwiYXNzaWduIiwicmVxdWVzdCIsIm1ldGhvZCIsImZldGNoUmVzdWx0Iiwibm9kZUZldGNoIiwic3RhdHVzIiwiRXJyb3IiLCJqc29uIiwiZmV0Y2hQb3N0IiwiZGF0YSIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwicmVzdWx0IiwiZmV0Y2hHcmFwaHFsIiwicXVlcnkiLCJ2YXJpYWJsZXMiLCJvcGVyYXRpb25OYW1lIiwiZXJyb3JzIiwibGVuZ3RoIiwibWVzc2FnZSIsImZldGNoR2V0V2l0aGluUGFnZSIsInBhZ2UiLCJpZ25vcmVFcnJvcnMiLCJldmFsdWF0ZSIsImlubmVyVXJsIiwicmVzcG9uc2UiLCJmZXRjaCIsImNyZWRlbnRpYWxzIiwidGV4dCIsInN0YWNrIiwiU3RyaW5nIiwicGFyc2UiLCJmZXRjaFBvc3RXaXRoaW5QYWdlIiwiaW5uZXJEYXRhIiwiaW5uZXJFeHRyYUhlYWRlcnMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscGVycy9mZXRjaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbm9kZUZldGNoIGZyb20gJ25vZGUtZmV0Y2gnO1xuaW1wb3J0IHsgdHlwZSBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcblxuY29uc3QgSlNPTl9DT05URU5UX1RZUEUgPSAnYXBwbGljYXRpb24vanNvbic7XG5cbmZ1bmN0aW9uIGdldEpzb25IZWFkZXJzKCkge1xuICByZXR1cm4ge1xuICAgIEFjY2VwdDogSlNPTl9DT05URU5UX1RZUEUsXG4gICAgJ0NvbnRlbnQtVHlwZSc6IEpTT05fQ09OVEVOVF9UWVBFLFxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hHZXQ8VFJlc3VsdD4odXJsOiBzdHJpbmcsIGV4dHJhSGVhZGVyczogUmVjb3JkPHN0cmluZywgYW55Pik6IFByb21pc2U8VFJlc3VsdD4ge1xuICBsZXQgaGVhZGVycyA9IGdldEpzb25IZWFkZXJzKCk7XG4gIGlmIChleHRyYUhlYWRlcnMpIHtcbiAgICBoZWFkZXJzID0gT2JqZWN0LmFzc2lnbihoZWFkZXJzLCBleHRyYUhlYWRlcnMpO1xuICB9XG4gIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgICBoZWFkZXJzLFxuICB9O1xuICBjb25zdCBmZXRjaFJlc3VsdCA9IGF3YWl0IG5vZGVGZXRjaCh1cmwsIHJlcXVlc3QpO1xuXG4gIGlmIChmZXRjaFJlc3VsdC5zdGF0dXMgIT09IDIwMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgc2VuZGluZyBhIHJlcXVlc3QgdG8gdGhlIGluc3RpdHV0ZSBzZXJ2ZXIgcmV0dXJuZWQgd2l0aCBzdGF0dXMgY29kZSAke2ZldGNoUmVzdWx0LnN0YXR1c31gKTtcbiAgfVxuXG4gIHJldHVybiBmZXRjaFJlc3VsdC5qc29uKCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaFBvc3Q8VFJlc3VsdCA9IGFueT4oXG4gIHVybDogc3RyaW5nLFxuICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICBleHRyYUhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSxcbik6IFByb21pc2U8VFJlc3VsdD4ge1xuICBjb25zdCByZXF1ZXN0ID0ge1xuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnM6IHsgLi4uZ2V0SnNvbkhlYWRlcnMoKSwgLi4uZXh0cmFIZWFkZXJzIH0sXG4gICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZGF0YSksXG4gIH07XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG5vZGVGZXRjaCh1cmwsIHJlcXVlc3QpO1xuICByZXR1cm4gcmVzdWx0Lmpzb24oKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoR3JhcGhxbDxUUmVzdWx0PihcbiAgdXJsOiBzdHJpbmcsXG4gIHF1ZXJ5OiBzdHJpbmcsXG4gIHZhcmlhYmxlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fSxcbiAgZXh0cmFIZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30sXG4pOiBQcm9taXNlPFRSZXN1bHQ+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmV0Y2hQb3N0KHVybCwgeyBvcGVyYXRpb25OYW1lOiBudWxsLCBxdWVyeSwgdmFyaWFibGVzIH0sIGV4dHJhSGVhZGVycyk7XG4gIGlmIChyZXN1bHQuZXJyb3JzPy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IocmVzdWx0LmVycm9yc1swXS5tZXNzYWdlKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0LmRhdGEgYXMgUHJvbWlzZTxUUmVzdWx0Pjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoR2V0V2l0aGluUGFnZTxUUmVzdWx0PihcbiAgcGFnZTogUGFnZSxcbiAgdXJsOiBzdHJpbmcsXG4gIGlnbm9yZUVycm9ycyA9IGZhbHNlLFxuKTogUHJvbWlzZTxUUmVzdWx0IHwgbnVsbD4ge1xuICBjb25zdCBbcmVzdWx0LCBzdGF0dXNdID0gYXdhaXQgcGFnZS5ldmFsdWF0ZShhc3luYyBpbm5lclVybCA9PiB7XG4gICAgbGV0IHJlc3BvbnNlOiBSZXNwb25zZSB8IHVuZGVmaW5lZDtcbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChpbm5lclVybCwgeyBjcmVkZW50aWFsczogJ2luY2x1ZGUnIH0pO1xuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMjA0KSB7XG4gICAgICAgIHJldHVybiBbbnVsbCwgcmVzcG9uc2Uuc3RhdHVzXSBhcyBjb25zdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbYXdhaXQgcmVzcG9uc2UudGV4dCgpLCByZXNwb25zZS5zdGF0dXNdIGFzIGNvbnN0O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYGZldGNoR2V0V2l0aGluUGFnZSBlcnJvcjogJHtlIGluc3RhbmNlb2YgRXJyb3IgPyBgJHtlLm1lc3NhZ2V9XFxuJHtlLnN0YWNrfWAgOiBTdHJpbmcoZSl9LCB1cmw6ICR7aW5uZXJVcmx9LCBzdGF0dXM6ICR7cmVzcG9uc2U/LnN0YXR1c31gLFxuICAgICAgKTtcbiAgICB9XG4gIH0sIHVybCk7XG4gIGlmIChyZXN1bHQgIT09IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UocmVzdWx0KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoIWlnbm9yZUVycm9ycykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYGZldGNoR2V0V2l0aGluUGFnZSBwYXJzZSBlcnJvcjogJHtlIGluc3RhbmNlb2YgRXJyb3IgPyBgJHtlLm1lc3NhZ2V9XFxuJHtlLnN0YWNrfWAgOiBTdHJpbmcoZSl9LCB1cmw6ICR7dXJsfSwgcmVzdWx0OiAke3Jlc3VsdH0sIHN0YXR1czogJHtzdGF0dXN9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaFBvc3RXaXRoaW5QYWdlPFRSZXN1bHQ+KFxuICBwYWdlOiBQYWdlLFxuICB1cmw6IHN0cmluZyxcbiAgZGF0YTogUmVjb3JkPHN0cmluZywgYW55PixcbiAgZXh0cmFIZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30sXG4gIGlnbm9yZUVycm9ycyA9IGZhbHNlLFxuKTogUHJvbWlzZTxUUmVzdWx0IHwgbnVsbD4ge1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYWdlLmV2YWx1YXRlKFxuICAgIGFzeW5jIChpbm5lclVybDogc3RyaW5nLCBpbm5lckRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4sIGlubmVyRXh0cmFIZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGlubmVyVXJsLCB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShpbm5lckRhdGEpLFxuICAgICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLW9iamVjdC1zcHJlYWRcbiAgICAgICAgaGVhZGVyczogT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04JyB9LFxuICAgICAgICAgIGlubmVyRXh0cmFIZWFkZXJzLFxuICAgICAgICApLFxuICAgICAgfSk7XG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpO1xuICAgIH0sXG4gICAgdXJsLFxuICAgIGRhdGEsXG4gICAgZXh0cmFIZWFkZXJzLFxuICApO1xuXG4gIHRyeSB7XG4gICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UocmVzdWx0KTtcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoIWlnbm9yZUVycm9ycykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgZmV0Y2hQb3N0V2l0aGluUGFnZSBwYXJzZSBlcnJvcjogJHtlIGluc3RhbmNlb2YgRXJyb3IgPyBgJHtlLm1lc3NhZ2V9XFxuJHtlLnN0YWNrfWAgOiBTdHJpbmcoZSl9LCB1cmw6ICR7dXJsfSwgZGF0YTogJHtKU09OLnN0cmluZ2lmeShkYXRhKX0sIGV4dHJhSGVhZGVyczogJHtKU09OLnN0cmluZ2lmeShleHRyYUhlYWRlcnMpfSwgcmVzdWx0OiAke3Jlc3VsdH1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxVQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBbUMsU0FBQUQsdUJBQUFFLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFHbkMsTUFBTUcsaUJBQWlCLEdBQUcsa0JBQWtCO0FBRTVDLFNBQVNDLGNBQWNBLENBQUEsRUFBRztFQUN4QixPQUFPO0lBQ0xDLE1BQU0sRUFBRUYsaUJBQWlCO0lBQ3pCLGNBQWMsRUFBRUE7RUFDbEIsQ0FBQztBQUNIO0FBRU8sZUFBZUcsUUFBUUEsQ0FBVUMsR0FBVyxFQUFFQyxZQUFpQyxFQUFvQjtFQUN4RyxJQUFJQyxPQUFPLEdBQUdMLGNBQWMsQ0FBQyxDQUFDO0VBQzlCLElBQUlJLFlBQVksRUFBRTtJQUNoQkMsT0FBTyxHQUFHQyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0YsT0FBTyxFQUFFRCxZQUFZLENBQUM7RUFDaEQ7RUFDQSxNQUFNSSxPQUFPLEdBQUc7SUFDZEMsTUFBTSxFQUFFLEtBQUs7SUFDYko7RUFDRixDQUFDO0VBQ0QsTUFBTUssV0FBVyxHQUFHLE1BQU0sSUFBQUMsa0JBQVMsRUFBQ1IsR0FBRyxFQUFFSyxPQUFPLENBQUM7RUFFakQsSUFBSUUsV0FBVyxDQUFDRSxNQUFNLEtBQUssR0FBRyxFQUFFO0lBQzlCLE1BQU0sSUFBSUMsS0FBSyxDQUFDLHVFQUF1RUgsV0FBVyxDQUFDRSxNQUFNLEVBQUUsQ0FBQztFQUM5RztFQUVBLE9BQU9GLFdBQVcsQ0FBQ0ksSUFBSSxDQUFDLENBQUM7QUFDM0I7QUFFTyxlQUFlQyxTQUFTQSxDQUM3QlosR0FBVyxFQUNYYSxJQUF5QixFQUN6QlosWUFBaUMsR0FBRyxDQUFDLENBQUMsRUFD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
|
package/lib/scrapers/visa-cal.js
CHANGED
|
@@ -262,7 +262,7 @@ class VisaCalScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
|
|
|
262
262
|
const finalMonthToFetchMoment = (0, _moment.default)().add(futureMonthsToScrape, 'month');
|
|
263
263
|
const months = finalMonthToFetchMoment.diff(startMoment, 'months');
|
|
264
264
|
const allMonthsData = [];
|
|
265
|
-
const frame = _lodash.default.find(frames.result
|
|
265
|
+
const frame = _lodash.default.find(frames.result?.bankIssuedCards?.cardLevelFrames, {
|
|
266
266
|
cardUniqueId: card.cardUniqueId
|
|
267
267
|
});
|
|
268
268
|
debug(`fetch pending transactions for card ${card.cardUniqueId}`);
|
|
@@ -305,7 +305,7 @@ class VisaCalScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
|
|
|
305
305
|
const txns = this.options.outputData?.enableTransactionsFilterByDate ?? true ? (0, _transactions.filterOldTransactions)(transactions, (0, _moment.default)(startDate), this.options.combineInstallments || false) : transactions;
|
|
306
306
|
return {
|
|
307
307
|
txns,
|
|
308
|
-
balance:
|
|
308
|
+
balance: frame?.nextTotalDebit != null ? -frame.nextTotalDebit : undefined,
|
|
309
309
|
accountNumber: card.last4Digits
|
|
310
310
|
};
|
|
311
311
|
}));
|
|
@@ -318,4 +318,4 @@ class VisaCalScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
|
|
|
318
318
|
}
|
|
319
319
|
}
|
|
320
320
|
var _default = exports.default = VisaCalScraper;
|
|
321
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGVidWciLCJfZWxlbWVudHNJbnRlcmFjdGlvbnMiLCJfZmV0Y2giLCJfbmF2aWdhdGlvbiIsIl9zdG9yYWdlIiwiX3RyYW5zYWN0aW9ucyIsIl93YWl0aW5nIiwiX3RyYW5zYWN0aW9uczIiLCJfYmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsIl9sb2Rhc2giLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJhcGlIZWFkZXJzIiwiT3JpZ2luIiwiUmVmZXJlciIsIkxPR0lOX1VSTCIsIlRSQU5TQUNUSU9OU19SRVFVRVNUX0VORFBPSU5UIiwiRlJBTUVTX1JFUVVFU1RfRU5EUE9JTlQiLCJQRU5ESU5HX1RSQU5TQUNUSU9OU19SRVFVRVNUX0VORFBPSU5UIiwiU1NPX0FVVEhPUklaQVRJT05fUkVRVUVTVF9FTkRQT0lOVCIsIkludmFsaWRQYXNzd29yZE1lc3NhZ2UiLCJkZWJ1ZyIsImdldERlYnVnIiwiVHJuVHlwZUNvZGUiLCJpc0F1dGhNb2R1bGUiLCJyZXN1bHQiLCJCb29sZWFuIiwiYXV0aCIsImNhbENvbm5lY3RUb2tlbiIsIlN0cmluZyIsInRyaW0iLCJhdXRoTW9kdWxlT3JVbmRlZmluZWQiLCJ1bmRlZmluZWQiLCJpc1BlbmRpbmciLCJ0cmFuc2FjdGlvbiIsImRlYkNyZERhdGUiLCJpc0NhcmRUcmFuc2FjdGlvbkRldGFpbHMiLCJpc0NhcmRQZW5kaW5nVHJhbnNhY3Rpb25EZXRhaWxzIiwiZ2V0TG9naW5GcmFtZSIsInBhZ2UiLCJmcmFtZSIsIndhaXRVbnRpbCIsImZyYW1lcyIsImZpbmQiLCJmIiwidXJsIiwiaW5jbHVkZXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsIkVycm9yIiwiaGFzSW52YWxpZFBhc3N3b3JkRXJyb3IiLCJlcnJvckZvdW5kIiwiZWxlbWVudFByZXNlbnRPblBhZ2UiLCJlcnJvck1lc3NhZ2UiLCJwYWdlRXZhbCIsIml0ZW0iLCJpbm5lclRleHQiLCJoYXNDaGFuZ2VQYXNzd29yZEZvcm0iLCJnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyIsInVybHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiSW52YWxpZFBhc3N3b3JkIiwib3B0aW9ucyIsIkNoYW5nZVBhc3N3b3JkIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiY29udmVydFBhcnNlZERhdGFUb1RyYW5zYWN0aW9ucyIsImRhdGEiLCJwZW5kaW5nRGF0YSIsInBlbmRpbmdUcmFuc2FjdGlvbnMiLCJjYXJkc0xpc3QiLCJmbGF0TWFwIiwiY2FyZCIsImF1dGhEZXRhbGlzTGlzdCIsImJhbmtBY2NvdW50cyIsIm1vbnRoRGF0YSIsInJlZ3VsYXJEZWJpdERheXMiLCJhY2NvdW50cyIsImRlYml0RGF0ZXMiLCJpbW1lZGlhdGVEZWJpdERheXMiLCJpbW1pZGlhdGVEZWJpdHMiLCJkZWJpdERheXMiLCJjb21wbGV0ZWRUcmFuc2FjdGlvbnMiLCJkZWJpdERhdGUiLCJ0cmFuc2FjdGlvbnMiLCJhbGwiLCJtYXAiLCJudW1PZlBheW1lbnRzIiwibnVtYmVyT2ZQYXltZW50cyIsImluc3RhbGxtZW50cyIsIm51bWJlciIsImN1clBheW1lbnROdW0iLCJ0b3RhbCIsImRhdGUiLCJtb21lbnQiLCJ0cm5QdXJjaGFzZURhdGUiLCJjaGFyZ2VkQW1vdW50IiwidHJuQW10IiwiYW10QmVmb3JlQ29udkFuZEluZGV4Iiwib3JpZ2luYWxBbW91bnQiLCJ0cm5UeXBlQ29kZSIsImNyZWRpdCIsImlkZW50aWZpZXIiLCJ0cm5JbnRJZCIsInR5cGUiLCJyZWd1bGFyIiwic3RhbmRpbmdPcmRlciIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJJbnN0YWxsbWVudHMiLCJzdGF0dXMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiUGVuZGluZyIsIkNvbXBsZXRlZCIsImFkZCIsInRvSVNPU3RyaW5nIiwicHJvY2Vzc2VkRGF0ZSIsIkRhdGUiLCJvcmlnaW5hbEN1cnJlbmN5IiwidHJuQ3VycmVuY3lTeW1ib2wiLCJjaGFyZ2VkQ3VycmVuY3kiLCJkZWJDcmRDdXJyZW5jeVN5bWJvbCIsImRlc2NyaXB0aW9uIiwibWVyY2hhbnROYW1lIiwibWVtbyIsInRyYW5zVHlwZUNvbW1lbnREZXRhaWxzIiwidG9TdHJpbmciLCJjYXRlZ29yeSIsImJyYW5jaENvZGVEZXNjIiwiaW5jbHVkZVJhd1RyYW5zYWN0aW9uIiwicmF3VHJhbnNhY3Rpb24iLCJWaXNhQ2FsU2NyYXBlciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJhdXRob3JpemF0aW9uIiwib3BlbkxvZ2luUG9wdXAiLCJ3YWl0VW50aWxFbGVtZW50Rm91bmQiLCJjbGlja0J1dHRvbiIsImdldENhcmRzIiwiaW5pdERhdGEiLCJnZXRGcm9tU2Vzc2lvblN0b3JhZ2UiLCJjYXJkcyIsImNhcmRVbmlxdWVJZCIsImxhc3Q0RGlnaXRzIiwiZ2V0QXV0aG9yaXphdGlvbkhlYWRlciIsImF1dGhNb2R1bGUiLCJnZXRYU2l0ZUlkIiwiZ2V0TG9naW5PcHRpb25zIiwiYXV0aFJlcXVlc3RQcm9taXNlIiwid2FpdEZvclJlcXVlc3QiLCJ0aW1lb3V0IiwiY2F0Y2giLCJsb2dpblVybCIsImZpZWxkcyIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwicG9zc2libGVSZXN1bHRzIiwiY2hlY2tSZWFkaW5lc3MiLCJwcmVBY3Rpb24iLCJwb3N0QWN0aW9uIiwid2FpdEZvck5hdmlnYXRpb24iLCJjdXJyZW50VXJsIiwiZ2V0Q3VycmVudFVybCIsImVuZHNXaXRoIiwicmVxdWVzdCIsImhlYWRlcnMiLCJyZXF1aXJlc0NoYW5nZVBhc3N3b3JkIiwidXNlckFnZW50IiwiZmV0Y2hEYXRhIiwiZGVmYXVsdFN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJzdGFydERhdGUiLCJ0b0RhdGUiLCJzdGFydE1vbWVudCIsIm1heCIsImZvcm1hdCIsInhTaXRlSWQiLCJBdXRob3JpemF0aW9uIiwiZnV0dXJlTW9udGhzVG9TY3JhcGUiLCJmZXRjaFBvc3QiLCJjYXJkc0ZvckZyYW1lRGF0YSIsImZpbmFsTW9udGhUb0ZldGNoTW9tZW50IiwibW9udGhzIiwiZGlmZiIsImFsbE1vbnRoc0RhdGEiLCJfIiwiYmFua0lzc3VlZENhcmRzIiwiY2FyZExldmVsRnJhbWVzIiwiY2FyZFVuaXF1ZUlEQXJyYXkiLCJpIiwibW9udGgiLCJjbG9uZSIsInllYXIiLCJzdGF0dXNDb2RlIiwidGl0bGUiLCJwdXNoIiwidHhucyIsIm91dHB1dERhdGEiLCJlbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGUiLCJmaWx0ZXJPbGRUcmFuc2FjdGlvbnMiLCJjb21iaW5lSW5zdGFsbG1lbnRzIiwiYmFsYW5jZSIsIm5leHRUb3RhbERlYml0IiwiYWNjb3VudE51bWJlciIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdWNjZXNzIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmFwZXJzL3Zpc2EtY2FsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IHR5cGUgSFRUUFJlcXVlc3QsIHR5cGUgRnJhbWUsIHR5cGUgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuaW1wb3J0IHsgY2xpY2tCdXR0b24sIGVsZW1lbnRQcmVzZW50T25QYWdlLCBwYWdlRXZhbCwgd2FpdFVudGlsRWxlbWVudEZvdW5kIH0gZnJvbSAnLi4vaGVscGVycy9lbGVtZW50cy1pbnRlcmFjdGlvbnMnO1xuaW1wb3J0IHsgZmV0Y2hQb3N0IH0gZnJvbSAnLi4vaGVscGVycy9mZXRjaCc7XG5pbXBvcnQgeyBnZXRDdXJyZW50VXJsLCB3YWl0Rm9yTmF2aWdhdGlvbiB9IGZyb20gJy4uL2hlbHBlcnMvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBnZXRGcm9tU2Vzc2lvblN0b3JhZ2UgfSBmcm9tICcuLi9oZWxwZXJzL3N0b3JhZ2UnO1xuaW1wb3J0IHsgZmlsdGVyT2xkVHJhbnNhY3Rpb25zIH0gZnJvbSAnLi4vaGVscGVycy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgd2FpdFVudGlsIH0gZnJvbSAnLi4vaGVscGVycy93YWl0aW5nJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uU3RhdHVzZXMsIFRyYW5zYWN0aW9uVHlwZXMsIHR5cGUgVHJhbnNhY3Rpb24sIHR5cGUgVHJhbnNhY3Rpb25zQWNjb3VudCB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBCYXNlU2NyYXBlcldpdGhCcm93c2VyLCBMb2dpblJlc3VsdHMsIHR5cGUgTG9naW5PcHRpb25zIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7IHR5cGUgU2NyYXBlclNjcmFwaW5nUmVzdWx0LCB0eXBlIFNjcmFwZXJPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuY29uc3QgYXBpSGVhZGVycyA9IHtcbiAgJ1VzZXItQWdlbnQnOlxuICAgICdNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xNV83KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTQyLjAuMC4wIFNhZmFyaS81MzcuMzYnLFxuICBPcmlnaW46ICdodHRwczovL2RpZ2l0YWwtd2ViLmNhbC1vbmxpbmUuY28uaWwnLFxuICBSZWZlcmVyOiAnaHR0cHM6Ly9kaWdpdGFsLXdlYi5jYWwtb25saW5lLmNvLmlsJyxcbiAgJ0FjY2VwdC1MYW5ndWFnZSc6ICdoZS1JTCxoZTtxPTAuOSxlbi1VUztxPTAuOCxlbjtxPTAuNycsXG4gICdTZWMtRmV0Y2gtU2l0ZSc6ICdzYW1lLXNpdGUnLFxuICAnU2VjLUZldGNoLU1vZGUnOiAnY29ycycsXG4gICdTZWMtRmV0Y2gtRGVzdCc6ICdlbXB0eScsXG59O1xuY29uc3QgTE9HSU5fVVJMID0gJ2h0dHBzOi8vd3d3LmNhbC1vbmxpbmUuY28uaWwvJztcbmNvbnN0IFRSQU5TQUNUSU9OU19SRVFVRVNUX0VORFBPSU5UID1cbiAgJ2h0dHBzOi8vYXBpLmNhbC1vbmxpbmUuY28uaWwvVHJhbnNhY3Rpb25zL2FwaS90cmFuc2FjdGlvbnNEZXRhaWxzL2dldENhcmRUcmFuc2FjdGlvbnNEZXRhaWxzJztcbmNvbnN0IEZSQU1FU19SRVFVRVNUX0VORFBPSU5UID0gJ2h0dHBzOi8vYXBpLmNhbC1vbmxpbmUuY28uaWwvRnJhbWVzL2FwaS9GcmFtZXMvR2V0RnJhbWVTdGF0dXMnO1xuY29uc3QgUEVORElOR19UUkFOU0FDVElPTlNfUkVRVUVTVF9FTkRQT0lOVCA9XG4gICdodHRwczovL2FwaS5jYWwtb25saW5lLmNvLmlsL1RyYW5zYWN0aW9ucy9hcGkvYXBwcm92YWxzL2dldENsZWFyYW5jZVJlcXVlc3RzJztcbmNvbnN0IFNTT19BVVRIT1JJWkFUSU9OX1JFUVVFU1RfRU5EUE9JTlQgPSAnaHR0cHM6Ly9jb25uZWN0LmNhbC1vbmxpbmUuY28uaWwvY29sLXJlc3QvY2FsY29ubmVjdC9hdXRoZW50aWNhdGlvbi9TU08nO1xuXG5jb25zdCBJbnZhbGlkUGFzc3dvcmRNZXNzYWdlID0gJ9ep150g15TXntep16rXntepINeQ15Ug15TXodeZ16HXnteUINep15TXldeW16DXlSDXqdeS15XXmdeZ150nO1xuXG5jb25zdCBkZWJ1ZyA9IGdldERlYnVnKCd2aXNhLWNhbCcpO1xuXG5lbnVtIFRyblR5cGVDb2RlIHtcbiAgcmVndWxhciA9ICc1JyxcbiAgY3JlZGl0ID0gJzYnLFxuICBpbnN0YWxsbWVudHMgPSAnOCcsXG4gIHN0YW5kaW5nT3JkZXIgPSAnOScsXG59XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBhbXRCZWZvcmVDb252QW5kSW5kZXg6IG51bWJlcjtcbiAgYnJhbmNoQ29kZURlc2M6IHN0cmluZztcbiAgY2FzaEFjY01hbmFnZXJOYW1lOiBudWxsO1xuICBjYXNoQWNjb3VudE1hbmFnZXI6IG51bGw7XG4gIGNhc2hBY2NvdW50VHJuQW10OiBudW1iZXI7XG4gIGNoYXJnZUV4dGVybmFsVG9DYXJkQ29tbWVudDogc3RyaW5nO1xuICBjb21tZW50czogW107XG4gIGN1clBheW1lbnROdW06IG51bWJlcjtcbiAgZGViQ3JkQ3VycmVuY3lTeW1ib2w6IEN1cnJlbmN5U3ltYm9sO1xuICBkZWJDcmREYXRlOiBzdHJpbmc7XG4gIGRlYml0U3ByZWFkSW5kOiBib29sZWFuO1xuICBkaXNjb3VudEFtb3VudDogdW5rbm93bjtcbiAgZGlzY291bnRSZWFzb246IHVua25vd247XG4gIGltbWVkaWF0ZUNvbW1lbnRzOiBbXTtcbiAgaXNJbW1lZGlhdGVDb21tZW50SW5kOiBib29sZWFuO1xuICBpc0ltbWVkaWF0ZUhIS0luZDogYm9vbGVhbjtcbiAgaXNNYXJnYXJpdGE6IGJvb2xlYW47XG4gIGlzU3ByZWFkUGF5bWVuc3RBYnJvYWQ6IGJvb2xlYW47XG4gIGxpbmtlZENvbW1lbnRzOiBbXTtcbiAgbWVyY2hhbnRBZGRyZXNzOiBzdHJpbmc7XG4gIG1lcmNoYW50TmFtZTogc3RyaW5nO1xuICBtZXJjaGFudFBob25lTm86IHN0cmluZztcbiAgbnVtT2ZQYXltZW50czogbnVtYmVyO1xuICBvbkdvaW5nVHJhbnNhY3Rpb25zQ29tbWVudDogc3RyaW5nO1xuICByZWZ1bmRJbmQ6IGJvb2xlYW47XG4gIHJvdW5kaW5nQW1vdW50OiB1bmtub3duO1xuICByb3VuZGluZ1JlYXNvbjogdW5rbm93bjtcbiAgdG9rZW5JbmQ6IDA7XG4gIHRva2VuTnVtYmVyUGFydDQ6ICcnO1xuICB0cmFuc0NhcmRQcmVzZW50SW5kOiBib29sZWFuO1xuICB0cmFuc1R5cGVDb21tZW50RGV0YWlsczogW107XG4gIHRybkFtdDogbnVtYmVyO1xuICB0cm5DdXJyZW5jeVN5bWJvbDogQ3VycmVuY3lTeW1ib2w7XG4gIHRybkV4YWNXYXk6IG51bWJlcjtcbiAgdHJuSW50SWQ6IHN0cmluZztcbiAgdHJuTnVtYXJldG9yOiBudW1iZXI7XG4gIHRyblB1cmNoYXNlRGF0ZTogc3RyaW5nO1xuICB0cm5UeXBlOiBzdHJpbmc7XG4gIHRyblR5cGVDb2RlOiBUcm5UeXBlQ29kZTtcbiAgd2FsbGV0UHJvdmlkZXJDb2RlOiAwO1xuICB3YWxsZXRQcm92aWRlckRlc2M6ICcnO1xuICBlYXJseVBheW1lbnRJbmQ6IGJvb2xlYW47XG59XG5pbnRlcmZhY2UgU2NyYXBlZFBlbmRpbmdUcmFuc2FjdGlvbiB7XG4gIG1lcmNoYW50SUQ6IHN0cmluZztcbiAgbWVyY2hhbnROYW1lOiBzdHJpbmc7XG4gIHRyblB1cmNoYXNlRGF0ZTogc3RyaW5nO1xuICB3YWxsZXRUcmFuSW5kOiBudW1iZXI7XG4gIHRyYW5zYWN0aW9uc09yaWdpbjogbnVtYmVyO1xuICB0cm5BbXQ6IG51bWJlcjtcbiAgdHBhQXBwcm92YWxBbW91bnQ6IHVua25vd247XG4gIHRybkN1cnJlbmN5U3ltYm9sOiBDdXJyZW5jeVN5bWJvbDtcbiAgdHJuVHlwZUNvZGU6IFRyblR5cGVDb2RlO1xuICB0cm5UeXBlOiBzdHJpbmc7XG4gIGJyYW5jaENvZGVEZXNjOiBzdHJpbmc7XG4gIHRyYW5zQ2FyZFByZXNlbnRJbmQ6IGJvb2xlYW47XG4gIGo1SW5kaWNhdG9yOiBzdHJpbmc7XG4gIG51bWJlck9mUGF5bWVudHM6IG51bWJlcjtcbiAgZmlyc3RQYXltZW50QW1vdW50OiBudW1iZXI7XG4gIHRyYW5zVHlwZUNvbW1lbnREZXRhaWxzOiBbXTtcbn1cbmludGVyZmFjZSBJbml0UmVzcG9uc2Uge1xuICByZXN1bHQ6IHtcbiAgICBjYXJkczoge1xuICAgICAgY2FyZFVuaXF1ZUlkOiBzdHJpbmc7XG4gICAgICBsYXN0NERpZ2l0czogc3RyaW5nO1xuICAgICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbiAgICB9W107XG4gIH07XG59XG50eXBlIEN1cnJlbmN5U3ltYm9sID0gc3RyaW5nO1xuaW50ZXJmYWNlIENhcmRUcmFuc2FjdGlvbkRldGFpbHNFcnJvciB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHN0YXR1c0NvZGU6IG51bWJlcjtcbn1cbmludGVyZmFjZSBDYXJkVHJhbnNhY3Rpb25EZXRhaWxzIGV4dGVuZHMgQ2FyZFRyYW5zYWN0aW9uRGV0YWlsc0Vycm9yIHtcbiAgcmVzdWx0OiB7XG4gICAgYmFua0FjY291bnRzOiB7XG4gICAgICBiYW5rQWNjb3VudE51bTogc3RyaW5nO1xuICAgICAgYmFua05hbWU6IHN0cmluZztcbiAgICAgIGNob2ljZUV4dGVybmFsVHJhbnNhY3Rpb25zOiBhbnk7XG4gICAgICBjdXJyZW50QmFua0FjY291bnRJbmQ6IGJvb2xlYW47XG4gICAgICBkZWJpdERhdGVzOiB7XG4gICAgICAgIGJhc2tldEFtb3VudENvbW1lbnQ6IHVua25vd247XG4gICAgICAgIGNob2ljZUhIS0RlYml0OiBudW1iZXI7XG4gICAgICAgIGRhdGU6IHN0cmluZztcbiAgICAgICAgZGViaXRSZWFzb246IHVua25vd247XG4gICAgICAgIGZpeERlYml0QW1vdW50OiBudW1iZXI7XG4gICAgICAgIGZyb21QdXJjaGFzZURhdGU6IHN0cmluZztcbiAgICAgICAgaXNDaG9pY2VSZXBhaW1lbnQ6IGJvb2xlYW47XG4gICAgICAgIHRvUHVyY2hhc2VEYXRlOiBzdHJpbmc7XG4gICAgICAgIHRvdGFsQmFza2V0QW1vdW50OiBudW1iZXI7XG4gICAgICAgIHRvdGFsRGViaXRzOiB7XG4gICAgICAgICAgY3VycmVuY3lTeW1ib2w6IEN1cnJlbmN5U3ltYm9sO1xuICAgICAgICAgIGFtb3VudDogbnVtYmVyO1xuICAgICAgICB9W107XG4gICAgICAgIHRyYW5zYWN0aW9uczogU2NyYXBlZFRyYW5zYWN0aW9uW107XG4gICAgICB9W107XG4gICAgICBpbW1pZGlhdGVEZWJpdHM6IHsgdG90YWxEZWJpdHM6IFtdOyBkZWJpdERheXM6IFtdIH07XG4gICAgfVtdO1xuICAgIGJsb2NrZWRDYXJkSW5kOiBib29sZWFuO1xuICB9O1xuICBzdGF0dXNDb2RlOiAxO1xuICBzdGF0dXNEZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzdGF0dXNUaXRsZTogc3RyaW5nO1xufVxuaW50ZXJmYWNlIENhcmRQZW5kaW5nVHJhbnNhY3Rpb25EZXRhaWxzIGV4dGVuZHMgQ2FyZFRyYW5zYWN0aW9uRGV0YWlsc0Vycm9yIHtcbiAgcmVzdWx0OiB7XG4gICAgY2FyZHNMaXN0OiB7XG4gICAgICBjYXJkVW5pcXVlSUQ6IHN0cmluZztcbiAgICAgIGF1dGhEZXRhbGlzTGlzdDogU2NyYXBlZFBlbmRpbmdUcmFuc2FjdGlvbltdO1xuICAgIH1bXTtcbiAgfTtcbiAgc3RhdHVzQ29kZTogMTtcbiAgc3RhdHVzRGVzY3JpcHRpb246IHN0cmluZztcbiAgc3RhdHVzVGl0bGU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEF1dGhNb2R1bGUge1xuICBhdXRoOiB7XG4gICAgY2FsQ29ubmVjdFRva2VuOiBzdHJpbmcgfCBudWxsO1xuICB9O1xufVxuXG5mdW5jdGlvbiBpc0F1dGhNb2R1bGUocmVzdWx0OiBhbnkpOiByZXN1bHQgaXMgQXV0aE1vZHVsZSB7XG4gIHJldHVybiBCb29sZWFuKHJlc3VsdD8uYXV0aD8uY2FsQ29ubmVjdFRva2VuICYmIFN0cmluZyhyZXN1bHQuYXV0aC5jYWxDb25uZWN0VG9rZW4pLnRyaW0oKSk7XG59XG5cbmZ1bmN0aW9uIGF1dGhNb2R1bGVPclVuZGVmaW5lZChyZXN1bHQ6IGFueSk6IEF1dGhNb2R1bGUgfCB1bmRlZmluZWQge1xuICByZXR1cm4gaXNBdXRoTW9kdWxlKHJlc3VsdCkgPyByZXN1bHQgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGlzUGVuZGluZyhcbiAgdHJhbnNhY3Rpb246IFNjcmFwZWRUcmFuc2FjdGlvbiB8IFNjcmFwZWRQZW5kaW5nVHJhbnNhY3Rpb24sXG4pOiB0cmFuc2FjdGlvbiBpcyBTY3JhcGVkUGVuZGluZ1RyYW5zYWN0aW9uIHtcbiAgcmV0dXJuICh0cmFuc2FjdGlvbiBhcyBTY3JhcGVkVHJhbnNhY3Rpb24pLmRlYkNyZERhdGUgPT09IHVuZGVmaW5lZDsgLy8gYW4gYXJiaXRyYXJ5IGZpZWxkIHRoYXQgb25seSBhcHBlYXJzIGluIGEgY29tcGxldGVkIHRyYW5zYWN0aW9uXG59XG5cbmZ1bmN0aW9uIGlzQ2FyZFRyYW5zYWN0aW9uRGV0YWlscyhcbiAgcmVzdWx0OiBDYXJkVHJhbnNhY3Rpb25EZXRhaWxzIHwgQ2FyZFRyYW5zYWN0aW9uRGV0YWlsc0Vycm9yLFxuKTogcmVzdWx0IGlzIENhcmRUcmFuc2FjdGlvbkRldGFpbHMge1xuICByZXR1cm4gKHJlc3VsdCBhcyBDYXJkVHJhbnNhY3Rpb25EZXRhaWxzKS5yZXN1bHQgIT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gaXNDYXJkUGVuZGluZ1RyYW5zYWN0aW9uRGV0YWlscyhcbiAgcmVzdWx0OiBDYXJkUGVuZGluZ1RyYW5zYWN0aW9uRGV0YWlscyB8IENhcmRUcmFuc2FjdGlvbkRldGFpbHNFcnJvcixcbik6IHJlc3VsdCBpcyBDYXJkUGVuZGluZ1RyYW5zYWN0aW9uRGV0YWlscyB7XG4gIHJldHVybiAocmVzdWx0IGFzIENhcmRQZW5kaW5nVHJhbnNhY3Rpb25EZXRhaWxzKS5yZXN1bHQgIT09IHVuZGVmaW5lZDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TG9naW5GcmFtZShwYWdlOiBQYWdlKSB7XG4gIGxldCBmcmFtZTogRnJhbWUgfCBudWxsID0gbnVsbDtcbiAgZGVidWcoJ3dhaXQgdW50aWwgbG9naW4gZnJhbWUgZm91bmQnKTtcbiAgYXdhaXQgd2FpdFVudGlsKFxuICAgICgpID0+IHtcbiAgICAgIGZyYW1lID0gcGFnZS5mcmFtZXMoKS5maW5kKGYgPT4gZi51cmwoKS5pbmNsdWRlcygnY29ubmVjdCcpKSB8fCBudWxsO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSghIWZyYW1lKTtcbiAgICB9LFxuICAgICd3YWl0IGZvciBpZnJhbWUgd2l0aCBsb2dpbiBmb3JtJyxcbiAgICAxMDAwMCxcbiAgICAxMDAwLFxuICApO1xuXG4gIGlmICghZnJhbWUpIHtcbiAgICBkZWJ1ZygnZmFpbGVkIHRvIGZpbmQgbG9naW4gZnJhbWUgZm9yIDEwIHNlY29uZHMnKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZhaWxlZCB0byBleHRyYWN0IGxvZ2luIGlmcmFtZScpO1xuICB9XG5cbiAgcmV0dXJuIGZyYW1lO1xufVxuXG5hc3luYyBmdW5jdGlvbiBoYXNJbnZhbGlkUGFzc3dvcmRFcnJvcihwYWdlOiBQYWdlKSB7XG4gIGNvbnN0IGZyYW1lID0gYXdhaXQgZ2V0TG9naW5GcmFtZShwYWdlKTtcbiAgY29uc3QgZXJyb3JGb3VuZCA9IGF3YWl0IGVsZW1lbnRQcmVzZW50T25QYWdlKGZyYW1lLCAnZGl2LmdlbmVyYWwtZXJyb3IgPiBkaXYnKTtcbiAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3JGb3VuZFxuICAgID8gYXdhaXQgcGFnZUV2YWwoZnJhbWUsICdkaXYuZ2VuZXJhbC1lcnJvciA+IGRpdicsICcnLCBpdGVtID0+IHtcbiAgICAgICAgcmV0dXJuIChpdGVtIGFzIEhUTUxEaXZFbGVtZW50KS5pbm5lclRleHQ7XG4gICAgICB9KVxuICAgIDogJyc7XG4gIHJldHVybiBlcnJvck1lc3NhZ2UgPT09IEludmFsaWRQYXNzd29yZE1lc3NhZ2U7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGhhc0NoYW5nZVBhc3N3b3JkRm9ybShwYWdlOiBQYWdlKSB7XG4gIGNvbnN0IGZyYW1lID0gYXdhaXQgZ2V0TG9naW5GcmFtZShwYWdlKTtcbiAgY29uc3QgZXJyb3JGb3VuZCA9IGF3YWl0IGVsZW1lbnRQcmVzZW50T25QYWdlKGZyYW1lLCAnLmNoYW5nZS1wYXNzd29yZC1zdWJ0aXRsZScpO1xuICByZXR1cm4gZXJyb3JGb3VuZDtcbn1cblxuZnVuY3Rpb24gZ2V0UG9zc2libGVMb2dpblJlc3VsdHMoKSB7XG4gIGRlYnVnKCdyZXR1cm4gcG9zc2libGUgbG9naW4gcmVzdWx0cycpO1xuICBjb25zdCB1cmxzOiBMb2dpbk9wdGlvbnNbJ3Bvc3NpYmxlUmVzdWx0cyddID0ge1xuICAgIFtMb2dpblJlc3VsdHMuU3VjY2Vzc106IFsvZGFzaGJvYXJkL2ldLFxuICAgIFtMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXTogW1xuICAgICAgYXN5bmMgKG9wdGlvbnM/OiB7IHBhZ2U/OiBQYWdlIH0pID0+IHtcbiAgICAgICAgY29uc3QgcGFnZSA9IG9wdGlvbnM/LnBhZ2U7XG4gICAgICAgIGlmICghcGFnZSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaGFzSW52YWxpZFBhc3N3b3JkRXJyb3IocGFnZSk7XG4gICAgICB9LFxuICAgIF0sXG4gICAgLy8gW0xvZ2luUmVzdWx0cy5BY2NvdW50QmxvY2tlZF06IFtdLCAvLyBUT0RPIGFkZCB3aGVuIHJlYWNoaW5nIHRoaXMgc2NlbmFyaW9cbiAgICBbTG9naW5SZXN1bHRzLkNoYW5nZVBhc3N3b3JkXTogW1xuICAgICAgYXN5bmMgKG9wdGlvbnM/OiB7IHBhZ2U/OiBQYWdlIH0pID0+IHtcbiAgICAgICAgY29uc3QgcGFnZSA9IG9wdGlvbnM/LnBhZ2U7XG4gICAgICAgIGlmICghcGFnZSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaGFzQ2hhbmdlUGFzc3dvcmRGb3JtKHBhZ2UpO1xuICAgICAgfSxcbiAgICBdLFxuICB9O1xuICByZXR1cm4gdXJscztcbn1cblxuZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKSB7XG4gIGRlYnVnKCdjcmVhdGUgbG9naW4gZmllbGRzIGZvciB1c2VybmFtZSBhbmQgcGFzc3dvcmQnKTtcbiAgcmV0dXJuIFtcbiAgICB7IHNlbGVjdG9yOiAnW2Zvcm1jb250cm9sbmFtZT1cInVzZXJOYW1lXCJdJywgdmFsdWU6IGNyZWRlbnRpYWxzLnVzZXJuYW1lIH0sXG4gICAgeyBzZWxlY3RvcjogJ1tmb3JtY29udHJvbG5hbWU9XCJwYXNzd29yZFwiXScsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICBdO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0UGFyc2VkRGF0YVRvVHJhbnNhY3Rpb25zKFxuICBkYXRhOiBDYXJkVHJhbnNhY3Rpb25EZXRhaWxzW10sXG4gIHBlbmRpbmdEYXRhPzogQ2FyZFBlbmRpbmdUcmFuc2FjdGlvbkRldGFpbHMgfCBudWxsLFxuICBvcHRpb25zPzogU2NyYXBlck9wdGlvbnMsXG4pOiBUcmFuc2FjdGlvbltdIHtcbiAgY29uc3QgcGVuZGluZ1RyYW5zYWN0aW9ucyA9IHBlbmRpbmdEYXRhPy5yZXN1bHRcbiAgICA/IHBlbmRpbmdEYXRhLnJlc3VsdC5jYXJkc0xpc3QuZmxhdE1hcChjYXJkID0+IGNhcmQuYXV0aERldGFsaXNMaXN0KVxuICAgIDogW107XG5cbiAgY29uc3QgYmFua0FjY291bnRzID0gZGF0YS5mbGF0TWFwKG1vbnRoRGF0YSA9PiBtb250aERhdGEucmVzdWx0LmJhbmtBY2NvdW50cyk7XG4gIGNvbnN0IHJlZ3VsYXJEZWJpdERheXMgPSBiYW5rQWNjb3VudHMuZmxhdE1hcChhY2NvdW50cyA9PiBhY2NvdW50cy5kZWJpdERhdGVzKTtcbiAgY29uc3QgaW1tZWRpYXRlRGViaXREYXlzID0gYmFua0FjY291bnRzLmZsYXRNYXAoYWNjb3VudHMgPT4gYWNjb3VudHMuaW1taWRpYXRlRGViaXRzLmRlYml0RGF5cyk7XG4gIGNvbnN0IGNvbXBsZXRlZFRyYW5zYWN0aW9ucyA9IFsuLi5yZWd1bGFyRGViaXREYXlzLCAuLi5pbW1lZGlhdGVEZWJpdERheXNdLmZsYXRNYXAoXG4gICAgZGViaXREYXRlID0+IGRlYml0RGF0ZS50cmFuc2FjdGlvbnMsXG4gICk7XG5cbiAgY29uc3QgYWxsOiAoU2NyYXBlZFRyYW5zYWN0aW9uIHwgU2NyYXBlZFBlbmRpbmdUcmFuc2FjdGlvbilbXSA9IFsuLi5wZW5kaW5nVHJhbnNhY3Rpb25zLCAuLi5jb21wbGV0ZWRUcmFuc2FjdGlvbnNdO1xuXG4gIHJldHVybiBhbGwubWFwKHRyYW5zYWN0aW9uID0+IHtcbiAgICBjb25zdCBudW1PZlBheW1lbnRzID0gaXNQZW5kaW5nKHRyYW5zYWN0aW9uKSA/IHRyYW5zYWN0aW9uLm51bWJlck9mUGF5bWVudHMgOiB0cmFuc2FjdGlvbi5udW1PZlBheW1lbnRzO1xuICAgIGNvbnN0IGluc3RhbGxtZW50cyA9IG51bU9mUGF5bWVudHNcbiAgICAgID8ge1xuICAgICAgICAgIG51bWJlcjogaXNQZW5kaW5nKHRyYW5zYWN0aW9uKSA/IDEgOiB0cmFuc2FjdGlvbi5jdXJQYXltZW50TnVtLFxuICAgICAgICAgIHRvdGFsOiBudW1PZlBheW1lbnRzLFxuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQodHJhbnNhY3Rpb24udHJuUHVyY2hhc2VEYXRlKTtcblxuICAgIGNvbnN0IGNoYXJnZWRBbW91bnQgPSAoaXNQZW5kaW5nKHRyYW5zYWN0aW9uKSA/IHRyYW5zYWN0aW9uLnRybkFtdCA6IHRyYW5zYWN0aW9uLmFtdEJlZm9yZUNvbnZBbmRJbmRleCkgKiAtMTtcbiAgICBjb25zdCBvcmlnaW5hbEFtb3VudCA9IHRyYW5zYWN0aW9uLnRybkFtdCAqICh0cmFuc2FjdGlvbi50cm5UeXBlQ29kZSA9PT0gVHJuVHlwZUNvZGUuY3JlZGl0ID8gMSA6IC0xKTtcblxuICAgIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb24gPSB7XG4gICAgICBpZGVudGlmaWVyOiAhaXNQZW5kaW5nKHRyYW5zYWN0aW9uKSA/IHRyYW5zYWN0aW9uLnRybkludElkIDogdW5kZWZpbmVkLFxuICAgICAgdHlwZTogW1RyblR5cGVDb2RlLnJlZ3VsYXIsIFRyblR5cGVDb2RlLnN0YW5kaW5nT3JkZXJdLmluY2x1ZGVzKHRyYW5zYWN0aW9uLnRyblR5cGVDb2RlKVxuICAgICAgICA/IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsXG4gICAgICAgIDogVHJhbnNhY3Rpb25UeXBlcy5JbnN0YWxsbWVudHMsXG4gICAgICBzdGF0dXM6IGlzUGVuZGluZyh0cmFuc2FjdGlvbikgPyBUcmFuc2FjdGlvblN0YXR1c2VzLlBlbmRpbmcgOiBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCxcbiAgICAgIGRhdGU6IGluc3RhbGxtZW50cyA/IGRhdGUuYWRkKGluc3RhbGxtZW50cy5udW1iZXIgLSAxLCAnbW9udGgnKS50b0lTT1N0cmluZygpIDogZGF0ZS50b0lTT1N0cmluZygpLFxuICAgICAgcHJvY2Vzc2VkRGF0ZTogaXNQZW5kaW5nKHRyYW5zYWN0aW9uKSA/IGRhdGUudG9JU09TdHJpbmcoKSA6IG5ldyBEYXRlKHRyYW5zYWN0aW9uLmRlYkNyZERhdGUpLnRvSVNPU3RyaW5nKCksXG4gICAgICBvcmlnaW5hbEFtb3VudCxcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IHRyYW5zYWN0aW9uLnRybkN1cnJlbmN5U3ltYm9sLFxuICAgICAgY2hhcmdlZEFtb3VudCxcbiAgICAgIGNoYXJnZWRDdXJyZW5jeTogIWlzUGVuZGluZyh0cmFuc2FjdGlvbikgPyB0cmFuc2FjdGlvbi5kZWJDcmRDdXJyZW5jeVN5bWJvbCA6IHVuZGVmaW5lZCxcbiAgICAgIGRlc2NyaXB0aW9uOiB0cmFuc2FjdGlvbi5tZXJjaGFudE5hbWUsXG4gICAgICBtZW1vOiB0cmFuc2FjdGlvbi50cmFuc1R5cGVDb21tZW50RGV0YWlscy50b1N0cmluZygpLFxuICAgICAgY2F0ZWdvcnk6IHRyYW5zYWN0aW9uLmJyYW5jaENvZGVEZXNjLFxuICAgIH07XG5cbiAgICBpZiAoaW5zdGFsbG1lbnRzKSB7XG4gICAgICByZXN1bHQuaW5zdGFsbG1lbnRzID0gaW5zdGFsbG1lbnRzO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zPy5pbmNsdWRlUmF3VHJhbnNhY3Rpb24pIHtcbiAgICAgIHJlc3VsdC5yYXdUcmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xufVxuXG50eXBlIFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzID0geyB1c2VybmFtZTogc3RyaW5nOyBwYXNzd29yZDogc3RyaW5nIH07XG5cbmNsYXNzIFZpc2FDYWxTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlcjxTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscz4ge1xuICBwcml2YXRlIGF1dGhvcml6YXRpb246IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGF1dGhSZXF1ZXN0UHJvbWlzZTogUHJvbWlzZTxIVFRQUmVxdWVzdCB8IHVuZGVmaW5lZD4gfCB1bmRlZmluZWQ7XG5cbiAgb3BlbkxvZ2luUG9wdXAgPSBhc3luYyAoKSA9PiB7XG4gICAgZGVidWcoJ29wZW4gbG9naW4gcG9wdXAsIHdhaXQgdW50aWwgbG9naW4gYnV0dG9uIGF2YWlsYWJsZScpO1xuICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICcjY2NMb2dpbkRlc2t0b3BCdG4nLCB0cnVlKTtcbiAgICBkZWJ1ZygnY2xpY2sgb24gdGhlIGxvZ2luIGJ1dHRvbicpO1xuICAgIGF3YWl0IGNsaWNrQnV0dG9uKHRoaXMucGFnZSwgJyNjY0xvZ2luRGVza3RvcEJ0bicpO1xuICAgIGRlYnVnKCdnZXQgdGhlIGZyYW1lIHRoYXQgaG9sZHMgdGhlIGxvZ2luJyk7XG4gICAgY29uc3QgZnJhbWUgPSBhd2FpdCBnZXRMb2dpbkZyYW1lKHRoaXMucGFnZSk7XG4gICAgZGVidWcoJ3dhaXQgdW50aWwgdGhlIHBhc3N3b3JkIGxvZ2luIHRhYiBoZWFkZXIgaXMgYXZhaWxhYmxlJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKGZyYW1lLCAnI3JlZ3VsYXItbG9naW4nKTtcbiAgICBkZWJ1ZygnbmF2aWdhdGUgdG8gdGhlIHBhc3N3b3JkIGxvZ2luIHRhYicpO1xuICAgIGF3YWl0IGNsaWNrQnV0dG9uKGZyYW1lLCAnI3JlZ3VsYXItbG9naW4nKTtcbiAgICBkZWJ1Zygnd2FpdCB1bnRpbCB0aGUgcGFzc3dvcmQgbG9naW4gdGFiIGlzIGFjdGl2ZScpO1xuICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChmcmFtZSwgJ3JlZ3VsYXItbG9naW4nKTtcblxuICAgIHJldHVybiBmcmFtZTtcbiAgfTtcblxuICBhc3luYyBnZXRDYXJkcygpIHtcbiAgICBjb25zdCBpbml0RGF0YSA9IGF3YWl0IHdhaXRVbnRpbChcbiAgICAgICgpID0+IGdldEZyb21TZXNzaW9uU3RvcmFnZTxJbml0UmVzcG9uc2U+KHRoaXMucGFnZSwgJ2luaXQnKSxcbiAgICAgICdnZXQgaW5pdCBkYXRhIGluIHNlc3Npb24gc3RvcmFnZScsXG4gICAgICAxMDAwMCxcbiAgICAgIDEwMDAsXG4gICAgKTtcbiAgICBpZiAoIWluaXREYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NvdWxkIG5vdCBmaW5kIFwiaW5pdFwiIGRhdGEgaW4gc2Vzc2lvbiBzdG9yYWdlJyk7XG4gICAgfVxuICAgIHJldHVybiBpbml0RGF0YT8ucmVzdWx0LmNhcmRzLm1hcCgoeyBjYXJkVW5pcXVlSWQsIGxhc3Q0RGlnaXRzIH0pID0+ICh7IGNhcmRVbmlxdWVJZCwgbGFzdDREaWdpdHMgfSkpO1xuICB9XG5cbiAgYXN5bmMgZ2V0QXV0aG9yaXphdGlvbkhlYWRlcigpIHtcbiAgICBpZiAoIXRoaXMuYXV0aG9yaXphdGlvbikge1xuICAgICAgZGVidWcoJ2ZldGNoaW5nIGF1dGhvcml6YXRpb24gaGVhZGVyJyk7XG4gICAgICBjb25zdCBhdXRoTW9kdWxlID0gYXdhaXQgd2FpdFVudGlsKFxuICAgICAgICBhc3luYyAoKSA9PiBhdXRoTW9kdWxlT3JVbmRlZmluZWQoYXdhaXQgZ2V0RnJvbVNlc3Npb25TdG9yYWdlPEF1dGhNb2R1bGU+KHRoaXMucGFnZSwgJ2F1dGgtbW9kdWxlJykpLFxuICAgICAgICAnZ2V0IGF1dGhvcml6YXRpb24gaGVhZGVyIHdpdGggdmFsaWQgdG9rZW4gaW4gc2Vzc2lvbiBzdG9yYWdlJyxcbiAgICAgICAgMTBfMDAwLFxuICAgICAgICA1MCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gYENBTEF1dGhTY2hlbWUgJHthdXRoTW9kdWxlLmF1dGguY2FsQ29ubmVjdFRva2VufWA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmF1dGhvcml6YXRpb247XG4gIH1cblxuICBhc3luYyBnZXRYU2l0ZUlkKCkge1xuICAgIC8qXG4gICAgICBJIGRvbid0IGtub3cgaWYgdGhlIGNvbnN0YW50IGJlbG93IHdpbGwgY2hhbmdlIGluIHRoZSBmZWF0dXJlLlxuICAgICAgSWYgc28sIHVzZSB0aGUgbmV4dCBjb2RlOlxuXG4gICAgICByZXR1cm4gdGhpcy5wYWdlLmV2YWx1YXRlKCgpID0+IG5ldyBVdCgpLnhTaXRlSWQpO1xuXG4gICAgICBUbyBnZXQgdGhlIGNsYXNzbmFtZSBzZWFyY2ggZm9yICd4U2l0ZUlkJyBpbiB0aGUgcGFnZSBzb3VyY2VcbiAgICAgIGNsYXNzIFV0IHtcbiAgICAgICAgY29uc3RydWN0b3IoX2UsIG9uLCB5bikge1xuICAgICAgICAgICAgdGhpcy5zdG9yZSA9IF9lLFxuICAgICAgICAgICAgdGhpcy5jb25maWcgPSBvbixcbiAgICAgICAgICAgIHRoaXMuZXZlbnRCdXNTZXJ2aWNlID0geW4sXG4gICAgICAgICAgICB0aGlzLnhTaXRlSWQgPSBcIjA5MDMxOTg3LTI3M0UtMjMxMS05MDZDLThBRjg1QjE3QzhEOVwiLFxuICAgICovXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgnMDkwMzE5ODctMjczRS0yMzExLTkwNkMtOEFGODVCMTdDOEQ5Jyk7XG4gIH1cblxuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKTogTG9naW5PcHRpb25zIHtcbiAgICB0aGlzLmF1dGhSZXF1ZXN0UHJvbWlzZSA9IHRoaXMucGFnZVxuICAgICAgLndhaXRGb3JSZXF1ZXN0KFNTT19BVVRIT1JJWkFUSU9OX1JFUVVFU1RfRU5EUE9JTlQsIHsgdGltZW91dDogMTBfMDAwIH0pXG4gICAgICAuY2F0Y2goZSA9PiB7XG4gICAgICAgIGRlYnVnKCdlcnJvciB3aGlsZSB3YWl0aW5nIGZvciB0aGUgdG9rZW4gcmVxdWVzdCcsIGUpO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBgJHtMT0dJTl9VUkx9YCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6ICdidXR0b25bdHlwZT1cInN1Ym1pdFwiXScsXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCksXG4gICAgICBjaGVja1JlYWRpbmVzczogYXN5bmMgKCkgPT4gd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNjY0xvZ2luRGVza3RvcEJ0bicpLFxuICAgICAgcHJlQWN0aW9uOiB0aGlzLm9wZW5Mb2dpblBvcHVwLFxuICAgICAgcG9zdEFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHdhaXRGb3JOYXZpZ2F0aW9uKHRoaXMucGFnZSk7XG4gICAgICAgICAgY29uc3QgY3VycmVudFVybCA9IGF3YWl0IGdldEN1cnJlbnRVcmwodGhpcy5wYWdlKTtcbiAgICAgICAgICBpZiAoY3VycmVudFVybC5lbmRzV2l0aCgnc2l0ZS10dXRvcmlhbCcpKSB7XG4gICAgICAgICAgICBhd2FpdCBjbGlja0J1dHRvbih0aGlzLnBhZ2UsICdidXR0b24uYnRuLWNsb3NlJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCB0aGlzLmF1dGhSZXF1ZXN0UHJvbWlzZTtcbiAgICAgICAgICB0aGlzLmF1dGhvcml6YXRpb24gPSBTdHJpbmcocmVxdWVzdD8uaGVhZGVycygpLmF1dGhvcml6YXRpb24gfHwgJycpLnRyaW0oKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRVcmwgPSBhd2FpdCBnZXRDdXJyZW50VXJsKHRoaXMucGFnZSk7XG4gICAgICAgICAgaWYgKGN1cnJlbnRVcmwuZW5kc1dpdGgoJ2Rhc2hib2FyZCcpKSByZXR1cm47XG4gICAgICAgICAgY29uc3QgcmVxdWlyZXNDaGFuZ2VQYXNzd29yZCA9IGF3YWl0IGhhc0NoYW5nZVBhc3N3b3JkRm9ybSh0aGlzLnBhZ2UpO1xuICAgICAgICAgIGlmIChyZXF1aXJlc0NoYW5nZVBhc3N3b3JkKSByZXR1cm47XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVzZXJBZ2VudDogYXBpSGVhZGVyc1snVXNlci1BZ2VudCddLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKTogUHJvbWlzZTxTY3JhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKS5zdWJ0cmFjdCg2LCAnbW9udGhzJykuYWRkKDEsICdkYXknKTtcbiAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLm9wdGlvbnMuc3RhcnREYXRlIHx8IGRlZmF1bHRTdGFydE1vbWVudC50b0RhdGUoKTtcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG4gICAgZGVidWcoYGZldGNoIHRyYW5zYWN0aW9ucyBzdGFydGluZyAke3N0YXJ0TW9tZW50LmZvcm1hdCgpfWApO1xuXG4gICAgY29uc3QgW2NhcmRzLCB4U2l0ZUlkLCBBdXRob3JpemF0aW9uXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIHRoaXMuZ2V0Q2FyZHMoKSxcbiAgICAgIHRoaXMuZ2V0WFNpdGVJZCgpLFxuICAgICAgdGhpcy5nZXRBdXRob3JpemF0aW9uSGVhZGVyKCksXG4gICAgXSk7XG5cbiAgICBjb25zdCBmdXR1cmVNb250aHNUb1NjcmFwZSA9IHRoaXMub3B0aW9ucy5mdXR1cmVNb250aHNUb1NjcmFwZSA/PyAxO1xuXG4gICAgZGVidWcoJ2ZldGNoIGZyYW1lcyAobWlzZ2Fyb3QpIG9mIGNhcmRzJyk7XG4gICAgY29uc3QgZnJhbWVzID0gYXdhaXQgZmV0Y2hQb3N0KFxuICAgICAgRlJBTUVTX1JFUVVFU1RfRU5EUE9JTlQsXG4gICAgICB7IGNhcmRzRm9yRnJhbWVEYXRhOiBjYXJkcy5tYXAoKHsgY2FyZFVuaXF1ZUlkIH0pID0+ICh7IGNhcmRVbmlxdWVJZCB9KSkgfSxcbiAgICAgIHtcbiAgICAgICAgQXV0aG9yaXphdGlvbixcbiAgICAgICAgJ1gtU2l0ZS1JZCc6IHhTaXRlSWQsXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIC4uLmFwaUhlYWRlcnMsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBjb25zdCBhY2NvdW50cyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgY2FyZHMubWFwKGFzeW5jIGNhcmQgPT4ge1xuICAgICAgICBjb25zdCBmaW5hbE1vbnRoVG9GZXRjaE1vbWVudCA9IG1vbWVudCgpLmFkZChmdXR1cmVNb250aHNUb1NjcmFwZSwgJ21vbnRoJyk7XG4gICAgICAgIGNvbnN0IG1vbnRocyA9IGZpbmFsTW9udGhUb0ZldGNoTW9tZW50LmRpZmYoc3RhcnRNb21lbnQsICdtb250aHMnKTtcbiAgICAgICAgY29uc3QgYWxsTW9udGhzRGF0YTogQ2FyZFRyYW5zYWN0aW9uRGV0YWlsc1tdID0gW107XG4gICAgICAgIGNvbnN0IGZyYW1lID0gXy5maW5kKGZyYW1lcy5yZXN1bHQuYmFua0lzc3VlZENhcmRzPy5jYXJkTGV2ZWxGcmFtZXMsIHsgY2FyZFVuaXF1ZUlkOiBjYXJkLmNhcmRVbmlxdWVJZCB9KTtcblxuICAgICAgICBkZWJ1ZyhgZmV0Y2ggcGVuZGluZyB0cmFuc2FjdGlvbnMgZm9yIGNhcmQgJHtjYXJkLmNhcmRVbmlxdWVJZH1gKTtcbiAgICAgICAgbGV0IHBlbmRpbmdEYXRhID0gYXdhaXQgZmV0Y2hQb3N0KFxuICAgICAgICAgIFBFTkRJTkdfVFJBTlNBQ1RJT05TX1JFUVVFU1RfRU5EUE9JTlQsXG4gICAgICAgICAgeyBjYXJkVW5pcXVlSURBcnJheTogW2NhcmQuY2FyZFVuaXF1ZUlkXSB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIEF1dGhvcml6YXRpb24sXG4gICAgICAgICAgICAnWC1TaXRlLUlkJzogeFNpdGVJZCxcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAuLi5hcGlIZWFkZXJzLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG5cbiAgICAgICAgZGVidWcoYGZldGNoIGNvbXBsZXRlZCB0cmFuc2FjdGlvbnMgZm9yIGNhcmQgJHtjYXJkLmNhcmRVbmlxdWVJZH1gKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gbW9udGhzOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBtb250aCA9IGZpbmFsTW9udGhUb0ZldGNoTW9tZW50LmNsb25lKCkuc3VidHJhY3QoaSwgJ21vbnRocycpO1xuICAgICAgICAgIGNvbnN0IG1vbnRoRGF0YSA9IGF3YWl0IGZldGNoUG9zdChcbiAgICAgICAgICAgIFRSQU5TQUNUSU9OU19SRVFVRVNUX0VORFBPSU5ULFxuICAgICAgICAgICAgeyBjYXJkVW5pcXVlSWQ6IGNhcmQuY2FyZFVuaXF1ZUlkLCBtb250aDogbW9udGguZm9ybWF0KCdNJyksIHllYXI6IG1vbnRoLmZvcm1hdCgnWVlZWScpIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIEF1dGhvcml6YXRpb24sXG4gICAgICAgICAgICAgICdYLVNpdGUtSWQnOiB4U2l0ZUlkLFxuICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAuLi5hcGlIZWFkZXJzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKG1vbnRoRGF0YT8uc3RhdHVzQ29kZSAhPT0gMSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYGZhaWxlZCB0byBmZXRjaCB0cmFuc2FjdGlvbnMgZm9yIGNhcmQgJHtjYXJkLmxhc3Q0RGlnaXRzfS4gTWVzc2FnZTogJHttb250aERhdGE/LnRpdGxlIHx8ICcnfWAsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKCFpc0NhcmRUcmFuc2FjdGlvbkRldGFpbHMobW9udGhEYXRhKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtb250aERhdGEgaXMgbm90IG9mIHR5cGUgQ2FyZFRyYW5zYWN0aW9uRGV0YWlscycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGFsbE1vbnRoc0RhdGEucHVzaChtb250aERhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBlbmRpbmdEYXRhPy5zdGF0dXNDb2RlICE9PSAxICYmIHBlbmRpbmdEYXRhPy5zdGF0dXNDb2RlICE9PSA5Nikge1xuICAgICAgICAgIGRlYnVnKFxuICAgICAgICAgICAgYGZhaWxlZCB0byBmZXRjaCBwZW5kaW5nIHRyYW5zYWN0aW9ucyBmb3IgY2FyZCAke2NhcmQubGFzdDREaWdpdHN9LiBNZXNzYWdlOiAke3BlbmRpbmdEYXRhPy50aXRsZSB8fCAnJ31gLFxuICAgICAgICAgICk7XG4gICAgICAgICAgcGVuZGluZ0RhdGEgPSBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKCFpc0NhcmRQZW5kaW5nVHJhbnNhY3Rpb25EZXRhaWxzKHBlbmRpbmdEYXRhKSkge1xuICAgICAgICAgIGRlYnVnKCdwZW5kaW5nRGF0YSBpcyBub3Qgb2YgdHlwZSBDYXJkVHJhbnNhY3Rpb25EZXRhaWxzJyk7XG4gICAgICAgICAgcGVuZGluZ0RhdGEgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdHJhbnNhY3Rpb25zID0gY29udmVydFBhcnNlZERhdGFUb1RyYW5zYWN0aW9ucyhhbGxNb250aHNEYXRhLCBwZW5kaW5nRGF0YSwgdGhpcy5vcHRpb25zKTtcblxuICAgICAgICBkZWJ1ZygnZmlsdGVyIG91dCBvbGQgdHJhbnNhY3Rpb25zJyk7XG4gICAgICAgIGNvbnN0IHR4bnMgPVxuICAgICAgICAgICh0aGlzLm9wdGlvbnMub3V0cHV0RGF0YT8uZW5hYmxlVHJhbnNhY3Rpb25zRmlsdGVyQnlEYXRlID8/IHRydWUpXG4gICAgICAgICAgICA/IGZpbHRlck9sZFRyYW5zYWN0aW9ucyh0cmFuc2FjdGlvbnMsIG1vbWVudChzdGFydERhdGUpLCB0aGlzLm9wdGlvbnMuY29tYmluZUluc3RhbGxtZW50cyB8fCBmYWxzZSlcbiAgICAgICAgICAgIDogdHJhbnNhY3Rpb25zO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHhucyxcbiAgICAgICAgICBiYWxhbmNlOiAtZnJhbWU/Lm5leHRUb3RhbERlYml0LFxuICAgICAgICAgIGFjY291bnROdW1iZXI6IGNhcmQubGFzdDREaWdpdHMsXG4gICAgICAgIH0gYXMgVHJhbnNhY3Rpb25zQWNjb3VudDtcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICBkZWJ1ZygncmV0dXJuIHRoZSBzY3JhcGVkIGFjY291bnRzJyk7XG5cbiAgICBkZWJ1ZyhKU09OLnN0cmluZ2lmeShhY2NvdW50cywgbnVsbCwgMikpO1xuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHMsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBWaXNhQ2FsU2NyYXBlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsTUFBQSxHQUFB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
|
|
321
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGVidWciLCJfZWxlbWVudHNJbnRlcmFjdGlvbnMiLCJfZmV0Y2giLCJfbmF2aWdhdGlvbiIsIl9zdG9yYWdlIiwiX3RyYW5zYWN0aW9ucyIsIl93YWl0aW5nIiwiX3RyYW5zYWN0aW9uczIiLCJfYmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsIl9sb2Rhc2giLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJhcGlIZWFkZXJzIiwiT3JpZ2luIiwiUmVmZXJlciIsIkxPR0lOX1VSTCIsIlRSQU5TQUNUSU9OU19SRVFVRVNUX0VORFBPSU5UIiwiRlJBTUVTX1JFUVVFU1RfRU5EUE9JTlQiLCJQRU5ESU5HX1RSQU5TQUNUSU9OU19SRVFVRVNUX0VORFBPSU5UIiwiU1NPX0FVVEhPUklaQVRJT05fUkVRVUVTVF9FTkRQT0lOVCIsIkludmFsaWRQYXNzd29yZE1lc3NhZ2UiLCJkZWJ1ZyIsImdldERlYnVnIiwiVHJuVHlwZUNvZGUiLCJpc0F1dGhNb2R1bGUiLCJyZXN1bHQiLCJCb29sZWFuIiwiYXV0aCIsImNhbENvbm5lY3RUb2tlbiIsIlN0cmluZyIsInRyaW0iLCJhdXRoTW9kdWxlT3JVbmRlZmluZWQiLCJ1bmRlZmluZWQiLCJpc1BlbmRpbmciLCJ0cmFuc2FjdGlvbiIsImRlYkNyZERhdGUiLCJpc0NhcmRUcmFuc2FjdGlvbkRldGFpbHMiLCJpc0NhcmRQZW5kaW5nVHJhbnNhY3Rpb25EZXRhaWxzIiwiZ2V0TG9naW5GcmFtZSIsInBhZ2UiLCJmcmFtZSIsIndhaXRVbnRpbCIsImZyYW1lcyIsImZpbmQiLCJmIiwidXJsIiwiaW5jbHVkZXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsIkVycm9yIiwiaGFzSW52YWxpZFBhc3N3b3JkRXJyb3IiLCJlcnJvckZvdW5kIiwiZWxlbWVudFByZXNlbnRPblBhZ2UiLCJlcnJvck1lc3NhZ2UiLCJwYWdlRXZhbCIsIml0ZW0iLCJpbm5lclRleHQiLCJoYXNDaGFuZ2VQYXNzd29yZEZvcm0iLCJnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyIsInVybHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiSW52YWxpZFBhc3N3b3JkIiwib3B0aW9ucyIsIkNoYW5nZVBhc3N3b3JkIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiY29udmVydFBhcnNlZERhdGFUb1RyYW5zYWN0aW9ucyIsImRhdGEiLCJwZW5kaW5nRGF0YSIsInBlbmRpbmdUcmFuc2FjdGlvbnMiLCJjYXJkc0xpc3QiLCJmbGF0TWFwIiwiY2FyZCIsImF1dGhEZXRhbGlzTGlzdCIsImJhbmtBY2NvdW50cyIsIm1vbnRoRGF0YSIsInJlZ3VsYXJEZWJpdERheXMiLCJhY2NvdW50cyIsImRlYml0RGF0ZXMiLCJpbW1lZGlhdGVEZWJpdERheXMiLCJpbW1pZGlhdGVEZWJpdHMiLCJkZWJpdERheXMiLCJjb21wbGV0ZWRUcmFuc2FjdGlvbnMiLCJkZWJpdERhdGUiLCJ0cmFuc2FjdGlvbnMiLCJhbGwiLCJtYXAiLCJudW1PZlBheW1lbnRzIiwibnVtYmVyT2ZQYXltZW50cyIsImluc3RhbGxtZW50cyIsIm51bWJlciIsImN1clBheW1lbnROdW0iLCJ0b3RhbCIsImRhdGUiLCJtb21lbnQiLCJ0cm5QdXJjaGFzZURhdGUiLCJjaGFyZ2VkQW1vdW50IiwidHJuQW10IiwiYW10QmVmb3JlQ29udkFuZEluZGV4Iiwib3JpZ2luYWxBbW91bnQiLCJ0cm5UeXBlQ29kZSIsImNyZWRpdCIsImlkZW50aWZpZXIiLCJ0cm5JbnRJZCIsInR5cGUiLCJyZWd1bGFyIiwic3RhbmRpbmdPcmRlciIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJJbnN0YWxsbWVudHMiLCJzdGF0dXMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiUGVuZGluZyIsIkNvbXBsZXRlZCIsImFkZCIsInRvSVNPU3RyaW5nIiwicHJvY2Vzc2VkRGF0ZSIsIkRhdGUiLCJvcmlnaW5hbEN1cnJlbmN5IiwidHJuQ3VycmVuY3lTeW1ib2wiLCJjaGFyZ2VkQ3VycmVuY3kiLCJkZWJDcmRDdXJyZW5jeVN5bWJvbCIsImRlc2NyaXB0aW9uIiwibWVyY2hhbnROYW1lIiwibWVtbyIsInRyYW5zVHlwZUNvbW1lbnREZXRhaWxzIiwidG9TdHJpbmciLCJjYXRlZ29yeSIsImJyYW5jaENvZGVEZXNjIiwiaW5jbHVkZVJhd1RyYW5zYWN0aW9uIiwicmF3VHJhbnNhY3Rpb24iLCJWaXNhQ2FsU2NyYXBlciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJhdXRob3JpemF0aW9uIiwib3BlbkxvZ2luUG9wdXAiLCJ3YWl0VW50aWxFbGVtZW50Rm91bmQiLCJjbGlja0J1dHRvbiIsImdldENhcmRzIiwiaW5pdERhdGEiLCJnZXRGcm9tU2Vzc2lvblN0b3JhZ2UiLCJjYXJkcyIsImNhcmRVbmlxdWVJZCIsImxhc3Q0RGlnaXRzIiwiZ2V0QXV0aG9yaXphdGlvbkhlYWRlciIsImF1dGhNb2R1bGUiLCJnZXRYU2l0ZUlkIiwiZ2V0TG9naW5PcHRpb25zIiwiYXV0aFJlcXVlc3RQcm9taXNlIiwid2FpdEZvclJlcXVlc3QiLCJ0aW1lb3V0IiwiY2F0Y2giLCJsb2dpblVybCIsImZpZWxkcyIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwicG9zc2libGVSZXN1bHRzIiwiY2hlY2tSZWFkaW5lc3MiLCJwcmVBY3Rpb24iLCJwb3N0QWN0aW9uIiwid2FpdEZvck5hdmlnYXRpb24iLCJjdXJyZW50VXJsIiwiZ2V0Q3VycmVudFVybCIsImVuZHNXaXRoIiwicmVxdWVzdCIsImhlYWRlcnMiLCJyZXF1aXJlc0NoYW5nZVBhc3N3b3JkIiwidXNlckFnZW50IiwiZmV0Y2hEYXRhIiwiZGVmYXVsdFN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJzdGFydERhdGUiLCJ0b0RhdGUiLCJzdGFydE1vbWVudCIsIm1heCIsImZvcm1hdCIsInhTaXRlSWQiLCJBdXRob3JpemF0aW9uIiwiZnV0dXJlTW9udGhzVG9TY3JhcGUiLCJmZXRjaFBvc3QiLCJjYXJkc0ZvckZyYW1lRGF0YSIsImZpbmFsTW9udGhUb0ZldGNoTW9tZW50IiwibW9udGhzIiwiZGlmZiIsImFsbE1vbnRoc0RhdGEiLCJfIiwiYmFua0lzc3VlZENhcmRzIiwiY2FyZExldmVsRnJhbWVzIiwiY2FyZFVuaXF1ZUlEQXJyYXkiLCJpIiwibW9udGgiLCJjbG9uZSIsInllYXIiLCJzdGF0dXNDb2RlIiwidGl0bGUiLCJwdXNoIiwidHhucyIsIm91dHB1dERhdGEiLCJlbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGUiLCJmaWx0ZXJPbGRUcmFuc2FjdGlvbnMiLCJjb21iaW5lSW5zdGFsbG1lbnRzIiwiYmFsYW5jZSIsIm5leHRUb3RhbERlYml0IiwiYWNjb3VudE51bWJlciIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdWNjZXNzIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmFwZXJzL3Zpc2EtY2FsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IHR5cGUgSFRUUFJlcXVlc3QsIHR5cGUgRnJhbWUsIHR5cGUgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuaW1wb3J0IHsgY2xpY2tCdXR0b24sIGVsZW1lbnRQcmVzZW50T25QYWdlLCBwYWdlRXZhbCwgd2FpdFVudGlsRWxlbWVudEZvdW5kIH0gZnJvbSAnLi4vaGVscGVycy9lbGVtZW50cy1pbnRlcmFjdGlvbnMnO1xuaW1wb3J0IHsgZmV0Y2hQb3N0IH0gZnJvbSAnLi4vaGVscGVycy9mZXRjaCc7XG5pbXBvcnQgeyBnZXRDdXJyZW50VXJsLCB3YWl0Rm9yTmF2aWdhdGlvbiB9IGZyb20gJy4uL2hlbHBlcnMvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBnZXRGcm9tU2Vzc2lvblN0b3JhZ2UgfSBmcm9tICcuLi9oZWxwZXJzL3N0b3JhZ2UnO1xuaW1wb3J0IHsgZmlsdGVyT2xkVHJhbnNhY3Rpb25zIH0gZnJvbSAnLi4vaGVscGVycy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgd2FpdFVudGlsIH0gZnJvbSAnLi4vaGVscGVycy93YWl0aW5nJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uU3RhdHVzZXMsIFRyYW5zYWN0aW9uVHlwZXMsIHR5cGUgVHJhbnNhY3Rpb24sIHR5cGUgVHJhbnNhY3Rpb25zQWNjb3VudCB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBCYXNlU2NyYXBlcldpdGhCcm93c2VyLCBMb2dpblJlc3VsdHMsIHR5cGUgTG9naW5PcHRpb25zIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7IHR5cGUgU2NyYXBlclNjcmFwaW5nUmVzdWx0LCB0eXBlIFNjcmFwZXJPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuY29uc3QgYXBpSGVhZGVycyA9IHtcbiAgJ1VzZXItQWdlbnQnOlxuICAgICdNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xNV83KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTQyLjAuMC4wIFNhZmFyaS81MzcuMzYnLFxuICBPcmlnaW46ICdodHRwczovL2RpZ2l0YWwtd2ViLmNhbC1vbmxpbmUuY28uaWwnLFxuICBSZWZlcmVyOiAnaHR0cHM6Ly9kaWdpdGFsLXdlYi5jYWwtb25saW5lLmNvLmlsJyxcbiAgJ0FjY2VwdC1MYW5ndWFnZSc6ICdoZS1JTCxoZTtxPTAuOSxlbi1VUztxPTAuOCxlbjtxPTAuNycsXG4gICdTZWMtRmV0Y2gtU2l0ZSc6ICdzYW1lLXNpdGUnLFxuICAnU2VjLUZldGNoLU1vZGUnOiAnY29ycycsXG4gICdTZWMtRmV0Y2gtRGVzdCc6ICdlbXB0eScsXG59O1xuY29uc3QgTE9HSU5fVVJMID0gJ2h0dHBzOi8vd3d3LmNhbC1vbmxpbmUuY28uaWwvJztcbmNvbnN0IFRSQU5TQUNUSU9OU19SRVFVRVNUX0VORFBPSU5UID1cbiAgJ2h0dHBzOi8vYXBpLmNhbC1vbmxpbmUuY28uaWwvVHJhbnNhY3Rpb25zL2FwaS90cmFuc2FjdGlvbnNEZXRhaWxzL2dldENhcmRUcmFuc2FjdGlvbnNEZXRhaWxzJztcbmNvbnN0IEZSQU1FU19SRVFVRVNUX0VORFBPSU5UID0gJ2h0dHBzOi8vYXBpLmNhbC1vbmxpbmUuY28uaWwvRnJhbWVzL2FwaS9GcmFtZXMvR2V0RnJhbWVTdGF0dXMnO1xuY29uc3QgUEVORElOR19UUkFOU0FDVElPTlNfUkVRVUVTVF9FTkRQT0lOVCA9XG4gICdodHRwczovL2FwaS5jYWwtb25saW5lLmNvLmlsL1RyYW5zYWN0aW9ucy9hcGkvYXBwcm92YWxzL2dldENsZWFyYW5jZVJlcXVlc3RzJztcbmNvbnN0IFNTT19BVVRIT1JJWkFUSU9OX1JFUVVFU1RfRU5EUE9JTlQgPSAnaHR0cHM6Ly9jb25uZWN0LmNhbC1vbmxpbmUuY28uaWwvY29sLXJlc3QvY2FsY29ubmVjdC9hdXRoZW50aWNhdGlvbi9TU08nO1xuXG5jb25zdCBJbnZhbGlkUGFzc3dvcmRNZXNzYWdlID0gJ9ep150g15TXntep16rXntepINeQ15Ug15TXodeZ16HXnteUINep15TXldeW16DXlSDXqdeS15XXmdeZ150nO1xuXG5jb25zdCBkZWJ1ZyA9IGdldERlYnVnKCd2aXNhLWNhbCcpO1xuXG5lbnVtIFRyblR5cGVDb2RlIHtcbiAgcmVndWxhciA9ICc1JyxcbiAgY3JlZGl0ID0gJzYnLFxuICBpbnN0YWxsbWVudHMgPSAnOCcsXG4gIHN0YW5kaW5nT3JkZXIgPSAnOScsXG59XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBhbXRCZWZvcmVDb252QW5kSW5kZXg6IG51bWJlcjtcbiAgYnJhbmNoQ29kZURlc2M6IHN0cmluZztcbiAgY2FzaEFjY01hbmFnZXJOYW1lOiBudWxsO1xuICBjYXNoQWNjb3VudE1hbmFnZXI6IG51bGw7XG4gIGNhc2hBY2NvdW50VHJuQW10OiBudW1iZXI7XG4gIGNoYXJnZUV4dGVybmFsVG9DYXJkQ29tbWVudDogc3RyaW5nO1xuICBjb21tZW50czogW107XG4gIGN1clBheW1lbnROdW06IG51bWJlcjtcbiAgZGViQ3JkQ3VycmVuY3lTeW1ib2w6IEN1cnJlbmN5U3ltYm9sO1xuICBkZWJDcmREYXRlOiBzdHJpbmc7XG4gIGRlYml0U3ByZWFkSW5kOiBib29sZWFuO1xuICBkaXNjb3VudEFtb3VudDogdW5rbm93bjtcbiAgZGlzY291bnRSZWFzb246IHVua25vd247XG4gIGltbWVkaWF0ZUNvbW1lbnRzOiBbXTtcbiAgaXNJbW1lZGlhdGVDb21tZW50SW5kOiBib29sZWFuO1xuICBpc0ltbWVkaWF0ZUhIS0luZDogYm9vbGVhbjtcbiAgaXNNYXJnYXJpdGE6IGJvb2xlYW47XG4gIGlzU3ByZWFkUGF5bWVuc3RBYnJvYWQ6IGJvb2xlYW47XG4gIGxpbmtlZENvbW1lbnRzOiBbXTtcbiAgbWVyY2hhbnRBZGRyZXNzOiBzdHJpbmc7XG4gIG1lcmNoYW50TmFtZTogc3RyaW5nO1xuICBtZXJjaGFudFBob25lTm86IHN0cmluZztcbiAgbnVtT2ZQYXltZW50czogbnVtYmVyO1xuICBvbkdvaW5nVHJhbnNhY3Rpb25zQ29tbWVudDogc3RyaW5nO1xuICByZWZ1bmRJbmQ6IGJvb2xlYW47XG4gIHJvdW5kaW5nQW1vdW50OiB1bmtub3duO1xuICByb3VuZGluZ1JlYXNvbjogdW5rbm93bjtcbiAgdG9rZW5JbmQ6IDA7XG4gIHRva2VuTnVtYmVyUGFydDQ6ICcnO1xuICB0cmFuc0NhcmRQcmVzZW50SW5kOiBib29sZWFuO1xuICB0cmFuc1R5cGVDb21tZW50RGV0YWlsczogW107XG4gIHRybkFtdDogbnVtYmVyO1xuICB0cm5DdXJyZW5jeVN5bWJvbDogQ3VycmVuY3lTeW1ib2w7XG4gIHRybkV4YWNXYXk6IG51bWJlcjtcbiAgdHJuSW50SWQ6IHN0cmluZztcbiAgdHJuTnVtYXJldG9yOiBudW1iZXI7XG4gIHRyblB1cmNoYXNlRGF0ZTogc3RyaW5nO1xuICB0cm5UeXBlOiBzdHJpbmc7XG4gIHRyblR5cGVDb2RlOiBUcm5UeXBlQ29kZTtcbiAgd2FsbGV0UHJvdmlkZXJDb2RlOiAwO1xuICB3YWxsZXRQcm92aWRlckRlc2M6ICcnO1xuICBlYXJseVBheW1lbnRJbmQ6IGJvb2xlYW47XG59XG5pbnRlcmZhY2UgU2NyYXBlZFBlbmRpbmdUcmFuc2FjdGlvbiB7XG4gIG1lcmNoYW50SUQ6IHN0cmluZztcbiAgbWVyY2hhbnROYW1lOiBzdHJpbmc7XG4gIHRyblB1cmNoYXNlRGF0ZTogc3RyaW5nO1xuICB3YWxsZXRUcmFuSW5kOiBudW1iZXI7XG4gIHRyYW5zYWN0aW9uc09yaWdpbjogbnVtYmVyO1xuICB0cm5BbXQ6IG51bWJlcjtcbiAgdHBhQXBwcm92YWxBbW91bnQ6IHVua25vd247XG4gIHRybkN1cnJlbmN5U3ltYm9sOiBDdXJyZW5jeVN5bWJvbDtcbiAgdHJuVHlwZUNvZGU6IFRyblR5cGVDb2RlO1xuICB0cm5UeXBlOiBzdHJpbmc7XG4gIGJyYW5jaENvZGVEZXNjOiBzdHJpbmc7XG4gIHRyYW5zQ2FyZFByZXNlbnRJbmQ6IGJvb2xlYW47XG4gIGo1SW5kaWNhdG9yOiBzdHJpbmc7XG4gIG51bWJlck9mUGF5bWVudHM6IG51bWJlcjtcbiAgZmlyc3RQYXltZW50QW1vdW50OiBudW1iZXI7XG4gIHRyYW5zVHlwZUNvbW1lbnREZXRhaWxzOiBbXTtcbn1cbmludGVyZmFjZSBJbml0UmVzcG9uc2Uge1xuICByZXN1bHQ6IHtcbiAgICBjYXJkczoge1xuICAgICAgY2FyZFVuaXF1ZUlkOiBzdHJpbmc7XG4gICAgICBsYXN0NERpZ2l0czogc3RyaW5nO1xuICAgICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbiAgICB9W107XG4gIH07XG59XG50eXBlIEN1cnJlbmN5U3ltYm9sID0gc3RyaW5nO1xuaW50ZXJmYWNlIENhcmRUcmFuc2FjdGlvbkRldGFpbHNFcnJvciB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHN0YXR1c0NvZGU6IG51bWJlcjtcbn1cbmludGVyZmFjZSBDYXJkVHJhbnNhY3Rpb25EZXRhaWxzIGV4dGVuZHMgQ2FyZFRyYW5zYWN0aW9uRGV0YWlsc0Vycm9yIHtcbiAgcmVzdWx0OiB7XG4gICAgYmFua0FjY291bnRzOiB7XG4gICAgICBiYW5rQWNjb3VudE51bTogc3RyaW5nO1xuICAgICAgYmFua05hbWU6IHN0cmluZztcbiAgICAgIGNob2ljZUV4dGVybmFsVHJhbnNhY3Rpb25zOiBhbnk7XG4gICAgICBjdXJyZW50QmFua0FjY291bnRJbmQ6IGJvb2xlYW47XG4gICAgICBkZWJpdERhdGVzOiB7XG4gICAgICAgIGJhc2tldEFtb3VudENvbW1lbnQ6IHVua25vd247XG4gICAgICAgIGNob2ljZUhIS0RlYml0OiBudW1iZXI7XG4gICAgICAgIGRhdGU6IHN0cmluZztcbiAgICAgICAgZGViaXRSZWFzb246IHVua25vd247XG4gICAgICAgIGZpeERlYml0QW1vdW50OiBudW1iZXI7XG4gICAgICAgIGZyb21QdXJjaGFzZURhdGU6IHN0cmluZztcbiAgICAgICAgaXNDaG9pY2VSZXBhaW1lbnQ6IGJvb2xlYW47XG4gICAgICAgIHRvUHVyY2hhc2VEYXRlOiBzdHJpbmc7XG4gICAgICAgIHRvdGFsQmFza2V0QW1vdW50OiBudW1iZXI7XG4gICAgICAgIHRvdGFsRGViaXRzOiB7XG4gICAgICAgICAgY3VycmVuY3lTeW1ib2w6IEN1cnJlbmN5U3ltYm9sO1xuICAgICAgICAgIGFtb3VudDogbnVtYmVyO1xuICAgICAgICB9W107XG4gICAgICAgIHRyYW5zYWN0aW9uczogU2NyYXBlZFRyYW5zYWN0aW9uW107XG4gICAgICB9W107XG4gICAgICBpbW1pZGlhdGVEZWJpdHM6IHsgdG90YWxEZWJpdHM6IFtdOyBkZWJpdERheXM6IFtdIH07XG4gICAgfVtdO1xuICAgIGJsb2NrZWRDYXJkSW5kOiBib29sZWFuO1xuICB9O1xuICBzdGF0dXNDb2RlOiAxO1xuICBzdGF0dXNEZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzdGF0dXNUaXRsZTogc3RyaW5nO1xufVxuaW50ZXJmYWNlIENhcmRQZW5kaW5nVHJhbnNhY3Rpb25EZXRhaWxzIGV4dGVuZHMgQ2FyZFRyYW5zYWN0aW9uRGV0YWlsc0Vycm9yIHtcbiAgcmVzdWx0OiB7XG4gICAgY2FyZHNMaXN0OiB7XG4gICAgICBjYXJkVW5pcXVlSUQ6IHN0cmluZztcbiAgICAgIGF1dGhEZXRhbGlzTGlzdDogU2NyYXBlZFBlbmRpbmdUcmFuc2FjdGlvbltdO1xuICAgIH1bXTtcbiAgfTtcbiAgc3RhdHVzQ29kZTogMTtcbiAgc3RhdHVzRGVzY3JpcHRpb246IHN0cmluZztcbiAgc3RhdHVzVGl0bGU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIENhcmRMZXZlbEZyYW1lIHtcbiAgY2FyZFVuaXF1ZUlkOiBzdHJpbmc7XG4gIG5leHRUb3RhbERlYml0PzogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgRnJhbWVzUmVzcG9uc2Uge1xuICByZXN1bHQ/OiB7XG4gICAgYmFua0lzc3VlZENhcmRzPzoge1xuICAgICAgY2FyZExldmVsRnJhbWVzPzogQ2FyZExldmVsRnJhbWVbXTtcbiAgICB9O1xuICB9O1xufVxuXG5pbnRlcmZhY2UgQXV0aE1vZHVsZSB7XG4gIGF1dGg6IHtcbiAgICBjYWxDb25uZWN0VG9rZW46IHN0cmluZyB8IG51bGw7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzQXV0aE1vZHVsZShyZXN1bHQ6IGFueSk6IHJlc3VsdCBpcyBBdXRoTW9kdWxlIHtcbiAgcmV0dXJuIEJvb2xlYW4ocmVzdWx0Py5hdXRoPy5jYWxDb25uZWN0VG9rZW4gJiYgU3RyaW5nKHJlc3VsdC5hdXRoLmNhbENvbm5lY3RUb2tlbikudHJpbSgpKTtcbn1cblxuZnVuY3Rpb24gYXV0aE1vZHVsZU9yVW5kZWZpbmVkKHJlc3VsdDogYW55KTogQXV0aE1vZHVsZSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBpc0F1dGhNb2R1bGUocmVzdWx0KSA/IHJlc3VsdCA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gaXNQZW5kaW5nKFxuICB0cmFuc2FjdGlvbjogU2NyYXBlZFRyYW5zYWN0aW9uIHwgU2NyYXBlZFBlbmRpbmdUcmFuc2FjdGlvbixcbik6IHRyYW5zYWN0aW9uIGlzIFNjcmFwZWRQZW5kaW5nVHJhbnNhY3Rpb24ge1xuICByZXR1cm4gKHRyYW5zYWN0aW9uIGFzIFNjcmFwZWRUcmFuc2FjdGlvbikuZGViQ3JkRGF0ZSA9PT0gdW5kZWZpbmVkOyAvLyBhbiBhcmJpdHJhcnkgZmllbGQgdGhhdCBvbmx5IGFwcGVhcnMgaW4gYSBjb21wbGV0ZWQgdHJhbnNhY3Rpb25cbn1cblxuZnVuY3Rpb24gaXNDYXJkVHJhbnNhY3Rpb25EZXRhaWxzKFxuICByZXN1bHQ6IENhcmRUcmFuc2FjdGlvbkRldGFpbHMgfCBDYXJkVHJhbnNhY3Rpb25EZXRhaWxzRXJyb3IsXG4pOiByZXN1bHQgaXMgQ2FyZFRyYW5zYWN0aW9uRGV0YWlscyB7XG4gIHJldHVybiAocmVzdWx0IGFzIENhcmRUcmFuc2FjdGlvbkRldGFpbHMpLnJlc3VsdCAhPT0gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBpc0NhcmRQZW5kaW5nVHJhbnNhY3Rpb25EZXRhaWxzKFxuICByZXN1bHQ6IENhcmRQZW5kaW5nVHJhbnNhY3Rpb25EZXRhaWxzIHwgQ2FyZFRyYW5zYWN0aW9uRGV0YWlsc0Vycm9yLFxuKTogcmVzdWx0IGlzIENhcmRQZW5kaW5nVHJhbnNhY3Rpb25EZXRhaWxzIHtcbiAgcmV0dXJuIChyZXN1bHQgYXMgQ2FyZFBlbmRpbmdUcmFuc2FjdGlvbkRldGFpbHMpLnJlc3VsdCAhPT0gdW5kZWZpbmVkO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRMb2dpbkZyYW1lKHBhZ2U6IFBhZ2UpIHtcbiAgbGV0IGZyYW1lOiBGcmFtZSB8IG51bGwgPSBudWxsO1xuICBkZWJ1Zygnd2FpdCB1bnRpbCBsb2dpbiBmcmFtZSBmb3VuZCcpO1xuICBhd2FpdCB3YWl0VW50aWwoXG4gICAgKCkgPT4ge1xuICAgICAgZnJhbWUgPSBwYWdlLmZyYW1lcygpLmZpbmQoZiA9PiBmLnVybCgpLmluY2x1ZGVzKCdjb25uZWN0JykpIHx8IG51bGw7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCEhZnJhbWUpO1xuICAgIH0sXG4gICAgJ3dhaXQgZm9yIGlmcmFtZSB3aXRoIGxvZ2luIGZvcm0nLFxuICAgIDEwMDAwLFxuICAgIDEwMDAsXG4gICk7XG5cbiAgaWYgKCFmcmFtZSkge1xuICAgIGRlYnVnKCdmYWlsZWQgdG8gZmluZCBsb2dpbiBmcmFtZSBmb3IgMTAgc2Vjb25kcycpO1xuICAgIHRocm93IG5ldyBFcnJvcignZmFpbGVkIHRvIGV4dHJhY3QgbG9naW4gaWZyYW1lJyk7XG4gIH1cblxuICByZXR1cm4gZnJhbWU7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGhhc0ludmFsaWRQYXNzd29yZEVycm9yKHBhZ2U6IFBhZ2UpIHtcbiAgY29uc3QgZnJhbWUgPSBhd2FpdCBnZXRMb2dpbkZyYW1lKHBhZ2UpO1xuICBjb25zdCBlcnJvckZvdW5kID0gYXdhaXQgZWxlbWVudFByZXNlbnRPblBhZ2UoZnJhbWUsICdkaXYuZ2VuZXJhbC1lcnJvciA+IGRpdicpO1xuICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvckZvdW5kXG4gICAgPyBhd2FpdCBwYWdlRXZhbChmcmFtZSwgJ2Rpdi5nZW5lcmFsLWVycm9yID4gZGl2JywgJycsIGl0ZW0gPT4ge1xuICAgICAgICByZXR1cm4gKGl0ZW0gYXMgSFRNTERpdkVsZW1lbnQpLmlubmVyVGV4dDtcbiAgICAgIH0pXG4gICAgOiAnJztcbiAgcmV0dXJuIGVycm9yTWVzc2FnZSA9PT0gSW52YWxpZFBhc3N3b3JkTWVzc2FnZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaGFzQ2hhbmdlUGFzc3dvcmRGb3JtKHBhZ2U6IFBhZ2UpIHtcbiAgY29uc3QgZnJhbWUgPSBhd2FpdCBnZXRMb2dpbkZyYW1lKHBhZ2UpO1xuICBjb25zdCBlcnJvckZvdW5kID0gYXdhaXQgZWxlbWVudFByZXNlbnRPblBhZ2UoZnJhbWUsICcuY2hhbmdlLXBhc3N3b3JkLXN1YnRpdGxlJyk7XG4gIHJldHVybiBlcnJvckZvdW5kO1xufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpIHtcbiAgZGVidWcoJ3JldHVybiBwb3NzaWJsZSBsb2dpbiByZXN1bHRzJyk7XG4gIGNvbnN0IHVybHM6IExvZ2luT3B0aW9uc1sncG9zc2libGVSZXN1bHRzJ10gPSB7XG4gICAgW0xvZ2luUmVzdWx0cy5TdWNjZXNzXTogWy9kYXNoYm9hcmQvaV0sXG4gICAgW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdOiBbXG4gICAgICBhc3luYyAob3B0aW9ucz86IHsgcGFnZT86IFBhZ2UgfSkgPT4ge1xuICAgICAgICBjb25zdCBwYWdlID0gb3B0aW9ucz8ucGFnZTtcbiAgICAgICAgaWYgKCFwYWdlKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoYXNJbnZhbGlkUGFzc3dvcmRFcnJvcihwYWdlKTtcbiAgICAgIH0sXG4gICAgXSxcbiAgICAvLyBbTG9naW5SZXN1bHRzLkFjY291bnRCbG9ja2VkXTogW10sIC8vIFRPRE8gYWRkIHdoZW4gcmVhY2hpbmcgdGhpcyBzY2VuYXJpb1xuICAgIFtMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdOiBbXG4gICAgICBhc3luYyAob3B0aW9ucz86IHsgcGFnZT86IFBhZ2UgfSkgPT4ge1xuICAgICAgICBjb25zdCBwYWdlID0gb3B0aW9ucz8ucGFnZTtcbiAgICAgICAgaWYgKCFwYWdlKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoYXNDaGFuZ2VQYXNzd29yZEZvcm0ocGFnZSk7XG4gICAgICB9LFxuICAgIF0sXG4gIH07XG4gIHJldHVybiB1cmxzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgZGVidWcoJ2NyZWF0ZSBsb2dpbiBmaWVsZHMgZm9yIHVzZXJuYW1lIGFuZCBwYXNzd29yZCcpO1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6ICdbZm9ybWNvbnRyb2xuYW1lPVwidXNlck5hbWVcIl0nLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICB7IHNlbGVjdG9yOiAnW2Zvcm1jb250cm9sbmFtZT1cInBhc3N3b3JkXCJdJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRQYXJzZWREYXRhVG9UcmFuc2FjdGlvbnMoXG4gIGRhdGE6IENhcmRUcmFuc2FjdGlvbkRldGFpbHNbXSxcbiAgcGVuZGluZ0RhdGE/OiBDYXJkUGVuZGluZ1RyYW5zYWN0aW9uRGV0YWlscyB8IG51bGwsXG4gIG9wdGlvbnM/OiBTY3JhcGVyT3B0aW9ucyxcbik6IFRyYW5zYWN0aW9uW10ge1xuICBjb25zdCBwZW5kaW5nVHJhbnNhY3Rpb25zID0gcGVuZGluZ0RhdGE/LnJlc3VsdFxuICAgID8gcGVuZGluZ0RhdGEucmVzdWx0LmNhcmRzTGlzdC5mbGF0TWFwKGNhcmQgPT4gY2FyZC5hdXRoRGV0YWxpc0xpc3QpXG4gICAgOiBbXTtcblxuICBjb25zdCBiYW5rQWNjb3VudHMgPSBkYXRhLmZsYXRNYXAobW9udGhEYXRhID0+IG1vbnRoRGF0YS5yZXN1bHQuYmFua0FjY291bnRzKTtcbiAgY29uc3QgcmVndWxhckRlYml0RGF5cyA9IGJhbmtBY2NvdW50cy5mbGF0TWFwKGFjY291bnRzID0+IGFjY291bnRzLmRlYml0RGF0ZXMpO1xuICBjb25zdCBpbW1lZGlhdGVEZWJpdERheXMgPSBiYW5rQWNjb3VudHMuZmxhdE1hcChhY2NvdW50cyA9PiBhY2NvdW50cy5pbW1pZGlhdGVEZWJpdHMuZGViaXREYXlzKTtcbiAgY29uc3QgY29tcGxldGVkVHJhbnNhY3Rpb25zID0gWy4uLnJlZ3VsYXJEZWJpdERheXMsIC4uLmltbWVkaWF0ZURlYml0RGF5c10uZmxhdE1hcChcbiAgICBkZWJpdERhdGUgPT4gZGViaXREYXRlLnRyYW5zYWN0aW9ucyxcbiAgKTtcblxuICBjb25zdCBhbGw6IChTY3JhcGVkVHJhbnNhY3Rpb24gfCBTY3JhcGVkUGVuZGluZ1RyYW5zYWN0aW9uKVtdID0gWy4uLnBlbmRpbmdUcmFuc2FjdGlvbnMsIC4uLmNvbXBsZXRlZFRyYW5zYWN0aW9uc107XG5cbiAgcmV0dXJuIGFsbC5tYXAodHJhbnNhY3Rpb24gPT4ge1xuICAgIGNvbnN0IG51bU9mUGF5bWVudHMgPSBpc1BlbmRpbmcodHJhbnNhY3Rpb24pID8gdHJhbnNhY3Rpb24ubnVtYmVyT2ZQYXltZW50cyA6IHRyYW5zYWN0aW9uLm51bU9mUGF5bWVudHM7XG4gICAgY29uc3QgaW5zdGFsbG1lbnRzID0gbnVtT2ZQYXltZW50c1xuICAgICAgPyB7XG4gICAgICAgICAgbnVtYmVyOiBpc1BlbmRpbmcodHJhbnNhY3Rpb24pID8gMSA6IHRyYW5zYWN0aW9uLmN1clBheW1lbnROdW0sXG4gICAgICAgICAgdG90YWw6IG51bU9mUGF5bWVudHMsXG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgZGF0ZSA9IG1vbWVudCh0cmFuc2FjdGlvbi50cm5QdXJjaGFzZURhdGUpO1xuXG4gICAgY29uc3QgY2hhcmdlZEFtb3VudCA9IChpc1BlbmRpbmcodHJhbnNhY3Rpb24pID8gdHJhbnNhY3Rpb24udHJuQW10IDogdHJhbnNhY3Rpb24uYW10QmVmb3JlQ29udkFuZEluZGV4KSAqIC0xO1xuICAgIGNvbnN0IG9yaWdpbmFsQW1vdW50ID0gdHJhbnNhY3Rpb24udHJuQW10ICogKHRyYW5zYWN0aW9uLnRyblR5cGVDb2RlID09PSBUcm5UeXBlQ29kZS5jcmVkaXQgPyAxIDogLTEpO1xuXG4gICAgY29uc3QgcmVzdWx0OiBUcmFuc2FjdGlvbiA9IHtcbiAgICAgIGlkZW50aWZpZXI6ICFpc1BlbmRpbmcodHJhbnNhY3Rpb24pID8gdHJhbnNhY3Rpb24udHJuSW50SWQgOiB1bmRlZmluZWQsXG4gICAgICB0eXBlOiBbVHJuVHlwZUNvZGUucmVndWxhciwgVHJuVHlwZUNvZGUuc3RhbmRpbmdPcmRlcl0uaW5jbHVkZXModHJhbnNhY3Rpb24udHJuVHlwZUNvZGUpXG4gICAgICAgID8gVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWxcbiAgICAgICAgOiBUcmFuc2FjdGlvblR5cGVzLkluc3RhbGxtZW50cyxcbiAgICAgIHN0YXR1czogaXNQZW5kaW5nKHRyYW5zYWN0aW9uKSA/IFRyYW5zYWN0aW9uU3RhdHVzZXMuUGVuZGluZyA6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgICAgZGF0ZTogaW5zdGFsbG1lbnRzID8gZGF0ZS5hZGQoaW5zdGFsbG1lbnRzLm51bWJlciAtIDEsICdtb250aCcpLnRvSVNPU3RyaW5nKCkgOiBkYXRlLnRvSVNPU3RyaW5nKCksXG4gICAgICBwcm9jZXNzZWREYXRlOiBpc1BlbmRpbmcodHJhbnNhY3Rpb24pID8gZGF0ZS50b0lTT1N0cmluZygpIDogbmV3IERhdGUodHJhbnNhY3Rpb24uZGViQ3JkRGF0ZSkudG9JU09TdHJpbmcoKSxcbiAgICAgIG9yaWdpbmFsQW1vdW50LFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogdHJhbnNhY3Rpb24udHJuQ3VycmVuY3lTeW1ib2wsXG4gICAgICBjaGFyZ2VkQW1vdW50LFxuICAgICAgY2hhcmdlZEN1cnJlbmN5OiAhaXNQZW5kaW5nKHRyYW5zYWN0aW9uKSA/IHRyYW5zYWN0aW9uLmRlYkNyZEN1cnJlbmN5U3ltYm9sIDogdW5kZWZpbmVkLFxuICAgICAgZGVzY3JpcHRpb246IHRyYW5zYWN0aW9uLm1lcmNoYW50TmFtZSxcbiAgICAgIG1lbW86IHRyYW5zYWN0aW9uLnRyYW5zVHlwZUNvbW1lbnREZXRhaWxzLnRvU3RyaW5nKCksXG4gICAgICBjYXRlZ29yeTogdHJhbnNhY3Rpb24uYnJhbmNoQ29kZURlc2MsXG4gICAgfTtcblxuICAgIGlmIChpbnN0YWxsbWVudHMpIHtcbiAgICAgIHJlc3VsdC5pbnN0YWxsbWVudHMgPSBpbnN0YWxsbWVudHM7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnM/LmluY2x1ZGVSYXdUcmFuc2FjdGlvbikge1xuICAgICAgcmVzdWx0LnJhd1RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG59XG5cbnR5cGUgU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMgPSB7IHVzZXJuYW1lOiBzdHJpbmc7IHBhc3N3b3JkOiBzdHJpbmcgfTtcblxuY2xhc3MgVmlzYUNhbFNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyPFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzPiB7XG4gIHByaXZhdGUgYXV0aG9yaXphdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgYXV0aFJlcXVlc3RQcm9taXNlOiBQcm9taXNlPEhUVFBSZXF1ZXN0IHwgdW5kZWZpbmVkPiB8IHVuZGVmaW5lZDtcblxuICBvcGVuTG9naW5Qb3B1cCA9IGFzeW5jICgpID0+IHtcbiAgICBkZWJ1Zygnb3BlbiBsb2dpbiBwb3B1cCwgd2FpdCB1bnRpbCBsb2dpbiBidXR0b24gYXZhaWxhYmxlJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNjY0xvZ2luRGVza3RvcEJ0bicsIHRydWUpO1xuICAgIGRlYnVnKCdjbGljayBvbiB0aGUgbG9naW4gYnV0dG9uJyk7XG4gICAgYXdhaXQgY2xpY2tCdXR0b24odGhpcy5wYWdlLCAnI2NjTG9naW5EZXNrdG9wQnRuJyk7XG4gICAgZGVidWcoJ2dldCB0aGUgZnJhbWUgdGhhdCBob2xkcyB0aGUgbG9naW4nKTtcbiAgICBjb25zdCBmcmFtZSA9IGF3YWl0IGdldExvZ2luRnJhbWUodGhpcy5wYWdlKTtcbiAgICBkZWJ1Zygnd2FpdCB1bnRpbCB0aGUgcGFzc3dvcmQgbG9naW4gdGFiIGhlYWRlciBpcyBhdmFpbGFibGUnKTtcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQoZnJhbWUsICcjcmVndWxhci1sb2dpbicpO1xuICAgIGRlYnVnKCduYXZpZ2F0ZSB0byB0aGUgcGFzc3dvcmQgbG9naW4gdGFiJyk7XG4gICAgYXdhaXQgY2xpY2tCdXR0b24oZnJhbWUsICcjcmVndWxhci1sb2dpbicpO1xuICAgIGRlYnVnKCd3YWl0IHVudGlsIHRoZSBwYXNzd29yZCBsb2dpbiB0YWIgaXMgYWN0aXZlJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKGZyYW1lLCAncmVndWxhci1sb2dpbicpO1xuXG4gICAgcmV0dXJuIGZyYW1lO1xuICB9O1xuXG4gIGFzeW5jIGdldENhcmRzKCkge1xuICAgIGNvbnN0IGluaXREYXRhID0gYXdhaXQgd2FpdFVudGlsKFxuICAgICAgKCkgPT4gZ2V0RnJvbVNlc3Npb25TdG9yYWdlPEluaXRSZXNwb25zZT4odGhpcy5wYWdlLCAnaW5pdCcpLFxuICAgICAgJ2dldCBpbml0IGRhdGEgaW4gc2Vzc2lvbiBzdG9yYWdlJyxcbiAgICAgIDEwMDAwLFxuICAgICAgMTAwMCxcbiAgICApO1xuICAgIGlmICghaW5pdERhdGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IGZpbmQgXCJpbml0XCIgZGF0YSBpbiBzZXNzaW9uIHN0b3JhZ2UnKTtcbiAgICB9XG4gICAgcmV0dXJuIGluaXREYXRhPy5yZXN1bHQuY2FyZHMubWFwKCh7IGNhcmRVbmlxdWVJZCwgbGFzdDREaWdpdHMgfSkgPT4gKHsgY2FyZFVuaXF1ZUlkLCBsYXN0NERpZ2l0cyB9KSk7XG4gIH1cblxuICBhc3luYyBnZXRBdXRob3JpemF0aW9uSGVhZGVyKCkge1xuICAgIGlmICghdGhpcy5hdXRob3JpemF0aW9uKSB7XG4gICAgICBkZWJ1ZygnZmV0Y2hpbmcgYXV0aG9yaXphdGlvbiBoZWFkZXInKTtcbiAgICAgIGNvbnN0IGF1dGhNb2R1bGUgPSBhd2FpdCB3YWl0VW50aWwoXG4gICAgICAgIGFzeW5jICgpID0+IGF1dGhNb2R1bGVPclVuZGVmaW5lZChhd2FpdCBnZXRGcm9tU2Vzc2lvblN0b3JhZ2U8QXV0aE1vZHVsZT4odGhpcy5wYWdlLCAnYXV0aC1tb2R1bGUnKSksXG4gICAgICAgICdnZXQgYXV0aG9yaXphdGlvbiBoZWFkZXIgd2l0aCB2YWxpZCB0b2tlbiBpbiBzZXNzaW9uIHN0b3JhZ2UnLFxuICAgICAgICAxMF8wMDAsXG4gICAgICAgIDUwLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBgQ0FMQXV0aFNjaGVtZSAke2F1dGhNb2R1bGUuYXV0aC5jYWxDb25uZWN0VG9rZW59YDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXV0aG9yaXphdGlvbjtcbiAgfVxuXG4gIGFzeW5jIGdldFhTaXRlSWQoKSB7XG4gICAgLypcbiAgICAgIEkgZG9uJ3Qga25vdyBpZiB0aGUgY29uc3RhbnQgYmVsb3cgd2lsbCBjaGFuZ2UgaW4gdGhlIGZlYXR1cmUuXG4gICAgICBJZiBzbywgdXNlIHRoZSBuZXh0IGNvZGU6XG5cbiAgICAgIHJldHVybiB0aGlzLnBhZ2UuZXZhbHVhdGUoKCkgPT4gbmV3IFV0KCkueFNpdGVJZCk7XG5cbiAgICAgIFRvIGdldCB0aGUgY2xhc3NuYW1lIHNlYXJjaCBmb3IgJ3hTaXRlSWQnIGluIHRoZSBwYWdlIHNvdXJjZVxuICAgICAgY2xhc3MgVXQge1xuICAgICAgICBjb25zdHJ1Y3RvcihfZSwgb24sIHluKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlID0gX2UsXG4gICAgICAgICAgICB0aGlzLmNvbmZpZyA9IG9uLFxuICAgICAgICAgICAgdGhpcy5ldmVudEJ1c1NlcnZpY2UgPSB5bixcbiAgICAgICAgICAgIHRoaXMueFNpdGVJZCA9IFwiMDkwMzE5ODctMjczRS0yMzExLTkwNkMtOEFGODVCMTdDOEQ5XCIsXG4gICAgKi9cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCcwOTAzMTk4Ny0yNzNFLTIzMTEtOTA2Qy04QUY4NUIxN0M4RDknKTtcbiAgfVxuXG4gIGdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpOiBMb2dpbk9wdGlvbnMge1xuICAgIHRoaXMuYXV0aFJlcXVlc3RQcm9taXNlID0gdGhpcy5wYWdlXG4gICAgICAud2FpdEZvclJlcXVlc3QoU1NPX0FVVEhPUklaQVRJT05fUkVRVUVTVF9FTkRQT0lOVCwgeyB0aW1lb3V0OiAxMF8wMDAgfSlcbiAgICAgIC5jYXRjaChlID0+IHtcbiAgICAgICAgZGVidWcoJ2Vycm9yIHdoaWxlIHdhaXRpbmcgZm9yIHRoZSB0b2tlbiByZXF1ZXN0JywgZSk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naW5Vcmw6IGAke0xPR0lOX1VSTH1gLFxuICAgICAgZmllbGRzOiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFscyksXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogJ2J1dHRvblt0eXBlPVwic3VibWl0XCJdJyxcbiAgICAgIHBvc3NpYmxlUmVzdWx0czogZ2V0UG9zc2libGVMb2dpblJlc3VsdHMoKSxcbiAgICAgIGNoZWNrUmVhZGluZXNzOiBhc3luYyAoKSA9PiB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnI2NjTG9naW5EZXNrdG9wQnRuJyksXG4gICAgICBwcmVBY3Rpb246IHRoaXMub3BlbkxvZ2luUG9wdXAsXG4gICAgICBwb3N0QWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24odGhpcy5wYWdlKTtcbiAgICAgICAgICBjb25zdCBjdXJyZW50VXJsID0gYXdhaXQgZ2V0Q3VycmVudFVybCh0aGlzLnBhZ2UpO1xuICAgICAgICAgIGlmIChjdXJyZW50VXJsLmVuZHNXaXRoKCdzaXRlLXR1dG9yaWFsJykpIHtcbiAgICAgICAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHRoaXMucGFnZSwgJ2J1dHRvbi5idG4tY2xvc2UnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHRoaXMuYXV0aFJlcXVlc3RQcm9taXNlO1xuICAgICAgICAgIHRoaXMuYXV0aG9yaXphdGlvbiA9IFN0cmluZyhyZXF1ZXN0Py5oZWFkZXJzKCkuYXV0aG9yaXphdGlvbiB8fCAnJykudHJpbSgpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc3QgY3VycmVudFVybCA9IGF3YWl0IGdldEN1cnJlbnRVcmwodGhpcy5wYWdlKTtcbiAgICAgICAgICBpZiAoY3VycmVudFVybC5lbmRzV2l0aCgnZGFzaGJvYXJkJykpIHJldHVybjtcbiAgICAgICAgICBjb25zdCByZXF1aXJlc0NoYW5nZVBhc3N3b3JkID0gYXdhaXQgaGFzQ2hhbmdlUGFzc3dvcmRGb3JtKHRoaXMucGFnZSk7XG4gICAgICAgICAgaWYgKHJlcXVpcmVzQ2hhbmdlUGFzc3dvcmQpIHJldHVybjtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXNlckFnZW50OiBhcGlIZWFkZXJzWydVc2VyLUFnZW50J10sXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpOiBQcm9taXNlPFNjcmFwZXJTY3JhcGluZ1Jlc3VsdD4ge1xuICAgIGNvbnN0IGRlZmF1bHRTdGFydE1vbWVudCA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICd5ZWFycycpLnN1YnRyYWN0KDYsICdtb250aHMnKS5hZGQoMSwgJ2RheScpO1xuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHRoaXMub3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICAgIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcbiAgICBkZWJ1ZyhgZmV0Y2ggdHJhbnNhY3Rpb25zIHN0YXJ0aW5nICR7c3RhcnRNb21lbnQuZm9ybWF0KCl9YCk7XG5cbiAgICBjb25zdCBbY2FyZHMsIHhTaXRlSWQsIEF1dGhvcml6YXRpb25dID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgdGhpcy5nZXRDYXJkcygpLFxuICAgICAgdGhpcy5nZXRYU2l0ZUlkKCksXG4gICAgICB0aGlzLmdldEF1dGhvcml6YXRpb25IZWFkZXIoKSxcbiAgICBdKTtcblxuICAgIGNvbnN0IGZ1dHVyZU1vbnRoc1RvU2NyYXBlID0gdGhpcy5vcHRpb25zLmZ1dHVyZU1vbnRoc1RvU2NyYXBlID8/IDE7XG5cbiAgICBkZWJ1ZygnZmV0Y2ggZnJhbWVzIChtaXNnYXJvdCkgb2YgY2FyZHMnKTtcbiAgICBjb25zdCBmcmFtZXMgPSBhd2FpdCBmZXRjaFBvc3Q8RnJhbWVzUmVzcG9uc2U+KFxuICAgICAgRlJBTUVTX1JFUVVFU1RfRU5EUE9JTlQsXG4gICAgICB7IGNhcmRzRm9yRnJhbWVEYXRhOiBjYXJkcy5tYXAoKHsgY2FyZFVuaXF1ZUlkIH0pID0+ICh7IGNhcmRVbmlxdWVJZCB9KSkgfSxcbiAgICAgIHtcbiAgICAgICAgQXV0aG9yaXphdGlvbixcbiAgICAgICAgJ1gtU2l0ZS1JZCc6IHhTaXRlSWQsXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIC4uLmFwaUhlYWRlcnMsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBjb25zdCBhY2NvdW50cyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgY2FyZHMubWFwKGFzeW5jIGNhcmQgPT4ge1xuICAgICAgICBjb25zdCBmaW5hbE1vbnRoVG9GZXRjaE1vbWVudCA9IG1vbWVudCgpLmFkZChmdXR1cmVNb250aHNUb1NjcmFwZSwgJ21vbnRoJyk7XG4gICAgICAgIGNvbnN0IG1vbnRocyA9IGZpbmFsTW9udGhUb0ZldGNoTW9tZW50LmRpZmYoc3RhcnRNb21lbnQsICdtb250aHMnKTtcbiAgICAgICAgY29uc3QgYWxsTW9udGhzRGF0YTogQ2FyZFRyYW5zYWN0aW9uRGV0YWlsc1tdID0gW107XG4gICAgICAgIGNvbnN0IGZyYW1lID0gXy5maW5kKGZyYW1lcy5yZXN1bHQ/LmJhbmtJc3N1ZWRDYXJkcz8uY2FyZExldmVsRnJhbWVzLCB7IGNhcmRVbmlxdWVJZDogY2FyZC5jYXJkVW5pcXVlSWQgfSk7XG5cbiAgICAgICAgZGVidWcoYGZldGNoIHBlbmRpbmcgdHJhbnNhY3Rpb25zIGZvciBjYXJkICR7Y2FyZC5jYXJkVW5pcXVlSWR9YCk7XG4gICAgICAgIGxldCBwZW5kaW5nRGF0YSA9IGF3YWl0IGZldGNoUG9zdChcbiAgICAgICAgICBQRU5ESU5HX1RSQU5TQUNUSU9OU19SRVFVRVNUX0VORFBPSU5ULFxuICAgICAgICAgIHsgY2FyZFVuaXF1ZUlEQXJyYXk6IFtjYXJkLmNhcmRVbmlxdWVJZF0gfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBBdXRob3JpemF0aW9uLFxuICAgICAgICAgICAgJ1gtU2l0ZS1JZCc6IHhTaXRlSWQsXG4gICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgLi4uYXBpSGVhZGVycyxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuXG4gICAgICAgIGRlYnVnKGBmZXRjaCBjb21wbGV0ZWQgdHJhbnNhY3Rpb25zIGZvciBjYXJkICR7Y2FyZC5jYXJkVW5pcXVlSWR9YCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IG1vbnRoczsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgbW9udGggPSBmaW5hbE1vbnRoVG9GZXRjaE1vbWVudC5jbG9uZSgpLnN1YnRyYWN0KGksICdtb250aHMnKTtcbiAgICAgICAgICBjb25zdCBtb250aERhdGEgPSBhd2FpdCBmZXRjaFBvc3QoXG4gICAgICAgICAgICBUUkFOU0FDVElPTlNfUkVRVUVTVF9FTkRQT0lOVCxcbiAgICAgICAgICAgIHsgY2FyZFVuaXF1ZUlkOiBjYXJkLmNhcmRVbmlxdWVJZCwgbW9udGg6IG1vbnRoLmZvcm1hdCgnTScpLCB5ZWFyOiBtb250aC5mb3JtYXQoJ1lZWVknKSB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBBdXRob3JpemF0aW9uLFxuICAgICAgICAgICAgICAnWC1TaXRlLUlkJzogeFNpdGVJZCxcbiAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgLi4uYXBpSGVhZGVycyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChtb250aERhdGE/LnN0YXR1c0NvZGUgIT09IDEpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBmYWlsZWQgdG8gZmV0Y2ggdHJhbnNhY3Rpb25zIGZvciBjYXJkICR7Y2FyZC5sYXN0NERpZ2l0c30uIE1lc3NhZ2U6ICR7bW9udGhEYXRhPy50aXRsZSB8fCAnJ31gLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIGlmICghaXNDYXJkVHJhbnNhY3Rpb25EZXRhaWxzKG1vbnRoRGF0YSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbW9udGhEYXRhIGlzIG5vdCBvZiB0eXBlIENhcmRUcmFuc2FjdGlvbkRldGFpbHMnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhbGxNb250aHNEYXRhLnB1c2gobW9udGhEYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwZW5kaW5nRGF0YT8uc3RhdHVzQ29kZSAhPT0gMSAmJiBwZW5kaW5nRGF0YT8uc3RhdHVzQ29kZSAhPT0gOTYpIHtcbiAgICAgICAgICBkZWJ1ZyhcbiAgICAgICAgICAgIGBmYWlsZWQgdG8gZmV0Y2ggcGVuZGluZyB0cmFuc2FjdGlvbnMgZm9yIGNhcmQgJHtjYXJkLmxhc3Q0RGlnaXRzfS4gTWVzc2FnZTogJHtwZW5kaW5nRGF0YT8udGl0bGUgfHwgJyd9YCxcbiAgICAgICAgICApO1xuICAgICAgICAgIHBlbmRpbmdEYXRhID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIGlmICghaXNDYXJkUGVuZGluZ1RyYW5zYWN0aW9uRGV0YWlscyhwZW5kaW5nRGF0YSkpIHtcbiAgICAgICAgICBkZWJ1ZygncGVuZGluZ0RhdGEgaXMgbm90IG9mIHR5cGUgQ2FyZFRyYW5zYWN0aW9uRGV0YWlscycpO1xuICAgICAgICAgIHBlbmRpbmdEYXRhID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRyYW5zYWN0aW9ucyA9IGNvbnZlcnRQYXJzZWREYXRhVG9UcmFuc2FjdGlvbnMoYWxsTW9udGhzRGF0YSwgcGVuZGluZ0RhdGEsIHRoaXMub3B0aW9ucyk7XG5cbiAgICAgICAgZGVidWcoJ2ZpbHRlciBvdXQgb2xkIHRyYW5zYWN0aW9ucycpO1xuICAgICAgICBjb25zdCB0eG5zID1cbiAgICAgICAgICAodGhpcy5vcHRpb25zLm91dHB1dERhdGE/LmVuYWJsZVRyYW5zYWN0aW9uc0ZpbHRlckJ5RGF0ZSA/PyB0cnVlKVxuICAgICAgICAgICAgPyBmaWx0ZXJPbGRUcmFuc2FjdGlvbnModHJhbnNhY3Rpb25zLCBtb21lbnQoc3RhcnREYXRlKSwgdGhpcy5vcHRpb25zLmNvbWJpbmVJbnN0YWxsbWVudHMgfHwgZmFsc2UpXG4gICAgICAgICAgICA6IHRyYW5zYWN0aW9ucztcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHR4bnMsXG4gICAgICAgICAgYmFsYW5jZTogZnJhbWU/Lm5leHRUb3RhbERlYml0ICE9IG51bGwgPyAtZnJhbWUubmV4dFRvdGFsRGViaXQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgYWNjb3VudE51bWJlcjogY2FyZC5sYXN0NERpZ2l0cyxcbiAgICAgICAgfSBhcyBUcmFuc2FjdGlvbnNBY2NvdW50O1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIGRlYnVnKCdyZXR1cm4gdGhlIHNjcmFwZWQgYWNjb3VudHMnKTtcblxuICAgIGRlYnVnKEpTT04uc3RyaW5naWZ5KGFjY291bnRzLCBudWxsLCAyKSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICBhY2NvdW50cyxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFZpc2FDYWxTY3JhcGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxxQkFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sYUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sUUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsY0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsdUJBQUEsR0FBQVQsT0FBQTtBQUVBLElBQUFVLE9BQUEsR0FBQVgsc0JBQUEsQ0FBQUMsT0FBQTtBQUF1QixTQUFBRCx1QkFBQVksQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUV2QixNQUFNRyxVQUFVLEdBQUc7RUFDakIsWUFBWSxFQUNWLHVIQUF1SDtFQUN6SEMsTUFBTSxFQUFFLHNDQUFzQztFQUM5Q0MsT0FBTyxFQUFFLHNDQUFzQztFQUMvQyxpQkFBaUIsRUFBRSxxQ0FBcUM7RUFDeEQsZ0JBQWdCLEVBQUUsV0FBVztFQUM3QixnQkFBZ0IsRUFBRSxNQUFNO0VBQ3hCLGdCQUFnQixFQUFFO0FBQ3BCLENBQUM7QUFDRCxNQUFNQyxTQUFTLEdBQUcsK0JBQStCO0FBQ2pELE1BQU1DLDZCQUE2QixHQUNqQyw4RkFBOEY7QUFDaEcsTUFBTUMsdUJBQXVC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
|