@anansi/core 0.19.4 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/dist/2.chunk.js +1 -1
- package/dist/client.js +5 -5
- package/dist/server.js +4 -4
- package/lib/scripts/scripts/serve.js +2 -2
- package/lib/scripts/serve.d.ts.map +1 -1
- package/lib/scripts/serve.js +2 -2
- package/lib/scripts/spouts/dataClient.js +4 -4
- package/lib/scripts/spouts/dataClient.provider.js +2 -2
- package/lib/scripts/spouts/dataClient.server.js +4 -4
- package/lib/spouts/dataClient.js +4 -4
- package/lib/spouts/dataClient.provider.d.ts +1 -1
- package/lib/spouts/dataClient.provider.d.ts.map +1 -1
- package/lib/spouts/dataClient.provider.js +2 -2
- package/lib/spouts/dataClient.server.js +4 -4
- package/package.json +5 -16
- package/src/scripts/serve.ts +1 -3
- package/src/spouts/dataClient.provider.tsx +1 -1
- package/src/spouts/dataClient.server.tsx +3 -3
- package/src/spouts/dataClient.tsx +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,29 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.20.0](https://github.com/ntucker/anansi/compare/@anansi/core@0.19.5...@anansi/core@0.20.0) (2024-06-14)
|
|
7
|
+
|
|
8
|
+
### ⚠ 💥 BREAKING CHANGES
|
|
9
|
+
|
|
10
|
+
* Require node >=22
|
|
11
|
+
|
|
12
|
+
### 🚀 Features
|
|
13
|
+
|
|
14
|
+
* Support node 22 ([ec290ea](https://github.com/ntucker/anansi/commit/ec290eaa29a039ad51b776deea60afd482a0a046))
|
|
15
|
+
|
|
16
|
+
### 💅 Enhancement
|
|
17
|
+
|
|
18
|
+
* Use DataProvider ([bc3b933](https://github.com/ntucker/anansi/commit/bc3b9333259afe3c438457279dc8565b3134ea0c))
|
|
19
|
+
|
|
20
|
+
### 📦 Package
|
|
21
|
+
|
|
22
|
+
* Update all non-major dependencies ([#2436](https://github.com/ntucker/anansi/issues/2436)) ([6aa393f](https://github.com/ntucker/anansi/commit/6aa393f6b4c4bbed9d874a876409bcb71e4f9b79))
|
|
23
|
+
* Update all non-major dependencies ([#2438](https://github.com/ntucker/anansi/issues/2438)) ([9b047e3](https://github.com/ntucker/anansi/commit/9b047e35adbf203919de534140377c5f43460285))
|
|
24
|
+
|
|
25
|
+
### [0.19.5](https://github.com/ntucker/anansi/compare/@anansi/core@0.19.4...@anansi/core@0.19.5) (2024-06-12)
|
|
26
|
+
|
|
27
|
+
**Note:** Version bump only for package @anansi/core
|
|
28
|
+
|
|
6
29
|
### [0.19.4](https://github.com/ntucker/anansi/compare/@anansi/core@0.19.3...@anansi/core@0.19.4) (2024-06-11)
|
|
7
30
|
|
|
8
31
|
### 📦 Package
|
package/dist/2.chunk.js
CHANGED
|
@@ -8,7 +8,7 @@ exports.modules = {
|
|
|
8
8
|
|
|
9
9
|
__webpack_require__.r(__webpack_exports__);
|
|
10
10
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
11
|
-
/* harmony export */
|
|
11
|
+
/* harmony export */ DataProvider: () => (/* reexport safe */ _data_client_react__WEBPACK_IMPORTED_MODULE_0__.DataProvider)
|
|
12
12
|
/* harmony export */ });
|
|
13
13
|
/* harmony import */ var _data_client_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
|
|
14
14
|
/* harmony import */ var _data_client_react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_data_client_react__WEBPACK_IMPORTED_MODULE_0__);
|
package/dist/client.js
CHANGED
|
@@ -192,8 +192,8 @@ function documentSpout(options) {
|
|
|
192
192
|
return nextProps;
|
|
193
193
|
};
|
|
194
194
|
}
|
|
195
|
-
;// CONCATENATED MODULE: external "@data-client/redux"
|
|
196
|
-
const redux_namespaceObject = require("@data-client/redux");
|
|
195
|
+
;// CONCATENATED MODULE: external "@data-client/react/redux"
|
|
196
|
+
const redux_namespaceObject = require("@data-client/react/redux");
|
|
197
197
|
;// CONCATENATED MODULE: external "react/jsx-runtime"
|
|
198
198
|
const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
199
199
|
;// CONCATENATED MODULE: ./src/spouts/dataClient.tsx
|
|
@@ -203,7 +203,7 @@ function dataClientSpout(options = {}) {
|
|
|
203
203
|
return next => async props => {
|
|
204
204
|
const nextProps = await next(props);
|
|
205
205
|
const [data, {
|
|
206
|
-
|
|
206
|
+
DataProvider
|
|
207
207
|
}] = await Promise.all([props.getInitialData('dataclient').catch(e => {
|
|
208
208
|
console.error('Data Client initial data could not load:', e);
|
|
209
209
|
return redux_namespaceObject.initialState;
|
|
@@ -213,7 +213,7 @@ function dataClientSpout(options = {}) {
|
|
|
213
213
|
}
|
|
214
214
|
return {
|
|
215
215
|
...nextProps,
|
|
216
|
-
app: /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(
|
|
216
|
+
app: /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(DataProvider, {
|
|
217
217
|
initialState: data,
|
|
218
218
|
managers: options == null || options.getManagers == null ? void 0 : options.getManagers(),
|
|
219
219
|
children: nextProps.app
|
|
@@ -314,4 +314,4 @@ const appSpout = app => props => Promise.resolve({
|
|
|
314
314
|
module.exports = __webpack_exports__;
|
|
315
315
|
/******/ })()
|
|
316
316
|
;
|
|
317
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RUFBRUosR0FBVyxFQUFFO0VBQ3pELElBQUlJLEVBQUUsQ0FBQ0ksSUFBSSxLQUFLQyxTQUFTLEVBQUU7SUFDekJoQyxPQUFPLENBQUNDLEtBQUssQ0FDWCxJQUFJc0IsR0FBRyx3REFDVCxDQUFDO0VBQ0g7RUFDQSxPQUFPSSxFQUFFLFlBQUZBLEVBQUUsQ0FBRUksSUFBSSxHQUFHRSxJQUFJLENBQUNDLEtBQUssQ0FBQ1AsRUFBRSxvQkFBRkEsRUFBRSxDQUFFSSxJQUFJLENBQUMsR0FBR0MsU0FBUztBQUNwRDs7QUNuQ0EsTUFBTUcsUUFBUSxHQUNYdEQsR0FBZ0IsSUFDbUJNLEtBQVEsSUFDMUNRLE9BQU8sQ0FBQzhCLE9BQU8sQ0FBQztFQUFFLEdBQUd0QyxLQUFLO0VBQUVOO0FBQUksQ0FBQyxDQUFDO0FBRXRDLDBDQUFlc0QsUUFBUTs7QUNMbUM7QUFDTTtBQUNJO0FBQ1I7QUFDSiIsInNvdXJjZXMiOlsid2VicGFjazovL0BhbmFuc2kvY29yZS9leHRlcm5hbCBjb21tb25qcyBcIkBkYXRhLWNsaWVudC9yZWFjdFwiIiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL2Vuc3VyZSBjaHVuayIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL2dldCBqYXZhc2NyaXB0IGNodW5rIGZpbGVuYW1lIiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvZ2V0IG1pbmktY3NzIGNodW5rIGZpbGVuYW1lIiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvcHVibGljUGF0aCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL3JlcXVpcmUgY2h1bmsgbG9hZGluZyIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJyZWFjdC1kb20vY2xpZW50XCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL2Zsb29kU3BvdXRzLnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL2RvY3VtZW50LnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJAZGF0YS1jbGllbnQvcmVkdXhcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJyZWFjdC9qc3gtcnVudGltZVwiIiwid2VicGFjazovL0BhbmFuc2kvY29yZS8uL3NyYy9zcG91dHMvZGF0YUNsaWVudC50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwiQGFuYW5zaS9yb3V0ZXJcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJoaXN0b3J5XCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3RcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL3JvdXRlci50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9qc29uLnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL2FwcC50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIkBkYXRhLWNsaWVudC9yZWFjdFwiKTsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbl9fd2VicGFja19yZXF1aXJlX18ubSA9IF9fd2VicGFja19tb2R1bGVzX187XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5mID0ge307XG4vLyBUaGlzIGZpbGUgY29udGFpbnMgb25seSB0aGUgZW50cnkgY2h1bmsuXG4vLyBUaGUgY2h1bmsgbG9hZGluZyBmdW5jdGlvbiBmb3IgYWRkaXRpb25hbCBjaHVua3Ncbl9fd2VicGFja19yZXF1aXJlX18uZSA9IChjaHVua0lkKSA9PiB7XG5cdHJldHVybiBQcm9taXNlLmFsbChPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLmYpLnJlZHVjZSgocHJvbWlzZXMsIGtleSkgPT4ge1xuXHRcdF9fd2VicGFja19yZXF1aXJlX18uZltrZXldKGNodW5rSWQsIHByb21pc2VzKTtcblx0XHRyZXR1cm4gcHJvbWlzZXM7XG5cdH0sIFtdKSk7XG59OyIsIi8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rc1xuX193ZWJwYWNrX3JlcXVpcmVfXy51ID0gKGNodW5rSWQpID0+IHtcblx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG5cdHJldHVybiBcIlwiICsgY2h1bmtJZCArIFwiLmNodW5rLmpzXCI7XG59OyIsIi8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5taW5pQ3NzRiA9IChjaHVua0lkKSA9PiB7XG5cdC8vIHJldHVybiB1cmwgZm9yIGZpbGVuYW1lcyBiYXNlZCBvbiB0ZW1wbGF0ZVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCIvXCI7IiwiLy8gbm8gYmFzZVVSSVxuXG4vLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGNodW5rc1xuLy8gXCIxXCIgbWVhbnMgXCJsb2FkZWRcIiwgb3RoZXJ3aXNlIG5vdCBsb2FkZWQgeWV0XG52YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuXHQwOiAxXG59O1xuXG4vLyBubyBvbiBjaHVua3MgbG9hZGVkXG5cbnZhciBpbnN0YWxsQ2h1bmsgPSAoY2h1bmspID0+IHtcblx0dmFyIG1vcmVNb2R1bGVzID0gY2h1bmsubW9kdWxlcywgY2h1bmtJZHMgPSBjaHVuay5pZHMsIHJ1bnRpbWUgPSBjaHVuay5ydW50aW1lO1xuXHRmb3IodmFyIG1vZHVsZUlkIGluIG1vcmVNb2R1bGVzKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKG1vcmVNb2R1bGVzLCBtb2R1bGVJZCkpIHtcblx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubVttb2R1bGVJZF0gPSBtb3JlTW9kdWxlc1ttb2R1bGVJZF07XG5cdFx0fVxuXHR9XG5cdGlmKHJ1bnRpbWUpIHJ1bnRpbWUoX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cdGZvcih2YXIgaSA9IDA7IGkgPCBjaHVua0lkcy5sZW5ndGg7IGkrKylcblx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZHNbaV1dID0gMTtcblxufTtcblxuLy8gcmVxdWlyZSgpIGNodW5rIGxvYWRpbmcgZm9yIGphdmFzY3JpcHRcbl9fd2VicGFja19yZXF1aXJlX18uZi5yZXF1aXJlID0gKGNodW5rSWQsIHByb21pc2VzKSA9PiB7XG5cdC8vIFwiMVwiIGlzIHRoZSBzaWduYWwgZm9yIFwiYWxyZWFkeSBsb2FkZWRcIlxuXHRpZighaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdKSB7XG5cdFx0aWYodHJ1ZSkgeyAvLyBhbGwgY2h1bmtzIGhhdmUgSlNcblx0XHRcdGluc3RhbGxDaHVuayhyZXF1aXJlKFwiLi9cIiArIF9fd2VicGFja19yZXF1aXJlX18udShjaHVua0lkKSkpO1xuXHRcdH0gZWxzZSBpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gPSAxO1xuXHR9XG59O1xuXG4vLyBubyBleHRlcm5hbCBpbnN0YWxsIGNodW5rXG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3QiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcInJlYWN0LWRvbS9jbGllbnRcIik7IiwiaW1wb3J0IHsgaHlkcmF0ZVJvb3QgfSBmcm9tICdyZWFjdC1kb20vY2xpZW50JztcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gZmxvb2RTcG91dHMoXG4gIHNwb3V0czogKHByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gUHJvbWlzZTx7XG4gICAgYXBwOiBKU1guRWxlbWVudDtcbiAgfT4sXG4gIHsgcm9vdElkID0gJ2FuYW5zaS1yb290JyB9OiB7IHJvb3RJZD86IHN0cmluZyB9ID0ge30sXG4pIHtcbiAgY29uc3QgeyBhcHAgfSA9IGF3YWl0IHNwb3V0cyh7fSk7XG5cbiAgaHlkcmF0ZVJvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocm9vdElkKSA/PyBkb2N1bWVudCwgYXBwKTtcbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgQ2xpZW50U3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZG9jdW1lbnRTcG91dChvcHRpb25zOiB7XG4gIGhlYWQ/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHRpdGxlOiBzdHJpbmc7XG59KTogQ2xpZW50U3BvdXQge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG5cbiAgICByZXR1cm4gbmV4dFByb3BzO1xuICB9O1xufVxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJAZGF0YS1jbGllbnQvcmVkdXhcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKTsiLCJpbXBvcnQgeyB0eXBlIE1hbmFnZXIgfSBmcm9tICdAZGF0YS1jbGllbnQvcmVhY3QnO1xuaW1wb3J0IHsgaW5pdGlhbFN0YXRlIH0gZnJvbSAnQGRhdGEtY2xpZW50L3JlZHV4JztcblxuaW1wb3J0IHR5cGUgeyBDbGllbnRTcG91dCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkYXRhQ2xpZW50U3BvdXQoXG4gIG9wdGlvbnM6IHtcbiAgICBnZXRNYW5hZ2Vycz86ICgpID0+IE1hbmFnZXJbXTtcbiAgfSA9IHt9LFxuKTogQ2xpZW50U3BvdXQ8eyBnZXRJbml0aWFsRGF0YTogKGtleTogc3RyaW5nKSA9PiBQcm9taXNlPGFueT4gfT4ge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG4gICAgY29uc3QgW2RhdGEsIHsgQ2FjaGVQcm92aWRlciB9XSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIHByb3BzLmdldEluaXRpYWxEYXRhKCdkYXRhY2xpZW50JykuY2F0Y2goZSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0RhdGEgQ2xpZW50IGluaXRpYWwgZGF0YSBjb3VsZCBub3QgbG9hZDonLCBlKTtcbiAgICAgICAgcmV0dXJuIGluaXRpYWxTdGF0ZTtcbiAgICAgIH0pLFxuICAgICAgaW1wb3J0KCcuL2RhdGFDbGllbnQucHJvdmlkZXIuanMnKSxcbiAgICBdKTtcblxuICAgIGlmICghZGF0YSkge1xuICAgICAgY29uc29sZS5lcnJvcignRGF0YSBDbGllbnQgaW5pdCBkYXRhIG5vdCBmb3VuZCcpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5uZXh0UHJvcHMsXG4gICAgICBhcHA6IChcbiAgICAgICAgPENhY2hlUHJvdmlkZXIgaW5pdGlhbFN0YXRlPXtkYXRhfSBtYW5hZ2Vycz17b3B0aW9ucz8uZ2V0TWFuYWdlcnM/LigpfT5cbiAgICAgICAgICB7bmV4dFByb3BzLmFwcH1cbiAgICAgICAgPC9DYWNoZVByb3ZpZGVyPlxuICAgICAgKSxcbiAgICB9O1xuICB9O1xufVxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJAYW5hbnNpL3JvdXRlclwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImhpc3RvcnlcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdFwiKTsiLCJpbXBvcnQgeyBSb3V0ZSwgUm91dGVQcm92aWRlciwgUm91dGVDb250cm9sbGVyIH0gZnJvbSAnQGFuYW5zaS9yb3V0ZXInO1xuaW1wb3J0IHsgY3JlYXRlQnJvd3Nlckhpc3RvcnkgfSBmcm9tICdoaXN0b3J5JztcbmltcG9ydCB0eXBlIHsgVXBkYXRlIH0gZnJvbSAnaGlzdG9yeSc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7IENyZWF0ZVJvdXRlciwgQ2xpZW50U3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcm91dGVyU3BvdXQ8UmVzb2x2ZVdpdGg+KG9wdGlvbnM6IHtcbiAgcmVzb2x2ZVdpdGg/OiBhbnk7XG4gIHVzZVJlc29sdmVXaXRoOiAoKSA9PiBSZXNvbHZlV2l0aDtcbiAgY3JlYXRlUm91dGVyOiBDcmVhdGVSb3V0ZXI8UmVzb2x2ZVdpdGg+O1xuICBvbkNoYW5nZT86ICh1cGRhdGU6IFVwZGF0ZSwgY2FsbGJhY2s6ICgpID0+IHZvaWQgfCB1bmRlZmluZWQpID0+IHZvaWQ7XG59KTogQ2xpZW50U3BvdXQ8XG4gIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICB7XG4gICAgbWF0Y2hlZFJvdXRlczogUm91dGU8UmVzb2x2ZVdpdGgsIGFueT5bXTtcbiAgfSAmIHtcbiAgICByb3V0ZXI6IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxSZXNvbHZlV2l0aCwgYW55Pj47XG4gIH1cbj4ge1xuICBjb25zdCBjcmVhdGVSb3V0ZUNvbXBvbmVudCA9IChcbiAgICByb3V0ZXI6IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxSZXNvbHZlV2l0aCwgYW55Pj4sXG4gICkgPT5cbiAgICBmdW5jdGlvbiBSb3V0ZXIoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICAgICAgY29uc3QgcmVzb2x2ZVdpdGggPSBvcHRpb25zLnVzZVJlc29sdmVXaXRoKCk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxSb3V0ZVByb3ZpZGVyXG4gICAgICAgICAgcm91dGVyPXtyb3V0ZXJ9XG4gICAgICAgICAgcmVzb2x2ZVdpdGg9e3Jlc29sdmVXaXRofVxuICAgICAgICAgIG9uQ2hhbmdlPXtvcHRpb25zLm9uQ2hhbmdlfVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1JvdXRlUHJvdmlkZXI+XG4gICAgICApO1xuICAgIH07XG5cbiAgcmV0dXJuIG5leHQgPT4gYXN5bmMgcHJvcHMgPT4ge1xuICAgIGNvbnN0IGhpc3RvcnkgPSBjcmVhdGVCcm93c2VySGlzdG9yeSgpO1xuICAgIGNvbnN0IHJvdXRlciA9IG9wdGlvbnMuY3JlYXRlUm91dGVyKGhpc3RvcnkpO1xuICAgIGNvbnN0IG1hdGNoZWRSb3V0ZXMgPSByb3V0ZXIuZ2V0TWF0Y2hlZFJvdXRlcyhoaXN0b3J5LmxvY2F0aW9uLnBhdGhuYW1lKTtcblxuICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQoeyAuLi5wcm9wcywgbWF0Y2hlZFJvdXRlcywgcm91dGVyIH0pO1xuXG4gICAgY29uc3QgUm91dGVyID0gY3JlYXRlUm91dGVDb21wb25lbnQocm91dGVyKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgbWF0Y2hlZFJvdXRlcyxcbiAgICAgIHJvdXRlcixcbiAgICAgIGFwcDogPFJvdXRlcj57bmV4dFByb3BzLmFwcH08L1JvdXRlcj4sXG4gICAgfTtcbiAgfTtcbn1cbiIsImltcG9ydCB0eXBlIHsgQ2xpZW50U3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSlNPTlNwb3V0KHtcbiAgaWQgPSAnYW5hbnNpLWpzb24nLFxufTogeyBpZD86IHN0cmluZyB9ID0ge30pOiBDbGllbnRTcG91dDxcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHsgZ2V0SW5pdGlhbERhdGE6IChrZXk6IHN0cmluZykgPT4gUHJvbWlzZTxhbnk+IH1cbj4ge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgZ2V0SW5pdGlhbERhdGEgPSAoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGdsb2JhbElkID0gYCR7aWR9LiR7a2V5fWA7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGxldCBlbDogSFRNTFNjcmlwdEVsZW1lbnQgfCBudWxsO1xuICAgICAgICBpZiAoKGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZ2xvYmFsSWQpIGFzIGFueSkpIHtcbiAgICAgICAgICByZXNvbHZlKGdldERhdGFGcm9tRWwoZWwsIGdsb2JhbElkKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCAoKSA9PiB7XG4gICAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChnbG9iYWxJZCkgYXMgYW55O1xuICAgICAgICAgIGlmIChlbCkgcmVzb2x2ZShnZXREYXRhRnJvbUVsKGVsLCBnbG9iYWxJZCkpO1xuICAgICAgICAgIGVsc2UgcmVqZWN0KG5ldyBFcnJvcihgZmFpbGVkIHRvIGZpbmQgRE9NIHdpdGggJHtrZXl9IHN0YXRlYCkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIHsgLi4uKGF3YWl0IG5leHQoeyAuLi5wcm9wcywgZ2V0SW5pdGlhbERhdGEgfSkpLCBnZXRJbml0aWFsRGF0YSB9O1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXREYXRhRnJvbUVsKGVsOiBIVE1MU2NyaXB0RWxlbWVudCwga2V5OiBzdHJpbmcpIHtcbiAgaWYgKGVsLnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBgIyR7a2V5fSBpcyBjb21wbGV0ZWx5IGVtcHR5LiBUaGlzIGNvdWxkIGJlIGR1ZSB0byBDU1AgaXNzdWVzLmAsXG4gICAgKTtcbiAgfVxuICByZXR1cm4gZWw/LnRleHQgPyBKU09OLnBhcnNlKGVsPy50ZXh0KSA6IHVuZGVmaW5lZDtcbn1cbiIsImNvbnN0IGFwcFNwb3V0ID1cbiAgKGFwcDogSlNYLkVsZW1lbnQpID0+XG4gIDxQIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KHByb3BzOiBQKSA9PlxuICAgIFByb21pc2UucmVzb2x2ZSh7IC4uLnByb3BzLCBhcHAgfSk7XG5cbmV4cG9ydCBkZWZhdWx0IGFwcFNwb3V0O1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBmbG9vZFNwb3V0cyB9IGZyb20gJy4vZmxvb2RTcG91dHMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBkb2N1bWVudFNwb3V0IH0gZnJvbSAnLi9zcG91dHMvZG9jdW1lbnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBkYXRhQ2xpZW50U3BvdXQgfSBmcm9tICcuL3Nwb3V0cy9kYXRhQ2xpZW50LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcm91dGVyU3BvdXQgfSBmcm9tICcuL3Nwb3V0cy9yb3V0ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBKU09OU3BvdXQgfSBmcm9tICcuL3Nwb3V0cy9qc29uLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgYXBwU3BvdXQgfSBmcm9tICcuL3Nwb3V0cy9hcHAuanMnO1xuZXhwb3J0IHR5cGUgeyBTZXJ2ZXJQcm9wcyB9IGZyb20gJy4vc3BvdXRzL3R5cGVzLmpzJztcbmV4cG9ydCB0eXBlIHsgQ2xpZW50U3BvdXQgYXMgU3BvdXQgfSBmcm9tICcuL3Nwb3V0cy90eXBlcy5qcyc7XG4iXSwibmFtZXMiOlsiaHlkcmF0ZVJvb3QiLCJmbG9vZFNwb3V0cyIsInNwb3V0cyIsInJvb3RJZCIsIl9kb2N1bWVudCRnZXRFbGVtZW50QiIsImFwcCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJkb2N1bWVudFNwb3V0Iiwib3B0aW9ucyIsIm5leHQiLCJwcm9wcyIsIm5leHRQcm9wcyIsImluaXRpYWxTdGF0ZSIsImpzeCIsIl9qc3giLCJkYXRhQ2xpZW50U3BvdXQiLCJkYXRhIiwiQ2FjaGVQcm92aWRlciIsIlByb21pc2UiLCJhbGwiLCJnZXRJbml0aWFsRGF0YSIsImNhdGNoIiwiZSIsImNvbnNvbGUiLCJlcnJvciIsIm1hbmFnZXJzIiwiZ2V0TWFuYWdlcnMiLCJjaGlsZHJlbiIsIlJvdXRlUHJvdmlkZXIiLCJjcmVhdGVCcm93c2VySGlzdG9yeSIsIlJlYWN0Iiwicm91dGVyU3BvdXQiLCJjcmVhdGVSb3V0ZUNvbXBvbmVudCIsInJvdXRlciIsIlJvdXRlciIsInJlc29sdmVXaXRoIiwidXNlUmVzb2x2ZVdpdGgiLCJvbkNoYW5nZSIsImhpc3RvcnkiLCJjcmVhdGVSb3V0ZXIiLCJtYXRjaGVkUm91dGVzIiwiZ2V0TWF0Y2hlZFJvdXRlcyIsImxvY2F0aW9uIiwicGF0aG5hbWUiLCJKU09OU3BvdXQiLCJpZCIsImtleSIsImdsb2JhbElkIiwicmVzb2x2ZSIsInJlamVjdCIsImVsIiwiZ2V0RGF0YUZyb21FbCIsImFkZEV2ZW50TGlzdGVuZXIiLCJFcnJvciIsInRleHQiLCJ1bmRlZmluZWQiLCJKU09OIiwicGFyc2UiLCJhcHBTcG91dCIsImRlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9
|
|
317
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RUFBRUosR0FBVyxFQUFFO0VBQ3pELElBQUlJLEVBQUUsQ0FBQ0ksSUFBSSxLQUFLQyxTQUFTLEVBQUU7SUFDekJoQyxPQUFPLENBQUNDLEtBQUssQ0FDWCxJQUFJc0IsR0FBRyx3REFDVCxDQUFDO0VBQ0g7RUFDQSxPQUFPSSxFQUFFLFlBQUZBLEVBQUUsQ0FBRUksSUFBSSxHQUFHRSxJQUFJLENBQUNDLEtBQUssQ0FBQ1AsRUFBRSxvQkFBRkEsRUFBRSxDQUFFSSxJQUFJLENBQUMsR0FBR0MsU0FBUztBQUNwRDs7QUNuQ0EsTUFBTUcsUUFBUSxHQUNYdEQsR0FBZ0IsSUFDbUJNLEtBQVEsSUFDMUNRLE9BQU8sQ0FBQzhCLE9BQU8sQ0FBQztFQUFFLEdBQUd0QyxLQUFLO0VBQUVOO0FBQUksQ0FBQyxDQUFDO0FBRXRDLDBDQUFlc0QsUUFBUTs7QUNMbUM7QUFDTTtBQUNJO0FBQ1I7QUFDSiIsInNvdXJjZXMiOlsid2VicGFjazovL0BhbmFuc2kvY29yZS9leHRlcm5hbCBjb21tb25qcyBcIkBkYXRhLWNsaWVudC9yZWFjdFwiIiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL2Vuc3VyZSBjaHVuayIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL2dldCBqYXZhc2NyaXB0IGNodW5rIGZpbGVuYW1lIiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvZ2V0IG1pbmktY3NzIGNodW5rIGZpbGVuYW1lIiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvcHVibGljUGF0aCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL3JlcXVpcmUgY2h1bmsgbG9hZGluZyIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJyZWFjdC1kb20vY2xpZW50XCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL2Zsb29kU3BvdXRzLnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL2RvY3VtZW50LnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJAZGF0YS1jbGllbnQvcmVhY3QvcmVkdXhcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJyZWFjdC9qc3gtcnVudGltZVwiIiwid2VicGFjazovL0BhbmFuc2kvY29yZS8uL3NyYy9zcG91dHMvZGF0YUNsaWVudC50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwiQGFuYW5zaS9yb3V0ZXJcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJoaXN0b3J5XCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3RcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL3JvdXRlci50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9qc29uLnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL2FwcC50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIkBkYXRhLWNsaWVudC9yZWFjdFwiKTsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbl9fd2VicGFja19yZXF1aXJlX18ubSA9IF9fd2VicGFja19tb2R1bGVzX187XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5mID0ge307XG4vLyBUaGlzIGZpbGUgY29udGFpbnMgb25seSB0aGUgZW50cnkgY2h1bmsuXG4vLyBUaGUgY2h1bmsgbG9hZGluZyBmdW5jdGlvbiBmb3IgYWRkaXRpb25hbCBjaHVua3Ncbl9fd2VicGFja19yZXF1aXJlX18uZSA9IChjaHVua0lkKSA9PiB7XG5cdHJldHVybiBQcm9taXNlLmFsbChPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLmYpLnJlZHVjZSgocHJvbWlzZXMsIGtleSkgPT4ge1xuXHRcdF9fd2VicGFja19yZXF1aXJlX18uZltrZXldKGNodW5rSWQsIHByb21pc2VzKTtcblx0XHRyZXR1cm4gcHJvbWlzZXM7XG5cdH0sIFtdKSk7XG59OyIsIi8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rc1xuX193ZWJwYWNrX3JlcXVpcmVfXy51ID0gKGNodW5rSWQpID0+IHtcblx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG5cdHJldHVybiBcIlwiICsgY2h1bmtJZCArIFwiLmNodW5rLmpzXCI7XG59OyIsIi8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5taW5pQ3NzRiA9IChjaHVua0lkKSA9PiB7XG5cdC8vIHJldHVybiB1cmwgZm9yIGZpbGVuYW1lcyBiYXNlZCBvbiB0ZW1wbGF0ZVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCIvXCI7IiwiLy8gbm8gYmFzZVVSSVxuXG4vLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGNodW5rc1xuLy8gXCIxXCIgbWVhbnMgXCJsb2FkZWRcIiwgb3RoZXJ3aXNlIG5vdCBsb2FkZWQgeWV0XG52YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuXHQwOiAxXG59O1xuXG4vLyBubyBvbiBjaHVua3MgbG9hZGVkXG5cbnZhciBpbnN0YWxsQ2h1bmsgPSAoY2h1bmspID0+IHtcblx0dmFyIG1vcmVNb2R1bGVzID0gY2h1bmsubW9kdWxlcywgY2h1bmtJZHMgPSBjaHVuay5pZHMsIHJ1bnRpbWUgPSBjaHVuay5ydW50aW1lO1xuXHRmb3IodmFyIG1vZHVsZUlkIGluIG1vcmVNb2R1bGVzKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKG1vcmVNb2R1bGVzLCBtb2R1bGVJZCkpIHtcblx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubVttb2R1bGVJZF0gPSBtb3JlTW9kdWxlc1ttb2R1bGVJZF07XG5cdFx0fVxuXHR9XG5cdGlmKHJ1bnRpbWUpIHJ1bnRpbWUoX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cdGZvcih2YXIgaSA9IDA7IGkgPCBjaHVua0lkcy5sZW5ndGg7IGkrKylcblx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZHNbaV1dID0gMTtcblxufTtcblxuLy8gcmVxdWlyZSgpIGNodW5rIGxvYWRpbmcgZm9yIGphdmFzY3JpcHRcbl9fd2VicGFja19yZXF1aXJlX18uZi5yZXF1aXJlID0gKGNodW5rSWQsIHByb21pc2VzKSA9PiB7XG5cdC8vIFwiMVwiIGlzIHRoZSBzaWduYWwgZm9yIFwiYWxyZWFkeSBsb2FkZWRcIlxuXHRpZighaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdKSB7XG5cdFx0aWYodHJ1ZSkgeyAvLyBhbGwgY2h1bmtzIGhhdmUgSlNcblx0XHRcdGluc3RhbGxDaHVuayhyZXF1aXJlKFwiLi9cIiArIF9fd2VicGFja19yZXF1aXJlX18udShjaHVua0lkKSkpO1xuXHRcdH0gZWxzZSBpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gPSAxO1xuXHR9XG59O1xuXG4vLyBubyBleHRlcm5hbCBpbnN0YWxsIGNodW5rXG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3QiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcInJlYWN0LWRvbS9jbGllbnRcIik7IiwiaW1wb3J0IHsgaHlkcmF0ZVJvb3QgfSBmcm9tICdyZWFjdC1kb20vY2xpZW50JztcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gZmxvb2RTcG91dHMoXG4gIHNwb3V0czogKHByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gUHJvbWlzZTx7XG4gICAgYXBwOiBKU1guRWxlbWVudDtcbiAgfT4sXG4gIHsgcm9vdElkID0gJ2FuYW5zaS1yb290JyB9OiB7IHJvb3RJZD86IHN0cmluZyB9ID0ge30sXG4pIHtcbiAgY29uc3QgeyBhcHAgfSA9IGF3YWl0IHNwb3V0cyh7fSk7XG5cbiAgaHlkcmF0ZVJvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocm9vdElkKSA/PyBkb2N1bWVudCwgYXBwKTtcbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgQ2xpZW50U3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZG9jdW1lbnRTcG91dChvcHRpb25zOiB7XG4gIGhlYWQ/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHRpdGxlOiBzdHJpbmc7XG59KTogQ2xpZW50U3BvdXQge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG5cbiAgICByZXR1cm4gbmV4dFByb3BzO1xuICB9O1xufVxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJAZGF0YS1jbGllbnQvcmVhY3QvcmVkdXhcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKTsiLCJpbXBvcnQgeyB0eXBlIE1hbmFnZXIgfSBmcm9tICdAZGF0YS1jbGllbnQvcmVhY3QnO1xuaW1wb3J0IHsgaW5pdGlhbFN0YXRlIH0gZnJvbSAnQGRhdGEtY2xpZW50L3JlYWN0L3JlZHV4JztcblxuaW1wb3J0IHR5cGUgeyBDbGllbnRTcG91dCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkYXRhQ2xpZW50U3BvdXQoXG4gIG9wdGlvbnM6IHtcbiAgICBnZXRNYW5hZ2Vycz86ICgpID0+IE1hbmFnZXJbXTtcbiAgfSA9IHt9LFxuKTogQ2xpZW50U3BvdXQ8eyBnZXRJbml0aWFsRGF0YTogKGtleTogc3RyaW5nKSA9PiBQcm9taXNlPGFueT4gfT4ge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG4gICAgY29uc3QgW2RhdGEsIHsgRGF0YVByb3ZpZGVyIH1dID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgcHJvcHMuZ2V0SW5pdGlhbERhdGEoJ2RhdGFjbGllbnQnKS5jYXRjaChlID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRGF0YSBDbGllbnQgaW5pdGlhbCBkYXRhIGNvdWxkIG5vdCBsb2FkOicsIGUpO1xuICAgICAgICByZXR1cm4gaW5pdGlhbFN0YXRlO1xuICAgICAgfSksXG4gICAgICBpbXBvcnQoJy4vZGF0YUNsaWVudC5wcm92aWRlci5qcycpLFxuICAgIF0pO1xuXG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdEYXRhIENsaWVudCBpbml0IGRhdGEgbm90IGZvdW5kJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5leHRQcm9wcyxcbiAgICAgIGFwcDogKFxuICAgICAgICA8RGF0YVByb3ZpZGVyIGluaXRpYWxTdGF0ZT17ZGF0YX0gbWFuYWdlcnM9e29wdGlvbnM/LmdldE1hbmFnZXJzPy4oKX0+XG4gICAgICAgICAge25leHRQcm9wcy5hcHB9XG4gICAgICAgIDwvRGF0YVByb3ZpZGVyPlxuICAgICAgKSxcbiAgICB9O1xuICB9O1xufVxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJAYW5hbnNpL3JvdXRlclwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImhpc3RvcnlcIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdFwiKTsiLCJpbXBvcnQgeyBSb3V0ZSwgUm91dGVQcm92aWRlciwgUm91dGVDb250cm9sbGVyIH0gZnJvbSAnQGFuYW5zaS9yb3V0ZXInO1xuaW1wb3J0IHsgY3JlYXRlQnJvd3Nlckhpc3RvcnkgfSBmcm9tICdoaXN0b3J5JztcbmltcG9ydCB0eXBlIHsgVXBkYXRlIH0gZnJvbSAnaGlzdG9yeSc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7IENyZWF0ZVJvdXRlciwgQ2xpZW50U3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcm91dGVyU3BvdXQ8UmVzb2x2ZVdpdGg+KG9wdGlvbnM6IHtcbiAgcmVzb2x2ZVdpdGg/OiBhbnk7XG4gIHVzZVJlc29sdmVXaXRoOiAoKSA9PiBSZXNvbHZlV2l0aDtcbiAgY3JlYXRlUm91dGVyOiBDcmVhdGVSb3V0ZXI8UmVzb2x2ZVdpdGg+O1xuICBvbkNoYW5nZT86ICh1cGRhdGU6IFVwZGF0ZSwgY2FsbGJhY2s6ICgpID0+IHZvaWQgfCB1bmRlZmluZWQpID0+IHZvaWQ7XG59KTogQ2xpZW50U3BvdXQ8XG4gIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICB7XG4gICAgbWF0Y2hlZFJvdXRlczogUm91dGU8UmVzb2x2ZVdpdGgsIGFueT5bXTtcbiAgfSAmIHtcbiAgICByb3V0ZXI6IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxSZXNvbHZlV2l0aCwgYW55Pj47XG4gIH1cbj4ge1xuICBjb25zdCBjcmVhdGVSb3V0ZUNvbXBvbmVudCA9IChcbiAgICByb3V0ZXI6IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxSZXNvbHZlV2l0aCwgYW55Pj4sXG4gICkgPT5cbiAgICBmdW5jdGlvbiBSb3V0ZXIoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICAgICAgY29uc3QgcmVzb2x2ZVdpdGggPSBvcHRpb25zLnVzZVJlc29sdmVXaXRoKCk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxSb3V0ZVByb3ZpZGVyXG4gICAgICAgICAgcm91dGVyPXtyb3V0ZXJ9XG4gICAgICAgICAgcmVzb2x2ZVdpdGg9e3Jlc29sdmVXaXRofVxuICAgICAgICAgIG9uQ2hhbmdlPXtvcHRpb25zLm9uQ2hhbmdlfVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1JvdXRlUHJvdmlkZXI+XG4gICAgICApO1xuICAgIH07XG5cbiAgcmV0dXJuIG5leHQgPT4gYXN5bmMgcHJvcHMgPT4ge1xuICAgIGNvbnN0IGhpc3RvcnkgPSBjcmVhdGVCcm93c2VySGlzdG9yeSgpO1xuICAgIGNvbnN0IHJvdXRlciA9IG9wdGlvbnMuY3JlYXRlUm91dGVyKGhpc3RvcnkpO1xuICAgIGNvbnN0IG1hdGNoZWRSb3V0ZXMgPSByb3V0ZXIuZ2V0TWF0Y2hlZFJvdXRlcyhoaXN0b3J5LmxvY2F0aW9uLnBhdGhuYW1lKTtcblxuICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQoeyAuLi5wcm9wcywgbWF0Y2hlZFJvdXRlcywgcm91dGVyIH0pO1xuXG4gICAgY29uc3QgUm91dGVyID0gY3JlYXRlUm91dGVDb21wb25lbnQocm91dGVyKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgbWF0Y2hlZFJvdXRlcyxcbiAgICAgIHJvdXRlcixcbiAgICAgIGFwcDogPFJvdXRlcj57bmV4dFByb3BzLmFwcH08L1JvdXRlcj4sXG4gICAgfTtcbiAgfTtcbn1cbiIsImltcG9ydCB0eXBlIHsgQ2xpZW50U3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSlNPTlNwb3V0KHtcbiAgaWQgPSAnYW5hbnNpLWpzb24nLFxufTogeyBpZD86IHN0cmluZyB9ID0ge30pOiBDbGllbnRTcG91dDxcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHsgZ2V0SW5pdGlhbERhdGE6IChrZXk6IHN0cmluZykgPT4gUHJvbWlzZTxhbnk+IH1cbj4ge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgZ2V0SW5pdGlhbERhdGEgPSAoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGdsb2JhbElkID0gYCR7aWR9LiR7a2V5fWA7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGxldCBlbDogSFRNTFNjcmlwdEVsZW1lbnQgfCBudWxsO1xuICAgICAgICBpZiAoKGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZ2xvYmFsSWQpIGFzIGFueSkpIHtcbiAgICAgICAgICByZXNvbHZlKGdldERhdGFGcm9tRWwoZWwsIGdsb2JhbElkKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCAoKSA9PiB7XG4gICAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChnbG9iYWxJZCkgYXMgYW55O1xuICAgICAgICAgIGlmIChlbCkgcmVzb2x2ZShnZXREYXRhRnJvbUVsKGVsLCBnbG9iYWxJZCkpO1xuICAgICAgICAgIGVsc2UgcmVqZWN0KG5ldyBFcnJvcihgZmFpbGVkIHRvIGZpbmQgRE9NIHdpdGggJHtrZXl9IHN0YXRlYCkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIHsgLi4uKGF3YWl0IG5leHQoeyAuLi5wcm9wcywgZ2V0SW5pdGlhbERhdGEgfSkpLCBnZXRJbml0aWFsRGF0YSB9O1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXREYXRhRnJvbUVsKGVsOiBIVE1MU2NyaXB0RWxlbWVudCwga2V5OiBzdHJpbmcpIHtcbiAgaWYgKGVsLnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBgIyR7a2V5fSBpcyBjb21wbGV0ZWx5IGVtcHR5LiBUaGlzIGNvdWxkIGJlIGR1ZSB0byBDU1AgaXNzdWVzLmAsXG4gICAgKTtcbiAgfVxuICByZXR1cm4gZWw/LnRleHQgPyBKU09OLnBhcnNlKGVsPy50ZXh0KSA6IHVuZGVmaW5lZDtcbn1cbiIsImNvbnN0IGFwcFNwb3V0ID1cbiAgKGFwcDogSlNYLkVsZW1lbnQpID0+XG4gIDxQIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KHByb3BzOiBQKSA9PlxuICAgIFByb21pc2UucmVzb2x2ZSh7IC4uLnByb3BzLCBhcHAgfSk7XG5cbmV4cG9ydCBkZWZhdWx0IGFwcFNwb3V0O1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBmbG9vZFNwb3V0cyB9IGZyb20gJy4vZmxvb2RTcG91dHMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBkb2N1bWVudFNwb3V0IH0gZnJvbSAnLi9zcG91dHMvZG9jdW1lbnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBkYXRhQ2xpZW50U3BvdXQgfSBmcm9tICcuL3Nwb3V0cy9kYXRhQ2xpZW50LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcm91dGVyU3BvdXQgfSBmcm9tICcuL3Nwb3V0cy9yb3V0ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBKU09OU3BvdXQgfSBmcm9tICcuL3Nwb3V0cy9qc29uLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgYXBwU3BvdXQgfSBmcm9tICcuL3Nwb3V0cy9hcHAuanMnO1xuZXhwb3J0IHR5cGUgeyBTZXJ2ZXJQcm9wcyB9IGZyb20gJy4vc3BvdXRzL3R5cGVzLmpzJztcbmV4cG9ydCB0eXBlIHsgQ2xpZW50U3BvdXQgYXMgU3BvdXQgfSBmcm9tICcuL3Nwb3V0cy90eXBlcy5qcyc7XG4iXSwibmFtZXMiOlsiaHlkcmF0ZVJvb3QiLCJmbG9vZFNwb3V0cyIsInNwb3V0cyIsInJvb3RJZCIsIl9kb2N1bWVudCRnZXRFbGVtZW50QiIsImFwcCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJkb2N1bWVudFNwb3V0Iiwib3B0aW9ucyIsIm5leHQiLCJwcm9wcyIsIm5leHRQcm9wcyIsImluaXRpYWxTdGF0ZSIsImpzeCIsIl9qc3giLCJkYXRhQ2xpZW50U3BvdXQiLCJkYXRhIiwiRGF0YVByb3ZpZGVyIiwiUHJvbWlzZSIsImFsbCIsImdldEluaXRpYWxEYXRhIiwiY2F0Y2giLCJlIiwiY29uc29sZSIsImVycm9yIiwibWFuYWdlcnMiLCJnZXRNYW5hZ2VycyIsImNoaWxkcmVuIiwiUm91dGVQcm92aWRlciIsImNyZWF0ZUJyb3dzZXJIaXN0b3J5IiwiUmVhY3QiLCJyb3V0ZXJTcG91dCIsImNyZWF0ZVJvdXRlQ29tcG9uZW50Iiwicm91dGVyIiwiUm91dGVyIiwicmVzb2x2ZVdpdGgiLCJ1c2VSZXNvbHZlV2l0aCIsIm9uQ2hhbmdlIiwiaGlzdG9yeSIsImNyZWF0ZVJvdXRlciIsIm1hdGNoZWRSb3V0ZXMiLCJnZXRNYXRjaGVkUm91dGVzIiwibG9jYXRpb24iLCJwYXRobmFtZSIsIkpTT05TcG91dCIsImlkIiwia2V5IiwiZ2xvYmFsSWQiLCJyZXNvbHZlIiwicmVqZWN0IiwiZWwiLCJnZXREYXRhRnJvbUVsIiwiYWRkRXZlbnRMaXN0ZW5lciIsIkVycm9yIiwidGV4dCIsInVuZGVmaW5lZCIsIkpTT04iLCJwYXJzZSIsImFwcFNwb3V0IiwiZGVmYXVsdCJdLCJzb3VyY2VSb290IjoiIn0=
|
package/dist/server.js
CHANGED
|
@@ -12,7 +12,7 @@ module.exports = require("@data-client/react");
|
|
|
12
12
|
/* 3 */
|
|
13
13
|
/***/ ((module) => {
|
|
14
14
|
|
|
15
|
-
module.exports = require("@data-client/ssr");
|
|
15
|
+
module.exports = require("@data-client/react/ssr");
|
|
16
16
|
|
|
17
17
|
/***/ }),
|
|
18
18
|
/* 4 */
|
|
@@ -349,7 +349,7 @@ function dataClientSpout(options = {}) {
|
|
|
349
349
|
const {
|
|
350
350
|
createPersistedStore
|
|
351
351
|
} = await Promise.resolve(/* import() */).then(__webpack_require__.t.bind(__webpack_require__, 3, 23));
|
|
352
|
-
const [
|
|
352
|
+
const [ServerDataProvider, useReadyCacheState, controller, store] = createPersistedStore(managers);
|
|
353
353
|
const nextProps = await next({
|
|
354
354
|
...props,
|
|
355
355
|
controller,
|
|
@@ -361,7 +361,7 @@ function dataClientSpout(options = {}) {
|
|
|
361
361
|
...nextProps.initData,
|
|
362
362
|
dataclient: useReadyCacheState
|
|
363
363
|
},
|
|
364
|
-
app: /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(
|
|
364
|
+
app: /*#__PURE__*/(0,jsx_runtime_namespaceObject.jsx)(ServerDataProvider, {
|
|
365
365
|
children: nextProps.app
|
|
366
366
|
}),
|
|
367
367
|
// TODO: figure out how to only inject in next and not have to also put here
|
|
@@ -531,4 +531,4 @@ const appSpout = app => props => Promise.resolve({
|
|
|
531
531
|
module.exports = __webpack_exports__;
|
|
532
532
|
/******/ })()
|
|
533
533
|
;
|
|
534
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDRixDQUFDLENBQUM7VUFDaEIsT0FBTyxJQUFJO1FBQ2I7TUFDRixDQUFDO01BQ0RnQyxPQUFPLENBQUMyQyxJQUFJLGVBQ1Z2QyxtQ0FBQSxDQUFDa0csdUNBQVE7UUFBQTFHLFFBQUEsZUFDUFEsbUNBQUEsQ0FBQ3dHLE1BQU0sSUFBRTtNQUFDLEdBREdELFFBRUwsQ0FDWixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsT0FBTztNQUNMLEdBQUczRSxTQUFTO01BQ1poQztJQUNGLENBQUM7RUFDSCxDQUFDO0FBQ0g7O0FDdERBLE1BQU1rSCxRQUFRLEdBQ1gxSixHQUFnQixJQUNPaUUsS0FBUSxJQUM5QjJFLE9BQU8sQ0FBQ2UsT0FBTyxDQUFDO0VBQUUsR0FBRzFGLEtBQUs7RUFBRWpFO0FBQUksQ0FBQyxDQUFDO0FBRXRDLGlEQUFlMEosUUFBUTs7QUNQK0I7QUFDaUI7QUFDSTtBQUNaO0FBQ0k7QUFDSTtBQUNSO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJAZGF0YS1jbGllbnQvcmVhY3RcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJAZGF0YS1jbGllbnQvc3NyXCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGltcG9ydCBcIkBhbnQtZGVzaWduL2Nzc2luanNcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvY3JlYXRlIGZha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS9leHRlcm5hbCBub2RlLWNvbW1vbmpzIFwiY3J5cHRvXCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3QtZG9tL3NlcnZlclwiIiwid2VicGFjazovL0BhbmFuc2kvY29yZS8uL3NyYy9sYXlTcG91dHMudHN4Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS9leHRlcm5hbCBjb21tb25qcyBcInJlYWN0XCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9jc3AudHMiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3QvanN4LXJ1bnRpbWVcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL0RvY3VtZW50Q29tcG9uZW50LnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL2RvY3VtZW50LnNlcnZlci50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9kYXRhQ2xpZW50LnNlcnZlci50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9hbnRkLnNlcnZlci50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwiQGFuYW5zaS9yb3V0ZXJcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJoaXN0b3J5XCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9yb3V0ZXIuc2VydmVyLnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL3ByZWZldGNoLnNlcnZlci50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9qc29uLnNlcnZlci50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9hcHAuc2VydmVyLnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvaW5kZXguc2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIkBkYXRhLWNsaWVudC9yZWFjdFwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJAZGF0YS1jbGllbnQvc3NyXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gaW1wb3J0KFwiQGFudC1kZXNpZ24vY3NzaW5qc1wiKTs7IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwidmFyIGdldFByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mID8gKG9iaikgPT4gKE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopKSA6IChvYmopID0+IChvYmouX19wcm90b19fKTtcbnZhciBsZWFmUHJvdG90eXBlcztcbi8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuLy8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4vLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbi8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuLy8gbW9kZSAmIDE2OiByZXR1cm4gdmFsdWUgd2hlbiBpdCdzIFByb21pc2UtbGlrZVxuLy8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuX193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcblx0aWYobW9kZSAmIDEpIHZhbHVlID0gdGhpcyh2YWx1ZSk7XG5cdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG5cdGlmKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUpIHtcblx0XHRpZigobW9kZSAmIDQpICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcblx0XHRpZigobW9kZSAmIDE2KSAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHZhbHVlO1xuXHR9XG5cdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG5cdHZhciBkZWYgPSB7fTtcblx0bGVhZlByb3RvdHlwZXMgPSBsZWFmUHJvdG90eXBlcyB8fCBbbnVsbCwgZ2V0UHJvdG8oe30pLCBnZXRQcm90byhbXSksIGdldFByb3RvKGdldFByb3RvKV07XG5cdGZvcih2YXIgY3VycmVudCA9IG1vZGUgJiAyICYmIHZhbHVlOyB0eXBlb2YgY3VycmVudCA9PSAnb2JqZWN0JyAmJiAhfmxlYWZQcm90b3R5cGVzLmluZGV4T2YoY3VycmVudCk7IGN1cnJlbnQgPSBnZXRQcm90byhjdXJyZW50KSkge1xuXHRcdE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGN1cnJlbnQpLmZvckVhY2goKGtleSkgPT4gKGRlZltrZXldID0gKCkgPT4gKHZhbHVlW2tleV0pKSk7XG5cdH1cblx0ZGVmWydkZWZhdWx0J10gPSAoKSA9PiAodmFsdWUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGRlZik7XG5cdHJldHVybiBucztcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwiY3J5cHRvXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwicmVhY3QtZG9tL3NlcnZlclwiKTsiLCJpbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyByZW5kZXJUb1BpcGVhYmxlU3RyZWFtIGFzIHJlYWN0UmVuZGVyIH0gZnJvbSAncmVhY3QtZG9tL3NlcnZlcic7XG5cbmltcG9ydCB0eXBlIHsgUmVuZGVyIH0gZnJvbSAnLi9zY3JpcHRzL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgU2VydmVyUHJvcHMgfSBmcm9tICcuL3Nwb3V0cy90eXBlcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxheVNwb3V0cyhcbiAgc3BvdXRzOiAocHJvcHM6IFNlcnZlclByb3BzKSA9PiBQcm9taXNlPHtcbiAgICBhcHA6IEpTWC5FbGVtZW50O1xuICB9PixcbiAge1xuICAgIHRpbWVvdXRNUyA9IDEwMDAwLFxuICAgIG9uRXJyb3IsXG4gIH06IHsgdGltZW91dE1TPzogbnVtYmVyOyBvbkVycm9yPzogKGVycm9yOiB1bmtub3duKSA9PiB2b2lkIH0gPSB7fSxcbikge1xuICBjb25zdCByZW5kZXI6IFJlbmRlciA9IGFzeW5jIChjbGllbnRNYW5pZmVzdCwgcmVxLCByZXMpID0+IHtcbiAgICBjb25zdCBub25jZSA9IGNyeXB0by5yYW5kb21CeXRlcygxNikudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgYXBwIH0gPSBhd2FpdCBzcG91dHMoeyBjbGllbnRNYW5pZmVzdCwgcmVxLCByZXMsIG5vbmNlIH0pO1xuXG4gICAgICBsZXQgZGlkRXJyb3IgPSBmYWxzZTtcbiAgICAgIGNvbnN0IHsgcGlwZSwgYWJvcnQgfSA9IHJlYWN0UmVuZGVyKGFwcCwge1xuICAgICAgICBub25jZSxcbiAgICAgICAgLy9ib290c3RyYXBTY3JpcHRzOiBhc3NldHMuZmlsdGVyKGFzc2V0ID0+IGFzc2V0LmVuZHNXaXRoKCcuanMnKSksXG4gICAgICAgIG9uU2hlbGxSZWFkeSgpIHtcbiAgICAgICAgICAvL21hbmFnZXJzLmZvckVhY2gobWFuYWdlciA9PiBtYW5hZ2VyLmNsZWFudXAoKSk7XG4gICAgICAgICAgLy8gSWYgc29tZXRoaW5nIGVycm9yZWQgYmVmb3JlIHdlIHN0YXJ0ZWQgc3RyZWFtaW5nLCB3ZSBzZXQgdGhlIGVycm9yIGNvZGUgYXBwcm9wcmlhdGVseS5cbiAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IGRpZEVycm9yID8gNTAwIDogMjAwO1xuICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKTtcbiAgICAgICAgICBwaXBlKHJlcyk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uU2hlbGxFcnJvcigpIHtcbiAgICAgICAgICBkaWRFcnJvciA9IHRydWU7XG4gICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XG4gICAgICAgICAgcGlwZShyZXMpO1xuICAgICAgICB9LFxuICAgICAgICBvbkVycm9yKGU6IGFueSkge1xuICAgICAgICAgIGRpZEVycm9yID0gdHJ1ZTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xuICAgICAgICAgIC8vcGlwZShyZXMpOyBSZW1vdmluZyB0aGlzIGF2b2lkcywgXCJSZWFjdCBjdXJyZW50bHkgb25seSBzdXBwb3J0cyBwaXBpbmcgdG8gb25lIHdyaXRhYmxlIHN0cmVhbS5cIlxuICAgICAgICAgIGlmIChvbkVycm9yKSBvbkVycm9yKGUpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICAvLyBBYmFuZG9uIGFuZCBzd2l0Y2ggdG8gY2xpZW50IHJlbmRlcmluZyBpZiBlbm91Z2ggdGltZSBwYXNzZXMuXG4gICAgICAvLyBUcnkgbG93ZXJpbmcgdGhpcyB0byBzZWUgdGhlIGNsaWVudCByZWNvdmVyLlxuICAgICAgc2V0VGltZW91dChcbiAgICAgICAgKCkgPT4gKGFib3J0IGFzIGFueSkoYFRpbWVvdXQgb2YgJHt0aW1lb3V0TVN9bXMgZXhjZWVkZWRgKSxcbiAgICAgICAgdGltZW91dE1TLFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICBpZiAob25FcnJvcikgb25FcnJvcihlKTtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9O1xuICByZXR1cm4gcmVuZGVyO1xufVxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdFwiKTsiLCJleHBvcnQgaW50ZXJmYWNlIFBvbGljeSB7XG4gIFtkaXJlY3RpdmU6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG4vLyBUT0RPOiBtZW1vaXplIHRoaXNcbmV4cG9ydCBmdW5jdGlvbiBidWlsZFBvbGljeShwb2xpY3lPYmo6IFBvbGljeSkge1xuICByZXR1cm4gT2JqZWN0LmtleXMocG9saWN5T2JqKVxuICAgIC5tYXAoa2V5ID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9XG4gICAgICAgIEFycmF5LmlzQXJyYXkocG9saWN5T2JqW2tleV0pID9cbiAgICAgICAgICBbLi4ubmV3IFNldChwb2xpY3lPYmpba2V5XSkudmFsdWVzKCldLmZpbHRlcih2ID0+IHYpLmpvaW4oJyAnKVxuICAgICAgICA6IHBvbGljeU9ialtrZXldO1xuXG4gICAgICAvLyBtb3ZlIHN0cmljdCBkeW5hbWljIHRvIHRoZSBlbmQgb2YgdGhlIHBvbGljeSBpZiBpdCBleGlzdHMgdG8gYmUgYmFja3dhcmRzIGNvbXBhdGlibGUgd2l0aCBjc3AyXG4gICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0hlYWRlcnMvQ29udGVudC1TZWN1cml0eS1Qb2xpY3kvc2NyaXB0LXNyYyNzdHJpY3QtZHluYW1pY1xuICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnICYmIHZhbC5pbmNsdWRlcyhcIidzdHJpY3QtZHluYW1pYydcIikpIHtcbiAgICAgICAgY29uc3QgbmV3VmFsID0gYCR7dmFsXG4gICAgICAgICAgLnJlcGxhY2UoL1xccz8nc3RyaWN0LWR5bmFtaWMnXFxzPy9naSwgJyAnKVxuICAgICAgICAgIC50cmltKCl9ICdzdHJpY3QtZHluYW1pYydgO1xuICAgICAgICByZXR1cm4gYCR7a2V5fSAke25ld1ZhbH1gO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYCR7a2V5fSAke3ZhbH1gO1xuICAgIH0pXG4gICAgLmpvaW4oJzsgJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBqb2luTm9uY2UocG9saWN5T2JqOiBQb2xpY3ksIG5vbmNlPzogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gIGlmICghbm9uY2UpIHJldHVybiBwb2xpY3lPYmo7XG4gIGNvbnN0IHBvbGljeSA9IHtcbiAgICAuLi5wb2xpY3lPYmosXG4gIH07XG4gIGlmICh0eXBlb2YgcG9saWN5WydzY3JpcHQtc3JjJ10gPT09ICdzdHJpbmcnKSB7XG4gICAgcG9saWN5WydzY3JpcHQtc3JjJ10gPSBbcG9saWN5WydzY3JpcHQtc3JjJ10sIGAnbm9uY2UtJHtub25jZX0nYF07XG4gIH0gZWxzZSB7XG4gICAgcG9saWN5WydzY3JpcHQtc3JjJ10gPSBbLi4ucG9saWN5WydzY3JpcHQtc3JjJ10sIGAnbm9uY2UtJHtub25jZX0nYF07XG4gIH1cbiAgcmV0dXJuIHBvbGljeTtcbn1cbiIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7IiwidHlwZSBQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbiAgYXNzZXRzOiB7IGhyZWY6IHN0cmluZzsgYXM/OiBzdHJpbmc7IHJlbD86IHN0cmluZyB9W107XG4gIGhlYWQ/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIGV4dHJhU3R5bGU6IFJlYWN0LlJlYWN0Tm9kZTtcbiAgc2NyaXB0cz86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgdGl0bGU6IHN0cmluZztcbiAgcm9vdElkPzogc3RyaW5nO1xuICBjaGFyU2V0Pzogc3RyaW5nO1xuICBsYW5nPzogc3RyaW5nO1xufTtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIERvY3VtZW50KHtcbiAgYXNzZXRzLFxuICBoZWFkID0gZGVmYXVsdEhlYWQsXG4gIGNoaWxkcmVuLFxuICB0aXRsZSxcbiAgcm9vdElkID0gJ2FuYW5zaS1yb290JyxcbiAgY2hhclNldCA9ICd1dGYtOCcsXG4gIHNjcmlwdHMgPSBudWxsLFxuICBleHRyYVN0eWxlLFxuICBsYW5nLFxufTogUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8aHRtbCBsYW5nPXtsYW5nfT5cbiAgICAgIDxoZWFkPlxuICAgICAgICA8bWV0YSBjaGFyU2V0PXtjaGFyU2V0fSAvPlxuICAgICAgICB7aGVhZH1cbiAgICAgICAge2V4dHJhU3R5bGV9XG4gICAgICAgIHthc3NldHMubWFwKChhc3NldCwgaSkgPT4gKFxuICAgICAgICAgIDxsaW5rIGtleT17aX0gcmVsPVwicHJlbG9hZFwiIHsuLi5hc3NldH0gLz5cbiAgICAgICAgKSl9XG4gICAgICAgIDx0aXRsZT57dGl0bGV9PC90aXRsZT5cbiAgICAgIDwvaGVhZD5cbiAgICAgIDxib2R5PlxuICAgICAgICA8ZGl2IGlkPXtyb290SWR9PntjaGlsZHJlbn08L2Rpdj5cbiAgICAgICAge3NjcmlwdHN9XG4gICAgICAgIHthc3NldHNcbiAgICAgICAgICAuZmlsdGVyKCh7IGhyZWYgfSkgPT4gaHJlZi5lbmRzV2l0aCgnLmpzJykpXG4gICAgICAgICAgLm1hcCgoeyBocmVmIH0sIGkpID0+IChcbiAgICAgICAgICAgIDxzY3JpcHQga2V5PXtpfSBzcmM9e2hyZWZ9IGFzeW5jIC8+XG4gICAgICAgICAgKSl9XG4gICAgICA8L2JvZHk+XG4gICAgPC9odG1sPlxuICApO1xufVxuY29uc3QgZGVmYXVsdEhlYWQgPSAoXG4gIDw+XG4gICAgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCIgY29udGVudD1cIndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xXCIgLz5cbiAgICA8bGlua1xuICAgICAgcmVsPVwic2hvcnRjdXQgaWNvblwiXG4gICAgICBocmVmPXtgJHtwcm9jZXNzLmVudi5XRUJQQUNLX1BVQkxJQ19QQVRIID8/ICcvJ31mYXZpY29uLmljb2B9XG4gICAgLz5cbiAgPC8+XG4pO1xuIiwiaW1wb3J0IHR5cGUgeyBSb3V0ZSB9IGZyb20gJ0BhbmFuc2kvcm91dGVyJztcbmltcG9ydCB7IFJlcXVlc3QgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTdGF0c0NodW5rR3JvdXAgfSBmcm9tICd3ZWJwYWNrJztcblxuaW1wb3J0IHsgYnVpbGRQb2xpY3ksIGpvaW5Ob25jZSwgUG9saWN5IH0gZnJvbSAnLi9jc3AuanMnO1xuaW1wb3J0IERvY3VtZW50IGZyb20gJy4vRG9jdW1lbnRDb21wb25lbnQuanMnO1xuaW1wb3J0IHR5cGUgeyBTZXJ2ZXJTcG91dCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG50eXBlIE5lZWRlZE5leHQgPSB7XG4gIG1hdGNoZWRSb3V0ZXM6IFJvdXRlPGFueT5bXTtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHNjcmlwdHM/OiBSZWFjdC5SZWFjdE5vZGVbXTtcbiAgZXh0cmFTdHlsZT86IFJlYWN0LlJlYWN0Tm9kZVtdO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRG9jdW1lbnRTcG91dChvcHRpb25zOiB7XG4gIGhlYWQ/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGxhbmc/OiBzdHJpbmc7XG4gIHJvb3RJZD86IHN0cmluZztcbiAgY2hhclNldD86IHN0cmluZztcbiAgY3NQb2xpY3k/OiBQb2xpY3k7XG59KTogU2VydmVyU3BvdXQ8UmVjb3JkPHN0cmluZywgdW5rbm93bj4sIFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBOZWVkZWROZXh0PiB7XG4gIHJldHVybiBuZXh0ID0+IGFzeW5jIHByb3BzID0+IHtcbiAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KHByb3BzKTtcblxuICAgIGNvbnN0IHB1YmxpY1BhdGggPSBwcm9wcy5jbGllbnRNYW5pZmVzdC5wdWJsaWNQYXRoO1xuXG4gICAgaWYgKFxuICAgICAgT2JqZWN0LmtleXMocHJvcHMuY2xpZW50TWFuaWZlc3Q/LmVudHJ5cG9pbnRzID8/IHt9KS5sZW5ndGggPCAxIHx8XG4gICAgICBwdWJsaWNQYXRoID09PSB1bmRlZmluZWRcbiAgICApXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01hbmlmZXN0IG1pc3NpbmcgZW50cmllcyBuZWVkZWQnKTtcblxuICAgIC8vIFRPRE86IGNvbnNpZGVyIHVzaW5nIHRoaXMgcGFja2FnZSBmb3IgYnVpbGQgc3RhdHMgaW4gZnV0dXJlOlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC90cmVlL21haW4vcGFja2FnZXMvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrXG4gICAgY29uc3QgYXNzZXRNYXAgPSAoYXNzZXRzOiB7IG5hbWU6IHN0cmluZzsgc2l6ZT86IG51bWJlciB9W10pID0+XG4gICAgICBhc3NldHMubWFwKCh7IG5hbWUgfSkgPT4gYCR7cHVibGljUGF0aH0ke25hbWV9YCk7XG5cbiAgICBjb25zdCBhc3NldExpc3Q6IHN0cmluZ1tdID0gW107XG4gICAgT2JqZWN0LnZhbHVlcyhwcm9wcy5jbGllbnRNYW5pZmVzdD8uZW50cnlwb2ludHMgPz8ge30pLmZvckVhY2goXG4gICAgICBlbnRyeXBvaW50ID0+IHtcbiAgICAgICAgYXNzZXRMaXN0LnB1c2goLi4uYXNzZXRNYXAoZW50cnlwb2ludC5hc3NldHMgPz8gW10pKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgICBuZXcgU2V0KFxuICAgICAgYXNzZXRNYXAoXG4gICAgICAgIE9iamVjdC52YWx1ZXMocHJvcHMuY2xpZW50TWFuaWZlc3QubmFtZWRDaHVua0dyb3VwcyA/PyB7fSlcbiAgICAgICAgICAuZmlsdGVyKCh7IG5hbWUgfSkgPT5cbiAgICAgICAgICAgIG5leHRQcm9wcy5tYXRjaGVkUm91dGVzLnNvbWUocm91dGUgPT4gbmFtZT8uaW5jbHVkZXMocm91dGUubmFtZSkpLFxuICAgICAgICAgIClcbiAgICAgICAgICAuZmxhdE1hcChjaHVuayA9PiBbXG4gICAgICAgICAgICAuLi4oY2h1bmsuYXNzZXRzID8/IFtdKSxcbiAgICAgICAgICAgIC8vIGFueSBjaHVuayBwcmVsb2Fkc1xuICAgICAgICAgICAgLi4uY2hpbGRyZW5Bc3NldHMoY2h1bmspLFxuICAgICAgICAgIF0pLFxuICAgICAgKSxcbiAgICApLmZvckVhY2goYXNzZXQgPT4gYXNzZXRMaXN0LnB1c2goYXNzZXQpKTtcblxuICAgIC8vIGZpbmQgYWRkaXRpb25hbCBhc3NldHMgdG8gcHJlbG9hZCBiYXNlZCBvbiBtYXRjaGVkIHJvdXRlXG4gICAgY29uc3QgYXNzZXRzOiB7XG4gICAgICBocmVmOiBzdHJpbmc7XG4gICAgICBhcz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIHJlbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB9W10gPSBhc3NldExpc3RcbiAgICAgIC5maWx0ZXIoYXNzZXQgPT4gIWFzc2V0LmVuZHNXaXRoKCcuaG90LXVwZGF0ZS5qcycpKVxuICAgICAgLm1hcChhc3NldCA9PlxuICAgICAgICBhc3NldC5lbmRzV2l0aCgnLmNzcycpID8geyBocmVmOiBhc3NldCwgcmVsOiAnc3R5bGVzaGVldCcgfVxuICAgICAgICA6IGFzc2V0LmVuZHNXaXRoKCcuanMnKSA/IHsgaHJlZjogYXNzZXQsIGFzOiAnc2NyaXB0JyB9XG4gICAgICAgIDogeyBocmVmOiBhc3NldCB9LFxuICAgICAgKTtcblxuICAgIGlmIChvcHRpb25zLmNzUG9saWN5KSB7XG4gICAgICBjb25zdCBodHRwRXF1aXYgPVxuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nID9cbiAgICAgICAgICAnQ29udGVudC1TZWN1cml0eS1Qb2xpY3knXG4gICAgICAgIDogJ0NvbnRlbnQtU2VjdXJpdHktUG9saWN5LVJlcG9ydC1Pbmx5JztcblxuICAgICAgcHJvcHMucmVzLnNldEhlYWRlcihcbiAgICAgICAgaHR0cEVxdWl2LFxuICAgICAgICBidWlsZFBvbGljeShqb2luTm9uY2Uob3B0aW9ucy5jc1BvbGljeSwgcHJvcHMubm9uY2UpKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5leHRQcm9wcyxcbiAgICAgIGFwcDogKFxuICAgICAgICA8RG9jdW1lbnRcbiAgICAgICAgICB7Li4ub3B0aW9uc31cbiAgICAgICAgICBleHRyYVN0eWxlPXtuZXh0UHJvcHMuZXh0cmFTdHlsZX1cbiAgICAgICAgICB0aXRsZT17bmV4dFByb3BzLnRpdGxlID8/IG9wdGlvbnMudGl0bGV9XG4gICAgICAgICAgYXNzZXRzPXthc3NldHN9XG4gICAgICAgICAgcm9vdElkPXtvcHRpb25zLnJvb3RJZH1cbiAgICAgICAgICBzY3JpcHRzPXtuZXh0UHJvcHMuc2NyaXB0c31cbiAgICAgICAgPlxuICAgICAgICAgIHtuZXh0UHJvcHMuYXBwfVxuICAgICAgICA8L0RvY3VtZW50PlxuICAgICAgKSxcbiAgICB9O1xuICB9O1xufVxuXG5mdW5jdGlvbiBjaGlsZHJlbkFzc2V0cyhjaHVuazogU3RhdHNDaHVua0dyb3VwKSB7XG4gIHJldHVybiBjaHVuay5jaGlsZHJlbiA/XG4gICAgICBPYmplY3QudmFsdWVzKGNodW5rLmNoaWxkcmVuKS5mbGF0TWFwKHByZWxvYWQgPT5cbiAgICAgICAgcHJlbG9hZC5mbGF0TWFwKGMgPT4gYy5hc3NldHMgPz8gW10pLFxuICAgICAgKVxuICAgIDogW107XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENvbnRyb2xsZXIsXG4gIHR5cGUgTWFuYWdlcixcbiAgdHlwZSBTdGF0ZSxcbiAgdHlwZSBTdG9yZSxcbn0gZnJvbSAnQGRhdGEtY2xpZW50L3JlYWN0JztcblxuaW1wb3J0IHR5cGUgeyBTZXJ2ZXJTcG91dCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkYXRhQ2xpZW50U3BvdXQoXG4gIG9wdGlvbnM6IHtcbiAgICBnZXRNYW5hZ2Vycz86ICgpID0+IE1hbmFnZXJbXTtcbiAgfSA9IHt9LFxuKTogU2VydmVyU3BvdXQ8XG4gIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICB7IGNvbnRyb2xsZXI6IENvbnRyb2xsZXIgfSAmIHsgc3RvcmU6IFN0b3JlPFN0YXRlPHVua25vd24+PiB9LFxuICB7IGluaXREYXRhPzogUmVjb3JkPHN0cmluZywgKCkgPT4gdW5rbm93bj47IHNjcmlwdHM/OiBSZWFjdC5SZWFjdE5vZGVbXSB9XG4+IHtcbiAgcmV0dXJuIG5leHQgPT4gYXN5bmMgcHJvcHMgPT4ge1xuICAgIGNvbnN0IG1hbmFnZXJzID0gb3B0aW9ucz8uZ2V0TWFuYWdlcnM/LigpID8/IFtcbiAgICAgIG5ldyAoYXdhaXQgaW1wb3J0KCdAZGF0YS1jbGllbnQvcmVhY3QnKSkuTmV0d29ya01hbmFnZXIoKSxcbiAgICBdO1xuICAgIGNvbnN0IHsgY3JlYXRlUGVyc2lzdGVkU3RvcmUgfSA9IGF3YWl0IGltcG9ydCgnQGRhdGEtY2xpZW50L3NzcicpO1xuICAgIGNvbnN0IFtTZXJ2ZXJDYWNoZVByb3ZpZGVyLCB1c2VSZWFkeUNhY2hlU3RhdGUsIGNvbnRyb2xsZXIsIHN0b3JlXSA9XG4gICAgICBjcmVhdGVQZXJzaXN0ZWRTdG9yZShtYW5hZ2Vycyk7XG5cbiAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY29udHJvbGxlcixcbiAgICAgIHN0b3JlLFxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5uZXh0UHJvcHMsXG4gICAgICBpbml0RGF0YToge1xuICAgICAgICAuLi5uZXh0UHJvcHMuaW5pdERhdGEsXG4gICAgICAgIGRhdGFjbGllbnQ6IHVzZVJlYWR5Q2FjaGVTdGF0ZSxcbiAgICAgIH0sXG4gICAgICBhcHA6IDxTZXJ2ZXJDYWNoZVByb3ZpZGVyPntuZXh0UHJvcHMuYXBwfTwvU2VydmVyQ2FjaGVQcm92aWRlcj4sXG4gICAgICAvLyBUT0RPOiBmaWd1cmUgb3V0IGhvdyB0byBvbmx5IGluamVjdCBpbiBuZXh0IGFuZCBub3QgaGF2ZSB0byBhbHNvIHB1dCBoZXJlXG4gICAgICBjb250cm9sbGVyLFxuICAgICAgc3RvcmUsXG4gICAgfTtcbiAgfTtcbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgU2VydmVyU3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxudHlwZSBOZWVkZWROZXh0ID0ge1xuICBpbml0RGF0YT86IFJlY29yZDxzdHJpbmcsICgpID0+IHVua25vd24+O1xuICBzY3JpcHRzPzogUmVhY3QuUmVhY3ROb2RlW107XG4gIGV4dHJhU3R5bGU/OiBSZWFjdC5SZWFjdE5vZGVbXTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFudGRTcG91dCgpOiBTZXJ2ZXJTcG91dDxcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBOZWVkZWROZXh0XG4+IHtcbiAgcmV0dXJuIG5leHQgPT4gYXN5bmMgcHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgY3JlYXRlQ2FjaGUsIGV4dHJhY3RTdHlsZSwgU3R5bGVQcm92aWRlciB9ID0gYXdhaXQgaW1wb3J0KFxuICAgICAgJ0BhbnQtZGVzaWduL2Nzc2luanMnXG4gICAgKTtcbiAgICBjb25zdCBjYWNoZSA9IGNyZWF0ZUNhY2hlKCk7XG5cbiAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KHByb3BzKTtcblxuICAgIGNvbnN0IHNjcmlwdHM6IFJlYWN0LlJlYWN0Tm9kZVtdID0gbmV4dFByb3BzLnNjcmlwdHMgPz8gW107XG5cbiAgICBjb25zdCBBbnRkU2hlZXRzID0gKCk6IEpTWC5FbGVtZW50ID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxzY3JpcHRcbiAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgX19odG1sOiBgPC9zY3JpcHQ+JHtleHRyYWN0U3R5bGUoY2FjaGUpfTxzY3JpcHQ+YCxcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9O1xuICAgIC8vIHVuZm9ydHVuYXRlbHkgd2UgaGF2ZSB0byBpbmplY3QgdGhpcyBhZnRlciB0aGUgZW50aXJlIGNvbnRlbnQgaGFzIHN0cmVhbWVkIGluIG9yIGl0IGRvZXNuJ3QgY29ycmVjdGx5IHBvcHVsYXRlXG4gICAgLy8gc2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9jc3NpbmpzL2lzc3Vlcy83OVxuICAgIHNjcmlwdHMucHVzaCg8QW50ZFNoZWV0cyAvPik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgYXBwOiA8U3R5bGVQcm92aWRlciBjYWNoZT17Y2FjaGV9PntuZXh0UHJvcHMuYXBwfTwvU3R5bGVQcm92aWRlcj4sXG4gICAgICBzY3JpcHRzLFxuICAgIH07XG4gIH07XG59XG4iLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcIkBhbmFuc2kvcm91dGVyXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwiaGlzdG9yeVwiKTsiLCJpbXBvcnQgeyBSb3V0ZSwgUm91dGVQcm92aWRlciwgUm91dGVDb250cm9sbGVyIH0gZnJvbSAnQGFuYW5zaS9yb3V0ZXInO1xuaW1wb3J0IHsgY3JlYXRlTWVtb3J5SGlzdG9yeSB9IGZyb20gJ2hpc3RvcnknO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHR5cGUgeyBDcmVhdGVSb3V0ZXIsIFNlcnZlclNwb3V0IH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJvdXRlclNwb3V0PFJlc29sdmVXaXRoPihvcHRpb25zOiB7XG4gIHJlc29sdmVXaXRoPzogYW55O1xuICB1c2VSZXNvbHZlV2l0aDogKCkgPT4gUmVzb2x2ZVdpdGg7XG4gIGNyZWF0ZVJvdXRlcjogQ3JlYXRlUm91dGVyPFJlc29sdmVXaXRoPjtcbn0pOiBTZXJ2ZXJTcG91dDxcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHtcbiAgICBtYXRjaGVkUm91dGVzOiBSb3V0ZTxSZXNvbHZlV2l0aD5bXTtcbiAgICBzZWFyY2hQYXJhbXM6IFVSTFNlYXJjaFBhcmFtcztcbiAgfSAmIHtcbiAgICByb3V0ZXI6IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxSZXNvbHZlV2l0aCwgYW55Pj47XG4gIH1cbj4ge1xuICBjb25zdCBjcmVhdGVSb3V0ZUNvbXBvbmVudCA9IChcbiAgICByb3V0ZXI6IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxSZXNvbHZlV2l0aCwgYW55Pj4sXG4gICkgPT5cbiAgICBmdW5jdGlvbiBSb3V0ZXIoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICAgICAgY29uc3QgcmVzb2x2ZVdpdGggPSBvcHRpb25zLnVzZVJlc29sdmVXaXRoKCk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxSb3V0ZVByb3ZpZGVyIHJvdXRlcj17cm91dGVyfSByZXNvbHZlV2l0aD17cmVzb2x2ZVdpdGh9PlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9Sb3V0ZVByb3ZpZGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gIHJldHVybiBuZXh0ID0+IGFzeW5jIHByb3BzID0+IHtcbiAgICBjb25zdCB1cmwgPSBwcm9wcy5yZXEudXJsIHx8ICcnO1xuICAgIGNvbnN0IHBhcnRzID0gdXJsLnNwbGl0KCc/JywgMik7XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhwYXJ0cy5sZW5ndGggPCAyID8gJycgOiBwYXJ0c1sxXSk7XG4gICAgY29uc3Qgcm91dGVyID0gb3B0aW9ucy5jcmVhdGVSb3V0ZXIoXG4gICAgICBjcmVhdGVNZW1vcnlIaXN0b3J5KHsgaW5pdGlhbEVudHJpZXM6IFt1cmxdIH0pLFxuICAgICk7XG4gICAgY29uc3QgbWF0Y2hlZFJvdXRlczogUm91dGU8UmVzb2x2ZVdpdGg+W10gPSByb3V0ZXIuZ2V0TWF0Y2hlZFJvdXRlcyh1cmwpO1xuXG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dCh7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIG1hdGNoZWRSb3V0ZXMsXG4gICAgICByb3V0ZXIsXG4gICAgICBzZWFyY2hQYXJhbXMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBSb3V0ZXIgPSBjcmVhdGVSb3V0ZUNvbXBvbmVudChyb3V0ZXIpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5leHRQcm9wcyxcbiAgICAgIGFwcDogPFJvdXRlcj57bmV4dFByb3BzLmFwcH08L1JvdXRlcj4sXG4gICAgICAvLyBUT0RPOiBmaWd1cmUgb3V0IGhvdyB0byBvbmx5IGluamVjdCBpbiBuZXh0IGFuZCBub3QgaGF2ZSB0byBhbHNvIHB1dCBoZXJlXG4gICAgICBtYXRjaGVkUm91dGVzLFxuICAgICAgcm91dGVyLFxuICAgICAgc2VhcmNoUGFyYW1zLFxuICAgIH07XG4gIH07XG59XG4iLCJpbXBvcnQgeyBSb3V0ZSB9IGZyb20gJ0BhbmFuc2kvcm91dGVyJztcblxuaW1wb3J0IHR5cGUgeyBSZXNvbHZlUHJvcHMsIFNlcnZlclByb3BzIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbnR5cGUgTmVlZGVkUHJvcHM8Um91dGVXaXRoPiA9IHtcbiAgbWF0Y2hlZFJvdXRlczogUm91dGU8Um91dGVXaXRoPltdO1xuICBzZWFyY2hQYXJhbXM6IFVSTFNlYXJjaFBhcmFtcztcbn0gJiBSZXNvbHZlUHJvcHM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHByZWZldGNoU3BvdXQ8RiBleHRlbmRzIHN0cmluZz4oZmllbGQ6IEYpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxcbiAgICBSb3V0ZVdpdGgsXG4gICAgTiBleHRlbmRzIE5lZWRlZFByb3BzPFJvdXRlV2l0aD4sXG4gICAgSSBleHRlbmRzIFNlcnZlclByb3BzLFxuICA+KFxuICAgIG5leHQ6IChwcm9wczogSSkgPT4gUHJvbWlzZTxcbiAgICAgIHtcbiAgICAgICAgW0sgaW4gRl06IFJvdXRlV2l0aDtcbiAgICAgIH0gJiBOXG4gICAgPixcbiAgKSB7XG4gICAgcmV0dXJuIGFzeW5jIChwcm9wczogSSkgPT4ge1xuICAgICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHRvRmV0Y2g6IFByb21pc2U8dW5rbm93bj5bXSA9IFtdO1xuICAgICAgICBuZXh0UHJvcHMubWF0Y2hlZFJvdXRlcy5mb3JFYWNoKHJvdXRlID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHJvdXRlLnJlc29sdmVEYXRhID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0b0ZldGNoLnB1c2goXG4gICAgICAgICAgICAgIHJvdXRlLnJlc29sdmVEYXRhKFxuICAgICAgICAgICAgICAgIG5leHRQcm9wc1tmaWVsZF0sXG4gICAgICAgICAgICAgICAgcm91dGUsXG4gICAgICAgICAgICAgICAgbmV4dFByb3BzLnNlYXJjaFBhcmFtcyxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodG9GZXRjaCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV4dFByb3BzO1xuICAgIH07XG4gIH07XG59XG4iLCJpbXBvcnQgUmVhY3QsIHsgU3VzcGVuc2UgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgU2VydmVyU3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxudHlwZSBOZWVkZWROZXh0ID0ge1xuICBpbml0RGF0YT86IFJlY29yZDxzdHJpbmcsICgpID0+IHVua25vd24+O1xuICBzY3JpcHRzPzogUmVhY3QuUmVhY3ROb2RlW107XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBKU09OU3BvdXQoe1xuICBpZCA9ICdhbmFuc2ktanNvbicsXG59OiB7IGlkPzogc3RyaW5nIH0gPSB7fSk6IFNlcnZlclNwb3V0PFxuICBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIE5lZWRlZE5leHRcbj4ge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG5cbiAgICBjb25zdCBzY3JpcHRzOiBSZWFjdC5SZWFjdE5vZGVbXSA9IG5leHRQcm9wcy5zY3JpcHRzID8/IFtdO1xuXG4gICAgT2JqZWN0LmVudHJpZXMobmV4dFByb3BzLmluaXREYXRhID8/IHt9KS5mb3JFYWNoKChba2V5LCB1c2VEYXRhXSkgPT4ge1xuICAgICAgY29uc3QgZ2xvYmFsSWQgPSBgJHtpZH0uJHtrZXl9YDtcbiAgICAgIGNvbnN0IFNjcmlwdCA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YTogYW55ID0gdXNlRGF0YSgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGVuY29kZWQgPSBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPHNjcmlwdFxuICAgICAgICAgICAgICBpZD17Z2xvYmFsSWR9XG4gICAgICAgICAgICAgIHR5cGU9XCJhcHBsaWNhdGlvbi9qc29uXCJcbiAgICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgICAgICBfX2h0bWw6IGVuY29kZWQsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIG5vbmNlPXtwcm9wcy5ub25jZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIC8vIFRPRE86IFVzZSB1bmlmaWVkIGxvZ2dpbmdcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBzZXJpYWxpemluZyBqc29uIGZvciAke2tleX1gKTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgc2NyaXB0cy5wdXNoKFxuICAgICAgICA8U3VzcGVuc2Uga2V5PXtnbG9iYWxJZH0+XG4gICAgICAgICAgPFNjcmlwdCAvPlxuICAgICAgICA8L1N1c3BlbnNlPixcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgc2NyaXB0cyxcbiAgICB9O1xuICB9O1xufVxuIiwiaW1wb3J0IHsgU2VydmVyUHJvcHMgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuY29uc3QgYXBwU3BvdXQgPVxuICAoYXBwOiBKU1guRWxlbWVudCkgPT5cbiAgPFAgZXh0ZW5kcyBTZXJ2ZXJQcm9wcz4ocHJvcHM6IFApID0+XG4gICAgUHJvbWlzZS5yZXNvbHZlKHsgLi4ucHJvcHMsIGFwcCB9KTtcblxuZXhwb3J0IGRlZmF1bHQgYXBwU3BvdXQ7XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIGxheVNwb3V0cyB9IGZyb20gJy4vbGF5U3BvdXRzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZG9jdW1lbnRTcG91dCB9IGZyb20gJy4vc3BvdXRzL2RvY3VtZW50LnNlcnZlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGRhdGFDbGllbnRTcG91dCB9IGZyb20gJy4vc3BvdXRzL2RhdGFDbGllbnQuc2VydmVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgYW50ZFNwb3V0IH0gZnJvbSAnLi9zcG91dHMvYW50ZC5zZXJ2ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyByb3V0ZXJTcG91dCB9IGZyb20gJy4vc3BvdXRzL3JvdXRlci5zZXJ2ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwcmVmZXRjaFNwb3V0IH0gZnJvbSAnLi9zcG91dHMvcHJlZmV0Y2guc2VydmVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSlNPTlNwb3V0IH0gZnJvbSAnLi9zcG91dHMvanNvbi5zZXJ2ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBhcHBTcG91dCB9IGZyb20gJy4vc3BvdXRzL2FwcC5zZXJ2ZXIuanMnO1xuZXhwb3J0IHR5cGUgeyBTZXJ2ZXJQcm9wcyB9IGZyb20gJy4vc3BvdXRzL3R5cGVzLmpzJztcbmV4cG9ydCB0eXBlIHsgU2VydmVyU3BvdXQgYXMgU3BvdXQgfSBmcm9tICcuL3Nwb3V0cy90eXBlcy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3NjcmlwdHMvdHlwZXMuanMnO1xuIl0sIm5hbWVzIjpbImNyeXB0byIsInJlbmRlclRvUGlwZWFibGVTdHJlYW0iLCJyZWFjdFJlbmRlciIsImxheVNwb3V0cyIsInNwb3V0cyIsInRpbWVvdXRNUyIsIm9uRXJyb3IiLCJyZW5kZXIiLCJjbGllbnRNYW5pZmVzdCIsInJlcSIsInJlcyIsIm5vbmNlIiwicmFuZG9tQnl0ZXMiLCJ0b1N0cmluZyIsImFwcCIsImRpZEVycm9yIiwicGlwZSIsImFib3J0Iiwib25TaGVsbFJlYWR5Iiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsIm9uU2hlbGxFcnJvciIsImUiLCJjb25zb2xlIiwiZXJyb3IiLCJzZXRUaW1lb3V0IiwiYnVpbGRQb2xpY3kiLCJwb2xpY3lPYmoiLCJPYmplY3QiLCJrZXlzIiwibWFwIiwia2V5IiwidmFsIiwiQXJyYXkiLCJpc0FycmF5IiwiU2V0IiwidmFsdWVzIiwiZmlsdGVyIiwidiIsImpvaW4iLCJpbmNsdWRlcyIsIm5ld1ZhbCIsInJlcGxhY2UiLCJ0cmltIiwiam9pbk5vbmNlIiwicG9saWN5IiwiRG9jdW1lbnQiLCJhc3NldHMiLCJoZWFkIiwiZGVmYXVsdEhlYWQiLCJjaGlsZHJlbiIsInRpdGxlIiwicm9vdElkIiwiY2hhclNldCIsInNjcmlwdHMiLCJleHRyYVN0eWxlIiwibGFuZyIsIl9qc3hzIiwiX2pzeCIsImFzc2V0IiwiaSIsInJlbCIsImlkIiwiaHJlZiIsImVuZHNXaXRoIiwic3JjIiwiYXN5bmMiLCJfRnJhZ21lbnQiLCJuYW1lIiwiY29udGVudCIsIl9wcm9jZXNzJGVudiRXRUJQQUNLXyIsInByb2Nlc3MiLCJlbnYiLCJXRUJQQUNLX1BVQkxJQ19QQVRIIiwiUmVhY3QiLCJqc3giLCJEb2N1bWVudFNwb3V0Iiwib3B0aW9ucyIsIm5leHQiLCJwcm9wcyIsIl9wcm9wcyRjbGllbnRNYW5pZmVzdCIsIl9wcm9wcyRjbGllbnRNYW5pZmVzdDIiLCJfcHJvcHMkY2xpZW50TWFuaWZlc3QzIiwiX3Byb3BzJGNsaWVudE1hbmlmZXN0NCIsIl9wcm9wcyRjbGllbnRNYW5pZmVzdDUiLCJfbmV4dFByb3BzJHRpdGxlIiwibmV4dFByb3BzIiwicHVibGljUGF0aCIsImVudHJ5cG9pbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJhc3NldE1hcCIsImFzc2V0TGlzdCIsImZvckVhY2giLCJlbnRyeXBvaW50IiwiX2VudHJ5cG9pbnQkYXNzZXRzIiwicHVzaCIsIm5hbWVkQ2h1bmtHcm91cHMiLCJtYXRjaGVkUm91dGVzIiwic29tZSIsInJvdXRlIiwiZmxhdE1hcCIsImNodW5rIiwiX2NodW5rJGFzc2V0cyIsImNoaWxkcmVuQXNzZXRzIiwiYXMiLCJjc1BvbGljeSIsImh0dHBFcXVpdiIsIk5PREVfRU5WIiwicHJlbG9hZCIsImMiLCJfYyRhc3NldHMiLCJkYXRhQ2xpZW50U3BvdXQiLCJfb3B0aW9ucyRnZXRNYW5hZ2VycyIsIm1hbmFnZXJzIiwiZ2V0TWFuYWdlcnMiLCJOZXR3b3JrTWFuYWdlciIsImNyZWF0ZVBlcnNpc3RlZFN0b3JlIiwiU2VydmVyQ2FjaGVQcm92aWRlciIsInVzZVJlYWR5Q2FjaGVTdGF0ZSIsImNvbnRyb2xsZXIiLCJzdG9yZSIsImluaXREYXRhIiwiZGF0YWNsaWVudCIsImFudGRTcG91dCIsIl9uZXh0UHJvcHMkc2NyaXB0cyIsImNyZWF0ZUNhY2hlIiwiZXh0cmFjdFN0eWxlIiwiU3R5bGVQcm92aWRlciIsImNhY2hlIiwiQW50ZFNoZWV0cyIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiUm91dGVQcm92aWRlciIsImNyZWF0ZU1lbW9yeUhpc3RvcnkiLCJyb3V0ZXJTcG91dCIsImNyZWF0ZVJvdXRlQ29tcG9uZW50Iiwicm91dGVyIiwiUm91dGVyIiwicmVzb2x2ZVdpdGgiLCJ1c2VSZXNvbHZlV2l0aCIsInVybCIsInBhcnRzIiwic3BsaXQiLCJzZWFyY2hQYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJjcmVhdGVSb3V0ZXIiLCJpbml0aWFsRW50cmllcyIsImdldE1hdGNoZWRSb3V0ZXMiLCJwcmVmZXRjaFNwb3V0IiwiZmllbGQiLCJ0b0ZldGNoIiwicmVzb2x2ZURhdGEiLCJQcm9taXNlIiwiYWxsIiwiU3VzcGVuc2UiLCJKU09OU3BvdXQiLCJfbmV4dFByb3BzJGluaXREYXRhIiwiZW50cmllcyIsInVzZURhdGEiLCJnbG9iYWxJZCIsIlNjcmlwdCIsImRhdGEiLCJlbmNvZGVkIiwiSlNPTiIsInN0cmluZ2lmeSIsInR5cGUiLCJhcHBTcG91dCIsInJlc29sdmUiLCJkZWZhdWx0IiwiZG9jdW1lbnRTcG91dCJdLCJzb3VyY2VSb290IjoiIn0=
|
|
534
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDRixDQUFDLENBQUM7VUFDaEIsT0FBTyxJQUFJO1FBQ2I7TUFDRixDQUFDO01BQ0RnQyxPQUFPLENBQUMyQyxJQUFJLGVBQ1Z2QyxtQ0FBQSxDQUFDa0csdUNBQVE7UUFBQTFHLFFBQUEsZUFDUFEsbUNBQUEsQ0FBQ3dHLE1BQU0sSUFBRTtNQUFDLEdBREdELFFBRUwsQ0FDWixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsT0FBTztNQUNMLEdBQUczRSxTQUFTO01BQ1poQztJQUNGLENBQUM7RUFDSCxDQUFDO0FBQ0g7O0FDdERBLE1BQU1rSCxRQUFRLEdBQ1gxSixHQUFnQixJQUNPaUUsS0FBUSxJQUM5QjJFLE9BQU8sQ0FBQ2UsT0FBTyxDQUFDO0VBQUUsR0FBRzFGLEtBQUs7RUFBRWpFO0FBQUksQ0FBQyxDQUFDO0FBRXRDLGlEQUFlMEosUUFBUTs7QUNQK0I7QUFDaUI7QUFDSTtBQUNaO0FBQ0k7QUFDSTtBQUNSO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJAZGF0YS1jbGllbnQvcmVhY3RcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJAZGF0YS1jbGllbnQvcmVhY3Qvc3NyXCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGltcG9ydCBcIkBhbnQtZGVzaWduL2Nzc2luanNcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvY3JlYXRlIGZha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS9leHRlcm5hbCBub2RlLWNvbW1vbmpzIFwiY3J5cHRvXCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3QtZG9tL3NlcnZlclwiIiwid2VicGFjazovL0BhbmFuc2kvY29yZS8uL3NyYy9sYXlTcG91dHMudHN4Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS9leHRlcm5hbCBjb21tb25qcyBcInJlYWN0XCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9jc3AudHMiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3QvanN4LXJ1bnRpbWVcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL0RvY3VtZW50Q29tcG9uZW50LnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL2RvY3VtZW50LnNlcnZlci50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9kYXRhQ2xpZW50LnNlcnZlci50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9hbnRkLnNlcnZlci50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwiQGFuYW5zaS9yb3V0ZXJcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJoaXN0b3J5XCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9yb3V0ZXIuc2VydmVyLnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL3ByZWZldGNoLnNlcnZlci50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9qc29uLnNlcnZlci50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9hcHAuc2VydmVyLnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvaW5kZXguc2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIkBkYXRhLWNsaWVudC9yZWFjdFwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJAZGF0YS1jbGllbnQvcmVhY3Qvc3NyXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gaW1wb3J0KFwiQGFudC1kZXNpZ24vY3NzaW5qc1wiKTs7IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwidmFyIGdldFByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mID8gKG9iaikgPT4gKE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopKSA6IChvYmopID0+IChvYmouX19wcm90b19fKTtcbnZhciBsZWFmUHJvdG90eXBlcztcbi8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuLy8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4vLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbi8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuLy8gbW9kZSAmIDE2OiByZXR1cm4gdmFsdWUgd2hlbiBpdCdzIFByb21pc2UtbGlrZVxuLy8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuX193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcblx0aWYobW9kZSAmIDEpIHZhbHVlID0gdGhpcyh2YWx1ZSk7XG5cdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG5cdGlmKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUpIHtcblx0XHRpZigobW9kZSAmIDQpICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcblx0XHRpZigobW9kZSAmIDE2KSAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHZhbHVlO1xuXHR9XG5cdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG5cdHZhciBkZWYgPSB7fTtcblx0bGVhZlByb3RvdHlwZXMgPSBsZWFmUHJvdG90eXBlcyB8fCBbbnVsbCwgZ2V0UHJvdG8oe30pLCBnZXRQcm90byhbXSksIGdldFByb3RvKGdldFByb3RvKV07XG5cdGZvcih2YXIgY3VycmVudCA9IG1vZGUgJiAyICYmIHZhbHVlOyB0eXBlb2YgY3VycmVudCA9PSAnb2JqZWN0JyAmJiAhfmxlYWZQcm90b3R5cGVzLmluZGV4T2YoY3VycmVudCk7IGN1cnJlbnQgPSBnZXRQcm90byhjdXJyZW50KSkge1xuXHRcdE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGN1cnJlbnQpLmZvckVhY2goKGtleSkgPT4gKGRlZltrZXldID0gKCkgPT4gKHZhbHVlW2tleV0pKSk7XG5cdH1cblx0ZGVmWydkZWZhdWx0J10gPSAoKSA9PiAodmFsdWUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGRlZik7XG5cdHJldHVybiBucztcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwiY3J5cHRvXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwicmVhY3QtZG9tL3NlcnZlclwiKTsiLCJpbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyByZW5kZXJUb1BpcGVhYmxlU3RyZWFtIGFzIHJlYWN0UmVuZGVyIH0gZnJvbSAncmVhY3QtZG9tL3NlcnZlcic7XG5cbmltcG9ydCB0eXBlIHsgUmVuZGVyIH0gZnJvbSAnLi9zY3JpcHRzL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgU2VydmVyUHJvcHMgfSBmcm9tICcuL3Nwb3V0cy90eXBlcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxheVNwb3V0cyhcbiAgc3BvdXRzOiAocHJvcHM6IFNlcnZlclByb3BzKSA9PiBQcm9taXNlPHtcbiAgICBhcHA6IEpTWC5FbGVtZW50O1xuICB9PixcbiAge1xuICAgIHRpbWVvdXRNUyA9IDEwMDAwLFxuICAgIG9uRXJyb3IsXG4gIH06IHsgdGltZW91dE1TPzogbnVtYmVyOyBvbkVycm9yPzogKGVycm9yOiB1bmtub3duKSA9PiB2b2lkIH0gPSB7fSxcbikge1xuICBjb25zdCByZW5kZXI6IFJlbmRlciA9IGFzeW5jIChjbGllbnRNYW5pZmVzdCwgcmVxLCByZXMpID0+IHtcbiAgICBjb25zdCBub25jZSA9IGNyeXB0by5yYW5kb21CeXRlcygxNikudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgYXBwIH0gPSBhd2FpdCBzcG91dHMoeyBjbGllbnRNYW5pZmVzdCwgcmVxLCByZXMsIG5vbmNlIH0pO1xuXG4gICAgICBsZXQgZGlkRXJyb3IgPSBmYWxzZTtcbiAgICAgIGNvbnN0IHsgcGlwZSwgYWJvcnQgfSA9IHJlYWN0UmVuZGVyKGFwcCwge1xuICAgICAgICBub25jZSxcbiAgICAgICAgLy9ib290c3RyYXBTY3JpcHRzOiBhc3NldHMuZmlsdGVyKGFzc2V0ID0+IGFzc2V0LmVuZHNXaXRoKCcuanMnKSksXG4gICAgICAgIG9uU2hlbGxSZWFkeSgpIHtcbiAgICAgICAgICAvL21hbmFnZXJzLmZvckVhY2gobWFuYWdlciA9PiBtYW5hZ2VyLmNsZWFudXAoKSk7XG4gICAgICAgICAgLy8gSWYgc29tZXRoaW5nIGVycm9yZWQgYmVmb3JlIHdlIHN0YXJ0ZWQgc3RyZWFtaW5nLCB3ZSBzZXQgdGhlIGVycm9yIGNvZGUgYXBwcm9wcmlhdGVseS5cbiAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IGRpZEVycm9yID8gNTAwIDogMjAwO1xuICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKTtcbiAgICAgICAgICBwaXBlKHJlcyk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uU2hlbGxFcnJvcigpIHtcbiAgICAgICAgICBkaWRFcnJvciA9IHRydWU7XG4gICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XG4gICAgICAgICAgcGlwZShyZXMpO1xuICAgICAgICB9LFxuICAgICAgICBvbkVycm9yKGU6IGFueSkge1xuICAgICAgICAgIGRpZEVycm9yID0gdHJ1ZTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xuICAgICAgICAgIC8vcGlwZShyZXMpOyBSZW1vdmluZyB0aGlzIGF2b2lkcywgXCJSZWFjdCBjdXJyZW50bHkgb25seSBzdXBwb3J0cyBwaXBpbmcgdG8gb25lIHdyaXRhYmxlIHN0cmVhbS5cIlxuICAgICAgICAgIGlmIChvbkVycm9yKSBvbkVycm9yKGUpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICAvLyBBYmFuZG9uIGFuZCBzd2l0Y2ggdG8gY2xpZW50IHJlbmRlcmluZyBpZiBlbm91Z2ggdGltZSBwYXNzZXMuXG4gICAgICAvLyBUcnkgbG93ZXJpbmcgdGhpcyB0byBzZWUgdGhlIGNsaWVudCByZWNvdmVyLlxuICAgICAgc2V0VGltZW91dChcbiAgICAgICAgKCkgPT4gKGFib3J0IGFzIGFueSkoYFRpbWVvdXQgb2YgJHt0aW1lb3V0TVN9bXMgZXhjZWVkZWRgKSxcbiAgICAgICAgdGltZW91dE1TLFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICBpZiAob25FcnJvcikgb25FcnJvcihlKTtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9O1xuICByZXR1cm4gcmVuZGVyO1xufVxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdFwiKTsiLCJleHBvcnQgaW50ZXJmYWNlIFBvbGljeSB7XG4gIFtkaXJlY3RpdmU6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG4vLyBUT0RPOiBtZW1vaXplIHRoaXNcbmV4cG9ydCBmdW5jdGlvbiBidWlsZFBvbGljeShwb2xpY3lPYmo6IFBvbGljeSkge1xuICByZXR1cm4gT2JqZWN0LmtleXMocG9saWN5T2JqKVxuICAgIC5tYXAoa2V5ID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9XG4gICAgICAgIEFycmF5LmlzQXJyYXkocG9saWN5T2JqW2tleV0pID9cbiAgICAgICAgICBbLi4ubmV3IFNldChwb2xpY3lPYmpba2V5XSkudmFsdWVzKCldLmZpbHRlcih2ID0+IHYpLmpvaW4oJyAnKVxuICAgICAgICA6IHBvbGljeU9ialtrZXldO1xuXG4gICAgICAvLyBtb3ZlIHN0cmljdCBkeW5hbWljIHRvIHRoZSBlbmQgb2YgdGhlIHBvbGljeSBpZiBpdCBleGlzdHMgdG8gYmUgYmFja3dhcmRzIGNvbXBhdGlibGUgd2l0aCBjc3AyXG4gICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0hlYWRlcnMvQ29udGVudC1TZWN1cml0eS1Qb2xpY3kvc2NyaXB0LXNyYyNzdHJpY3QtZHluYW1pY1xuICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnICYmIHZhbC5pbmNsdWRlcyhcIidzdHJpY3QtZHluYW1pYydcIikpIHtcbiAgICAgICAgY29uc3QgbmV3VmFsID0gYCR7dmFsXG4gICAgICAgICAgLnJlcGxhY2UoL1xccz8nc3RyaWN0LWR5bmFtaWMnXFxzPy9naSwgJyAnKVxuICAgICAgICAgIC50cmltKCl9ICdzdHJpY3QtZHluYW1pYydgO1xuICAgICAgICByZXR1cm4gYCR7a2V5fSAke25ld1ZhbH1gO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYCR7a2V5fSAke3ZhbH1gO1xuICAgIH0pXG4gICAgLmpvaW4oJzsgJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBqb2luTm9uY2UocG9saWN5T2JqOiBQb2xpY3ksIG5vbmNlPzogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gIGlmICghbm9uY2UpIHJldHVybiBwb2xpY3lPYmo7XG4gIGNvbnN0IHBvbGljeSA9IHtcbiAgICAuLi5wb2xpY3lPYmosXG4gIH07XG4gIGlmICh0eXBlb2YgcG9saWN5WydzY3JpcHQtc3JjJ10gPT09ICdzdHJpbmcnKSB7XG4gICAgcG9saWN5WydzY3JpcHQtc3JjJ10gPSBbcG9saWN5WydzY3JpcHQtc3JjJ10sIGAnbm9uY2UtJHtub25jZX0nYF07XG4gIH0gZWxzZSB7XG4gICAgcG9saWN5WydzY3JpcHQtc3JjJ10gPSBbLi4ucG9saWN5WydzY3JpcHQtc3JjJ10sIGAnbm9uY2UtJHtub25jZX0nYF07XG4gIH1cbiAgcmV0dXJuIHBvbGljeTtcbn1cbiIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7IiwidHlwZSBQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbiAgYXNzZXRzOiB7IGhyZWY6IHN0cmluZzsgYXM/OiBzdHJpbmc7IHJlbD86IHN0cmluZyB9W107XG4gIGhlYWQ/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIGV4dHJhU3R5bGU6IFJlYWN0LlJlYWN0Tm9kZTtcbiAgc2NyaXB0cz86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgdGl0bGU6IHN0cmluZztcbiAgcm9vdElkPzogc3RyaW5nO1xuICBjaGFyU2V0Pzogc3RyaW5nO1xuICBsYW5nPzogc3RyaW5nO1xufTtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIERvY3VtZW50KHtcbiAgYXNzZXRzLFxuICBoZWFkID0gZGVmYXVsdEhlYWQsXG4gIGNoaWxkcmVuLFxuICB0aXRsZSxcbiAgcm9vdElkID0gJ2FuYW5zaS1yb290JyxcbiAgY2hhclNldCA9ICd1dGYtOCcsXG4gIHNjcmlwdHMgPSBudWxsLFxuICBleHRyYVN0eWxlLFxuICBsYW5nLFxufTogUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8aHRtbCBsYW5nPXtsYW5nfT5cbiAgICAgIDxoZWFkPlxuICAgICAgICA8bWV0YSBjaGFyU2V0PXtjaGFyU2V0fSAvPlxuICAgICAgICB7aGVhZH1cbiAgICAgICAge2V4dHJhU3R5bGV9XG4gICAgICAgIHthc3NldHMubWFwKChhc3NldCwgaSkgPT4gKFxuICAgICAgICAgIDxsaW5rIGtleT17aX0gcmVsPVwicHJlbG9hZFwiIHsuLi5hc3NldH0gLz5cbiAgICAgICAgKSl9XG4gICAgICAgIDx0aXRsZT57dGl0bGV9PC90aXRsZT5cbiAgICAgIDwvaGVhZD5cbiAgICAgIDxib2R5PlxuICAgICAgICA8ZGl2IGlkPXtyb290SWR9PntjaGlsZHJlbn08L2Rpdj5cbiAgICAgICAge3NjcmlwdHN9XG4gICAgICAgIHthc3NldHNcbiAgICAgICAgICAuZmlsdGVyKCh7IGhyZWYgfSkgPT4gaHJlZi5lbmRzV2l0aCgnLmpzJykpXG4gICAgICAgICAgLm1hcCgoeyBocmVmIH0sIGkpID0+IChcbiAgICAgICAgICAgIDxzY3JpcHQga2V5PXtpfSBzcmM9e2hyZWZ9IGFzeW5jIC8+XG4gICAgICAgICAgKSl9XG4gICAgICA8L2JvZHk+XG4gICAgPC9odG1sPlxuICApO1xufVxuY29uc3QgZGVmYXVsdEhlYWQgPSAoXG4gIDw+XG4gICAgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCIgY29udGVudD1cIndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xXCIgLz5cbiAgICA8bGlua1xuICAgICAgcmVsPVwic2hvcnRjdXQgaWNvblwiXG4gICAgICBocmVmPXtgJHtwcm9jZXNzLmVudi5XRUJQQUNLX1BVQkxJQ19QQVRIID8/ICcvJ31mYXZpY29uLmljb2B9XG4gICAgLz5cbiAgPC8+XG4pO1xuIiwiaW1wb3J0IHR5cGUgeyBSb3V0ZSB9IGZyb20gJ0BhbmFuc2kvcm91dGVyJztcbmltcG9ydCB7IFJlcXVlc3QgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTdGF0c0NodW5rR3JvdXAgfSBmcm9tICd3ZWJwYWNrJztcblxuaW1wb3J0IHsgYnVpbGRQb2xpY3ksIGpvaW5Ob25jZSwgUG9saWN5IH0gZnJvbSAnLi9jc3AuanMnO1xuaW1wb3J0IERvY3VtZW50IGZyb20gJy4vRG9jdW1lbnRDb21wb25lbnQuanMnO1xuaW1wb3J0IHR5cGUgeyBTZXJ2ZXJTcG91dCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG50eXBlIE5lZWRlZE5leHQgPSB7XG4gIG1hdGNoZWRSb3V0ZXM6IFJvdXRlPGFueT5bXTtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHNjcmlwdHM/OiBSZWFjdC5SZWFjdE5vZGVbXTtcbiAgZXh0cmFTdHlsZT86IFJlYWN0LlJlYWN0Tm9kZVtdO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRG9jdW1lbnRTcG91dChvcHRpb25zOiB7XG4gIGhlYWQ/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGxhbmc/OiBzdHJpbmc7XG4gIHJvb3RJZD86IHN0cmluZztcbiAgY2hhclNldD86IHN0cmluZztcbiAgY3NQb2xpY3k/OiBQb2xpY3k7XG59KTogU2VydmVyU3BvdXQ8UmVjb3JkPHN0cmluZywgdW5rbm93bj4sIFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBOZWVkZWROZXh0PiB7XG4gIHJldHVybiBuZXh0ID0+IGFzeW5jIHByb3BzID0+IHtcbiAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KHByb3BzKTtcblxuICAgIGNvbnN0IHB1YmxpY1BhdGggPSBwcm9wcy5jbGllbnRNYW5pZmVzdC5wdWJsaWNQYXRoO1xuXG4gICAgaWYgKFxuICAgICAgT2JqZWN0LmtleXMocHJvcHMuY2xpZW50TWFuaWZlc3Q/LmVudHJ5cG9pbnRzID8/IHt9KS5sZW5ndGggPCAxIHx8XG4gICAgICBwdWJsaWNQYXRoID09PSB1bmRlZmluZWRcbiAgICApXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01hbmlmZXN0IG1pc3NpbmcgZW50cmllcyBuZWVkZWQnKTtcblxuICAgIC8vIFRPRE86IGNvbnNpZGVyIHVzaW5nIHRoaXMgcGFja2FnZSBmb3IgYnVpbGQgc3RhdHMgaW4gZnV0dXJlOlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC90cmVlL21haW4vcGFja2FnZXMvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrXG4gICAgY29uc3QgYXNzZXRNYXAgPSAoYXNzZXRzOiB7IG5hbWU6IHN0cmluZzsgc2l6ZT86IG51bWJlciB9W10pID0+XG4gICAgICBhc3NldHMubWFwKCh7IG5hbWUgfSkgPT4gYCR7cHVibGljUGF0aH0ke25hbWV9YCk7XG5cbiAgICBjb25zdCBhc3NldExpc3Q6IHN0cmluZ1tdID0gW107XG4gICAgT2JqZWN0LnZhbHVlcyhwcm9wcy5jbGllbnRNYW5pZmVzdD8uZW50cnlwb2ludHMgPz8ge30pLmZvckVhY2goXG4gICAgICBlbnRyeXBvaW50ID0+IHtcbiAgICAgICAgYXNzZXRMaXN0LnB1c2goLi4uYXNzZXRNYXAoZW50cnlwb2ludC5hc3NldHMgPz8gW10pKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgICBuZXcgU2V0KFxuICAgICAgYXNzZXRNYXAoXG4gICAgICAgIE9iamVjdC52YWx1ZXMocHJvcHMuY2xpZW50TWFuaWZlc3QubmFtZWRDaHVua0dyb3VwcyA/PyB7fSlcbiAgICAgICAgICAuZmlsdGVyKCh7IG5hbWUgfSkgPT5cbiAgICAgICAgICAgIG5leHRQcm9wcy5tYXRjaGVkUm91dGVzLnNvbWUocm91dGUgPT4gbmFtZT8uaW5jbHVkZXMocm91dGUubmFtZSkpLFxuICAgICAgICAgIClcbiAgICAgICAgICAuZmxhdE1hcChjaHVuayA9PiBbXG4gICAgICAgICAgICAuLi4oY2h1bmsuYXNzZXRzID8/IFtdKSxcbiAgICAgICAgICAgIC8vIGFueSBjaHVuayBwcmVsb2Fkc1xuICAgICAgICAgICAgLi4uY2hpbGRyZW5Bc3NldHMoY2h1bmspLFxuICAgICAgICAgIF0pLFxuICAgICAgKSxcbiAgICApLmZvckVhY2goYXNzZXQgPT4gYXNzZXRMaXN0LnB1c2goYXNzZXQpKTtcblxuICAgIC8vIGZpbmQgYWRkaXRpb25hbCBhc3NldHMgdG8gcHJlbG9hZCBiYXNlZCBvbiBtYXRjaGVkIHJvdXRlXG4gICAgY29uc3QgYXNzZXRzOiB7XG4gICAgICBocmVmOiBzdHJpbmc7XG4gICAgICBhcz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIHJlbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB9W10gPSBhc3NldExpc3RcbiAgICAgIC5maWx0ZXIoYXNzZXQgPT4gIWFzc2V0LmVuZHNXaXRoKCcuaG90LXVwZGF0ZS5qcycpKVxuICAgICAgLm1hcChhc3NldCA9PlxuICAgICAgICBhc3NldC5lbmRzV2l0aCgnLmNzcycpID8geyBocmVmOiBhc3NldCwgcmVsOiAnc3R5bGVzaGVldCcgfVxuICAgICAgICA6IGFzc2V0LmVuZHNXaXRoKCcuanMnKSA/IHsgaHJlZjogYXNzZXQsIGFzOiAnc2NyaXB0JyB9XG4gICAgICAgIDogeyBocmVmOiBhc3NldCB9LFxuICAgICAgKTtcblxuICAgIGlmIChvcHRpb25zLmNzUG9saWN5KSB7XG4gICAgICBjb25zdCBodHRwRXF1aXYgPVxuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nID9cbiAgICAgICAgICAnQ29udGVudC1TZWN1cml0eS1Qb2xpY3knXG4gICAgICAgIDogJ0NvbnRlbnQtU2VjdXJpdHktUG9saWN5LVJlcG9ydC1Pbmx5JztcblxuICAgICAgcHJvcHMucmVzLnNldEhlYWRlcihcbiAgICAgICAgaHR0cEVxdWl2LFxuICAgICAgICBidWlsZFBvbGljeShqb2luTm9uY2Uob3B0aW9ucy5jc1BvbGljeSwgcHJvcHMubm9uY2UpKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5leHRQcm9wcyxcbiAgICAgIGFwcDogKFxuICAgICAgICA8RG9jdW1lbnRcbiAgICAgICAgICB7Li4ub3B0aW9uc31cbiAgICAgICAgICBleHRyYVN0eWxlPXtuZXh0UHJvcHMuZXh0cmFTdHlsZX1cbiAgICAgICAgICB0aXRsZT17bmV4dFByb3BzLnRpdGxlID8/IG9wdGlvbnMudGl0bGV9XG4gICAgICAgICAgYXNzZXRzPXthc3NldHN9XG4gICAgICAgICAgcm9vdElkPXtvcHRpb25zLnJvb3RJZH1cbiAgICAgICAgICBzY3JpcHRzPXtuZXh0UHJvcHMuc2NyaXB0c31cbiAgICAgICAgPlxuICAgICAgICAgIHtuZXh0UHJvcHMuYXBwfVxuICAgICAgICA8L0RvY3VtZW50PlxuICAgICAgKSxcbiAgICB9O1xuICB9O1xufVxuXG5mdW5jdGlvbiBjaGlsZHJlbkFzc2V0cyhjaHVuazogU3RhdHNDaHVua0dyb3VwKSB7XG4gIHJldHVybiBjaHVuay5jaGlsZHJlbiA/XG4gICAgICBPYmplY3QudmFsdWVzKGNodW5rLmNoaWxkcmVuKS5mbGF0TWFwKHByZWxvYWQgPT5cbiAgICAgICAgcHJlbG9hZC5mbGF0TWFwKGMgPT4gYy5hc3NldHMgPz8gW10pLFxuICAgICAgKVxuICAgIDogW107XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENvbnRyb2xsZXIsXG4gIHR5cGUgTWFuYWdlcixcbiAgdHlwZSBTdGF0ZSxcbiAgdHlwZSBTdG9yZSxcbn0gZnJvbSAnQGRhdGEtY2xpZW50L3JlYWN0JztcblxuaW1wb3J0IHR5cGUgeyBTZXJ2ZXJTcG91dCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkYXRhQ2xpZW50U3BvdXQoXG4gIG9wdGlvbnM6IHtcbiAgICBnZXRNYW5hZ2Vycz86ICgpID0+IE1hbmFnZXJbXTtcbiAgfSA9IHt9LFxuKTogU2VydmVyU3BvdXQ8XG4gIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICB7IGNvbnRyb2xsZXI6IENvbnRyb2xsZXIgfSAmIHsgc3RvcmU6IFN0b3JlPFN0YXRlPHVua25vd24+PiB9LFxuICB7IGluaXREYXRhPzogUmVjb3JkPHN0cmluZywgKCkgPT4gdW5rbm93bj47IHNjcmlwdHM/OiBSZWFjdC5SZWFjdE5vZGVbXSB9XG4+IHtcbiAgcmV0dXJuIG5leHQgPT4gYXN5bmMgcHJvcHMgPT4ge1xuICAgIGNvbnN0IG1hbmFnZXJzID0gb3B0aW9ucz8uZ2V0TWFuYWdlcnM/LigpID8/IFtcbiAgICAgIG5ldyAoYXdhaXQgaW1wb3J0KCdAZGF0YS1jbGllbnQvcmVhY3QnKSkuTmV0d29ya01hbmFnZXIoKSxcbiAgICBdO1xuICAgIGNvbnN0IHsgY3JlYXRlUGVyc2lzdGVkU3RvcmUgfSA9IGF3YWl0IGltcG9ydCgnQGRhdGEtY2xpZW50L3JlYWN0L3NzcicpO1xuICAgIGNvbnN0IFtTZXJ2ZXJEYXRhUHJvdmlkZXIsIHVzZVJlYWR5Q2FjaGVTdGF0ZSwgY29udHJvbGxlciwgc3RvcmVdID1cbiAgICAgIGNyZWF0ZVBlcnNpc3RlZFN0b3JlKG1hbmFnZXJzKTtcblxuICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQoe1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBjb250cm9sbGVyLFxuICAgICAgc3RvcmUsXG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5leHRQcm9wcyxcbiAgICAgIGluaXREYXRhOiB7XG4gICAgICAgIC4uLm5leHRQcm9wcy5pbml0RGF0YSxcbiAgICAgICAgZGF0YWNsaWVudDogdXNlUmVhZHlDYWNoZVN0YXRlLFxuICAgICAgfSxcbiAgICAgIGFwcDogPFNlcnZlckRhdGFQcm92aWRlcj57bmV4dFByb3BzLmFwcH08L1NlcnZlckRhdGFQcm92aWRlcj4sXG4gICAgICAvLyBUT0RPOiBmaWd1cmUgb3V0IGhvdyB0byBvbmx5IGluamVjdCBpbiBuZXh0IGFuZCBub3QgaGF2ZSB0byBhbHNvIHB1dCBoZXJlXG4gICAgICBjb250cm9sbGVyLFxuICAgICAgc3RvcmUsXG4gICAgfTtcbiAgfTtcbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgU2VydmVyU3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxudHlwZSBOZWVkZWROZXh0ID0ge1xuICBpbml0RGF0YT86IFJlY29yZDxzdHJpbmcsICgpID0+IHVua25vd24+O1xuICBzY3JpcHRzPzogUmVhY3QuUmVhY3ROb2RlW107XG4gIGV4dHJhU3R5bGU/OiBSZWFjdC5SZWFjdE5vZGVbXTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFudGRTcG91dCgpOiBTZXJ2ZXJTcG91dDxcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBOZWVkZWROZXh0XG4+IHtcbiAgcmV0dXJuIG5leHQgPT4gYXN5bmMgcHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgY3JlYXRlQ2FjaGUsIGV4dHJhY3RTdHlsZSwgU3R5bGVQcm92aWRlciB9ID0gYXdhaXQgaW1wb3J0KFxuICAgICAgJ0BhbnQtZGVzaWduL2Nzc2luanMnXG4gICAgKTtcbiAgICBjb25zdCBjYWNoZSA9IGNyZWF0ZUNhY2hlKCk7XG5cbiAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KHByb3BzKTtcblxuICAgIGNvbnN0IHNjcmlwdHM6IFJlYWN0LlJlYWN0Tm9kZVtdID0gbmV4dFByb3BzLnNjcmlwdHMgPz8gW107XG5cbiAgICBjb25zdCBBbnRkU2hlZXRzID0gKCk6IEpTWC5FbGVtZW50ID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxzY3JpcHRcbiAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgX19odG1sOiBgPC9zY3JpcHQ+JHtleHRyYWN0U3R5bGUoY2FjaGUpfTxzY3JpcHQ+YCxcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9O1xuICAgIC8vIHVuZm9ydHVuYXRlbHkgd2UgaGF2ZSB0byBpbmplY3QgdGhpcyBhZnRlciB0aGUgZW50aXJlIGNvbnRlbnQgaGFzIHN0cmVhbWVkIGluIG9yIGl0IGRvZXNuJ3QgY29ycmVjdGx5IHBvcHVsYXRlXG4gICAgLy8gc2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9jc3NpbmpzL2lzc3Vlcy83OVxuICAgIHNjcmlwdHMucHVzaCg8QW50ZFNoZWV0cyAvPik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgYXBwOiA8U3R5bGVQcm92aWRlciBjYWNoZT17Y2FjaGV9PntuZXh0UHJvcHMuYXBwfTwvU3R5bGVQcm92aWRlcj4sXG4gICAgICBzY3JpcHRzLFxuICAgIH07XG4gIH07XG59XG4iLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcIkBhbmFuc2kvcm91dGVyXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwiaGlzdG9yeVwiKTsiLCJpbXBvcnQgeyBSb3V0ZSwgUm91dGVQcm92aWRlciwgUm91dGVDb250cm9sbGVyIH0gZnJvbSAnQGFuYW5zaS9yb3V0ZXInO1xuaW1wb3J0IHsgY3JlYXRlTWVtb3J5SGlzdG9yeSB9IGZyb20gJ2hpc3RvcnknO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHR5cGUgeyBDcmVhdGVSb3V0ZXIsIFNlcnZlclNwb3V0IH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJvdXRlclNwb3V0PFJlc29sdmVXaXRoPihvcHRpb25zOiB7XG4gIHJlc29sdmVXaXRoPzogYW55O1xuICB1c2VSZXNvbHZlV2l0aDogKCkgPT4gUmVzb2x2ZVdpdGg7XG4gIGNyZWF0ZVJvdXRlcjogQ3JlYXRlUm91dGVyPFJlc29sdmVXaXRoPjtcbn0pOiBTZXJ2ZXJTcG91dDxcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHtcbiAgICBtYXRjaGVkUm91dGVzOiBSb3V0ZTxSZXNvbHZlV2l0aD5bXTtcbiAgICBzZWFyY2hQYXJhbXM6IFVSTFNlYXJjaFBhcmFtcztcbiAgfSAmIHtcbiAgICByb3V0ZXI6IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxSZXNvbHZlV2l0aCwgYW55Pj47XG4gIH1cbj4ge1xuICBjb25zdCBjcmVhdGVSb3V0ZUNvbXBvbmVudCA9IChcbiAgICByb3V0ZXI6IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxSZXNvbHZlV2l0aCwgYW55Pj4sXG4gICkgPT5cbiAgICBmdW5jdGlvbiBSb3V0ZXIoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICAgICAgY29uc3QgcmVzb2x2ZVdpdGggPSBvcHRpb25zLnVzZVJlc29sdmVXaXRoKCk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxSb3V0ZVByb3ZpZGVyIHJvdXRlcj17cm91dGVyfSByZXNvbHZlV2l0aD17cmVzb2x2ZVdpdGh9PlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9Sb3V0ZVByb3ZpZGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gIHJldHVybiBuZXh0ID0+IGFzeW5jIHByb3BzID0+IHtcbiAgICBjb25zdCB1cmwgPSBwcm9wcy5yZXEudXJsIHx8ICcnO1xuICAgIGNvbnN0IHBhcnRzID0gdXJsLnNwbGl0KCc/JywgMik7XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhwYXJ0cy5sZW5ndGggPCAyID8gJycgOiBwYXJ0c1sxXSk7XG4gICAgY29uc3Qgcm91dGVyID0gb3B0aW9ucy5jcmVhdGVSb3V0ZXIoXG4gICAgICBjcmVhdGVNZW1vcnlIaXN0b3J5KHsgaW5pdGlhbEVudHJpZXM6IFt1cmxdIH0pLFxuICAgICk7XG4gICAgY29uc3QgbWF0Y2hlZFJvdXRlczogUm91dGU8UmVzb2x2ZVdpdGg+W10gPSByb3V0ZXIuZ2V0TWF0Y2hlZFJvdXRlcyh1cmwpO1xuXG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dCh7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIG1hdGNoZWRSb3V0ZXMsXG4gICAgICByb3V0ZXIsXG4gICAgICBzZWFyY2hQYXJhbXMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBSb3V0ZXIgPSBjcmVhdGVSb3V0ZUNvbXBvbmVudChyb3V0ZXIpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5leHRQcm9wcyxcbiAgICAgIGFwcDogPFJvdXRlcj57bmV4dFByb3BzLmFwcH08L1JvdXRlcj4sXG4gICAgICAvLyBUT0RPOiBmaWd1cmUgb3V0IGhvdyB0byBvbmx5IGluamVjdCBpbiBuZXh0IGFuZCBub3QgaGF2ZSB0byBhbHNvIHB1dCBoZXJlXG4gICAgICBtYXRjaGVkUm91dGVzLFxuICAgICAgcm91dGVyLFxuICAgICAgc2VhcmNoUGFyYW1zLFxuICAgIH07XG4gIH07XG59XG4iLCJpbXBvcnQgeyBSb3V0ZSB9IGZyb20gJ0BhbmFuc2kvcm91dGVyJztcblxuaW1wb3J0IHR5cGUgeyBSZXNvbHZlUHJvcHMsIFNlcnZlclByb3BzIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbnR5cGUgTmVlZGVkUHJvcHM8Um91dGVXaXRoPiA9IHtcbiAgbWF0Y2hlZFJvdXRlczogUm91dGU8Um91dGVXaXRoPltdO1xuICBzZWFyY2hQYXJhbXM6IFVSTFNlYXJjaFBhcmFtcztcbn0gJiBSZXNvbHZlUHJvcHM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHByZWZldGNoU3BvdXQ8RiBleHRlbmRzIHN0cmluZz4oZmllbGQ6IEYpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxcbiAgICBSb3V0ZVdpdGgsXG4gICAgTiBleHRlbmRzIE5lZWRlZFByb3BzPFJvdXRlV2l0aD4sXG4gICAgSSBleHRlbmRzIFNlcnZlclByb3BzLFxuICA+KFxuICAgIG5leHQ6IChwcm9wczogSSkgPT4gUHJvbWlzZTxcbiAgICAgIHtcbiAgICAgICAgW0sgaW4gRl06IFJvdXRlV2l0aDtcbiAgICAgIH0gJiBOXG4gICAgPixcbiAgKSB7XG4gICAgcmV0dXJuIGFzeW5jIChwcm9wczogSSkgPT4ge1xuICAgICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHRvRmV0Y2g6IFByb21pc2U8dW5rbm93bj5bXSA9IFtdO1xuICAgICAgICBuZXh0UHJvcHMubWF0Y2hlZFJvdXRlcy5mb3JFYWNoKHJvdXRlID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHJvdXRlLnJlc29sdmVEYXRhID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0b0ZldGNoLnB1c2goXG4gICAgICAgICAgICAgIHJvdXRlLnJlc29sdmVEYXRhKFxuICAgICAgICAgICAgICAgIG5leHRQcm9wc1tmaWVsZF0sXG4gICAgICAgICAgICAgICAgcm91dGUsXG4gICAgICAgICAgICAgICAgbmV4dFByb3BzLnNlYXJjaFBhcmFtcyxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodG9GZXRjaCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV4dFByb3BzO1xuICAgIH07XG4gIH07XG59XG4iLCJpbXBvcnQgUmVhY3QsIHsgU3VzcGVuc2UgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgU2VydmVyU3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxudHlwZSBOZWVkZWROZXh0ID0ge1xuICBpbml0RGF0YT86IFJlY29yZDxzdHJpbmcsICgpID0+IHVua25vd24+O1xuICBzY3JpcHRzPzogUmVhY3QuUmVhY3ROb2RlW107XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBKU09OU3BvdXQoe1xuICBpZCA9ICdhbmFuc2ktanNvbicsXG59OiB7IGlkPzogc3RyaW5nIH0gPSB7fSk6IFNlcnZlclNwb3V0PFxuICBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIE5lZWRlZE5leHRcbj4ge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG5cbiAgICBjb25zdCBzY3JpcHRzOiBSZWFjdC5SZWFjdE5vZGVbXSA9IG5leHRQcm9wcy5zY3JpcHRzID8/IFtdO1xuXG4gICAgT2JqZWN0LmVudHJpZXMobmV4dFByb3BzLmluaXREYXRhID8/IHt9KS5mb3JFYWNoKChba2V5LCB1c2VEYXRhXSkgPT4ge1xuICAgICAgY29uc3QgZ2xvYmFsSWQgPSBgJHtpZH0uJHtrZXl9YDtcbiAgICAgIGNvbnN0IFNjcmlwdCA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YTogYW55ID0gdXNlRGF0YSgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGVuY29kZWQgPSBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPHNjcmlwdFxuICAgICAgICAgICAgICBpZD17Z2xvYmFsSWR9XG4gICAgICAgICAgICAgIHR5cGU9XCJhcHBsaWNhdGlvbi9qc29uXCJcbiAgICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgICAgICBfX2h0bWw6IGVuY29kZWQsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIG5vbmNlPXtwcm9wcy5ub25jZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIC8vIFRPRE86IFVzZSB1bmlmaWVkIGxvZ2dpbmdcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBzZXJpYWxpemluZyBqc29uIGZvciAke2tleX1gKTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgc2NyaXB0cy5wdXNoKFxuICAgICAgICA8U3VzcGVuc2Uga2V5PXtnbG9iYWxJZH0+XG4gICAgICAgICAgPFNjcmlwdCAvPlxuICAgICAgICA8L1N1c3BlbnNlPixcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgc2NyaXB0cyxcbiAgICB9O1xuICB9O1xufVxuIiwiaW1wb3J0IHsgU2VydmVyUHJvcHMgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuY29uc3QgYXBwU3BvdXQgPVxuICAoYXBwOiBKU1guRWxlbWVudCkgPT5cbiAgPFAgZXh0ZW5kcyBTZXJ2ZXJQcm9wcz4ocHJvcHM6IFApID0+XG4gICAgUHJvbWlzZS5yZXNvbHZlKHsgLi4ucHJvcHMsIGFwcCB9KTtcblxuZXhwb3J0IGRlZmF1bHQgYXBwU3BvdXQ7XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIGxheVNwb3V0cyB9IGZyb20gJy4vbGF5U3BvdXRzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZG9jdW1lbnRTcG91dCB9IGZyb20gJy4vc3BvdXRzL2RvY3VtZW50LnNlcnZlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGRhdGFDbGllbnRTcG91dCB9IGZyb20gJy4vc3BvdXRzL2RhdGFDbGllbnQuc2VydmVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgYW50ZFNwb3V0IH0gZnJvbSAnLi9zcG91dHMvYW50ZC5zZXJ2ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyByb3V0ZXJTcG91dCB9IGZyb20gJy4vc3BvdXRzL3JvdXRlci5zZXJ2ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwcmVmZXRjaFNwb3V0IH0gZnJvbSAnLi9zcG91dHMvcHJlZmV0Y2guc2VydmVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSlNPTlNwb3V0IH0gZnJvbSAnLi9zcG91dHMvanNvbi5zZXJ2ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBhcHBTcG91dCB9IGZyb20gJy4vc3BvdXRzL2FwcC5zZXJ2ZXIuanMnO1xuZXhwb3J0IHR5cGUgeyBTZXJ2ZXJQcm9wcyB9IGZyb20gJy4vc3BvdXRzL3R5cGVzLmpzJztcbmV4cG9ydCB0eXBlIHsgU2VydmVyU3BvdXQgYXMgU3BvdXQgfSBmcm9tICcuL3Nwb3V0cy90eXBlcy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3NjcmlwdHMvdHlwZXMuanMnO1xuIl0sIm5hbWVzIjpbImNyeXB0byIsInJlbmRlclRvUGlwZWFibGVTdHJlYW0iLCJyZWFjdFJlbmRlciIsImxheVNwb3V0cyIsInNwb3V0cyIsInRpbWVvdXRNUyIsIm9uRXJyb3IiLCJyZW5kZXIiLCJjbGllbnRNYW5pZmVzdCIsInJlcSIsInJlcyIsIm5vbmNlIiwicmFuZG9tQnl0ZXMiLCJ0b1N0cmluZyIsImFwcCIsImRpZEVycm9yIiwicGlwZSIsImFib3J0Iiwib25TaGVsbFJlYWR5Iiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsIm9uU2hlbGxFcnJvciIsImUiLCJjb25zb2xlIiwiZXJyb3IiLCJzZXRUaW1lb3V0IiwiYnVpbGRQb2xpY3kiLCJwb2xpY3lPYmoiLCJPYmplY3QiLCJrZXlzIiwibWFwIiwia2V5IiwidmFsIiwiQXJyYXkiLCJpc0FycmF5IiwiU2V0IiwidmFsdWVzIiwiZmlsdGVyIiwidiIsImpvaW4iLCJpbmNsdWRlcyIsIm5ld1ZhbCIsInJlcGxhY2UiLCJ0cmltIiwiam9pbk5vbmNlIiwicG9saWN5IiwiRG9jdW1lbnQiLCJhc3NldHMiLCJoZWFkIiwiZGVmYXVsdEhlYWQiLCJjaGlsZHJlbiIsInRpdGxlIiwicm9vdElkIiwiY2hhclNldCIsInNjcmlwdHMiLCJleHRyYVN0eWxlIiwibGFuZyIsIl9qc3hzIiwiX2pzeCIsImFzc2V0IiwiaSIsInJlbCIsImlkIiwiaHJlZiIsImVuZHNXaXRoIiwic3JjIiwiYXN5bmMiLCJfRnJhZ21lbnQiLCJuYW1lIiwiY29udGVudCIsIl9wcm9jZXNzJGVudiRXRUJQQUNLXyIsInByb2Nlc3MiLCJlbnYiLCJXRUJQQUNLX1BVQkxJQ19QQVRIIiwiUmVhY3QiLCJqc3giLCJEb2N1bWVudFNwb3V0Iiwib3B0aW9ucyIsIm5leHQiLCJwcm9wcyIsIl9wcm9wcyRjbGllbnRNYW5pZmVzdCIsIl9wcm9wcyRjbGllbnRNYW5pZmVzdDIiLCJfcHJvcHMkY2xpZW50TWFuaWZlc3QzIiwiX3Byb3BzJGNsaWVudE1hbmlmZXN0NCIsIl9wcm9wcyRjbGllbnRNYW5pZmVzdDUiLCJfbmV4dFByb3BzJHRpdGxlIiwibmV4dFByb3BzIiwicHVibGljUGF0aCIsImVudHJ5cG9pbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJhc3NldE1hcCIsImFzc2V0TGlzdCIsImZvckVhY2giLCJlbnRyeXBvaW50IiwiX2VudHJ5cG9pbnQkYXNzZXRzIiwicHVzaCIsIm5hbWVkQ2h1bmtHcm91cHMiLCJtYXRjaGVkUm91dGVzIiwic29tZSIsInJvdXRlIiwiZmxhdE1hcCIsImNodW5rIiwiX2NodW5rJGFzc2V0cyIsImNoaWxkcmVuQXNzZXRzIiwiYXMiLCJjc1BvbGljeSIsImh0dHBFcXVpdiIsIk5PREVfRU5WIiwicHJlbG9hZCIsImMiLCJfYyRhc3NldHMiLCJkYXRhQ2xpZW50U3BvdXQiLCJfb3B0aW9ucyRnZXRNYW5hZ2VycyIsIm1hbmFnZXJzIiwiZ2V0TWFuYWdlcnMiLCJOZXR3b3JrTWFuYWdlciIsImNyZWF0ZVBlcnNpc3RlZFN0b3JlIiwiU2VydmVyRGF0YVByb3ZpZGVyIiwidXNlUmVhZHlDYWNoZVN0YXRlIiwiY29udHJvbGxlciIsInN0b3JlIiwiaW5pdERhdGEiLCJkYXRhY2xpZW50IiwiYW50ZFNwb3V0IiwiX25leHRQcm9wcyRzY3JpcHRzIiwiY3JlYXRlQ2FjaGUiLCJleHRyYWN0U3R5bGUiLCJTdHlsZVByb3ZpZGVyIiwiY2FjaGUiLCJBbnRkU2hlZXRzIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJfX2h0bWwiLCJSb3V0ZVByb3ZpZGVyIiwiY3JlYXRlTWVtb3J5SGlzdG9yeSIsInJvdXRlclNwb3V0IiwiY3JlYXRlUm91dGVDb21wb25lbnQiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJyZXNvbHZlV2l0aCIsInVzZVJlc29sdmVXaXRoIiwidXJsIiwicGFydHMiLCJzcGxpdCIsInNlYXJjaFBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImNyZWF0ZVJvdXRlciIsImluaXRpYWxFbnRyaWVzIiwiZ2V0TWF0Y2hlZFJvdXRlcyIsInByZWZldGNoU3BvdXQiLCJmaWVsZCIsInRvRmV0Y2giLCJyZXNvbHZlRGF0YSIsIlByb21pc2UiLCJhbGwiLCJTdXNwZW5zZSIsIkpTT05TcG91dCIsIl9uZXh0UHJvcHMkaW5pdERhdGEiLCJlbnRyaWVzIiwidXNlRGF0YSIsImdsb2JhbElkIiwiU2NyaXB0IiwiZGF0YSIsImVuY29kZWQiLCJKU09OIiwic3RyaW5naWZ5IiwidHlwZSIsImFwcFNwb3V0IiwicmVzb2x2ZSIsImRlZmF1bHQiLCJkb2N1bWVudFNwb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==
|
|
@@ -130,7 +130,7 @@ export default async function serve(entrypoint, options = {}) {
|
|
|
130
130
|
});
|
|
131
131
|
}
|
|
132
132
|
let manifest = await import(manifestPath, {
|
|
133
|
-
|
|
133
|
+
with: {
|
|
134
134
|
type: 'json'
|
|
135
135
|
}
|
|
136
136
|
});
|
|
@@ -157,4 +157,4 @@ function getManifestPathFromWebpackconfig(webpackConfig) {
|
|
|
157
157
|
const manifestPath = path.join((_webpackConfig$output = webpackConfig == null || (_webpackConfig$output2 = webpackConfig.output) == null ? void 0 : _webpackConfig$output2.path) != null ? _webpackConfig$output : '', manifestFilename);
|
|
158
158
|
return manifestPath;
|
|
159
159
|
}
|
|
160
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImNvbXByZXNzIiwiZXhwcmVzcyIsImRpc2tGcyIsIm9yYSIsInBhdGgiLCJwcm9taXNpZnkiLCJnZXRQcm94eU1pZGRsZXdhcmVzIiwiZ2V0V2VicGFja0NvbmZpZyIsImltcG9ydCIsIm1ldGEiLCJlbnRyeXBvaW50IiwicHJvY2VzcyIsImFyZ3YiLCJjb25zb2xlIiwibG9nIiwiZXhpdCIsInNlcnZlIiwib3B0aW9ucyIsIlBPUlQiLCJlbnYiLCJsb2FkZXIiLCJzdGFydCIsIndlYnBhY2tDb25maWciLCJtYW5pZmVzdFBhdGgiLCJnZXRNYW5pZmVzdFBhdGhGcm9tV2VicGFja2NvbmZpZyIsIm1vZGUiLCJyZWFkRmlsZSIsInNlcnZlciIsImhhbmRsZUVycm9ycyIsImZuIiwicmVxIiwicmVzIiwibmV4dCIsIngiLCJpbml0aWFsaXplQXBwIiwiY2xpZW50TWFuaWZlc3QiLCJpbmZvIiwiZmFpbCIsIndyYXBwaW5nQXBwIiwidXNlIiwic2VydmVBc3NldHMiLCJfcmVxJHVybCRzdWJzdHJpbmciLCJfcmVxJHVybCIsIl9jbGllbnRNYW5pZmVzdCRvdXRwdSIsImZpbGVuYW1lIiwidXJsIiwic3Vic3RyaW5nIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsImxlbmd0aCIsImFzc2V0UGF0aCIsImpvaW4iLCJvdXRwdXRQYXRoIiwiZXhpc3RzU3luYyIsImxzdGF0U3luYyIsImlzRGlyZWN0b3J5Iiwic2VuZEZpbGUiLCJlIiwic2VydmVQcm94eSIsIl9kZXZDb25maWckZGV2U2VydmVyIiwiZGV2Q29uZmlnIiwiZGV2U2VydmVyIiwicHJveHkiLCJfZGV2Q29uZmlnJGRldlNlcnZlcjIiLCJtaWRkbGV3YXJlcyIsIm1hcCIsIm1pZGRsZXdhcmUiLCJyZW5kZXIiLCJjd2QiLCJkZWZhdWx0IiwiRXJyb3IiLCJnZXQiLCJlbmRzV2l0aCIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJzZW5kIiwic29ja2V0Iiwib24iLCJlcnJvciIsImxpc3RlbiIsInN5c2NhbGwiLCJpc1BpcGUiLCJwb3J0T3JQaXBlIiwiTnVtYmVyIiwiaXNOYU4iLCJiaW5kIiwiY29kZSIsIm1hbmlmZXN0IiwiYXNzZXJ0IiwidHlwZSIsIl9zZXJ2ZXIiLCJ3YXJuIiwiY2xvc2UiLCJfb3B0cyRmaWxlbmFtZSIsIl93ZWJwYWNrQ29uZmlnJHBsdWdpbiIsIl93ZWJwYWNrQ29uZmlnJG91dHB1dCIsIl93ZWJwYWNrQ29uZmlnJG91dHB1dDIiLCJtYW5pZmVzdEZpbGVuYW1lIiwicGx1Z2lucyIsImZpbmQiLCJwbHVnaW4iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJvcHRzIiwib3V0cHV0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NjcmlwdHMvc2VydmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuT2JqZWN0Lmhhc093biA9XG4gIE9iamVjdC5oYXNPd24gfHxcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gZnVuY3Rpb24gaGFzT3duKGl0LCBrZXkpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xuICB9O1xuaW1wb3J0IGNvbXByZXNzIGZyb20gJ2NvbXByZXNzaW9uJztcbmltcG9ydCBleHByZXNzLCB7IE5leHRGdW5jdGlvbiB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IGRpc2tGcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBTZXJ2ZXIsIEluY29taW5nTWVzc2FnZSwgU2VydmVyUmVzcG9uc2UgfSBmcm9tICdodHRwJztcbmltcG9ydCBvcmEgZnJvbSAnb3JhJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgd2VicGFjayBmcm9tICd3ZWJwYWNrJztcblxuaW1wb3J0ICdjcm9zcy1mZXRjaC9kaXN0L25vZGUtcG9seWZpbGwuanMnO1xuaW1wb3J0IGdldFByb3h5TWlkZGxld2FyZXMgZnJvbSAnLi9nZXRQcm94eU1pZGRsZXdhcmVzLmpzJztcbmltcG9ydCB7IGdldFdlYnBhY2tDb25maWcgfSBmcm9tICcuL2dldFdlYnBhY2tDb25maWcuanMnO1xuaW1wb3J0IHsgUmVuZGVyIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8vIHJ1biBkaXJlY3RseSBmcm9tIG5vZGVcbmlmICgnbWFpbicgaW4gaW1wb3J0Lm1ldGEpIHtcbiAgY29uc3QgZW50cnlwb2ludCA9IHByb2Nlc3MuYXJndlsyXTtcblxuICBpZiAoIWVudHJ5cG9pbnQpIHtcbiAgICBjb25zb2xlLmxvZyhgVXNhZ2U6ICR7cHJvY2Vzcy5hcmd2WzBdfSA8c2VydmVyLWVudHJ5cG9pbnQ+YCk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfVxuICBzZXJ2ZShlbnRyeXBvaW50KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gc2VydmUoXG4gIGVudHJ5cG9pbnQ6IHN0cmluZyxcbiAgb3B0aW9uczogeyBzZXJ2ZUFzc2V0cz86IGJvb2xlYW47IHNlcnZlUHJveHk/OiBib29sZWFuIH0gPSB7fSxcbikge1xuICBjb25zdCBQT1JUID0gcHJvY2Vzcy5lbnYuUE9SVCB8fCA4MDgwO1xuXG4gIGNvbnN0IGxvYWRlciA9IG9yYSgnSW5pdGlhbGl6aW5nJykuc3RhcnQoKTtcblxuICBjb25zdCB3ZWJwYWNrQ29uZmlnID0gYXdhaXQgZ2V0V2VicGFja0NvbmZpZygpO1xuXG4gIGNvbnN0IG1hbmlmZXN0UGF0aCA9IGdldE1hbmlmZXN0UGF0aEZyb21XZWJwYWNrY29uZmlnKFxuICAgIHdlYnBhY2tDb25maWcoe30sIHsgbW9kZTogJ3Byb2R1Y3Rpb24nIH0pLFxuICApO1xuXG4gIGNvbnN0IHJlYWRGaWxlID0gcHJvbWlzaWZ5KGRpc2tGcy5yZWFkRmlsZSk7XG4gIGxldCBzZXJ2ZXI6IFNlcnZlciB8IHVuZGVmaW5lZDtcblxuICBmdW5jdGlvbiBoYW5kbGVFcnJvcnM8XG4gICAgRiBleHRlbmRzIChcbiAgICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICAgIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZSxcbiAgICApID0+IFByb21pc2U8dm9pZD4sXG4gID4oZm46IEYpIHtcbiAgICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gKFxuICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgICAgbmV4dDogTmV4dEZ1bmN0aW9uLFxuICAgICkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGZuKHJlcSwgcmVzKTtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgbmV4dCh4KTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLy8gU3RhcnQgdGhlIGV4cHJlc3Mgc2VydmVyIGFmdGVyIHRoZSBmaXJzdCBjb21waWxhdGlvblxuICBhc3luYyBmdW5jdGlvbiBpbml0aWFsaXplQXBwKGNsaWVudE1hbmlmZXN0OiB3ZWJwYWNrLlN0YXRzQ29tcGlsYXRpb24pIHtcbiAgICBsb2FkZXIuaW5mbygnTGF1bmNoaW5nIHNlcnZlcicpO1xuICAgIGlmICghY2xpZW50TWFuaWZlc3QpIHtcbiAgICAgIGxvYWRlci5mYWlsKCdNYW5pZmVzdCBub3QgZm91bmQnKTtcbiAgICAgIC8vIFRPRE86IGhhbmRsZSBtb3JlIGdyYWNlZnVsbHlcbiAgICAgIHByb2Nlc3MuZXhpdCgtMSk7XG4gICAgfVxuXG4gICAgY29uc3Qgd3JhcHBpbmdBcHAgPSBleHByZXNzKCk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgLy9AdHMtaWdub3JlXG4gICAgd3JhcHBpbmdBcHAudXNlKGNvbXByZXNzKCkpO1xuXG4gICAgLy8gQVNTRVRTXG4gICAgaWYgKG9wdGlvbnMuc2VydmVBc3NldHMpIHtcbiAgICAgIHdyYXBwaW5nQXBwLnVzZShcbiAgICAgICAgYXN5bmMgKFxuICAgICAgICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICAgICAgICByZXM6IGFueSxcbiAgICAgICAgICBuZXh0OiBOZXh0RnVuY3Rpb24sXG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpbGVuYW1lID1cbiAgICAgICAgICAgIHJlcS51cmw/LnN1YnN0cmluZyhcbiAgICAgICAgICAgICAgKHByb2Nlc3MuZW52LldFQlBBQ0tfUFVCTElDX1BBVEggYXMgc3RyaW5nKS5sZW5ndGgsXG4gICAgICAgICAgICApID8/ICcnO1xuICAgICAgICAgIGNvbnN0IGFzc2V0UGF0aCA9IHBhdGguam9pbihcbiAgICAgICAgICAgIGNsaWVudE1hbmlmZXN0Lm91dHB1dFBhdGggPz8gJycsXG4gICAgICAgICAgICBmaWxlbmFtZSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZGlza0ZzLmV4aXN0c1N5bmMoYXNzZXRQYXRoKSAmJlxuICAgICAgICAgICAgIWRpc2tGcy5sc3RhdFN5bmMoYXNzZXRQYXRoKS5pc0RpcmVjdG9yeSgpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZXMuc2VuZEZpbGUoYXNzZXRQYXRoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gUFJPWElFU1xuICAgIGlmIChvcHRpb25zLnNlcnZlUHJveHkpIHtcbiAgICAgIGNvbnN0IGRldkNvbmZpZzogd2VicGFjay5Db25maWd1cmF0aW9uID0gd2VicGFja0NvbmZpZyhcbiAgICAgICAge30sXG4gICAgICAgIHsgbW9kZTogJ2RldmVsb3BtZW50JyB9LFxuICAgICAgKTtcbiAgICAgIGlmIChkZXZDb25maWcuZGV2U2VydmVyPy5wcm94eSkge1xuICAgICAgICBjb25zdCBtaWRkbGV3YXJlcyA9IGdldFByb3h5TWlkZGxld2FyZXMoZGV2Q29uZmlnLmRldlNlcnZlcj8ucHJveHkpO1xuICAgICAgICBpZiAobWlkZGxld2FyZXMpIHtcbiAgICAgICAgICB3cmFwcGluZ0FwcC51c2UoLi4ubWlkZGxld2FyZXMubWFwKCh7IG1pZGRsZXdhcmUgfSkgPT4gbWlkZGxld2FyZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU0VSVkVSIFNJREUgUkVOREVSSU5HXG4gICAgbGV0IHJlbmRlcjogUmVuZGVyID0gKGF3YWl0IGltcG9ydChwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgZW50cnlwb2ludCkpKVxuICAgICAgLmRlZmF1bHQ7XG5cbiAgICBpZiAoJ2RlZmF1bHQnIGluIHJlbmRlcikge1xuICAgICAgcmVuZGVyID0gcmVuZGVyLmRlZmF1bHQgYXMgYW55O1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgcmVuZGVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBkZWZhdWx0IGV4cG9ydCBvZiAke3BhdGguam9pbihcbiAgICAgICAgICBwcm9jZXNzLmN3ZCgpLFxuICAgICAgICAgIGVudHJ5cG9pbnQsXG4gICAgICAgICl9IGlzIG5vdCBhIGZ1bmN0aW9uYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgd3JhcHBpbmdBcHAuZ2V0KFxuICAgICAgJy8qJyxcbiAgICAgIGhhbmRsZUVycm9ycyhhc3luYyBmdW5jdGlvbiAocmVxOiBhbnksIHJlczogYW55KSB7XG4gICAgICAgIGlmIChyZXEudXJsLmVuZHNXaXRoKCdmYXZpY29uLmljbycpKSB7XG4gICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpO1xuICAgICAgICAgIHJlcy5zZW5kKCdub3QgZm91bmQnKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnNvY2tldC5vbignZXJyb3InLCAoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYXRhbCcsIGVycm9yKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYXdhaXQgcmVuZGVyKGNsaWVudE1hbmlmZXN0LCByZXEsIHJlcyk7XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgc2VydmVyID0gd3JhcHBpbmdBcHBcbiAgICAgIC5saXN0ZW4oUE9SVCwgKCkgPT4ge1xuICAgICAgICBsb2FkZXIuaW5mbyhgTGlzdGVuaW5nIGF0ICR7UE9SVH0uLi5gKTtcbiAgICAgIH0pXG4gICAgICAub24oJ2Vycm9yJywgZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcbiAgICAgICAgaWYgKGVycm9yLnN5c2NhbGwgIT09ICdsaXN0ZW4nKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNQaXBlID0gKHBvcnRPclBpcGU6IHN0cmluZyB8IG51bWJlcikgPT5cbiAgICAgICAgICBOdW1iZXIuaXNOYU4ocG9ydE9yUGlwZSk7XG4gICAgICAgIGNvbnN0IGJpbmQgPSBpc1BpcGUoUE9SVCkgPyAnUGlwZSAnICsgUE9SVCA6ICdQb3J0ICcgKyBQT1JUO1xuICAgICAgICBzd2l0Y2ggKGVycm9yLmNvZGUpIHtcbiAgICAgICAgICBjYXNlICdFQUNDRVMnOlxuICAgICAgICAgICAgbG9hZGVyLmZhaWwoYmluZCArICcgcmVxdWlyZXMgZWxldmF0ZWQgcHJpdmlsZWdlcycpO1xuICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuICAgICAgICAgIGNhc2UgJ0VBRERSSU5VU0UnOlxuICAgICAgICAgICAgbG9hZGVyLmZhaWwoYmluZCArICcgaXMgYWxyZWFkeSBpbiB1c2UnKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgbGV0IG1hbmlmZXN0ID0gYXdhaXQgaW1wb3J0KG1hbmlmZXN0UGF0aCwge1xuICAgIGFzc2VydDogeyB0eXBlOiAnanNvbicgfSxcbiAgfSk7XG4gIC8vIGhhbmRsZSBpbmNvbnNpc3RlbnQgaW1wb3J0IGNvbmRpdGlvbnNcbiAgaWYgKCdkZWZhdWx0JyBpbiBtYW5pZmVzdCkge1xuICAgIG1hbmlmZXN0ID0gbWFuaWZlc3QuZGVmYXVsdDtcbiAgfVxuICBhd2FpdCBpbml0aWFsaXplQXBwKG1hbmlmZXN0KTtcblxuICBwcm9jZXNzLm9uKCdTSUdJTlQnLCAoKSA9PiB7XG4gICAgbG9hZGVyLndhcm4oJ1JlY2VpdmVkIFNJR0lOVCwgZGV2c2VydmVyIHNodXR0aW5nIGRvd24nKTtcbiAgICBpZiAoc2VydmVyKSBjb25zb2xlLmxvZygnQ2xvc2luZyBzZXJ2ZXInKTtcbiAgICBzZXJ2ZXI/LmNsb3NlKCgpID0+IHtcbiAgICAgIGxvYWRlci5pbmZvKCdTZXJ2ZXIgY2xvc2VkJyk7XG4gICAgfSk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldE1hbmlmZXN0UGF0aEZyb21XZWJwYWNrY29uZmlnKFxuICB3ZWJwYWNrQ29uZmlnOiB3ZWJwYWNrLkNvbmZpZ3VyYXRpb24sXG4pIHtcbiAgY29uc3QgbWFuaWZlc3RGaWxlbmFtZTogc3RyaW5nID1cbiAgICAoXG4gICAgICB3ZWJwYWNrQ29uZmlnPy5wbHVnaW5zPy5maW5kKHBsdWdpbiA9PiB7XG4gICAgICAgIHJldHVybiBwbHVnaW4/LmNvbnN0cnVjdG9yLm5hbWUgPT09ICdTdGF0c1dyaXRlclBsdWdpbic7XG4gICAgICB9KSBhcyBhbnlcbiAgICApPy5vcHRzPy5maWxlbmFtZSA/PyAnbWFuaWZlc3QuanNvbic7XG5cbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gcGF0aC5qb2luKFxuICAgIHdlYnBhY2tDb25maWc/Lm91dHB1dD8ucGF0aCA/PyAnJyxcbiAgICBtYW5pZmVzdEZpbGVuYW1lLFxuICApO1xuICByZXR1cm4gbWFuaWZlc3RQYXRoO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBQSxNQUFNLENBQUNDLE1BQU0sR0FDWEQsTUFBTSxDQUFDQyxNQUFNLElBQ2IsMEJBQTJCLFNBQVNBLE1BQU1BLENBQUNDLEVBQUUsRUFBRUMsR0FBRyxFQUFFO0VBQ2xELE9BQU9ILE1BQU0sQ0FBQ0ksU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ0osRUFBRSxFQUFFQyxHQUFHLENBQUM7QUFDdEQsQ0FBQztBQUNILE9BQU9JLFFBQVEsTUFBTSxhQUFhO0FBQ2xDLE9BQU9DLE9BQU8sTUFBd0IsU0FBUztBQUMvQyxPQUFPQyxNQUFNLE1BQU0sSUFBSTtBQUV2QixPQUFPQyxHQUFHLE1BQU0sS0FBSztBQUNyQixPQUFPQyxJQUFJLE1BQU0sTUFBTTtBQUN2QixTQUFTQyxTQUFTLFFBQVEsTUFBTTtBQUdoQyxPQUFPLG1DQUFtQztBQUMxQyxPQUFPQyxtQkFBbUIsTUFBTSwwQkFBMEI7QUFDMUQsU0FBU0MsZ0JBQWdCLFFBQVEsdUJBQXVCO0FBR3hEO0FBQ0EsSUFBSSxNQUFNLElBQUlDLE1BQU0sQ0FBQ0MsSUFBSSxFQUFFO0VBQ3pCLE1BQU1DLFVBQVUsR0FBR0MsT0FBTyxDQUFDQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0VBRWxDLElBQUksQ0FBQ0YsVUFBVSxFQUFFO0lBQ2ZHLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLFVBQVVILE9BQU8sQ0FBQ0MsSUFBSSxDQUFD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
|
|
160
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImNvbXByZXNzIiwiZXhwcmVzcyIsImRpc2tGcyIsIm9yYSIsInBhdGgiLCJwcm9taXNpZnkiLCJnZXRQcm94eU1pZGRsZXdhcmVzIiwiZ2V0V2VicGFja0NvbmZpZyIsImltcG9ydCIsIm1ldGEiLCJlbnRyeXBvaW50IiwicHJvY2VzcyIsImFyZ3YiLCJjb25zb2xlIiwibG9nIiwiZXhpdCIsInNlcnZlIiwib3B0aW9ucyIsIlBPUlQiLCJlbnYiLCJsb2FkZXIiLCJzdGFydCIsIndlYnBhY2tDb25maWciLCJtYW5pZmVzdFBhdGgiLCJnZXRNYW5pZmVzdFBhdGhGcm9tV2VicGFja2NvbmZpZyIsIm1vZGUiLCJyZWFkRmlsZSIsInNlcnZlciIsImhhbmRsZUVycm9ycyIsImZuIiwicmVxIiwicmVzIiwibmV4dCIsIngiLCJpbml0aWFsaXplQXBwIiwiY2xpZW50TWFuaWZlc3QiLCJpbmZvIiwiZmFpbCIsIndyYXBwaW5nQXBwIiwidXNlIiwic2VydmVBc3NldHMiLCJfcmVxJHVybCRzdWJzdHJpbmciLCJfcmVxJHVybCIsIl9jbGllbnRNYW5pZmVzdCRvdXRwdSIsImZpbGVuYW1lIiwidXJsIiwic3Vic3RyaW5nIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsImxlbmd0aCIsImFzc2V0UGF0aCIsImpvaW4iLCJvdXRwdXRQYXRoIiwiZXhpc3RzU3luYyIsImxzdGF0U3luYyIsImlzRGlyZWN0b3J5Iiwic2VuZEZpbGUiLCJlIiwic2VydmVQcm94eSIsIl9kZXZDb25maWckZGV2U2VydmVyIiwiZGV2Q29uZmlnIiwiZGV2U2VydmVyIiwicHJveHkiLCJfZGV2Q29uZmlnJGRldlNlcnZlcjIiLCJtaWRkbGV3YXJlcyIsIm1hcCIsIm1pZGRsZXdhcmUiLCJyZW5kZXIiLCJjd2QiLCJkZWZhdWx0IiwiRXJyb3IiLCJnZXQiLCJlbmRzV2l0aCIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJzZW5kIiwic29ja2V0Iiwib24iLCJlcnJvciIsImxpc3RlbiIsInN5c2NhbGwiLCJpc1BpcGUiLCJwb3J0T3JQaXBlIiwiTnVtYmVyIiwiaXNOYU4iLCJiaW5kIiwiY29kZSIsIm1hbmlmZXN0Iiwid2l0aCIsInR5cGUiLCJfc2VydmVyIiwid2FybiIsImNsb3NlIiwiX29wdHMkZmlsZW5hbWUiLCJfd2VicGFja0NvbmZpZyRwbHVnaW4iLCJfd2VicGFja0NvbmZpZyRvdXRwdXQiLCJfd2VicGFja0NvbmZpZyRvdXRwdXQyIiwibWFuaWZlc3RGaWxlbmFtZSIsInBsdWdpbnMiLCJmaW5kIiwicGx1Z2luIiwiY29uc3RydWN0b3IiLCJuYW1lIiwib3B0cyIsIm91dHB1dCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zY3JpcHRzL3NlcnZlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbk9iamVjdC5oYXNPd24gPVxuICBPYmplY3QuaGFzT3duIHx8XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIGZ1bmN0aW9uIGhhc093bihpdCwga2V5KSB7XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpdCwga2V5KTtcbiAgfTtcbmltcG9ydCBjb21wcmVzcyBmcm9tICdjb21wcmVzc2lvbic7XG5pbXBvcnQgZXhwcmVzcywgeyBOZXh0RnVuY3Rpb24gfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBkaXNrRnMgZnJvbSAnZnMnO1xuaW1wb3J0IHsgU2VydmVyLCBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCc7XG5pbXBvcnQgb3JhIGZyb20gJ29yYSc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IHdlYnBhY2sgZnJvbSAnd2VicGFjayc7XG5cbmltcG9ydCAnY3Jvc3MtZmV0Y2gvZGlzdC9ub2RlLXBvbHlmaWxsLmpzJztcbmltcG9ydCBnZXRQcm94eU1pZGRsZXdhcmVzIGZyb20gJy4vZ2V0UHJveHlNaWRkbGV3YXJlcy5qcyc7XG5pbXBvcnQgeyBnZXRXZWJwYWNrQ29uZmlnIH0gZnJvbSAnLi9nZXRXZWJwYWNrQ29uZmlnLmpzJztcbmltcG9ydCB7IFJlbmRlciB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vLyBydW4gZGlyZWN0bHkgZnJvbSBub2RlXG5pZiAoJ21haW4nIGluIGltcG9ydC5tZXRhKSB7XG4gIGNvbnN0IGVudHJ5cG9pbnQgPSBwcm9jZXNzLmFyZ3ZbMl07XG5cbiAgaWYgKCFlbnRyeXBvaW50KSB7XG4gICAgY29uc29sZS5sb2coYFVzYWdlOiAke3Byb2Nlc3MuYXJndlswXX0gPHNlcnZlci1lbnRyeXBvaW50PmApO1xuICAgIHByb2Nlc3MuZXhpdCgtMSk7XG4gIH1cbiAgc2VydmUoZW50cnlwb2ludCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHNlcnZlKFxuICBlbnRyeXBvaW50OiBzdHJpbmcsXG4gIG9wdGlvbnM6IHsgc2VydmVBc3NldHM/OiBib29sZWFuOyBzZXJ2ZVByb3h5PzogYm9vbGVhbiB9ID0ge30sXG4pIHtcbiAgY29uc3QgUE9SVCA9IHByb2Nlc3MuZW52LlBPUlQgfHwgODA4MDtcblxuICBjb25zdCBsb2FkZXIgPSBvcmEoJ0luaXRpYWxpemluZycpLnN0YXJ0KCk7XG5cbiAgY29uc3Qgd2VicGFja0NvbmZpZyA9IGF3YWl0IGdldFdlYnBhY2tDb25maWcoKTtcblxuICBjb25zdCBtYW5pZmVzdFBhdGggPSBnZXRNYW5pZmVzdFBhdGhGcm9tV2VicGFja2NvbmZpZyhcbiAgICB3ZWJwYWNrQ29uZmlnKHt9LCB7IG1vZGU6ICdwcm9kdWN0aW9uJyB9KSxcbiAgKTtcblxuICBjb25zdCByZWFkRmlsZSA9IHByb21pc2lmeShkaXNrRnMucmVhZEZpbGUpO1xuICBsZXQgc2VydmVyOiBTZXJ2ZXIgfCB1bmRlZmluZWQ7XG5cbiAgZnVuY3Rpb24gaGFuZGxlRXJyb3JzPFxuICAgIEYgZXh0ZW5kcyAoXG4gICAgICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gICAgICByZXM6IFJlc3BvbnNlIHwgU2VydmVyUmVzcG9uc2UsXG4gICAgKSA9PiBQcm9taXNlPHZvaWQ+LFxuICA+KGZuOiBGKSB7XG4gICAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIChcbiAgICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICAgIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZSxcbiAgICAgIG5leHQ6IE5leHRGdW5jdGlvbixcbiAgICApIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBmbihyZXEsIHJlcyk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIG5leHQoeCk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8vIFN0YXJ0IHRoZSBleHByZXNzIHNlcnZlciBhZnRlciB0aGUgZmlyc3QgY29tcGlsYXRpb25cbiAgYXN5bmMgZnVuY3Rpb24gaW5pdGlhbGl6ZUFwcChjbGllbnRNYW5pZmVzdDogd2VicGFjay5TdGF0c0NvbXBpbGF0aW9uKSB7XG4gICAgbG9hZGVyLmluZm8oJ0xhdW5jaGluZyBzZXJ2ZXInKTtcbiAgICBpZiAoIWNsaWVudE1hbmlmZXN0KSB7XG4gICAgICBsb2FkZXIuZmFpbCgnTWFuaWZlc3Qgbm90IGZvdW5kJyk7XG4gICAgICAvLyBUT0RPOiBoYW5kbGUgbW9yZSBncmFjZWZ1bGx5XG4gICAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICAgIH1cblxuICAgIGNvbnN0IHdyYXBwaW5nQXBwID0gZXhwcmVzcygpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIC8vQHRzLWlnbm9yZVxuICAgIHdyYXBwaW5nQXBwLnVzZShjb21wcmVzcygpKTtcblxuICAgIC8vIEFTU0VUU1xuICAgIGlmIChvcHRpb25zLnNlcnZlQXNzZXRzKSB7XG4gICAgICB3cmFwcGluZ0FwcC51c2UoXG4gICAgICAgIGFzeW5jIChcbiAgICAgICAgICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gICAgICAgICAgcmVzOiBhbnksXG4gICAgICAgICAgbmV4dDogTmV4dEZ1bmN0aW9uLFxuICAgICAgICApID0+IHtcbiAgICAgICAgICBjb25zdCBmaWxlbmFtZSA9XG4gICAgICAgICAgICByZXEudXJsPy5zdWJzdHJpbmcoXG4gICAgICAgICAgICAgIChwcm9jZXNzLmVudi5XRUJQQUNLX1BVQkxJQ19QQVRIIGFzIHN0cmluZykubGVuZ3RoLFxuICAgICAgICAgICAgKSA/PyAnJztcbiAgICAgICAgICBjb25zdCBhc3NldFBhdGggPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICBjbGllbnRNYW5pZmVzdC5vdXRwdXRQYXRoID8/ICcnLFxuICAgICAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGRpc2tGcy5leGlzdHNTeW5jKGFzc2V0UGF0aCkgJiZcbiAgICAgICAgICAgICFkaXNrRnMubHN0YXRTeW5jKGFzc2V0UGF0aCkuaXNEaXJlY3RvcnkoKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcmVzLnNlbmRGaWxlKGFzc2V0UGF0aCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFBST1hJRVNcbiAgICBpZiAob3B0aW9ucy5zZXJ2ZVByb3h5KSB7XG4gICAgICBjb25zdCBkZXZDb25maWc6IHdlYnBhY2suQ29uZmlndXJhdGlvbiA9IHdlYnBhY2tDb25maWcoXG4gICAgICAgIHt9LFxuICAgICAgICB7IG1vZGU6ICdkZXZlbG9wbWVudCcgfSxcbiAgICAgICk7XG4gICAgICBpZiAoZGV2Q29uZmlnLmRldlNlcnZlcj8ucHJveHkpIHtcbiAgICAgICAgY29uc3QgbWlkZGxld2FyZXMgPSBnZXRQcm94eU1pZGRsZXdhcmVzKGRldkNvbmZpZy5kZXZTZXJ2ZXI/LnByb3h5KTtcbiAgICAgICAgaWYgKG1pZGRsZXdhcmVzKSB7XG4gICAgICAgICAgd3JhcHBpbmdBcHAudXNlKC4uLm1pZGRsZXdhcmVzLm1hcCgoeyBtaWRkbGV3YXJlIH0pID0+IG1pZGRsZXdhcmUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNFUlZFUiBTSURFIFJFTkRFUklOR1xuICAgIGxldCByZW5kZXI6IFJlbmRlciA9IChhd2FpdCBpbXBvcnQocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGVudHJ5cG9pbnQpKSlcbiAgICAgIC5kZWZhdWx0O1xuXG4gICAgaWYgKCdkZWZhdWx0JyBpbiByZW5kZXIpIHtcbiAgICAgIHJlbmRlciA9IHJlbmRlci5kZWZhdWx0IGFzIGFueTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHJlbmRlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgZGVmYXVsdCBleHBvcnQgb2YgJHtwYXRoLmpvaW4oXG4gICAgICAgICAgcHJvY2Vzcy5jd2QoKSxcbiAgICAgICAgICBlbnRyeXBvaW50LFxuICAgICAgICApfSBpcyBub3QgYSBmdW5jdGlvbmAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHdyYXBwaW5nQXBwLmdldChcbiAgICAgICcvKicsXG4gICAgICBoYW5kbGVFcnJvcnMoYXN5bmMgZnVuY3Rpb24gKHJlcTogYW55LCByZXM6IGFueSkge1xuICAgICAgICBpZiAocmVxLnVybC5lbmRzV2l0aCgnZmF2aWNvbi5pY28nKSkge1xuICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xuICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKTtcbiAgICAgICAgICByZXMuc2VuZCgnbm90IGZvdW5kJyk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJlcy5zb2NrZXQub24oJ2Vycm9yJywgKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRmF0YWwnLCBlcnJvcik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGF3YWl0IHJlbmRlcihjbGllbnRNYW5pZmVzdCwgcmVxLCByZXMpO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIHNlcnZlciA9IHdyYXBwaW5nQXBwXG4gICAgICAubGlzdGVuKFBPUlQsICgpID0+IHtcbiAgICAgICAgbG9hZGVyLmluZm8oYExpc3RlbmluZyBhdCAke1BPUlR9Li4uYCk7XG4gICAgICB9KVxuICAgICAgLm9uKCdlcnJvcicsIGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XG4gICAgICAgIGlmIChlcnJvci5zeXNjYWxsICE9PSAnbGlzdGVuJykge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzUGlwZSA9IChwb3J0T3JQaXBlOiBzdHJpbmcgfCBudW1iZXIpID0+XG4gICAgICAgICAgTnVtYmVyLmlzTmFOKHBvcnRPclBpcGUpO1xuICAgICAgICBjb25zdCBiaW5kID0gaXNQaXBlKFBPUlQpID8gJ1BpcGUgJyArIFBPUlQgOiAnUG9ydCAnICsgUE9SVDtcbiAgICAgICAgc3dpdGNoIChlcnJvci5jb2RlKSB7XG4gICAgICAgICAgY2FzZSAnRUFDQ0VTJzpcbiAgICAgICAgICAgIGxvYWRlci5mYWlsKGJpbmQgKyAnIHJlcXVpcmVzIGVsZXZhdGVkIHByaXZpbGVnZXMnKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcbiAgICAgICAgICBjYXNlICdFQUREUklOVVNFJzpcbiAgICAgICAgICAgIGxvYWRlci5mYWlsKGJpbmQgKyAnIGlzIGFscmVhZHkgaW4gdXNlJyk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWZhbGx0aHJvdWdoXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIGxldCBtYW5pZmVzdCA9IGF3YWl0IGltcG9ydChtYW5pZmVzdFBhdGgsIHsgd2l0aDogeyB0eXBlOiAnanNvbicgfSB9KTtcbiAgLy8gaGFuZGxlIGluY29uc2lzdGVudCBpbXBvcnQgY29uZGl0aW9uc1xuICBpZiAoJ2RlZmF1bHQnIGluIG1hbmlmZXN0KSB7XG4gICAgbWFuaWZlc3QgPSBtYW5pZmVzdC5kZWZhdWx0O1xuICB9XG4gIGF3YWl0IGluaXRpYWxpemVBcHAobWFuaWZlc3QpO1xuXG4gIHByb2Nlc3Mub24oJ1NJR0lOVCcsICgpID0+IHtcbiAgICBsb2FkZXIud2FybignUmVjZWl2ZWQgU0lHSU5ULCBkZXZzZXJ2ZXIgc2h1dHRpbmcgZG93bicpO1xuICAgIGlmIChzZXJ2ZXIpIGNvbnNvbGUubG9nKCdDbG9zaW5nIHNlcnZlcicpO1xuICAgIHNlcnZlcj8uY2xvc2UoKCkgPT4ge1xuICAgICAgbG9hZGVyLmluZm8oJ1NlcnZlciBjbG9zZWQnKTtcbiAgICB9KTtcbiAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0TWFuaWZlc3RQYXRoRnJvbVdlYnBhY2tjb25maWcoXG4gIHdlYnBhY2tDb25maWc6IHdlYnBhY2suQ29uZmlndXJhdGlvbixcbikge1xuICBjb25zdCBtYW5pZmVzdEZpbGVuYW1lOiBzdHJpbmcgPVxuICAgIChcbiAgICAgIHdlYnBhY2tDb25maWc/LnBsdWdpbnM/LmZpbmQocGx1Z2luID0+IHtcbiAgICAgICAgcmV0dXJuIHBsdWdpbj8uY29uc3RydWN0b3IubmFtZSA9PT0gJ1N0YXRzV3JpdGVyUGx1Z2luJztcbiAgICAgIH0pIGFzIGFueVxuICAgICk/Lm9wdHM/LmZpbGVuYW1lID8/ICdtYW5pZmVzdC5qc29uJztcblxuICBjb25zdCBtYW5pZmVzdFBhdGggPSBwYXRoLmpvaW4oXG4gICAgd2VicGFja0NvbmZpZz8ub3V0cHV0Py5wYXRoID8/ICcnLFxuICAgIG1hbmlmZXN0RmlsZW5hbWUsXG4gICk7XG4gIHJldHVybiBtYW5pZmVzdFBhdGg7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0FBLE1BQU0sQ0FBQ0MsTUFBTSxHQUNYRCxNQUFNLENBQUNDLE1BQU0sSUFDYiwwQkFBMkIsU0FBU0EsTUFBTUEsQ0FBQ0MsRUFBRSxFQUFFQyxHQUFHLEVBQUU7RUFDbEQsT0FBT0gsTUFBTSxDQUFDSSxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDSixFQUFFLEVBQUVDLEdBQUcsQ0FBQztBQUN0RCxDQUFDO0FBQ0gsT0FBT0ksUUFBUSxNQUFNLGFBQWE7QUFDbEMsT0FBT0MsT0FBTyxNQUF3QixTQUFTO0FBQy9DLE9BQU9DLE1BQU0sTUFBTSxJQUFJO0FBRXZCLE9BQU9DLEdBQUcsTUFBTSxLQUFLO0FBQ3JCLE9BQU9DLElBQUksTUFBTSxNQUFNO0FBQ3ZCLFNBQVNDLFNBQVMsUUFBUSxNQUFNO0FBR2hDLE9BQU8sbUNBQW1DO0FBQzFDLE9BQU9DLG1CQUFtQixNQUFNLDBCQUEwQjtBQUMxRCxTQUFTQyxnQkFBZ0IsUUFBUSx1QkFBdUI7QUFHeEQ7QUFDQSxJQUFJLE1BQU0sSUFBSUMsTUFBTSxDQUFDQyxJQUFJLEVBQUU7RUFDekIsTUFBTUMsVUFBVSxHQUFHQyxPQUFPLENBQUNDLElBQUksQ0FBQyxDQUFDLENBQUM7RUFFbEMsSUFBSSxDQUFDRixVQUFVLEVBQUU7SUFDZkcsT0FBTyxDQUFDQyxHQUFHLENBQUMsVUFBVUgsT0FBTyxDQUFDQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDO0lBQzVERCxPQUFPLENBQUNJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUNsQjtFQUNBQyxLQUFLLENBQUNOLFVBQVUsQ0FBQztBQUNuQjtBQUVBLGVBQWUsZUFBZU0sS0FBS0EsQ0FDakNOLFVBQWtCLEVBQ2xCTyxPQUF3RCxHQUFHLENBQUMsQ0FBQyxFQUM3RDtFQUNBLE1BQU1DLElBQUksR0FBR1AsT0FBTyxDQUFDUSxHQUFHLENBQUNELElBQUksSUFBSSxJQUFJO0VBRXJDLE1BQU1FLE1BQU0sR0FBR2pCLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQ2tCLEtBQUssQ0FBQyxDQUFDO0VBRTFDLE1BQU1DLGFBQWEsR0FBRyxNQUFNZixnQkFBZ0IsQ0FBQyxDQUFDO0VBRTlDLE1BQU1nQixZQUFZLEdBQUdDLGdDQUFnQyxDQUNuREYsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFO0lBQUVHLElBQUksRUFBRTtFQUFhLENBQUMsQ0FDMUMsQ0FBQztFQUVELE1BQU1DLFFBQVEsR0FBR3JCLFNBQVMsQ0FBQ0gsTUFBTSxDQUFDd0IsUUFBUSxDQUFDO0VBQzNDLElBQUlDLE1BQTBCO0VBRTlCLFNBQVNDLFlBQVlBLENBS25CQyxFQUFLLEVBQUU7SUFDUCxPQUFPLGdCQUNMQyxHQUE4QixFQUM5QkMsR0FBOEIsRUFDOUJDLElBQWtCLEVBQ2xCO01BQ0EsSUFBSTtRQUNGLE9BQU8sTUFBTUgsRUFBRSxDQUFDQyxHQUFHLEVBQUVDLEdBQUcsQ0FBQztNQUMzQixDQUFDLENBQUMsT0FBT0UsQ0FBQyxFQUFFO1FBQ1ZELElBQUksQ0FBQ0MsQ0FBQyxDQUFDO01BQ1Q7SUFDRixDQUFDO0VBQ0g7O0VBRUE7RUFDQSxlQUFlQyxhQUFhQSxDQUFDQyxjQUF3QyxFQUFFO0lBQ3JFZixNQUFNLENBQUNnQixJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDL0IsSUFBSSxDQUFDRCxjQUFjLEVBQUU7TUFDbkJmLE1BQU0sQ0FBQ2lCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztNQUNqQztNQUNBMUIsT0FBTyxDQUFDSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEI7SUFFQSxNQUFNdUIsV0FBVyxHQUFHckMsT0FBTyxDQUFDLENBQUM7SUFDN0I7SUFDQTtJQUNBcUMsV0FBVyxDQUFDQyxHQUFHLENBQUN2QyxRQUFRLENBQUMsQ0FBQyxDQUFDOztJQUUzQjtJQUNBLElBQUlpQixPQUFPLENBQUN1QixXQUFXLEVBQUU7TUFDdkJGLFdBQVcsQ0FBQ0MsR0FBRyxDQUNiLE9BQ0VULEdBQThCLEVBQzlCQyxHQUFRLEVBQ1JDLElBQWtCLEtBQ2Y7UUFBQSxJQUFBUyxrQkFBQSxFQUFBQyxRQUFBLEVBQUFDLHFCQUFBO1FBQ0gsTUFBTUMsUUFBUSxJQUFBSCxrQkFBQSxJQUFBQyxRQUFBLEdBQ1paLEdBQUcsQ0FBQ2UsR0FBRyxxQkFBUEgsUUFBQSxDQUFTSSxTQUFTLENBQ2ZuQyxPQUFPLENBQUNRLEdBQUcsQ0FBQzRCLG1CQUFtQixDQUFZQyxNQUM5QyxDQUFDLFlBQUFQLGtCQUFBLEdBQUksRUFBRTtRQUNULE1BQU1RLFNBQVMsR0FBRzdDLElBQUksQ0FBQzhDLElBQUksRUFBQVAscUJBQUEsR0FDekJSLGNBQWMsQ0FBQ2dCLFVBQVUsWUFBQVIscUJBQUEsR0FBSSxFQUFFLEVBQy9CQyxRQUNGLENBQUM7UUFFRCxJQUNFMUMsTUFBTSxDQUFDa0QsVUFBVSxDQUFDSCxTQUFTLENBQUMsSUFDNUIsQ0FBQy9DLE1BQU0sQ0FBQ21ELFNBQVMsQ0FBQ0osU0FBUyxDQUFDLENBQUNLLFdBQVcsQ0FBQyxDQUFDLEVBQzFDO1VBQ0EsSUFBSTtZQUNGdkIsR0FBRyxDQUFDd0IsUUFBUSxDQUFDTixTQUFTLENBQUM7VUFDekIsQ0FBQyxDQUFDLE9BQU9PLENBQUMsRUFBRTtZQUNWLE9BQU94QixJQUFJLENBQUMsQ0FBQztVQUNmO1FBQ0YsQ0FBQyxNQUFNO1VBQ0xBLElBQUksQ0FBQyxDQUFDO1FBQ1I7TUFDRixDQUNGLENBQUM7SUFDSDs7SUFFQTtJQUNBLElBQUlmLE9BQU8sQ0FBQ3dDLFVBQVUsRUFBRTtNQUFBLElBQUFDLG9CQUFBO01BQ3RCLE1BQU1DLFNBQWdDLEdBQUdyQyxhQUFhLENBQ3BELENBQUMsQ0FBQyxFQUNGO1FBQUVHLElBQUksRUFBRTtNQUFjLENBQ3hCLENBQUM7TUFDRCxLQUFBaUMsb0JBQUEsR0FBSUMsU0FBUyxDQUFDQyxTQUFTLGFBQW5CRixvQkFBQSxDQUFxQkcsS0FBSyxFQUFFO1FBQUEsSUFBQUMscUJBQUE7UUFDOUIsTUFBTUMsV0FBVyxHQUFHekQsbUJBQW1CLEVBQUF3RCxxQkFBQSxHQUFDSCxTQUFTLENBQUNDLFNBQVMscUJBQW5CRSxxQkFBQSxDQUFxQkQsS0FBSyxDQUFDO1FBQ25FLElBQUlFLFdBQVcsRUFBRTtVQUNmekIsV0FBVyxDQUFDQyxHQUFHLENBQUMsR0FBR3dCLFdBQVcsQ0FBQ0MsR0FBRyxDQUFDLENBQUM7WUFBRUM7VUFBVyxDQUFDLEtBQUtBLFVBQVUsQ0FBQyxDQUFDO1FBQ3JFO01BQ0Y7SUFDRjs7SUFFQTtJQUNBLElBQUlDLE1BQWMsR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDOUQsSUFBSSxDQUFDOEMsSUFBSSxDQUFDdkMsT0FBTyxDQUFDd0QsR0FBRyxDQUFDLENBQUMsRUFBRXpELFVBQVUsQ0FBQyxDQUFDLEVBQ3JFMEQsT0FBTztJQUVWLElBQUksU0FBUyxJQUFJRixNQUFNLEVBQUU7TUFDdkJBLE1BQU0sR0FBR0EsTUFBTSxDQUFDRSxPQUFjO0lBQ2hDO0lBRUEsSUFBSSxPQUFPRixNQUFNLEtBQUssVUFBVSxFQUFFO01BQ2hDLE1BQU0sSUFBSUcsS0FBSyxDQUNiLHFCQUFxQmpFLElBQUksQ0FBQzhDLElBQUksQ0FDNUJ2QyxPQUFPLENBQUN3RCxHQUFHLENBQUMsQ0FBQyxFQUNiekQsVUFDRixDQUFDLG9CQUNILENBQUM7SUFDSDtJQUVBNEIsV0FBVyxDQUFDZ0MsR0FBRyxDQUNiLElBQUksRUFDSjFDLFlBQVksQ0FBQyxnQkFBZ0JFLEdBQVEsRUFBRUMsR0FBUSxFQUFFO01BQy9DLElBQUlELEdBQUcsQ0FBQ2UsR0FBRyxDQUFDMEIsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1FBQ25DeEMsR0FBRyxDQUFDeUMsVUFBVSxHQUFHLEdBQUc7UUFDcEJ6QyxHQUFHLENBQUMwQyxTQUFTLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQztRQUMxQzFDLEdBQUcsQ0FBQzJDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDckI7TUFDRjtNQUNBM0MsR0FBRyxDQUFDNEMsTUFBTSxDQUFDQyxFQUFFLENBQUMsT0FBTyxFQUFHQyxLQUFjLElBQUs7UUFDekNoRSxPQUFPLENBQUNnRSxLQUFLLENBQUMsT0FBTyxFQUFFQSxLQUFLLENBQUM7TUFDL0IsQ0FBQyxDQUFDO01BRUYsTUFBTVgsTUFBTSxDQUFDL0IsY0FBYyxFQUFFTCxHQUFHLEVBQUVDLEdBQUcsQ0FBQztJQUN4QyxDQUFDLENBQ0gsQ0FBQztJQUVESixNQUFNLEdBQUdXLFdBQVcsQ0FDakJ3QyxNQUFNLENBQUM1RCxJQUFJLEVBQUUsTUFBTTtNQUNsQkUsTUFBTSxDQUFDZ0IsSUFBSSxDQUFDLGdCQUFnQmxCLElBQUksS0FBSyxDQUFDO0lBQ3hDLENBQUMsQ0FBQyxDQUNEMEQsRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFVQyxLQUFVLEVBQUU7TUFDakMsSUFBSUEsS0FBSyxDQUFDRSxPQUFPLEtBQUssUUFBUSxFQUFFO1FBQzlCLE1BQU1GLEtBQUs7TUFDYjtNQUNBLE1BQU1HLE1BQU0sR0FBSUMsVUFBMkIsSUFDekNDLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDRixVQUFVLENBQUM7TUFDMUIsTUFBTUcsSUFBSSxHQUFHSixNQUFNLENBQUM5RCxJQUFJLENBQUMsR0FBRyxPQUFPLEdBQUdBLElBQUksR0FBRyxPQUFPLEdBQUdBLElBQUk7TUFDM0QsUUFBUTJELEtBQUssQ0FBQ1EsSUFBSTtRQUNoQixLQUFLLFFBQVE7VUFDWGpFLE1BQU0sQ0FBQ2lCLElBQUksQ0FBQytDLElBQUksR0FBRywrQkFBK0IsQ0FBQztVQUNuRHpFLE9BQU8sQ0FBQ0ksSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqQjtRQUNBLEtBQUssWUFBWTtVQUNmSyxNQUFNLENBQUNpQixJQUFJLENBQUMrQyxJQUFJLEdBQUcsb0JBQW9CLENBQUM7VUFDeEN6RSxPQUFPLENBQUNJLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDakI7UUFDQTtVQUNFLE1BQU04RCxLQUFLO01BQ2Y7SUFDRixDQUFDLENBQUM7RUFDTjtFQUVBLElBQUlTLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQy9ELFlBQVksRUFBRTtJQUFFZ0UsSUFBSSxFQUFFO01BQUVDLElBQUksRUFBRTtJQUFPO0VBQUUsQ0FBQyxDQUFDO0VBQ3JFO0VBQ0EsSUFBSSxTQUFTLElBQUlGLFFBQVEsRUFBRTtJQUN6QkEsUUFBUSxHQUFHQSxRQUFRLENBQUNsQixPQUFPO0VBQzdCO0VBQ0EsTUFBTWxDLGFBQWEsQ0FBQ29ELFFBQVEsQ0FBQztFQUU3QjNFLE9BQU8sQ0FBQ2lFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTTtJQUFBLElBQUFhLE9BQUE7SUFDekJyRSxNQUFNLENBQUNzRSxJQUFJLENBQUMsMENBQTBDLENBQUM7SUFDdkQsSUFBSS9ELE1BQU0sRUFBRWQsT0FBTyxDQUFDQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7SUFDekMsQ0FBQTJFLE9BQUEsR0FBQTlELE1BQU0sYUFBTjhELE9BQUEsQ0FBUUUsS0FBSyxDQUFDLE1BQU07TUFDbEJ2RSxNQUFNLENBQUNnQixJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUMsQ0FBQztJQUNGekIsT0FBTyxDQUFDSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFDbEIsQ0FBQyxDQUFDO0FBQ0o7QUFFQSxTQUFTUyxnQ0FBZ0NBLENBQ3ZDRixhQUFvQyxFQUNwQztFQUFBLElBQUFzRSxjQUFBLEVBQUFDLHFCQUFBLEVBQUFDLHFCQUFBLEVBQUFDLHNCQUFBO0VBQ0EsTUFBTUMsZ0JBQXdCLElBQUFKLGNBQUEsR0FFMUJ0RSxhQUFhLGFBQUF1RSxxQkFBQSxHQUFidkUsYUFBYSxDQUFFMkUsT0FBTyxjQUFBSixxQkFBQSxHQUF0QkEscUJBQUEsQ0FBd0JLLElBQUksQ0FBQ0MsTUFBTSxJQUFJO0lBQ3JDLE9BQU8sQ0FBQUEsTUFBTSxvQkFBTkEsTUFBTSxDQUFFQyxXQUFXLENBQUNDLElBQUksTUFBSyxtQkFBbUI7RUFDekQsQ0FBQyxDQUFDLGNBQUFSLHFCQUFBLEdBSEpBLHFCQUFBLENBSUdTLElBQUkscUJBSlBULHFCQUFBLENBSVNqRCxRQUFRLFlBQUFnRCxjQUFBLEdBQUksZUFBZTtFQUV0QyxNQUFNckUsWUFBWSxHQUFHbkIsSUFBSSxDQUFDOEMsSUFBSSxFQUFBNEMscUJBQUEsR0FDNUJ4RSxhQUFhLGFBQUF5RSxzQkFBQSxHQUFiekUsYUFBYSxDQUFFaUYsTUFBTSxxQkFBckJSLHNCQUFBLENBQXVCM0YsSUFBSSxZQUFBMEYscUJBQUEsR0FBSSxFQUFFLEVBQ2pDRSxnQkFDRixDQUFDO0VBQ0QsT0FBT3pFLFlBQVk7QUFDckIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/scripts/serve.ts"],"names":[],"mappings":";AAeA,OAAO,mCAAmC,CAAC;AAgB3C,wBAA8B,KAAK,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/scripts/serve.ts"],"names":[],"mappings":";AAeA,OAAO,mCAAmC,CAAC;AAgB3C,wBAA8B,KAAK,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,iBA0K9D"}
|
package/lib/scripts/serve.js
CHANGED
|
@@ -130,7 +130,7 @@ export default async function serve(entrypoint, options = {}) {
|
|
|
130
130
|
});
|
|
131
131
|
}
|
|
132
132
|
let manifest = await import(manifestPath, {
|
|
133
|
-
|
|
133
|
+
with: {
|
|
134
134
|
type: 'json'
|
|
135
135
|
}
|
|
136
136
|
});
|
|
@@ -157,4 +157,4 @@ function getManifestPathFromWebpackconfig(webpackConfig) {
|
|
|
157
157
|
const manifestPath = path.join((_webpackConfig$output = webpackConfig == null || (_webpackConfig$output2 = webpackConfig.output) == null ? void 0 : _webpackConfig$output2.path) != null ? _webpackConfig$output : '', manifestFilename);
|
|
158
158
|
return manifestPath;
|
|
159
159
|
}
|
|
160
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImNvbXByZXNzIiwiZXhwcmVzcyIsImRpc2tGcyIsIm9yYSIsInBhdGgiLCJwcm9taXNpZnkiLCJnZXRQcm94eU1pZGRsZXdhcmVzIiwiZ2V0V2VicGFja0NvbmZpZyIsImltcG9ydCIsIm1ldGEiLCJlbnRyeXBvaW50IiwicHJvY2VzcyIsImFyZ3YiLCJjb25zb2xlIiwibG9nIiwiZXhpdCIsInNlcnZlIiwib3B0aW9ucyIsIlBPUlQiLCJlbnYiLCJsb2FkZXIiLCJzdGFydCIsIndlYnBhY2tDb25maWciLCJtYW5pZmVzdFBhdGgiLCJnZXRNYW5pZmVzdFBhdGhGcm9tV2VicGFja2NvbmZpZyIsIm1vZGUiLCJyZWFkRmlsZSIsInNlcnZlciIsImhhbmRsZUVycm9ycyIsImZuIiwicmVxIiwicmVzIiwibmV4dCIsIngiLCJpbml0aWFsaXplQXBwIiwiY2xpZW50TWFuaWZlc3QiLCJpbmZvIiwiZmFpbCIsIndyYXBwaW5nQXBwIiwidXNlIiwic2VydmVBc3NldHMiLCJfcmVxJHVybCRzdWJzdHJpbmciLCJfcmVxJHVybCIsIl9jbGllbnRNYW5pZmVzdCRvdXRwdSIsImZpbGVuYW1lIiwidXJsIiwic3Vic3RyaW5nIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsImxlbmd0aCIsImFzc2V0UGF0aCIsImpvaW4iLCJvdXRwdXRQYXRoIiwiZXhpc3RzU3luYyIsImxzdGF0U3luYyIsImlzRGlyZWN0b3J5Iiwic2VuZEZpbGUiLCJlIiwic2VydmVQcm94eSIsIl9kZXZDb25maWckZGV2U2VydmVyIiwiZGV2Q29uZmlnIiwiZGV2U2VydmVyIiwicHJveHkiLCJfZGV2Q29uZmlnJGRldlNlcnZlcjIiLCJtaWRkbGV3YXJlcyIsIm1hcCIsIm1pZGRsZXdhcmUiLCJyZW5kZXIiLCJjd2QiLCJkZWZhdWx0IiwiRXJyb3IiLCJnZXQiLCJlbmRzV2l0aCIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJzZW5kIiwic29ja2V0Iiwib24iLCJlcnJvciIsImxpc3RlbiIsInN5c2NhbGwiLCJpc1BpcGUiLCJwb3J0T3JQaXBlIiwiTnVtYmVyIiwiaXNOYU4iLCJiaW5kIiwiY29kZSIsIm1hbmlmZXN0IiwiYXNzZXJ0IiwidHlwZSIsIl9zZXJ2ZXIiLCJ3YXJuIiwiY2xvc2UiLCJfb3B0cyRmaWxlbmFtZSIsIl93ZWJwYWNrQ29uZmlnJHBsdWdpbiIsIl93ZWJwYWNrQ29uZmlnJG91dHB1dCIsIl93ZWJwYWNrQ29uZmlnJG91dHB1dDIiLCJtYW5pZmVzdEZpbGVuYW1lIiwicGx1Z2lucyIsImZpbmQiLCJwbHVnaW4iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJvcHRzIiwib3V0cHV0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvc2VydmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuT2JqZWN0Lmhhc093biA9XG4gIE9iamVjdC5oYXNPd24gfHxcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gZnVuY3Rpb24gaGFzT3duKGl0LCBrZXkpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xuICB9O1xuaW1wb3J0IGNvbXByZXNzIGZyb20gJ2NvbXByZXNzaW9uJztcbmltcG9ydCBleHByZXNzLCB7IE5leHRGdW5jdGlvbiB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IGRpc2tGcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBTZXJ2ZXIsIEluY29taW5nTWVzc2FnZSwgU2VydmVyUmVzcG9uc2UgfSBmcm9tICdodHRwJztcbmltcG9ydCBvcmEgZnJvbSAnb3JhJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgd2VicGFjayBmcm9tICd3ZWJwYWNrJztcblxuaW1wb3J0ICdjcm9zcy1mZXRjaC9kaXN0L25vZGUtcG9seWZpbGwuanMnO1xuaW1wb3J0IGdldFByb3h5TWlkZGxld2FyZXMgZnJvbSAnLi9nZXRQcm94eU1pZGRsZXdhcmVzLmpzJztcbmltcG9ydCB7IGdldFdlYnBhY2tDb25maWcgfSBmcm9tICcuL2dldFdlYnBhY2tDb25maWcuanMnO1xuaW1wb3J0IHsgUmVuZGVyIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8vIHJ1biBkaXJlY3RseSBmcm9tIG5vZGVcbmlmICgnbWFpbicgaW4gaW1wb3J0Lm1ldGEpIHtcbiAgY29uc3QgZW50cnlwb2ludCA9IHByb2Nlc3MuYXJndlsyXTtcblxuICBpZiAoIWVudHJ5cG9pbnQpIHtcbiAgICBjb25zb2xlLmxvZyhgVXNhZ2U6ICR7cHJvY2Vzcy5hcmd2WzBdfSA8c2VydmVyLWVudHJ5cG9pbnQ+YCk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfVxuICBzZXJ2ZShlbnRyeXBvaW50KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gc2VydmUoXG4gIGVudHJ5cG9pbnQ6IHN0cmluZyxcbiAgb3B0aW9uczogeyBzZXJ2ZUFzc2V0cz86IGJvb2xlYW47IHNlcnZlUHJveHk/OiBib29sZWFuIH0gPSB7fSxcbikge1xuICBjb25zdCBQT1JUID0gcHJvY2Vzcy5lbnYuUE9SVCB8fCA4MDgwO1xuXG4gIGNvbnN0IGxvYWRlciA9IG9yYSgnSW5pdGlhbGl6aW5nJykuc3RhcnQoKTtcblxuICBjb25zdCB3ZWJwYWNrQ29uZmlnID0gYXdhaXQgZ2V0V2VicGFja0NvbmZpZygpO1xuXG4gIGNvbnN0IG1hbmlmZXN0UGF0aCA9IGdldE1hbmlmZXN0UGF0aEZyb21XZWJwYWNrY29uZmlnKFxuICAgIHdlYnBhY2tDb25maWcoe30sIHsgbW9kZTogJ3Byb2R1Y3Rpb24nIH0pLFxuICApO1xuXG4gIGNvbnN0IHJlYWRGaWxlID0gcHJvbWlzaWZ5KGRpc2tGcy5yZWFkRmlsZSk7XG4gIGxldCBzZXJ2ZXI6IFNlcnZlciB8IHVuZGVmaW5lZDtcblxuICBmdW5jdGlvbiBoYW5kbGVFcnJvcnM8XG4gICAgRiBleHRlbmRzIChcbiAgICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICAgIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZSxcbiAgICApID0+IFByb21pc2U8dm9pZD4sXG4gID4oZm46IEYpIHtcbiAgICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gKFxuICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgICAgbmV4dDogTmV4dEZ1bmN0aW9uLFxuICAgICkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGZuKHJlcSwgcmVzKTtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgbmV4dCh4KTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLy8gU3RhcnQgdGhlIGV4cHJlc3Mgc2VydmVyIGFmdGVyIHRoZSBmaXJzdCBjb21waWxhdGlvblxuICBhc3luYyBmdW5jdGlvbiBpbml0aWFsaXplQXBwKGNsaWVudE1hbmlmZXN0OiB3ZWJwYWNrLlN0YXRzQ29tcGlsYXRpb24pIHtcbiAgICBsb2FkZXIuaW5mbygnTGF1bmNoaW5nIHNlcnZlcicpO1xuICAgIGlmICghY2xpZW50TWFuaWZlc3QpIHtcbiAgICAgIGxvYWRlci5mYWlsKCdNYW5pZmVzdCBub3QgZm91bmQnKTtcbiAgICAgIC8vIFRPRE86IGhhbmRsZSBtb3JlIGdyYWNlZnVsbHlcbiAgICAgIHByb2Nlc3MuZXhpdCgtMSk7XG4gICAgfVxuXG4gICAgY29uc3Qgd3JhcHBpbmdBcHAgPSBleHByZXNzKCk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgLy9AdHMtaWdub3JlXG4gICAgd3JhcHBpbmdBcHAudXNlKGNvbXByZXNzKCkpO1xuXG4gICAgLy8gQVNTRVRTXG4gICAgaWYgKG9wdGlvbnMuc2VydmVBc3NldHMpIHtcbiAgICAgIHdyYXBwaW5nQXBwLnVzZShcbiAgICAgICAgYXN5bmMgKFxuICAgICAgICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICAgICAgICByZXM6IGFueSxcbiAgICAgICAgICBuZXh0OiBOZXh0RnVuY3Rpb24sXG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpbGVuYW1lID1cbiAgICAgICAgICAgIHJlcS51cmw/LnN1YnN0cmluZyhcbiAgICAgICAgICAgICAgKHByb2Nlc3MuZW52LldFQlBBQ0tfUFVCTElDX1BBVEggYXMgc3RyaW5nKS5sZW5ndGgsXG4gICAgICAgICAgICApID8/ICcnO1xuICAgICAgICAgIGNvbnN0IGFzc2V0UGF0aCA9IHBhdGguam9pbihcbiAgICAgICAgICAgIGNsaWVudE1hbmlmZXN0Lm91dHB1dFBhdGggPz8gJycsXG4gICAgICAgICAgICBmaWxlbmFtZSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZGlza0ZzLmV4aXN0c1N5bmMoYXNzZXRQYXRoKSAmJlxuICAgICAgICAgICAgIWRpc2tGcy5sc3RhdFN5bmMoYXNzZXRQYXRoKS5pc0RpcmVjdG9yeSgpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZXMuc2VuZEZpbGUoYXNzZXRQYXRoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gUFJPWElFU1xuICAgIGlmIChvcHRpb25zLnNlcnZlUHJveHkpIHtcbiAgICAgIGNvbnN0IGRldkNvbmZpZzogd2VicGFjay5Db25maWd1cmF0aW9uID0gd2VicGFja0NvbmZpZyhcbiAgICAgICAge30sXG4gICAgICAgIHsgbW9kZTogJ2RldmVsb3BtZW50JyB9LFxuICAgICAgKTtcbiAgICAgIGlmIChkZXZDb25maWcuZGV2U2VydmVyPy5wcm94eSkge1xuICAgICAgICBjb25zdCBtaWRkbGV3YXJlcyA9IGdldFByb3h5TWlkZGxld2FyZXMoZGV2Q29uZmlnLmRldlNlcnZlcj8ucHJveHkpO1xuICAgICAgICBpZiAobWlkZGxld2FyZXMpIHtcbiAgICAgICAgICB3cmFwcGluZ0FwcC51c2UoLi4ubWlkZGxld2FyZXMubWFwKCh7IG1pZGRsZXdhcmUgfSkgPT4gbWlkZGxld2FyZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU0VSVkVSIFNJREUgUkVOREVSSU5HXG4gICAgbGV0IHJlbmRlcjogUmVuZGVyID0gKGF3YWl0IGltcG9ydChwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgZW50cnlwb2ludCkpKVxuICAgICAgLmRlZmF1bHQ7XG5cbiAgICBpZiAoJ2RlZmF1bHQnIGluIHJlbmRlcikge1xuICAgICAgcmVuZGVyID0gcmVuZGVyLmRlZmF1bHQgYXMgYW55O1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgcmVuZGVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBkZWZhdWx0IGV4cG9ydCBvZiAke3BhdGguam9pbihcbiAgICAgICAgICBwcm9jZXNzLmN3ZCgpLFxuICAgICAgICAgIGVudHJ5cG9pbnQsXG4gICAgICAgICl9IGlzIG5vdCBhIGZ1bmN0aW9uYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgd3JhcHBpbmdBcHAuZ2V0KFxuICAgICAgJy8qJyxcbiAgICAgIGhhbmRsZUVycm9ycyhhc3luYyBmdW5jdGlvbiAocmVxOiBhbnksIHJlczogYW55KSB7XG4gICAgICAgIGlmIChyZXEudXJsLmVuZHNXaXRoKCdmYXZpY29uLmljbycpKSB7XG4gICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpO1xuICAgICAgICAgIHJlcy5zZW5kKCdub3QgZm91bmQnKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnNvY2tldC5vbignZXJyb3InLCAoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYXRhbCcsIGVycm9yKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYXdhaXQgcmVuZGVyKGNsaWVudE1hbmlmZXN0LCByZXEsIHJlcyk7XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgc2VydmVyID0gd3JhcHBpbmdBcHBcbiAgICAgIC5saXN0ZW4oUE9SVCwgKCkgPT4ge1xuICAgICAgICBsb2FkZXIuaW5mbyhgTGlzdGVuaW5nIGF0ICR7UE9SVH0uLi5gKTtcbiAgICAgIH0pXG4gICAgICAub24oJ2Vycm9yJywgZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcbiAgICAgICAgaWYgKGVycm9yLnN5c2NhbGwgIT09ICdsaXN0ZW4nKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNQaXBlID0gKHBvcnRPclBpcGU6IHN0cmluZyB8IG51bWJlcikgPT5cbiAgICAgICAgICBOdW1iZXIuaXNOYU4ocG9ydE9yUGlwZSk7XG4gICAgICAgIGNvbnN0IGJpbmQgPSBpc1BpcGUoUE9SVCkgPyAnUGlwZSAnICsgUE9SVCA6ICdQb3J0ICcgKyBQT1JUO1xuICAgICAgICBzd2l0Y2ggKGVycm9yLmNvZGUpIHtcbiAgICAgICAgICBjYXNlICdFQUNDRVMnOlxuICAgICAgICAgICAgbG9hZGVyLmZhaWwoYmluZCArICcgcmVxdWlyZXMgZWxldmF0ZWQgcHJpdmlsZWdlcycpO1xuICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuICAgICAgICAgIGNhc2UgJ0VBRERSSU5VU0UnOlxuICAgICAgICAgICAgbG9hZGVyLmZhaWwoYmluZCArICcgaXMgYWxyZWFkeSBpbiB1c2UnKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgbGV0IG1hbmlmZXN0ID0gYXdhaXQgaW1wb3J0KG1hbmlmZXN0UGF0aCwge1xuICAgIGFzc2VydDogeyB0eXBlOiAnanNvbicgfSxcbiAgfSk7XG4gIC8vIGhhbmRsZSBpbmNvbnNpc3RlbnQgaW1wb3J0IGNvbmRpdGlvbnNcbiAgaWYgKCdkZWZhdWx0JyBpbiBtYW5pZmVzdCkge1xuICAgIG1hbmlmZXN0ID0gbWFuaWZlc3QuZGVmYXVsdDtcbiAgfVxuICBhd2FpdCBpbml0aWFsaXplQXBwKG1hbmlmZXN0KTtcblxuICBwcm9jZXNzLm9uKCdTSUdJTlQnLCAoKSA9PiB7XG4gICAgbG9hZGVyLndhcm4oJ1JlY2VpdmVkIFNJR0lOVCwgZGV2c2VydmVyIHNodXR0aW5nIGRvd24nKTtcbiAgICBpZiAoc2VydmVyKSBjb25zb2xlLmxvZygnQ2xvc2luZyBzZXJ2ZXInKTtcbiAgICBzZXJ2ZXI/LmNsb3NlKCgpID0+IHtcbiAgICAgIGxvYWRlci5pbmZvKCdTZXJ2ZXIgY2xvc2VkJyk7XG4gICAgfSk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldE1hbmlmZXN0UGF0aEZyb21XZWJwYWNrY29uZmlnKFxuICB3ZWJwYWNrQ29uZmlnOiB3ZWJwYWNrLkNvbmZpZ3VyYXRpb24sXG4pIHtcbiAgY29uc3QgbWFuaWZlc3RGaWxlbmFtZTogc3RyaW5nID1cbiAgICAoXG4gICAgICB3ZWJwYWNrQ29uZmlnPy5wbHVnaW5zPy5maW5kKHBsdWdpbiA9PiB7XG4gICAgICAgIHJldHVybiBwbHVnaW4/LmNvbnN0cnVjdG9yLm5hbWUgPT09ICdTdGF0c1dyaXRlclBsdWdpbic7XG4gICAgICB9KSBhcyBhbnlcbiAgICApPy5vcHRzPy5maWxlbmFtZSA/PyAnbWFuaWZlc3QuanNvbic7XG5cbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gcGF0aC5qb2luKFxuICAgIHdlYnBhY2tDb25maWc/Lm91dHB1dD8ucGF0aCA/PyAnJyxcbiAgICBtYW5pZmVzdEZpbGVuYW1lLFxuICApO1xuICByZXR1cm4gbWFuaWZlc3RQYXRoO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBQSxNQUFNLENBQUNDLE1BQU0sR0FDWEQsTUFBTSxDQUFDQyxNQUFNLElBQ2IsMEJBQTJCLFNBQVNBLE1BQU1BLENBQUNDLEVBQUUsRUFBRUMsR0FBRyxFQUFFO0VBQ2xELE9BQU9ILE1BQU0sQ0FBQ0ksU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ0osRUFBRSxFQUFFQyxHQUFHLENBQUM7QUFDdEQsQ0FBQztBQUNILE9BQU9JLFFBQVEsTUFBTSxhQUFhO0FBQ2xDLE9BQU9DLE9BQU8sTUFBd0IsU0FBUztBQUMvQyxPQUFPQyxNQUFNLE1BQU0sSUFBSTtBQUV2QixPQUFPQyxHQUFHLE1BQU0sS0FBSztBQUNyQixPQUFPQyxJQUFJLE1BQU0sTUFBTTtBQUN2QixTQUFTQyxTQUFTLFFBQVEsTUFBTTtBQUdoQyxPQUFPLG1DQUFtQztBQUMxQyxPQUFPQyxtQkFBbUIsTUFBTSwwQkFBMEI7QUFDMUQsU0FBU0MsZ0JBQWdCLFFBQVEsdUJBQXVCO0FBR3hEO0FBQ0EsSUFBSSxNQUFNLElBQUlDLE1BQU0sQ0FBQ0MsSUFBSSxFQUFFO0VBQ3pCLE1BQU1DLFVBQVUsR0FBR0MsT0FBTyxDQUFDQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0VBRWxDLElBQUksQ0FBQ0YsVUFBVSxFQUFFO0lBQ2ZHLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLFVBQVVILE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLENB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
|
|
160
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImNvbXByZXNzIiwiZXhwcmVzcyIsImRpc2tGcyIsIm9yYSIsInBhdGgiLCJwcm9taXNpZnkiLCJnZXRQcm94eU1pZGRsZXdhcmVzIiwiZ2V0V2VicGFja0NvbmZpZyIsImltcG9ydCIsIm1ldGEiLCJlbnRyeXBvaW50IiwicHJvY2VzcyIsImFyZ3YiLCJjb25zb2xlIiwibG9nIiwiZXhpdCIsInNlcnZlIiwib3B0aW9ucyIsIlBPUlQiLCJlbnYiLCJsb2FkZXIiLCJzdGFydCIsIndlYnBhY2tDb25maWciLCJtYW5pZmVzdFBhdGgiLCJnZXRNYW5pZmVzdFBhdGhGcm9tV2VicGFja2NvbmZpZyIsIm1vZGUiLCJyZWFkRmlsZSIsInNlcnZlciIsImhhbmRsZUVycm9ycyIsImZuIiwicmVxIiwicmVzIiwibmV4dCIsIngiLCJpbml0aWFsaXplQXBwIiwiY2xpZW50TWFuaWZlc3QiLCJpbmZvIiwiZmFpbCIsIndyYXBwaW5nQXBwIiwidXNlIiwic2VydmVBc3NldHMiLCJfcmVxJHVybCRzdWJzdHJpbmciLCJfcmVxJHVybCIsIl9jbGllbnRNYW5pZmVzdCRvdXRwdSIsImZpbGVuYW1lIiwidXJsIiwic3Vic3RyaW5nIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsImxlbmd0aCIsImFzc2V0UGF0aCIsImpvaW4iLCJvdXRwdXRQYXRoIiwiZXhpc3RzU3luYyIsImxzdGF0U3luYyIsImlzRGlyZWN0b3J5Iiwic2VuZEZpbGUiLCJlIiwic2VydmVQcm94eSIsIl9kZXZDb25maWckZGV2U2VydmVyIiwiZGV2Q29uZmlnIiwiZGV2U2VydmVyIiwicHJveHkiLCJfZGV2Q29uZmlnJGRldlNlcnZlcjIiLCJtaWRkbGV3YXJlcyIsIm1hcCIsIm1pZGRsZXdhcmUiLCJyZW5kZXIiLCJjd2QiLCJkZWZhdWx0IiwiRXJyb3IiLCJnZXQiLCJlbmRzV2l0aCIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJzZW5kIiwic29ja2V0Iiwib24iLCJlcnJvciIsImxpc3RlbiIsInN5c2NhbGwiLCJpc1BpcGUiLCJwb3J0T3JQaXBlIiwiTnVtYmVyIiwiaXNOYU4iLCJiaW5kIiwiY29kZSIsIm1hbmlmZXN0Iiwid2l0aCIsInR5cGUiLCJfc2VydmVyIiwid2FybiIsImNsb3NlIiwiX29wdHMkZmlsZW5hbWUiLCJfd2VicGFja0NvbmZpZyRwbHVnaW4iLCJfd2VicGFja0NvbmZpZyRvdXRwdXQiLCJfd2VicGFja0NvbmZpZyRvdXRwdXQyIiwibWFuaWZlc3RGaWxlbmFtZSIsInBsdWdpbnMiLCJmaW5kIiwicGx1Z2luIiwiY29uc3RydWN0b3IiLCJuYW1lIiwib3B0cyIsIm91dHB1dCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3NlcnZlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbk9iamVjdC5oYXNPd24gPVxuICBPYmplY3QuaGFzT3duIHx8XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIGZ1bmN0aW9uIGhhc093bihpdCwga2V5KSB7XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpdCwga2V5KTtcbiAgfTtcbmltcG9ydCBjb21wcmVzcyBmcm9tICdjb21wcmVzc2lvbic7XG5pbXBvcnQgZXhwcmVzcywgeyBOZXh0RnVuY3Rpb24gfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBkaXNrRnMgZnJvbSAnZnMnO1xuaW1wb3J0IHsgU2VydmVyLCBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCc7XG5pbXBvcnQgb3JhIGZyb20gJ29yYSc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IHdlYnBhY2sgZnJvbSAnd2VicGFjayc7XG5cbmltcG9ydCAnY3Jvc3MtZmV0Y2gvZGlzdC9ub2RlLXBvbHlmaWxsLmpzJztcbmltcG9ydCBnZXRQcm94eU1pZGRsZXdhcmVzIGZyb20gJy4vZ2V0UHJveHlNaWRkbGV3YXJlcy5qcyc7XG5pbXBvcnQgeyBnZXRXZWJwYWNrQ29uZmlnIH0gZnJvbSAnLi9nZXRXZWJwYWNrQ29uZmlnLmpzJztcbmltcG9ydCB7IFJlbmRlciB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vLyBydW4gZGlyZWN0bHkgZnJvbSBub2RlXG5pZiAoJ21haW4nIGluIGltcG9ydC5tZXRhKSB7XG4gIGNvbnN0IGVudHJ5cG9pbnQgPSBwcm9jZXNzLmFyZ3ZbMl07XG5cbiAgaWYgKCFlbnRyeXBvaW50KSB7XG4gICAgY29uc29sZS5sb2coYFVzYWdlOiAke3Byb2Nlc3MuYXJndlswXX0gPHNlcnZlci1lbnRyeXBvaW50PmApO1xuICAgIHByb2Nlc3MuZXhpdCgtMSk7XG4gIH1cbiAgc2VydmUoZW50cnlwb2ludCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHNlcnZlKFxuICBlbnRyeXBvaW50OiBzdHJpbmcsXG4gIG9wdGlvbnM6IHsgc2VydmVBc3NldHM/OiBib29sZWFuOyBzZXJ2ZVByb3h5PzogYm9vbGVhbiB9ID0ge30sXG4pIHtcbiAgY29uc3QgUE9SVCA9IHByb2Nlc3MuZW52LlBPUlQgfHwgODA4MDtcblxuICBjb25zdCBsb2FkZXIgPSBvcmEoJ0luaXRpYWxpemluZycpLnN0YXJ0KCk7XG5cbiAgY29uc3Qgd2VicGFja0NvbmZpZyA9IGF3YWl0IGdldFdlYnBhY2tDb25maWcoKTtcblxuICBjb25zdCBtYW5pZmVzdFBhdGggPSBnZXRNYW5pZmVzdFBhdGhGcm9tV2VicGFja2NvbmZpZyhcbiAgICB3ZWJwYWNrQ29uZmlnKHt9LCB7IG1vZGU6ICdwcm9kdWN0aW9uJyB9KSxcbiAgKTtcblxuICBjb25zdCByZWFkRmlsZSA9IHByb21pc2lmeShkaXNrRnMucmVhZEZpbGUpO1xuICBsZXQgc2VydmVyOiBTZXJ2ZXIgfCB1bmRlZmluZWQ7XG5cbiAgZnVuY3Rpb24gaGFuZGxlRXJyb3JzPFxuICAgIEYgZXh0ZW5kcyAoXG4gICAgICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gICAgICByZXM6IFJlc3BvbnNlIHwgU2VydmVyUmVzcG9uc2UsXG4gICAgKSA9PiBQcm9taXNlPHZvaWQ+LFxuICA+KGZuOiBGKSB7XG4gICAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIChcbiAgICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICAgIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZSxcbiAgICAgIG5leHQ6IE5leHRGdW5jdGlvbixcbiAgICApIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBmbihyZXEsIHJlcyk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIG5leHQoeCk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8vIFN0YXJ0IHRoZSBleHByZXNzIHNlcnZlciBhZnRlciB0aGUgZmlyc3QgY29tcGlsYXRpb25cbiAgYXN5bmMgZnVuY3Rpb24gaW5pdGlhbGl6ZUFwcChjbGllbnRNYW5pZmVzdDogd2VicGFjay5TdGF0c0NvbXBpbGF0aW9uKSB7XG4gICAgbG9hZGVyLmluZm8oJ0xhdW5jaGluZyBzZXJ2ZXInKTtcbiAgICBpZiAoIWNsaWVudE1hbmlmZXN0KSB7XG4gICAgICBsb2FkZXIuZmFpbCgnTWFuaWZlc3Qgbm90IGZvdW5kJyk7XG4gICAgICAvLyBUT0RPOiBoYW5kbGUgbW9yZSBncmFjZWZ1bGx5XG4gICAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICAgIH1cblxuICAgIGNvbnN0IHdyYXBwaW5nQXBwID0gZXhwcmVzcygpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIC8vQHRzLWlnbm9yZVxuICAgIHdyYXBwaW5nQXBwLnVzZShjb21wcmVzcygpKTtcblxuICAgIC8vIEFTU0VUU1xuICAgIGlmIChvcHRpb25zLnNlcnZlQXNzZXRzKSB7XG4gICAgICB3cmFwcGluZ0FwcC51c2UoXG4gICAgICAgIGFzeW5jIChcbiAgICAgICAgICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gICAgICAgICAgcmVzOiBhbnksXG4gICAgICAgICAgbmV4dDogTmV4dEZ1bmN0aW9uLFxuICAgICAgICApID0+IHtcbiAgICAgICAgICBjb25zdCBmaWxlbmFtZSA9XG4gICAgICAgICAgICByZXEudXJsPy5zdWJzdHJpbmcoXG4gICAgICAgICAgICAgIChwcm9jZXNzLmVudi5XRUJQQUNLX1BVQkxJQ19QQVRIIGFzIHN0cmluZykubGVuZ3RoLFxuICAgICAgICAgICAgKSA/PyAnJztcbiAgICAgICAgICBjb25zdCBhc3NldFBhdGggPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICBjbGllbnRNYW5pZmVzdC5vdXRwdXRQYXRoID8/ICcnLFxuICAgICAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGRpc2tGcy5leGlzdHNTeW5jKGFzc2V0UGF0aCkgJiZcbiAgICAgICAgICAgICFkaXNrRnMubHN0YXRTeW5jKGFzc2V0UGF0aCkuaXNEaXJlY3RvcnkoKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcmVzLnNlbmRGaWxlKGFzc2V0UGF0aCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFBST1hJRVNcbiAgICBpZiAob3B0aW9ucy5zZXJ2ZVByb3h5KSB7XG4gICAgICBjb25zdCBkZXZDb25maWc6IHdlYnBhY2suQ29uZmlndXJhdGlvbiA9IHdlYnBhY2tDb25maWcoXG4gICAgICAgIHt9LFxuICAgICAgICB7IG1vZGU6ICdkZXZlbG9wbWVudCcgfSxcbiAgICAgICk7XG4gICAgICBpZiAoZGV2Q29uZmlnLmRldlNlcnZlcj8ucHJveHkpIHtcbiAgICAgICAgY29uc3QgbWlkZGxld2FyZXMgPSBnZXRQcm94eU1pZGRsZXdhcmVzKGRldkNvbmZpZy5kZXZTZXJ2ZXI/LnByb3h5KTtcbiAgICAgICAgaWYgKG1pZGRsZXdhcmVzKSB7XG4gICAgICAgICAgd3JhcHBpbmdBcHAudXNlKC4uLm1pZGRsZXdhcmVzLm1hcCgoeyBtaWRkbGV3YXJlIH0pID0+IG1pZGRsZXdhcmUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNFUlZFUiBTSURFIFJFTkRFUklOR1xuICAgIGxldCByZW5kZXI6IFJlbmRlciA9IChhd2FpdCBpbXBvcnQocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGVudHJ5cG9pbnQpKSlcbiAgICAgIC5kZWZhdWx0O1xuXG4gICAgaWYgKCdkZWZhdWx0JyBpbiByZW5kZXIpIHtcbiAgICAgIHJlbmRlciA9IHJlbmRlci5kZWZhdWx0IGFzIGFueTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHJlbmRlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgZGVmYXVsdCBleHBvcnQgb2YgJHtwYXRoLmpvaW4oXG4gICAgICAgICAgcHJvY2Vzcy5jd2QoKSxcbiAgICAgICAgICBlbnRyeXBvaW50LFxuICAgICAgICApfSBpcyBub3QgYSBmdW5jdGlvbmAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHdyYXBwaW5nQXBwLmdldChcbiAgICAgICcvKicsXG4gICAgICBoYW5kbGVFcnJvcnMoYXN5bmMgZnVuY3Rpb24gKHJlcTogYW55LCByZXM6IGFueSkge1xuICAgICAgICBpZiAocmVxLnVybC5lbmRzV2l0aCgnZmF2aWNvbi5pY28nKSkge1xuICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xuICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKTtcbiAgICAgICAgICByZXMuc2VuZCgnbm90IGZvdW5kJyk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJlcy5zb2NrZXQub24oJ2Vycm9yJywgKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRmF0YWwnLCBlcnJvcik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGF3YWl0IHJlbmRlcihjbGllbnRNYW5pZmVzdCwgcmVxLCByZXMpO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIHNlcnZlciA9IHdyYXBwaW5nQXBwXG4gICAgICAubGlzdGVuKFBPUlQsICgpID0+IHtcbiAgICAgICAgbG9hZGVyLmluZm8oYExpc3RlbmluZyBhdCAke1BPUlR9Li4uYCk7XG4gICAgICB9KVxuICAgICAgLm9uKCdlcnJvcicsIGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XG4gICAgICAgIGlmIChlcnJvci5zeXNjYWxsICE9PSAnbGlzdGVuJykge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzUGlwZSA9IChwb3J0T3JQaXBlOiBzdHJpbmcgfCBudW1iZXIpID0+XG4gICAgICAgICAgTnVtYmVyLmlzTmFOKHBvcnRPclBpcGUpO1xuICAgICAgICBjb25zdCBiaW5kID0gaXNQaXBlKFBPUlQpID8gJ1BpcGUgJyArIFBPUlQgOiAnUG9ydCAnICsgUE9SVDtcbiAgICAgICAgc3dpdGNoIChlcnJvci5jb2RlKSB7XG4gICAgICAgICAgY2FzZSAnRUFDQ0VTJzpcbiAgICAgICAgICAgIGxvYWRlci5mYWlsKGJpbmQgKyAnIHJlcXVpcmVzIGVsZXZhdGVkIHByaXZpbGVnZXMnKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcbiAgICAgICAgICBjYXNlICdFQUREUklOVVNFJzpcbiAgICAgICAgICAgIGxvYWRlci5mYWlsKGJpbmQgKyAnIGlzIGFscmVhZHkgaW4gdXNlJyk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWZhbGx0aHJvdWdoXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIGxldCBtYW5pZmVzdCA9IGF3YWl0IGltcG9ydChtYW5pZmVzdFBhdGgsIHsgd2l0aDogeyB0eXBlOiAnanNvbicgfSB9KTtcbiAgLy8gaGFuZGxlIGluY29uc2lzdGVudCBpbXBvcnQgY29uZGl0aW9uc1xuICBpZiAoJ2RlZmF1bHQnIGluIG1hbmlmZXN0KSB7XG4gICAgbWFuaWZlc3QgPSBtYW5pZmVzdC5kZWZhdWx0O1xuICB9XG4gIGF3YWl0IGluaXRpYWxpemVBcHAobWFuaWZlc3QpO1xuXG4gIHByb2Nlc3Mub24oJ1NJR0lOVCcsICgpID0+IHtcbiAgICBsb2FkZXIud2FybignUmVjZWl2ZWQgU0lHSU5ULCBkZXZzZXJ2ZXIgc2h1dHRpbmcgZG93bicpO1xuICAgIGlmIChzZXJ2ZXIpIGNvbnNvbGUubG9nKCdDbG9zaW5nIHNlcnZlcicpO1xuICAgIHNlcnZlcj8uY2xvc2UoKCkgPT4ge1xuICAgICAgbG9hZGVyLmluZm8oJ1NlcnZlciBjbG9zZWQnKTtcbiAgICB9KTtcbiAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0TWFuaWZlc3RQYXRoRnJvbVdlYnBhY2tjb25maWcoXG4gIHdlYnBhY2tDb25maWc6IHdlYnBhY2suQ29uZmlndXJhdGlvbixcbikge1xuICBjb25zdCBtYW5pZmVzdEZpbGVuYW1lOiBzdHJpbmcgPVxuICAgIChcbiAgICAgIHdlYnBhY2tDb25maWc/LnBsdWdpbnM/LmZpbmQocGx1Z2luID0+IHtcbiAgICAgICAgcmV0dXJuIHBsdWdpbj8uY29uc3RydWN0b3IubmFtZSA9PT0gJ1N0YXRzV3JpdGVyUGx1Z2luJztcbiAgICAgIH0pIGFzIGFueVxuICAgICk/Lm9wdHM/LmZpbGVuYW1lID8/ICdtYW5pZmVzdC5qc29uJztcblxuICBjb25zdCBtYW5pZmVzdFBhdGggPSBwYXRoLmpvaW4oXG4gICAgd2VicGFja0NvbmZpZz8ub3V0cHV0Py5wYXRoID8/ICcnLFxuICAgIG1hbmlmZXN0RmlsZW5hbWUsXG4gICk7XG4gIHJldHVybiBtYW5pZmVzdFBhdGg7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0FBLE1BQU0sQ0FBQ0MsTUFBTSxHQUNYRCxNQUFNLENBQUNDLE1BQU0sSUFDYiwwQkFBMkIsU0FBU0EsTUFBTUEsQ0FBQ0MsRUFBRSxFQUFFQyxHQUFHLEVBQUU7RUFDbEQsT0FBT0gsTUFBTSxDQUFDSSxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDSixFQUFFLEVBQUVDLEdBQUcsQ0FBQztBQUN0RCxDQUFDO0FBQ0gsT0FBT0ksUUFBUSxNQUFNLGFBQWE7QUFDbEMsT0FBT0MsT0FBTyxNQUF3QixTQUFTO0FBQy9DLE9BQU9DLE1BQU0sTUFBTSxJQUFJO0FBRXZCLE9BQU9DLEdBQUcsTUFBTSxLQUFLO0FBQ3JCLE9BQU9DLElBQUksTUFBTSxNQUFNO0FBQ3ZCLFNBQVNDLFNBQVMsUUFBUSxNQUFNO0FBR2hDLE9BQU8sbUNBQW1DO0FBQzFDLE9BQU9DLG1CQUFtQixNQUFNLDBCQUEwQjtBQUMxRCxTQUFTQyxnQkFBZ0IsUUFBUSx1QkFBdUI7QUFHeEQ7QUFDQSxJQUFJLE1BQU0sSUFBSUMsTUFBTSxDQUFDQyxJQUFJLEVBQUU7RUFDekIsTUFBTUMsVUFBVSxHQUFHQyxPQUFPLENBQUNDLElBQUksQ0FBQyxDQUFDLENBQUM7RUFFbEMsSUFBSSxDQUFDRixVQUFVLEVBQUU7SUFDZkcsT0FBTyxDQUFDQyxHQUFHLENBQUMsVUFBVUgsT0FBTyxDQUFDQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHNCQUFz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
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { initialState } from '@data-client/redux';
|
|
1
|
+
import { initialState } from '@data-client/react/redux';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
export default function dataClientSpout(options = {}) {
|
|
4
4
|
return next => async props => {
|
|
5
5
|
const nextProps = await next(props);
|
|
6
6
|
const [data, {
|
|
7
|
-
|
|
7
|
+
DataProvider
|
|
8
8
|
}] = await Promise.all([props.getInitialData('dataclient').catch(e => {
|
|
9
9
|
console.error('Data Client initial data could not load:', e);
|
|
10
10
|
return initialState;
|
|
@@ -14,7 +14,7 @@ export default function dataClientSpout(options = {}) {
|
|
|
14
14
|
}
|
|
15
15
|
return {
|
|
16
16
|
...nextProps,
|
|
17
|
-
app: /*#__PURE__*/_jsx(
|
|
17
|
+
app: /*#__PURE__*/_jsx(DataProvider, {
|
|
18
18
|
initialState: data,
|
|
19
19
|
managers: options == null || options.getManagers == null ? void 0 : options.getManagers(),
|
|
20
20
|
children: nextProps.app
|
|
@@ -22,4 +22,4 @@ export default function dataClientSpout(options = {}) {
|
|
|
22
22
|
};
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbml0aWFsU3RhdGUiLCJqc3giLCJfanN4IiwiZGF0YUNsaWVudFNwb3V0Iiwib3B0aW9ucyIsIm5leHQiLCJwcm9wcyIsIm5leHRQcm9wcyIsImRhdGEiLCJEYXRhUHJvdmlkZXIiLCJQcm9taXNlIiwiYWxsIiwiZ2V0SW5pdGlhbERhdGEiLCJjYXRjaCIsImUiLCJjb25zb2xlIiwiZXJyb3IiLCJhcHAiLCJtYW5hZ2VycyIsImdldE1hbmFnZXJzIiwiY2hpbGRyZW4iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3BvdXRzL2RhdGFDbGllbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgTWFuYWdlciB9IGZyb20gJ0BkYXRhLWNsaWVudC9yZWFjdCc7XG5pbXBvcnQgeyBpbml0aWFsU3RhdGUgfSBmcm9tICdAZGF0YS1jbGllbnQvcmVhY3QvcmVkdXgnO1xuXG5pbXBvcnQgdHlwZSB7IENsaWVudFNwb3V0IH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRhdGFDbGllbnRTcG91dChcbiAgb3B0aW9uczoge1xuICAgIGdldE1hbmFnZXJzPzogKCkgPT4gTWFuYWdlcltdO1xuICB9ID0ge30sXG4pOiBDbGllbnRTcG91dDx7IGdldEluaXRpYWxEYXRhOiAoa2V5OiBzdHJpbmcpID0+IFByb21pc2U8YW55PiB9PiB7XG4gIHJldHVybiBuZXh0ID0+IGFzeW5jIHByb3BzID0+IHtcbiAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KHByb3BzKTtcbiAgICBjb25zdCBbZGF0YSwgeyBEYXRhUHJvdmlkZXIgfV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBwcm9wcy5nZXRJbml0aWFsRGF0YSgnZGF0YWNsaWVudCcpLmNhdGNoKGUgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdEYXRhIENsaWVudCBpbml0aWFsIGRhdGEgY291bGQgbm90IGxvYWQ6JywgZSk7XG4gICAgICAgIHJldHVybiBpbml0aWFsU3RhdGU7XG4gICAgICB9KSxcbiAgICAgIGltcG9ydCgnLi9kYXRhQ2xpZW50LnByb3ZpZGVyLmpzJyksXG4gICAgXSk7XG5cbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0RhdGEgQ2xpZW50IGluaXQgZGF0YSBub3QgZm91bmQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgYXBwOiAoXG4gICAgICAgIDxEYXRhUHJvdmlkZXIgaW5pdGlhbFN0YXRlPXtkYXRhfSBtYW5hZ2Vycz17b3B0aW9ucz8uZ2V0TWFuYWdlcnM/LigpfT5cbiAgICAgICAgICB7bmV4dFByb3BzLmFwcH1cbiAgICAgICAgPC9EYXRhUHJvdmlkZXI+XG4gICAgICApLFxuICAgIH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLFlBQVksUUFBUSwwQkFBMEI7QUFBQyxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUFJeEQsZUFBZSxTQUFTQyxlQUFlQSxDQUNyQ0MsT0FFQyxHQUFHLENBQUMsQ0FBQyxFQUMwRDtFQUNoRSxPQUFPQyxJQUFJLElBQUksTUFBTUMsS0FBSyxJQUFJO0lBQzVCLE1BQU1DLFNBQVMsR0FBRyxNQUFNRixJQUFJLENBQUNDLEtBQUssQ0FBQztJQUNuQyxNQUFNLENBQUNFLElBQUksRUFBRTtNQUFFQztJQUFhLENBQUMsQ0FBQyxHQUFHLE1BQU1DLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLENBQ2pETCxLQUFLLENBQUNNLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQ0MsS0FBSyxDQUFDQyxDQUFDLElBQUk7TUFDNUNDLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDLDBDQUEwQyxFQUFFRixDQUFDLENBQUM7TUFDNUQsT0FBT2QsWUFBWTtJQUNyQixDQUFDLENBQUMsRUFDRixNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FDbkMsQ0FBQztJQUVGLElBQUksQ0FBQ1EsSUFBSSxFQUFFO01BQ1RPLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDLGlDQUFpQyxDQUFDO0lBQ2xEO0lBRUEsT0FBTztNQUNMLEdBQUdULFNBQVM7TUFDWlUsR0FBRyxlQUNEZixJQUFBLENBQUNPLFlBQVk7UUFBQ1QsWUFBWSxFQUFFUSxJQUFLO1FBQUNVLFFBQVEsRUFBRWQsT0FBTyxZQUFQQSxPQUFPLENBQUVlLFdBQVcsb0JBQXBCZixPQUFPLENBQUVlLFdBQVcsQ0FBRyxDQUFFO1FBQUFDLFFBQUEsRUFDbEViLFNBQVMsQ0FBQ1U7TUFBRyxDQUNGO0lBRWxCLENBQUM7RUFDSCxDQUFDO0FBQ0giLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
1
|
+
export { DataProvider } from '@data-client/react';
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEYXRhUHJvdmlkZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3BvdXRzL2RhdGFDbGllbnQucHJvdmlkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IERhdGFQcm92aWRlciB9IGZyb20gJ0BkYXRhLWNsaWVudC9yZWFjdCc7XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFlBQVksUUFBUSxvQkFBb0IiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -5,8 +5,8 @@ export default function dataClientSpout(options = {}) {
|
|
|
5
5
|
const managers = (_options$getManagers = options == null || options.getManagers == null ? void 0 : options.getManagers()) != null ? _options$getManagers : [new (await import('@data-client/react')).NetworkManager()];
|
|
6
6
|
const {
|
|
7
7
|
createPersistedStore
|
|
8
|
-
} = await import('@data-client/ssr');
|
|
9
|
-
const [
|
|
8
|
+
} = await import('@data-client/react/ssr');
|
|
9
|
+
const [ServerDataProvider, useReadyCacheState, controller, store] = createPersistedStore(managers);
|
|
10
10
|
const nextProps = await next({
|
|
11
11
|
...props,
|
|
12
12
|
controller,
|
|
@@ -18,7 +18,7 @@ export default function dataClientSpout(options = {}) {
|
|
|
18
18
|
...nextProps.initData,
|
|
19
19
|
dataclient: useReadyCacheState
|
|
20
20
|
},
|
|
21
|
-
app: /*#__PURE__*/_jsx(
|
|
21
|
+
app: /*#__PURE__*/_jsx(ServerDataProvider, {
|
|
22
22
|
children: nextProps.app
|
|
23
23
|
}),
|
|
24
24
|
// TODO: figure out how to only inject in next and not have to also put here
|
|
@@ -27,4 +27,4 @@ export default function dataClientSpout(options = {}) {
|
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkYXRhQ2xpZW50U3BvdXQiLCJvcHRpb25zIiwibmV4dCIsInByb3BzIiwiX29wdGlvbnMkZ2V0TWFuYWdlcnMiLCJtYW5hZ2VycyIsImdldE1hbmFnZXJzIiwiTmV0d29ya01hbmFnZXIiLCJjcmVhdGVQZXJzaXN0ZWRTdG9yZSIsIlNlcnZlckRhdGFQcm92aWRlciIsInVzZVJlYWR5Q2FjaGVTdGF0ZSIsImNvbnRyb2xsZXIiLCJzdG9yZSIsIm5leHRQcm9wcyIsImluaXREYXRhIiwiZGF0YWNsaWVudCIsImFwcCIsIl9qc3giLCJjaGlsZHJlbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zcG91dHMvZGF0YUNsaWVudC5zZXJ2ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgQ29udHJvbGxlcixcbiAgdHlwZSBNYW5hZ2VyLFxuICB0eXBlIFN0YXRlLFxuICB0eXBlIFN0b3JlLFxufSBmcm9tICdAZGF0YS1jbGllbnQvcmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7IFNlcnZlclNwb3V0IH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRhdGFDbGllbnRTcG91dChcbiAgb3B0aW9uczoge1xuICAgIGdldE1hbmFnZXJzPzogKCkgPT4gTWFuYWdlcltdO1xuICB9ID0ge30sXG4pOiBTZXJ2ZXJTcG91dDxcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHsgY29udHJvbGxlcjogQ29udHJvbGxlciB9ICYgeyBzdG9yZTogU3RvcmU8U3RhdGU8dW5rbm93bj4+IH0sXG4gIHsgaW5pdERhdGE/OiBSZWNvcmQ8c3RyaW5nLCAoKSA9PiB1bmtub3duPjsgc2NyaXB0cz86IFJlYWN0LlJlYWN0Tm9kZVtdIH1cbj4ge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgbWFuYWdlcnMgPSBvcHRpb25zPy5nZXRNYW5hZ2Vycz8uKCkgPz8gW1xuICAgICAgbmV3IChhd2FpdCBpbXBvcnQoJ0BkYXRhLWNsaWVudC9yZWFjdCcpKS5OZXR3b3JrTWFuYWdlcigpLFxuICAgIF07XG4gICAgY29uc3QgeyBjcmVhdGVQZXJzaXN0ZWRTdG9yZSB9ID0gYXdhaXQgaW1wb3J0KCdAZGF0YS1jbGllbnQvcmVhY3Qvc3NyJyk7XG4gICAgY29uc3QgW1NlcnZlckRhdGFQcm92aWRlciwgdXNlUmVhZHlDYWNoZVN0YXRlLCBjb250cm9sbGVyLCBzdG9yZV0gPVxuICAgICAgY3JlYXRlUGVyc2lzdGVkU3RvcmUobWFuYWdlcnMpO1xuXG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dCh7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNvbnRyb2xsZXIsXG4gICAgICBzdG9yZSxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgaW5pdERhdGE6IHtcbiAgICAgICAgLi4ubmV4dFByb3BzLmluaXREYXRhLFxuICAgICAgICBkYXRhY2xpZW50OiB1c2VSZWFkeUNhY2hlU3RhdGUsXG4gICAgICB9LFxuICAgICAgYXBwOiA8U2VydmVyRGF0YVByb3ZpZGVyPntuZXh0UHJvcHMuYXBwfTwvU2VydmVyRGF0YVByb3ZpZGVyPixcbiAgICAgIC8vIFRPRE86IGZpZ3VyZSBvdXQgaG93IHRvIG9ubHkgaW5qZWN0IGluIG5leHQgYW5kIG5vdCBoYXZlIHRvIGFsc28gcHV0IGhlcmVcbiAgICAgIGNvbnRyb2xsZXIsXG4gICAgICBzdG9yZSxcbiAgICB9O1xuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiO0FBU0EsZUFBZSxTQUFTQSxlQUFlQSxDQUNyQ0MsT0FFQyxHQUFHLENBQUMsQ0FBQyxFQUtOO0VBQ0EsT0FBT0MsSUFBSSxJQUFJLE1BQU1DLEtBQUssSUFBSTtJQUFBLElBQUFDLG9CQUFBO0lBQzVCLE1BQU1DLFFBQVEsSUFBQUQsb0JBQUEsR0FBR0gsT0FBTyxZQUFQQSxPQUFPLENBQUVLLFdBQVcsb0JBQXBCTCxPQUFPLENBQUVLLFdBQVcsQ0FBRyxDQUFDLFlBQUFGLG9CQUFBLEdBQUksQ0FDM0MsSUFBSSxDQUFDLE1BQU0sTUFBTSxDQUFDLG9CQUFvQixDQUFDLEVBQUVHLGNBQWMsQ0FBQyxDQUFDLENBQzFEO0lBQ0QsTUFBTTtNQUFFQztJQUFxQixDQUFDLEdBQUcsTUFBTSxNQUFNLENBQUMsd0JBQXdCLENBQUM7SUFDdkUsTUFBTSxDQUFDQyxrQkFBa0IsRUFBRUMsa0JBQWtCLEVBQUVDLFVBQVUsRUFBRUMsS0FBSyxDQUFDLEdBQy9ESixvQkFBb0IsQ0FBQ0gsUUFBUSxDQUFDO0lBRWhDLE1BQU1RLFNBQVMsR0FBRyxNQUFNWCxJQUFJLENBQUM7TUFDM0IsR0FBR0MsS0FBSztNQUNSUSxVQUFVO01BQ1ZDO0lBQ0YsQ0FBQyxDQUFDO0lBQ0YsT0FBTztNQUNMLEdBQUdDLFNBQVM7TUFDWkMsUUFBUSxFQUFFO1FBQ1IsR0FBR0QsU0FBUyxDQUFDQyxRQUFRO1FBQ3JCQyxVQUFVLEVBQUVMO01BQ2QsQ0FBQztNQUNETSxHQUFHLGVBQUVDLElBQUEsQ0FBQ1Isa0JBQWtCO1FBQUFTLFFBQUEsRUFBRUwsU0FBUyxDQUFDRztNQUFHLENBQXFCLENBQUM7TUFDN0Q7TUFDQUwsVUFBVTtNQUNWQztJQUNGLENBQUM7RUFDSCxDQUFDO0FBQ0giLCJpZ25vcmVMaXN0IjpbXX0=
|
package/lib/spouts/dataClient.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { initialState } from '@data-client/redux';
|
|
1
|
+
import { initialState } from '@data-client/react/redux';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
export default function dataClientSpout(options = {}) {
|
|
4
4
|
return next => async props => {
|
|
5
5
|
const nextProps = await next(props);
|
|
6
6
|
const [data, {
|
|
7
|
-
|
|
7
|
+
DataProvider
|
|
8
8
|
}] = await Promise.all([props.getInitialData('dataclient').catch(e => {
|
|
9
9
|
console.error('Data Client initial data could not load:', e);
|
|
10
10
|
return initialState;
|
|
@@ -14,7 +14,7 @@ export default function dataClientSpout(options = {}) {
|
|
|
14
14
|
}
|
|
15
15
|
return {
|
|
16
16
|
...nextProps,
|
|
17
|
-
app: /*#__PURE__*/_jsx(
|
|
17
|
+
app: /*#__PURE__*/_jsx(DataProvider, {
|
|
18
18
|
initialState: data,
|
|
19
19
|
managers: options == null || options.getManagers == null ? void 0 : options.getManagers(),
|
|
20
20
|
children: nextProps.app
|
|
@@ -22,4 +22,4 @@ export default function dataClientSpout(options = {}) {
|
|
|
22
22
|
};
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbml0aWFsU3RhdGUiLCJqc3giLCJfanN4IiwiZGF0YUNsaWVudFNwb3V0Iiwib3B0aW9ucyIsIm5leHQiLCJwcm9wcyIsIm5leHRQcm9wcyIsImRhdGEiLCJEYXRhUHJvdmlkZXIiLCJQcm9taXNlIiwiYWxsIiwiZ2V0SW5pdGlhbERhdGEiLCJjYXRjaCIsImUiLCJjb25zb2xlIiwiZXJyb3IiLCJhcHAiLCJtYW5hZ2VycyIsImdldE1hbmFnZXJzIiwiY2hpbGRyZW4iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3BvdXRzL2RhdGFDbGllbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgTWFuYWdlciB9IGZyb20gJ0BkYXRhLWNsaWVudC9yZWFjdCc7XG5pbXBvcnQgeyBpbml0aWFsU3RhdGUgfSBmcm9tICdAZGF0YS1jbGllbnQvcmVhY3QvcmVkdXgnO1xuXG5pbXBvcnQgdHlwZSB7IENsaWVudFNwb3V0IH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRhdGFDbGllbnRTcG91dChcbiAgb3B0aW9uczoge1xuICAgIGdldE1hbmFnZXJzPzogKCkgPT4gTWFuYWdlcltdO1xuICB9ID0ge30sXG4pOiBDbGllbnRTcG91dDx7IGdldEluaXRpYWxEYXRhOiAoa2V5OiBzdHJpbmcpID0+IFByb21pc2U8YW55PiB9PiB7XG4gIHJldHVybiBuZXh0ID0+IGFzeW5jIHByb3BzID0+IHtcbiAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KHByb3BzKTtcbiAgICBjb25zdCBbZGF0YSwgeyBEYXRhUHJvdmlkZXIgfV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBwcm9wcy5nZXRJbml0aWFsRGF0YSgnZGF0YWNsaWVudCcpLmNhdGNoKGUgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdEYXRhIENsaWVudCBpbml0aWFsIGRhdGEgY291bGQgbm90IGxvYWQ6JywgZSk7XG4gICAgICAgIHJldHVybiBpbml0aWFsU3RhdGU7XG4gICAgICB9KSxcbiAgICAgIGltcG9ydCgnLi9kYXRhQ2xpZW50LnByb3ZpZGVyLmpzJyksXG4gICAgXSk7XG5cbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0RhdGEgQ2xpZW50IGluaXQgZGF0YSBub3QgZm91bmQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgYXBwOiAoXG4gICAgICAgIDxEYXRhUHJvdmlkZXIgaW5pdGlhbFN0YXRlPXtkYXRhfSBtYW5hZ2Vycz17b3B0aW9ucz8uZ2V0TWFuYWdlcnM/LigpfT5cbiAgICAgICAgICB7bmV4dFByb3BzLmFwcH1cbiAgICAgICAgPC9EYXRhUHJvdmlkZXI+XG4gICAgICApLFxuICAgIH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLFlBQVksUUFBUSwwQkFBMEI7QUFBQyxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUFJeEQsZUFBZSxTQUFTQyxlQUFlQSxDQUNyQ0MsT0FFQyxHQUFHLENBQUMsQ0FBQyxFQUMwRDtFQUNoRSxPQUFPQyxJQUFJLElBQUksTUFBTUMsS0FBSyxJQUFJO0lBQzVCLE1BQU1DLFNBQVMsR0FBRyxNQUFNRixJQUFJLENBQUNDLEtBQUssQ0FBQztJQUNuQyxNQUFNLENBQUNFLElBQUksRUFBRTtNQUFFQztJQUFhLENBQUMsQ0FBQyxHQUFHLE1BQU1DLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLENBQ2pETCxLQUFLLENBQUNNLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQ0MsS0FBSyxDQUFDQyxDQUFDLElBQUk7TUFDNUNDLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDLDBDQUEwQyxFQUFFRixDQUFDLENBQUM7TUFDNUQsT0FBT2QsWUFBWTtJQUNyQixDQUFDLENBQUMsRUFDRixNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FDbkMsQ0FBQztJQUVGLElBQUksQ0FBQ1EsSUFBSSxFQUFFO01BQ1RPLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDLGlDQUFpQyxDQUFDO0lBQ2xEO0lBRUEsT0FBTztNQUNMLEdBQUdULFNBQVM7TUFDWlUsR0FBRyxlQUNEZixJQUFBLENBQUNPLFlBQVk7UUFBQ1QsWUFBWSxFQUFFUSxJQUFLO1FBQUNVLFFBQVEsRUFBRWQsT0FBTyxZQUFQQSxPQUFPLENBQUVlLFdBQVcsb0JBQXBCZixPQUFPLENBQUVlLFdBQVcsQ0FBRyxDQUFFO1FBQUFDLFFBQUEsRUFDbEViLFNBQVMsQ0FBQ1U7TUFBRyxDQUNGO0lBRWxCLENBQUM7RUFDSCxDQUFDO0FBQ0giLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { DataProvider } from '@data-client/react';
|
|
2
2
|
//# sourceMappingURL=dataClient.provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataClient.provider.d.ts","sourceRoot":"","sources":["../../src/spouts/dataClient.provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"dataClient.provider.d.ts","sourceRoot":"","sources":["../../src/spouts/dataClient.provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
1
|
+
export { DataProvider } from '@data-client/react';
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEYXRhUHJvdmlkZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3BvdXRzL2RhdGFDbGllbnQucHJvdmlkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IERhdGFQcm92aWRlciB9IGZyb20gJ0BkYXRhLWNsaWVudC9yZWFjdCc7XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFlBQVksUUFBUSxvQkFBb0IiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -5,8 +5,8 @@ export default function dataClientSpout(options = {}) {
|
|
|
5
5
|
const managers = (_options$getManagers = options == null || options.getManagers == null ? void 0 : options.getManagers()) != null ? _options$getManagers : [new (await import('@data-client/react')).NetworkManager()];
|
|
6
6
|
const {
|
|
7
7
|
createPersistedStore
|
|
8
|
-
} = await import('@data-client/ssr');
|
|
9
|
-
const [
|
|
8
|
+
} = await import('@data-client/react/ssr');
|
|
9
|
+
const [ServerDataProvider, useReadyCacheState, controller, store] = createPersistedStore(managers);
|
|
10
10
|
const nextProps = await next({
|
|
11
11
|
...props,
|
|
12
12
|
controller,
|
|
@@ -18,7 +18,7 @@ export default function dataClientSpout(options = {}) {
|
|
|
18
18
|
...nextProps.initData,
|
|
19
19
|
dataclient: useReadyCacheState
|
|
20
20
|
},
|
|
21
|
-
app: /*#__PURE__*/_jsx(
|
|
21
|
+
app: /*#__PURE__*/_jsx(ServerDataProvider, {
|
|
22
22
|
children: nextProps.app
|
|
23
23
|
}),
|
|
24
24
|
// TODO: figure out how to only inject in next and not have to also put here
|
|
@@ -27,4 +27,4 @@ export default function dataClientSpout(options = {}) {
|
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkYXRhQ2xpZW50U3BvdXQiLCJvcHRpb25zIiwibmV4dCIsInByb3BzIiwiX29wdGlvbnMkZ2V0TWFuYWdlcnMiLCJtYW5hZ2VycyIsImdldE1hbmFnZXJzIiwiTmV0d29ya01hbmFnZXIiLCJjcmVhdGVQZXJzaXN0ZWRTdG9yZSIsIlNlcnZlckRhdGFQcm92aWRlciIsInVzZVJlYWR5Q2FjaGVTdGF0ZSIsImNvbnRyb2xsZXIiLCJzdG9yZSIsIm5leHRQcm9wcyIsImluaXREYXRhIiwiZGF0YWNsaWVudCIsImFwcCIsIl9qc3giLCJjaGlsZHJlbiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcG91dHMvZGF0YUNsaWVudC5zZXJ2ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgQ29udHJvbGxlcixcbiAgdHlwZSBNYW5hZ2VyLFxuICB0eXBlIFN0YXRlLFxuICB0eXBlIFN0b3JlLFxufSBmcm9tICdAZGF0YS1jbGllbnQvcmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7IFNlcnZlclNwb3V0IH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRhdGFDbGllbnRTcG91dChcbiAgb3B0aW9uczoge1xuICAgIGdldE1hbmFnZXJzPzogKCkgPT4gTWFuYWdlcltdO1xuICB9ID0ge30sXG4pOiBTZXJ2ZXJTcG91dDxcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHsgY29udHJvbGxlcjogQ29udHJvbGxlciB9ICYgeyBzdG9yZTogU3RvcmU8U3RhdGU8dW5rbm93bj4+IH0sXG4gIHsgaW5pdERhdGE/OiBSZWNvcmQ8c3RyaW5nLCAoKSA9PiB1bmtub3duPjsgc2NyaXB0cz86IFJlYWN0LlJlYWN0Tm9kZVtdIH1cbj4ge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgbWFuYWdlcnMgPSBvcHRpb25zPy5nZXRNYW5hZ2Vycz8uKCkgPz8gW1xuICAgICAgbmV3IChhd2FpdCBpbXBvcnQoJ0BkYXRhLWNsaWVudC9yZWFjdCcpKS5OZXR3b3JrTWFuYWdlcigpLFxuICAgIF07XG4gICAgY29uc3QgeyBjcmVhdGVQZXJzaXN0ZWRTdG9yZSB9ID0gYXdhaXQgaW1wb3J0KCdAZGF0YS1jbGllbnQvcmVhY3Qvc3NyJyk7XG4gICAgY29uc3QgW1NlcnZlckRhdGFQcm92aWRlciwgdXNlUmVhZHlDYWNoZVN0YXRlLCBjb250cm9sbGVyLCBzdG9yZV0gPVxuICAgICAgY3JlYXRlUGVyc2lzdGVkU3RvcmUobWFuYWdlcnMpO1xuXG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dCh7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNvbnRyb2xsZXIsXG4gICAgICBzdG9yZSxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgaW5pdERhdGE6IHtcbiAgICAgICAgLi4ubmV4dFByb3BzLmluaXREYXRhLFxuICAgICAgICBkYXRhY2xpZW50OiB1c2VSZWFkeUNhY2hlU3RhdGUsXG4gICAgICB9LFxuICAgICAgYXBwOiA8U2VydmVyRGF0YVByb3ZpZGVyPntuZXh0UHJvcHMuYXBwfTwvU2VydmVyRGF0YVByb3ZpZGVyPixcbiAgICAgIC8vIFRPRE86IGZpZ3VyZSBvdXQgaG93IHRvIG9ubHkgaW5qZWN0IGluIG5leHQgYW5kIG5vdCBoYXZlIHRvIGFsc28gcHV0IGhlcmVcbiAgICAgIGNvbnRyb2xsZXIsXG4gICAgICBzdG9yZSxcbiAgICB9O1xuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiO0FBU0EsZUFBZSxTQUFTQSxlQUFlQSxDQUNyQ0MsT0FFQyxHQUFHLENBQUMsQ0FBQyxFQUtOO0VBQ0EsT0FBT0MsSUFBSSxJQUFJLE1BQU1DLEtBQUssSUFBSTtJQUFBLElBQUFDLG9CQUFBO0lBQzVCLE1BQU1DLFFBQVEsSUFBQUQsb0JBQUEsR0FBR0gsT0FBTyxZQUFQQSxPQUFPLENBQUVLLFdBQVcsb0JBQXBCTCxPQUFPLENBQUVLLFdBQVcsQ0FBRyxDQUFDLFlBQUFGLG9CQUFBLEdBQUksQ0FDM0MsSUFBSSxDQUFDLE1BQU0sTUFBTSxDQUFDLG9CQUFvQixDQUFDLEVBQUVHLGNBQWMsQ0FBQyxDQUFDLENBQzFEO0lBQ0QsTUFBTTtNQUFFQztJQUFxQixDQUFDLEdBQUcsTUFBTSxNQUFNLENBQUMsd0JBQXdCLENBQUM7SUFDdkUsTUFBTSxDQUFDQyxrQkFBa0IsRUFBRUMsa0JBQWtCLEVBQUVDLFVBQVUsRUFBRUMsS0FBSyxDQUFDLEdBQy9ESixvQkFBb0IsQ0FBQ0gsUUFBUSxDQUFDO0lBRWhDLE1BQU1RLFNBQVMsR0FBRyxNQUFNWCxJQUFJLENBQUM7TUFDM0IsR0FBR0MsS0FBSztNQUNSUSxVQUFVO01BQ1ZDO0lBQ0YsQ0FBQyxDQUFDO0lBQ0YsT0FBTztNQUNMLEdBQUdDLFNBQVM7TUFDWkMsUUFBUSxFQUFFO1FBQ1IsR0FBR0QsU0FBUyxDQUFDQyxRQUFRO1FBQ3JCQyxVQUFVLEVBQUVMO01BQ2QsQ0FBQztNQUNETSxHQUFHLGVBQUVDLElBQUEsQ0FBQ1Isa0JBQWtCO1FBQUFTLFFBQUEsRUFBRUwsU0FBUyxDQUFDRztNQUFHLENBQXFCLENBQUM7TUFDN0Q7TUFDQUwsVUFBVTtNQUNWQztJQUNGLENBQUM7RUFDSCxDQUFDO0FBQ0giLCJpZ25vcmVMaXN0IjpbXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anansi/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"description": "React 18 Framework",
|
|
5
5
|
"homepage": "https://github.com/ntucker/anansi/tree/master/packages/core#readme",
|
|
6
6
|
"repository": {
|
|
@@ -67,8 +67,7 @@
|
|
|
67
67
|
],
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@ant-design/cssinjs": "^1.7.1",
|
|
70
|
-
"@data-client/react": "^0.12.
|
|
71
|
-
"@data-client/redux": "^0.12.0",
|
|
70
|
+
"@data-client/react": "^0.12.15",
|
|
72
71
|
"@types/compression": "1.7.5",
|
|
73
72
|
"@types/express": "^4.17.17",
|
|
74
73
|
"@types/node": "^20.0.0",
|
|
@@ -82,9 +81,8 @@
|
|
|
82
81
|
"react-dom": "^18.2.0"
|
|
83
82
|
},
|
|
84
83
|
"dependencies": {
|
|
85
|
-
"@anansi/router": "^0.10.
|
|
84
|
+
"@anansi/router": "^0.10.2",
|
|
86
85
|
"@babel/runtime": "^7.17.0",
|
|
87
|
-
"@data-client/ssr": "^0.12.10",
|
|
88
86
|
"chalk": "^4.1.2",
|
|
89
87
|
"compression": "^1.7.4",
|
|
90
88
|
"cross-fetch": "^4.0.0",
|
|
@@ -95,7 +93,6 @@
|
|
|
95
93
|
"http-proxy-middleware": "^3.0.0",
|
|
96
94
|
"memfs": "^3.5.3",
|
|
97
95
|
"ora": "^6.3.1",
|
|
98
|
-
"redux": "^5.0.1",
|
|
99
96
|
"source-map-support": "^0.5.21",
|
|
100
97
|
"tmp": "^0.2.3",
|
|
101
98
|
"unionfs": "^4.5.4",
|
|
@@ -104,13 +101,11 @@
|
|
|
104
101
|
},
|
|
105
102
|
"peerDependencies": {
|
|
106
103
|
"@ant-design/cssinjs": "^1.5.1",
|
|
107
|
-
"@data-client/react": "^0.
|
|
108
|
-
"@data-client/redux": "^0.1.0 || ^0.2.0 || ^0.3.0 || ^0.4.0 || ^1.0.0 || ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0",
|
|
104
|
+
"@data-client/react": "^0.12.15",
|
|
109
105
|
"@types/react": "^17.0.40 || ^18.0.0 || ^19.0.0-0",
|
|
110
106
|
"@types/react-dom": "^17.0.40 || ^18.0.0 || ^19.0.0-0",
|
|
111
107
|
"react": "^18.0.0 || ^19.0.0-0",
|
|
112
108
|
"react-dom": "^18.0.0 || ^19.0.0-0",
|
|
113
|
-
"redux": "^4.0.0 || ^5.0.0",
|
|
114
109
|
"webpack": "^5.60.0"
|
|
115
110
|
},
|
|
116
111
|
"peerDependenciesMeta": {
|
|
@@ -120,21 +115,15 @@
|
|
|
120
115
|
"@data-client/react": {
|
|
121
116
|
"optional": true
|
|
122
117
|
},
|
|
123
|
-
"@data-client/redux": {
|
|
124
|
-
"optional": true
|
|
125
|
-
},
|
|
126
118
|
"@types/react": {
|
|
127
119
|
"optional": true
|
|
128
120
|
},
|
|
129
121
|
"@types/react-dom": {
|
|
130
122
|
"optional": true
|
|
131
|
-
},
|
|
132
|
-
"redux": {
|
|
133
|
-
"optional": true
|
|
134
123
|
}
|
|
135
124
|
},
|
|
136
125
|
"engines": {
|
|
137
|
-
"node": "
|
|
126
|
+
"node": ">=22"
|
|
138
127
|
},
|
|
139
128
|
"scripts": {
|
|
140
129
|
"pretest": "yarn g:lint .",
|
package/src/scripts/serve.ts
CHANGED
|
@@ -186,9 +186,7 @@ export default async function serve(
|
|
|
186
186
|
});
|
|
187
187
|
}
|
|
188
188
|
|
|
189
|
-
let manifest = await import(manifestPath, {
|
|
190
|
-
assert: { type: 'json' },
|
|
191
|
-
});
|
|
189
|
+
let manifest = await import(manifestPath, { with: { type: 'json' } });
|
|
192
190
|
// handle inconsistent import conditions
|
|
193
191
|
if ('default' in manifest) {
|
|
194
192
|
manifest = manifest.default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { DataProvider } from '@data-client/react';
|
|
@@ -20,8 +20,8 @@ export default function dataClientSpout(
|
|
|
20
20
|
const managers = options?.getManagers?.() ?? [
|
|
21
21
|
new (await import('@data-client/react')).NetworkManager(),
|
|
22
22
|
];
|
|
23
|
-
const { createPersistedStore } = await import('@data-client/ssr');
|
|
24
|
-
const [
|
|
23
|
+
const { createPersistedStore } = await import('@data-client/react/ssr');
|
|
24
|
+
const [ServerDataProvider, useReadyCacheState, controller, store] =
|
|
25
25
|
createPersistedStore(managers);
|
|
26
26
|
|
|
27
27
|
const nextProps = await next({
|
|
@@ -35,7 +35,7 @@ export default function dataClientSpout(
|
|
|
35
35
|
...nextProps.initData,
|
|
36
36
|
dataclient: useReadyCacheState,
|
|
37
37
|
},
|
|
38
|
-
app: <
|
|
38
|
+
app: <ServerDataProvider>{nextProps.app}</ServerDataProvider>,
|
|
39
39
|
// TODO: figure out how to only inject in next and not have to also put here
|
|
40
40
|
controller,
|
|
41
41
|
store,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Manager } from '@data-client/react';
|
|
2
|
-
import { initialState } from '@data-client/redux';
|
|
2
|
+
import { initialState } from '@data-client/react/redux';
|
|
3
3
|
|
|
4
4
|
import type { ClientSpout } from './types.js';
|
|
5
5
|
|
|
@@ -10,7 +10,7 @@ export default function dataClientSpout(
|
|
|
10
10
|
): ClientSpout<{ getInitialData: (key: string) => Promise<any> }> {
|
|
11
11
|
return next => async props => {
|
|
12
12
|
const nextProps = await next(props);
|
|
13
|
-
const [data, {
|
|
13
|
+
const [data, { DataProvider }] = await Promise.all([
|
|
14
14
|
props.getInitialData('dataclient').catch(e => {
|
|
15
15
|
console.error('Data Client initial data could not load:', e);
|
|
16
16
|
return initialState;
|
|
@@ -25,9 +25,9 @@ export default function dataClientSpout(
|
|
|
25
25
|
return {
|
|
26
26
|
...nextProps,
|
|
27
27
|
app: (
|
|
28
|
-
<
|
|
28
|
+
<DataProvider initialState={data} managers={options?.getManagers?.()}>
|
|
29
29
|
{nextProps.app}
|
|
30
|
-
</
|
|
30
|
+
</DataProvider>
|
|
31
31
|
),
|
|
32
32
|
};
|
|
33
33
|
};
|