react-elmish 7.0.1 → 7.0.2

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/dist/cmd.d.ts CHANGED
@@ -16,52 +16,52 @@ declare const cmd: {
16
16
  */
17
17
  ofSub<TMessage_2 extends Message>(sub: Sub<TMessage_2>): Cmd<TMessage_2>;
18
18
  /**
19
- * Creates a command out of a function and maps the result. This can also be an async function.
20
- * @param task The function to call.
21
- * @param ofSuccess Creates the message to dispatch when the function runs successfully or, for an async function, the promise is resolved.
22
- * @param ofError Creates the message to dispatch when the function throws an error or, for an async function, the promise is rejected.
23
- * @param args The parameters of the task.
24
- */
19
+ * Creates a command out of a function and maps the result. This can also be an async function.
20
+ * @param task The function to call.
21
+ * @param ofSuccess Creates the message to dispatch when the function runs successfully or, for an async function, the promise is resolved.
22
+ * @param ofError Creates the message to dispatch when the function throws an error or, for an async function, the promise is rejected.
23
+ * @param args The parameters of the task.
24
+ */
25
25
  ofEither<TSuccessMessage extends Message, TErrorMessage extends Message, TArgs extends unknown[], TReturn>(task: (...args: TArgs) => TReturn, ofSuccess: (result: Awaited<TReturn>) => TSuccessMessage, ofError: (error: Error) => TErrorMessage, ...args: TArgs): Cmd<TSuccessMessage | TErrorMessage>;
26
26
  /**
27
- * Creates a command out of a function and ignores the error case. This can also be an async function.
28
- * @param task The async function to call.
29
- * @param ofSuccess Creates the message to dispatch when the function runs successfully or, for an async function, the promise is resolved.
30
- * @param args The parameters of the task.
31
- */
27
+ * Creates a command out of a function and ignores the error case. This can also be an async function.
28
+ * @param task The async function to call.
29
+ * @param ofSuccess Creates the message to dispatch when the function runs successfully or, for an async function, the promise is resolved.
30
+ * @param args The parameters of the task.
31
+ */
32
32
  ofSuccess<TSuccessMessage_1 extends Message, TArgs_1 extends unknown[], TReturn_1>(task: (...args: TArgs_1) => TReturn_1, ofSuccess: (result: Awaited<TReturn_1>) => TSuccessMessage_1, ...args: TArgs_1): Cmd<TSuccessMessage_1>;
33
33
  /**
34
- * Creates a command out of a function and ignores the success case. This can also be an async function.
35
- * @param task The function to call.
36
- * @param ofError Creates the message to dispatch when the function runs successfully or, for an async function, the promise is rejected.
37
- * @param args The parameters of the task.
38
- */
34
+ * Creates a command out of a function and ignores the success case. This can also be an async function.
35
+ * @param task The function to call.
36
+ * @param ofError Creates the message to dispatch when the function runs successfully or, for an async function, the promise is rejected.
37
+ * @param args The parameters of the task.
38
+ */
39
39
  ofError<TErrorMessage_1 extends Message, TArgs_2 extends unknown[], TReturn_2>(task: (...args: TArgs_2) => TReturn_2, ofError: (error: Error) => TErrorMessage_1, ...args: TArgs_2): Cmd<TErrorMessage_1>;
40
40
  /**
41
41
  * Provides functionalities to create commands from simple functions.
42
42
  */
43
43
  ofFunc: {
44
44
  /**
45
- * Creates a command out of a simple function and maps the result.
46
- * @param task The function to call.
47
- * @param ofSuccess Creates the message to dispatch after a successful call of the task.
48
- * @param ofError Creates the message to dispatch when an error occurred.
49
- * @param args The parameters of the task.
50
- */
45
+ * Creates a command out of a simple function and maps the result.
46
+ * @param task The function to call.
47
+ * @param ofSuccess Creates the message to dispatch after a successful call of the task.
48
+ * @param ofError Creates the message to dispatch when an error occurred.
49
+ * @param args The parameters of the task.
50
+ */
51
51
  either<TSuccessMessage_2 extends Message, TErrorMessage_2 extends Message, TArgs_3 extends unknown[], TReturn_3>(task: (...args: TArgs_3) => TReturn_3, ofSuccess: (result: TReturn_3) => TSuccessMessage_2, ofError: (error: Error) => TErrorMessage_2, ...args: TArgs_3): Cmd<TSuccessMessage_2 | TErrorMessage_2>;
52
52
  /**
53
- * Creates a command out of a simple function and ignores the error case.
54
- * @param task The function to call.
55
- * @param ofSuccess Creates the message to dispatch after a successful call of the task.
56
- * @param args The parameters of the task.
57
- */
53
+ * Creates a command out of a simple function and ignores the error case.
54
+ * @param task The function to call.
55
+ * @param ofSuccess Creates the message to dispatch after a successful call of the task.
56
+ * @param args The parameters of the task.
57
+ */
58
58
  perform<TSuccessMessage_3 extends Message, TArgs_4 extends unknown[], TReturn_4>(task: (...args: TArgs_4) => TReturn_4, ofSuccess: (result: TReturn_4) => TSuccessMessage_3, ...args: TArgs_4): Cmd<TSuccessMessage_3>;
59
59
  /**
60
- * Creates a command out of a simple function and ignores the success case.
61
- * @param task The function to call.
62
- * @param ofError Creates the message to dispatch when an error occurred.
63
- * @param args The parameters of the task.
64
- */
60
+ * Creates a command out of a simple function and ignores the success case.
61
+ * @param task The function to call.
62
+ * @param ofError Creates the message to dispatch when an error occurred.
63
+ * @param args The parameters of the task.
64
+ */
65
65
  attempt<TErrorMessage_3 extends Message, TArgs_5 extends unknown[], TReturn_5>(task: (...args: TArgs_5) => TReturn_5, ofError: (error: Error) => TErrorMessage_3, ...args: TArgs_5): Cmd<TErrorMessage_3>;
66
66
  };
67
67
  /**
@@ -69,27 +69,27 @@ declare const cmd: {
69
69
  */
70
70
  ofPromise: {
71
71
  /**
72
- * Creates a command out of an async function and maps the result.
73
- * @param task The async function to call.
74
- * @param ofSuccess Creates the message to dispatch when the promise is resolved.
75
- * @param ofError Creates the message to dispatch when the promise is rejected.
76
- * @param args The parameters of the task.
77
- */
72
+ * Creates a command out of an async function and maps the result.
73
+ * @param task The async function to call.
74
+ * @param ofSuccess Creates the message to dispatch when the promise is resolved.
75
+ * @param ofError Creates the message to dispatch when the promise is rejected.
76
+ * @param args The parameters of the task.
77
+ */
78
78
  either<TSuccessMessage_4 extends Message, TErrorMessage_4 extends Message, TArgs_6 extends unknown[], TReturn_6>(task: (...args: TArgs_6) => Promise<TReturn_6>, ofSuccess: (result: TReturn_6) => TSuccessMessage_4, ofError: (error: Error) => TErrorMessage_4, ...args: TArgs_6): Cmd<TSuccessMessage_4 | TErrorMessage_4>;
79
79
  /**
80
- * Creates a command out of an async function and ignores the error case.
81
- * @param task The async function to call.
82
- * @param ofSuccess Creates the message to dispatch when the promise is resolved.
83
- * @param args The parameters of the task.
84
- */
80
+ * Creates a command out of an async function and ignores the error case.
81
+ * @param task The async function to call.
82
+ * @param ofSuccess Creates the message to dispatch when the promise is resolved.
83
+ * @param args The parameters of the task.
84
+ */
85
85
  perform<TSuccessMessage_5 extends Message, TArgs_7 extends unknown[], TReturn_7>(task: (...args: TArgs_7) => Promise<TReturn_7>, ofSuccess: (result: TReturn_7) => TSuccessMessage_5, ...args: TArgs_7): Cmd<TSuccessMessage_5>;
86
86
  /**
87
- * Creates a command out of an async function and ignores the success case.
88
- * @param task The async function to call.
89
- * @param ofError Creates the message to dispatch when the promise is rejected.
90
- * @param args The parameters of the task.
91
- */
87
+ * Creates a command out of an async function and ignores the success case.
88
+ * @param task The async function to call.
89
+ * @param ofError Creates the message to dispatch when the promise is rejected.
90
+ * @param args The parameters of the task.
91
+ */
92
92
  attempt<TErrorMessage_5 extends Message, TArgs_8 extends unknown[], TReturn_8>(task: (...args: TArgs_8) => Promise<TReturn_8>, ofError: (error: Error) => TErrorMessage_5, ...args: TArgs_8): Cmd<TErrorMessage_5>;
93
93
  };
94
94
  };
95
- export { cmd, };
95
+ export { cmd };
package/dist/cmd.js CHANGED
@@ -32,12 +32,12 @@ var cmd = {
32
32
  return [sub];
33
33
  },
34
34
  /**
35
- * Creates a command out of a function and maps the result. This can also be an async function.
36
- * @param task The function to call.
37
- * @param ofSuccess Creates the message to dispatch when the function runs successfully or, for an async function, the promise is resolved.
38
- * @param ofError Creates the message to dispatch when the function throws an error or, for an async function, the promise is rejected.
39
- * @param args The parameters of the task.
40
- */
35
+ * Creates a command out of a function and maps the result. This can also be an async function.
36
+ * @param task The function to call.
37
+ * @param ofSuccess Creates the message to dispatch when the function runs successfully or, for an async function, the promise is resolved.
38
+ * @param ofError Creates the message to dispatch when the function throws an error or, for an async function, the promise is rejected.
39
+ * @param args The parameters of the task.
40
+ */
41
41
  ofEither: function ofEither(task, ofSuccess, ofError) {
42
42
  for (var _len2 = arguments.length, args = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) {
43
43
  args[_key2 - 3] = arguments[_key2];
@@ -57,11 +57,11 @@ var cmd = {
57
57
  return [bind];
58
58
  },
59
59
  /**
60
- * Creates a command out of a function and ignores the error case. This can also be an async function.
61
- * @param task The async function to call.
62
- * @param ofSuccess Creates the message to dispatch when the function runs successfully or, for an async function, the promise is resolved.
63
- * @param args The parameters of the task.
64
- */
60
+ * Creates a command out of a function and ignores the error case. This can also be an async function.
61
+ * @param task The async function to call.
62
+ * @param ofSuccess Creates the message to dispatch when the function runs successfully or, for an async function, the promise is resolved.
63
+ * @param args The parameters of the task.
64
+ */
65
65
  ofSuccess: function ofSuccess(task, _ofSuccess) {
66
66
  for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
67
67
  args[_key3 - 2] = arguments[_key3];
@@ -80,11 +80,11 @@ var cmd = {
80
80
  return [bind];
81
81
  },
82
82
  /**
83
- * Creates a command out of a function and ignores the success case. This can also be an async function.
84
- * @param task The function to call.
85
- * @param ofError Creates the message to dispatch when the function runs successfully or, for an async function, the promise is rejected.
86
- * @param args The parameters of the task.
87
- */
83
+ * Creates a command out of a function and ignores the success case. This can also be an async function.
84
+ * @param task The function to call.
85
+ * @param ofError Creates the message to dispatch when the function runs successfully or, for an async function, the promise is rejected.
86
+ * @param args The parameters of the task.
87
+ */
88
88
  ofError: function ofError(task, _ofError) {
89
89
  for (var _len4 = arguments.length, args = new Array(_len4 > 2 ? _len4 - 2 : 0), _key4 = 2; _key4 < _len4; _key4++) {
90
90
  args[_key4 - 2] = arguments[_key4];
@@ -108,12 +108,12 @@ var cmd = {
108
108
  */
109
109
  ofFunc: {
110
110
  /**
111
- * Creates a command out of a simple function and maps the result.
112
- * @param task The function to call.
113
- * @param ofSuccess Creates the message to dispatch after a successful call of the task.
114
- * @param ofError Creates the message to dispatch when an error occurred.
115
- * @param args The parameters of the task.
116
- */
111
+ * Creates a command out of a simple function and maps the result.
112
+ * @param task The function to call.
113
+ * @param ofSuccess Creates the message to dispatch after a successful call of the task.
114
+ * @param ofError Creates the message to dispatch when an error occurred.
115
+ * @param args The parameters of the task.
116
+ */
117
117
  either: function either(task, ofSuccess, ofError) {
118
118
  for (var _len5 = arguments.length, args = new Array(_len5 > 3 ? _len5 - 3 : 0), _key5 = 3; _key5 < _len5; _key5++) {
119
119
  args[_key5 - 3] = arguments[_key5];
@@ -129,11 +129,11 @@ var cmd = {
129
129
  return [bind];
130
130
  },
131
131
  /**
132
- * Creates a command out of a simple function and ignores the error case.
133
- * @param task The function to call.
134
- * @param ofSuccess Creates the message to dispatch after a successful call of the task.
135
- * @param args The parameters of the task.
136
- */
132
+ * Creates a command out of a simple function and ignores the error case.
133
+ * @param task The function to call.
134
+ * @param ofSuccess Creates the message to dispatch after a successful call of the task.
135
+ * @param args The parameters of the task.
136
+ */
137
137
  perform: function perform(task, ofSuccess) {
138
138
  for (var _len6 = arguments.length, args = new Array(_len6 > 2 ? _len6 - 2 : 0), _key6 = 2; _key6 < _len6; _key6++) {
139
139
  args[_key6 - 2] = arguments[_key6];
@@ -151,11 +151,11 @@ var cmd = {
151
151
  return [bind];
152
152
  },
153
153
  /**
154
- * Creates a command out of a simple function and ignores the success case.
155
- * @param task The function to call.
156
- * @param ofError Creates the message to dispatch when an error occurred.
157
- * @param args The parameters of the task.
158
- */
154
+ * Creates a command out of a simple function and ignores the success case.
155
+ * @param task The function to call.
156
+ * @param ofError Creates the message to dispatch when an error occurred.
157
+ * @param args The parameters of the task.
158
+ */
159
159
  attempt: function attempt(task, ofError) {
160
160
  for (var _len7 = arguments.length, args = new Array(_len7 > 2 ? _len7 - 2 : 0), _key7 = 2; _key7 < _len7; _key7++) {
161
161
  args[_key7 - 2] = arguments[_key7];
@@ -178,12 +178,12 @@ var cmd = {
178
178
  */
179
179
  ofPromise: {
180
180
  /**
181
- * Creates a command out of an async function and maps the result.
182
- * @param task The async function to call.
183
- * @param ofSuccess Creates the message to dispatch when the promise is resolved.
184
- * @param ofError Creates the message to dispatch when the promise is rejected.
185
- * @param args The parameters of the task.
186
- */
181
+ * Creates a command out of an async function and maps the result.
182
+ * @param task The async function to call.
183
+ * @param ofSuccess Creates the message to dispatch when the promise is resolved.
184
+ * @param ofError Creates the message to dispatch when the promise is rejected.
185
+ * @param args The parameters of the task.
186
+ */
187
187
  either: function either(task, ofSuccess, ofError) {
188
188
  for (var _len8 = arguments.length, args = new Array(_len8 > 3 ? _len8 - 3 : 0), _key8 = 3; _key8 < _len8; _key8++) {
189
189
  args[_key8 - 3] = arguments[_key8];
@@ -198,11 +198,11 @@ var cmd = {
198
198
  return [bind];
199
199
  },
200
200
  /**
201
- * Creates a command out of an async function and ignores the error case.
202
- * @param task The async function to call.
203
- * @param ofSuccess Creates the message to dispatch when the promise is resolved.
204
- * @param args The parameters of the task.
205
- */
201
+ * Creates a command out of an async function and ignores the error case.
202
+ * @param task The async function to call.
203
+ * @param ofSuccess Creates the message to dispatch when the promise is resolved.
204
+ * @param args The parameters of the task.
205
+ */
206
206
  perform: function perform(task, ofSuccess) {
207
207
  for (var _len9 = arguments.length, args = new Array(_len9 > 2 ? _len9 - 2 : 0), _key9 = 2; _key9 < _len9; _key9++) {
208
208
  args[_key9 - 2] = arguments[_key9];
@@ -216,11 +216,11 @@ var cmd = {
216
216
  return [bind];
217
217
  },
218
218
  /**
219
- * Creates a command out of an async function and ignores the success case.
220
- * @param task The async function to call.
221
- * @param ofError Creates the message to dispatch when the promise is rejected.
222
- * @param args The parameters of the task.
223
- */
219
+ * Creates a command out of an async function and ignores the success case.
220
+ * @param task The async function to call.
221
+ * @param ofError Creates the message to dispatch when the promise is rejected.
222
+ * @param args The parameters of the task.
223
+ */
224
224
  attempt: function attempt(task, ofError) {
225
225
  for (var _len10 = arguments.length, args = new Array(_len10 > 2 ? _len10 - 2 : 0), _key10 = 2; _key10 < _len10; _key10++) {
226
226
  args[_key10 - 2] = arguments[_key10];
@@ -242,4 +242,4 @@ exports.cmd = cmd;
242
242
  function defaultFallbackHandler() {
243
243
  // blank
244
244
  }
245
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjbWQiLCJvZk1zZyIsIm1zZyIsImRpc3BhdGNoIiwiYmF0Y2giLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiY29tbWFuZHMiLCJBcnJheSIsIl9rZXkiLCJmaWx0ZXIiLCJCb29sZWFuIiwiZmxhdCIsIm9mU3ViIiwic3ViIiwib2ZFaXRoZXIiLCJ0YXNrIiwib2ZTdWNjZXNzIiwib2ZFcnJvciIsIl9sZW4yIiwiYXJncyIsIl9rZXkyIiwiYmluZCIsInRhc2tSZXN1bHQiLCJhcHBseSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsInJlc3VsdCIsImV4IiwiX2xlbjMiLCJfa2V5MyIsImZhbGxiYWNrIiwidW5kZWZpbmVkIiwiZGVmYXVsdEZhbGxiYWNrSGFuZGxlciIsIl9sZW40IiwiX2tleTQiLCJvZkZ1bmMiLCJlaXRoZXIiLCJfbGVuNSIsIl9rZXk1IiwicGVyZm9ybSIsIl9sZW42IiwiX2tleTYiLCJhdHRlbXB0IiwiX2xlbjciLCJfa2V5NyIsIm9mUHJvbWlzZSIsIl9sZW44IiwiX2tleTgiLCJfbGVuOSIsIl9rZXk5IiwiX2xlbjEwIiwiX2tleTEwIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jbWQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ21kLCBEaXNwYXRjaCwgRmFsbGJhY2tIYW5kbGVyLCBNZXNzYWdlLCBTdWIgfSBmcm9tIFwiLi9UeXBlc1wiO1xuXG5jb25zdCBjbWQgPSB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNvbW1hbmQgb3V0IG9mIGEgc3BlY2lmaWMgbWVzc2FnZS5cbiAgICAgKiBAcGFyYW0ge1RNZXNzYWdlfSBtc2cgVGhlIHNwZWNpZmljIG1lc3NhZ2UuXG4gICAgICovXG4gICAgb2ZNc2c8VE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiAobXNnOiBUTWVzc2FnZSk6IENtZDxUTWVzc2FnZT4ge1xuICAgICAgICByZXR1cm4gW2Rpc3BhdGNoID0+IGRpc3BhdGNoKG1zZyldO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBBZ2dyZWdhdGVzIG11bHRpcGxlIGNvbW1hbmRzLlxuICAgICAqIEBwYXJhbSB7Q21kPFRNZXNzYWdlPiBbXX0gY29tbWFuZHMgQXJyYXkgb2YgY29tbWFuZHMuXG4gICAgICovXG4gICAgYmF0Y2g8VE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiAoLi4uY29tbWFuZHM6IChDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkIHwgbnVsbCkgW10pOiBDbWQ8VE1lc3NhZ2U+IHtcbiAgICAgICAgcmV0dXJuIChjb21tYW5kcy5maWx0ZXIoQm9vbGVhbikgYXMgQ21kPFRNZXNzYWdlPiBbXSkuZmxhdCgpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBDb21tYW5kIHRvIGNhbGwgdGhlIHN1YnNjcmliZXIuXG4gICAgICogQHBhcmFtIHtTdWI8VE1lc3NhZ2U+fSBzdWIgVGhlIHN1YnNjcmliZXIgZnVuY3Rpb24uXG4gICAgICovXG4gICAgb2ZTdWI8VE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiAoc3ViOiBTdWI8VE1lc3NhZ2U+KTogQ21kPFRNZXNzYWdlPiB7XG4gICAgICAgIHJldHVybiBbc3ViXTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgKiBDcmVhdGVzIGEgY29tbWFuZCBvdXQgb2YgYSBmdW5jdGlvbiBhbmQgbWFwcyB0aGUgcmVzdWx0LiBUaGlzIGNhbiBhbHNvIGJlIGFuIGFzeW5jIGZ1bmN0aW9uLlxuICAgICogQHBhcmFtIHRhc2sgVGhlIGZ1bmN0aW9uIHRvIGNhbGwuXG4gICAgKiBAcGFyYW0gb2ZTdWNjZXNzIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiB0aGUgZnVuY3Rpb24gcnVucyBzdWNjZXNzZnVsbHkgb3IsIGZvciBhbiBhc3luYyBmdW5jdGlvbiwgdGhlIHByb21pc2UgaXMgcmVzb2x2ZWQuXG4gICAgKiBAcGFyYW0gb2ZFcnJvciBDcmVhdGVzIHRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoIHdoZW4gdGhlIGZ1bmN0aW9uIHRocm93cyBhbiBlcnJvciBvciwgZm9yIGFuIGFzeW5jIGZ1bmN0aW9uLCB0aGUgcHJvbWlzZSBpcyByZWplY3RlZC5cbiAgICAqIEBwYXJhbSBhcmdzIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSB0YXNrLlxuICAgICovXG4gICAgb2ZFaXRoZXI8VFN1Y2Nlc3NNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSwgVEVycm9yTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2UsIFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJuLCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IEF3YWl0ZWQ8VFJldHVybj4pID0+IFRTdWNjZXNzTWVzc2FnZSwgb2ZFcnJvcjogKGVycm9yOiBFcnJvcikgPT4gVEVycm9yTWVzc2FnZSwgLi4uYXJnczogVEFyZ3MpOiBDbWQ8VFN1Y2Nlc3NNZXNzYWdlIHwgVEVycm9yTWVzc2FnZT4ge1xuICAgICAgICBjb25zdCBiaW5kID0gKGRpc3BhdGNoOiBEaXNwYXRjaDxUU3VjY2Vzc01lc3NhZ2UgfCBURXJyb3JNZXNzYWdlPik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0YXNrUmVzdWx0ID0gdGFzayguLi5hcmdzKTtcblxuICAgICAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSh0YXNrUmVzdWx0KVxuICAgICAgICAgICAgICAgICAgICAudGhlbihyZXN1bHQgPT4gZGlzcGF0Y2gob2ZTdWNjZXNzKHJlc3VsdCkpKVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGV4OiBFcnJvcikgPT4gZGlzcGF0Y2gob2ZFcnJvcihleCkpKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2gob2ZFcnJvcihleCBhcyBFcnJvcikpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBbYmluZF07XG4gICAgfSxcblxuICAgIC8qKlxuICAgICogQ3JlYXRlcyBhIGNvbW1hbmQgb3V0IG9mIGEgZnVuY3Rpb24gYW5kIGlnbm9yZXMgdGhlIGVycm9yIGNhc2UuIFRoaXMgY2FuIGFsc28gYmUgYW4gYXN5bmMgZnVuY3Rpb24uXG4gICAgKiBAcGFyYW0gdGFzayBUaGUgYXN5bmMgZnVuY3Rpb24gdG8gY2FsbC5cbiAgICAqIEBwYXJhbSBvZlN1Y2Nlc3MgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCB3aGVuIHRoZSBmdW5jdGlvbiBydW5zIHN1Y2Nlc3NmdWxseSBvciwgZm9yIGFuIGFzeW5jIGZ1bmN0aW9uLCB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZC5cbiAgICAqIEBwYXJhbSBhcmdzIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSB0YXNrLlxuICAgICovXG4gICAgb2ZTdWNjZXNzPFRTdWNjZXNzTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2UsIFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJuLCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IEF3YWl0ZWQ8VFJldHVybj4pID0+IFRTdWNjZXNzTWVzc2FnZSwgLi4uYXJnczogVEFyZ3MpOiBDbWQ8VFN1Y2Nlc3NNZXNzYWdlPiB7XG4gICAgICAgIGNvbnN0IGJpbmQgPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRTdWNjZXNzTWVzc2FnZT4sIGZhbGxiYWNrOiBGYWxsYmFja0hhbmRsZXIgPSBkZWZhdWx0RmFsbGJhY2tIYW5kbGVyKTogdm9pZCA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhc2tSZXN1bHQgPSB0YXNrKC4uLmFyZ3MpO1xuXG4gICAgICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHRhc2tSZXN1bHQpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKHJlc3VsdCA9PiBkaXNwYXRjaChvZlN1Y2Nlc3MocmVzdWx0KSkpXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaChmYWxsYmFjayk7XG4gICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgIGZhbGxiYWNrKGV4IGFzIEVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhIGZ1bmN0aW9uIGFuZCBpZ25vcmVzIHRoZSBzdWNjZXNzIGNhc2UuIFRoaXMgY2FuIGFsc28gYmUgYW4gYXN5bmMgZnVuY3Rpb24uXG4gICAgKiBAcGFyYW0gdGFzayBUaGUgZnVuY3Rpb24gdG8gY2FsbC5cbiAgICAqIEBwYXJhbSBvZkVycm9yIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiB0aGUgZnVuY3Rpb24gcnVucyBzdWNjZXNzZnVsbHkgb3IsIGZvciBhbiBhc3luYyBmdW5jdGlvbiwgdGhlIHByb21pc2UgaXMgcmVqZWN0ZWQuXG4gICAgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cbiAgICAqL1xuICAgIG9mRXJyb3I8VEVycm9yTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2UsIFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJuLCBvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBURXJyb3JNZXNzYWdlLCAuLi5hcmdzOiBUQXJncyk6IENtZDxURXJyb3JNZXNzYWdlPiB7XG4gICAgICAgIGNvbnN0IGJpbmQgPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRFcnJvck1lc3NhZ2U+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0YXNrUmVzdWx0ID0gdGFzayguLi5hcmdzKTtcblxuICAgICAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSh0YXNrUmVzdWx0KVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiBmYWxsYmFjaz8uKCkpXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXg6IEVycm9yKSA9PiBkaXNwYXRjaChvZkVycm9yKGV4KSkpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICBkaXNwYXRjaChvZkVycm9yKGV4IGFzIEVycm9yKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIFtiaW5kXTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogUHJvdmlkZXMgZnVuY3Rpb25hbGl0aWVzIHRvIGNyZWF0ZSBjb21tYW5kcyBmcm9tIHNpbXBsZSBmdW5jdGlvbnMuXG4gICAgICovXG4gICAgb2ZGdW5jOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhIHNpbXBsZSBmdW5jdGlvbiBhbmQgbWFwcyB0aGUgcmVzdWx0LlxuICAgICAgICAqIEBwYXJhbSB0YXNrIFRoZSBmdW5jdGlvbiB0byBjYWxsLlxuICAgICAgICAqIEBwYXJhbSBvZlN1Y2Nlc3MgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCBhZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCBvZiB0aGUgdGFzay5cbiAgICAgICAgKiBAcGFyYW0gb2ZFcnJvciBDcmVhdGVzIHRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoIHdoZW4gYW4gZXJyb3Igb2NjdXJyZWQuXG4gICAgICAgICogQHBhcmFtIGFyZ3MgVGhlIHBhcmFtZXRlcnMgb2YgdGhlIHRhc2suXG4gICAgICAgICovXG4gICAgICAgIGVpdGhlcjxUU3VjY2Vzc01lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlLCBURXJyb3JNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSwgVEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFRSZXR1cm4sIG9mU3VjY2VzczogKHJlc3VsdDogVFJldHVybikgPT4gVFN1Y2Nlc3NNZXNzYWdlLCBvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBURXJyb3JNZXNzYWdlLCAuLi5hcmdzOiBUQXJncyk6IENtZDxUU3VjY2Vzc01lc3NhZ2UgfCBURXJyb3JNZXNzYWdlPiB7XG4gICAgICAgICAgICBjb25zdCBiaW5kID0gKGRpc3BhdGNoOiBEaXNwYXRjaDxUU3VjY2Vzc01lc3NhZ2UgfCBURXJyb3JNZXNzYWdlPik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRhc2soLi4uYXJncyk7XG5cbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2gob2ZTdWNjZXNzKHJlc3VsdCkpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKG9mRXJyb3IoZXggYXMgRXJyb3IpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhIHNpbXBsZSBmdW5jdGlvbiBhbmQgaWdub3JlcyB0aGUgZXJyb3IgY2FzZS5cbiAgICAgICAgKiBAcGFyYW0gdGFzayBUaGUgZnVuY3Rpb24gdG8gY2FsbC5cbiAgICAgICAgKiBAcGFyYW0gb2ZTdWNjZXNzIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgb2YgdGhlIHRhc2suXG4gICAgICAgICogQHBhcmFtIGFyZ3MgVGhlIHBhcmFtZXRlcnMgb2YgdGhlIHRhc2suXG4gICAgICAgICovXG4gICAgICAgIHBlcmZvcm08VFN1Y2Nlc3NNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSwgVEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFRSZXR1cm4sIG9mU3VjY2VzczogKHJlc3VsdDogVFJldHVybikgPT4gVFN1Y2Nlc3NNZXNzYWdlLCAuLi5hcmdzOiBUQXJncyk6IENtZDxUU3VjY2Vzc01lc3NhZ2U+IHtcbiAgICAgICAgICAgIGNvbnN0IGJpbmQgPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRTdWNjZXNzTWVzc2FnZT4sIGZhbGxiYWNrPzogRmFsbGJhY2tIYW5kbGVyKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGFzayguLi5hcmdzKTtcblxuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaChvZlN1Y2Nlc3MocmVzdWx0KSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFjayhleCBhcyBFcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhIHNpbXBsZSBmdW5jdGlvbiBhbmQgaWdub3JlcyB0aGUgc3VjY2VzcyBjYXNlLlxuICAgICAgICAqIEBwYXJhbSB0YXNrIFRoZSBmdW5jdGlvbiB0byBjYWxsLlxuICAgICAgICAqIEBwYXJhbSBvZkVycm9yIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiBhbiBlcnJvciBvY2N1cnJlZC5cbiAgICAgICAgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cbiAgICAgICAgKi9cbiAgICAgICAgYXR0ZW1wdDxURXJyb3JNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSwgVEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFRSZXR1cm4sIG9mRXJyb3I6IChlcnJvcjogRXJyb3IpID0+IFRFcnJvck1lc3NhZ2UsIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRFcnJvck1lc3NhZ2U+IHtcbiAgICAgICAgICAgIGNvbnN0IGJpbmQgPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRFcnJvck1lc3NhZ2U+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHRhc2soLi4uYXJncyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2gob2ZFcnJvcihleCBhcyBFcnJvcikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiBbYmluZF07XG4gICAgICAgIH0sXG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIGZ1bmN0aW9uYWxpdGllcyB0byBjcmVhdGUgY29tbWFuZHMgZnJvbSBhc3luYyBmdW5jdGlvbnMuXG4gICAgICovXG4gICAgb2ZQcm9taXNlOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhbiBhc3luYyBmdW5jdGlvbiBhbmQgbWFwcyB0aGUgcmVzdWx0LlxuICAgICAgICAqIEBwYXJhbSB0YXNrIFRoZSBhc3luYyBmdW5jdGlvbiB0byBjYWxsLlxuICAgICAgICAqIEBwYXJhbSBvZlN1Y2Nlc3MgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCB3aGVuIHRoZSBwcm9taXNlIGlzIHJlc29sdmVkLlxuICAgICAgICAqIEBwYXJhbSBvZkVycm9yIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiB0aGUgcHJvbWlzZSBpcyByZWplY3RlZC5cbiAgICAgICAgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cbiAgICAgICAgKi9cbiAgICAgICAgZWl0aGVyPFRTdWNjZXNzTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2UsIFRFcnJvck1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlLCBUQXJncyBleHRlbmRzIHVua25vd24gW10sIFRSZXR1cm4+KHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gUHJvbWlzZTxUUmV0dXJuPiwgb2ZTdWNjZXNzOiAocmVzdWx0OiBUUmV0dXJuKSA9PiBUU3VjY2Vzc01lc3NhZ2UsIG9mRXJyb3I6IChlcnJvcjogRXJyb3IpID0+IFRFcnJvck1lc3NhZ2UsIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRTdWNjZXNzTWVzc2FnZSB8IFRFcnJvck1lc3NhZ2U+IHtcbiAgICAgICAgICAgIGNvbnN0IGJpbmQgPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRTdWNjZXNzTWVzc2FnZSB8IFRFcnJvck1lc3NhZ2U+KTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGFzayguLi5hcmdzKVxuICAgICAgICAgICAgICAgICAgICAudGhlbihyZXN1bHQgPT4gZGlzcGF0Y2gob2ZTdWNjZXNzKHJlc3VsdCkpKVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGV4OiBFcnJvcikgPT4gZGlzcGF0Y2gob2ZFcnJvcihleCkpKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiBbYmluZF07XG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICogQ3JlYXRlcyBhIGNvbW1hbmQgb3V0IG9mIGFuIGFzeW5jIGZ1bmN0aW9uIGFuZCBpZ25vcmVzIHRoZSBlcnJvciBjYXNlLlxuICAgICAgICAqIEBwYXJhbSB0YXNrIFRoZSBhc3luYyBmdW5jdGlvbiB0byBjYWxsLlxuICAgICAgICAqIEBwYXJhbSBvZlN1Y2Nlc3MgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCB3aGVuIHRoZSBwcm9taXNlIGlzIHJlc29sdmVkLlxuICAgICAgICAqIEBwYXJhbSBhcmdzIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSB0YXNrLlxuICAgICAgICAqL1xuICAgICAgICBwZXJmb3JtPFRTdWNjZXNzTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2UsIFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBQcm9taXNlPFRSZXR1cm4+LCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRTdWNjZXNzTWVzc2FnZSwgLi4uYXJnczogVEFyZ3MpOiBDbWQ8VFN1Y2Nlc3NNZXNzYWdlPiB7XG4gICAgICAgICAgICBjb25zdCBiaW5kID0gKGRpc3BhdGNoOiBEaXNwYXRjaDxUU3VjY2Vzc01lc3NhZ2U+LCBmYWxsYmFjazogRmFsbGJhY2tIYW5kbGVyID0gZGVmYXVsdEZhbGxiYWNrSGFuZGxlcik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgIHRhc2soLi4uYXJncylcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4ocmVzdWx0ID0+IGRpc3BhdGNoKG9mU3VjY2VzcyhyZXN1bHQpKSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKGZhbGxiYWNrKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiBbYmluZF07XG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICogQ3JlYXRlcyBhIGNvbW1hbmQgb3V0IG9mIGFuIGFzeW5jIGZ1bmN0aW9uIGFuZCBpZ25vcmVzIHRoZSBzdWNjZXNzIGNhc2UuXG4gICAgICAgICogQHBhcmFtIHRhc2sgVGhlIGFzeW5jIGZ1bmN0aW9uIHRvIGNhbGwuXG4gICAgICAgICogQHBhcmFtIG9mRXJyb3IgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCB3aGVuIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLlxuICAgICAgICAqIEBwYXJhbSBhcmdzIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSB0YXNrLlxuICAgICAgICAqL1xuICAgICAgICBhdHRlbXB0PFRFcnJvck1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlLCBUQXJncyBleHRlbmRzIHVua25vd24gW10sIFRSZXR1cm4+KHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gUHJvbWlzZTxUUmV0dXJuPiwgb2ZFcnJvcjogKGVycm9yOiBFcnJvcikgPT4gVEVycm9yTWVzc2FnZSwgLi4uYXJnczogVEFyZ3MpOiBDbWQ8VEVycm9yTWVzc2FnZT4ge1xuICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VEVycm9yTWVzc2FnZT4sIGZhbGxiYWNrPzogRmFsbGJhY2tIYW5kbGVyKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGFzayguLi5hcmdzKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChleDogRXJyb3IpID0+IGRpc3BhdGNoKG9mRXJyb3IoZXgpKSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICB9LFxuICAgIH0sXG59O1xuXG5mdW5jdGlvbiBkZWZhdWx0RmFsbGJhY2tIYW5kbGVyICgpOiB2b2lkIHtcbiAgICAvLyBibGFua1xufVxuXG5leHBv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
245
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjbWQiLCJvZk1zZyIsIm1zZyIsImRpc3BhdGNoIiwiYmF0Y2giLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiY29tbWFuZHMiLCJBcnJheSIsIl9rZXkiLCJmaWx0ZXIiLCJCb29sZWFuIiwiZmxhdCIsIm9mU3ViIiwic3ViIiwib2ZFaXRoZXIiLCJ0YXNrIiwib2ZTdWNjZXNzIiwib2ZFcnJvciIsIl9sZW4yIiwiYXJncyIsIl9rZXkyIiwiYmluZCIsInRhc2tSZXN1bHQiLCJhcHBseSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsInJlc3VsdCIsImV4IiwiX2xlbjMiLCJfa2V5MyIsImZhbGxiYWNrIiwidW5kZWZpbmVkIiwiZGVmYXVsdEZhbGxiYWNrSGFuZGxlciIsIl9sZW40IiwiX2tleTQiLCJvZkZ1bmMiLCJlaXRoZXIiLCJfbGVuNSIsIl9rZXk1IiwicGVyZm9ybSIsIl9sZW42IiwiX2tleTYiLCJhdHRlbXB0IiwiX2xlbjciLCJfa2V5NyIsIm9mUHJvbWlzZSIsIl9sZW44IiwiX2tleTgiLCJfbGVuOSIsIl9rZXk5IiwiX2xlbjEwIiwiX2tleTEwIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jbWQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ21kLCBEaXNwYXRjaCwgRmFsbGJhY2tIYW5kbGVyLCBNZXNzYWdlLCBTdWIgfSBmcm9tIFwiLi9UeXBlc1wiO1xuXG5jb25zdCBjbWQgPSB7XG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgY29tbWFuZCBvdXQgb2YgYSBzcGVjaWZpYyBtZXNzYWdlLlxuXHQgKiBAcGFyYW0ge1RNZXNzYWdlfSBtc2cgVGhlIHNwZWNpZmljIG1lc3NhZ2UuXG5cdCAqL1xuXHRvZk1zZzxUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KG1zZzogVE1lc3NhZ2UpOiBDbWQ8VE1lc3NhZ2U+IHtcblx0XHRyZXR1cm4gWyhkaXNwYXRjaCkgPT4gZGlzcGF0Y2gobXNnKV07XG5cdH0sXG5cblx0LyoqXG5cdCAqIEFnZ3JlZ2F0ZXMgbXVsdGlwbGUgY29tbWFuZHMuXG5cdCAqIEBwYXJhbSB7Q21kPFRNZXNzYWdlPiBbXX0gY29tbWFuZHMgQXJyYXkgb2YgY29tbWFuZHMuXG5cdCAqL1xuXHRiYXRjaDxUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHRcdC4uLmNvbW1hbmRzOiAoQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZCB8IG51bGwpW11cblx0KTogQ21kPFRNZXNzYWdlPiB7XG5cdFx0cmV0dXJuIChjb21tYW5kcy5maWx0ZXIoQm9vbGVhbikgYXMgQ21kPFRNZXNzYWdlPltdKS5mbGF0KCk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIENvbW1hbmQgdG8gY2FsbCB0aGUgc3Vic2NyaWJlci5cblx0ICogQHBhcmFtIHtTdWI8VE1lc3NhZ2U+fSBzdWIgVGhlIHN1YnNjcmliZXIgZnVuY3Rpb24uXG5cdCAqL1xuXHRvZlN1YjxUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KHN1YjogU3ViPFRNZXNzYWdlPik6IENtZDxUTWVzc2FnZT4ge1xuXHRcdHJldHVybiBbc3ViXTtcblx0fSxcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIGNvbW1hbmQgb3V0IG9mIGEgZnVuY3Rpb24gYW5kIG1hcHMgdGhlIHJlc3VsdC4gVGhpcyBjYW4gYWxzbyBiZSBhbiBhc3luYyBmdW5jdGlvbi5cblx0ICogQHBhcmFtIHRhc2sgVGhlIGZ1bmN0aW9uIHRvIGNhbGwuXG5cdCAqIEBwYXJhbSBvZlN1Y2Nlc3MgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCB3aGVuIHRoZSBmdW5jdGlvbiBydW5zIHN1Y2Nlc3NmdWxseSBvciwgZm9yIGFuIGFzeW5jIGZ1bmN0aW9uLCB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZC5cblx0ICogQHBhcmFtIG9mRXJyb3IgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCB3aGVuIHRoZSBmdW5jdGlvbiB0aHJvd3MgYW4gZXJyb3Igb3IsIGZvciBhbiBhc3luYyBmdW5jdGlvbiwgdGhlIHByb21pc2UgaXMgcmVqZWN0ZWQuXG5cdCAqIEBwYXJhbSBhcmdzIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSB0YXNrLlxuXHQgKi9cblx0b2ZFaXRoZXI8XG5cdFx0VFN1Y2Nlc3NNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSxcblx0XHRURXJyb3JNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSxcblx0XHRUQXJncyBleHRlbmRzIHVua25vd25bXSxcblx0XHRUUmV0dXJuLFxuXHQ+KFxuXHRcdHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gVFJldHVybixcblx0XHRvZlN1Y2Nlc3M6IChyZXN1bHQ6IEF3YWl0ZWQ8VFJldHVybj4pID0+IFRTdWNjZXNzTWVzc2FnZSxcblx0XHRvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBURXJyb3JNZXNzYWdlLFxuXHRcdC4uLmFyZ3M6IFRBcmdzXG5cdCk6IENtZDxUU3VjY2Vzc01lc3NhZ2UgfCBURXJyb3JNZXNzYWdlPiB7XG5cdFx0Y29uc3QgYmluZCA9IChcblx0XHRcdGRpc3BhdGNoOiBEaXNwYXRjaDxUU3VjY2Vzc01lc3NhZ2UgfCBURXJyb3JNZXNzYWdlPixcblx0XHQpOiB2b2lkID0+IHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGNvbnN0IHRhc2tSZXN1bHQgPSB0YXNrKC4uLmFyZ3MpO1xuXG5cdFx0XHRcdFByb21pc2UucmVzb2x2ZSh0YXNrUmVzdWx0KVxuXHRcdFx0XHRcdC50aGVuKChyZXN1bHQpID0+IGRpc3BhdGNoKG9mU3VjY2VzcyhyZXN1bHQpKSlcblx0XHRcdFx0XHQuY2F0Y2goKGV4OiBFcnJvcikgPT4gZGlzcGF0Y2gob2ZFcnJvcihleCkpKTtcblx0XHRcdH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG5cdFx0XHRcdGRpc3BhdGNoKG9mRXJyb3IoZXggYXMgRXJyb3IpKTtcblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0cmV0dXJuIFtiaW5kXTtcblx0fSxcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIGNvbW1hbmQgb3V0IG9mIGEgZnVuY3Rpb24gYW5kIGlnbm9yZXMgdGhlIGVycm9yIGNhc2UuIFRoaXMgY2FuIGFsc28gYmUgYW4gYXN5bmMgZnVuY3Rpb24uXG5cdCAqIEBwYXJhbSB0YXNrIFRoZSBhc3luYyBmdW5jdGlvbiB0byBjYWxsLlxuXHQgKiBAcGFyYW0gb2ZTdWNjZXNzIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiB0aGUgZnVuY3Rpb24gcnVucyBzdWNjZXNzZnVsbHkgb3IsIGZvciBhbiBhc3luYyBmdW5jdGlvbiwgdGhlIHByb21pc2UgaXMgcmVzb2x2ZWQuXG5cdCAqIEBwYXJhbSBhcmdzIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSB0YXNrLlxuXHQgKi9cblx0b2ZTdWNjZXNzPFRTdWNjZXNzTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2UsIFRBcmdzIGV4dGVuZHMgdW5rbm93bltdLCBUUmV0dXJuPihcblx0XHR0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFRSZXR1cm4sXG5cdFx0b2ZTdWNjZXNzOiAocmVzdWx0OiBBd2FpdGVkPFRSZXR1cm4+KSA9PiBUU3VjY2Vzc01lc3NhZ2UsXG5cdFx0Li4uYXJnczogVEFyZ3Ncblx0KTogQ21kPFRTdWNjZXNzTWVzc2FnZT4ge1xuXHRcdGNvbnN0IGJpbmQgPSAoXG5cdFx0XHRkaXNwYXRjaDogRGlzcGF0Y2g8VFN1Y2Nlc3NNZXNzYWdlPixcblx0XHRcdGZhbGxiYWNrOiBGYWxsYmFja0hhbmRsZXIgPSBkZWZhdWx0RmFsbGJhY2tIYW5kbGVyLFxuXHRcdCk6IHZvaWQgPT4ge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29uc3QgdGFza1Jlc3VsdCA9IHRhc2soLi4uYXJncyk7XG5cblx0XHRcdFx0UHJvbWlzZS5yZXNvbHZlKHRhc2tSZXN1bHQpXG5cdFx0XHRcdFx0LnRoZW4oKHJlc3VsdCkgPT4gZGlzcGF0Y2gob2ZTdWNjZXNzKHJlc3VsdCkpKVxuXHRcdFx0XHRcdC5jYXRjaChmYWxsYmFjayk7XG5cdFx0XHR9IGNhdGNoIChleDogdW5rbm93bikge1xuXHRcdFx0XHRmYWxsYmFjayhleCBhcyBFcnJvcik7XG5cdFx0XHR9XG5cdFx0fTtcblxuXHRcdHJldHVybiBbYmluZF07XG5cdH0sXG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhIGZ1bmN0aW9uIGFuZCBpZ25vcmVzIHRoZSBzdWNjZXNzIGNhc2UuIFRoaXMgY2FuIGFsc28gYmUgYW4gYXN5bmMgZnVuY3Rpb24uXG5cdCAqIEBwYXJhbSB0YXNrIFRoZSBmdW5jdGlvbiB0byBjYWxsLlxuXHQgKiBAcGFyYW0gb2ZFcnJvciBDcmVhdGVzIHRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoIHdoZW4gdGhlIGZ1bmN0aW9uIHJ1bnMgc3VjY2Vzc2Z1bGx5IG9yLCBmb3IgYW4gYXN5bmMgZnVuY3Rpb24sIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLlxuXHQgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cblx0ICovXG5cdG9mRXJyb3I8VEVycm9yTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2UsIFRBcmdzIGV4dGVuZHMgdW5rbm93bltdLCBUUmV0dXJuPihcblx0XHR0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFRSZXR1cm4sXG5cdFx0b2ZFcnJvcjogKGVycm9yOiBFcnJvcikgPT4gVEVycm9yTWVzc2FnZSxcblx0XHQuLi5hcmdzOiBUQXJnc1xuXHQpOiBDbWQ8VEVycm9yTWVzc2FnZT4ge1xuXHRcdGNvbnN0IGJpbmQgPSAoXG5cdFx0XHRkaXNwYXRjaDogRGlzcGF0Y2g8VEVycm9yTWVzc2FnZT4sXG5cdFx0XHRmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcixcblx0XHQpOiB2b2lkID0+IHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGNvbnN0IHRhc2tSZXN1bHQgPSB0YXNrKC4uLmFyZ3MpO1xuXG5cdFx0XHRcdFByb21pc2UucmVzb2x2ZSh0YXNrUmVzdWx0KVxuXHRcdFx0XHRcdC50aGVuKCgpID0+IGZhbGxiYWNrPy4oKSlcblx0XHRcdFx0XHQuY2F0Y2goKGV4OiBFcnJvcikgPT4gZGlzcGF0Y2gob2ZFcnJvcihleCkpKTtcblx0XHRcdH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG5cdFx0XHRcdGRpc3BhdGNoKG9mRXJyb3IoZXggYXMgRXJyb3IpKTtcblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0cmV0dXJuIFtiaW5kXTtcblx0fSxcblxuXHQvKipcblx0ICogUHJvdmlkZXMgZnVuY3Rpb25hbGl0aWVzIHRvIGNyZWF0ZSBjb21tYW5kcyBmcm9tIHNpbXBsZSBmdW5jdGlvbnMuXG5cdCAqL1xuXHRvZkZ1bmM6IHtcblx0XHQvKipcblx0XHQgKiBDcmVhdGVzIGEgY29tbWFuZCBvdXQgb2YgYSBzaW1wbGUgZnVuY3Rpb24gYW5kIG1hcHMgdGhlIHJlc3VsdC5cblx0XHQgKiBAcGFyYW0gdGFzayBUaGUgZnVuY3Rpb24gdG8gY2FsbC5cblx0XHQgKiBAcGFyYW0gb2ZTdWNjZXNzIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgb2YgdGhlIHRhc2suXG5cdFx0ICogQHBhcmFtIG9mRXJyb3IgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCB3aGVuIGFuIGVycm9yIG9jY3VycmVkLlxuXHRcdCAqIEBwYXJhbSBhcmdzIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSB0YXNrLlxuXHRcdCAqL1xuXHRcdGVpdGhlcjxcblx0XHRcdFRTdWNjZXNzTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2UsXG5cdFx0XHRURXJyb3JNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSxcblx0XHRcdFRBcmdzIGV4dGVuZHMgdW5rbm93bltdLFxuXHRcdFx0VFJldHVybixcblx0XHQ+KFxuXHRcdFx0dGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJuLFxuXHRcdFx0b2ZTdWNjZXNzOiAocmVzdWx0OiBUUmV0dXJuKSA9PiBUU3VjY2Vzc01lc3NhZ2UsXG5cdFx0XHRvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBURXJyb3JNZXNzYWdlLFxuXHRcdFx0Li4uYXJnczogVEFyZ3Ncblx0XHQpOiBDbWQ8VFN1Y2Nlc3NNZXNzYWdlIHwgVEVycm9yTWVzc2FnZT4ge1xuXHRcdFx0Y29uc3QgYmluZCA9IChcblx0XHRcdFx0ZGlzcGF0Y2g6IERpc3BhdGNoPFRTdWNjZXNzTWVzc2FnZSB8IFRFcnJvck1lc3NhZ2U+LFxuXHRcdFx0KTogdm9pZCA9PiB7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0Y29uc3QgcmVzdWx0ID0gdGFzayguLi5hcmdzKTtcblxuXHRcdFx0XHRcdGRpc3BhdGNoKG9mU3VjY2VzcyhyZXN1bHQpKTtcblx0XHRcdFx0fSBjYXRjaCAoZXg6IHVua25vd24pIHtcblx0XHRcdFx0XHRkaXNwYXRjaChvZkVycm9yKGV4IGFzIEVycm9yKSk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cblx0XHRcdHJldHVybiBbYmluZF07XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhIHNpbXBsZSBmdW5jdGlvbiBhbmQgaWdub3JlcyB0aGUgZXJyb3IgY2FzZS5cblx0XHQgKiBAcGFyYW0gdGFzayBUaGUgZnVuY3Rpb24gdG8gY2FsbC5cblx0XHQgKiBAcGFyYW0gb2ZTdWNjZXNzIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgb2YgdGhlIHRhc2suXG5cdFx0ICogQHBhcmFtIGFyZ3MgVGhlIHBhcmFtZXRlcnMgb2YgdGhlIHRhc2suXG5cdFx0ICovXG5cdFx0cGVyZm9ybTxUU3VjY2Vzc01lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlLCBUQXJncyBleHRlbmRzIHVua25vd25bXSwgVFJldHVybj4oXG5cdFx0XHR0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFRSZXR1cm4sXG5cdFx0XHRvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRTdWNjZXNzTWVzc2FnZSxcblx0XHRcdC4uLmFyZ3M6IFRBcmdzXG5cdFx0KTogQ21kPFRTdWNjZXNzTWVzc2FnZT4ge1xuXHRcdFx0Y29uc3QgYmluZCA9IChcblx0XHRcdFx0ZGlzcGF0Y2g6IERpc3BhdGNoPFRTdWNjZXNzTWVzc2FnZT4sXG5cdFx0XHRcdGZhbGxiYWNrPzogRmFsbGJhY2tIYW5kbGVyLFxuXHRcdFx0KTogdm9pZCA9PiB7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0Y29uc3QgcmVzdWx0ID0gdGFzayguLi5hcmdzKTtcblxuXHRcdFx0XHRcdGRpc3BhdGNoKG9mU3VjY2VzcyhyZXN1bHQpKTtcblx0XHRcdFx0fSBjYXRjaCAoZXg6IHVua25vd24pIHtcblx0XHRcdFx0XHRpZiAoZmFsbGJhY2spIHtcblx0XHRcdFx0XHRcdGZhbGxiYWNrKGV4IGFzIEVycm9yKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cblx0XHRcdHJldHVybiBbYmluZF07XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhIHNpbXBsZSBmdW5jdGlvbiBhbmQgaWdub3JlcyB0aGUgc3VjY2VzcyBjYXNlLlxuXHRcdCAqIEBwYXJhbSB0YXNrIFRoZSBmdW5jdGlvbiB0byBjYWxsLlxuXHRcdCAqIEBwYXJhbSBvZkVycm9yIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiBhbiBlcnJvciBvY2N1cnJlZC5cblx0XHQgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cblx0XHQgKi9cblx0XHRhdHRlbXB0PFRFcnJvck1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlLCBUQXJncyBleHRlbmRzIHVua25vd25bXSwgVFJldHVybj4oXG5cdFx0XHR0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFRSZXR1cm4sXG5cdFx0XHRvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBURXJyb3JNZXNzYWdlLFxuXHRcdFx0Li4uYXJnczogVEFyZ3Ncblx0XHQpOiBDbWQ8VEVycm9yTWVzc2FnZT4ge1xuXHRcdFx0Y29uc3QgYmluZCA9IChcblx0XHRcdFx0ZGlzcGF0Y2g6IERpc3BhdGNoPFRFcnJvck1lc3NhZ2U+LFxuXHRcdFx0XHRmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcixcblx0XHRcdCk6IHZvaWQgPT4ge1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdHRhc2soLi4uYXJncyk7XG5cblx0XHRcdFx0XHRpZiAoZmFsbGJhY2spIHtcblx0XHRcdFx0XHRcdGZhbGxiYWNrKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGNhdGNoIChleDogdW5rbm93bikge1xuXHRcdFx0XHRcdGRpc3BhdGNoKG9mRXJyb3IoZXggYXMgRXJyb3IpKTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblxuXHRcdFx0cmV0dXJuIFtiaW5kXTtcblx0XHR9LFxuXHR9LFxuXG5cdC8qKlxuXHQgKiBQcm92aWRlcyBmdW5jdGlvbmFsaXRpZXMgdG8gY3JlYXRlIGNvbW1hbmRzIGZyb20gYXN5bmMgZnVuY3Rpb25zLlxuXHQgKi9cblx0b2ZQcm9taXNlOiB7XG5cdFx0LyoqXG5cdFx0ICogQ3JlYXRlcyBhIGNvbW1hbmQgb3V0IG9mIGFuIGFzeW5jIGZ1bmN0aW9uIGFuZCBtYXBzIHRoZSByZXN1bHQuXG5cdFx0ICogQHBhcmFtIHRhc2sgVGhlIGFzeW5jIGZ1bmN0aW9uIHRvIGNhbGwuXG5cdFx0ICogQHBhcmFtIG9mU3VjY2VzcyBDcmVhdGVzIHRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoIHdoZW4gdGhlIHByb21pc2UgaXMgcmVzb2x2ZWQuXG5cdFx0ICogQHBhcmFtIG9mRXJyb3IgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCB3aGVuIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLlxuXHRcdCAqIEBwYXJhbSBhcmdzIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSB0YXNrLlxuXHRcdCAqL1xuXHRcdGVpdGhlcjxcblx0XHRcdFRTdWNjZXNzTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2UsXG5cdFx0XHRURXJyb3JNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSxcblx0XHRcdFRBcmdzIGV4dGVuZHMgdW5rbm93bltdLFxuXHRcdFx0VFJldHVybixcblx0XHQ+KFxuXHRcdFx0dGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBQcm9taXNlPFRSZXR1cm4+LFxuXHRcdFx0b2ZTdWNjZXNzOiAocmVzdWx0OiBUUmV0dXJuKSA9PiBUU3VjY2Vzc01lc3NhZ2UsXG5cdFx0XHRvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBURXJyb3JNZXNzYWdlLFxuXHRcdFx0Li4uYXJnczogVEFyZ3Ncblx0XHQpOiBDbWQ8VFN1Y2Nlc3NNZXNzYWdlIHwgVEVycm9yTWVzc2FnZT4ge1xuXHRcdFx0Y29uc3QgYmluZCA9IChcblx0XHRcdFx0ZGlzcGF0Y2g6IERpc3BhdGNoPFRTdWNjZXNzTWVzc2FnZSB8IFRFcnJvck1lc3NhZ2U+LFxuXHRcdFx0KTogdm9pZCA9PiB7XG5cdFx0XHRcdHRhc2soLi4uYXJncylcblx0XHRcdFx0XHQudGhlbigocmVzdWx0KSA9PiBkaXNwYXRjaChvZlN1Y2Nlc3MocmVzdWx0KSkpXG5cdFx0XHRcdFx0LmNhdGNoKChleDogRXJyb3IpID0+IGRpc3BhdGNoKG9mRXJyb3IoZXgpKSk7XG5cdFx0XHR9O1xuXG5cdFx0XHRyZXR1cm4gW2JpbmRdO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBDcmVhdGVzIGEgY29tbWFuZCBvdXQgb2YgYW4gYXN5bmMgZnVuY3Rpb24gYW5kIGlnbm9yZXMgdGhlIGVycm9yIGNhc2UuXG5cdFx0ICogQHBhcmFtIHRhc2sgVGhlIGFzeW5jIGZ1bmN0aW9uIHRvIGNhbGwuXG5cdFx0ICogQHBhcmFtIG9mU3VjY2VzcyBDcmVhdGVzIHRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoIHdoZW4gdGhlIHByb21pc2UgaXMgcmVzb2x2ZWQuXG5cdFx0ICogQHBhcmFtIGFyZ3MgVGhlIHBhcmFtZXRlcnMgb2YgdGhlIHRhc2suXG5cdFx0ICovXG5cdFx0cGVyZm9ybTxUU3VjY2Vzc01lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlLCBUQXJncyBleHRlbmRzIHVua25vd25bXSwgVFJldHVybj4oXG5cdFx0XHR0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFByb21pc2U8VFJldHVybj4sXG5cdFx0XHRvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRTdWNjZXNzTWVzc2FnZSxcblx0XHRcdC4uLmFyZ3M6IFRBcmdzXG5cdFx0KTogQ21kPFRTdWNjZXNzTWVzc2FnZT4ge1xuXHRcdFx0Y29uc3QgYmluZCA9IChcblx0XHRcdFx0ZGlzcGF0Y2g6IERpc3BhdGNoPFRTdWNjZXNzTWVzc2FnZT4sXG5cdFx0XHRcdGZhbGxiYWNrOiBGYWxsYmFja0hhbmRsZXIgPSBkZWZhdWx0RmFsbGJhY2tIYW5kbGVyLFxuXHRcdFx0KTogdm9pZCA9PiB7XG5cdFx0XHRcdHRhc2soLi4uYXJncylcblx0XHRcdFx0XHQudGhlbigocmVzdWx0KSA9PiBkaXNwYXRjaChvZlN1Y2Nlc3MocmVzdWx0KSkpXG5cdFx0XHRcdFx0LmNhdGNoKGZhbGxiYWNrKTtcblx0XHRcdH07XG5cblx0XHRcdHJldHVybiBbYmluZF07XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhbiBhc3luYyBmdW5jdGlvbiBhbmQgaWdub3JlcyB0aGUgc3VjY2VzcyBjYXNlLlxuXHRcdCAqIEBwYXJhbSB0YXNrIFRoZSBhc3luYyBmdW5jdGlvbiB0byBjYWxsLlxuXHRcdCAqIEBwYXJhbSBvZkVycm9yIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiB0aGUgcHJvbWlzZSBpcyByZWplY3RlZC5cblx0XHQgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cblx0XHQgKi9cblx0XHRhdHRlbXB0PFRFcnJvck1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlLCBUQXJncyBleHRlbmRzIHVua25vd25bXSwgVFJldHVybj4oXG5cdFx0XHR0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFByb21pc2U8VFJldHVybj4sXG5cdFx0XHRvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBURXJyb3JNZXNzYWdlLFxuXHRcdFx0Li4uYXJnczogVEFyZ3Ncblx0XHQpOiBDbWQ8VEVycm9yTWVzc2FnZT4ge1xuXHRcdFx0Y29uc3QgYmluZCA9IChcblx0XHRcdFx0ZGlzcGF0Y2g6IERpc3BhdGNoPFRFcnJvck1lc3NhZ2U+LFxuXHRcdFx0XHRmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcixcblx0XHRcdCk6IHZvaWQgPT4ge1xuXHRcdFx0XHR0YXNrKC4uLmFyZ3MpXG5cdFx0XHRcdFx0LnRoZW4oKCkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKGZhbGxiYWNrKSB7XG5cdFx0XHRcdFx0XHRcdGZhbGxiYWNrKCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQuY2F0Y2goKGV4OiBFcnJvcikgPT4gZGlzcGF0Y2gob2ZFcnJvcihleCkpKTtcblx0XHRcdH07XG5cblx0XHRcdHJldHVybiBbYmluZF07XG5cdFx0fSxcblx0fSxcbn07XG5cbmZ1bmN0aW9uIGRlZmF1bHRGYWxsYmFja0hhbmRsZXIoKTogdm9pZCB7XG5cdC8vIGJsYW5rXG59XG5cbmV4cG9ydCB7IGNtZCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxJQUFNQSxHQUFHLEdBQUc7RUFDWDtBQUNEO0FBQ0E7QUFDQTtFQUNDQyxLQUFLLFdBQUFBLE1BQTJCQyxHQUFhLEVBQWlCO0lBQzdELE9BQU8sQ0FBQyxVQUFDQyxRQUFRO01BQUEsT0FBS0EsUUFBUSxDQUFDRCxHQUFHLENBQUM7SUFBQSxFQUFDO0VBQ3JDLENBQUM7RUFFRDtBQUNEO0FBQ0E7QUFDQTtFQUNDRSxLQUFLLFdBQUFBLE1BQUEsRUFFWTtJQUFBLFNBQUFDLElBQUEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLEVBRGJDLFFBQVEsT0FBQUMsS0FBQSxDQUFBSixJQUFBLEdBQUFLLElBQUEsTUFBQUEsSUFBQSxHQUFBTCxJQUFBLEVBQUFLLElBQUE7TUFBUkYsUUFBUSxDQUFBRSxJQUFBLElBQUFKLFNBQUEsQ0FBQUksSUFBQTtJQUFBO0lBRVgsT0FBUUYsUUFBUSxDQUFDRyxNQUFNLENBQUNDLE9BQU8sQ0FBQyxDQUFxQkMsSUFBSSxDQUFDLENBQUM7RUFDNUQsQ0FBQztFQUVEO0FBQ0Q7QUFDQTtBQUNBO0VBQ0NDLEtBQUssV0FBQUEsTUFBMkJDLEdBQWtCLEVBQWlCO0lBQ2xFLE9BQU8sQ0FBQ0EsR0FBRyxDQUFDO0VBQ2IsQ0FBQztFQUVEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0NDLFFBQVEsV0FBQUEsU0FNUEMsSUFBaUMsRUFDakNDLFNBQXdELEVBQ3hEQyxPQUF3QyxFQUVEO0lBQUEsU0FBQUMsS0FBQSxHQUFBZCxTQUFBLENBQUFDLE1BQUEsRUFEcENjLElBQUksT0FBQVosS0FBQSxDQUFBVyxLQUFBLE9BQUFBLEtBQUEsV0FBQUUsS0FBQSxNQUFBQSxLQUFBLEdBQUFGLEtBQUEsRUFBQUUsS0FBQTtNQUFKRCxJQUFJLENBQUFDLEtBQUEsUUFBQWhCLFNBQUEsQ0FBQWdCLEtBQUE7SUFBQTtJQUVQLElBQU1DLElBQUksR0FBRyxTQUFQQSxJQUFJQSxDQUNUcEIsUUFBbUQsRUFDekM7TUFDVixJQUFJO1FBQ0gsSUFBTXFCLFVBQVUsR0FBR1AsSUFBSSxDQUFBUSxLQUFBLFNBQUlKLElBQUksQ0FBQztRQUVoQ0ssT0FBTyxDQUFDQyxPQUFPLENBQUNILFVBQVUsQ0FBQyxDQUN6QkksSUFBSSxDQUFDLFVBQUNDLE1BQU07VUFBQSxPQUFLMUIsUUFBUSxDQUFDZSxTQUFTLENBQUNXLE1BQU0sQ0FBQyxDQUFDO1FBQUEsRUFBQyxTQUN4QyxDQUFDLFVBQUNDLEVBQVM7VUFBQSxPQUFLM0IsUUFBUSxDQUFDZ0IsT0FBTyxDQUFDVyxFQUFFLENBQUMsQ0FBQztRQUFBLEVBQUM7TUFDOUMsQ0FBQyxDQUFDLE9BQU9BLEVBQVcsRUFBRTtRQUNyQjNCLFFBQVEsQ0FBQ2dCLE9BQU8sQ0FBQ1csRUFBVyxDQUFDLENBQUM7TUFDL0I7SUFDRCxDQUFDO0lBRUQsT0FBTyxDQUFDUCxJQUFJLENBQUM7RUFDZCxDQUFDO0VBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0NMLFNBQVMsV0FBQUEsVUFDUkQsSUFBaUMsRUFDakNDLFVBQXdELEVBRWpDO0lBQUEsU0FBQWEsS0FBQSxHQUFBekIsU0FBQSxDQUFBQyxNQUFBLEVBRHBCYyxJQUFJLE9BQUFaLEtBQUEsQ0FBQXNCLEtBQUEsT0FBQUEsS0FBQSxXQUFBQyxLQUFBLE1BQUFBLEtBQUEsR0FBQUQsS0FBQSxFQUFBQyxLQUFBO01BQUpYLElBQUksQ0FBQVcsS0FBQSxRQUFBMUIsU0FBQSxDQUFBMEIsS0FBQTtJQUFBO0lBRVAsSUFBTVQsSUFBSSxHQUFHLFNBQVBBLElBQUlBLENBQ1RwQixRQUFtQyxFQUV6QjtNQUFBLElBRFY4QixRQUF5QixHQUFBM0IsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQTRCLFNBQUEsR0FBQTVCLFNBQUEsTUFBRzZCLHNCQUFzQjtNQUVsRCxJQUFJO1FBQ0gsSUFBTVgsVUFBVSxHQUFHUCxJQUFJLENBQUFRLEtBQUEsU0FBSUosSUFBSSxDQUFDO1FBRWhDSyxPQUFPLENBQUNDLE9BQU8sQ0FBQ0gsVUFBVSxDQUFDLENBQ3pCSSxJQUFJLENBQUMsVUFBQ0MsTUFBTTtVQUFBLE9BQUsxQixRQUFRLENBQUNlLFVBQVMsQ0FBQ1csTUFBTSxDQUFDLENBQUM7UUFBQSxFQUFDLFNBQ3hDLENBQUNJLFFBQVEsQ0FBQztNQUNsQixDQUFDLENBQUMsT0FBT0gsRUFBVyxFQUFFO1FBQ3JCRyxRQUFRLENBQUNILEVBQVcsQ0FBQztNQUN0QjtJQUNELENBQUM7SUFFRCxPQUFPLENBQUNQLElBQUksQ0FBQztFQUNkLENBQUM7RUFFRDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQ0osT0FBTyxXQUFBQSxRQUNORixJQUFpQyxFQUNqQ0UsUUFBd0MsRUFFbkI7SUFBQSxTQUFBaUIsS0FBQSxHQUFBOUIsU0FBQSxDQUFBQyxNQUFBLEVBRGxCYyxJQUFJLE9BQUFaLEtBQUEsQ0FBQTJCLEtBQUEsT0FBQUEsS0FBQSxXQUFBQyxLQUFBLE1BQUFBLEtBQUEsR0FBQUQsS0FBQSxFQUFBQyxLQUFBO01BQUpoQixJQUFJLENBQUFnQixLQUFBLFFBQUEvQixTQUFBLENBQUErQixLQUFBO0lBQUE7SUFFUCxJQUFNZCxJQUFJLEdBQUcsU0FBUEEsSUFBSUEsQ0FDVHBCLFFBQWlDLEVBQ2pDOEIsUUFBMEIsRUFDaEI7TUFDVixJQUFJO1FBQ0gsSUFBTVQsVUFBVSxHQUFHUCxJQUFJLENBQUFRLEtBQUEsU0FBSUosSUFBSSxDQUFDO1FBRWhDSyxPQUFPLENBQUNDLE9BQU8sQ0FBQ0gsVUFBVSxDQUFDLENBQ3pCSSxJQUFJLENBQUM7VUFBQSxPQUFNSyxRQUFRLGFBQVJBLFFBQVEsdUJBQVJBLFFBQVEsQ0FBRyxDQUFDO1FBQUEsRUFBQyxTQUNuQixDQUFDLFVBQUNILEVBQVM7VUFBQSxPQUFLM0IsUUFBUSxDQUFDZ0IsUUFBTyxDQUFDVyxFQUFFLENBQUMsQ0FBQztRQUFBLEVBQUM7TUFDOUMsQ0FBQyxDQUFDLE9BQU9BLEVBQVcsRUFBRTtRQUNyQjNCLFFBQVEsQ0FBQ2dCLFFBQU8sQ0FBQ1csRUFBVyxDQUFDLENBQUM7TUFDL0I7SUFDRCxDQUFDO0lBRUQsT0FBTyxDQUFDUCxJQUFJLENBQUM7RUFDZCxDQUFDO0VBRUQ7QUFDRDtBQUNBO0VBQ0NlLE1BQU0sRUFBRTtJQUNQO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0VDLE1BQU0sV0FBQUEsT0FNTHRCLElBQWlDLEVBQ2pDQyxTQUErQyxFQUMvQ0MsT0FBd0MsRUFFRDtNQUFBLFNBQUFxQixLQUFBLEdBQUFsQyxTQUFBLENBQUFDLE1BQUEsRUFEcENjLElBQUksT0FBQVosS0FBQSxDQUFBK0IsS0FBQSxPQUFBQSxLQUFBLFdBQUFDLEtBQUEsTUFBQUEsS0FBQSxHQUFBRCxLQUFBLEVBQUFDLEtBQUE7UUFBSnBCLElBQUksQ0FBQW9CLEtBQUEsUUFBQW5DLFNBQUEsQ0FBQW1DLEtBQUE7TUFBQTtNQUVQLElBQU1sQixJQUFJLEdBQUcsU0FBUEEsSUFBSUEsQ0FDVHBCLFFBQW1ELEVBQ3pDO1FBQ1YsSUFBSTtVQUNILElBQU0wQixPQUFNLEdBQUdaLElBQUksQ0FBQVEsS0FBQSxTQUFJSixJQUFJLENBQUM7VUFFNUJsQixRQUFRLENBQUNlLFNBQVMsQ0FBQ1csT0FBTSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLE9BQU9DLEVBQVcsRUFBRTtVQUNyQjNCLFFBQVEsQ0FBQ2dCLE9BQU8sQ0FBQ1csRUFBVyxDQUFDLENBQUM7UUFDL0I7TUFDRCxDQUFDO01BRUQsT0FBTyxDQUFDUCxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0VtQixPQUFPLFdBQUFBLFFBQ056QixJQUFpQyxFQUNqQ0MsU0FBK0MsRUFFeEI7TUFBQSxTQUFBeUIsS0FBQSxHQUFBckMsU0FBQSxDQUFBQyxNQUFBLEVBRHBCYyxJQUFJLE9BQUFaLEtBQUEsQ0FBQWtDLEtBQUEsT0FBQUEsS0FBQSxXQUFBQyxLQUFBLE1BQUFBLEtBQUEsR0FBQUQsS0FBQSxFQUFBQyxLQUFBO1FBQUp2QixJQUFJLENBQUF1QixLQUFBLFFBQUF0QyxTQUFBLENBQUFzQyxLQUFBO01BQUE7TUFFUCxJQUFNckIsSUFBSSxHQUFHLFNBQVBBLElBQUlBLENBQ1RwQixRQUFtQyxFQUNuQzhCLFFBQTBCLEVBQ2hCO1FBQ1YsSUFBSTtVQUNILElBQU1KLFFBQU0sR0FBR1osSUFBSSxDQUFBUSxLQUFBLFNBQUlKLElBQUksQ0FBQztVQUU1QmxCLFFBQVEsQ0FBQ2UsU0FBUyxDQUFDVyxRQUFNLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsT0FBT0MsRUFBVyxFQUFFO1VBQ3JCLElBQUlHLFFBQVEsRUFBRTtZQUNiQSxRQUFRLENBQUNILEVBQVcsQ0FBQztVQUN0QjtRQUNEO01BQ0QsQ0FBQztNQUVELE9BQU8sQ0FBQ1AsSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNFc0IsT0FBTyxXQUFBQSxRQUNONUIsSUFBaUMsRUFDakNFLE9BQXdDLEVBRW5CO01BQUEsU0FBQTJCLEtBQUEsR0FBQXhDLFNBQUEsQ0FBQUMsTUFBQSxFQURsQmMsSUFBSSxPQUFBWixLQUFBLENBQUFxQyxLQUFBLE9BQUFBLEtBQUEsV0FBQUMsS0FBQSxNQUFBQSxLQUFBLEdBQUFELEtBQUEsRUFBQUMsS0FBQTtRQUFKMUIsSUFBSSxDQUFBMEIsS0FBQSxRQUFBekMsU0FBQSxDQUFBeUMsS0FBQTtNQUFBO01BRVAsSUFBTXhCLElBQUksR0FBRyxTQUFQQSxJQUFJQSxDQUNUcEIsUUFBaUMsRUFDakM4QixRQUEwQixFQUNoQjtRQUNWLElBQUk7VUFDSGhCLElBQUksQ0FBQVEsS0FBQSxTQUFJSixJQUFJLENBQUM7VUFFYixJQUFJWSxRQUFRLEVBQUU7WUFDYkEsUUFBUSxDQUFDLENBQUM7VUFDWDtRQUNELENBQUMsQ0FBQyxPQUFPSCxFQUFXLEVBQUU7VUFDckIzQixRQUFRLENBQUNnQixPQUFPLENBQUNXLEVBQVcsQ0FBQyxDQUFDO1FBQy9CO01BQ0QsQ0FBQztNQUVELE9BQU8sQ0FBQ1AsSUFBSSxDQUFDO0lBQ2Q7RUFDRCxDQUFDO0VBRUQ7QUFDRDtBQUNBO0VBQ0N5QixTQUFTLEVBQUU7SUFDVjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNFVCxNQUFNLFdBQUFBLE9BTUx0QixJQUEwQyxFQUMxQ0MsU0FBK0MsRUFDL0NDLE9BQXdDLEVBRUQ7TUFBQSxTQUFBOEIsS0FBQSxHQUFBM0MsU0FBQSxDQUFBQyxNQUFBLEVBRHBDYyxJQUFJLE9BQUFaLEtBQUEsQ0FBQXdDLEtBQUEsT0FBQUEsS0FBQSxXQUFBQyxLQUFBLE1BQUFBLEtBQUEsR0FBQUQsS0FBQSxFQUFBQyxLQUFBO1FBQUo3QixJQUFJLENBQUE2QixLQUFBLFFBQUE1QyxTQUFBLENBQUE0QyxLQUFBO01BQUE7TUFFUCxJQUFNM0IsSUFBSSxHQUFHLFNBQVBBLElBQUlBLENBQ1RwQixRQUFtRCxFQUN6QztRQUNWYyxJQUFJLENBQUFRLEtBQUEsU0FBSUosSUFBSSxDQUFDLENBQ1hPLElBQUksQ0FBQyxVQUFDQyxNQUFNO1VBQUEsT0FBSzFCLFFBQVEsQ0FBQ2UsU0FBUyxDQUFDVyxNQUFNLENBQUMsQ0FBQztRQUFBLEVBQUMsU0FDeEMsQ0FBQyxVQUFDQyxFQUFTO1VBQUEsT0FBSzNCLFFBQVEsQ0FBQ2dCLE9BQU8sQ0FBQ1csRUFBRSxDQUFDLENBQUM7UUFBQSxFQUFDO01BQzlDLENBQUM7TUFFRCxPQUFPLENBQUNQLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDRW1CLE9BQU8sV0FBQUEsUUFDTnpCLElBQTBDLEVBQzFDQyxTQUErQyxFQUV4QjtNQUFBLFNBQUFpQyxLQUFBLEdBQUE3QyxTQUFBLENBQUFDLE1BQUEsRUFEcEJjLElBQUksT0FBQVosS0FBQSxDQUFBMEMsS0FBQSxPQUFBQSxLQUFBLFdBQUFDLEtBQUEsTUFBQUEsS0FBQSxHQUFBRCxLQUFBLEVBQUFDLEtBQUE7UUFBSi9CLElBQUksQ0FBQStCLEtBQUEsUUFBQTlDLFNBQUEsQ0FBQThDLEtBQUE7TUFBQTtNQUVQLElBQU03QixJQUFJLEdBQUcsU0FBUEEsSUFBSUEsQ0FDVHBCLFFBQW1DLEVBRXpCO1FBQUEsSUFEVjhCLFFBQXlCLEdBQUEzQixTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBNEIsU0FBQSxHQUFBNUIsU0FBQSxNQUFHNkIsc0JBQXNCO1FBRWxEbEIsSUFBSSxDQUFBUSxLQUFBLFNBQUlKLElBQUksQ0FBQyxDQUNYTyxJQUFJLENBQUMsVUFBQ0MsTUFBTTtVQUFBLE9BQUsxQixRQUFRLENBQUNlLFNBQVMsQ0FBQ1csTUFBTSxDQUFDLENBQUM7UUFBQSxFQUFDLFNBQ3hDLENBQUNJLFFBQVEsQ0FBQztNQUNsQixDQUFDO01BRUQsT0FBTyxDQUFDVixJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0VzQixPQUFPLFdBQUFBLFFBQ041QixJQUEwQyxFQUMxQ0UsT0FBd0MsRUFFbkI7TUFBQSxTQUFBa0MsTUFBQSxHQUFBL0MsU0FBQSxDQUFBQyxNQUFBLEVBRGxCYyxJQUFJLE9BQUFaLEtBQUEsQ0FBQTRDLE1BQUEsT0FBQUEsTUFBQSxXQUFBQyxNQUFBLE1BQUFBLE1BQUEsR0FBQUQsTUFBQSxFQUFBQyxNQUFBO1FBQUpqQyxJQUFJLENBQUFpQyxNQUFBLFFBQUFoRCxTQUFBLENBQUFnRCxNQUFBO01BQUE7TUFFUCxJQUFNL0IsSUFBSSxHQUFHLFNBQVBBLElBQUlBLENBQ1RwQixRQUFpQyxFQUNqQzhCLFFBQTBCLEVBQ2hCO1FBQ1ZoQixJQUFJLENBQUFRLEtBQUEsU0FBSUosSUFBSSxDQUFDLENBQ1hPLElBQUksQ0FBQyxZQUFNO1VBQ1gsSUFBSUssUUFBUSxFQUFFO1lBQ2JBLFFBQVEsQ0FBQyxDQUFDO1VBQ1g7UUFDRCxDQUFDLENBQUMsU0FDSSxDQUFDLFVBQUNILEVBQVM7VUFBQSxPQUFLM0IsUUFBUSxDQUFDZ0IsT0FBTyxDQUFDVyxFQUFFLENBQUMsQ0FBQztRQUFBLEVBQUM7TUFDOUMsQ0FBQztNQUVELE9BQU8sQ0FBQ1AsSUFBSSxDQUFDO0lBQ2Q7RUFDRDtBQUNELENBQUM7QUFBQ2dDLE9BQUEsQ0FBQXZELEdBQUEsR0FBQUEsR0FBQTtBQUVGLFNBQVNtQyxzQkFBc0JBLENBQUEsRUFBUztFQUN2QztBQUFBIn0=
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { cmd } from "./cmd";
2
1
  import { ElmComponent } from "./ElmComponent";
3
- import { errorHandler, ErrorMessage, errorMsg, handleError } from "./ErrorHandling";
4
- import { init, Logger } from "./Init";
2
+ import { ErrorMessage, errorHandler, errorMsg, handleError } from "./ErrorHandling";
3
+ import { ElmOptions, Logger, init } from "./Init";
5
4
  import { Cmd, Dispatch, InitResult, Message, MsgSource, UpdateMap, UpdateReturnType } from "./Types";
6
- import { SubscriptionResult, useElmish } from "./useElmish";
7
- export type { Logger, Message, Cmd, Dispatch, InitResult, UpdateReturnType, SubscriptionResult, MsgSource, UpdateMap, ErrorMessage, };
8
- export { init, cmd, ElmComponent, errorMsg, errorHandler, handleError, useElmish, };
5
+ import { cmd } from "./cmd";
6
+ import { SubscriptionResult, UseElmishOptions, useElmish } from "./useElmish";
7
+ export type { Cmd, Dispatch, ElmOptions, ErrorMessage, InitResult, Logger, Message, MsgSource, SubscriptionResult, UpdateMap, UpdateReturnType, UseElmishOptions, };
8
+ export { ElmComponent, cmd, errorHandler, errorMsg, handleError, init, useElmish };
package/dist/index.js CHANGED
@@ -45,9 +45,9 @@ Object.defineProperty(exports, "useElmish", {
45
45
  return _useElmish.useElmish;
46
46
  }
47
47
  });
48
- var _cmd = require("./cmd");
49
48
  var _ElmComponent = require("./ElmComponent");
50
49
  var _ErrorHandling = require("./ErrorHandling");
51
50
  var _Init = require("./Init");
51
+ var _cmd = require("./cmd");
52
52
  var _useElmish = require("./useElmish");
53
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY21kIiwicmVxdWlyZSIsIl9FbG1Db21wb25lbnQiLCJfRXJyb3JIYW5kbGluZyIsIl9Jbml0IiwiX3VzZUVsbWlzaCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbWQgfSBmcm9tIFwiLi9jbWRcIjtcbmltcG9ydCB7IEVsbUNvbXBvbmVudCB9IGZyb20gXCIuL0VsbUNvbXBvbmVudFwiO1xuaW1wb3J0IHsgZXJyb3JIYW5kbGVyLCBFcnJvck1lc3NhZ2UsIGVycm9yTXNnLCBoYW5kbGVFcnJvciB9IGZyb20gXCIuL0Vycm9ySGFuZGxpbmdcIjtcbmltcG9ydCB7IGluaXQsIExvZ2dlciB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB7IENtZCwgRGlzcGF0Y2gsIEluaXRSZXN1bHQsIE1lc3NhZ2UsIE1zZ1NvdXJjZSwgVXBkYXRlTWFwLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vVHlwZXNcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvblJlc3VsdCwgdXNlRWxtaXNoIH0gZnJvbSBcIi4vdXNlRWxtaXNoXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgICBMb2dnZXIsXG4gICAgTWVzc2FnZSxcbiAgICBDbWQsXG4gICAgRGlzcGF0Y2gsXG4gICAgSW5pdFJlc3VsdCxcbiAgICBVcGRhdGVSZXR1cm5UeXBlLFxuICAgIFN1YnNjcmlwdGlvblJlc3VsdCxcbiAgICBNc2dTb3VyY2UsXG4gICAgVXBkYXRlTWFwLFxuICAgIEVycm9yTWVzc2FnZSxcbn07XG5cbmV4cG9ydCB7XG4gICAgaW5pdCxcbiAgICBjbWQsXG4gICAgRWxtQ29tcG9uZW50LFxuICAgIGVycm9yTXNnLFxuICAgIGVycm9ySGFuZGxlcixcbiAgICBoYW5kbGVFcnJvcixcbiAgICB1c2VFbG1pc2gsXG59OyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxJQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxhQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxjQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUEifQ==
53
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRWxtQ29tcG9uZW50IiwicmVxdWlyZSIsIl9FcnJvckhhbmRsaW5nIiwiX0luaXQiLCJfY21kIiwiX3VzZUVsbWlzaCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbG1Db21wb25lbnQgfSBmcm9tIFwiLi9FbG1Db21wb25lbnRcIjtcbmltcG9ydCB7IEVycm9yTWVzc2FnZSwgZXJyb3JIYW5kbGVyLCBlcnJvck1zZywgaGFuZGxlRXJyb3IgfSBmcm9tIFwiLi9FcnJvckhhbmRsaW5nXCI7XG5pbXBvcnQgeyBFbG1PcHRpb25zLCBMb2dnZXIsIGluaXQgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgeyBDbWQsIERpc3BhdGNoLCBJbml0UmVzdWx0LCBNZXNzYWdlLCBNc2dTb3VyY2UsIFVwZGF0ZU1hcCwgVXBkYXRlUmV0dXJuVHlwZSB9IGZyb20gXCIuL1R5cGVzXCI7XG5pbXBvcnQgeyBjbWQgfSBmcm9tIFwiLi9jbWRcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvblJlc3VsdCwgVXNlRWxtaXNoT3B0aW9ucywgdXNlRWxtaXNoIH0gZnJvbSBcIi4vdXNlRWxtaXNoXCI7XG5cbmV4cG9ydCB0eXBlIHtcblx0Q21kLFxuXHREaXNwYXRjaCxcblx0RWxtT3B0aW9ucyxcblx0RXJyb3JNZXNzYWdlLFxuXHRJbml0UmVzdWx0LFxuXHRMb2dnZXIsXG5cdE1lc3NhZ2UsXG5cdE1zZ1NvdXJjZSxcblx0U3Vic2NyaXB0aW9uUmVzdWx0LFxuXHRVcGRhdGVNYXAsXG5cdFVwZGF0ZVJldHVyblR5cGUsXG5cdFVzZUVsbWlzaE9wdGlvbnMsXG59O1xuXG5leHBvcnQgeyBFbG1Db21wb25lbnQsIGNtZCwgZXJyb3JIYW5kbGVyLCBlcnJvck1zZywgaGFuZGxlRXJyb3IsIGluaXQsIHVzZUVsbWlzaCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLGFBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGNBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLElBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUosT0FBQSJ9
@@ -46,8 +46,8 @@ interface UseElmishOptions<TProps, TModel, TMessage extends Message> {
46
46
  * @example
47
47
  * const [model, dispatch] = useElmish({ props, init, update, name: "MyComponent" });
48
48
  */
49
- declare function useElmish<TProps, TModel, TMessage extends Message>({ name, props, init, update, subscription }: UseElmishOptions<TProps, TModel, TMessage>): [TModel, Dispatch<TMessage>];
49
+ declare function useElmish<TProps, TModel, TMessage extends Message>({ name, props, init, update, subscription, }: UseElmishOptions<TProps, TModel, TMessage>): [TModel, Dispatch<TMessage>];
50
50
  declare function callUpdate<TProps, TModel, TMessage extends Message>(update: UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps): UpdateReturnType<TModel, TMessage>;
51
51
  declare function callUpdateMap<TProps, TModel, TMessage extends Message>(updateMap: UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps): UpdateReturnType<TModel, TMessage>;
52
- export type { SubscriptionResult, };
53
- export { useElmish, callUpdate, callUpdateMap, };
52
+ export type { SubscriptionResult, UseElmishOptions };
53
+ export { callUpdate, callUpdateMap, useElmish };
package/dist/useElmish.js CHANGED
@@ -7,10 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.callUpdate = callUpdate;
8
8
  exports.callUpdateMap = callUpdateMap;
9
9
  exports.useElmish = useElmish;
10
- var _react = require("react");
11
10
  var _Common = require("./Common");
12
11
  var _Init = require("./Init");
13
12
  var _fakeOptions = require("./Testing/fakeOptions");
13
+ var _react = require("react");
14
14
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
15
15
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
16
16
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
@@ -119,6 +119,8 @@ function useElmish(_ref) {
119
119
  (_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 ? void 0 : _Services$logger2.debug("Initial model for", name, initializedModel);
120
120
  _Common.execCmd.apply(void 0, [dispatch].concat(_toConsumableArray(initCommands)));
121
121
  }
122
+
123
+ // rome-ignore lint/nursery/useExhaustiveDependencies: We want to run this effect only once
122
124
  (0, _react.useEffect)(function () {
123
125
  if (subscription) {
124
126
  var _subscription = subscription(initializedModel, props),
@@ -141,4 +143,4 @@ function callUpdateMap(updateMap, msg, model, props) {
141
143
  var msgName = msg.name;
142
144
  return updateMap[msgName](msg, model, props);
143
145
  }
144
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX0NvbW1vbiIsIl9Jbml0IiwiX2Zha2VPcHRpb25zIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiYXJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIlR5cGVFcnJvciIsIkFycmF5IiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5Iiwib3duS2V5cyIsIm9iamVjdCIsImVudW1lcmFibGVPbmx5Iiwia2V5cyIsIk9iamVjdCIsImdldE93blByb3BlcnR5U3ltYm9scyIsInN5bWJvbHMiLCJmaWx0ZXIiLCJzeW0iLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJmb3JFYWNoIiwia2V5IiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIm9iaiIsInZhbHVlIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImFyZyIsIl90b1ByaW1pdGl2ZSIsIl90eXBlb2YiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJ1bmRlZmluZWQiLCJyZXMiLCJjYWxsIiwiTnVtYmVyIiwiX3RvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfbm9uSXRlcmFibGVSZXN0IiwiaXRlciIsIml0ZXJhdG9yIiwiZnJvbSIsIl9zbGljZWRUb0FycmF5IiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwibyIsIm1pbkxlbiIsIm4iLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsImxlbiIsImFycjIiLCJfaSIsIl9zIiwiX2UiLCJfeCIsIl9yIiwiX2FyciIsIl9uIiwiX2QiLCJuZXh0IiwiZG9uZSIsImVyciIsInVzZUVsbWlzaCIsIl9yZWYiLCJfZmFrZU9wdGlvbnMkZGlzcGF0Y2giLCJwcm9wcyIsImluaXQiLCJ1cGRhdGUiLCJzdWJzY3JpcHRpb24iLCJyZWVudGVyZWQiLCJidWZmZXIiLCJjdXJyZW50TW9kZWwiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJtb2RlbCIsInNldE1vZGVsIiwicHJvcHNSZWYiLCJ1c2VSZWYiLCJpc01vdW50ZWRSZWYiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiaW5pdGlhbGl6ZWRNb2RlbCIsImZha2VPcHRpb25zIiwiZ2V0RmFrZU9wdGlvbnNPbmNlIiwiZGlzcGF0Y2giLCJ1c2VDYWxsYmFjayIsIm1zZyIsIm5leHRNc2ciLCJtb2RpZmllZCIsImxvZ01lc3NhZ2UiLCJfY2FsbFVwZGF0ZSIsImNhbGxVcGRhdGUiLCJfY2FsbFVwZGF0ZTIiLCJuZXdNb2RlbCIsImNvbW1hbmRzIiwibW9kZWxIYXNDaGFuZ2VkIiwiZXhlY0NtZCIsImNvbmNhdCIsInNoaWZ0IiwicHJldk1vZGVsIiwiX1NlcnZpY2VzJGxvZ2dlciIsInVwZGF0ZWRNb2RlbCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiZGVidWciLCJfU2VydmljZXMkbG9nZ2VyMiIsIl9yZWYyIiwiX3JlZjMiLCJpbml0TW9kZWwiLCJpbml0Q29tbWFuZHMiLCJfc3Vic2NyaXB0aW9uIiwiX3N1YnNjcmlwdGlvbjIiLCJzdWJDbWQiLCJkZXN0cnVjdG9yIiwiY2FsbFVwZGF0ZU1hcCIsInVwZGF0ZU1hcCIsIm1zZ05hbWUiXSwic291cmNlcyI6WyIuLi9zcmMvdXNlRWxtaXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwcyAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZXhlY0NtZCwgbG9nTWVzc2FnZSwgbW9kZWxIYXNDaGFuZ2VkIH0gZnJvbSBcIi4vQ29tbW9uXCI7XG5pbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB7IGdldEZha2VPcHRpb25zT25jZSB9IGZyb20gXCIuL1Rlc3RpbmcvZmFrZU9wdGlvbnNcIjtcbmltcG9ydCB7IENtZCwgRGlzcGF0Y2gsIEluaXRGdW5jdGlvbiwgTWVzc2FnZSwgTnVsbGFibGUsIFVwZGF0ZUZ1bmN0aW9uLCBVcGRhdGVNYXAsIFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLi9UeXBlc1wiO1xuXG4vKipcbiAqIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbnR5cGUgU3Vic2NyaXB0aW9uUmVzdWx0PFRNZXNzYWdlPiA9IFtDbWQ8VE1lc3NhZ2U+LCAoKCkgPT4gdm9pZCk/XTtcbnR5cGUgU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAobW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gU3Vic2NyaXB0aW9uUmVzdWx0PFRNZXNzYWdlPjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgYHVzZUVsbWlzaGAgaG9vay5cbiAqIEBpbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uc1xuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xuaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4ge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQuIFRoaXMgaXMgdXNlZCBmb3IgbG9nZ2luZyBvbmx5LlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBwcm9wcyBwYXNzZWQgdG8gdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAdHlwZSB7VFByb3BzfVxuICAgICAqL1xuICAgIHByb3BzOiBUUHJvcHMsXG4gICAgLyoqXG4gICAgICogVGhlIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUgdGhlIGNvbXBvbmVudHMgbW9kZWwuIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cbiAgICAgKiBAdHlwZSB7SW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT59XG4gICAgICovXG4gICAgaW5pdDogSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4gICAgLyoqXG4gICAgICogVGhlIGB1cGRhdGVgIGZ1bmN0aW9uIG9yIHVwZGF0ZSBtYXAgb2JqZWN0LlxuICAgICAqIEB0eXBlIHsoVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KX1cbiAgICAgKi9cbiAgICB1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbiAgICAvKipcbiAgICAgKiBUaGUgb3B0aW9uYWwgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cbiAgICAgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG4gICAgICovXG4gICAgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG59XG5cbi8qKlxuICogSG9vayB0byB1c2UgdGhlIEVsbSBhcmNoaXRlY3R1cmUgcGF0dGVybiBpbiBhIGZ1bmN0aW9uIGNvbXBvbmVudC5cbiAqIEBwYXJhbSB7VXNlRWxtaXNoT3B0aW9uc30gb3B0aW9ucyBUaGUgb3B0aW9ucyBwYXNzZWQgdGhlIHRoZSBob29rLlxuICogQHJldHVybnMgQSB0dXBsZSBjb250YWluaW5nIHRoZSBjdXJyZW50IG1vZGVsIGFuZCB0aGUgZGlzcGF0Y2hlci5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBbbW9kZWwsIGRpc3BhdGNoXSA9IHVzZUVsbWlzaCh7IHByb3BzLCBpbml0LCB1cGRhdGUsIG5hbWU6IFwiTXlDb21wb25lbnRcIiB9KTtcbiAqL1xuZnVuY3Rpb24gdXNlRWxtaXNoPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+ICh7IG5hbWUsIHByb3BzLCBpbml0LCB1cGRhdGUsIHN1YnNjcmlwdGlvbiB9OiBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pOiBbVE1vZGVsLCBEaXNwYXRjaDxUTWVzc2FnZT5dIHtcbiAgICBsZXQgcmVlbnRlcmVkID0gZmFsc2U7XG4gICAgY29uc3QgYnVmZmVyOiBUTWVzc2FnZSBbXSA9IFtdO1xuICAgIGxldCBjdXJyZW50TW9kZWw6IFBhcnRpYWw8VE1vZGVsPiA9IHt9O1xuXG4gICAgY29uc3QgW21vZGVsLCBzZXRNb2RlbF0gPSB1c2VTdGF0ZTxOdWxsYWJsZTxUTW9kZWw+PihudWxsKTtcbiAgICBjb25zdCBwcm9wc1JlZiA9IHVzZVJlZihwcm9wcyk7XG4gICAgY29uc3QgaXNNb3VudGVkUmVmID0gdXNlUmVmKHRydWUpO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaXNNb3VudGVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpc01vdW50ZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcblxuICAgIGxldCBpbml0aWFsaXplZE1vZGVsID0gbW9kZWw7XG5cbiAgICBpZiAocHJvcHNSZWYuY3VycmVudCAhPT0gcHJvcHMpIHtcbiAgICAgICAgcHJvcHNSZWYuY3VycmVudCA9IHByb3BzO1xuICAgIH1cblxuICAgIGNvbnN0IGZha2VPcHRpb25zID0gZ2V0RmFrZU9wdGlvbnNPbmNlKCk7XG4gICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VDYWxsYmFjayhmYWtlT3B0aW9ucz8uZGlzcGF0Y2ggPz8gKChtc2c6IFRNZXNzYWdlKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlZW50ZXJlZCkge1xuICAgICAgICAgICAgYnVmZmVyLnB1c2gobXNnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlZW50ZXJlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIGxldCBuZXh0TXNnOiBUTWVzc2FnZSB8IHVuZGVmaW5lZCA9IG1zZztcbiAgICAgICAgICAgIGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICB3aGlsZSAobmV4dE1zZykge1xuICAgICAgICAgICAgICAgIGxvZ01lc3NhZ2UobmFtZSwgbmV4dE1zZyk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBbbmV3TW9kZWwsIC4uLmNvbW1hbmRzXSA9IGNhbGxVcGRhdGUodXBkYXRlLCBuZXh0TXNnLCB7IC4uLmluaXRpYWxpemVkTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9LCBwcm9wc1JlZi5jdXJyZW50KTtcblxuICAgICAgICAgICAgICAgIGlmIChtb2RlbEhhc0NoYW5nZWQoY3VycmVudE1vZGVsLCBuZXdNb2RlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudE1vZGVsID0geyAuLi5jdXJyZW50TW9kZWwsIC4uLm5ld01vZGVsIH07XG5cbiAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGV4ZWNDbWQoZGlzcGF0Y2gsIC4uLmNvbW1hbmRzKTtcblxuICAgICAgICAgICAgICAgIG5leHRNc2cgPSBidWZmZXIuc2hpZnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlZW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAoaXNNb3VudGVkUmVmLmN1cnJlbnQgJiYgbW9kaWZpZWQpIHtcbiAgICAgICAgICAgICAgICBzZXRNb2RlbChwcmV2TW9kZWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLnByZXZNb2RlbCBhcyBUTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG4gICAgICAgICAgICAgICAgICAgIFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJVcGRhdGUgbW9kZWwgZm9yXCIsIG5hbWUsIHVwZGF0ZWRNb2RlbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZWRNb2RlbDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pLCBbXSk7XG5cbiAgICBpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcbiAgICAgICAgY29uc3QgW2luaXRNb2RlbCwgLi4uaW5pdENvbW1hbmRzXSA9IGZha2VPcHRpb25zPy5tb2RlbCA/IFtmYWtlT3B0aW9ucy5tb2RlbCBhcyBUTW9kZWxdIDogaW5pdChwcm9wcyk7XG5cbiAgICAgICAgaW5pdGlhbGl6ZWRNb2RlbCA9IGluaXRNb2RlbDtcbiAgICAgICAgc2V0TW9kZWwoaW5pdGlhbGl6ZWRNb2RlbCk7XG5cbiAgICAgICAgU2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkluaXRpYWwgbW9kZWwgZm9yXCIsIG5hbWUsIGluaXRpYWxpemVkTW9kZWwpO1xuXG4gICAgICAgIGV4ZWNDbWQoZGlzcGF0Y2gsIC4uLmluaXRDb21tYW5kcyk7XG4gICAgfVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgY29uc3QgW3N1YkNtZCwgZGVzdHJ1Y3Rvcl0gPSBzdWJzY3JpcHRpb24oaW5pdGlhbGl6ZWRNb2RlbCBhcyBUTW9kZWwsIHByb3BzKTtcblxuICAgICAgICAgICAgZXhlY0NtZChkaXNwYXRjaCwgc3ViQ21kKTtcblxuICAgICAgICAgICAgcmV0dXJuIGRlc3RydWN0b3I7XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gW2luaXRpYWxpemVkTW9kZWwsIGRpc3BhdGNoXTtcbn1cblxuZnVuY3Rpb24gY2FsbFVwZGF0ZTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiAodXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sIG1zZzogVE1lc3NhZ2UsIG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcbiAgICBpZiAodHlwZW9mIHVwZGF0ZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB1cGRhdGUobW9kZWwsIG1zZywgcHJvcHMpO1xuICAgIH1cblxuICAgIHJldHVybiBjYWxsVXBkYXRlTWFwKHVwZGF0ZSwgbXNnLCBtb2RlbCwgcHJvcHMpO1xufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+ICh1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCBtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgY29uc3QgbXNnTmFtZTogVE1lc3NhZ2VbXCJuYW1lXCJdID0gbXNnLm5hbWU7XG5cbiAgICByZXR1cm4gdXBkYXRlTWFwW21zZ05hbWVdKG1zZywgbW9kZWwsIHByb3BzKTtcbn1cblxuZXhwb3J0IHR5cGUge1xuICAgIFN1YnNjcmlwdGlvblJlc3VsdCxcbn07XG5cbmV4cG9ydCB7XG4gICAgdXNlRWxtaXNoLFxuICAgIGNhbGxVcGRhdGUsXG4gICAgY2FsbFVwZGF0ZU1hcCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFILE9BQUE7QUFBMkQsU0FBQUksbUJBQUFDLEdBQUEsV0FBQUMsa0JBQUEsQ0FBQUQsR0FBQSxLQUFBRSxnQkFBQSxDQUFBRixHQUFBLEtBQUFHLDJCQUFBLENBQUFILEdBQUEsS0FBQUksa0JBQUE7QUFBQSxTQUFBQSxtQkFBQSxjQUFBQyxTQUFBO0FBQUEsU0FBQUosbUJBQUFELEdBQUEsUUFBQU0sS0FBQSxDQUFBQyxPQUFBLENBQUFQLEdBQUEsVUFBQVEsaUJBQUEsQ0FBQVIsR0FBQTtBQUFBLFNBQUFTLFFBQUFDLE1BQUEsRUFBQUMsY0FBQSxRQUFBQyxJQUFBLEdBQUFDLE1BQUEsQ0FBQUQsSUFBQSxDQUFBRixNQUFBLE9BQUFHLE1BQUEsQ0FBQUMscUJBQUEsUUFBQUMsT0FBQSxHQUFBRixNQUFBLENBQUFDLHFCQUFBLENBQUFKLE1BQUEsR0FBQUMsY0FBQSxLQUFBSSxPQUFBLEdBQUFBLE9BQUEsQ0FBQUMsTUFB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
146
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ29tbW9uIiwicmVxdWlyZSIsIl9Jbml0IiwiX2Zha2VPcHRpb25zIiwiX3JlYWN0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiYXJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIlR5cGVFcnJvciIsIkFycmF5IiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5Iiwib3duS2V5cyIsIm9iamVjdCIsImVudW1lcmFibGVPbmx5Iiwia2V5cyIsIk9iamVjdCIsImdldE93blByb3BlcnR5U3ltYm9scyIsInN5bWJvbHMiLCJmaWx0ZXIiLCJzeW0iLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJmb3JFYWNoIiwia2V5IiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIm9iaiIsInZhbHVlIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImFyZyIsIl90b1ByaW1pdGl2ZSIsIl90eXBlb2YiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJ1bmRlZmluZWQiLCJyZXMiLCJjYWxsIiwiTnVtYmVyIiwiX3RvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfbm9uSXRlcmFibGVSZXN0IiwiaXRlciIsIml0ZXJhdG9yIiwiZnJvbSIsIl9zbGljZWRUb0FycmF5IiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwibyIsIm1pbkxlbiIsIm4iLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsImxlbiIsImFycjIiLCJfaSIsIl9zIiwiX2UiLCJfeCIsIl9yIiwiX2FyciIsIl9uIiwiX2QiLCJuZXh0IiwiZG9uZSIsImVyciIsInVzZUVsbWlzaCIsIl9yZWYiLCJfZmFrZU9wdGlvbnMkZGlzcGF0Y2giLCJwcm9wcyIsImluaXQiLCJ1cGRhdGUiLCJzdWJzY3JpcHRpb24iLCJyZWVudGVyZWQiLCJidWZmZXIiLCJjdXJyZW50TW9kZWwiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJtb2RlbCIsInNldE1vZGVsIiwicHJvcHNSZWYiLCJ1c2VSZWYiLCJpc01vdW50ZWRSZWYiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiaW5pdGlhbGl6ZWRNb2RlbCIsImZha2VPcHRpb25zIiwiZ2V0RmFrZU9wdGlvbnNPbmNlIiwiZGlzcGF0Y2giLCJ1c2VDYWxsYmFjayIsIm1zZyIsIm5leHRNc2ciLCJtb2RpZmllZCIsImxvZ01lc3NhZ2UiLCJfY2FsbFVwZGF0ZSIsImNhbGxVcGRhdGUiLCJfY2FsbFVwZGF0ZTIiLCJuZXdNb2RlbCIsImNvbW1hbmRzIiwibW9kZWxIYXNDaGFuZ2VkIiwiZXhlY0NtZCIsImNvbmNhdCIsInNoaWZ0IiwicHJldk1vZGVsIiwiX1NlcnZpY2VzJGxvZ2dlciIsInVwZGF0ZWRNb2RlbCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiZGVidWciLCJfU2VydmljZXMkbG9nZ2VyMiIsIl9yZWYyIiwiX3JlZjMiLCJpbml0TW9kZWwiLCJpbml0Q29tbWFuZHMiLCJfc3Vic2NyaXB0aW9uIiwiX3N1YnNjcmlwdGlvbjIiLCJzdWJDbWQiLCJkZXN0cnVjdG9yIiwiY2FsbFVwZGF0ZU1hcCIsInVwZGF0ZU1hcCIsIm1zZ05hbWUiXSwic291cmNlcyI6WyIuLi9zcmMvdXNlRWxtaXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNDbWQsIGxvZ01lc3NhZ2UsIG1vZGVsSGFzQ2hhbmdlZCB9IGZyb20gXCIuL0NvbW1vblwiO1xuaW1wb3J0IHsgU2VydmljZXMgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9UZXN0aW5nL2Zha2VPcHRpb25zXCI7XG5pbXBvcnQgeyBDbWQsIERpc3BhdGNoLCBJbml0RnVuY3Rpb24sIE1lc3NhZ2UsIE51bGxhYmxlLCBVcGRhdGVGdW5jdGlvbiwgVXBkYXRlTWFwLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vVHlwZXNcIjtcbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwcyAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuXG4vKipcbiAqIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbnR5cGUgU3Vic2NyaXB0aW9uUmVzdWx0PFRNZXNzYWdlPiA9IFtDbWQ8VE1lc3NhZ2U+LCAoKCkgPT4gdm9pZCk/XTtcbnR5cGUgU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAobW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gU3Vic2NyaXB0aW9uUmVzdWx0PFRNZXNzYWdlPjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgYHVzZUVsbWlzaGAgaG9vay5cbiAqIEBpbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uc1xuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xuaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4ge1xuXHQvKipcblx0ICogVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC4gVGhpcyBpcyB1c2VkIGZvciBsb2dnaW5nIG9ubHkuXG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqL1xuXHRuYW1lOiBzdHJpbmc7XG5cdC8qKlxuXHQgKiBUaGUgcHJvcHMgcGFzc2VkIHRvIHRoZSBjb21wb25lbnQuXG5cdCAqIEB0eXBlIHtUUHJvcHN9XG5cdCAqL1xuXHRwcm9wczogVFByb3BzO1xuXHQvKipcblx0ICogVGhlIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUgdGhlIGNvbXBvbmVudHMgbW9kZWwuIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cblx0ICogQHR5cGUge0luaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+fVxuXHQgKi9cblx0aW5pdDogSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG5cdC8qKlxuXHQgKiBUaGUgYHVwZGF0ZWAgZnVuY3Rpb24gb3IgdXBkYXRlIG1hcCBvYmplY3QuXG5cdCAqIEB0eXBlIHsoVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KX1cblx0ICovXG5cdHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xuXHQvKipcblx0ICogVGhlIG9wdGlvbmFsIGBzdWJzY3JpcHRpb25gIGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UuXG5cdCAqIEB0eXBlIHsoVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KX1cblx0ICovXG5cdHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xufVxuXG4vKipcbiAqIEhvb2sgdG8gdXNlIHRoZSBFbG0gYXJjaGl0ZWN0dXJlIHBhdHRlcm4gaW4gYSBmdW5jdGlvbiBjb21wb25lbnQuXG4gKiBAcGFyYW0ge1VzZUVsbWlzaE9wdGlvbnN9IG9wdGlvbnMgVGhlIG9wdGlvbnMgcGFzc2VkIHRoZSB0aGUgaG9vay5cbiAqIEByZXR1cm5zIEEgdHVwbGUgY29udGFpbmluZyB0aGUgY3VycmVudCBtb2RlbCBhbmQgdGhlIGRpc3BhdGNoZXIuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgW21vZGVsLCBkaXNwYXRjaF0gPSB1c2VFbG1pc2goeyBwcm9wcywgaW5pdCwgdXBkYXRlLCBuYW1lOiBcIk15Q29tcG9uZW50XCIgfSk7XG4gKi9cbmZ1bmN0aW9uIHVzZUVsbWlzaDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPih7XG5cdG5hbWUsXG5cdHByb3BzLFxuXHRpbml0LFxuXHR1cGRhdGUsXG5cdHN1YnNjcmlwdGlvbixcbn06IFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPik6IFtUTW9kZWwsIERpc3BhdGNoPFRNZXNzYWdlPl0ge1xuXHRsZXQgcmVlbnRlcmVkID0gZmFsc2U7XG5cdGNvbnN0IGJ1ZmZlcjogVE1lc3NhZ2VbXSA9IFtdO1xuXHRsZXQgY3VycmVudE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4gPSB7fTtcblxuXHRjb25zdCBbbW9kZWwsIHNldE1vZGVsXSA9IHVzZVN0YXRlPE51bGxhYmxlPFRNb2RlbD4+KG51bGwpO1xuXHRjb25zdCBwcm9wc1JlZiA9IHVzZVJlZihwcm9wcyk7XG5cdGNvbnN0IGlzTW91bnRlZFJlZiA9IHVzZVJlZih0cnVlKTtcblxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlzTW91bnRlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcblxuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRpc01vdW50ZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuXHRcdH07XG5cdH0sIFtdKTtcblxuXHRsZXQgaW5pdGlhbGl6ZWRNb2RlbCA9IG1vZGVsO1xuXG5cdGlmIChwcm9wc1JlZi5jdXJyZW50ICE9PSBwcm9wcykge1xuXHRcdHByb3BzUmVmLmN1cnJlbnQgPSBwcm9wcztcblx0fVxuXG5cdGNvbnN0IGZha2VPcHRpb25zID0gZ2V0RmFrZU9wdGlvbnNPbmNlKCk7XG5cdGNvbnN0IGRpc3BhdGNoID0gdXNlQ2FsbGJhY2soXG5cdFx0ZmFrZU9wdGlvbnM/LmRpc3BhdGNoID8/XG5cdFx0XHQoKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcblx0XHRcdFx0aWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHJlZW50ZXJlZCkge1xuXHRcdFx0XHRcdGJ1ZmZlci5wdXNoKG1zZyk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmVlbnRlcmVkID0gdHJ1ZTtcblxuXHRcdFx0XHRcdGxldCBuZXh0TXNnOiBUTWVzc2FnZSB8IHVuZGVmaW5lZCA9IG1zZztcblx0XHRcdFx0XHRsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuXHRcdFx0XHRcdHdoaWxlIChuZXh0TXNnKSB7XG5cdFx0XHRcdFx0XHRsb2dNZXNzYWdlKG5hbWUsIG5leHRNc2cpO1xuXG5cdFx0XHRcdFx0XHRjb25zdCBbbmV3TW9kZWwsIC4uLmNvbW1hbmRzXSA9IGNhbGxVcGRhdGUoXG5cdFx0XHRcdFx0XHRcdHVwZGF0ZSxcblx0XHRcdFx0XHRcdFx0bmV4dE1zZyxcblx0XHRcdFx0XHRcdFx0eyAuLi5pbml0aWFsaXplZE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfSxcblx0XHRcdFx0XHRcdFx0cHJvcHNSZWYuY3VycmVudCxcblx0XHRcdFx0XHRcdCk7XG5cblx0XHRcdFx0XHRcdGlmIChtb2RlbEhhc0NoYW5nZWQoY3VycmVudE1vZGVsLCBuZXdNb2RlbCkpIHtcblx0XHRcdFx0XHRcdFx0Y3VycmVudE1vZGVsID0geyAuLi5jdXJyZW50TW9kZWwsIC4uLm5ld01vZGVsIH07XG5cblx0XHRcdFx0XHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRleGVjQ21kKGRpc3BhdGNoLCAuLi5jb21tYW5kcyk7XG5cblx0XHRcdFx0XHRcdG5leHRNc2cgPSBidWZmZXIuc2hpZnQoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmVlbnRlcmVkID0gZmFsc2U7XG5cblx0XHRcdFx0XHRpZiAoaXNNb3VudGVkUmVmLmN1cnJlbnQgJiYgbW9kaWZpZWQpIHtcblx0XHRcdFx0XHRcdHNldE1vZGVsKChwcmV2TW9kZWwpID0+IHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgdXBkYXRlZE1vZGVsID0ge1xuXHRcdFx0XHRcdFx0XHRcdC4uLihwcmV2TW9kZWwgYXMgVE1vZGVsKSxcblx0XHRcdFx0XHRcdFx0XHQuLi5jdXJyZW50TW9kZWwsXG5cdFx0XHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRcdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIlVwZGF0ZSBtb2RlbCBmb3JcIiwgbmFtZSwgdXBkYXRlZE1vZGVsKTtcblxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdXBkYXRlZE1vZGVsO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KSxcblx0XHRbXSxcblx0KTtcblxuXHRpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcblx0XHRjb25zdCBbaW5pdE1vZGVsLCAuLi5pbml0Q29tbWFuZHNdID0gZmFrZU9wdGlvbnM/Lm1vZGVsID8gW2Zha2VPcHRpb25zLm1vZGVsIGFzIFRNb2RlbF0gOiBpbml0KHByb3BzKTtcblxuXHRcdGluaXRpYWxpemVkTW9kZWwgPSBpbml0TW9kZWw7XG5cdFx0c2V0TW9kZWwoaW5pdGlhbGl6ZWRNb2RlbCk7XG5cblx0XHRTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiSW5pdGlhbCBtb2RlbCBmb3JcIiwgbmFtZSwgaW5pdGlhbGl6ZWRNb2RlbCk7XG5cblx0XHRleGVjQ21kKGRpc3BhdGNoLCAuLi5pbml0Q29tbWFuZHMpO1xuXHR9XG5cblx0Ly8gcm9tZS1pZ25vcmUgbGludC9udXJzZXJ5L3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IFdlIHdhbnQgdG8gcnVuIHRoaXMgZWZmZWN0IG9ubHkgb25jZVxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlmIChzdWJzY3JpcHRpb24pIHtcblx0XHRcdGNvbnN0IFtzdWJDbWQsIGRlc3RydWN0b3JdID0gc3Vic2NyaXB0aW9uKGluaXRpYWxpemVkTW9kZWwgYXMgVE1vZGVsLCBwcm9wcyk7XG5cblx0XHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIHN1YkNtZCk7XG5cblx0XHRcdHJldHVybiBkZXN0cnVjdG9yO1xuXHRcdH1cblx0fSwgW10pO1xuXG5cdHJldHVybiBbaW5pdGlhbGl6ZWRNb2RlbCwgZGlzcGF0Y2hdO1xufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IFRNb2RlbCxcblx0cHJvcHM6IFRQcm9wcyxcbik6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuXHRpZiAodHlwZW9mIHVwZGF0ZSA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0cmV0dXJuIHVwZGF0ZShtb2RlbCwgbXNnLCBwcm9wcyk7XG5cdH1cblxuXHRyZXR1cm4gY2FsbFVwZGF0ZU1hcCh1cGRhdGUsIG1zZywgbW9kZWwsIHByb3BzKTtcbn1cblxuZnVuY3Rpb24gY2FsbFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0dXBkYXRlTWFwOiBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IFRNb2RlbCxcblx0cHJvcHM6IFRQcm9wcyxcbik6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuXHRjb25zdCBtc2dOYW1lOiBUTWVzc2FnZVtcIm5hbWVcIl0gPSBtc2cubmFtZTtcblxuXHRyZXR1cm4gdXBkYXRlTWFwW21zZ05hbWVdKG1zZywgbW9kZWwsIHByb3BzKTtcbn1cblxuZXhwb3J0IHR5cGUgeyBTdWJzY3JpcHRpb25SZXN1bHQsIFVzZUVsbWlzaE9wdGlvbnMgfTtcblxuZXhwb3J0IHsgY2FsbFVwZGF0ZSwgY2FsbFVwZGF0ZU1hcCwgdXNlRWxtaXNoIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFlBQUEsR0FBQUYsT0FBQTtBQUdBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUFpRSxTQUFBSSxtQkFBQUMsR0FBQSxXQUFBQyxrQkFBQSxDQUFBRCxHQUFBLEtBQUFFLGdCQUFBLENBQUFGLEdBQUEsS0FBQUcsMkJBQUEsQ0FBQUgsR0FBQSxLQUFBSSxrQkFBQTtBQUFBLFNBQUFBLG1CQUFBLGNBQUFDLFNBQUE7QUFBQSxTQUFBSixtQkFBQUQsR0FBQSxRQUFBTSxLQUFBLENBQUFDLE9BQUEsQ0FBQVAsR0FBQSxVQUFBUSxpQkFBQSxDQUFBUixHQUFBO0FBQUEsU0FBQVMsUUFBQUMsTUFBQSxFQUFBQyxjQUFBLFFBQUFDLElBQUEsR0FBQUMsTUFBQSxDQUFBRCxJQUFBLENBQUFGLE1BQUEsT0FBQUcsTUFBQSxDQUFBQyxxQkFBQSxRQUFBQyxPQUFBLEdBQUFGLE1BQUEsQ0FBQUMscUJBQUEsQ0FBQUosTUFBQSxH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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-elmish",
3
- "version": "7.0.1",
3
+ "version": "7.0.2",
4
4
  "description": "Elmish for React using Typescript",
5
5
  "author": "atheck",
6
6
  "license": "MIT",
@@ -10,28 +10,29 @@
10
10
  "build:js": "babel src --out-dir dist --extensions \".ts,.tsx\" --ignore \"./**/*.spec.ts\",\"./**/*.spec.tsx\" --source-maps inline",
11
11
  "test": "jest --coverage",
12
12
  "test:watch": "jest --watch --coverage",
13
- "lint": "npx eslint \"src/**/*.ts[x]\"",
14
- "update": "npx npm-check-updates -i",
13
+ "lint": "rome check src --max-diagnostics 200 && npx eslint \"src/**/*.ts[x]\"",
14
+ "update": "npx -y npm-check-updates -i --install always",
15
15
  "semantic-release": "semantic-release"
16
16
  },
17
17
  "peerDependencies": {
18
18
  "react": ">=16.8.0"
19
19
  },
20
20
  "devDependencies": {
21
- "@babel/cli": "7.22.9",
22
- "@babel/core": "7.22.9",
21
+ "@babel/cli": "7.22.10",
22
+ "@babel/core": "7.22.10",
23
23
  "@babel/plugin-proposal-class-properties": "7.18.6",
24
- "@babel/preset-env": "7.22.9",
24
+ "@babel/preset-env": "7.22.10",
25
25
  "@babel/preset-react": "7.22.5",
26
26
  "@babel/preset-typescript": "7.22.5",
27
27
  "@testing-library/react": "14.0.0",
28
- "@types/jest": "29.5.3",
29
- "@types/react": "18.2.18",
30
- "eslint": "8.46.0",
31
- "eslint-config-heck": "1.45.2",
32
- "jest": "29.6.2",
33
- "jest-environment-jsdom": "29.6.2",
34
- "semantic-release": "21.0.7",
28
+ "@types/jest": "29.5.4",
29
+ "@types/react": "18.2.21",
30
+ "eslint": "8.47.0",
31
+ "eslint-config-heck": "1.47.1",
32
+ "jest": "29.6.4",
33
+ "jest-environment-jsdom": "29.6.4",
34
+ "rome": "12.1.3",
35
+ "semantic-release": "21.1.0",
35
36
  "ts-jest": "29.1.1",
36
37
  "typescript": "5.1.6"
37
38
  },