@milkio/stargate-worker 1.0.0-beta.36 → 1.0.0-beta.38
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/index.d.ts +5 -4
- package/index.js +38 -16
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -23,17 +23,18 @@ export declare function createStargateWorker<Generated extends {
|
|
|
23
23
|
routeSchema: any;
|
|
24
24
|
rejectCode: any;
|
|
25
25
|
}>(stargateOptions: MilkioStargateOptions): Promise<{
|
|
26
|
+
close(): void;
|
|
26
27
|
execute<Path extends keyof Generated["routeSchema"]>(path: Path, options?: Mixin<ExecuteOptions, {
|
|
27
28
|
params?: Generated["routeSchema"][Path]["types"]["params"];
|
|
28
29
|
}>): Promise<Generated["routeSchema"][Path]["types"]["\uD83D\uDC23"] extends boolean ? // action
|
|
29
30
|
[Partial<Generated["rejectCode"]>, null, ExecuteResultsOption] | [null, Generated["routeSchema"][Path]["types"]["result"], ExecuteResultsOption] : // stream
|
|
30
|
-
[Partial<Generated["rejectCode"]>, null, ExecuteResultsOption] | [null, AsyncGenerator<[Partial<Generated["rejectCode"]>, null] | [null, GeneratorGeneric<Generated["routeSchema"][Path]["types"]["result"]>], ExecuteResultsOption
|
|
31
|
+
[Partial<Generated["rejectCode"]>, null, ExecuteResultsOption] | [null, AsyncGenerator<[Partial<Generated["rejectCode"]>, null] | [null, GeneratorGeneric<Generated["routeSchema"][Path]["types"]["result"]>], undefined>, ExecuteResultsOption]>;
|
|
31
32
|
}>;
|
|
32
33
|
export type MilkioFlow<T, TReturn = any, TNext = any> = {
|
|
33
34
|
emit: (flow: T) => void;
|
|
34
35
|
[Symbol.asyncIterator]: () => MilkioFlow<T>;
|
|
35
36
|
next(...[value]: [] | [TNext]): Promise<IteratorResult<T, TReturn>>;
|
|
36
|
-
return(): Promise<IteratorResult<T, TReturn>>;
|
|
37
|
-
throw(error: any): Promise<IteratorResult<T, TReturn>>;
|
|
37
|
+
return(data: undefined, disablePostCloseMessage?: true): Promise<IteratorResult<T, TReturn>>;
|
|
38
|
+
throw(error: any, disablePostCloseMessage?: true): Promise<IteratorResult<T, TReturn>>;
|
|
38
39
|
};
|
|
39
|
-
export declare function createFlow<T>(): MilkioFlow<T>;
|
|
40
|
+
export declare function createFlow<T>(stargateOptions: MilkioStargateOptions, executeId: string): MilkioFlow<T>;
|
package/index.js
CHANGED
|
@@ -87,6 +87,7 @@ var __createId = idGenerator.createId;
|
|
|
87
87
|
|
|
88
88
|
// packages/milkio-stargate-worker/index.ts
|
|
89
89
|
async function createStargateWorker(stargateOptions) {
|
|
90
|
+
const executeIds = new Set;
|
|
90
91
|
const connect = new Promise((resolve) => {
|
|
91
92
|
const handler = (event) => {
|
|
92
93
|
if (event.data !== "PONG")
|
|
@@ -100,16 +101,24 @@ async function createStargateWorker(stargateOptions) {
|
|
|
100
101
|
const timer = setInterval(() => stargateOptions.port.postMessage("PING"), 42);
|
|
101
102
|
});
|
|
102
103
|
const stargate = {
|
|
104
|
+
close() {
|
|
105
|
+
for (const executeId of executeIds) {
|
|
106
|
+
stargateOptions.port.postMessage(`CLOSE_STREAM:${executeId}`);
|
|
107
|
+
}
|
|
108
|
+
stargateOptions.port.postMessage("CLOSED");
|
|
109
|
+
},
|
|
103
110
|
async execute(path, options) {
|
|
104
|
-
return new Promise(async (resolve
|
|
111
|
+
return new Promise(async (resolve) => {
|
|
105
112
|
await connect;
|
|
106
113
|
const executeId = __createId();
|
|
114
|
+
executeIds.add(executeId);
|
|
107
115
|
if (options?.type === "action" || !options?.type) {
|
|
108
116
|
const handler = (event) => {
|
|
109
117
|
if (typeof event.data !== "object")
|
|
110
118
|
return;
|
|
111
119
|
if (event.data.executeId !== executeId)
|
|
112
120
|
return;
|
|
121
|
+
executeIds.delete(executeId);
|
|
113
122
|
stargateOptions.port.removeEventListener("message", handler);
|
|
114
123
|
if (!event.data.success)
|
|
115
124
|
resolve([event.data.error, null, { executeId }]);
|
|
@@ -131,9 +140,8 @@ async function createStargateWorker(stargateOptions) {
|
|
|
131
140
|
return;
|
|
132
141
|
if (event.data.executeId !== executeId)
|
|
133
142
|
return;
|
|
134
|
-
stargateOptions.port.removeEventListener("message", handler);
|
|
135
143
|
if (!flow) {
|
|
136
|
-
flow = createFlow();
|
|
144
|
+
flow = createFlow(stargateOptions, executeId);
|
|
137
145
|
if (!event.data.success)
|
|
138
146
|
resolve([event.data.error, null, { executeId }]);
|
|
139
147
|
if (event.data.success)
|
|
@@ -141,13 +149,14 @@ async function createStargateWorker(stargateOptions) {
|
|
|
141
149
|
} else {
|
|
142
150
|
if (event.data.done) {
|
|
143
151
|
stargateOptions.port.removeEventListener("message", handler);
|
|
144
|
-
|
|
152
|
+
executeIds.delete(executeId);
|
|
153
|
+
flow.return(undefined, true);
|
|
154
|
+
} else if (!event.data.success) {
|
|
155
|
+
stargateOptions.port.removeEventListener("message", handler);
|
|
156
|
+
executeIds.delete(executeId);
|
|
157
|
+
flow.throw(event.data.data, true);
|
|
145
158
|
} else if (event.data.success)
|
|
146
159
|
flow.emit(event.data.data);
|
|
147
|
-
else if (!event.data.success) {
|
|
148
|
-
stargateOptions.port.removeEventListener("message", handler);
|
|
149
|
-
flow.throw(event.data.data);
|
|
150
|
-
}
|
|
151
160
|
}
|
|
152
161
|
};
|
|
153
162
|
stargateOptions.port.addEventListener("message", handler);
|
|
@@ -163,7 +172,7 @@ async function createStargateWorker(stargateOptions) {
|
|
|
163
172
|
};
|
|
164
173
|
return stargate;
|
|
165
174
|
}
|
|
166
|
-
function createFlow() {
|
|
175
|
+
function createFlow(stargateOptions, executeId) {
|
|
167
176
|
let status = "pending";
|
|
168
177
|
const flows = [];
|
|
169
178
|
const iterator = {
|
|
@@ -174,7 +183,7 @@ function createFlow() {
|
|
|
174
183
|
item.resolve(flow);
|
|
175
184
|
return;
|
|
176
185
|
} else {
|
|
177
|
-
const resolvers =
|
|
186
|
+
const resolvers = withResolvers();
|
|
178
187
|
resolvers.resolve(flow);
|
|
179
188
|
flows.push({ ...resolvers, blank: false });
|
|
180
189
|
}
|
|
@@ -184,7 +193,7 @@ function createFlow() {
|
|
|
184
193
|
if (status !== "pending")
|
|
185
194
|
return { done: true, value: null };
|
|
186
195
|
if (flows.length === 0) {
|
|
187
|
-
const resolvers =
|
|
196
|
+
const resolvers = withResolvers();
|
|
188
197
|
flows.push({ ...resolvers, blank: true });
|
|
189
198
|
}
|
|
190
199
|
const flow = flows.at(0);
|
|
@@ -192,18 +201,22 @@ function createFlow() {
|
|
|
192
201
|
flows.shift();
|
|
193
202
|
return { done: status !== "pending", value: result };
|
|
194
203
|
},
|
|
195
|
-
async return() {
|
|
204
|
+
async return(_, disablePostCloseMessage) {
|
|
196
205
|
status = "resolved";
|
|
206
|
+
if (disablePostCloseMessage)
|
|
207
|
+
stargateOptions.port.postMessage(`CLOSE_STREAM:${executeId}`);
|
|
197
208
|
for (const flow of flows) {
|
|
198
209
|
flow.blank = false;
|
|
199
210
|
flow.resolve(undefined);
|
|
200
211
|
}
|
|
201
212
|
return { done: true, value: null };
|
|
202
213
|
},
|
|
203
|
-
async throw(err) {
|
|
214
|
+
async throw(err, disablePostCloseMessage) {
|
|
204
215
|
status = "rejected";
|
|
216
|
+
if (disablePostCloseMessage)
|
|
217
|
+
stargateOptions.port.postMessage(`CLOSE_STREAM:${executeId}`);
|
|
205
218
|
if (flows.length === 0) {
|
|
206
|
-
const resolvers =
|
|
219
|
+
const resolvers = withResolvers();
|
|
207
220
|
flows.push({ ...resolvers, blank: true });
|
|
208
221
|
}
|
|
209
222
|
for (const flow of flows) {
|
|
@@ -219,10 +232,19 @@ function createFlow() {
|
|
|
219
232
|
};
|
|
220
233
|
return iterator;
|
|
221
234
|
}
|
|
235
|
+
function withResolvers() {
|
|
236
|
+
let resolve;
|
|
237
|
+
let reject;
|
|
238
|
+
const promise = new Promise((res, rej) => {
|
|
239
|
+
resolve = res;
|
|
240
|
+
reject = rej;
|
|
241
|
+
});
|
|
242
|
+
return { promise, resolve, reject };
|
|
243
|
+
}
|
|
222
244
|
export {
|
|
223
245
|
createStargateWorker,
|
|
224
246
|
createFlow
|
|
225
247
|
};
|
|
226
248
|
|
|
227
|
-
//# debugId=
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi5cXHV0aWxzXFxjcmVhdGUtaWQudHMiLCAiLi5cXGluZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgInR5cGUgSWRHZW5lcmF0b3JPcHRpb25zID0ge1xuICBsZW5ndGg/OiBudW1iZXI7XG4gIHRpbWVzdGFtcDogYm9vbGVhbjtcbiAgc2VxdWVudGlhbDogYm9vbGVhbjtcbn07XG5cbmZ1bmN0aW9uIGRlZmluZUlkR2VuZXJhdG9yKG9wdGlvbnM6IElkR2VuZXJhdG9yT3B0aW9ucykge1xuICBpZiAoIW9wdGlvbnMubGVuZ3RoKSBvcHRpb25zLmxlbmd0aCA9IDI0O1xuICBpZiAob3B0aW9ucy5sZW5ndGggPCAxKSB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGxlbmd0aFwiKTtcbiAgaWYgKG9wdGlvbnMubGVuZ3RoID4gNjEpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgbGVuZ3RoXCIpO1xuICBpZiAob3B0aW9ucy50aW1lc3RhbXAgJiYgb3B0aW9ucy5sZW5ndGggPCA5KSB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGxlbmd0aFwiKTtcbiAgbGV0IGxhc3RUaW1lID0gMDtcbiAgbGV0IGxhc3REZWNpbWFsID0gMG47XG4gIHJldHVybiB7XG4gICAgY3JlYXRlSWQoKSB7XG4gICAgICBsZXQgcmFuZExlbmd0aCA9IG9wdGlvbnMubGVuZ3RoITtcbiAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICBsZXQgaWQgPSBcIlwiO1xuICAgICAgaWYgKG9wdGlvbnMudGltZXN0YW1wKSB7XG4gICAgICAgIHJhbmRMZW5ndGggLT0gODtcbiAgICAgICAgaWQgPSBgJHtpZH0ke19fYmlnSW50VG9TdHJpbmcoQmlnSW50KG5vdykpLnBhZFN0YXJ0KDgsIFwiMFwiKX1gO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMuc2VxdWVudGlhbCAmJiBsYXN0VGltZSA9PT0gbm93KSB7XG4gICAgICAgIGlkID0gYCR7aWR9JHtfX2JpZ0ludFRvU3RyaW5nKCsrbGFzdERlY2ltYWwpLnBhZFN0YXJ0KDEsIFwiMFwiKX1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGFzdFRpbWUgPSBub3c7XG4gICAgICAgIGNvbnN0IG1pbiA9IDBuO1xuICAgICAgICBjb25zdCBtYXggPSBfX2dldE1heFZhbHVlKEJpZ0ludChyYW5kTGVuZ3RoKSk7XG4gICAgICAgIGxhc3REZWNpbWFsID0gX19zZWN1cmVSYW5kb21CaWdJbnQobWluLCBtYXgpO1xuICAgICAgICBpZCA9IGAke2lkfSR7X19iaWdJbnRUb1N0cmluZyhsYXN0RGVjaW1hbCkucGFkU3RhcnQocmFuZExlbmd0aCwgXCIwXCIpfWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gaWQ7XG4gICAgfSxcbiAgICBnZXRJZFRpbWVzdGFtcChpZDogc3RyaW5nKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy50aW1lc3RhbXAgPyBOdW1iZXIoX19zdHJpbmdUb0JpZ0ludChpZC5zbGljZSgwLCA4KS5yZXBsYWNlQWxsKFwiMFwiLCBcIlwiKSkpIDogMDtcbiAgICB9LFxuICB9O1xufVxuXG5jb25zdCBFTkNPRElORyA9IFwiMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjtcblxuZnVuY3Rpb24gX19zZWN1cmVSYW5kb21CaWdJbnQobWluOiBiaWdpbnQsIG1heDogYmlnaW50KTogYmlnaW50IHtcbiAgaWYgKG1pbiA+PSBtYXgpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgcmFuZ2VcIik7XG5cbiAgY29uc3QgcmFuZ2UgPSBtYXggLSBtaW4gKyAxbjtcbiAgY29uc3QgYnl0ZUNvdW50ID0gTWF0aC5jZWlsKE51bWJlcihCaWdJbnQocmFuZ2UudG9TdHJpbmcoMikubGVuZ3RoKSkgLyA4KTtcbiAgY29uc3QgZW50cm9weUJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZUNvdW50KTtcblxuICBsZXQgcmFuZG9tVmFsdWU6IGJpZ2ludDtcbiAgZG8ge1xuICAgIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMoZW50cm9weUJ5dGVzKTtcbiAgICByYW5kb21WYWx1ZSA9XG4gICAgICBCaWdJbnQoXG4gICAgICAgIGAweCR7QXJyYXkuZnJvbShlbnRyb3B5Qnl0ZXMpXG4gICAgICAgICAgLm1hcCgoYikgPT4gYi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgXCIwXCIpKVxuICAgICAgICAgIC5qb2luKFwiXCIpfWAsXG4gICAgICApICUgcmFuZ2U7XG4gIH0gd2hpbGUgKHJhbmRvbVZhbHVlIDwgMG4pO1xuXG4gIHJldHVybiBtaW4gKyByYW5kb21WYWx1ZTtcbn1cblxuZnVuY3Rpb24gX19iaWdJbnRUb1N0cmluZyh2YWx1ZTogYmlnaW50KTogc3RyaW5nIHtcbiAgY29uc3QgYmFzZSA9IEJpZ0ludChFTkNPRElORy5sZW5ndGgpO1xuICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgbGV0IGN1cnJlbnQgPSB2YWx1ZTtcblxuICBpZiAoY3VycmVudCA9PT0gMG4pIHJldHVybiBFTkNPRElOR1swXTtcblxuICB3aGlsZSAoY3VycmVudCA+IDBuKSB7XG4gICAgY29uc3QgcmVtYWluZGVyID0gY3VycmVudCAlIGJhc2U7XG4gICAgcmVzdWx0ID0gRU5DT0RJTkdbTnVtYmVyKHJlbWFpbmRlcildICsgcmVzdWx0O1xuICAgIGN1cnJlbnQgPSBjdXJyZW50IC8gYmFzZTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBfX3N0cmluZ1RvQmlnSW50KHN0cjogc3RyaW5nKTogYmlnaW50IHtcbiAgY29uc3QgY2hhck1hcDogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IEVOQ09ESU5HLmxlbmd0aDsgaSsrKSB7XG4gICAgY2hhck1hcFtFTkNPRElOR1tpXV0gPSBpO1xuICB9XG5cbiAgY29uc3QgYmFzZSA9IEJpZ0ludChFTkNPRElORy5sZW5ndGgpO1xuICBsZXQgcmVzdWx0ID0gMG47XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjaGFyID0gc3RyW2ldO1xuICAgIGlmICghKGNoYXIgaW4gY2hhck1hcCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjaGFyYWN0ZXIgJyR7Y2hhcn0nIGluIGlucHV0IHN0cmluZ2ApO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IEJpZ0ludChjaGFyTWFwW2NoYXJdKTtcbiAgICByZXN1bHQgPSByZXN1bHQgKiBiYXNlICsgdmFsdWU7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBfX2dldE1heFZhbHVlKG46IGJpZ2ludCk6IGJpZ2ludCB7XG4gIHJldHVybiBCaWdJbnQoRU5DT0RJTkcubGVuZ3RoKSAqKiBuIC0gMW47XG59XG5cbmNvbnN0IGlkR2VuZXJhdG9yID0gZGVmaW5lSWRHZW5lcmF0b3IoeyBsZW5ndGg6IDI0LCB0aW1lc3RhbXA6IGZhbHNlLCBzZXF1ZW50aWFsOiBmYWxzZSB9KTtcblxuZXhwb3J0IGNvbnN0IF9fY3JlYXRlSWQgPSBpZEdlbmVyYXRvci5jcmVhdGVJZDtcbiIsCiAgICAiaW1wb3J0IHsgX19jcmVhdGVJZCB9IGZyb20gXCIuL3V0aWxzL2NyZWF0ZS1pZC50c1wiO1xuXG5leHBvcnQgdHlwZSBNaWxraW9TdGFyZ2F0ZU9wdGlvbnMgPSB7XG4gIHBvcnQ6IHtcbiAgICBwb3N0TWVzc2FnZTogKGRhdGE6IGFueSkgPT4gdm9pZDtcbiAgICBhZGRFdmVudExpc3RlbmVyOiAoZXZlbnQ6IFwibWVzc2FnZVwiLCBjYWxsYmFjazogKGV2ZW50OiB7IGRhdGE6IGFueSB9KSA9PiB2b2lkKSA9PiB2b2lkO1xuICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI6IChldmVudDogXCJtZXNzYWdlXCIsIGNhbGxiYWNrOiAoZXZlbnQ6IHsgZGF0YTogYW55IH0pID0+IHZvaWQpID0+IHZvaWQ7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBNaXhpbjxULCBVPiA9IFUgJiBPbWl0PFQsIGtleW9mIFU+O1xuXG5leHBvcnQgdHlwZSBFeGVjdXRlT3B0aW9ucyA9IHtcbiAgcGFyYW1zPzogUmVjb3JkPGFueSwgYW55PjtcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHR5cGU/OiBcImFjdGlvblwiIHwgXCJzdHJlYW1cIjtcbn07XG5cbmV4cG9ydCB0eXBlIEV4ZWN1dGVSZXN1bHRzT3B0aW9uID0geyBleGVjdXRlSWQ6IHN0cmluZyB9O1xuXG5leHBvcnQgdHlwZSBHZW5lcmF0b3JHZW5lcmljPFQ+ID0gVCBleHRlbmRzIEFzeW5jR2VuZXJhdG9yPGluZmVyIEk+ID8gSSA6IG5ldmVyO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlU3RhcmdhdGVXb3JrZXI8R2VuZXJhdGVkIGV4dGVuZHMgeyByb3V0ZVNjaGVtYTogYW55OyByZWplY3RDb2RlOiBhbnkgfT4oc3RhcmdhdGVPcHRpb25zOiBNaWxraW9TdGFyZ2F0ZU9wdGlvbnMpIHtcbiAgY29uc3QgY29ubmVjdCA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlciA9IChldmVudDogeyBkYXRhOiBhbnkgfSkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmRhdGEgIT09IFwiUE9OR1wiKSByZXR1cm47XG4gICAgICBjbGVhckludGVydmFsKHRpbWVyKTtcbiAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xuICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICB9O1xuICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xuICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKFwiUElOR1wiKTtcbiAgICBjb25zdCB0aW1lciA9IHNldEludGVydmFsKCgpID0+IHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKFwiUElOR1wiKSwgNDIpO1xuICB9KTtcbiAgY29uc3Qgc3RhcmdhdGUgPSB7XG4gICAgYXN5bmMgZXhlY3V0ZTxQYXRoIGV4dGVuZHMga2V5b2YgR2VuZXJhdGVkW1wicm91dGVTY2hlbWFcIl0+KFxuICAgICAgcGF0aDogUGF0aCxcbiAgICAgIG9wdGlvbnM/OiBNaXhpbjxcbiAgICAgICAgRXhlY3V0ZU9wdGlvbnMsXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXM/OiBHZW5lcmF0ZWRbXCJyb3V0ZVNjaGVtYVwiXVtQYXRoXVtcInR5cGVzXCJdW1wicGFyYW1zXCJdO1xuICAgICAgICB9XG4gICAgICA+LFxuICAgICk6IFByb21pc2U8XG4gICAgICBHZW5lcmF0ZWRbXCJyb3V0ZVNjaGVtYVwiXVtQYXRoXVtcInR5cGVzXCJdW1wi8J+Qo1wiXSBleHRlbmRzIGJvb2xlYW5cbiAgICAgICAgPyAvLyBhY3Rpb25cbiAgICAgICAgICBbUGFydGlhbDxHZW5lcmF0ZWRbXCJyZWplY3RDb2RlXCJdPiwgbnVsbCwgRXhlY3V0ZVJlc3VsdHNPcHRpb25dIHwgW251bGwsIEdlbmVyYXRlZFtcInJvdXRlU2NoZW1hXCJdW1BhdGhdW1widHlwZXNcIl1bXCJyZXN1bHRcIl0sIEV4ZWN1dGVSZXN1bHRzT3B0aW9uXVxuICAgICAgICA6IC8vIHN0cmVhbVxuICAgICAgICAgIFtQYXJ0aWFsPEdlbmVyYXRlZFtcInJlamVjdENvZGVcIl0+LCBudWxsLCBFeGVjdXRlUmVzdWx0c09wdGlvbl0gfCBbbnVsbCwgQXN5bmNHZW5lcmF0b3I8W1BhcnRpYWw8R2VuZXJhdGVkW1wicmVqZWN0Q29kZVwiXT4sIG51bGxdIHwgW251bGwsIEdlbmVyYXRvckdlbmVyaWM8R2VuZXJhdGVkW1wicm91dGVTY2hlbWFcIl1bUGF0aF1bXCJ0eXBlc1wiXVtcInJlc3VsdFwiXT5dLCBFeGVjdXRlUmVzdWx0c09wdGlvbj5dXG4gICAgPiB7XG4gICAgICAvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vQXN5bmNQcm9taXNlRXhlY3V0b3I6IDxleHBsYW5hdGlvbj5cbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGF3YWl0IGNvbm5lY3Q7XG4gICAgICAgIGNvbnN0IGV4ZWN1dGVJZCA9IF9fY3JlYXRlSWQoKTtcbiAgICAgICAgaWYgKG9wdGlvbnM/LnR5cGUgPT09IFwiYWN0aW9uXCIgfHwgIW9wdGlvbnM/LnR5cGUpIHtcbiAgICAgICAgICBjb25zdCBoYW5kbGVyID0gKGV2ZW50OiB7IGRhdGE6IGFueSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV2ZW50LmRhdGEgIT09IFwib2JqZWN0XCIpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmV4ZWN1dGVJZCAhPT0gZXhlY3V0ZUlkKSByZXR1cm47XG4gICAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVyKTtcbiAgICAgICAgICAgIGlmICghZXZlbnQuZGF0YS5zdWNjZXNzKSByZXNvbHZlKFtldmVudC5kYXRhLmVycm9yLCBudWxsLCB7IGV4ZWN1dGVJZCB9XSk7XG4gICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5zdWNjZXNzKSByZXNvbHZlKFtudWxsLCBldmVudC5kYXRhLmRhdGEsIHsgZXhlY3V0ZUlkIH1dIGFzIGFueSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVyKTtcbiAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5wb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICBleGVjdXRlSWQsXG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgcGFyYW1zOiBvcHRpb25zPy5wYXJhbXMsXG4gICAgICAgICAgICBoZWFkZXJzOiBvcHRpb25zPy5oZWFkZXJzLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zPy50eXBlID09PSBcInN0cmVhbVwiKSB7XG4gICAgICAgICAgbGV0IGZsb3c6IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZUZsb3c+IHwgdW5kZWZpbmVkO1xuICAgICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoZXZlbnQ6IHsgZGF0YTogYW55IH0pID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZXZlbnQuZGF0YSAhPT0gXCJvYmplY3RcIikgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuZXhlY3V0ZUlkICE9PSBleGVjdXRlSWQpIHJldHVybjtcbiAgICAgICAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xuICAgICAgICAgICAgaWYgKCFmbG93KSB7XG4gICAgICAgICAgICAgIGZsb3cgPSBjcmVhdGVGbG93KCk7XG4gICAgICAgICAgICAgIGlmICghZXZlbnQuZGF0YS5zdWNjZXNzKSByZXNvbHZlKFtldmVudC5kYXRhLmVycm9yLCBudWxsLCB7IGV4ZWN1dGVJZCB9XSk7XG4gICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLnN1Y2Nlc3MpIHJlc29sdmUoW251bGwsIGZsb3csIHsgZXhlY3V0ZUlkIH1dIGFzIGFueSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5kb25lKSB7XG4gICAgICAgICAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgaGFuZGxlcik7XG4gICAgICAgICAgICAgICAgZmxvdy5yZXR1cm4oKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5kYXRhLnN1Y2Nlc3MpIGZsb3cuZW1pdChldmVudC5kYXRhLmRhdGEpO1xuICAgICAgICAgICAgICBlbHNlIGlmICghZXZlbnQuZGF0YS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgaGFuZGxlcik7XG4gICAgICAgICAgICAgICAgZmxvdy50aHJvdyhldmVudC5kYXRhLmRhdGEpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVyKTtcbiAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5wb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICBleGVjdXRlSWQsXG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgcGFyYW1zOiBvcHRpb25zPy5wYXJhbXMsXG4gICAgICAgICAgICBoZWFkZXJzOiBvcHRpb25zPy5oZWFkZXJzLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICB9O1xuXG4gIHJldHVybiBzdGFyZ2F0ZTtcbn1cblxudHlwZSBEZWZlcnJlZDxUPiA9IHtcbiAgcmVzb2x2ZTogKHZhbHVlOiBUIHwgUHJvbWlzZUxpa2U8VD4pID0+IHZvaWQ7XG4gIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIE1pbGtpb0Zsb3c8VCwgVFJldHVybiA9IGFueSwgVE5leHQgPSBhbnk+ID0ge1xuICBlbWl0OiAoZmxvdzogVCkgPT4gdm9pZDtcbiAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTogKCkgPT4gTWlsa2lvRmxvdzxUPjtcbiAgbmV4dCguLi5bdmFsdWVdOiBbXSB8IFtUTmV4dF0pOiBQcm9taXNlPEl0ZXJhdG9yUmVzdWx0PFQsIFRSZXR1cm4+PjtcbiAgcmV0dXJuKCk6IFByb21pc2U8SXRlcmF0b3JSZXN1bHQ8VCwgVFJldHVybj4+O1xuICB0aHJvdyhlcnJvcjogYW55KTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDxULCBUUmV0dXJuPj47XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRmxvdzxUPigpOiBNaWxraW9GbG93PFQ+IHtcbiAgbGV0IHN0YXR1czogXCJwZW5kaW5nXCIgfCBcInJlc29sdmVkXCIgfCBcInJlamVjdGVkXCIgPSBcInBlbmRpbmdcIjtcbiAgY29uc3QgZmxvd3M6IEFycmF5PHtcbiAgICBibGFuazogYm9vbGVhbjtcbiAgICBwcm9taXNlOiBQcm9taXNlPFQ+O1xuICAgIHJlc29sdmU6ICh2YWx1ZT86IFQgfCBQcm9taXNlTGlrZTxUPikgPT4gdm9pZDtcbiAgICByZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWQ7XG4gIH0+ID0gW107XG5cbiAgY29uc3QgaXRlcmF0b3IgPSB7XG4gICAgZW1pdDogKGZsb3c6IFQpID0+IHtcbiAgICAgIGlmIChmbG93cy5hdCgtMSk/LmJsYW5rID09PSB0cnVlKSB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBmbG93cy5hdCgtMSkhO1xuICAgICAgICBpdGVtLmJsYW5rID0gZmFsc2U7XG4gICAgICAgIGl0ZW0ucmVzb2x2ZShmbG93KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZXJzID0gUHJvbWlzZS53aXRoUmVzb2x2ZXJzPFQ+KCk7XG4gICAgICAgIHJlc29sdmVycy5yZXNvbHZlKGZsb3cpO1xuICAgICAgICBmbG93cy5wdXNoKHsgLi4ucmVzb2x2ZXJzLCBibGFuazogZmFsc2UgfSBhcyBhbnkpO1xuICAgICAgfVxuICAgIH0sXG4gICAgLi4uKHtcbiAgICAgIGFzeW5jIG5leHQoKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDxUPj4ge1xuICAgICAgICBpZiAoc3RhdHVzICE9PSBcInBlbmRpbmdcIikgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IG51bGwgfTtcbiAgICAgICAgaWYgKGZsb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGNvbnN0IHJlc29sdmVycyA9IFByb21pc2Uud2l0aFJlc29sdmVyczxUPigpO1xuICAgICAgICAgIGZsb3dzLnB1c2goeyAuLi5yZXNvbHZlcnMsIGJsYW5rOiB0cnVlIH0gYXMgYW55KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmbG93ID0gZmxvd3MuYXQoMCkhO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmbG93LnByb21pc2U7XG4gICAgICAgIGZsb3dzLnNoaWZ0KCk7XG4gICAgICAgIHJldHVybiB7IGRvbmU6IHN0YXR1cyAhPT0gXCJwZW5kaW5nXCIsIHZhbHVlOiByZXN1bHQgfTtcbiAgICAgIH0sXG4gICAgICBhc3luYyByZXR1cm4oKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDx2b2lkPj4ge1xuICAgICAgICBzdGF0dXMgPSBcInJlc29sdmVkXCI7XG4gICAgICAgIGZvciAoY29uc3QgZmxvdyBvZiBmbG93cykge1xuICAgICAgICAgIGZsb3cuYmxhbmsgPSBmYWxzZTtcbiAgICAgICAgICBmbG93LnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBkb25lOiB0cnVlLCB2YWx1ZTogbnVsbCB9O1xuICAgICAgfSxcbiAgICAgIGFzeW5jIHRocm93KGVycjogYW55KTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDx2b2lkPj4ge1xuICAgICAgICBzdGF0dXMgPSBcInJlamVjdGVkXCI7XG4gICAgICAgIGlmIChmbG93cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBjb25zdCByZXNvbHZlcnMgPSBQcm9taXNlLndpdGhSZXNvbHZlcnM8VD4oKTtcbiAgICAgICAgICBmbG93cy5wdXNoKHsgLi4ucmVzb2x2ZXJzLCBibGFuazogdHJ1ZSB9IGFzIGFueSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBmbG93IG9mIGZsb3dzKSB7XG4gICAgICAgICAgZmxvdy5ibGFuayA9IGZhbHNlO1xuICAgICAgICAgIGZsb3cucmVqZWN0KGVycik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IG51bGwgfTtcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgQXN5bmNJdGVyYXRvcjx1bmtub3duPiksXG4gICAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG4gIH07XG5cbiAgcmV0dXJuIGl0ZXJhdG9yIGFzIE1pbGtpb0Zsb3c8VD47XG59XG4iCiAgXSwKICAibWFwcGluZ3MiOiAiO0FBTUEsU0FBUyxpQkFBaUIsQ0FBQyxTQUE2QjtBQUFBLEVBQ3RELEtBQUssUUFBUTtBQUFBLElBQVEsUUFBUSxTQUFTO0FBQUEsRUFDdEMsSUFBSSxRQUFRLFNBQVM7QUFBQSxJQUFHLE1BQU0sSUFBSSxNQUFNLGdCQUFnQjtBQUFBLEVBQ3hELElBQUksUUFBUSxTQUFTO0FBQUEsSUFBSSxNQUFNLElBQUksTUFBTSxnQkFBZ0I7QUFBQSxFQUN6RCxJQUFJLFFBQVEsYUFBYSxRQUFRLFNBQVM7QUFBQSxJQUFHLE1BQU0sSUFBSSxNQUFNLGdCQUFnQjtBQUFBLEVBQzdFLElBQUksV0FBVztBQUFBLEVBQ2YsSUFBSSxjQUFjO0FBQUEsRUFDbEIsT0FBTztBQUFBLElBQ0wsUUFBUSxHQUFHO0FBQUEsTUFDVCxJQUFJLGFBQWEsUUFBUTtBQUFBLE1BQ3pCLE1BQU0sTUFBTSxLQUFLLElBQUk7QUFBQSxNQUNyQixJQUFJLEtBQUs7QUFBQSxNQUNULElBQUksUUFBUSxXQUFXO0FBQUEsUUFDckIsY0FBYztBQUFBLFFBQ2QsS0FBSyxHQUFHLEtBQUssaUJBQWlCLE9BQU8sR0FBRyxDQUFDLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFBQSxNQUM1RDtBQUFBLE1BQ0EsSUFBSSxRQUFRLGNBQWMsYUFBYSxLQUFLO0FBQUEsUUFDMUMsS0FBSyxHQUFHLEtBQUssbUJBQW1CLFdBQVcsRUFBRSxTQUFTLEdBQUcsR0FB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QjtBQUFBLFFBQ0EsT0FBTyxFQUFFLE1BQU0sTUFBTSxPQUFPLEtBQUs7QUFBQTtBQUFBLFdBRTdCLE1BQUssQ0FBQyxLQUF5QztBQUFBLFFBQ25ELFNBQVM7QUFBQSxRQUNULElBQUksTUFBTSxXQUFXLEdBQUc7QUFBQSxVQUN0QixNQUFNLFlBQVksUUFBUSxjQUFpQjtBQUFBLFVBQzNDLE1BQU0sS0FBSyxLQUFLLFdBQVcsT0FBTyxLQUFLLENBQVE7QUFBQSxRQUNqRDtBQUFBLFFBQ0EsV0FBVyxRQUFRLE9BQU87QUFBQSxVQUN4QixLQUFLLFFBQVE7QUFBQSxVQUNiLEtBQUssT0FBTyxHQUFHO0FBQUEsUUFDakI7QUFBQSxRQUNBLE9BQU8sRUFBRSxNQUFNLE1BQU0sT0FBTyxLQUFLO0FBQUE7QUFBQSxJQUVyQztBQUFBLEtBQ0MsT0FBTyxjQUFjLEdBQUc7QUFBQSxNQUN2QixPQUFPO0FBQUE7QUFBQSxFQUVYO0FBQUEsRUFFQSxPQUFPO0FBQUE7IiwKICAiZGVidWdJZCI6ICJFMEJBRDFBM0E0Njk5QzMzNjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
|
|
249
|
+
//# debugId=2BA47E1EEE10544C64756E2164756E21
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi5cXHV0aWxzXFxjcmVhdGUtaWQudHMiLCAiLi5cXGluZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgInR5cGUgSWRHZW5lcmF0b3JPcHRpb25zID0ge1xuICBsZW5ndGg/OiBudW1iZXI7XG4gIHRpbWVzdGFtcDogYm9vbGVhbjtcbiAgc2VxdWVudGlhbDogYm9vbGVhbjtcbn07XG5cbmZ1bmN0aW9uIGRlZmluZUlkR2VuZXJhdG9yKG9wdGlvbnM6IElkR2VuZXJhdG9yT3B0aW9ucykge1xuICBpZiAoIW9wdGlvbnMubGVuZ3RoKSBvcHRpb25zLmxlbmd0aCA9IDI0O1xuICBpZiAob3B0aW9ucy5sZW5ndGggPCAxKSB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGxlbmd0aFwiKTtcbiAgaWYgKG9wdGlvbnMubGVuZ3RoID4gNjEpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgbGVuZ3RoXCIpO1xuICBpZiAob3B0aW9ucy50aW1lc3RhbXAgJiYgb3B0aW9ucy5sZW5ndGggPCA5KSB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGxlbmd0aFwiKTtcbiAgbGV0IGxhc3RUaW1lID0gMDtcbiAgbGV0IGxhc3REZWNpbWFsID0gMG47XG4gIHJldHVybiB7XG4gICAgY3JlYXRlSWQoKSB7XG4gICAgICBsZXQgcmFuZExlbmd0aCA9IG9wdGlvbnMubGVuZ3RoITtcbiAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICBsZXQgaWQgPSBcIlwiO1xuICAgICAgaWYgKG9wdGlvbnMudGltZXN0YW1wKSB7XG4gICAgICAgIHJhbmRMZW5ndGggLT0gODtcbiAgICAgICAgaWQgPSBgJHtpZH0ke19fYmlnSW50VG9TdHJpbmcoQmlnSW50KG5vdykpLnBhZFN0YXJ0KDgsIFwiMFwiKX1gO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMuc2VxdWVudGlhbCAmJiBsYXN0VGltZSA9PT0gbm93KSB7XG4gICAgICAgIGlkID0gYCR7aWR9JHtfX2JpZ0ludFRvU3RyaW5nKCsrbGFzdERlY2ltYWwpLnBhZFN0YXJ0KDEsIFwiMFwiKX1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGFzdFRpbWUgPSBub3c7XG4gICAgICAgIGNvbnN0IG1pbiA9IDBuO1xuICAgICAgICBjb25zdCBtYXggPSBfX2dldE1heFZhbHVlKEJpZ0ludChyYW5kTGVuZ3RoKSk7XG4gICAgICAgIGxhc3REZWNpbWFsID0gX19zZWN1cmVSYW5kb21CaWdJbnQobWluLCBtYXgpO1xuICAgICAgICBpZCA9IGAke2lkfSR7X19iaWdJbnRUb1N0cmluZyhsYXN0RGVjaW1hbCkucGFkU3RhcnQocmFuZExlbmd0aCwgXCIwXCIpfWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gaWQ7XG4gICAgfSxcbiAgICBnZXRJZFRpbWVzdGFtcChpZDogc3RyaW5nKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy50aW1lc3RhbXAgPyBOdW1iZXIoX19zdHJpbmdUb0JpZ0ludChpZC5zbGljZSgwLCA4KS5yZXBsYWNlQWxsKFwiMFwiLCBcIlwiKSkpIDogMDtcbiAgICB9LFxuICB9O1xufVxuXG5jb25zdCBFTkNPRElORyA9IFwiMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjtcblxuZnVuY3Rpb24gX19zZWN1cmVSYW5kb21CaWdJbnQobWluOiBiaWdpbnQsIG1heDogYmlnaW50KTogYmlnaW50IHtcbiAgaWYgKG1pbiA+PSBtYXgpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgcmFuZ2VcIik7XG5cbiAgY29uc3QgcmFuZ2UgPSBtYXggLSBtaW4gKyAxbjtcbiAgY29uc3QgYnl0ZUNvdW50ID0gTWF0aC5jZWlsKE51bWJlcihCaWdJbnQocmFuZ2UudG9TdHJpbmcoMikubGVuZ3RoKSkgLyA4KTtcbiAgY29uc3QgZW50cm9weUJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZUNvdW50KTtcblxuICBsZXQgcmFuZG9tVmFsdWU6IGJpZ2ludDtcbiAgZG8ge1xuICAgIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMoZW50cm9weUJ5dGVzKTtcbiAgICByYW5kb21WYWx1ZSA9XG4gICAgICBCaWdJbnQoXG4gICAgICAgIGAweCR7QXJyYXkuZnJvbShlbnRyb3B5Qnl0ZXMpXG4gICAgICAgICAgLm1hcCgoYikgPT4gYi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgXCIwXCIpKVxuICAgICAgICAgIC5qb2luKFwiXCIpfWAsXG4gICAgICApICUgcmFuZ2U7XG4gIH0gd2hpbGUgKHJhbmRvbVZhbHVlIDwgMG4pO1xuXG4gIHJldHVybiBtaW4gKyByYW5kb21WYWx1ZTtcbn1cblxuZnVuY3Rpb24gX19iaWdJbnRUb1N0cmluZyh2YWx1ZTogYmlnaW50KTogc3RyaW5nIHtcbiAgY29uc3QgYmFzZSA9IEJpZ0ludChFTkNPRElORy5sZW5ndGgpO1xuICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgbGV0IGN1cnJlbnQgPSB2YWx1ZTtcblxuICBpZiAoY3VycmVudCA9PT0gMG4pIHJldHVybiBFTkNPRElOR1swXTtcblxuICB3aGlsZSAoY3VycmVudCA+IDBuKSB7XG4gICAgY29uc3QgcmVtYWluZGVyID0gY3VycmVudCAlIGJhc2U7XG4gICAgcmVzdWx0ID0gRU5DT0RJTkdbTnVtYmVyKHJlbWFpbmRlcildICsgcmVzdWx0O1xuICAgIGN1cnJlbnQgPSBjdXJyZW50IC8gYmFzZTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBfX3N0cmluZ1RvQmlnSW50KHN0cjogc3RyaW5nKTogYmlnaW50IHtcbiAgY29uc3QgY2hhck1hcDogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IEVOQ09ESU5HLmxlbmd0aDsgaSsrKSB7XG4gICAgY2hhck1hcFtFTkNPRElOR1tpXV0gPSBpO1xuICB9XG5cbiAgY29uc3QgYmFzZSA9IEJpZ0ludChFTkNPRElORy5sZW5ndGgpO1xuICBsZXQgcmVzdWx0ID0gMG47XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjaGFyID0gc3RyW2ldO1xuICAgIGlmICghKGNoYXIgaW4gY2hhck1hcCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjaGFyYWN0ZXIgJyR7Y2hhcn0nIGluIGlucHV0IHN0cmluZ2ApO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IEJpZ0ludChjaGFyTWFwW2NoYXJdKTtcbiAgICByZXN1bHQgPSByZXN1bHQgKiBiYXNlICsgdmFsdWU7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBfX2dldE1heFZhbHVlKG46IGJpZ2ludCk6IGJpZ2ludCB7XG4gIHJldHVybiBCaWdJbnQoRU5DT0RJTkcubGVuZ3RoKSAqKiBuIC0gMW47XG59XG5cbmNvbnN0IGlkR2VuZXJhdG9yID0gZGVmaW5lSWRHZW5lcmF0b3IoeyBsZW5ndGg6IDI0LCB0aW1lc3RhbXA6IGZhbHNlLCBzZXF1ZW50aWFsOiBmYWxzZSB9KTtcblxuZXhwb3J0IGNvbnN0IF9fY3JlYXRlSWQgPSBpZEdlbmVyYXRvci5jcmVhdGVJZDtcbiIsCiAgICAiaW1wb3J0IHsgX19jcmVhdGVJZCB9IGZyb20gXCIuL3V0aWxzL2NyZWF0ZS1pZC50c1wiO1xuXG5leHBvcnQgdHlwZSBNaWxraW9TdGFyZ2F0ZU9wdGlvbnMgPSB7XG4gIHBvcnQ6IHtcbiAgICBwb3N0TWVzc2FnZTogKGRhdGE6IGFueSkgPT4gdm9pZDtcbiAgICBhZGRFdmVudExpc3RlbmVyOiAoZXZlbnQ6IFwibWVzc2FnZVwiLCBjYWxsYmFjazogKGV2ZW50OiB7IGRhdGE6IGFueSB9KSA9PiB2b2lkKSA9PiB2b2lkO1xuICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI6IChldmVudDogXCJtZXNzYWdlXCIsIGNhbGxiYWNrOiAoZXZlbnQ6IHsgZGF0YTogYW55IH0pID0+IHZvaWQpID0+IHZvaWQ7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBNaXhpbjxULCBVPiA9IFUgJiBPbWl0PFQsIGtleW9mIFU+O1xuXG5leHBvcnQgdHlwZSBFeGVjdXRlT3B0aW9ucyA9IHtcbiAgcGFyYW1zPzogUmVjb3JkPGFueSwgYW55PjtcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHR5cGU/OiBcImFjdGlvblwiIHwgXCJzdHJlYW1cIjtcbn07XG5cbmV4cG9ydCB0eXBlIEV4ZWN1dGVSZXN1bHRzT3B0aW9uID0geyBleGVjdXRlSWQ6IHN0cmluZyB9O1xuXG5leHBvcnQgdHlwZSBHZW5lcmF0b3JHZW5lcmljPFQ+ID0gVCBleHRlbmRzIEFzeW5jR2VuZXJhdG9yPGluZmVyIEk+ID8gSSA6IG5ldmVyO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlU3RhcmdhdGVXb3JrZXI8R2VuZXJhdGVkIGV4dGVuZHMgeyByb3V0ZVNjaGVtYTogYW55OyByZWplY3RDb2RlOiBhbnkgfT4oc3RhcmdhdGVPcHRpb25zOiBNaWxraW9TdGFyZ2F0ZU9wdGlvbnMpIHtcbiAgY29uc3QgZXhlY3V0ZUlkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBjb25zdCBjb25uZWN0ID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBjb25zdCBoYW5kbGVyID0gKGV2ZW50OiB7IGRhdGE6IGFueSB9KSA9PiB7XG4gICAgICBpZiAoZXZlbnQuZGF0YSAhPT0gXCJQT05HXCIpIHJldHVybjtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGltZXIpO1xuICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgaGFuZGxlcik7XG4gICAgICByZXNvbHZlKHRydWUpO1xuICAgIH07XG4gICAgc3RhcmdhdGVPcHRpb25zLnBvcnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgaGFuZGxlcik7XG4gICAgc3RhcmdhdGVPcHRpb25zLnBvcnQucG9zdE1lc3NhZ2UoXCJQSU5HXCIpO1xuICAgIGNvbnN0IHRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4gc3RhcmdhdGVPcHRpb25zLnBvcnQucG9zdE1lc3NhZ2UoXCJQSU5HXCIpLCA0Mik7XG4gIH0pO1xuICBjb25zdCBzdGFyZ2F0ZSA9IHtcbiAgICBjbG9zZSgpIHtcbiAgICAgIGZvciAoY29uc3QgZXhlY3V0ZUlkIG9mIGV4ZWN1dGVJZHMpIHtcbiAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQucG9zdE1lc3NhZ2UoYENMT1NFX1NUUkVBTToke2V4ZWN1dGVJZH1gKTtcbiAgICAgIH1cbiAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKFwiQ0xPU0VEXCIpO1xuICAgIH0sXG4gICAgYXN5bmMgZXhlY3V0ZTxQYXRoIGV4dGVuZHMga2V5b2YgR2VuZXJhdGVkW1wicm91dGVTY2hlbWFcIl0+KFxuICAgICAgcGF0aDogUGF0aCxcbiAgICAgIG9wdGlvbnM/OiBNaXhpbjxcbiAgICAgICAgRXhlY3V0ZU9wdGlvbnMsXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXM/OiBHZW5lcmF0ZWRbXCJyb3V0ZVNjaGVtYVwiXVtQYXRoXVtcInR5cGVzXCJdW1wicGFyYW1zXCJdO1xuICAgICAgICB9XG4gICAgICA+LFxuICAgICk6IFByb21pc2U8XG4gICAgICBHZW5lcmF0ZWRbXCJyb3V0ZVNjaGVtYVwiXVtQYXRoXVtcInR5cGVzXCJdW1wi8J+Qo1wiXSBleHRlbmRzIGJvb2xlYW5cbiAgICAgICAgPyAvLyBhY3Rpb25cbiAgICAgICAgICBbUGFydGlhbDxHZW5lcmF0ZWRbXCJyZWplY3RDb2RlXCJdPiwgbnVsbCwgRXhlY3V0ZVJlc3VsdHNPcHRpb25dIHwgW251bGwsIEdlbmVyYXRlZFtcInJvdXRlU2NoZW1hXCJdW1BhdGhdW1widHlwZXNcIl1bXCJyZXN1bHRcIl0sIEV4ZWN1dGVSZXN1bHRzT3B0aW9uXVxuICAgICAgICA6IC8vIHN0cmVhbVxuICAgICAgICAgIFtQYXJ0aWFsPEdlbmVyYXRlZFtcInJlamVjdENvZGVcIl0+LCBudWxsLCBFeGVjdXRlUmVzdWx0c09wdGlvbl0gfCBbbnVsbCwgQXN5bmNHZW5lcmF0b3I8W1BhcnRpYWw8R2VuZXJhdGVkW1wicmVqZWN0Q29kZVwiXT4sIG51bGxdIHwgW251bGwsIEdlbmVyYXRvckdlbmVyaWM8R2VuZXJhdGVkW1wicm91dGVTY2hlbWFcIl1bUGF0aF1bXCJ0eXBlc1wiXVtcInJlc3VsdFwiXT5dLCB1bmRlZmluZWQ+LCBFeGVjdXRlUmVzdWx0c09wdGlvbl1cbiAgICA+IHtcbiAgICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9Bc3luY1Byb21pc2VFeGVjdXRvcjogPGV4cGxhbmF0aW9uPlxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlKSA9PiB7XG4gICAgICAgIGF3YWl0IGNvbm5lY3Q7XG4gICAgICAgIGNvbnN0IGV4ZWN1dGVJZCA9IF9fY3JlYXRlSWQoKTtcbiAgICAgICAgZXhlY3V0ZUlkcy5hZGQoZXhlY3V0ZUlkKTtcbiAgICAgICAgaWYgKG9wdGlvbnM/LnR5cGUgPT09IFwiYWN0aW9uXCIgfHwgIW9wdGlvbnM/LnR5cGUpIHtcbiAgICAgICAgICBjb25zdCBoYW5kbGVyID0gKGV2ZW50OiB7IGRhdGE6IGFueSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV2ZW50LmRhdGEgIT09IFwib2JqZWN0XCIpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmV4ZWN1dGVJZCAhPT0gZXhlY3V0ZUlkKSByZXR1cm47XG4gICAgICAgICAgICBleGVjdXRlSWRzLmRlbGV0ZShleGVjdXRlSWQpO1xuICAgICAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgaGFuZGxlcik7XG4gICAgICAgICAgICBpZiAoIWV2ZW50LmRhdGEuc3VjY2VzcykgcmVzb2x2ZShbZXZlbnQuZGF0YS5lcnJvciwgbnVsbCwgeyBleGVjdXRlSWQgfV0pO1xuICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuc3VjY2VzcykgcmVzb2x2ZShbbnVsbCwgZXZlbnQuZGF0YS5kYXRhLCB7IGV4ZWN1dGVJZCB9XSBhcyBhbnkpO1xuICAgICAgICAgIH07XG4gICAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgaGFuZGxlcik7XG4gICAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQucG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgZXhlY3V0ZUlkLFxuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIHBhcmFtczogb3B0aW9ucz8ucGFyYW1zLFxuICAgICAgICAgICAgaGVhZGVyczogb3B0aW9ucz8uaGVhZGVycyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucz8udHlwZSA9PT0gXCJzdHJlYW1cIikge1xuICAgICAgICAgIGxldCBmbG93OiBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVGbG93PiB8IHVuZGVmaW5lZDtcbiAgICAgICAgICBjb25zdCBoYW5kbGVyID0gKGV2ZW50OiB7IGRhdGE6IGFueSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV2ZW50LmRhdGEgIT09IFwib2JqZWN0XCIpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmV4ZWN1dGVJZCAhPT0gZXhlY3V0ZUlkKSByZXR1cm47XG4gICAgICAgICAgICBpZiAoIWZsb3cpIHtcbiAgICAgICAgICAgICAgZmxvdyA9IGNyZWF0ZUZsb3coc3RhcmdhdGVPcHRpb25zLCBleGVjdXRlSWQpO1xuICAgICAgICAgICAgICBpZiAoIWV2ZW50LmRhdGEuc3VjY2VzcykgcmVzb2x2ZShbZXZlbnQuZGF0YS5lcnJvciwgbnVsbCwgeyBleGVjdXRlSWQgfV0pO1xuICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5zdWNjZXNzKSByZXNvbHZlKFtudWxsLCBmbG93LCB7IGV4ZWN1dGVJZCB9XSBhcyBhbnkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuZG9uZSkge1xuICAgICAgICAgICAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xuICAgICAgICAgICAgICAgIGV4ZWN1dGVJZHMuZGVsZXRlKGV4ZWN1dGVJZCk7XG4gICAgICAgICAgICAgICAgZmxvdy5yZXR1cm4odW5kZWZpbmVkLCB0cnVlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICghZXZlbnQuZGF0YS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgaGFuZGxlcik7XG4gICAgICAgICAgICAgICAgZXhlY3V0ZUlkcy5kZWxldGUoZXhlY3V0ZUlkKTtcbiAgICAgICAgICAgICAgICBmbG93LnRocm93KGV2ZW50LmRhdGEuZGF0YSwgdHJ1ZSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuZGF0YS5zdWNjZXNzKSBmbG93LmVtaXQoZXZlbnQuZGF0YS5kYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xuICAgICAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKHtcbiAgICAgICAgICAgIGV4ZWN1dGVJZCxcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBwYXJhbXM6IG9wdGlvbnM/LnBhcmFtcyxcbiAgICAgICAgICAgIGhlYWRlcnM6IG9wdGlvbnM/LmhlYWRlcnMsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG5cbiAgcmV0dXJuIHN0YXJnYXRlO1xufVxuXG5leHBvcnQgdHlwZSBNaWxraW9GbG93PFQsIFRSZXR1cm4gPSBhbnksIFROZXh0ID0gYW55PiA9IHtcbiAgZW1pdDogKGZsb3c6IFQpID0+IHZvaWQ7XG4gIFtTeW1ib2wuYXN5bmNJdGVyYXRvcl06ICgpID0+IE1pbGtpb0Zsb3c8VD47XG4gIG5leHQoLi4uW3ZhbHVlXTogW10gfCBbVE5leHRdKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDxULCBUUmV0dXJuPj47XG4gIHJldHVybihkYXRhOiB1bmRlZmluZWQsIGRpc2FibGVQb3N0Q2xvc2VNZXNzYWdlPzogdHJ1ZSk6IFByb21pc2U8SXRlcmF0b3JSZXN1bHQ8VCwgVFJldHVybj4+O1xuICB0aHJvdyhlcnJvcjogYW55LCBkaXNhYmxlUG9zdENsb3NlTWVzc2FnZT86IHRydWUpOiBQcm9taXNlPEl0ZXJhdG9yUmVzdWx0PFQsIFRSZXR1cm4+Pjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGbG93PFQ+KHN0YXJnYXRlT3B0aW9uczogTWlsa2lvU3RhcmdhdGVPcHRpb25zLCBleGVjdXRlSWQ6IHN0cmluZyk6IE1pbGtpb0Zsb3c8VD4ge1xuICBsZXQgc3RhdHVzOiBcInBlbmRpbmdcIiB8IFwicmVzb2x2ZWRcIiB8IFwicmVqZWN0ZWRcIiA9IFwicGVuZGluZ1wiO1xuICBjb25zdCBmbG93czogQXJyYXk8e1xuICAgIGJsYW5rOiBib29sZWFuO1xuICAgIHByb21pc2U6IFByb21pc2U8VD47XG4gICAgcmVzb2x2ZTogKHZhbHVlPzogVCB8IFByb21pc2VMaWtlPFQ+KSA9PiB2b2lkO1xuICAgIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZDtcbiAgfT4gPSBbXTtcblxuICBjb25zdCBpdGVyYXRvciA9IHtcbiAgICBlbWl0OiAoZmxvdzogVCkgPT4ge1xuICAgICAgaWYgKGZsb3dzLmF0KC0xKT8uYmxhbmsgPT09IHRydWUpIHtcbiAgICAgICAgY29uc3QgaXRlbSA9IGZsb3dzLmF0KC0xKSE7XG4gICAgICAgIGl0ZW0uYmxhbmsgPSBmYWxzZTtcbiAgICAgICAgaXRlbS5yZXNvbHZlKGZsb3cpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByZXNvbHZlcnMgPSB3aXRoUmVzb2x2ZXJzPFQ+KCk7XG4gICAgICAgIHJlc29sdmVycy5yZXNvbHZlKGZsb3cpO1xuICAgICAgICBmbG93cy5wdXNoKHsgLi4ucmVzb2x2ZXJzLCBibGFuazogZmFsc2UgfSBhcyBhbnkpO1xuICAgICAgfVxuICAgIH0sXG4gICAgLi4uKHtcbiAgICAgIGFzeW5jIG5leHQoKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDxUPj4ge1xuICAgICAgICBpZiAoc3RhdHVzICE9PSBcInBlbmRpbmdcIikgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IG51bGwgfTtcbiAgICAgICAgaWYgKGZsb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGNvbnN0IHJlc29sdmVycyA9IHdpdGhSZXNvbHZlcnM8VD4oKTtcbiAgICAgICAgICBmbG93cy5wdXNoKHsgLi4ucmVzb2x2ZXJzLCBibGFuazogdHJ1ZSB9IGFzIGFueSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmxvdyA9IGZsb3dzLmF0KDApITtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmxvdy5wcm9taXNlO1xuICAgICAgICBmbG93cy5zaGlmdCgpO1xuICAgICAgICByZXR1cm4geyBkb25lOiBzdGF0dXMgIT09IFwicGVuZGluZ1wiLCB2YWx1ZTogcmVzdWx0IH07XG4gICAgICB9LFxuICAgICAgYXN5bmMgcmV0dXJuKF86IHVuZGVmaW5lZCwgZGlzYWJsZVBvc3RDbG9zZU1lc3NhZ2U/OiB0cnVlKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDx2b2lkPj4ge1xuICAgICAgICBzdGF0dXMgPSBcInJlc29sdmVkXCI7XG4gICAgICAgIGlmIChkaXNhYmxlUG9zdENsb3NlTWVzc2FnZSkgc3RhcmdhdGVPcHRpb25zLnBvcnQucG9zdE1lc3NhZ2UoYENMT1NFX1NUUkVBTToke2V4ZWN1dGVJZH1gKTtcbiAgICAgICAgZm9yIChjb25zdCBmbG93IG9mIGZsb3dzKSB7XG4gICAgICAgICAgZmxvdy5ibGFuayA9IGZhbHNlO1xuICAgICAgICAgIGZsb3cucmVzb2x2ZSh1bmRlZmluZWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiBudWxsIH07XG4gICAgICB9LFxuICAgICAgYXN5bmMgdGhyb3coZXJyOiBhbnksIGRpc2FibGVQb3N0Q2xvc2VNZXNzYWdlPzogdHJ1ZSk6IFByb21pc2U8SXRlcmF0b3JSZXN1bHQ8dm9pZD4+IHtcbiAgICAgICAgc3RhdHVzID0gXCJyZWplY3RlZFwiO1xuICAgICAgICBpZiAoZGlzYWJsZVBvc3RDbG9zZU1lc3NhZ2UpIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKGBDTE9TRV9TVFJFQU06JHtleGVjdXRlSWR9YCk7XG4gICAgICAgIGlmIChmbG93cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBjb25zdCByZXNvbHZlcnMgPSB3aXRoUmVzb2x2ZXJzPFQ+KCk7XG4gICAgICAgICAgZmxvd3MucHVzaCh7IC4uLnJlc29sdmVycywgYmxhbms6IHRydWUgfSBhcyBhbnkpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgZmxvdyBvZiBmbG93cykge1xuICAgICAgICAgIGZsb3cuYmxhbmsgPSBmYWxzZTtcbiAgICAgICAgICBmbG93LnJlamVjdChlcnIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiBudWxsIH07XG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIEFzeW5jSXRlcmF0b3I8dW5rbm93bj4pLFxuICAgIFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICB9O1xuXG4gIHJldHVybiBpdGVyYXRvciBhcyBNaWxraW9GbG93PFQ+O1xufVxuXG5mdW5jdGlvbiB3aXRoUmVzb2x2ZXJzPFQgPSBhbnk+KCk6IFByb21pc2VXaXRoUmVzb2x2ZXJzPFQ+IHtcbiAgbGV0IHJlc29sdmU6IFByb21pc2VXaXRoUmVzb2x2ZXJzPFQ+W1wicmVzb2x2ZVwiXTtcbiAgbGV0IHJlamVjdDogUHJvbWlzZVdpdGhSZXNvbHZlcnM8VD5bXCJyZWplY3RcIl07XG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTxUPigocmVzLCByZWopID0+IHtcbiAgICByZXNvbHZlID0gcmVzO1xuICAgIHJlamVjdCA9IHJlajtcbiAgfSk7XG4gIHJldHVybiB7IHByb21pc2UsIHJlc29sdmU6IHJlc29sdmUhLCByZWplY3Q6IHJlamVjdCEgfTtcbn1cbiIKICBdLAogICJtYXBwaW5ncyI6ICI7QUFNQSxTQUFTLGlCQUFpQixDQUFDLFNBQTZCO0FBQUEsRUFDdEQsS0FBSyxRQUFRO0FBQUEsSUFBUSxRQUFRLFNBQVM7QUFBQSxFQUN0QyxJQUFJLFFBQVEsU0FBUztBQUFBLElBQUcsTUFBTSxJQUFJLE1BQU0sZ0JBQWdCO0FBQUEsRUFDeEQsSUFBSSxRQUFRLFNBQVM7QUFBQSxJQUFJLE1BQU0sSUFBSSxNQUFNLGdCQUFnQjtBQUFBLEVBQ3pELElBQUksUUFBUSxhQUFhLFFBQVEsU0FBUztBQUFBLElBQUcsTUFBTSxJQUFJLE1BQU0sZ0JBQWdCO0FBQUEsRUFDN0UsSUFBSSxXQUFXO0FBQUEsRUFDZixJQUFJLGNBQWM7QUFBQSxFQUNsQixPQUFPO0FBQUEsSUFDTCxRQUFRLEdBQUc7QUFBQSxNQUNULElBQUksYUFBYSxRQUFRO0FBQUEsTUFDekIsTUFBTSxNQUFNLEtBQUssSUFBSTtBQUFBLE1BQ3JCLElBQUksS0FBSztBQUFBLE1BQ1QsSUFBSSxRQUFRLFdBQVc7QUFBQSxRQUNyQixjQUFjO0FBQUEsUUFDZCxLQUFLLEdBQUcsS0FBSyxpQkFBaUIsT0FBTyxHQUFHLENBQUMsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUFBLE1BQzVEO0FBQUEsTUFDQSxJQUFJLFFBQVEsY0FBYyxhQUFhLEtBQUs7QUFBQSxRQUMxQyxLQUFLLEdBQUcsS0FBSyxtQkFBbUIsV0FBVyxFQUFFLFNBQVMsR0FBRyxHQUFHO0FBQUEsTUFDOUQsRUFBTztBQUFBLFFBQ0wsV0FBVztBQUFBLFFBQ1gsTUFBTSxNQUFNO0FBQUEsUUFDWixNQUFNLE1BQU0sY0FBYyxPQUFPLFVBQVUsQ0FBQztBQUFBLFFBQzVDLGNBQWMscUJBQXFCLEtBQUssR0FBRztBQUFBLFFBQzNDLEtBQUssR0FBRyxLQUFLLGlCQUFpQixXQUFXLEVBQUUsU0FBUyxZQUFZLEdBQUc7QUFBQTtBQUFBLE1BRXJFLE9BQU87QUFBQTtBQUFBLElBRVQsY0FBYyxDQUFDLElBQVk7QUFBQSxNQUN6QixPQUFPLFFBQVEsWUFBWSxPQUFPLGlCQUFpQixHQUFHLE1BQU0sR0FBRyxDQUFDLEVBQUUsV0FBVyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUk7QUFBQTtBQUFBLEVBRTlGO0FBQUE7QUFHRixJQUFNLFdBQVc7QUFFakIsU0FBUyxvQkFBb0IsQ0FBQyxLQUFhLEtBQXFCO0FBQUEsRUFDOUQsSUFBSSxPQUFPO0FBQUEsSUFBSyxNQUFNLElBQUksTUFBTSxlQUFlO0FBQUEsRUFFL0MsTUFBTSxRQUFRLE1BQU0sTUFBTTtBQUFBLEVBQzFCLE1BQU0sWUFBWSxLQUFLLEtBQUssT0FBTyxPQUFPLE1BQU0sU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQztBQUFBLEVBQ3hFLE1BQU0sZUFBZSxJQUFJLFdBQVcsU0FBUztBQUFBLEVBRTdDLElBQUk7QUFBQSxFQUNKLEdBQUc7QUFBQSxJQUNELE9BQU8sZ0JBQWdCLFlBQVk7QUFBQSxJQUNuQyxjQUNFLE9BQ0UsS0FBSyxNQUFNLEtBQUssWUFBWSxFQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxFQUFFLFNBQVMsR0FBRyxHQUFHLENBQUMsRUFDMUMsS0FBSyxFQUFFLEdBQ1osSUFBSTtBQUFBLEVBQ1IsU0FBUyxjQUFjO0FBQUEsRUFFdkIsT0FBTyxNQUFNO0FBQUE7QUFHZixTQUFTLGdCQUFnQixDQUFDLE9BQXVCO0FBQUEsRUFDL0MsTUFBTSxPQUFPLE9BQU8sU0FBUyxNQUFNO0FBQUEsRUFDbkMsSUFBSSxTQUFTO0FBQUEsRUFDYixJQUFJLFVBQVU7QUFBQSxFQUVkLElBQUksWUFBWTtBQUFBLElBQUksT0FBTyxTQUFTO0FBQUEsRUFFcEMsT0FBTyxVQUFVLElBQUk7QUFBQSxJQUNuQixNQUFNLFlBQVksVUFBVTtBQUFBLElBQzVCLFNBQVMsU0FBUyxPQUFPLFNBQVMsS0FBSztBQUFBLElBQ3ZDLFVBQVUsVUFBVTtBQUFBLEVBQ3RCO0FBQUEsRUFDQSxPQUFPO0FBQUE7QUFHVCxTQUFTLGdCQUFnQixDQUFDLEtBQXFCO0FBQUEsRUFDN0MsTUFBTSxVQUFxQyxDQUFDO0FBQUEsRUFDNUMsU0FBUyxJQUFJLEVBQUcsSUFBSSxTQUFTLFFBQVEsS0FBSztBQUFBLElBQ3hDLFFBQVEsU0FBUyxNQUFNO0FBQUEsRUFDekI7QUFBQSxFQUVBLE1BQU0sT0FBTyxPQUFPLFNBQVMsTUFBTTtBQUFBLEVBQ25DLElBQUksU0FBUztBQUFBLEVBRWIsU0FBUyxJQUFJLEVBQUcsSUFBSSxJQUFJLFFBQVEsS0FBSztBQUFBLElBQ25DLE1BQU0sT0FBTyxJQUFJO0FBQUEsSUFDakIsTUFBTSxRQUFRLFVBQVU7QUFBQSxNQUN0QixNQUFNLElBQUksTUFBTSxzQkFBc0IsdUJBQXVCO0FBQUEsSUFDL0Q7QUFBQSxJQUNBLE1BQU0sUUFBUSxPQUFPLFFBQVEsS0FBSztBQUFBLElBQ2xDLFNBQVMsU0FBUyxPQUFPO0FBQUEsRUFDM0I7QUFBQSxFQUVBLE9BQU87QUFBQTtBQUdULFNBQVMsYUFBYSxDQUFDLEdBQW1CO0FBQUEsRUFDeEMsT0FBTyxPQUFPLFNBQVMsTUFBTSxLQUFLLElBQUk7QUFBQTtBQUd4QyxJQUFNLGNBQWMsa0JBQWtCLEVBQUUsUUFBUSxJQUFJLFdBQVcsT0FBTyxZQUFZLE1BQU0sQ0FBQztBQUVsRixJQUFNLGFBQWEsWUFBWTs7O0FDbEZ0QyxlQUFzQixvQkFBNkUsQ0FBQyxpQkFBd0M7QUFBQSxFQUMxSSxNQUFNLGFBQWEsSUFBSTtBQUFBLEVBQ3ZCLE1BQU0sVUFBVSxJQUFJLFFBQVEsQ0FBQyxZQUFZO0FBQUEsSUFDdkMsTUFBTSxVQUFVLENBQUMsVUFBeUI7QUFBQSxNQUN4QyxJQUFJLE1BQU0sU0FBUztBQUFBLFFBQVE7QUFBQSxNQUMzQixjQUFjLEtBQUs7QUFBQSxNQUNuQixnQkFBZ0IsS0FBSyxvQkFBb0IsV0FBVyxPQUFPO0FBQUEsTUFDM0QsUUFBUSxJQUFJO0FBQUE7QUFBQSxJQUVkLGdCQUFnQixLQUFLLGlCQUFpQixXQUFXLE9BQU87QUFBQSxJQUN4RCxnQkFBZ0IsS0FBSyxZQUFZLE1BQU07QUFBQSxJQUN2QyxNQUFNLFFBQVEsWUFBWSxNQUFNLGdCQUFnQixLQUFLLFlBQVksTUFBTSxHQUFHLEVBQUU7QUFBQSxHQUM3RTtBQUFBLEVBQ0QsTUFBTSxXQUFXO0FBQUEsSUFDZixLQUFLLEdBQUc7QUFBQSxNQUNOLFdBQVcsYUFBYSxZQUFZO0FBQUEsUUFDbEMsZ0JBQWdCLEtBQUssWUFBWSxnQkFBZ0IsV0FBVztBQUFBLE1BQzlEO0FBQUEsTUFDQSxnQkFBZ0IsS0FBSyxZQUFZLFFBQVE7QUFBQTtBQUFBLFNBRXJDLFFBQW9ELENBQ3hELE1BQ0EsU0FZQTtBQUFBLE1BRUEsT0FBTyxJQUFJLFFBQVEsT0FBTyxZQUFZO0FBQUEsUUFDcEMsTUFBTTtBQUFBLFFBQ04sTUFBTSxZQUFZLFdBQVc7QUFBQSxRQUM3QixXQUFXLElBQUksU0FBUztBQUFBLFFBQ3hCLElBQUksU0FBUyxTQUFTLGFBQWEsU0FBUyxNQUFNO0FBQUEsVUFDaEQsTUFBTSxVQUFVLENBQUMsVUFBeUI7QUFBQSxZQUN4QyxJQUFJLE9BQU8sTUFBTSxTQUFTO0FBQUEsY0FBVTtBQUFBLFlBQ3BDLElBQUksTUFBTSxLQUFLLGNBQWM7QUFBQSxjQUFXO0FBQUEsWUFDeEMsV0FBVyxPQUFPLFNBQVM7QUFBQSxZQUMzQixnQkFBZ0IsS0FBSyxvQkFBb0IsV0FBVyxPQUFPO0FBQUEsWUFDM0QsS0FBSyxNQUFNLEtBQUs7QUFBQSxjQUFTLFFBQVEsQ0FBQyxNQUFNLEtBQUssT0FBTyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFBQSxZQUN4RSxJQUFJLE1BQU0sS0FBSztBQUFBLGNBQVMsUUFBUSxDQUFDLE1BQU0sTUFBTSxLQUFLLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBUTtBQUFBO0FBQUEsVUFFL0UsZ0JBQWdCLEtBQUssaUJBQWlCLFdBQVcsT0FBTztBQUFBLFVBQ3hELGdCQUFnQixLQUFLLFlBQVk7QUFBQSxZQUMvQjtBQUFBLFlBQ0E7QUFBQSxZQUNBLFFBQVEsU0FBUztBQUFBLFlBQ2pCLFNBQVMsU0FBUztBQUFBLFVBQ3BCLENBQUM7QUFBQSxRQUNIO0FBQUEsUUFDQSxJQUFJLFNBQVMsU0FBUyxVQUFVO0FBQUEsVUFDOUIsSUFBSTtBQUFBLFVBQ0osTUFBTSxVQUFVLENBQUMsVUFBeUI7QUFBQSxZQUN4QyxJQUFJLE9BQU8sTUFBTSxTQUFTO0FBQUEsY0FBVTtBQUFBLFlBQ3BDLElBQUksTUFBTSxLQUFLLGNBQWM7QUFBQSxjQUFXO0FBQUEsWUFDeEMsS0FBSyxNQUFNO0FBQUEsY0FDVCxPQUFPLFdBQVcsaUJBQWlCLFNBQVM7QUFBQSxjQUM1QyxLQUFLLE1BQU0sS0FBSztBQUFBLGdCQUFTLFFBQVEsQ0FBQyxNQUFNLEtBQUssT0FBTyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFBQSxjQUN4RSxJQUFJLE1BQU0sS0FBSztBQUFBLGdCQUFTLFFBQVEsQ0FBQyxNQUFNLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBUTtBQUFBLFlBQ3BFLEVBQU87QUFBQSxjQUNMLElBQUksTUFBTSxLQUFLLE1BQU07QUFBQSxnQkFDbkIsZ0JBQWdCLEtBQUssb0JBQW9CLFdBQVcsT0FBTztBQUFBLGdCQUMzRCxXQUFXLE9BQU8sU0FBUztBQUFBLGdCQUMzQixLQUFLLE9BQU8sV0FBVyxJQUFJO0FBQUEsY0FDN0IsRUFBTyxVQUFLLE1BQU0sS0FBSyxTQUFTO0FBQUEsZ0JBQzlCLGdCQUFnQixLQUFLLG9CQUFvQixXQUFXLE9BQU87QUFBQSxnQkFDM0QsV0FBVyxPQUFPLFNBQVM7QUFBQSxnQkFDM0IsS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLElBQUk7QUFBQSxjQUNsQyxFQUFPLFNBQUksTUFBTSxLQUFLO0FBQUEsZ0JBQVMsS0FBSyxLQUFLLE1BQU0sS0FBSyxJQUFJO0FBQUE7QUFBQTtBQUFBLFVBRzVELGdCQUFnQixLQUFLLGlCQUFpQixXQUFXLE9BQU87QUFBQSxVQUN4RCxnQkFBZ0IsS0FBSyxZQUFZO0FBQUEsWUFDL0I7QUFBQSxZQUNBO0FBQUEsWUFDQSxRQUFRLFNBQVM7QUFBQSxZQUNqQixTQUFTLFNBQVM7QUFBQSxVQUNwQixDQUFDO0FBQUEsUUFDSDtBQUFBLE9BQ0Q7QUFBQTtBQUFBLEVBRUw7QUFBQSxFQUVBLE9BQU87QUFBQTtBQVdGLFNBQVMsVUFBYSxDQUFDLGlCQUF3QyxXQUFrQztBQUFBLEVBQ3RHLElBQUksU0FBOEM7QUFBQSxFQUNsRCxNQUFNLFFBS0QsQ0FBQztBQUFBLEVBRU4sTUFBTSxXQUFXO0FBQUEsSUFDZixNQUFNLENBQUMsU0FBWTtBQUFBLE1BQ2pCLElBQUksTUFBTSxHQUFHLEVBQUUsR0FBRyxVQUFVLE1BQU07QUFBQSxRQUNoQyxNQUFNLE9BQU8sTUFBTSxHQUFHLEVBQUU7QUFBQSxRQUN4QixLQUFLLFFBQVE7QUFBQSxRQUNiLEtBQUssUUFBUSxJQUFJO0FBQUEsUUFDakI7QUFBQSxNQUNGLEVBQU87QUFBQSxRQUNMLE1BQU0sWUFBWSxjQUFpQjtBQUFBLFFBQ25DLFVBQVUsUUFBUSxJQUFJO0FBQUEsUUFDdEIsTUFBTSxLQUFLLEtBQUssV0FBVyxPQUFPLE1BQU0sQ0FBUTtBQUFBO0FBQUE7QUFBQSxPQUdoRDtBQUFBLFdBQ0ksS0FBSSxHQUErQjtBQUFBLFFBQ3ZDLElBQUksV0FBVztBQUFBLFVBQVcsT0FBTyxFQUFFLE1BQU0sTUFBTSxPQUFPLEtBQUs7QUFBQSxRQUMzRCxJQUFJLE1BQU0sV0FBVyxHQUFHO0FBQUEsVUFDdEIsTUFBTSxZQUFZLGNBQWlCO0FBQUEsVUFDbkMsTUFBTSxLQUFLLEtBQUssV0FBVyxPQUFPLEtBQUssQ0FBUTtBQUFBLFFBQ2pEO0FBQUEsUUFDQSxNQUFNLE9BQU8sTUFBTSxHQUFHLENBQUM7QUFBQSxRQUN2QixNQUFNLFNBQVMsTUFBTSxLQUFLO0FBQUEsUUFDMUIsTUFBTSxNQUFNO0FBQUEsUUFDWixPQUFPLEVBQUUsTUFBTSxXQUFXLFdBQVcsT0FBTyxPQUFPO0FBQUE7QUFBQSxXQUUvQyxPQUFNLENBQUMsR0FBYyx5QkFBK0Q7QUFBQSxRQUN4RixTQUFTO0FBQUEsUUFDVCxJQUFJO0FBQUEsVUFBeUIsZ0JBQWdCLEtBQUssWUFBWSxnQkFBZ0IsV0FBVztBQUFBLFFBQ3pGLFdBQVcsUUFBUSxPQUFPO0FBQUEsVUFDeEIsS0FBSyxRQUFRO0FBQUEsVUFDYixLQUFLLFFBQVEsU0FBUztBQUFBLFFBQ3hCO0FBQUEsUUFDQSxPQUFPLEVBQUUsTUFBTSxNQUFNLE9BQU8sS0FBSztBQUFBO0FBQUEsV0FFN0IsTUFBSyxDQUFDLEtBQVUseUJBQStEO0FBQUEsUUFDbkYsU0FBUztBQUFBLFFBQ1QsSUFBSTtBQUFBLFVBQXlCLGdCQUFnQixLQUFLLFlBQVksZ0JBQWdCLFdBQVc7QUFBQSxRQUN6RixJQUFJLE1BQU0sV0FBVyxHQUFHO0FBQUEsVUFDdEIsTUFBTSxZQUFZLGNBQWlCO0FBQUEsVUFDbkMsTUFBTSxLQUFLLEtBQUssV0FBVyxPQUFPLEtBQUssQ0FBUTtBQUFBLFFBQ2pEO0FBQUEsUUFDQSxXQUFXLFFBQVEsT0FBTztBQUFBLFVBQ3hCLEtBQUssUUFBUTtBQUFBLFVBQ2IsS0FBSyxPQUFPLEdBQUc7QUFBQSxRQUNqQjtBQUFBLFFBQ0EsT0FBTyxFQUFFLE1BQU0sTUFBTSxPQUFPLEtBQUs7QUFBQTtBQUFBLElBRXJDO0FBQUEsS0FDQyxPQUFPLGNBQWMsR0FBRztBQUFBLE1BQ3ZCLE9BQU87QUFBQTtBQUFBLEVBRVg7QUFBQSxFQUVBLE9BQU87QUFBQTtBQUdULFNBQVMsYUFBc0IsR0FBNEI7QUFBQSxFQUN6RCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixNQUFNLFVBQVUsSUFBSSxRQUFXLENBQUMsS0FBSyxRQUFRO0FBQUEsSUFDM0MsVUFBVTtBQUFBLElBQ1YsU0FBUztBQUFBLEdBQ1Y7QUFBQSxFQUNELE9BQU8sRUFBRSxTQUFTLFNBQW1CLE9BQWdCO0FBQUE7IiwKICAiZGVidWdJZCI6ICIyQkE0N0UxRUVFMTA1NDRDNjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@milkio/stargate-worker","version":"1.0.0-beta.
|
|
1
|
+
{"name":"@milkio/stargate-worker","version":"1.0.0-beta.38","type":"module","module":"./index.js","types":"./index.d.ts","dependencies":{}}
|