tedious 20.0.2 → 20.0.4

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.
@@ -240,7 +240,7 @@ export declare const TYPE: {
240
240
  *
241
241
  * <tbody>
242
242
  * <tr class="group-heading">
243
- * <th colspan="4">Date and Time</th>
243
+ * <th colspan="5">Date and Time</th>
244
244
  * </tr>
245
245
  * <tr>
246
246
  * <td><code>smalldatetime</code></td>
@@ -288,7 +288,7 @@ export declare const TYPE: {
288
288
  *
289
289
  * <tbody>
290
290
  * <tr class="group-heading">
291
- * <th colspan="4">Character Strings</th>
291
+ * <th colspan="5">Character Strings</th>
292
292
  * </tr>
293
293
  * <tr>
294
294
  * <td><code>char</code></td>
@@ -315,7 +315,7 @@ export declare const TYPE: {
315
315
  *
316
316
  * <tbody>
317
317
  * <tr class="group-heading">
318
- * <th colspan="4">Unicode Strings</th>
318
+ * <th colspan="5">Unicode Strings</th>
319
319
  * </tr>
320
320
  * <tr>
321
321
  * <td><code>nchar</code></td>
package/lib/data-type.js CHANGED
@@ -189,7 +189,7 @@ const TYPE = exports.TYPE = {
189
189
  *
190
190
  * <tbody>
191
191
  * <tr class="group-heading">
192
- * <th colspan="4">Date and Time</th>
192
+ * <th colspan="5">Date and Time</th>
193
193
  * </tr>
194
194
  * <tr>
195
195
  * <td><code>smalldatetime</code></td>
@@ -237,7 +237,7 @@ const TYPE = exports.TYPE = {
237
237
  *
238
238
  * <tbody>
239
239
  * <tr class="group-heading">
240
- * <th colspan="4">Character Strings</th>
240
+ * <th colspan="5">Character Strings</th>
241
241
  * </tr>
242
242
  * <tr>
243
243
  * <td><code>char</code></td>
@@ -264,7 +264,7 @@ const TYPE = exports.TYPE = {
264
264
  *
265
265
  * <tbody>
266
266
  * <tr class="group-heading">
267
- * <th colspan="4">Unicode Strings</th>
267
+ * <th colspan="5">Unicode Strings</th>
268
268
  * </tr>
269
269
  * <tr>
270
270
  * <td><code>nchar</code></td>
@@ -425,4 +425,4 @@ const TYPES = exports.TYPES = {
425
425
  Variant: _sqlVariant.default
426
426
  };
427
427
  const typeByName = exports.typeByName = TYPES;
428
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbnVsbCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3RpbnlpbnQiLCJfYml0IiwiX3NtYWxsaW50IiwiX2ludCIsIl9zbWFsbGRhdGV0aW1lIiwiX3JlYWwiLCJfbW9uZXkiLCJfZGF0ZXRpbWUiLCJfZmxvYXQiLCJfZGVjaW1hbCIsIl9udW1lcmljIiwiX3NtYWxsbW9uZXkiLCJfYmlnaW50IiwiX2ltYWdlIiwiX3RleHQiLCJfdW5pcXVlaWRlbnRpZmllciIsIl9pbnRuIiwiX250ZXh0IiwiX2JpdG4iLCJfZGVjaW1hbG4iLCJfbnVtZXJpY24iLCJfZmxvYXRuIiwiX21vbmV5biIsIl9kYXRldGltZW4iLCJfdmFyYmluYXJ5IiwiX3ZhcmNoYXIiLCJfYmluYXJ5IiwiX2NoYXIiLCJfbnZhcmNoYXIiLCJfbmNoYXIiLCJfeG1sIiwiX3RpbWUiLCJfZGF0ZSIsIl9kYXRldGltZTIiLCJfZGF0ZXRpbWVvZmZzZXQiLCJfdWR0IiwiX3R2cCIsIl9zcWxWYXJpYW50IiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiVFlQRSIsImV4cG9ydHMiLCJOdWxsIiwiaWQiLCJUaW55SW50IiwiQml0IiwiU21hbGxJbnQiLCJJbnQiLCJTbWFsbERhdGVUaW1lIiwiUmVhbCIsIk1vbmV5IiwiRGF0ZVRpbWUiLCJGbG9hdCIsIkRlY2ltYWwiLCJOdW1lcmljIiwiU21hbGxNb25leSIsIkJpZ0ludCIsIkltYWdlIiwiVGV4dCIsIlVuaXF1ZUlkZW50aWZpZXIiLCJJbnROIiwiTlRleHQiLCJCaXROIiwiRGVjaW1hbE4iLCJOdW1lcmljTiIsIkZsb2F0TiIsIk1vbmV5TiIsIkRhdGVUaW1lTiIsIlZhckJpbmFyeSIsIlZhckNoYXIiLCJCaW5hcnkiLCJDaGFyIiwiTlZhckNoYXIiLCJOQ2hhciIsIlhtbCIsIlRpbWUiLCJEYXRlIiwiRGF0ZVRpbWUyIiwiRGF0ZVRpbWVPZmZzZXQiLCJVRFQiLCJUVlAiLCJWYXJpYW50IiwiVFlQRVMiLCJ0eXBlQnlOYW1lIl0sInNvdXJjZXMiOlsiLi4vc3JjL2RhdGEtdHlwZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTnVsbCBmcm9tICcuL2RhdGEtdHlwZXMvbnVsbCc7XG5pbXBvcnQgVGlueUludCBmcm9tICcuL2RhdGEtdHlwZXMvdGlueWludCc7XG5pbXBvcnQgQml0IGZyb20gJy4vZGF0YS10eXBlcy9iaXQnO1xuaW1wb3J0IFNtYWxsSW50IGZyb20gJy4vZGF0YS10eXBlcy9zbWFsbGludCc7XG5pbXBvcnQgSW50IGZyb20gJy4vZGF0YS10eXBlcy9pbnQnO1xuaW1wb3J0IFNtYWxsRGF0ZVRpbWUgZnJvbSAnLi9kYXRhLXR5cGVzL3NtYWxsZGF0ZXRpbWUnO1xuaW1wb3J0IFJlYWwgZnJvbSAnLi9kYXRhLXR5cGVzL3JlYWwnO1xuaW1wb3J0IE1vbmV5IGZyb20gJy4vZGF0YS10eXBlcy9tb25leSc7XG5pbXBvcnQgRGF0ZVRpbWUgZnJvbSAnLi9kYXRhLXR5cGVzL2RhdGV0aW1lJztcbmltcG9ydCBGbG9hdCBmcm9tICcuL2RhdGEtdHlwZXMvZmxvYXQnO1xuaW1wb3J0IERlY2ltYWwgZnJvbSAnLi9kYXRhLXR5cGVzL2RlY2ltYWwnO1xuaW1wb3J0IE51bWVyaWMgZnJvbSAnLi9kYXRhLXR5cGVzL251bWVyaWMnO1xuaW1wb3J0IFNtYWxsTW9uZXkgZnJvbSAnLi9kYXRhLXR5cGVzL3NtYWxsbW9uZXknO1xuaW1wb3J0IEJpZ0ludCBmcm9tICcuL2RhdGEtdHlwZXMvYmlnaW50JztcbmltcG9ydCBJbWFnZSBmcm9tICcuL2RhdGEtdHlwZXMvaW1hZ2UnO1xuaW1wb3J0IFRleHQgZnJvbSAnLi9kYXRhLXR5cGVzL3RleHQnO1xuaW1wb3J0IFVuaXF1ZUlkZW50aWZpZXIgZnJvbSAnLi9kYXRhLXR5cGVzL3VuaXF1ZWlkZW50aWZpZXInO1xuaW1wb3J0IEludE4gZnJvbSAnLi9kYXRhLXR5cGVzL2ludG4nO1xuaW1wb3J0IE5UZXh0IGZyb20gJy4vZGF0YS10eXBlcy9udGV4dCc7XG5pbXBvcnQgQml0TiBmcm9tICcuL2RhdGEtdHlwZXMvYml0bic7XG5pbXBvcnQgRGVjaW1hbE4gZnJvbSAnLi9kYXRhLXR5cGVzL2RlY2ltYWxuJztcbmltcG9ydCBOdW1lcmljTiBmcm9tICcuL2RhdGEtdHlwZXMvbnVtZXJpY24nO1xuaW1wb3J0IEZsb2F0TiBmcm9tICcuL2RhdGEtdHlwZXMvZmxvYXRuJztcbmltcG9ydCBNb25leU4gZnJvbSAnLi9kYXRhLXR5cGVzL21vbmV5bic7XG5pbXBvcnQgRGF0ZVRpbWVOIGZyb20gJy4vZGF0YS10eXBlcy9kYXRldGltZW4nO1xuaW1wb3J0IFZhckJpbmFyeSBmcm9tICcuL2RhdGEtdHlwZXMvdmFyYmluYXJ5JztcbmltcG9ydCBWYXJDaGFyIGZyb20gJy4vZGF0YS10eXBlcy92YXJjaGFyJztcbmltcG9ydCBCaW5hcnkgZnJvbSAnLi9kYXRhLXR5cGVzL2JpbmFyeSc7XG5pbXBvcnQgQ2hhciBmcm9tICcuL2RhdGEtdHlwZXMvY2hhcic7XG5pbXBvcnQgTlZhckNoYXIgZnJvbSAnLi9kYXRhLXR5cGVzL252YXJjaGFyJztcbmltcG9ydCBOQ2hhciBmcm9tICcuL2RhdGEtdHlwZXMvbmNoYXInO1xuaW1wb3J0IFhtbCBmcm9tICcuL2RhdGEtdHlwZXMveG1sJztcbmltcG9ydCBUaW1lIGZyb20gJy4vZGF0YS10eXBlcy90aW1lJztcbmltcG9ydCBEYXRlIGZyb20gJy4vZGF0YS10eXBlcy9kYXRlJztcbmltcG9ydCBEYXRlVGltZTIgZnJvbSAnLi9kYXRhLXR5cGVzL2RhdGV0aW1lMic7XG5pbXBvcnQgRGF0ZVRpbWVPZmZzZXQgZnJvbSAnLi9kYXRhLXR5cGVzL2RhdGV0aW1lb2Zmc2V0JztcbmltcG9ydCBVRFQgZnJvbSAnLi9kYXRhLXR5cGVzL3VkdCc7XG5pbXBvcnQgVFZQIGZyb20gJy4vZGF0YS10eXBlcy90dnAnO1xuaW1wb3J0IFZhcmlhbnQgZnJvbSAnLi9kYXRhLXR5cGVzL3NxbC12YXJpYW50JztcbmltcG9ydCB7IHR5cGUgQ3J5cHRvTWV0YWRhdGEgfSBmcm9tICcuL2Fsd2F5cy1lbmNyeXB0ZWQvdHlwZXMnO1xuXG5pbXBvcnQgeyB0eXBlIEludGVybmFsQ29ubmVjdGlvbk9wdGlvbnMgfSBmcm9tICcuL2Nvbm5lY3Rpb24nO1xuaW1wb3J0IHsgQ29sbGF0aW9uIH0gZnJvbSAnLi9jb2xsYXRpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFtZXRlciB7XG4gIHR5cGU6IERhdGFUeXBlO1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgdmFsdWU6IHVua25vd247XG5cbiAgb3V0cHV0OiBib29sZWFuO1xuICBsZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHByZWNpc2lvbj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgc2NhbGU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgbnVsbGFibGU/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIGZvcmNlRW5jcnlwdD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIGNyeXB0b01ldGFkYXRhPzogQ3J5cHRvTWV0YWRhdGEgfCB1bmRlZmluZWQ7XG4gIGVuY3J5cHRlZFZhbD86IEJ1ZmZlciB8IHVuZGVmaW5lZDtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFtZXRlckRhdGE8VCA9IGFueT4ge1xuICBsZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHNjYWxlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwcmVjaXNpb24/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgY29sbGF0aW9uPzogQ29sbGF0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIHZhbHVlOiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFUeXBlIHtcbiAgaWQ6IG51bWJlcjtcbiAgdHlwZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgZGVjbGFyYXRpb24ocGFyYW1ldGVyOiBQYXJhbWV0ZXIpOiBzdHJpbmc7XG4gIGdlbmVyYXRlVHlwZUluZm8ocGFyYW1ldGVyOiBQYXJhbWV0ZXJEYXRhLCBvcHRpb25zOiBJbnRlcm5hbENvbm5lY3Rpb25PcHRpb25zKTogQnVmZmVyO1xuICBnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXI6IFBhcmFtZXRlckRhdGEsIG9wdGlvbnM6IEludGVybmFsQ29ubmVjdGlvbk9wdGlvbnMpOiBCdWZmZXI7XG4gIGdlbmVyYXRlUGFyYW1ldGVyRGF0YShwYXJhbWV0ZXI6IFBhcmFtZXRlckRhdGEsIG9wdGlvbnM6IEludGVybmFsQ29ubmVjdGlvbk9wdGlvbnMpOiBHZW5lcmF0b3I8QnVmZmVyLCB2b2lkPjtcbiAgdmFsaWRhdGUodmFsdWU6IGFueSwgY29sbGF0aW9uOiBDb2xsYXRpb24gfCB1bmRlZmluZWQsIG9wdGlvbnM/OiBJbnRlcm5hbENvbm5lY3Rpb25PcHRpb25zKTogYW55OyAvLyBUT0RPOiBSZWZhY3RvciAnYW55JyBhbmQgcmVwbGFjZSB3aXRoIG1vcmUgc3BlY2lmaWMgdHlwZS5cblxuICBoYXNUYWJsZU5hbWU/OiBib29sZWFuO1xuXG4gIHJlc29sdmVMZW5ndGg/OiAocGFyYW1ldGVyOiBQYXJhbWV0ZXIpID0+IG51bWJlcjtcbiAgcmVzb2x2ZVByZWNpc2lvbj86IChwYXJhbWV0ZXI6IFBhcmFtZXRlcikgPT4gbnVtYmVyO1xuICByZXNvbHZlU2NhbGU/OiAocGFyYW1ldGVyOiBQYXJhbWV0ZXIpID0+IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IFRZUEUgPSB7XG4gIFtOdWxsLmlkXTogTnVsbCxcbiAgW1RpbnlJbnQuaWRdOiBUaW55SW50LFxuICBbQml0LmlkXTogQml0LFxuICBbU21hbGxJbnQuaWRdOiBTbWFsbEludCxcbiAgW0ludC5pZF06IEludCxcbiAgW1NtYWxsRGF0ZVRpbWUuaWRdOiBTbWFsbERhdGVUaW1lLFxuICBbUmVhbC5pZF06IFJlYWwsXG4gIFtNb25leS5pZF06IE1vbmV5LFxuICBbRGF0ZVRpbWUuaWRdOiBEYXRlVGltZSxcbiAgW0Zsb2F0LmlkXTogRmxvYXQsXG4gIFtEZWNpbWFsLmlkXTogRGVjaW1hbCxcbiAgW051bWVyaWMuaWRdOiBOdW1lcmljLFxuICBbU21hbGxNb25leS5pZF06IFNtYWxsTW9uZXksXG4gIFtCaWdJbnQuaWRdOiBCaWdJbnQsXG4gIFtJbWFnZS5pZF06IEltYWdlLFxuICBbVGV4dC5pZF06IFRleHQsXG4gIFtVbmlxdWVJZGVudGlmaWVyLmlkXTogVW5pcXVlSWRlbnRpZmllcixcbiAgW0ludE4uaWRdOiBJbnROLFxuICBbTlRleHQuaWRdOiBOVGV4dCxcbiAgW0JpdE4uaWRdOiBCaXROLFxuICBbRGVjaW1hbE4uaWRdOiBEZWNpbWFsTixcbiAgW051bWVyaWNOLmlkXTogTnVtZXJpY04sXG4gIFtGbG9hdE4uaWRdOiBGbG9hdE4sXG4gIFtNb25leU4uaWRdOiBNb25leU4sXG4gIFtEYXRlVGltZU4uaWRdOiBEYXRlVGltZU4sXG4gIFtWYXJCaW5hcnkuaWRdOiBWYXJCaW5hcnksXG4gIFtWYXJDaGFyLmlkXTogVmFyQ2hhcixcbiAgW0JpbmFyeS5pZF06IEJpbmFyeSxcbiAgW0NoYXIuaWRdOiBDaGFyLFxuICBbTlZhckNoYXIuaWRdOiBOVmFyQ2hhcixcbiAgW05DaGFyLmlkXTogTkNoYXIsXG4gIFtYbWwuaWRdOiBYbWwsXG4gIFtUaW1lLmlkXTogVGltZSxcbiAgW0RhdGUuaWRdOiBEYXRlLFxuICBbRGF0ZVRpbWUyLmlkXTogRGF0ZVRpbWUyLFxuICBbRGF0ZVRpbWVPZmZzZXQuaWRdOiBEYXRlVGltZU9mZnNldCxcbiAgW1VEVC5pZF06IFVEVCxcbiAgW1RWUC5pZF06IFRWUCxcbiAgW1ZhcmlhbnQuaWRdOiBWYXJpYW50LFxufTtcblxuLyoqXG4gKiA8dGFibGU+XG4gKiA8dGhlYWQ+XG4gKiAgIDx0cj5cbiAqICAgICA8dGg+VHlwZTwvdGg+XG4gKiAgICAgPHRoPkNvbnN0YW50PC90aD5cbiAqICAgICA8dGg+SmF2YVNjcmlwdDwvdGg+XG4gKiAgICAgPHRoPlJlc3VsdCBzZXQ8L3RoPlxuICogICAgIDx0aD5QYXJhbWV0ZXI8L3RoPlxuICogICA8L3RyPlxuICogPC90aGVhZD5cbiAqXG4gKiA8dGJvZHk+XG4gKiAgIDx0ciBjbGFzcz1cImdyb3VwLWhlYWRpbmdcIj5cbiAqICAgICA8dGggY29sc3Bhbj1cIjVcIj5FeGFjdCBudW1lcmljczwvdGg+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+Yml0PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuQml0XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+Ym9vbGVhbjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnRpbnlpbnQ8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5UaW55SW50XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+bnVtYmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+c21hbGxpbnQ8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5TbWFsbEludF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPm51bWJlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPmludDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkludF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPm51bWJlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPmJpZ2ludDwvY29kZT48c3VwPjE8L3N1cD48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkJpZ0ludF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPnN0cmluZzwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPm51bWVyaWM8L2NvZGU+PHN1cD4yPC9zdXA+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5OdW1lcmljXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+bnVtYmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+ZGVjaW1hbDwvY29kZT48c3VwPjI8L3N1cD48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkRlY2ltYWxdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5udW1iZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5zbWFsbG1vbmV5PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuU21hbGxNb25leV1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPm51bWJlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPm1vbmV5PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuTW9uZXldXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5udW1iZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqIDwvdGJvZHk+XG4gKlxuICogPHRib2R5PlxuICogICA8dHIgY2xhc3M9XCJncm91cC1oZWFkaW5nXCI+XG4gKiAgICAgPHRoIGNvbHNwYW49XCI1XCI+QXBwcm94aW1hdGUgbnVtZXJpY3M8L3RoPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPmZsb2F0PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuRmxvYXRdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5udW1iZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5yZWFsPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuUmVhbF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPm51bWJlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogPC90Ym9keT5cbiAqXG4gKiA8dGJvZHk+XG4gKiAgIDx0ciBjbGFzcz1cImdyb3VwLWhlYWRpbmdcIj5cbiAqICAgICA8dGggY29sc3Bhbj1cIjRcIj5EYXRlIGFuZCBUaW1lPC90aD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5zbWFsbGRhdGV0aW1lPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuU21hbGxEYXRlVGltZV1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPkRhdGU8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5kYXRldGltZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkRhdGVUaW1lXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+RGF0ZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPmRhdGV0aW1lMjwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkRhdGVUaW1lMl1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPkRhdGU8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5kYXRldGltZW9mZnNldDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkRhdGVUaW1lT2Zmc2V0XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+RGF0ZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnRpbWU8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5UaW1lXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+RGF0ZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPmRhdGU8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5EYXRlXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+RGF0ZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogPC90Ym9keT5cbiAqXG4gKiA8dGJvZHk+XG4gKiAgIDx0ciBjbGFzcz1cImdyb3VwLWhlYWRpbmdcIj5cbiAqICAgICA8dGggY29sc3Bhbj1cIjRcIj5DaGFyYWN0ZXIgU3RyaW5nczwvdGg+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+Y2hhcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkNoYXJdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5zdHJpbmc8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT52YXJjaGFyPC9jb2RlPjxzdXA+Mzwvc3VwPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuVmFyQ2hhcl1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPnN0cmluZzwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnRleHQ8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5UZXh0XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+c3RyaW5nPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiA8L3Rib2R5PlxuICpcbiAqIDx0Ym9keT5cbiAqICAgPHRyIGNsYXNzPVwiZ3JvdXAtaGVhZGluZ1wiPlxuICogICAgIDx0aCBjb2xzcGFuPVwiNFwiPlVuaWNvZGUgU3RyaW5nczwvdGg+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+bmNoYXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5OQ2hhcl1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPnN0cmluZzwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPm52YXJjaGFyPC9jb2RlPjxzdXA+Mzwvc3VwPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuTlZhckNoYXJdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5zdHJpbmc8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5udGV4dDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLk5UZXh0XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+c3RyaW5nPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPi08L3RkPlxuICogICA8L3RyPlxuICogPC90Ym9keT5cbiAqXG4gKiA8dGJvZHk+XG4gKiAgIDx0ciBjbGFzcz1cImdyb3VwLWhlYWRpbmdcIj5cbiAqICAgICA8dGggY29sc3Bhbj1cIjVcIj5CaW5hcnkgU3RyaW5nczxzdXA+NDwvc3VwPjwvdGg+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+YmluYXJ5PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuQmluYXJ5XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+QnVmZmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+dmFyYmluYXJ5PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuVmFyQmluYXJ5XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+QnVmZmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+aW1hZ2U8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5JbWFnZV1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPkJ1ZmZlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogPC90Ym9keT5cbiAqXG4gKiA8dGJvZHk+XG4gKiAgIDx0ciBjbGFzcz1cImdyb3VwLWhlYWRpbmdcIj5cbiAqICAgICA8dGggY29sc3Bhbj1cIjVcIj5PdGhlciBEYXRhIFR5cGVzPC90aD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5UVlA8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5UVlBdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5PYmplY3Q8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+LTwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+VURUPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuVURUXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+QnVmZmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPi08L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnVuaXF1ZWlkZW50aWZpZXI8L2NvZGU+PHN1cD40PC9zdXA+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5VbmlxdWVJZGVudGlmaWVyXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+c3RyaW5nPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+dmFyaWFudDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlZhcmlhbnRdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5hbnk8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+LTwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+eG1sPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuWG1sXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+c3RyaW5nPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPi08L3RkPlxuICogICA8L3RyPlxuICogPC90Ym9keT5cbiAqIDwvdGFibGU+XG4gKlxuICogPG9sPlxuICogICA8bGk+XG4gKiAgICAgPGg0PkJpZ0ludDwvaDQ+XG4gKiAgICAgPHA+XG4gKiAgICAgICBWYWx1ZXMgYXJlIHJldHVybmVkIGFzIGEgc3RyaW5nLiBUaGlzIGlzIGJlY2F1c2UgdmFsdWVzIGNhbiBleGNlZWQgNTMgYml0cyBvZiBzaWduaWZpY2FudCBkYXRhLCB3aGljaCBpcyBncmVhdGVyIHRoYW4gYVxuICogICAgICAgSmF2YXNjcmlwdCA8Y29kZT5udW1iZXI8L2NvZGU+IHR5cGUgY2FuIHJlcHJlc2VudCBhcyBhbiBpbnRlZ2VyLlxuICogICAgIDwvcD5cbiAqICAgPC9saT5cbiAqICAgPGxpPlxuICogICAgIDxoND5OdW1lcmljYWwsIERlY2ltYWw8L2g0PlxuICogICAgIDxwPlxuICogICAgICAgRm9yIGlucHV0IHBhcmFtZXRlcnMsIGRlZmF1bHQgcHJlY2lzaW9uIGlzIDE4IGFuZCBkZWZhdWx0IHNjYWxlIGlzIDAuIE1heGltdW0gc3VwcG9ydGVkIHByZWNpc2lvbiBpcyAxOS5cbiAqICAgICA8L3A+XG4gKiAgIDwvbGk+XG4gKiAgIDxsaT5cbiAqICAgICA8aDQ+VmFyQ2hhciwgTlZhckNoYXI8L2g0PlxuICogICAgIDxwPlxuICogICAgICAgPGNvZGU+dmFyY2hhcihtYXgpPC9jb2RlPiBhbmQgPGNvZGU+bnZhcmNoYXIobWF4KTwvY29kZT4gYXJlIGFsc28gc3VwcG9ydGVkLlxuICogICAgIDwvcD5cbiAqICAgPC9saT5cbiAqICAgPGxpPlxuICogICAgIDxoND5VbmlxdWVJZGVudGlmaWVyPC9oND5cbiAqICAgICA8cD5cbiAqICAgICAgIFZhbHVlcyBhcmUgcmV0dXJuZWQgYXMgYSAxNiBieXRlIGhleGFkZWNpbWFsIHN0cmluZy5cbiAqICAgICA8L3A+XG4gKiAgICAgPHA+XG4gKiAgICAgICBOb3RlIHRoYXQgdGhlIG9yZGVyIG9mIGJ5dGVzIGlzIG5vdCB0aGUgc2FtZSBhcyB0aGUgY2hhcmFjdGVyIHJlcHJlc2VudGF0aW9uLiBTZWVcbiAqICAgICAgIDxhIGhyZWY9XCJodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvbXMxOTAyMTUuYXNweFwiPlVzaW5nIHVuaXF1ZWlkZW50aWZpZXIgRGF0YTwvYT5cbiAqICAgICAgIGZvciBhbiBleGFtcGxlIG9mIHRoZSBkaWZmZXJlbnQgb3JkZXJpbmcgb2YgYnl0ZXMuXG4gKiAgICAgPC9wPlxuICogICA8L2xpPlxuICogPC9vbD5cbiAqL1xuZXhwb3J0IGNvbnN0IFRZUEVTID0ge1xuICBUaW55SW50LFxuICBCaXQsXG4gIFNtYWxsSW50LFxuICBJbnQsXG4gIFNtYWxsRGF0ZVRpbWUsXG4gIFJlYWwsXG4gIE1vbmV5LFxuICBEYXRlVGltZSxcbiAgRmxvYXQsXG4gIERlY2ltYWwsXG4gIE51bWVyaWMsXG4gIFNtYWxsTW9uZXksXG4gIEJpZ0ludCxcbiAgSW1hZ2UsXG4gIFRleHQsXG4gIFVuaXF1ZUlkZW50aWZpZXIsXG4gIE5UZXh0LFxuICBWYXJCaW5hcnksXG4gIFZhckNoYXIsXG4gIEJpbmFyeSxcbiAgQ2hhcixcbiAgTlZhckNoYXIsXG4gIE5DaGFyLFxuICBYbWwsXG4gIFRpbWUsXG4gIERhdGUsXG4gIERhdGVUaW1lMixcbiAgRGF0ZVRpbWVPZmZzZXQsXG4gIFVEVCxcbiAgVFZQLFxuICBWYXJpYW50XG59O1xuXG5leHBvcnQgY29uc3QgdHlwZUJ5TmFtZSA9IFRZUEVTO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxJQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxJQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxjQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxLQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxNQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxTQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxNQUFBLEdBQUFWLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVSxRQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVyxRQUFBLEdBQUFaLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBWSxXQUFBLEdBQUFiLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBYSxPQUFBLEdBQUFkLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBYyxNQUFBLEdBQUFmLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBZSxLQUFBLEdBQUFoQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWdCLGlCQUFBLEdBQUFqQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWlCLEtBQUEsR0FBQWxCLHNCQUFBLENBQUFDLE9BQUE7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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1DLEtBQUssR0FBQXpDLE9BQUEsQ0FBQXlDLEtBQUEsR0FBRztFQUNuQnRDLE9BQU8sRUFBUEEsZ0JBQU87RUFDUEMsR0FBRyxFQUFIQSxZQUFHO0VBQ0hDLFFBQVEsRUFBUkEsaUJBQVE7RUFDUkMsR0FBRyxFQUFIQSxZQUFHO0VBQ0hDLGFBQWEsRUFBYkEsc0JBQWE7RUFDYkMsSUFBSSxFQUFKQSxhQUFJO0VBQ0pDLEtBQUssRUFBTEEsY0FBSztFQUNMQyxRQUFRLEVBQVJBLGlCQUFRO0VBQ1JDLEtBQUssRUFBTEEsY0FBSztFQUNMQyxPQUFPLEVBQVBBLGdCQUFPO0VBQ1BDLE9BQU8sRUFBUEEsZ0JBQU87RUFDUEMsVUFBVSxFQUFWQSxtQkFBVTtFQUNWQyxNQUFNLEVBQU5BLGVBQU07RUFDTkMsS0FBSyxFQUFMQSxjQUFLO0VBQ0xDLElBQUksRUFBSkEsYUFBSTtFQUNKQyxnQkFBZ0IsRUFBaEJBLHlCQUFnQjtFQUNoQkUsS0FBSyxFQUFMQSxjQUFLO0VBQ0xPLFNBQVMsRUFBVEEsa0JBQVM7RUFDVEMsT0FBTyxFQUFQQSxnQkFBTztFQUNQQyxNQUFNLEVBQU5BLGVBQU07RUFDTkMsSUFBSSxFQUFKQSxhQUFJO0VBQ0pDLFFBQVEsRUFBUkEsaUJBQVE7RUFDUkMsS0FBSyxFQUFMQSxjQUFLO0VBQ0xDLEdBQUcsRUFBSEEsWUFBRztFQUNIQyxJQUFJLEVBQUpBLGFBQUk7RUFDSkMsSUFBSSxFQUFKQSxhQUFJO0VBQ0pDLFNBQVMsRUFBVEEsa0JBQVM7RUFDVEMsY0FBYyxFQUFkQSx1QkFBYztFQUNkQyxHQUFHLEVBQUhBLFlBQUc7RUFDSEMsR0FBRyxFQUFIQSxZQUFHO0VBQ0hDLE9BQU8sRUFBUEE7QUFDRixDQUFDO0FBRU0sTUFBTUUsVUFBVSxHQUFBMUMsT0FBQSxDQUFBMEMsVUFBQSxHQUFHRCxLQUFLIiwiaWdub3JlTGlzdCI6W119
428
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbnVsbCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3RpbnlpbnQiLCJfYml0IiwiX3NtYWxsaW50IiwiX2ludCIsIl9zbWFsbGRhdGV0aW1lIiwiX3JlYWwiLCJfbW9uZXkiLCJfZGF0ZXRpbWUiLCJfZmxvYXQiLCJfZGVjaW1hbCIsIl9udW1lcmljIiwiX3NtYWxsbW9uZXkiLCJfYmlnaW50IiwiX2ltYWdlIiwiX3RleHQiLCJfdW5pcXVlaWRlbnRpZmllciIsIl9pbnRuIiwiX250ZXh0IiwiX2JpdG4iLCJfZGVjaW1hbG4iLCJfbnVtZXJpY24iLCJfZmxvYXRuIiwiX21vbmV5biIsIl9kYXRldGltZW4iLCJfdmFyYmluYXJ5IiwiX3ZhcmNoYXIiLCJfYmluYXJ5IiwiX2NoYXIiLCJfbnZhcmNoYXIiLCJfbmNoYXIiLCJfeG1sIiwiX3RpbWUiLCJfZGF0ZSIsIl9kYXRldGltZTIiLCJfZGF0ZXRpbWVvZmZzZXQiLCJfdWR0IiwiX3R2cCIsIl9zcWxWYXJpYW50IiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiVFlQRSIsImV4cG9ydHMiLCJOdWxsIiwiaWQiLCJUaW55SW50IiwiQml0IiwiU21hbGxJbnQiLCJJbnQiLCJTbWFsbERhdGVUaW1lIiwiUmVhbCIsIk1vbmV5IiwiRGF0ZVRpbWUiLCJGbG9hdCIsIkRlY2ltYWwiLCJOdW1lcmljIiwiU21hbGxNb25leSIsIkJpZ0ludCIsIkltYWdlIiwiVGV4dCIsIlVuaXF1ZUlkZW50aWZpZXIiLCJJbnROIiwiTlRleHQiLCJCaXROIiwiRGVjaW1hbE4iLCJOdW1lcmljTiIsIkZsb2F0TiIsIk1vbmV5TiIsIkRhdGVUaW1lTiIsIlZhckJpbmFyeSIsIlZhckNoYXIiLCJCaW5hcnkiLCJDaGFyIiwiTlZhckNoYXIiLCJOQ2hhciIsIlhtbCIsIlRpbWUiLCJEYXRlIiwiRGF0ZVRpbWUyIiwiRGF0ZVRpbWVPZmZzZXQiLCJVRFQiLCJUVlAiLCJWYXJpYW50IiwiVFlQRVMiLCJ0eXBlQnlOYW1lIl0sInNvdXJjZXMiOlsiLi4vc3JjL2RhdGEtdHlwZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTnVsbCBmcm9tICcuL2RhdGEtdHlwZXMvbnVsbCc7XG5pbXBvcnQgVGlueUludCBmcm9tICcuL2RhdGEtdHlwZXMvdGlueWludCc7XG5pbXBvcnQgQml0IGZyb20gJy4vZGF0YS10eXBlcy9iaXQnO1xuaW1wb3J0IFNtYWxsSW50IGZyb20gJy4vZGF0YS10eXBlcy9zbWFsbGludCc7XG5pbXBvcnQgSW50IGZyb20gJy4vZGF0YS10eXBlcy9pbnQnO1xuaW1wb3J0IFNtYWxsRGF0ZVRpbWUgZnJvbSAnLi9kYXRhLXR5cGVzL3NtYWxsZGF0ZXRpbWUnO1xuaW1wb3J0IFJlYWwgZnJvbSAnLi9kYXRhLXR5cGVzL3JlYWwnO1xuaW1wb3J0IE1vbmV5IGZyb20gJy4vZGF0YS10eXBlcy9tb25leSc7XG5pbXBvcnQgRGF0ZVRpbWUgZnJvbSAnLi9kYXRhLXR5cGVzL2RhdGV0aW1lJztcbmltcG9ydCBGbG9hdCBmcm9tICcuL2RhdGEtdHlwZXMvZmxvYXQnO1xuaW1wb3J0IERlY2ltYWwgZnJvbSAnLi9kYXRhLXR5cGVzL2RlY2ltYWwnO1xuaW1wb3J0IE51bWVyaWMgZnJvbSAnLi9kYXRhLXR5cGVzL251bWVyaWMnO1xuaW1wb3J0IFNtYWxsTW9uZXkgZnJvbSAnLi9kYXRhLXR5cGVzL3NtYWxsbW9uZXknO1xuaW1wb3J0IEJpZ0ludCBmcm9tICcuL2RhdGEtdHlwZXMvYmlnaW50JztcbmltcG9ydCBJbWFnZSBmcm9tICcuL2RhdGEtdHlwZXMvaW1hZ2UnO1xuaW1wb3J0IFRleHQgZnJvbSAnLi9kYXRhLXR5cGVzL3RleHQnO1xuaW1wb3J0IFVuaXF1ZUlkZW50aWZpZXIgZnJvbSAnLi9kYXRhLXR5cGVzL3VuaXF1ZWlkZW50aWZpZXInO1xuaW1wb3J0IEludE4gZnJvbSAnLi9kYXRhLXR5cGVzL2ludG4nO1xuaW1wb3J0IE5UZXh0IGZyb20gJy4vZGF0YS10eXBlcy9udGV4dCc7XG5pbXBvcnQgQml0TiBmcm9tICcuL2RhdGEtdHlwZXMvYml0bic7XG5pbXBvcnQgRGVjaW1hbE4gZnJvbSAnLi9kYXRhLXR5cGVzL2RlY2ltYWxuJztcbmltcG9ydCBOdW1lcmljTiBmcm9tICcuL2RhdGEtdHlwZXMvbnVtZXJpY24nO1xuaW1wb3J0IEZsb2F0TiBmcm9tICcuL2RhdGEtdHlwZXMvZmxvYXRuJztcbmltcG9ydCBNb25leU4gZnJvbSAnLi9kYXRhLXR5cGVzL21vbmV5bic7XG5pbXBvcnQgRGF0ZVRpbWVOIGZyb20gJy4vZGF0YS10eXBlcy9kYXRldGltZW4nO1xuaW1wb3J0IFZhckJpbmFyeSBmcm9tICcuL2RhdGEtdHlwZXMvdmFyYmluYXJ5JztcbmltcG9ydCBWYXJDaGFyIGZyb20gJy4vZGF0YS10eXBlcy92YXJjaGFyJztcbmltcG9ydCBCaW5hcnkgZnJvbSAnLi9kYXRhLXR5cGVzL2JpbmFyeSc7XG5pbXBvcnQgQ2hhciBmcm9tICcuL2RhdGEtdHlwZXMvY2hhcic7XG5pbXBvcnQgTlZhckNoYXIgZnJvbSAnLi9kYXRhLXR5cGVzL252YXJjaGFyJztcbmltcG9ydCBOQ2hhciBmcm9tICcuL2RhdGEtdHlwZXMvbmNoYXInO1xuaW1wb3J0IFhtbCBmcm9tICcuL2RhdGEtdHlwZXMveG1sJztcbmltcG9ydCBUaW1lIGZyb20gJy4vZGF0YS10eXBlcy90aW1lJztcbmltcG9ydCBEYXRlIGZyb20gJy4vZGF0YS10eXBlcy9kYXRlJztcbmltcG9ydCBEYXRlVGltZTIgZnJvbSAnLi9kYXRhLXR5cGVzL2RhdGV0aW1lMic7XG5pbXBvcnQgRGF0ZVRpbWVPZmZzZXQgZnJvbSAnLi9kYXRhLXR5cGVzL2RhdGV0aW1lb2Zmc2V0JztcbmltcG9ydCBVRFQgZnJvbSAnLi9kYXRhLXR5cGVzL3VkdCc7XG5pbXBvcnQgVFZQIGZyb20gJy4vZGF0YS10eXBlcy90dnAnO1xuaW1wb3J0IFZhcmlhbnQgZnJvbSAnLi9kYXRhLXR5cGVzL3NxbC12YXJpYW50JztcbmltcG9ydCB7IHR5cGUgQ3J5cHRvTWV0YWRhdGEgfSBmcm9tICcuL2Fsd2F5cy1lbmNyeXB0ZWQvdHlwZXMnO1xuXG5pbXBvcnQgeyB0eXBlIEludGVybmFsQ29ubmVjdGlvbk9wdGlvbnMgfSBmcm9tICcuL2Nvbm5lY3Rpb24nO1xuaW1wb3J0IHsgQ29sbGF0aW9uIH0gZnJvbSAnLi9jb2xsYXRpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFtZXRlciB7XG4gIHR5cGU6IERhdGFUeXBlO1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgdmFsdWU6IHVua25vd247XG5cbiAgb3V0cHV0OiBib29sZWFuO1xuICBsZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHByZWNpc2lvbj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgc2NhbGU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgbnVsbGFibGU/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIGZvcmNlRW5jcnlwdD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIGNyeXB0b01ldGFkYXRhPzogQ3J5cHRvTWV0YWRhdGEgfCB1bmRlZmluZWQ7XG4gIGVuY3J5cHRlZFZhbD86IEJ1ZmZlciB8IHVuZGVmaW5lZDtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFtZXRlckRhdGE8VCA9IGFueT4ge1xuICBsZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHNjYWxlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwcmVjaXNpb24/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgY29sbGF0aW9uPzogQ29sbGF0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIHZhbHVlOiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFUeXBlIHtcbiAgaWQ6IG51bWJlcjtcbiAgdHlwZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgZGVjbGFyYXRpb24ocGFyYW1ldGVyOiBQYXJhbWV0ZXIpOiBzdHJpbmc7XG4gIGdlbmVyYXRlVHlwZUluZm8ocGFyYW1ldGVyOiBQYXJhbWV0ZXJEYXRhLCBvcHRpb25zOiBJbnRlcm5hbENvbm5lY3Rpb25PcHRpb25zKTogQnVmZmVyO1xuICBnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXI6IFBhcmFtZXRlckRhdGEsIG9wdGlvbnM6IEludGVybmFsQ29ubmVjdGlvbk9wdGlvbnMpOiBCdWZmZXI7XG4gIGdlbmVyYXRlUGFyYW1ldGVyRGF0YShwYXJhbWV0ZXI6IFBhcmFtZXRlckRhdGEsIG9wdGlvbnM6IEludGVybmFsQ29ubmVjdGlvbk9wdGlvbnMpOiBHZW5lcmF0b3I8QnVmZmVyLCB2b2lkPjtcbiAgdmFsaWRhdGUodmFsdWU6IGFueSwgY29sbGF0aW9uOiBDb2xsYXRpb24gfCB1bmRlZmluZWQsIG9wdGlvbnM/OiBJbnRlcm5hbENvbm5lY3Rpb25PcHRpb25zKTogYW55OyAvLyBUT0RPOiBSZWZhY3RvciAnYW55JyBhbmQgcmVwbGFjZSB3aXRoIG1vcmUgc3BlY2lmaWMgdHlwZS5cblxuICBoYXNUYWJsZU5hbWU/OiBib29sZWFuO1xuXG4gIHJlc29sdmVMZW5ndGg/OiAocGFyYW1ldGVyOiBQYXJhbWV0ZXIpID0+IG51bWJlcjtcbiAgcmVzb2x2ZVByZWNpc2lvbj86IChwYXJhbWV0ZXI6IFBhcmFtZXRlcikgPT4gbnVtYmVyO1xuICByZXNvbHZlU2NhbGU/OiAocGFyYW1ldGVyOiBQYXJhbWV0ZXIpID0+IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IFRZUEUgPSB7XG4gIFtOdWxsLmlkXTogTnVsbCxcbiAgW1RpbnlJbnQuaWRdOiBUaW55SW50LFxuICBbQml0LmlkXTogQml0LFxuICBbU21hbGxJbnQuaWRdOiBTbWFsbEludCxcbiAgW0ludC5pZF06IEludCxcbiAgW1NtYWxsRGF0ZVRpbWUuaWRdOiBTbWFsbERhdGVUaW1lLFxuICBbUmVhbC5pZF06IFJlYWwsXG4gIFtNb25leS5pZF06IE1vbmV5LFxuICBbRGF0ZVRpbWUuaWRdOiBEYXRlVGltZSxcbiAgW0Zsb2F0LmlkXTogRmxvYXQsXG4gIFtEZWNpbWFsLmlkXTogRGVjaW1hbCxcbiAgW051bWVyaWMuaWRdOiBOdW1lcmljLFxuICBbU21hbGxNb25leS5pZF06IFNtYWxsTW9uZXksXG4gIFtCaWdJbnQuaWRdOiBCaWdJbnQsXG4gIFtJbWFnZS5pZF06IEltYWdlLFxuICBbVGV4dC5pZF06IFRleHQsXG4gIFtVbmlxdWVJZGVudGlmaWVyLmlkXTogVW5pcXVlSWRlbnRpZmllcixcbiAgW0ludE4uaWRdOiBJbnROLFxuICBbTlRleHQuaWRdOiBOVGV4dCxcbiAgW0JpdE4uaWRdOiBCaXROLFxuICBbRGVjaW1hbE4uaWRdOiBEZWNpbWFsTixcbiAgW051bWVyaWNOLmlkXTogTnVtZXJpY04sXG4gIFtGbG9hdE4uaWRdOiBGbG9hdE4sXG4gIFtNb25leU4uaWRdOiBNb25leU4sXG4gIFtEYXRlVGltZU4uaWRdOiBEYXRlVGltZU4sXG4gIFtWYXJCaW5hcnkuaWRdOiBWYXJCaW5hcnksXG4gIFtWYXJDaGFyLmlkXTogVmFyQ2hhcixcbiAgW0JpbmFyeS5pZF06IEJpbmFyeSxcbiAgW0NoYXIuaWRdOiBDaGFyLFxuICBbTlZhckNoYXIuaWRdOiBOVmFyQ2hhcixcbiAgW05DaGFyLmlkXTogTkNoYXIsXG4gIFtYbWwuaWRdOiBYbWwsXG4gIFtUaW1lLmlkXTogVGltZSxcbiAgW0RhdGUuaWRdOiBEYXRlLFxuICBbRGF0ZVRpbWUyLmlkXTogRGF0ZVRpbWUyLFxuICBbRGF0ZVRpbWVPZmZzZXQuaWRdOiBEYXRlVGltZU9mZnNldCxcbiAgW1VEVC5pZF06IFVEVCxcbiAgW1RWUC5pZF06IFRWUCxcbiAgW1ZhcmlhbnQuaWRdOiBWYXJpYW50LFxufTtcblxuLyoqXG4gKiA8dGFibGU+XG4gKiA8dGhlYWQ+XG4gKiAgIDx0cj5cbiAqICAgICA8dGg+VHlwZTwvdGg+XG4gKiAgICAgPHRoPkNvbnN0YW50PC90aD5cbiAqICAgICA8dGg+SmF2YVNjcmlwdDwvdGg+XG4gKiAgICAgPHRoPlJlc3VsdCBzZXQ8L3RoPlxuICogICAgIDx0aD5QYXJhbWV0ZXI8L3RoPlxuICogICA8L3RyPlxuICogPC90aGVhZD5cbiAqXG4gKiA8dGJvZHk+XG4gKiAgIDx0ciBjbGFzcz1cImdyb3VwLWhlYWRpbmdcIj5cbiAqICAgICA8dGggY29sc3Bhbj1cIjVcIj5FeGFjdCBudW1lcmljczwvdGg+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+Yml0PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuQml0XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+Ym9vbGVhbjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnRpbnlpbnQ8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5UaW55SW50XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+bnVtYmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+c21hbGxpbnQ8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5TbWFsbEludF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPm51bWJlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPmludDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkludF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPm51bWJlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPmJpZ2ludDwvY29kZT48c3VwPjE8L3N1cD48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkJpZ0ludF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPnN0cmluZzwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPm51bWVyaWM8L2NvZGU+PHN1cD4yPC9zdXA+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5OdW1lcmljXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+bnVtYmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+ZGVjaW1hbDwvY29kZT48c3VwPjI8L3N1cD48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkRlY2ltYWxdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5udW1iZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5zbWFsbG1vbmV5PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuU21hbGxNb25leV1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPm51bWJlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPm1vbmV5PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuTW9uZXldXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5udW1iZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqIDwvdGJvZHk+XG4gKlxuICogPHRib2R5PlxuICogICA8dHIgY2xhc3M9XCJncm91cC1oZWFkaW5nXCI+XG4gKiAgICAgPHRoIGNvbHNwYW49XCI1XCI+QXBwcm94aW1hdGUgbnVtZXJpY3M8L3RoPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPmZsb2F0PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuRmxvYXRdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5udW1iZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5yZWFsPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuUmVhbF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPm51bWJlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogPC90Ym9keT5cbiAqXG4gKiA8dGJvZHk+XG4gKiAgIDx0ciBjbGFzcz1cImdyb3VwLWhlYWRpbmdcIj5cbiAqICAgICA8dGggY29sc3Bhbj1cIjVcIj5EYXRlIGFuZCBUaW1lPC90aD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5zbWFsbGRhdGV0aW1lPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuU21hbGxEYXRlVGltZV1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPkRhdGU8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5kYXRldGltZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkRhdGVUaW1lXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+RGF0ZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPmRhdGV0aW1lMjwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkRhdGVUaW1lMl1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPkRhdGU8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5kYXRldGltZW9mZnNldDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkRhdGVUaW1lT2Zmc2V0XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+RGF0ZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnRpbWU8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5UaW1lXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+RGF0ZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPmRhdGU8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5EYXRlXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+RGF0ZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogPC90Ym9keT5cbiAqXG4gKiA8dGJvZHk+XG4gKiAgIDx0ciBjbGFzcz1cImdyb3VwLWhlYWRpbmdcIj5cbiAqICAgICA8dGggY29sc3Bhbj1cIjVcIj5DaGFyYWN0ZXIgU3RyaW5nczwvdGg+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+Y2hhcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkNoYXJdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5zdHJpbmc8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT52YXJjaGFyPC9jb2RlPjxzdXA+Mzwvc3VwPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuVmFyQ2hhcl1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPnN0cmluZzwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnRleHQ8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5UZXh0XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+c3RyaW5nPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiA8L3Rib2R5PlxuICpcbiAqIDx0Ym9keT5cbiAqICAgPHRyIGNsYXNzPVwiZ3JvdXAtaGVhZGluZ1wiPlxuICogICAgIDx0aCBjb2xzcGFuPVwiNVwiPlVuaWNvZGUgU3RyaW5nczwvdGg+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+bmNoYXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5OQ2hhcl1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPnN0cmluZzwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPm52YXJjaGFyPC9jb2RlPjxzdXA+Mzwvc3VwPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuTlZhckNoYXJdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5zdHJpbmc8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5udGV4dDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLk5UZXh0XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+c3RyaW5nPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPi08L3RkPlxuICogICA8L3RyPlxuICogPC90Ym9keT5cbiAqXG4gKiA8dGJvZHk+XG4gKiAgIDx0ciBjbGFzcz1cImdyb3VwLWhlYWRpbmdcIj5cbiAqICAgICA8dGggY29sc3Bhbj1cIjVcIj5CaW5hcnkgU3RyaW5nczxzdXA+NDwvc3VwPjwvdGg+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+YmluYXJ5PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuQmluYXJ5XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+QnVmZmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+dmFyYmluYXJ5PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuVmFyQmluYXJ5XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+QnVmZmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+aW1hZ2U8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5JbWFnZV1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPkJ1ZmZlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogPC90Ym9keT5cbiAqXG4gKiA8dGJvZHk+XG4gKiAgIDx0ciBjbGFzcz1cImdyb3VwLWhlYWRpbmdcIj5cbiAqICAgICA8dGggY29sc3Bhbj1cIjVcIj5PdGhlciBEYXRhIFR5cGVzPC90aD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5UVlA8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5UVlBdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5PYmplY3Q8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+LTwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+VURUPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuVURUXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+QnVmZmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPi08L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnVuaXF1ZWlkZW50aWZpZXI8L2NvZGU+PHN1cD40PC9zdXA+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5VbmlxdWVJZGVudGlmaWVyXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+c3RyaW5nPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+dmFyaWFudDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlZhcmlhbnRdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5hbnk8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+LTwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+eG1sPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuWG1sXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+c3RyaW5nPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPi08L3RkPlxuICogICA8L3RyPlxuICogPC90Ym9keT5cbiAqIDwvdGFibGU+XG4gKlxuICogPG9sPlxuICogICA8bGk+XG4gKiAgICAgPGg0PkJpZ0ludDwvaDQ+XG4gKiAgICAgPHA+XG4gKiAgICAgICBWYWx1ZXMgYXJlIHJldHVybmVkIGFzIGEgc3RyaW5nLiBUaGlzIGlzIGJlY2F1c2UgdmFsdWVzIGNhbiBleGNlZWQgNTMgYml0cyBvZiBzaWduaWZpY2FudCBkYXRhLCB3aGljaCBpcyBncmVhdGVyIHRoYW4gYVxuICogICAgICAgSmF2YXNjcmlwdCA8Y29kZT5udW1iZXI8L2NvZGU+IHR5cGUgY2FuIHJlcHJlc2VudCBhcyBhbiBpbnRlZ2VyLlxuICogICAgIDwvcD5cbiAqICAgPC9saT5cbiAqICAgPGxpPlxuICogICAgIDxoND5OdW1lcmljYWwsIERlY2ltYWw8L2g0PlxuICogICAgIDxwPlxuICogICAgICAgRm9yIGlucHV0IHBhcmFtZXRlcnMsIGRlZmF1bHQgcHJlY2lzaW9uIGlzIDE4IGFuZCBkZWZhdWx0IHNjYWxlIGlzIDAuIE1heGltdW0gc3VwcG9ydGVkIHByZWNpc2lvbiBpcyAxOS5cbiAqICAgICA8L3A+XG4gKiAgIDwvbGk+XG4gKiAgIDxsaT5cbiAqICAgICA8aDQ+VmFyQ2hhciwgTlZhckNoYXI8L2g0PlxuICogICAgIDxwPlxuICogICAgICAgPGNvZGU+dmFyY2hhcihtYXgpPC9jb2RlPiBhbmQgPGNvZGU+bnZhcmNoYXIobWF4KTwvY29kZT4gYXJlIGFsc28gc3VwcG9ydGVkLlxuICogICAgIDwvcD5cbiAqICAgPC9saT5cbiAqICAgPGxpPlxuICogICAgIDxoND5VbmlxdWVJZGVudGlmaWVyPC9oND5cbiAqICAgICA8cD5cbiAqICAgICAgIFZhbHVlcyBhcmUgcmV0dXJuZWQgYXMgYSAxNiBieXRlIGhleGFkZWNpbWFsIHN0cmluZy5cbiAqICAgICA8L3A+XG4gKiAgICAgPHA+XG4gKiAgICAgICBOb3RlIHRoYXQgdGhlIG9yZGVyIG9mIGJ5dGVzIGlzIG5vdCB0aGUgc2FtZSBhcyB0aGUgY2hhcmFjdGVyIHJlcHJlc2VudGF0aW9uLiBTZWVcbiAqICAgICAgIDxhIGhyZWY9XCJodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvbXMxOTAyMTUuYXNweFwiPlVzaW5nIHVuaXF1ZWlkZW50aWZpZXIgRGF0YTwvYT5cbiAqICAgICAgIGZvciBhbiBleGFtcGxlIG9mIHRoZSBkaWZmZXJlbnQgb3JkZXJpbmcgb2YgYnl0ZXMuXG4gKiAgICAgPC9wPlxuICogICA8L2xpPlxuICogPC9vbD5cbiAqL1xuZXhwb3J0IGNvbnN0IFRZUEVTID0ge1xuICBUaW55SW50LFxuICBCaXQsXG4gIFNtYWxsSW50LFxuICBJbnQsXG4gIFNtYWxsRGF0ZVRpbWUsXG4gIFJlYWwsXG4gIE1vbmV5LFxuICBEYXRlVGltZSxcbiAgRmxvYXQsXG4gIERlY2ltYWwsXG4gIE51bWVyaWMsXG4gIFNtYWxsTW9uZXksXG4gIEJpZ0ludCxcbiAgSW1hZ2UsXG4gIFRleHQsXG4gIFVuaXF1ZUlkZW50aWZpZXIsXG4gIE5UZXh0LFxuICBWYXJCaW5hcnksXG4gIFZhckNoYXIsXG4gIEJpbmFyeSxcbiAgQ2hhcixcbiAgTlZhckNoYXIsXG4gIE5DaGFyLFxuICBYbWwsXG4gIFRpbWUsXG4gIERhdGUsXG4gIERhdGVUaW1lMixcbiAgRGF0ZVRpbWVPZmZzZXQsXG4gIFVEVCxcbiAgVFZQLFxuICBWYXJpYW50XG59O1xuXG5leHBvcnQgY29uc3QgdHlwZUJ5TmFtZSA9IFRZUEVTO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxJQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxJQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxjQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxLQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxNQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxTQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxNQUFBLEdBQUFWLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVSxRQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVyxRQUFBLEdBQUFaLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBWSxXQUFBLEdBQUFiLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBYSxPQUFBLEdBQUFkLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBYyxNQUFBLEdBQUFmLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBZSxLQUFBLEdBQUFoQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWdCLGlCQUFBLEdBQUFqQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWlCLEtBQUEsR0FBQWxCLHNCQUFBLENBQUFDLE9BQUE7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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1DLEtBQUssR0FBQXpDLE9BQUEsQ0FBQXlDLEtBQUEsR0FBRztFQUNuQnRDLE9BQU8sRUFBUEEsZ0JBQU87RUFDUEMsR0FBRyxFQUFIQSxZQUFHO0VBQ0hDLFFBQVEsRUFBUkEsaUJBQVE7RUFDUkMsR0FBRyxFQUFIQSxZQUFHO0VBQ0hDLGFBQWEsRUFBYkEsc0JBQWE7RUFDYkMsSUFBSSxFQUFKQSxhQUFJO0VBQ0pDLEtBQUssRUFBTEEsY0FBSztFQUNMQyxRQUFRLEVBQVJBLGlCQUFRO0VBQ1JDLEtBQUssRUFBTEEsY0FBSztFQUNMQyxPQUFPLEVBQVBBLGdCQUFPO0VBQ1BDLE9BQU8sRUFBUEEsZ0JBQU87RUFDUEMsVUFBVSxFQUFWQSxtQkFBVTtFQUNWQyxNQUFNLEVBQU5BLGVBQU07RUFDTkMsS0FBSyxFQUFMQSxjQUFLO0VBQ0xDLElBQUksRUFBSkEsYUFBSTtFQUNKQyxnQkFBZ0IsRUFBaEJBLHlCQUFnQjtFQUNoQkUsS0FBSyxFQUFMQSxjQUFLO0VBQ0xPLFNBQVMsRUFBVEEsa0JBQVM7RUFDVEMsT0FBTyxFQUFQQSxnQkFBTztFQUNQQyxNQUFNLEVBQU5BLGVBQU07RUFDTkMsSUFBSSxFQUFKQSxhQUFJO0VBQ0pDLFFBQVEsRUFBUkEsaUJBQVE7RUFDUkMsS0FBSyxFQUFMQSxjQUFLO0VBQ0xDLEdBQUcsRUFBSEEsWUFBRztFQUNIQyxJQUFJLEVBQUpBLGFBQUk7RUFDSkMsSUFBSSxFQUFKQSxhQUFJO0VBQ0pDLFNBQVMsRUFBVEEsa0JBQVM7RUFDVEMsY0FBYyxFQUFkQSx1QkFBYztFQUNkQyxHQUFHLEVBQUhBLFlBQUc7RUFDSEMsR0FBRyxFQUFIQSxZQUFHO0VBQ0hDLE9BQU8sRUFBUEE7QUFDRixDQUFDO0FBRU0sTUFBTUUsVUFBVSxHQUFBMUMsT0FBQSxDQUFBMEMsVUFBQSxHQUFHRCxLQUFLIiwiaWdub3JlTGlzdCI6W119
@@ -1 +1 @@
1
- {"version":3,"file":"data-type.js","names":["_null","_interopRequireDefault","require","_tinyint","_bit","_smallint","_int","_smalldatetime","_real","_money","_datetime","_float","_decimal","_numeric","_smallmoney","_bigint","_image","_text","_uniqueidentifier","_intn","_ntext","_bitn","_decimaln","_numericn","_floatn","_moneyn","_datetimen","_varbinary","_varchar","_binary","_char","_nvarchar","_nchar","_xml","_time","_date","_datetime2","_datetimeoffset","_udt","_tvp","_sqlVariant","e","__esModule","default","TYPE","exports","Null","id","TinyInt","Bit","SmallInt","Int","SmallDateTime","Real","Money","DateTime","Float","Decimal","Numeric","SmallMoney","BigInt","Image","Text","UniqueIdentifier","IntN","NText","BitN","DecimalN","NumericN","FloatN","MoneyN","DateTimeN","VarBinary","VarChar","Binary","Char","NVarChar","NChar","Xml","Time","Date","DateTime2","DateTimeOffset","UDT","TVP","Variant","TYPES","typeByName"],"sources":["../src/data-type.ts"],"sourcesContent":["import Null from './data-types/null';\nimport TinyInt from './data-types/tinyint';\nimport Bit from './data-types/bit';\nimport SmallInt from './data-types/smallint';\nimport Int from './data-types/int';\nimport SmallDateTime from './data-types/smalldatetime';\nimport Real from './data-types/real';\nimport Money from './data-types/money';\nimport DateTime from './data-types/datetime';\nimport Float from './data-types/float';\nimport Decimal from './data-types/decimal';\nimport Numeric from './data-types/numeric';\nimport SmallMoney from './data-types/smallmoney';\nimport BigInt from './data-types/bigint';\nimport Image from './data-types/image';\nimport Text from './data-types/text';\nimport UniqueIdentifier from './data-types/uniqueidentifier';\nimport IntN from './data-types/intn';\nimport NText from './data-types/ntext';\nimport BitN from './data-types/bitn';\nimport DecimalN from './data-types/decimaln';\nimport NumericN from './data-types/numericn';\nimport FloatN from './data-types/floatn';\nimport MoneyN from './data-types/moneyn';\nimport DateTimeN from './data-types/datetimen';\nimport VarBinary from './data-types/varbinary';\nimport VarChar from './data-types/varchar';\nimport Binary from './data-types/binary';\nimport Char from './data-types/char';\nimport NVarChar from './data-types/nvarchar';\nimport NChar from './data-types/nchar';\nimport Xml from './data-types/xml';\nimport Time from './data-types/time';\nimport Date from './data-types/date';\nimport DateTime2 from './data-types/datetime2';\nimport DateTimeOffset from './data-types/datetimeoffset';\nimport UDT from './data-types/udt';\nimport TVP from './data-types/tvp';\nimport Variant from './data-types/sql-variant';\nimport { type CryptoMetadata } from './always-encrypted/types';\n\nimport { type InternalConnectionOptions } from './connection';\nimport { Collation } from './collation';\n\nexport interface Parameter {\n type: DataType;\n name: string;\n\n value: unknown;\n\n output: boolean;\n length?: number | undefined;\n precision?: number | undefined;\n scale?: number | undefined;\n\n nullable?: boolean | undefined;\n\n forceEncrypt?: boolean | undefined;\n cryptoMetadata?: CryptoMetadata | undefined;\n encryptedVal?: Buffer | undefined;\n}\n\n\nexport interface ParameterData<T = any> {\n length?: number | undefined;\n scale?: number | undefined;\n precision?: number | undefined;\n\n collation?: Collation | undefined;\n\n value: T;\n}\n\nexport interface DataType {\n id: number;\n type: string;\n name: string;\n\n declaration(parameter: Parameter): string;\n generateTypeInfo(parameter: ParameterData, options: InternalConnectionOptions): Buffer;\n generateParameterLength(parameter: ParameterData, options: InternalConnectionOptions): Buffer;\n generateParameterData(parameter: ParameterData, options: InternalConnectionOptions): Generator<Buffer, void>;\n validate(value: any, collation: Collation | undefined, options?: InternalConnectionOptions): any; // TODO: Refactor 'any' and replace with more specific type.\n\n hasTableName?: boolean;\n\n resolveLength?: (parameter: Parameter) => number;\n resolvePrecision?: (parameter: Parameter) => number;\n resolveScale?: (parameter: Parameter) => number;\n}\n\nexport const TYPE = {\n [Null.id]: Null,\n [TinyInt.id]: TinyInt,\n [Bit.id]: Bit,\n [SmallInt.id]: SmallInt,\n [Int.id]: Int,\n [SmallDateTime.id]: SmallDateTime,\n [Real.id]: Real,\n [Money.id]: Money,\n [DateTime.id]: DateTime,\n [Float.id]: Float,\n [Decimal.id]: Decimal,\n [Numeric.id]: Numeric,\n [SmallMoney.id]: SmallMoney,\n [BigInt.id]: BigInt,\n [Image.id]: Image,\n [Text.id]: Text,\n [UniqueIdentifier.id]: UniqueIdentifier,\n [IntN.id]: IntN,\n [NText.id]: NText,\n [BitN.id]: BitN,\n [DecimalN.id]: DecimalN,\n [NumericN.id]: NumericN,\n [FloatN.id]: FloatN,\n [MoneyN.id]: MoneyN,\n [DateTimeN.id]: DateTimeN,\n [VarBinary.id]: VarBinary,\n [VarChar.id]: VarChar,\n [Binary.id]: Binary,\n [Char.id]: Char,\n [NVarChar.id]: NVarChar,\n [NChar.id]: NChar,\n [Xml.id]: Xml,\n [Time.id]: Time,\n [Date.id]: Date,\n [DateTime2.id]: DateTime2,\n [DateTimeOffset.id]: DateTimeOffset,\n [UDT.id]: UDT,\n [TVP.id]: TVP,\n [Variant.id]: Variant,\n};\n\n/**\n * <table>\n * <thead>\n * <tr>\n * <th>Type</th>\n * <th>Constant</th>\n * <th>JavaScript</th>\n * <th>Result set</th>\n * <th>Parameter</th>\n * </tr>\n * </thead>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"5\">Exact numerics</th>\n * </tr>\n * <tr>\n * <td><code>bit</code></td>\n * <td><code>[[TYPES.Bit]]</code></td>\n * <td><code>boolean</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>tinyint</code></td>\n * <td><code>[[TYPES.TinyInt]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>smallint</code></td>\n * <td><code>[[TYPES.SmallInt]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>int</code></td>\n * <td><code>[[TYPES.Int]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>bigint</code><sup>1</sup></td>\n * <td><code>[[TYPES.BigInt]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>numeric</code><sup>2</sup></td>\n * <td><code>[[TYPES.Numeric]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>decimal</code><sup>2</sup></td>\n * <td><code>[[TYPES.Decimal]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>smallmoney</code></td>\n * <td><code>[[TYPES.SmallMoney]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>money</code></td>\n * <td><code>[[TYPES.Money]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"5\">Approximate numerics</th>\n * </tr>\n * <tr>\n * <td><code>float</code></td>\n * <td><code>[[TYPES.Float]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>real</code></td>\n * <td><code>[[TYPES.Real]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"4\">Date and Time</th>\n * </tr>\n * <tr>\n * <td><code>smalldatetime</code></td>\n * <td><code>[[TYPES.SmallDateTime]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>datetime</code></td>\n * <td><code>[[TYPES.DateTime]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>datetime2</code></td>\n * <td><code>[[TYPES.DateTime2]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>datetimeoffset</code></td>\n * <td><code>[[TYPES.DateTimeOffset]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>time</code></td>\n * <td><code>[[TYPES.Time]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>date</code></td>\n * <td><code>[[TYPES.Date]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"4\">Character Strings</th>\n * </tr>\n * <tr>\n * <td><code>char</code></td>\n * <td><code>[[TYPES.Char]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>varchar</code><sup>3</sup></td>\n * <td><code>[[TYPES.VarChar]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>text</code></td>\n * <td><code>[[TYPES.Text]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"4\">Unicode Strings</th>\n * </tr>\n * <tr>\n * <td><code>nchar</code></td>\n * <td><code>[[TYPES.NChar]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>nvarchar</code><sup>3</sup></td>\n * <td><code>[[TYPES.NVarChar]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>ntext</code></td>\n * <td><code>[[TYPES.NText]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>-</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"5\">Binary Strings<sup>4</sup></th>\n * </tr>\n * <tr>\n * <td><code>binary</code></td>\n * <td><code>[[TYPES.Binary]]</code></td>\n * <td><code>Buffer</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>varbinary</code></td>\n * <td><code>[[TYPES.VarBinary]]</code></td>\n * <td><code>Buffer</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>image</code></td>\n * <td><code>[[TYPES.Image]]</code></td>\n * <td><code>Buffer</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"5\">Other Data Types</th>\n * </tr>\n * <tr>\n * <td><code>TVP</code></td>\n * <td><code>[[TYPES.TVP]]</code></td>\n * <td><code>Object</code></td>\n * <td>-</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>UDT</code></td>\n * <td><code>[[TYPES.UDT]]</code></td>\n * <td><code>Buffer</code></td>\n * <td>✓</td>\n * <td>-</td>\n * </tr>\n * <tr>\n * <td><code>uniqueidentifier</code><sup>4</sup></td>\n * <td><code>[[TYPES.UniqueIdentifier]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>variant</code></td>\n * <td><code>[[TYPES.Variant]]</code></td>\n * <td><code>any</code></td>\n * <td>✓</td>\n * <td>-</td>\n * </tr>\n * <tr>\n * <td><code>xml</code></td>\n * <td><code>[[TYPES.Xml]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>-</td>\n * </tr>\n * </tbody>\n * </table>\n *\n * <ol>\n * <li>\n * <h4>BigInt</h4>\n * <p>\n * Values are returned as a string. This is because values can exceed 53 bits of significant data, which is greater than a\n * Javascript <code>number</code> type can represent as an integer.\n * </p>\n * </li>\n * <li>\n * <h4>Numerical, Decimal</h4>\n * <p>\n * For input parameters, default precision is 18 and default scale is 0. Maximum supported precision is 19.\n * </p>\n * </li>\n * <li>\n * <h4>VarChar, NVarChar</h4>\n * <p>\n * <code>varchar(max)</code> and <code>nvarchar(max)</code> are also supported.\n * </p>\n * </li>\n * <li>\n * <h4>UniqueIdentifier</h4>\n * <p>\n * Values are returned as a 16 byte hexadecimal string.\n * </p>\n * <p>\n * Note that the order of bytes is not the same as the character representation. See\n * <a href=\"http://msdn.microsoft.com/en-us/library/ms190215.aspx\">Using uniqueidentifier Data</a>\n * for an example of the different ordering of bytes.\n * </p>\n * </li>\n * </ol>\n */\nexport const TYPES = {\n TinyInt,\n Bit,\n SmallInt,\n Int,\n SmallDateTime,\n Real,\n Money,\n DateTime,\n Float,\n Decimal,\n Numeric,\n SmallMoney,\n BigInt,\n Image,\n Text,\n UniqueIdentifier,\n NText,\n VarBinary,\n VarChar,\n Binary,\n Char,\n NVarChar,\n NChar,\n Xml,\n Time,\n Date,\n DateTime2,\n DateTimeOffset,\n UDT,\n TVP,\n Variant\n};\n\nexport const typeByName = TYPES;\n"],"mappings":"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,aAAI,CAACjB,EAAE,GAAGiB,aAAI;EACf,CAACC,cAAK,CAAClB,EAAE,GAAGkB,cAAK;EACjB,CAACC,aAAI,CAACnB,EAAE,GAAGmB,aAAI;EACf,CAACC,iBAAQ,CAACpB,EAAE,GAAGoB,iBAAQ;EACvB,CAACC,iBAAQ,CAACrB,EAAE,GAAGqB,iBAAQ;EACvB,CAACC,eAAM,CAACtB,EAAE,GAAGsB,eAAM;EACnB,CAACC,eAAM,CAACvB,EAAE,GAAGuB,eAAM;EACnB,CAACC,kBAAS,CAACxB,EAAE,GAAGwB,kBAAS;EACzB,CAACC,kBAAS,CAACzB,EAAE,GAAGyB,kBAAS;EACzB,CAACC,gBAAO,CAAC1B,EAAE,GAAG0B,gBAAO;EACrB,CAACC,eAAM,CAAC3B,EAAE,GAAG2B,eAAM;EACnB,CAACC,aAAI,CAAC5B,EAAE,GAAG4B,aAAI;EACf,CAACC,iBAAQ,CAAC7B,EAAE,GAAG6B,iBAAQ;EACvB,CAACC,cAAK,CAAC9B,EAAE,GAAG8B,cAAK;EACjB,CAACC,YAAG,CAAC/B,EAAE,GAAG+B,YAAG;EACb,CAACC,aAAI,CAAChC,EAAE,GAAGgC,aAAI;EACf,CAACC,aAAI,CAACjC,EAAE,GAAGiC,aAAI;EACf,CAACC,kBAAS,CAAClC,EAAE,GAAGkC,kBAAS;EACzB,CAACC,uBAAc,CAACnC,EAAE,GAAGmC,uBAAc;EACnC,CAACC,YAAG,CAACpC,EAAE,GAAGoC,YAAG;EACb,CAACC,YAAG,CAACrC,EAAE,GAAGqC,YAAG;EACb,CAACC,mBAAO,CAACtC,EAAE,GAAGsC;AAChB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,KAAK,GAAAzC,OAAA,CAAAyC,KAAA,GAAG;EACnBtC,OAAO,EAAPA,gBAAO;EACPC,GAAG,EAAHA,YAAG;EACHC,QAAQ,EAARA,iBAAQ;EACRC,GAAG,EAAHA,YAAG;EACHC,aAAa,EAAbA,sBAAa;EACbC,IAAI,EAAJA,aAAI;EACJC,KAAK,EAALA,cAAK;EACLC,QAAQ,EAARA,iBAAQ;EACRC,KAAK,EAALA,cAAK;EACLC,OAAO,EAAPA,gBAAO;EACPC,OAAO,EAAPA,gBAAO;EACPC,UAAU,EAAVA,mBAAU;EACVC,MAAM,EAANA,eAAM;EACNC,KAAK,EAALA,cAAK;EACLC,IAAI,EAAJA,aAAI;EACJC,gBAAgB,EAAhBA,yBAAgB;EAChBE,KAAK,EAALA,cAAK;EACLO,SAAS,EAATA,kBAAS;EACTC,OAAO,EAAPA,gBAAO;EACPC,MAAM,EAANA,eAAM;EACNC,IAAI,EAAJA,aAAI;EACJC,QAAQ,EAARA,iBAAQ;EACRC,KAAK,EAALA,cAAK;EACLC,GAAG,EAAHA,YAAG;EACHC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,SAAS,EAATA,kBAAS;EACTC,cAAc,EAAdA,uBAAc;EACdC,GAAG,EAAHA,YAAG;EACHC,GAAG,EAAHA,YAAG;EACHC,OAAO,EAAPA;AACF,CAAC;AAEM,MAAME,UAAU,GAAA1C,OAAA,CAAA0C,UAAA,GAAGD,KAAK","ignoreList":[]}
1
+ {"version":3,"file":"data-type.js","names":["_null","_interopRequireDefault","require","_tinyint","_bit","_smallint","_int","_smalldatetime","_real","_money","_datetime","_float","_decimal","_numeric","_smallmoney","_bigint","_image","_text","_uniqueidentifier","_intn","_ntext","_bitn","_decimaln","_numericn","_floatn","_moneyn","_datetimen","_varbinary","_varchar","_binary","_char","_nvarchar","_nchar","_xml","_time","_date","_datetime2","_datetimeoffset","_udt","_tvp","_sqlVariant","e","__esModule","default","TYPE","exports","Null","id","TinyInt","Bit","SmallInt","Int","SmallDateTime","Real","Money","DateTime","Float","Decimal","Numeric","SmallMoney","BigInt","Image","Text","UniqueIdentifier","IntN","NText","BitN","DecimalN","NumericN","FloatN","MoneyN","DateTimeN","VarBinary","VarChar","Binary","Char","NVarChar","NChar","Xml","Time","Date","DateTime2","DateTimeOffset","UDT","TVP","Variant","TYPES","typeByName"],"sources":["../src/data-type.ts"],"sourcesContent":["import Null from './data-types/null';\nimport TinyInt from './data-types/tinyint';\nimport Bit from './data-types/bit';\nimport SmallInt from './data-types/smallint';\nimport Int from './data-types/int';\nimport SmallDateTime from './data-types/smalldatetime';\nimport Real from './data-types/real';\nimport Money from './data-types/money';\nimport DateTime from './data-types/datetime';\nimport Float from './data-types/float';\nimport Decimal from './data-types/decimal';\nimport Numeric from './data-types/numeric';\nimport SmallMoney from './data-types/smallmoney';\nimport BigInt from './data-types/bigint';\nimport Image from './data-types/image';\nimport Text from './data-types/text';\nimport UniqueIdentifier from './data-types/uniqueidentifier';\nimport IntN from './data-types/intn';\nimport NText from './data-types/ntext';\nimport BitN from './data-types/bitn';\nimport DecimalN from './data-types/decimaln';\nimport NumericN from './data-types/numericn';\nimport FloatN from './data-types/floatn';\nimport MoneyN from './data-types/moneyn';\nimport DateTimeN from './data-types/datetimen';\nimport VarBinary from './data-types/varbinary';\nimport VarChar from './data-types/varchar';\nimport Binary from './data-types/binary';\nimport Char from './data-types/char';\nimport NVarChar from './data-types/nvarchar';\nimport NChar from './data-types/nchar';\nimport Xml from './data-types/xml';\nimport Time from './data-types/time';\nimport Date from './data-types/date';\nimport DateTime2 from './data-types/datetime2';\nimport DateTimeOffset from './data-types/datetimeoffset';\nimport UDT from './data-types/udt';\nimport TVP from './data-types/tvp';\nimport Variant from './data-types/sql-variant';\nimport { type CryptoMetadata } from './always-encrypted/types';\n\nimport { type InternalConnectionOptions } from './connection';\nimport { Collation } from './collation';\n\nexport interface Parameter {\n type: DataType;\n name: string;\n\n value: unknown;\n\n output: boolean;\n length?: number | undefined;\n precision?: number | undefined;\n scale?: number | undefined;\n\n nullable?: boolean | undefined;\n\n forceEncrypt?: boolean | undefined;\n cryptoMetadata?: CryptoMetadata | undefined;\n encryptedVal?: Buffer | undefined;\n}\n\n\nexport interface ParameterData<T = any> {\n length?: number | undefined;\n scale?: number | undefined;\n precision?: number | undefined;\n\n collation?: Collation | undefined;\n\n value: T;\n}\n\nexport interface DataType {\n id: number;\n type: string;\n name: string;\n\n declaration(parameter: Parameter): string;\n generateTypeInfo(parameter: ParameterData, options: InternalConnectionOptions): Buffer;\n generateParameterLength(parameter: ParameterData, options: InternalConnectionOptions): Buffer;\n generateParameterData(parameter: ParameterData, options: InternalConnectionOptions): Generator<Buffer, void>;\n validate(value: any, collation: Collation | undefined, options?: InternalConnectionOptions): any; // TODO: Refactor 'any' and replace with more specific type.\n\n hasTableName?: boolean;\n\n resolveLength?: (parameter: Parameter) => number;\n resolvePrecision?: (parameter: Parameter) => number;\n resolveScale?: (parameter: Parameter) => number;\n}\n\nexport const TYPE = {\n [Null.id]: Null,\n [TinyInt.id]: TinyInt,\n [Bit.id]: Bit,\n [SmallInt.id]: SmallInt,\n [Int.id]: Int,\n [SmallDateTime.id]: SmallDateTime,\n [Real.id]: Real,\n [Money.id]: Money,\n [DateTime.id]: DateTime,\n [Float.id]: Float,\n [Decimal.id]: Decimal,\n [Numeric.id]: Numeric,\n [SmallMoney.id]: SmallMoney,\n [BigInt.id]: BigInt,\n [Image.id]: Image,\n [Text.id]: Text,\n [UniqueIdentifier.id]: UniqueIdentifier,\n [IntN.id]: IntN,\n [NText.id]: NText,\n [BitN.id]: BitN,\n [DecimalN.id]: DecimalN,\n [NumericN.id]: NumericN,\n [FloatN.id]: FloatN,\n [MoneyN.id]: MoneyN,\n [DateTimeN.id]: DateTimeN,\n [VarBinary.id]: VarBinary,\n [VarChar.id]: VarChar,\n [Binary.id]: Binary,\n [Char.id]: Char,\n [NVarChar.id]: NVarChar,\n [NChar.id]: NChar,\n [Xml.id]: Xml,\n [Time.id]: Time,\n [Date.id]: Date,\n [DateTime2.id]: DateTime2,\n [DateTimeOffset.id]: DateTimeOffset,\n [UDT.id]: UDT,\n [TVP.id]: TVP,\n [Variant.id]: Variant,\n};\n\n/**\n * <table>\n * <thead>\n * <tr>\n * <th>Type</th>\n * <th>Constant</th>\n * <th>JavaScript</th>\n * <th>Result set</th>\n * <th>Parameter</th>\n * </tr>\n * </thead>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"5\">Exact numerics</th>\n * </tr>\n * <tr>\n * <td><code>bit</code></td>\n * <td><code>[[TYPES.Bit]]</code></td>\n * <td><code>boolean</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>tinyint</code></td>\n * <td><code>[[TYPES.TinyInt]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>smallint</code></td>\n * <td><code>[[TYPES.SmallInt]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>int</code></td>\n * <td><code>[[TYPES.Int]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>bigint</code><sup>1</sup></td>\n * <td><code>[[TYPES.BigInt]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>numeric</code><sup>2</sup></td>\n * <td><code>[[TYPES.Numeric]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>decimal</code><sup>2</sup></td>\n * <td><code>[[TYPES.Decimal]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>smallmoney</code></td>\n * <td><code>[[TYPES.SmallMoney]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>money</code></td>\n * <td><code>[[TYPES.Money]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"5\">Approximate numerics</th>\n * </tr>\n * <tr>\n * <td><code>float</code></td>\n * <td><code>[[TYPES.Float]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>real</code></td>\n * <td><code>[[TYPES.Real]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"5\">Date and Time</th>\n * </tr>\n * <tr>\n * <td><code>smalldatetime</code></td>\n * <td><code>[[TYPES.SmallDateTime]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>datetime</code></td>\n * <td><code>[[TYPES.DateTime]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>datetime2</code></td>\n * <td><code>[[TYPES.DateTime2]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>datetimeoffset</code></td>\n * <td><code>[[TYPES.DateTimeOffset]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>time</code></td>\n * <td><code>[[TYPES.Time]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>date</code></td>\n * <td><code>[[TYPES.Date]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"5\">Character Strings</th>\n * </tr>\n * <tr>\n * <td><code>char</code></td>\n * <td><code>[[TYPES.Char]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>varchar</code><sup>3</sup></td>\n * <td><code>[[TYPES.VarChar]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>text</code></td>\n * <td><code>[[TYPES.Text]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"5\">Unicode Strings</th>\n * </tr>\n * <tr>\n * <td><code>nchar</code></td>\n * <td><code>[[TYPES.NChar]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>nvarchar</code><sup>3</sup></td>\n * <td><code>[[TYPES.NVarChar]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>ntext</code></td>\n * <td><code>[[TYPES.NText]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>-</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"5\">Binary Strings<sup>4</sup></th>\n * </tr>\n * <tr>\n * <td><code>binary</code></td>\n * <td><code>[[TYPES.Binary]]</code></td>\n * <td><code>Buffer</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>varbinary</code></td>\n * <td><code>[[TYPES.VarBinary]]</code></td>\n * <td><code>Buffer</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>image</code></td>\n * <td><code>[[TYPES.Image]]</code></td>\n * <td><code>Buffer</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"5\">Other Data Types</th>\n * </tr>\n * <tr>\n * <td><code>TVP</code></td>\n * <td><code>[[TYPES.TVP]]</code></td>\n * <td><code>Object</code></td>\n * <td>-</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>UDT</code></td>\n * <td><code>[[TYPES.UDT]]</code></td>\n * <td><code>Buffer</code></td>\n * <td>✓</td>\n * <td>-</td>\n * </tr>\n * <tr>\n * <td><code>uniqueidentifier</code><sup>4</sup></td>\n * <td><code>[[TYPES.UniqueIdentifier]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>variant</code></td>\n * <td><code>[[TYPES.Variant]]</code></td>\n * <td><code>any</code></td>\n * <td>✓</td>\n * <td>-</td>\n * </tr>\n * <tr>\n * <td><code>xml</code></td>\n * <td><code>[[TYPES.Xml]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>-</td>\n * </tr>\n * </tbody>\n * </table>\n *\n * <ol>\n * <li>\n * <h4>BigInt</h4>\n * <p>\n * Values are returned as a string. This is because values can exceed 53 bits of significant data, which is greater than a\n * Javascript <code>number</code> type can represent as an integer.\n * </p>\n * </li>\n * <li>\n * <h4>Numerical, Decimal</h4>\n * <p>\n * For input parameters, default precision is 18 and default scale is 0. Maximum supported precision is 19.\n * </p>\n * </li>\n * <li>\n * <h4>VarChar, NVarChar</h4>\n * <p>\n * <code>varchar(max)</code> and <code>nvarchar(max)</code> are also supported.\n * </p>\n * </li>\n * <li>\n * <h4>UniqueIdentifier</h4>\n * <p>\n * Values are returned as a 16 byte hexadecimal string.\n * </p>\n * <p>\n * Note that the order of bytes is not the same as the character representation. See\n * <a href=\"http://msdn.microsoft.com/en-us/library/ms190215.aspx\">Using uniqueidentifier Data</a>\n * for an example of the different ordering of bytes.\n * </p>\n * </li>\n * </ol>\n */\nexport const TYPES = {\n TinyInt,\n Bit,\n SmallInt,\n Int,\n SmallDateTime,\n Real,\n Money,\n DateTime,\n Float,\n Decimal,\n Numeric,\n SmallMoney,\n BigInt,\n Image,\n Text,\n UniqueIdentifier,\n NText,\n VarBinary,\n VarChar,\n Binary,\n Char,\n NVarChar,\n NChar,\n Xml,\n Time,\n Date,\n DateTime2,\n DateTimeOffset,\n UDT,\n TVP,\n Variant\n};\n\nexport const typeByName = TYPES;\n"],"mappings":"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,aAAI,CAACjB,EAAE,GAAGiB,aAAI;EACf,CAACC,cAAK,CAAClB,EAAE,GAAGkB,cAAK;EACjB,CAACC,aAAI,CAACnB,EAAE,GAAGmB,aAAI;EACf,CAACC,iBAAQ,CAACpB,EAAE,GAAGoB,iBAAQ;EACvB,CAACC,iBAAQ,CAACrB,EAAE,GAAGqB,iBAAQ;EACvB,CAACC,eAAM,CAACtB,EAAE,GAAGsB,eAAM;EACnB,CAACC,eAAM,CAACvB,EAAE,GAAGuB,eAAM;EACnB,CAACC,kBAAS,CAACxB,EAAE,GAAGwB,kBAAS;EACzB,CAACC,kBAAS,CAACzB,EAAE,GAAGyB,kBAAS;EACzB,CAACC,gBAAO,CAAC1B,EAAE,GAAG0B,gBAAO;EACrB,CAACC,eAAM,CAAC3B,EAAE,GAAG2B,eAAM;EACnB,CAACC,aAAI,CAAC5B,EAAE,GAAG4B,aAAI;EACf,CAACC,iBAAQ,CAAC7B,EAAE,GAAG6B,iBAAQ;EACvB,CAACC,cAAK,CAAC9B,EAAE,GAAG8B,cAAK;EACjB,CAACC,YAAG,CAAC/B,EAAE,GAAG+B,YAAG;EACb,CAACC,aAAI,CAAChC,EAAE,GAAGgC,aAAI;EACf,CAACC,aAAI,CAACjC,EAAE,GAAGiC,aAAI;EACf,CAACC,kBAAS,CAAClC,EAAE,GAAGkC,kBAAS;EACzB,CAACC,uBAAc,CAACnC,EAAE,GAAGmC,uBAAc;EACnC,CAACC,YAAG,CAACpC,EAAE,GAAGoC,YAAG;EACb,CAACC,YAAG,CAACrC,EAAE,GAAGqC,YAAG;EACb,CAACC,mBAAO,CAACtC,EAAE,GAAGsC;AAChB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,KAAK,GAAAzC,OAAA,CAAAyC,KAAA,GAAG;EACnBtC,OAAO,EAAPA,gBAAO;EACPC,GAAG,EAAHA,YAAG;EACHC,QAAQ,EAARA,iBAAQ;EACRC,GAAG,EAAHA,YAAG;EACHC,aAAa,EAAbA,sBAAa;EACbC,IAAI,EAAJA,aAAI;EACJC,KAAK,EAALA,cAAK;EACLC,QAAQ,EAARA,iBAAQ;EACRC,KAAK,EAALA,cAAK;EACLC,OAAO,EAAPA,gBAAO;EACPC,OAAO,EAAPA,gBAAO;EACPC,UAAU,EAAVA,mBAAU;EACVC,MAAM,EAANA,eAAM;EACNC,KAAK,EAALA,cAAK;EACLC,IAAI,EAAJA,aAAI;EACJC,gBAAgB,EAAhBA,yBAAgB;EAChBE,KAAK,EAALA,cAAK;EACLO,SAAS,EAATA,kBAAS;EACTC,OAAO,EAAPA,gBAAO;EACPC,MAAM,EAANA,eAAM;EACNC,IAAI,EAAJA,aAAI;EACJC,QAAQ,EAARA,iBAAQ;EACRC,KAAK,EAALA,cAAK;EACLC,GAAG,EAAHA,YAAG;EACHC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,SAAS,EAATA,kBAAS;EACTC,cAAc,EAAdA,uBAAc;EACdC,GAAG,EAAHA,YAAG;EACHC,GAAG,EAAHA,YAAG;EACHC,OAAO,EAAPA;AACF,CAAC;AAEM,MAAME,UAAU,GAAA1C,OAAA,CAAA0C,UAAA,GAAGD,KAAK","ignoreList":[]}
package/lib/message-io.js CHANGED
@@ -125,7 +125,7 @@ class MessageIO extends _events.EventEmitter {
125
125
  }
126
126
 
127
127
  // TODO listen for 'drain' event when socket.write returns false.
128
- // TODO implement incomplete request cancelation (2.2.1.6)
128
+ // TODO implement incomplete request cancellation (2.2.1.6)
129
129
  sendMessage(packetType, data, resetConnection) {
130
130
  const message = new _message.default({
131
131
  type: packetType,
@@ -149,4 +149,4 @@ class MessageIO extends _events.EventEmitter {
149
149
  }
150
150
  var _default = exports.default = MessageIO;
151
151
  module.exports = MessageIO;
152
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbmF0aXZlRHVwbGV4cGFpciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwidGxzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfZXZlbnRzIiwiX21lc3NhZ2UiLCJfcGFja2V0IiwiX2luY29taW5nTWVzc2FnZVN0cmVhbSIsIl9vdXRnb2luZ01lc3NhZ2VTdHJlYW0iLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJNZXNzYWdlSU8iLCJFdmVudEVtaXR0ZXIiLCJjb25zdHJ1Y3RvciIsInNvY2tldCIsInBhY2tldFNpemUiLCJkZWJ1ZyIsInRsc05lZ290aWF0aW9uQ29tcGxldGUiLCJpbmNvbWluZ01lc3NhZ2VTdHJlYW0iLCJJbmNvbWluZ01lc3NhZ2VTdHJlYW0iLCJpbmNvbWluZ01lc3NhZ2VJdGVyYXRvciIsIlN5bWJvbCIsImFzeW5jSXRlcmF0b3IiLCJvdXRnb2luZ01lc3NhZ2VTdHJlYW0iLCJPdXRnb2luZ01lc3NhZ2VTdHJlYW0iLCJwaXBlIiwiYXJncyIsImxlbmd0aCIsImxvZyIsInNlY3VyZVBhaXIiLCJjbGVhcnRleHQiLCJzZXRNYXhTZW5kRnJhZ21lbnQiLCJzdGFydFRscyIsImNyZWRlbnRpYWxzRGV0YWlscyIsImhvc3RuYW1lIiwidHJ1c3RTZXJ2ZXJDZXJ0aWZpY2F0ZSIsIm1heFZlcnNpb24iLCJpbmNsdWRlcyIsInNlY3VyZUNvbnRleHQiLCJjcmVhdGVTZWN1cmVDb250ZXh0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJkdXBsZXhwYWlyIiwiRHVwbGV4UGFpciIsImNvbm5lY3QiLCJzb2NrZXQxIiwic2VydmVybmFtZSIsInJlamVjdFVuYXV0aG9yaXplZCIsImVuY3J5cHRlZCIsInNvY2tldDIiLCJvblNlY3VyZUNvbm5lY3QiLCJyZW1vdmVMaXN0ZW5lciIsIm9uUmVhZGFibGUiLCJvbkVycm9yIiwib25jZSIsImVyciIsImRlc3Ryb3kiLCJjaXBoZXIiLCJnZXRDaXBoZXIiLCJuYW1lIiwidmVyc2lvbiIsImVtaXQiLCJ1bnBpcGUiLCJtZXNzYWdlIiwiTWVzc2FnZSIsInR5cGUiLCJUWVBFIiwiUFJFTE9HSU4iLCJyZXNldENvbm5lY3Rpb24iLCJjaHVuayIsInJlYWQiLCJ3cml0ZSIsImVuZCIsInJlYWRNZXNzYWdlIiwidGhlbiIsInJlc3BvbnNlIiwiZGF0YSIsImNhdGNoIiwic2VuZE1lc3NhZ2UiLCJwYWNrZXRUeXBlIiwicmVzdWx0IiwibmV4dCIsImRvbmUiLCJFcnJvciIsInZhbHVlIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vc3JjL21lc3NhZ2UtaW8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IER1cGxleFBhaXIgZnJvbSAnbmF0aXZlLWR1cGxleHBhaXInO1xuXG5pbXBvcnQgeyBEdXBsZXggfSBmcm9tICdzdHJlYW0nO1xuaW1wb3J0ICogYXMgdGxzIGZyb20gJ3Rscyc7XG5pbXBvcnQgeyBTb2NrZXQgfSBmcm9tICduZXQnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcblxuaW1wb3J0IERlYnVnIGZyb20gJy4vZGVidWcnO1xuXG5pbXBvcnQgTWVzc2FnZSBmcm9tICcuL21lc3NhZ2UnO1xuaW1wb3J0IHsgVFlQRSB9IGZyb20gJy4vcGFja2V0JztcblxuaW1wb3J0IEluY29taW5nTWVzc2FnZVN0cmVhbSBmcm9tICcuL2luY29taW5nLW1lc3NhZ2Utc3RyZWFtJztcbmltcG9ydCBPdXRnb2luZ01lc3NhZ2VTdHJlYW0gZnJvbSAnLi9vdXRnb2luZy1tZXNzYWdlLXN0cmVhbSc7XG5cbmNsYXNzIE1lc3NhZ2VJTyBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIGRlY2xhcmUgc29ja2V0OiBTb2NrZXQ7XG4gIGRlY2xhcmUgZGVidWc6IERlYnVnO1xuXG4gIGRlY2xhcmUgdGxzTmVnb3RpYXRpb25Db21wbGV0ZTogYm9vbGVhbjtcblxuICBkZWNsYXJlIHByaXZhdGUgaW5jb21pbmdNZXNzYWdlU3RyZWFtOiBJbmNvbWluZ01lc3NhZ2VTdHJlYW07XG4gIGRlY2xhcmUgb3V0Z29pbmdNZXNzYWdlU3RyZWFtOiBPdXRnb2luZ01lc3NhZ2VTdHJlYW07XG5cbiAgZGVjbGFyZSBzZWN1cmVQYWlyPzoge1xuICAgIGNsZWFydGV4dDogdGxzLlRMU1NvY2tldDtcbiAgICBlbmNyeXB0ZWQ6IER1cGxleDtcbiAgfTtcblxuICBkZWNsYXJlIGluY29taW5nTWVzc2FnZUl0ZXJhdG9yOiBBc3luY0l0ZXJhYmxlSXRlcmF0b3I8TWVzc2FnZT47XG5cbiAgY29uc3RydWN0b3Ioc29ja2V0OiBTb2NrZXQsIHBhY2tldFNpemU6IG51bWJlciwgZGVidWc6IERlYnVnKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuc29ja2V0ID0gc29ja2V0O1xuICAgIHRoaXMuZGVidWcgPSBkZWJ1ZztcblxuICAgIHRoaXMudGxzTmVnb3RpYXRpb25Db21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgdGhpcy5pbmNvbWluZ01lc3NhZ2VTdHJlYW0gPSBuZXcgSW5jb21pbmdNZXNzYWdlU3RyZWFtKHRoaXMuZGVidWcpO1xuICAgIHRoaXMuaW5jb21pbmdNZXNzYWdlSXRlcmF0b3IgPSB0aGlzLmluY29taW5nTWVzc2FnZVN0cmVhbVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKTtcblxuICAgIHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtID0gbmV3IE91dGdvaW5nTWVzc2FnZVN0cmVhbSh0aGlzLmRlYnVnLCB7IHBhY2tldFNpemU6IHBhY2tldFNpemUgfSk7XG5cbiAgICB0aGlzLnNvY2tldC5waXBlKHRoaXMuaW5jb21pbmdNZXNzYWdlU3RyZWFtKTtcbiAgICB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS5waXBlKHRoaXMuc29ja2V0KTtcbiAgfVxuXG4gIHBhY2tldFNpemUoLi4uYXJnczogW251bWJlcl0pIHtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBwYWNrZXRTaXplID0gYXJnc1swXTtcbiAgICAgIHRoaXMuZGVidWcubG9nKCdQYWNrZXQgc2l6ZSBjaGFuZ2VkIGZyb20gJyArIHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtLnBhY2tldFNpemUgKyAnIHRvICcgKyBwYWNrZXRTaXplKTtcbiAgICAgIHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtLnBhY2tldFNpemUgPSBwYWNrZXRTaXplO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlY3VyZVBhaXIpIHtcbiAgICAgIHRoaXMuc2VjdXJlUGFpci5jbGVhcnRleHQuc2V0TWF4U2VuZEZyYWdtZW50KHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtLnBhY2tldFNpemUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS5wYWNrZXRTaXplO1xuICB9XG5cbiAgLy8gTmVnb3RpYXRlIFRMUyBlbmNyeXB0aW9uLlxuICBzdGFydFRscyhjcmVkZW50aWFsc0RldGFpbHM6IHRscy5TZWN1cmVDb250ZXh0T3B0aW9ucywgaG9zdG5hbWU6IHN0cmluZywgdHJ1c3RTZXJ2ZXJDZXJ0aWZpY2F0ZTogYm9vbGVhbikge1xuICAgIGlmICghY3JlZGVudGlhbHNEZXRhaWxzLm1heFZlcnNpb24gfHwgIVsnVExTdjEuMicsICdUTFN2MS4xJywgJ1RMU3YxJ10uaW5jbHVkZXMoY3JlZGVudGlhbHNEZXRhaWxzLm1heFZlcnNpb24pKSB7XG4gICAgICBjcmVkZW50aWFsc0RldGFpbHMubWF4VmVyc2lvbiA9ICdUTFN2MS4yJztcbiAgICB9XG5cbiAgICBjb25zdCBzZWN1cmVDb250ZXh0ID0gdGxzLmNyZWF0ZVNlY3VyZUNvbnRleHQoY3JlZGVudGlhbHNEZXRhaWxzKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBkdXBsZXhwYWlyID0gbmV3IER1cGxleFBhaXIoKTtcbiAgICAgIGNvbnN0IHNlY3VyZVBhaXIgPSB0aGlzLnNlY3VyZVBhaXIgPSB7XG4gICAgICAgIGNsZWFydGV4dDogdGxzLmNvbm5lY3Qoe1xuICAgICAgICAgIHNvY2tldDogZHVwbGV4cGFpci5zb2NrZXQxIGFzIFNvY2tldCxcbiAgICAgICAgICBzZXJ2ZXJuYW1lOiBob3N0bmFtZSxcbiAgICAgICAgICBzZWN1cmVDb250ZXh0OiBzZWN1cmVDb250ZXh0LFxuICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogIXRydXN0U2VydmVyQ2VydGlmaWNhdGVcbiAgICAgICAgfSksXG4gICAgICAgIGVuY3J5cHRlZDogZHVwbGV4cGFpci5zb2NrZXQyXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvblNlY3VyZUNvbm5lY3QgPSAoKSA9PiB7XG4gICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLnJlbW92ZUxpc3RlbmVyKCdyZWFkYWJsZScsIG9uUmVhZGFibGUpO1xuICAgICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQucmVtb3ZlTGlzdGVuZXIoJ3NlY3VyZUNvbm5lY3QnLCBvblNlY3VyZUNvbm5lY3QpO1xuXG4gICAgICAgIC8vIElmIHdlIGVuY291bnRlciBhbnkgZXJyb3JzIGZyb20gdGhpcyBwb2ludCBvbixcbiAgICAgICAgLy8gd2UganVzdCBmb3J3YXJkIHRoZW0gdG8gdGhlIGFjdHVhbCBuZXR3b3JrIHNvY2tldC5cbiAgICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQub25jZSgnZXJyb3InLCAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5zb2NrZXQuZGVzdHJveShlcnIpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBjaXBoZXIgPSBzZWN1cmVQYWlyLmNsZWFydGV4dC5nZXRDaXBoZXIoKTtcbiAgICAgICAgaWYgKGNpcGhlcikge1xuICAgICAgICAgIHRoaXMuZGVidWcubG9nKCdUTFMgbmVnb3RpYXRlZCAoJyArIGNpcGhlci5uYW1lICsgJywgJyArIGNpcGhlci52ZXJzaW9uICsgJyknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZW1pdCgnc2VjdXJlJywgc2VjdXJlUGFpci5jbGVhcnRleHQpO1xuXG4gICAgICAgIHNlY3VyZVBhaXIuY2xlYXJ0ZXh0LnNldE1heFNlbmRGcmFnbWVudCh0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS5wYWNrZXRTaXplKTtcblxuICAgICAgICB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS51bnBpcGUodGhpcy5zb2NrZXQpO1xuICAgICAgICB0aGlzLnNvY2tldC51bnBpcGUodGhpcy5pbmNvbWluZ01lc3NhZ2VTdHJlYW0pO1xuXG4gICAgICAgIHRoaXMuc29ja2V0LnBpcGUoc2VjdXJlUGFpci5lbmNyeXB0ZWQpO1xuICAgICAgICBzZWN1cmVQYWlyLmVuY3J5cHRlZC5waXBlKHRoaXMuc29ja2V0KTtcblxuICAgICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5waXBlKHRoaXMuaW5jb21pbmdNZXNzYWdlU3RyZWFtKTtcbiAgICAgICAgdGhpcy5vdXRnb2luZ01lc3NhZ2VTdHJlYW0ucGlwZShzZWN1cmVQYWlyLmNsZWFydGV4dCk7XG5cbiAgICAgICAgdGhpcy50bHNOZWdvdGlhdGlvbkNvbXBsZXRlID0gdHJ1ZTtcblxuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvbkVycm9yID0gKGVycj86IEVycm9yKSA9PiB7XG4gICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLnJlbW92ZUxpc3RlbmVyKCdyZWFkYWJsZScsIG9uUmVhZGFibGUpO1xuICAgICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQucmVtb3ZlTGlzdGVuZXIoJ3NlY3VyZUNvbm5lY3QnLCBvblNlY3VyZUNvbm5lY3QpO1xuXG4gICAgICAgIHNlY3VyZVBhaXIuY2xlYXJ0ZXh0LmRlc3Ryb3koKTtcbiAgICAgICAgc2VjdXJlUGFpci5lbmNyeXB0ZWQuZGVzdHJveSgpO1xuXG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25SZWFkYWJsZSA9ICgpID0+IHtcbiAgICAgICAgLy8gV2hlbiB0aGVyZSBpcyBoYW5kc2hha2UgZGF0YSBvbiB0aGUgZW5jcnlwdGVkIHN0cmVhbSBvZiB0aGUgc2VjdXJlIHBhaXIsXG4gICAgICAgIC8vIHdlIHdyYXAgaXQgaW50byBhIGBQUkVMT0dJTmAgbWVzc2FnZSBhbmQgc2VuZCBpdCB0byB0aGUgc2VydmVyLlxuICAgICAgICAvL1xuICAgICAgICAvLyBGb3IgZWFjaCBgUFJFTE9HSU5gIG1lc3NhZ2Ugd2Ugc2VudCB3ZSBnZXQgYmFjayBleGFjdGx5IG9uZSByZXNwb25zZSBtZXNzYWdlXG4gICAgICAgIC8vIHRoYXQgY29udGFpbnMgdGhlIHNlcnZlcidzIGhhbmRzaGFrZSByZXNwb25zZSBkYXRhLlxuICAgICAgICBjb25zdCBtZXNzYWdlID0gbmV3IE1lc3NhZ2UoeyB0eXBlOiBUWVBFLlBSRUxPR0lOLCByZXNldENvbm5lY3Rpb246IGZhbHNlIH0pO1xuXG4gICAgICAgIGxldCBjaHVuaztcbiAgICAgICAgd2hpbGUgKGNodW5rID0gc2VjdXJlUGFpci5lbmNyeXB0ZWQucmVhZCgpKSB7XG4gICAgICAgICAgbWVzc2FnZS53cml0ZShjaHVuayk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vdXRnb2luZ01lc3NhZ2VTdHJlYW0ud3JpdGUobWVzc2FnZSk7XG4gICAgICAgIG1lc3NhZ2UuZW5kKCk7XG5cbiAgICAgICAgdGhpcy5yZWFkTWVzc2FnZSgpLnRoZW4oYXN5bmMgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgLy8gU2V0dXAgcmVhZGFibGUgaGFuZGxlciBmb3IgdGhlIG5leHQgcm91bmQgb2YgaGFuZHNoYWtpbmcuXG4gICAgICAgICAgLy8gSWYgd2UgZW5jb3VudGVyIGEgYHNlY3VyZUNvbm5lY3RgIG9uIHRoZSBjbGVhcnRleHQgc2lkZVxuICAgICAgICAgIC8vIG9mIHRoZSBzZWN1cmUgcGFpciwgdGhlIGByZWFkYWJsZWAgaGFuZGxlciBpcyBjbGVhcmVkXG4gICAgICAgICAgLy8gYW5kIG5vIGZ1cnRoZXIgaGFuZHNoYWtlIGhhbmRsaW5nIHdpbGwgaGFwcGVuLlxuICAgICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLm9uY2UoJ3JlYWRhYmxlJywgb25SZWFkYWJsZSk7XG5cbiAgICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IGRhdGEgb2YgcmVzcG9uc2UpIHtcbiAgICAgICAgICAgIC8vIFdlIGZlZWQgdGhlIHNlcnZlcidzIGhhbmRzaGFrZSByZXNwb25zZSBiYWNrIGludG8gdGhlXG4gICAgICAgICAgICAvLyBlbmNyeXB0ZWQgZW5kIG9mIHRoZSBzZWN1cmUgcGFpci5cbiAgICAgICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLndyaXRlKGRhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSkuY2F0Y2gob25FcnJvcik7XG4gICAgICB9O1xuXG4gICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5vbmNlKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQub25jZSgnc2VjdXJlQ29ubmVjdCcsIG9uU2VjdXJlQ29ubmVjdCk7XG4gICAgICBzZWN1cmVQYWlyLmVuY3J5cHRlZC5vbmNlKCdyZWFkYWJsZScsIG9uUmVhZGFibGUpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gVE9ETyBsaXN0ZW4gZm9yICdkcmFpbicgZXZlbnQgd2hlbiBzb2NrZXQud3JpdGUgcmV0dXJucyBmYWxzZS5cbiAgLy8gVE9ETyBpbXBsZW1lbnQgaW5jb21wbGV0ZSByZXF1ZXN0IGNhbmNlbGF0aW9uICgyLjIuMS42KVxuICBzZW5kTWVzc2FnZShwYWNrZXRUeXBlOiBudW1iZXIsIGRhdGE/OiBCdWZmZXIsIHJlc2V0Q29ubmVjdGlvbj86IGJvb2xlYW4pIHtcbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IE1lc3NhZ2UoeyB0eXBlOiBwYWNrZXRUeXBlLCByZXNldENvbm5lY3Rpb246IHJlc2V0Q29ubmVjdGlvbiB9KTtcbiAgICBtZXNzYWdlLmVuZChkYXRhKTtcbiAgICB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS53cml0ZShtZXNzYWdlKTtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkIHRoZSBuZXh0IGluY29taW5nIG1lc3NhZ2UgZnJvbSB0aGUgc29ja2V0LlxuICAgKi9cbiAgYXN5bmMgcmVhZE1lc3NhZ2UoKTogUHJvbWlzZTxNZXNzYWdlPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5pbmNvbWluZ01lc3NhZ2VJdGVyYXRvci5uZXh0KCk7XG5cbiAgICBpZiAocmVzdWx0LmRvbmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCBlbmQgb2YgbWVzc2FnZSBzdHJlYW0nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VJTztcbm1vZHVsZS5leHBvcnRzID0gTWVzc2FnZUlPO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBR0EsSUFBQUMsR0FBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsT0FBQSxHQUFBSCxPQUFBO0FBSUEsSUFBQUksUUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssT0FBQSxHQUFBTCxPQUFBO0FBRUEsSUFBQU0sc0JBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLHNCQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFBOEQsU0FBQUUsd0JBQUFNLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFSLHVCQUFBLFlBQUFBLENBQUFNLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxRQUFBQyxPQUFBLEVBQUFWLENBQUEsaUJBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENBQUEsQ0FBQU0sR0FBQSxDQUFBWixDQUFBLEdBQUFNLENBQUEsQ0FBQU8sR0FBQSxDQUFBYixDQUFBLEVBQUFRLENBQUEsZ0JBQUFQLENBQUEsSUFBQUQsQ0FBQSxnQkFBQUMsQ0FBQSxPQUFBYSxjQUFBLENBQUFDLElBQUEsQ0FBQWYsQ0FBQSxFQUFBQyxDQUFBLE9BQUFNLENBQUEsSUFBQUQsQ0FBQSxHQUFBVSxNQUFBLENBQUFDLGNBQUEsS0FBQUQsTUFBQSxDQUFBRSx3QkFBQSxDQUFBbEIsQ0FBQSxFQUFBQyxDQUFBLE9BQUFNLENBQUEsQ0FBQUssR0FBQSxJQUFBTCxDQUFBLENBQUFNLEdBQUEsSUFBQVAsQ0FBQSxDQUFBRSxDQUFBLEVBQUFQLENBQUEsRUFBQU0sQ0FBQSxJQUFBQyxDQUFBLENBQUFQLENBQUEsSUFBQUQsQ0FBQSxDQUFBQyxDQUFBLFdBQUFPLENBQUEsS0FBQVIsQ0FBQSxFQUFBQyxDQUFBO0FBQUEsU0FBQVYsdUJBQUFTLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsR0FBQUwsQ0FBQSxLQUFBVSxPQUFBLEVBQUFWLENBQUE7QUFFOUQsTUFBTW1CLFNBQVMsU0FBU0Msb0JBQVksQ0FBQztFQWdCbkNDLFdBQVdBLENBQUNDLE1BQWMsRUFBRUMsVUFBa0IsRUFBRUMsS0FBWSxFQUFFO0lBQzVELEtBQUssQ0FBQyxDQUFDO0lBRVAsSUFBSSxDQUFDRixNQUFNLEdBQUdBLE1BQU07SUFDcEIsSUFBSSxDQUFDRSxLQUFLLEdBQUdBLEtBQUs7SUFFbEIsSUFBSSxDQUFDQyxzQkFBc0IsR0FBRyxLQUFLO0lBRW5DLElBQUksQ0FBQ0MscUJBQXFCLEdBQUcsSUFBSUMsOEJBQXFCLENBQUMsSUFBSSxDQUFDSCxLQUFLLENBQUM7SUFDbEUsSUFBSSxDQUFDSSx1QkFBdUIsR0FBRyxJQUFJLENBQUNGLHFCQUFxQixDQUFDRyxNQUFNLENBQUNDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFFakYsSUFBSSxDQUFDQyxxQkFBcUIsR0FBRyxJQUFJQyw4QkFBcUIsQ0FBQyxJQUFJLENBQUNSLEtBQUssRUFBRTtNQUFFRCxVQUFVLEVBQUVBO0lBQVcsQ0FBQyxDQUFDO0lBRTlGLElBQUksQ0FBQ0QsTUFBTSxDQUFDVyxJQUFJLENBQUMsSUFBSSxDQUFDUCxxQkFBcUIsQ0FBQztJQUM1QyxJQUFJLENBQUNLLHFCQUFxQixDQUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDWCxNQUFNLENBQUM7RUFDOUM7RUFFQUMsVUFBVUEsQ0FBQyxHQUFHVyxJQUFjLEVBQUU7SUFDNUIsSUFBSUEsSUFBSSxDQUFDQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO01BQ25CLE1BQU1aLFVBQVUsR0FBR1csSUFBSSxDQUFDLENBQUMsQ0FBQztNQUMxQixJQUFJLENBQUNWLEtBQUssQ0FBQ1ksR0FBRyxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQ0wscUJBQXFCLENBQUNSLFVBQVUsR0FBRyxNQUFNLEdBQUdBLFVBQVUsQ0FBQztNQUN6RyxJQUFJLENBQUNRLHFCQUFxQixDQUFDUixVQUFVLEdBQUdBLFVBQVU7SUFDcEQ7SUFFQSxJQUFJLElBQUksQ0FBQ2MsVUFBVSxFQUFFO01BQ25CLElBQUksQ0FBQ0EsVUFBVSxDQUFDQyxTQUFTLENBQUNDLGtCQUFrQixDQUFDLElBQUksQ0FBQ1IscUJBQXFCLENBQUNSLFVBQVUsQ0FBQztJQUNyRjtJQUVBLE9BQU8sSUFBSSxDQUFDUSxxQkFBcUIsQ0FBQ1IsVUFBVTtFQUM5Qzs7RUFFQTtFQUNBaUIsUUFBUUEsQ0FBQ0Msa0JBQTRDLEVBQUVDLFFBQWdCLEVBQUVDLHNCQUErQixFQUFFO0lBQ3hHLElBQUksQ0FBQ0Ysa0JBQWtCLENBQUNHLFVBQVUsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQ0MsUUFBUSxDQUFDSixrQkFBa0IsQ0FBQ0csVUFBVSxDQUFDLEVBQUU7TUFDOUdILGtCQUFrQixDQUFDRyxVQUFVLEdBQUcsU0FBUztJQUMzQztJQUVBLE1BQU1FLGFBQWEsR0FBR3JELEdBQUcsQ0FBQ3NELG1CQUFtQixDQUFDTixrQkFBa0IsQ0FBQztJQUVqRSxPQUFPLElBQUlPLE9BQU8sQ0FBTyxDQUFDQyxPQUFPLEVBQUVDLE1BQU0sS0FBSztNQUM1QyxNQUFNQyxVQUFVLEdBQUcsSUFBSUMseUJBQVUsQ0FBQyxDQUFDO01BQ25DLE1BQU1mLFVBQVUsR0FBRyxJQUFJLENBQUNBLFVBQVUsR0FBRztRQUNuQ0MsU0FBUyxFQUFFN0MsR0FBRyxDQUFDNEQsT0FBTyxDQUFDO1VBQ3JCL0IsTUFBTSxFQUFFNkIsVUFBVSxDQUFDRyxPQUFpQjtVQUNwQ0MsVUFBVSxFQUFFYixRQUFRO1VBQ3BCSSxhQUFhLEVBQUVBLGFBQWE7VUFDNUJVLGtCQUFrQixFQUFFLENBQUNiO1FBQ3ZCLENBQUMsQ0FBQztRQUNGYyxTQUFTLEVBQUVOLFVBQVUsQ0FBQ087TUFDeEIsQ0FBQztNQUVELE1BQU1DLGVBQWUsR0FBR0EsQ0FBQSxLQUFNO1FBQzVCdEIsVUFBVSxDQUFDb0IsU0FBUyxDQUFDRyxjQUFjLENBQUMsVUFBVSxFQUFFQyxVQUFVLENBQUM7UUFDM0R4QixVQUFVLENBQUNDLFNBQVMsQ0FBQ3NCLGNBQWMsQ0FBQyxPQUFPLEVBQUVFLE9BQU8sQ0FBQztRQUNyRHpCLFVBQVUsQ0FBQ0MsU0FBUyxDQUFDc0IsY0FBYyxDQUFDLGVBQWUsRUFBRUQsZUFBZSxDQUFDOztRQUVyRTtRQUNBO1FBQ0F0QixVQUFVLENBQUNDLFNBQVMsQ0FBQ3lCLElBQUksQ0FBQyxPQUFPLEVBQUdDLEdBQUcsSUFBSztVQUMxQyxJQUFJLENBQUMxQyxNQUFNLENBQUMyQyxPQUFPLENBQUNELEdBQUcsQ0FBQztRQUMxQixDQUFDLENBQUM7UUFFRixNQUFNRSxNQUFNLEdBQUc3QixVQUFVLENBQUNDLFNBQVMsQ0FBQzZCLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLElBQUlELE1BQU0sRUFBRTtVQUNWLElBQUksQ0FBQzFDLEtBQUssQ0FBQ1ksR0FBRyxDQUFDLGtCQUFrQixHQUFHOEIsTUFBTSxDQUFDRSxJQUFJLEdBQUcsSUFBSSxHQUFHRixNQUFNLENBQUNHLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDaEY7UUFFQSxJQUFJLENBQUNDLElBQUksQ0FBQyxRQUFRLEVBQUVqQyxVQUFVLENBQUNDLFNBQVMsQ0FBQztRQUV6Q0QsVUFBVSxDQUFDQyxTQUFTLENBQUNDLGtCQUFrQixDQUFDLElBQUksQ0FBQ1IscUJBQXFCLENBQUNSLFVBQVUsQ0FBQztRQUU5RSxJQUFJLENBQUNRLHFCQUFxQixDQUFDd0MsTUFBTSxDQUFDLElBQUksQ0FBQ2pELE1BQU0sQ0FBQztRQUM5QyxJQUFJLENBQUNBLE1BQU0sQ0FBQ2lELE1BQU0sQ0FBQyxJQUFJLENBQUM3QyxxQkFBcUIsQ0FBQztRQUU5QyxJQUFJLENBQUNKLE1BQU0sQ0FBQ1csSUFBSSxDQUFDSSxVQUFVLENBQUNvQixTQUFTLENBQUM7UUFDdENwQixVQUFVLENBQUNvQixTQUFTLENBQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDWCxNQUFNLENBQUM7UUFFdENlLFVBQVUsQ0FBQ0MsU0FBUyxDQUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDUCxxQkFBcUIsQ0FBQztRQUNyRCxJQUFJLENBQUNLLHFCQUFxQixDQUFDRSxJQUFJLENBQUNJLFVBQVUsQ0FBQ0MsU0FBUyxDQUFDO1FBRXJELElBQUksQ0FBQ2Isc0JBQXNCLEdBQUcsSUFBSTtRQUVsQ3dCLE9BQU8sQ0FBQyxDQUFDO01BQ1gsQ0FBQztNQUVELE1BQU1hLE9BQU8sR0FBSUUsR0FBVyxJQUFLO1FBQy9CM0IsVUFBVSxDQUFDb0IsU0FBUyxDQUFDRyxjQUFjLENBQUMsVUFBVSxFQUFFQyxVQUFVLENBQUM7UUFDM0R4QixVQUFVLENBQUNDLFNBQVMsQ0FBQ3NCLGNBQWMsQ0FBQyxPQUFPLEVBQUVFLE9BQU8sQ0FBQztRQUNyRHpCLFVBQVUsQ0FBQ0MsU0FBUyxDQUFDc0IsY0FBYyxDQUFDLGVBQWUsRUFBRUQsZUFBZSxDQUFDO1FBRXJFdEIsVUFBVSxDQUFDQyxTQUFTLENBQUMyQixPQUFPLENBQUMsQ0FBQztRQUM5QjVCLFVBQVUsQ0FBQ29CLFNBQVMsQ0FBQ1EsT0FBTyxDQUFDLENBQUM7UUFFOUJmLE1BQU0sQ0FBQ2MsR0FBRyxDQUFDO01BQ2IsQ0FBQztNQUVELE1BQU1ILFVBQVUsR0FBR0EsQ0FBQSxLQUFNO1FBQ3ZCO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQSxNQUFNVyxPQUFPLEdBQUcsSUFBSUMsZ0JBQU8sQ0FBQztVQUFFQyxJQUFJLEVBQUVDLFlBQUksQ0FBQ0MsUUFBUTtVQUFFQyxlQUFlLEVBQUU7UUFBTSxDQUFDLENBQUM7UUFFNUUsSUFBSUMsS0FBSztRQUNULE9BQU9BLEtBQUssR0FBR3pDLFVBQVUsQ0FBQ29CLFNBQVMsQ0FBQ3NCLElBQUksQ0FBQyxDQUFDLEVBQUU7VUFDMUNQLE9BQU8sQ0FBQ1EsS0FBSyxDQUFDRixLQUFLLENBQUM7UUFDdEI7UUFDQSxJQUFJLENBQUMvQyxxQkFBcUIsQ0FBQ2lELEtBQUssQ0FBQ1IsT0FBTyxDQUFDO1FBQ3pDQSxPQUFPLENBQUNTLEdBQUcsQ0FBQyxDQUFDO1FBRWIsSUFBSSxDQUFDQyxXQUFXLENBQUMsQ0FBQyxDQUFDQyxJQUFJLENBQUMsTUFBT0MsUUFBUSxJQUFLO1VBQzFDO1VBQ0E7VUFDQTtVQUNBO1VBQ0EvQyxVQUFVLENBQUNvQixTQUFTLENBQUNNLElBQUksQ0FBQyxVQUFVLEVBQUVGLFVBQVUsQ0FBQztVQUVqRCxXQUFXLE1BQU13QixJQUFJLElBQUlELFFBQVEsRUFBRTtZQUNqQztZQUNBO1lBQ0EvQyxVQUFVLENBQUNvQixTQUFTLENBQUN1QixLQUFLLENBQUNLLElBQUksQ0FBQztVQUNsQztRQUNGLENBQUMsQ0FBQyxDQUFDQyxLQUFLLENBQUN4QixPQUFPLENBQUM7TUFDbkIsQ0FBQztNQUVEekIsVUFBVSxDQUFDQyxTQUFTLENBQUN5QixJQUFJLENBQUMsT0FBTyxFQUFFRCxPQUFPLENBQUM7TUFDM0N6QixVQUFVLENBQUNDLFNBQVMsQ0FBQ3lCLElBQUksQ0FBQyxlQUFlLEVBQUVKLGVBQWUsQ0FBQztNQUMzRHRCLFVBQVUsQ0FBQ29CLFNBQVMsQ0FBQ00sSUFBSSxDQUFDLFVBQVUsRUFBRUYsVUFBVSxDQUFDO0lBQ25ELENBQUMsQ0FBQztFQUNKOztFQUVBO0VBQ0E7RUFDQTBCLFdBQVdBLENBQUNDLFVBQWtCLEVBQUVILElBQWEsRUFBRVIsZUFBeUIsRUFBRTtJQUN4RSxNQUFNTCxPQUFPLEdBQUcsSUFBSUMsZ0JBQU8sQ0FBQztNQUFFQyxJQUFJLEVBQUVjLFVBQVU7TUFBRVgsZUFBZSxFQUFFQTtJQUFnQixDQUFDLENBQUM7SUFDbkZMLE9BQU8sQ0FBQ1MsR0FBRyxDQUFDSSxJQUFJLENBQUM7SUFDakIsSUFBSSxDQUFDdEQscUJBQXFCLENBQUNpRCxLQUFLLENBQUNSLE9BQU8sQ0FBQztJQUN6QyxPQUFPQSxPQUFPO0VBQ2hCOztFQUVBO0FBQ0Y7QUFDQTtFQUNFLE1BQU1VLFdBQVdBLENBQUEsRUFBcUI7SUFDcEMsTUFBTU8sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDN0QsdUJBQXVCLENBQUM4RCxJQUFJLENBQUMsQ0FBQztJQUV4RCxJQUFJRCxNQUFNLENBQUNFLElBQUksRUFBRTtNQUNmLE1BQU0sSUFBSUMsS0FBSyxDQUFDLGtDQUFrQyxDQUFDO0lBQ3JEO0lBRUEsT0FBT0gsTUFBTSxDQUFDSSxLQUFLO0VBQ3JCO0FBQ0Y7QUFBQyxJQUFBQyxRQUFBLEdBQUFDLE9BQUEsQ0FBQXJGLE9BQUEsR0FFY1MsU0FBUztBQUN4QjZFLE1BQU0sQ0FBQ0QsT0FBTyxHQUFHNUUsU0FBUyIsImlnbm9yZUxpc3QiOltdfQ==
152
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbmF0aXZlRHVwbGV4cGFpciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwidGxzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfZXZlbnRzIiwiX21lc3NhZ2UiLCJfcGFja2V0IiwiX2luY29taW5nTWVzc2FnZVN0cmVhbSIsIl9vdXRnb2luZ01lc3NhZ2VTdHJlYW0iLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJNZXNzYWdlSU8iLCJFdmVudEVtaXR0ZXIiLCJjb25zdHJ1Y3RvciIsInNvY2tldCIsInBhY2tldFNpemUiLCJkZWJ1ZyIsInRsc05lZ290aWF0aW9uQ29tcGxldGUiLCJpbmNvbWluZ01lc3NhZ2VTdHJlYW0iLCJJbmNvbWluZ01lc3NhZ2VTdHJlYW0iLCJpbmNvbWluZ01lc3NhZ2VJdGVyYXRvciIsIlN5bWJvbCIsImFzeW5jSXRlcmF0b3IiLCJvdXRnb2luZ01lc3NhZ2VTdHJlYW0iLCJPdXRnb2luZ01lc3NhZ2VTdHJlYW0iLCJwaXBlIiwiYXJncyIsImxlbmd0aCIsImxvZyIsInNlY3VyZVBhaXIiLCJjbGVhcnRleHQiLCJzZXRNYXhTZW5kRnJhZ21lbnQiLCJzdGFydFRscyIsImNyZWRlbnRpYWxzRGV0YWlscyIsImhvc3RuYW1lIiwidHJ1c3RTZXJ2ZXJDZXJ0aWZpY2F0ZSIsIm1heFZlcnNpb24iLCJpbmNsdWRlcyIsInNlY3VyZUNvbnRleHQiLCJjcmVhdGVTZWN1cmVDb250ZXh0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJkdXBsZXhwYWlyIiwiRHVwbGV4UGFpciIsImNvbm5lY3QiLCJzb2NrZXQxIiwic2VydmVybmFtZSIsInJlamVjdFVuYXV0aG9yaXplZCIsImVuY3J5cHRlZCIsInNvY2tldDIiLCJvblNlY3VyZUNvbm5lY3QiLCJyZW1vdmVMaXN0ZW5lciIsIm9uUmVhZGFibGUiLCJvbkVycm9yIiwib25jZSIsImVyciIsImRlc3Ryb3kiLCJjaXBoZXIiLCJnZXRDaXBoZXIiLCJuYW1lIiwidmVyc2lvbiIsImVtaXQiLCJ1bnBpcGUiLCJtZXNzYWdlIiwiTWVzc2FnZSIsInR5cGUiLCJUWVBFIiwiUFJFTE9HSU4iLCJyZXNldENvbm5lY3Rpb24iLCJjaHVuayIsInJlYWQiLCJ3cml0ZSIsImVuZCIsInJlYWRNZXNzYWdlIiwidGhlbiIsInJlc3BvbnNlIiwiZGF0YSIsImNhdGNoIiwic2VuZE1lc3NhZ2UiLCJwYWNrZXRUeXBlIiwicmVzdWx0IiwibmV4dCIsImRvbmUiLCJFcnJvciIsInZhbHVlIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vc3JjL21lc3NhZ2UtaW8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IER1cGxleFBhaXIgZnJvbSAnbmF0aXZlLWR1cGxleHBhaXInO1xuXG5pbXBvcnQgeyBEdXBsZXggfSBmcm9tICdzdHJlYW0nO1xuaW1wb3J0ICogYXMgdGxzIGZyb20gJ3Rscyc7XG5pbXBvcnQgeyBTb2NrZXQgfSBmcm9tICduZXQnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcblxuaW1wb3J0IERlYnVnIGZyb20gJy4vZGVidWcnO1xuXG5pbXBvcnQgTWVzc2FnZSBmcm9tICcuL21lc3NhZ2UnO1xuaW1wb3J0IHsgVFlQRSB9IGZyb20gJy4vcGFja2V0JztcblxuaW1wb3J0IEluY29taW5nTWVzc2FnZVN0cmVhbSBmcm9tICcuL2luY29taW5nLW1lc3NhZ2Utc3RyZWFtJztcbmltcG9ydCBPdXRnb2luZ01lc3NhZ2VTdHJlYW0gZnJvbSAnLi9vdXRnb2luZy1tZXNzYWdlLXN0cmVhbSc7XG5cbmNsYXNzIE1lc3NhZ2VJTyBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIGRlY2xhcmUgc29ja2V0OiBTb2NrZXQ7XG4gIGRlY2xhcmUgZGVidWc6IERlYnVnO1xuXG4gIGRlY2xhcmUgdGxzTmVnb3RpYXRpb25Db21wbGV0ZTogYm9vbGVhbjtcblxuICBkZWNsYXJlIHByaXZhdGUgaW5jb21pbmdNZXNzYWdlU3RyZWFtOiBJbmNvbWluZ01lc3NhZ2VTdHJlYW07XG4gIGRlY2xhcmUgb3V0Z29pbmdNZXNzYWdlU3RyZWFtOiBPdXRnb2luZ01lc3NhZ2VTdHJlYW07XG5cbiAgZGVjbGFyZSBzZWN1cmVQYWlyPzoge1xuICAgIGNsZWFydGV4dDogdGxzLlRMU1NvY2tldDtcbiAgICBlbmNyeXB0ZWQ6IER1cGxleDtcbiAgfTtcblxuICBkZWNsYXJlIGluY29taW5nTWVzc2FnZUl0ZXJhdG9yOiBBc3luY0l0ZXJhYmxlSXRlcmF0b3I8TWVzc2FnZT47XG5cbiAgY29uc3RydWN0b3Ioc29ja2V0OiBTb2NrZXQsIHBhY2tldFNpemU6IG51bWJlciwgZGVidWc6IERlYnVnKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuc29ja2V0ID0gc29ja2V0O1xuICAgIHRoaXMuZGVidWcgPSBkZWJ1ZztcblxuICAgIHRoaXMudGxzTmVnb3RpYXRpb25Db21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgdGhpcy5pbmNvbWluZ01lc3NhZ2VTdHJlYW0gPSBuZXcgSW5jb21pbmdNZXNzYWdlU3RyZWFtKHRoaXMuZGVidWcpO1xuICAgIHRoaXMuaW5jb21pbmdNZXNzYWdlSXRlcmF0b3IgPSB0aGlzLmluY29taW5nTWVzc2FnZVN0cmVhbVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKTtcblxuICAgIHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtID0gbmV3IE91dGdvaW5nTWVzc2FnZVN0cmVhbSh0aGlzLmRlYnVnLCB7IHBhY2tldFNpemU6IHBhY2tldFNpemUgfSk7XG5cbiAgICB0aGlzLnNvY2tldC5waXBlKHRoaXMuaW5jb21pbmdNZXNzYWdlU3RyZWFtKTtcbiAgICB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS5waXBlKHRoaXMuc29ja2V0KTtcbiAgfVxuXG4gIHBhY2tldFNpemUoLi4uYXJnczogW251bWJlcl0pIHtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBwYWNrZXRTaXplID0gYXJnc1swXTtcbiAgICAgIHRoaXMuZGVidWcubG9nKCdQYWNrZXQgc2l6ZSBjaGFuZ2VkIGZyb20gJyArIHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtLnBhY2tldFNpemUgKyAnIHRvICcgKyBwYWNrZXRTaXplKTtcbiAgICAgIHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtLnBhY2tldFNpemUgPSBwYWNrZXRTaXplO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlY3VyZVBhaXIpIHtcbiAgICAgIHRoaXMuc2VjdXJlUGFpci5jbGVhcnRleHQuc2V0TWF4U2VuZEZyYWdtZW50KHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtLnBhY2tldFNpemUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS5wYWNrZXRTaXplO1xuICB9XG5cbiAgLy8gTmVnb3RpYXRlIFRMUyBlbmNyeXB0aW9uLlxuICBzdGFydFRscyhjcmVkZW50aWFsc0RldGFpbHM6IHRscy5TZWN1cmVDb250ZXh0T3B0aW9ucywgaG9zdG5hbWU6IHN0cmluZywgdHJ1c3RTZXJ2ZXJDZXJ0aWZpY2F0ZTogYm9vbGVhbikge1xuICAgIGlmICghY3JlZGVudGlhbHNEZXRhaWxzLm1heFZlcnNpb24gfHwgIVsnVExTdjEuMicsICdUTFN2MS4xJywgJ1RMU3YxJ10uaW5jbHVkZXMoY3JlZGVudGlhbHNEZXRhaWxzLm1heFZlcnNpb24pKSB7XG4gICAgICBjcmVkZW50aWFsc0RldGFpbHMubWF4VmVyc2lvbiA9ICdUTFN2MS4yJztcbiAgICB9XG5cbiAgICBjb25zdCBzZWN1cmVDb250ZXh0ID0gdGxzLmNyZWF0ZVNlY3VyZUNvbnRleHQoY3JlZGVudGlhbHNEZXRhaWxzKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBkdXBsZXhwYWlyID0gbmV3IER1cGxleFBhaXIoKTtcbiAgICAgIGNvbnN0IHNlY3VyZVBhaXIgPSB0aGlzLnNlY3VyZVBhaXIgPSB7XG4gICAgICAgIGNsZWFydGV4dDogdGxzLmNvbm5lY3Qoe1xuICAgICAgICAgIHNvY2tldDogZHVwbGV4cGFpci5zb2NrZXQxIGFzIFNvY2tldCxcbiAgICAgICAgICBzZXJ2ZXJuYW1lOiBob3N0bmFtZSxcbiAgICAgICAgICBzZWN1cmVDb250ZXh0OiBzZWN1cmVDb250ZXh0LFxuICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogIXRydXN0U2VydmVyQ2VydGlmaWNhdGVcbiAgICAgICAgfSksXG4gICAgICAgIGVuY3J5cHRlZDogZHVwbGV4cGFpci5zb2NrZXQyXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvblNlY3VyZUNvbm5lY3QgPSAoKSA9PiB7XG4gICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLnJlbW92ZUxpc3RlbmVyKCdyZWFkYWJsZScsIG9uUmVhZGFibGUpO1xuICAgICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQucmVtb3ZlTGlzdGVuZXIoJ3NlY3VyZUNvbm5lY3QnLCBvblNlY3VyZUNvbm5lY3QpO1xuXG4gICAgICAgIC8vIElmIHdlIGVuY291bnRlciBhbnkgZXJyb3JzIGZyb20gdGhpcyBwb2ludCBvbixcbiAgICAgICAgLy8gd2UganVzdCBmb3J3YXJkIHRoZW0gdG8gdGhlIGFjdHVhbCBuZXR3b3JrIHNvY2tldC5cbiAgICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQub25jZSgnZXJyb3InLCAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5zb2NrZXQuZGVzdHJveShlcnIpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBjaXBoZXIgPSBzZWN1cmVQYWlyLmNsZWFydGV4dC5nZXRDaXBoZXIoKTtcbiAgICAgICAgaWYgKGNpcGhlcikge1xuICAgICAgICAgIHRoaXMuZGVidWcubG9nKCdUTFMgbmVnb3RpYXRlZCAoJyArIGNpcGhlci5uYW1lICsgJywgJyArIGNpcGhlci52ZXJzaW9uICsgJyknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZW1pdCgnc2VjdXJlJywgc2VjdXJlUGFpci5jbGVhcnRleHQpO1xuXG4gICAgICAgIHNlY3VyZVBhaXIuY2xlYXJ0ZXh0LnNldE1heFNlbmRGcmFnbWVudCh0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS5wYWNrZXRTaXplKTtcblxuICAgICAgICB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS51bnBpcGUodGhpcy5zb2NrZXQpO1xuICAgICAgICB0aGlzLnNvY2tldC51bnBpcGUodGhpcy5pbmNvbWluZ01lc3NhZ2VTdHJlYW0pO1xuXG4gICAgICAgIHRoaXMuc29ja2V0LnBpcGUoc2VjdXJlUGFpci5lbmNyeXB0ZWQpO1xuICAgICAgICBzZWN1cmVQYWlyLmVuY3J5cHRlZC5waXBlKHRoaXMuc29ja2V0KTtcblxuICAgICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5waXBlKHRoaXMuaW5jb21pbmdNZXNzYWdlU3RyZWFtKTtcbiAgICAgICAgdGhpcy5vdXRnb2luZ01lc3NhZ2VTdHJlYW0ucGlwZShzZWN1cmVQYWlyLmNsZWFydGV4dCk7XG5cbiAgICAgICAgdGhpcy50bHNOZWdvdGlhdGlvbkNvbXBsZXRlID0gdHJ1ZTtcblxuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvbkVycm9yID0gKGVycj86IEVycm9yKSA9PiB7XG4gICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLnJlbW92ZUxpc3RlbmVyKCdyZWFkYWJsZScsIG9uUmVhZGFibGUpO1xuICAgICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQucmVtb3ZlTGlzdGVuZXIoJ3NlY3VyZUNvbm5lY3QnLCBvblNlY3VyZUNvbm5lY3QpO1xuXG4gICAgICAgIHNlY3VyZVBhaXIuY2xlYXJ0ZXh0LmRlc3Ryb3koKTtcbiAgICAgICAgc2VjdXJlUGFpci5lbmNyeXB0ZWQuZGVzdHJveSgpO1xuXG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25SZWFkYWJsZSA9ICgpID0+IHtcbiAgICAgICAgLy8gV2hlbiB0aGVyZSBpcyBoYW5kc2hha2UgZGF0YSBvbiB0aGUgZW5jcnlwdGVkIHN0cmVhbSBvZiB0aGUgc2VjdXJlIHBhaXIsXG4gICAgICAgIC8vIHdlIHdyYXAgaXQgaW50byBhIGBQUkVMT0dJTmAgbWVzc2FnZSBhbmQgc2VuZCBpdCB0byB0aGUgc2VydmVyLlxuICAgICAgICAvL1xuICAgICAgICAvLyBGb3IgZWFjaCBgUFJFTE9HSU5gIG1lc3NhZ2Ugd2Ugc2VudCB3ZSBnZXQgYmFjayBleGFjdGx5IG9uZSByZXNwb25zZSBtZXNzYWdlXG4gICAgICAgIC8vIHRoYXQgY29udGFpbnMgdGhlIHNlcnZlcidzIGhhbmRzaGFrZSByZXNwb25zZSBkYXRhLlxuICAgICAgICBjb25zdCBtZXNzYWdlID0gbmV3IE1lc3NhZ2UoeyB0eXBlOiBUWVBFLlBSRUxPR0lOLCByZXNldENvbm5lY3Rpb246IGZhbHNlIH0pO1xuXG4gICAgICAgIGxldCBjaHVuaztcbiAgICAgICAgd2hpbGUgKGNodW5rID0gc2VjdXJlUGFpci5lbmNyeXB0ZWQucmVhZCgpKSB7XG4gICAgICAgICAgbWVzc2FnZS53cml0ZShjaHVuayk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vdXRnb2luZ01lc3NhZ2VTdHJlYW0ud3JpdGUobWVzc2FnZSk7XG4gICAgICAgIG1lc3NhZ2UuZW5kKCk7XG5cbiAgICAgICAgdGhpcy5yZWFkTWVzc2FnZSgpLnRoZW4oYXN5bmMgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgLy8gU2V0dXAgcmVhZGFibGUgaGFuZGxlciBmb3IgdGhlIG5leHQgcm91bmQgb2YgaGFuZHNoYWtpbmcuXG4gICAgICAgICAgLy8gSWYgd2UgZW5jb3VudGVyIGEgYHNlY3VyZUNvbm5lY3RgIG9uIHRoZSBjbGVhcnRleHQgc2lkZVxuICAgICAgICAgIC8vIG9mIHRoZSBzZWN1cmUgcGFpciwgdGhlIGByZWFkYWJsZWAgaGFuZGxlciBpcyBjbGVhcmVkXG4gICAgICAgICAgLy8gYW5kIG5vIGZ1cnRoZXIgaGFuZHNoYWtlIGhhbmRsaW5nIHdpbGwgaGFwcGVuLlxuICAgICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLm9uY2UoJ3JlYWRhYmxlJywgb25SZWFkYWJsZSk7XG5cbiAgICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IGRhdGEgb2YgcmVzcG9uc2UpIHtcbiAgICAgICAgICAgIC8vIFdlIGZlZWQgdGhlIHNlcnZlcidzIGhhbmRzaGFrZSByZXNwb25zZSBiYWNrIGludG8gdGhlXG4gICAgICAgICAgICAvLyBlbmNyeXB0ZWQgZW5kIG9mIHRoZSBzZWN1cmUgcGFpci5cbiAgICAgICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLndyaXRlKGRhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSkuY2F0Y2gob25FcnJvcik7XG4gICAgICB9O1xuXG4gICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5vbmNlKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQub25jZSgnc2VjdXJlQ29ubmVjdCcsIG9uU2VjdXJlQ29ubmVjdCk7XG4gICAgICBzZWN1cmVQYWlyLmVuY3J5cHRlZC5vbmNlKCdyZWFkYWJsZScsIG9uUmVhZGFibGUpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gVE9ETyBsaXN0ZW4gZm9yICdkcmFpbicgZXZlbnQgd2hlbiBzb2NrZXQud3JpdGUgcmV0dXJucyBmYWxzZS5cbiAgLy8gVE9ETyBpbXBsZW1lbnQgaW5jb21wbGV0ZSByZXF1ZXN0IGNhbmNlbGxhdGlvbiAoMi4yLjEuNilcbiAgc2VuZE1lc3NhZ2UocGFja2V0VHlwZTogbnVtYmVyLCBkYXRhPzogQnVmZmVyLCByZXNldENvbm5lY3Rpb24/OiBib29sZWFuKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IG5ldyBNZXNzYWdlKHsgdHlwZTogcGFja2V0VHlwZSwgcmVzZXRDb25uZWN0aW9uOiByZXNldENvbm5lY3Rpb24gfSk7XG4gICAgbWVzc2FnZS5lbmQoZGF0YSk7XG4gICAgdGhpcy5vdXRnb2luZ01lc3NhZ2VTdHJlYW0ud3JpdGUobWVzc2FnZSk7XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH1cblxuICAvKipcbiAgICogUmVhZCB0aGUgbmV4dCBpbmNvbWluZyBtZXNzYWdlIGZyb20gdGhlIHNvY2tldC5cbiAgICovXG4gIGFzeW5jIHJlYWRNZXNzYWdlKCk6IFByb21pc2U8TWVzc2FnZT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuaW5jb21pbmdNZXNzYWdlSXRlcmF0b3IubmV4dCgpO1xuXG4gICAgaWYgKHJlc3VsdC5kb25lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VuZXhwZWN0ZWQgZW5kIG9mIG1lc3NhZ2Ugc3RyZWFtJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdC52YWx1ZTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNZXNzYWdlSU87XG5tb2R1bGUuZXhwb3J0cyA9IE1lc3NhZ2VJTztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUdBLElBQUFDLEdBQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLE9BQUEsR0FBQUgsT0FBQTtBQUlBLElBQUFJLFFBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQUws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V0FBVyxDQUFDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLE1BQU9DLFFBQVEsSUFBSztVQUMxQztVQUNBO1VBQ0E7VUFDQTtVQUNBL0MsVUFBVSxDQUFDb0IsU0FBUyxDQUFDTSxJQUFJLENBQUMsVUFBVSxFQUFFRixVQUFVLENBQUM7VUFFakQsV0FBVyxNQUFNd0IsSUFBSSxJQUFJRCxRQUFRLEVBQUU7WUFDakM7WUFDQTtZQUNBL0MsVUFBVSxDQUFDb0IsU0FBUyxDQUFDdUIsS0FBSyxDQUFDSyxJQUFJLENBQUM7VUFDbEM7UUFDRixDQUFDLENBQUMsQ0FBQ0MsS0FBSyxDQUFDeEIsT0FBTyxDQUFDO01BQ25CLENBQUM7TUFFRHpCLFVBQVUsQ0FBQ0MsU0FBUyxDQUFDeUIsSUFBSSxDQUFDLE9BQU8sRUFBRUQsT0FBTyxDQUFDO01BQzNDekIsVUFBVSxDQUFDQyxTQUFTLENBQUN5QixJQUFJLENBQUMsZUFBZSxFQUFFSixlQUFlLENBQUM7TUFDM0R0QixVQUFVLENBQUNvQixTQUFTLENBQUNNLElBQUksQ0FBQyxVQUFVLEVBQUVGLFVBQVUsQ0FBQztJQUNuRCxDQUFDLENBQUM7RUFDSjs7RUFFQTtFQUNBO0VBQ0EwQixXQUFXQSxDQUFDQyxVQUFrQixFQUFFSCxJQUFhLEVBQUVSLGVBQXlCLEVBQUU7SUFDeEUsTUFBTUwsT0FBTyxHQUFHLElBQUlDLGdCQUFPLENBQUM7TUFBRUMsSUFBSSxFQUFFYyxVQUFVO01BQUVYLGVBQWUsRUFBRUE7SUFBZ0IsQ0FBQyxDQUFDO0lBQ25GTCxPQUFPLENBQUNTLEdBQUcsQ0FBQ0ksSUFBSSxDQUFDO0lBQ2pCLElBQUksQ0FBQ3RELHFCQUFxQixDQUFDaUQsS0FBSyxDQUFDUixPQUFPLENBQUM7SUFDekMsT0FBT0EsT0FBTztFQUNoQjs7RUFFQTtBQUNGO0FBQ0E7RUFDRSxNQUFNVSxXQUFXQSxDQUFBLEVBQXFCO0lBQ3BDLE1BQU1PLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQzdELHVCQUF1QixDQUFDOEQsSUFBSSxDQUFDLENBQUM7SUFFeEQsSUFBSUQsTUFBTSxDQUFDRSxJQUFJLEVBQUU7TUFDZixNQUFNLElBQUlDLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQztJQUNyRDtJQUVBLE9BQU9ILE1BQU0sQ0FBQ0ksS0FBSztFQUNyQjtBQUNGO0FBQUMsSUFBQUMsUUFBQSxHQUFBQyxPQUFBLENBQUFyRixPQUFBLEdBRWNTLFNBQVM7QUFDeEI2RSxNQUFNLENBQUNELE9BQU8sR0FBRzVFLFNBQVMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"message-io.js","names":["_nativeDuplexpair","_interopRequireDefault","require","tls","_interopRequireWildcard","_events","_message","_packet","_incomingMessageStream","_outgoingMessageStream","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MessageIO","EventEmitter","constructor","socket","packetSize","debug","tlsNegotiationComplete","incomingMessageStream","IncomingMessageStream","incomingMessageIterator","Symbol","asyncIterator","outgoingMessageStream","OutgoingMessageStream","pipe","args","length","log","securePair","cleartext","setMaxSendFragment","startTls","credentialsDetails","hostname","trustServerCertificate","maxVersion","includes","secureContext","createSecureContext","Promise","resolve","reject","duplexpair","DuplexPair","connect","socket1","servername","rejectUnauthorized","encrypted","socket2","onSecureConnect","removeListener","onReadable","onError","once","err","destroy","cipher","getCipher","name","version","emit","unpipe","message","Message","type","TYPE","PRELOGIN","resetConnection","chunk","read","write","end","readMessage","then","response","data","catch","sendMessage","packetType","result","next","done","Error","value","_default","exports","module"],"sources":["../src/message-io.ts"],"sourcesContent":["import DuplexPair from 'native-duplexpair';\n\nimport { Duplex } from 'stream';\nimport * as tls from 'tls';\nimport { Socket } from 'net';\nimport { EventEmitter } from 'events';\n\nimport Debug from './debug';\n\nimport Message from './message';\nimport { TYPE } from './packet';\n\nimport IncomingMessageStream from './incoming-message-stream';\nimport OutgoingMessageStream from './outgoing-message-stream';\n\nclass MessageIO extends EventEmitter {\n declare socket: Socket;\n declare debug: Debug;\n\n declare tlsNegotiationComplete: boolean;\n\n declare private incomingMessageStream: IncomingMessageStream;\n declare outgoingMessageStream: OutgoingMessageStream;\n\n declare securePair?: {\n cleartext: tls.TLSSocket;\n encrypted: Duplex;\n };\n\n declare incomingMessageIterator: AsyncIterableIterator<Message>;\n\n constructor(socket: Socket, packetSize: number, debug: Debug) {\n super();\n\n this.socket = socket;\n this.debug = debug;\n\n this.tlsNegotiationComplete = false;\n\n this.incomingMessageStream = new IncomingMessageStream(this.debug);\n this.incomingMessageIterator = this.incomingMessageStream[Symbol.asyncIterator]();\n\n this.outgoingMessageStream = new OutgoingMessageStream(this.debug, { packetSize: packetSize });\n\n this.socket.pipe(this.incomingMessageStream);\n this.outgoingMessageStream.pipe(this.socket);\n }\n\n packetSize(...args: [number]) {\n if (args.length > 0) {\n const packetSize = args[0];\n this.debug.log('Packet size changed from ' + this.outgoingMessageStream.packetSize + ' to ' + packetSize);\n this.outgoingMessageStream.packetSize = packetSize;\n }\n\n if (this.securePair) {\n this.securePair.cleartext.setMaxSendFragment(this.outgoingMessageStream.packetSize);\n }\n\n return this.outgoingMessageStream.packetSize;\n }\n\n // Negotiate TLS encryption.\n startTls(credentialsDetails: tls.SecureContextOptions, hostname: string, trustServerCertificate: boolean) {\n if (!credentialsDetails.maxVersion || !['TLSv1.2', 'TLSv1.1', 'TLSv1'].includes(credentialsDetails.maxVersion)) {\n credentialsDetails.maxVersion = 'TLSv1.2';\n }\n\n const secureContext = tls.createSecureContext(credentialsDetails);\n\n return new Promise<void>((resolve, reject) => {\n const duplexpair = new DuplexPair();\n const securePair = this.securePair = {\n cleartext: tls.connect({\n socket: duplexpair.socket1 as Socket,\n servername: hostname,\n secureContext: secureContext,\n rejectUnauthorized: !trustServerCertificate\n }),\n encrypted: duplexpair.socket2\n };\n\n const onSecureConnect = () => {\n securePair.encrypted.removeListener('readable', onReadable);\n securePair.cleartext.removeListener('error', onError);\n securePair.cleartext.removeListener('secureConnect', onSecureConnect);\n\n // If we encounter any errors from this point on,\n // we just forward them to the actual network socket.\n securePair.cleartext.once('error', (err) => {\n this.socket.destroy(err);\n });\n\n const cipher = securePair.cleartext.getCipher();\n if (cipher) {\n this.debug.log('TLS negotiated (' + cipher.name + ', ' + cipher.version + ')');\n }\n\n this.emit('secure', securePair.cleartext);\n\n securePair.cleartext.setMaxSendFragment(this.outgoingMessageStream.packetSize);\n\n this.outgoingMessageStream.unpipe(this.socket);\n this.socket.unpipe(this.incomingMessageStream);\n\n this.socket.pipe(securePair.encrypted);\n securePair.encrypted.pipe(this.socket);\n\n securePair.cleartext.pipe(this.incomingMessageStream);\n this.outgoingMessageStream.pipe(securePair.cleartext);\n\n this.tlsNegotiationComplete = true;\n\n resolve();\n };\n\n const onError = (err?: Error) => {\n securePair.encrypted.removeListener('readable', onReadable);\n securePair.cleartext.removeListener('error', onError);\n securePair.cleartext.removeListener('secureConnect', onSecureConnect);\n\n securePair.cleartext.destroy();\n securePair.encrypted.destroy();\n\n reject(err);\n };\n\n const onReadable = () => {\n // When there is handshake data on the encrypted stream of the secure pair,\n // we wrap it into a `PRELOGIN` message and send it to the server.\n //\n // For each `PRELOGIN` message we sent we get back exactly one response message\n // that contains the server's handshake response data.\n const message = new Message({ type: TYPE.PRELOGIN, resetConnection: false });\n\n let chunk;\n while (chunk = securePair.encrypted.read()) {\n message.write(chunk);\n }\n this.outgoingMessageStream.write(message);\n message.end();\n\n this.readMessage().then(async (response) => {\n // Setup readable handler for the next round of handshaking.\n // If we encounter a `secureConnect` on the cleartext side\n // of the secure pair, the `readable` handler is cleared\n // and no further handshake handling will happen.\n securePair.encrypted.once('readable', onReadable);\n\n for await (const data of response) {\n // We feed the server's handshake response back into the\n // encrypted end of the secure pair.\n securePair.encrypted.write(data);\n }\n }).catch(onError);\n };\n\n securePair.cleartext.once('error', onError);\n securePair.cleartext.once('secureConnect', onSecureConnect);\n securePair.encrypted.once('readable', onReadable);\n });\n }\n\n // TODO listen for 'drain' event when socket.write returns false.\n // TODO implement incomplete request cancelation (2.2.1.6)\n sendMessage(packetType: number, data?: Buffer, resetConnection?: boolean) {\n const message = new Message({ type: packetType, resetConnection: resetConnection });\n message.end(data);\n this.outgoingMessageStream.write(message);\n return message;\n }\n\n /**\n * Read the next incoming message from the socket.\n */\n async readMessage(): Promise<Message> {\n const result = await this.incomingMessageIterator.next();\n\n if (result.done) {\n throw new Error('unexpected end of message stream');\n }\n\n return result.value;\n }\n}\n\nexport default MessageIO;\nmodule.exports = MessageIO;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"message-io.js","names":["_nativeDuplexpair","_interopRequireDefault","require","tls","_interopRequireWildcard","_events","_message","_packet","_incomingMessageStream","_outgoingMessageStream","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MessageIO","EventEmitter","constructor","socket","packetSize","debug","tlsNegotiationComplete","incomingMessageStream","IncomingMessageStream","incomingMessageIterator","Symbol","asyncIterator","outgoingMessageStream","OutgoingMessageStream","pipe","args","length","log","securePair","cleartext","setMaxSendFragment","startTls","credentialsDetails","hostname","trustServerCertificate","maxVersion","includes","secureContext","createSecureContext","Promise","resolve","reject","duplexpair","DuplexPair","connect","socket1","servername","rejectUnauthorized","encrypted","socket2","onSecureConnect","removeListener","onReadable","onError","once","err","destroy","cipher","getCipher","name","version","emit","unpipe","message","Message","type","TYPE","PRELOGIN","resetConnection","chunk","read","write","end","readMessage","then","response","data","catch","sendMessage","packetType","result","next","done","Error","value","_default","exports","module"],"sources":["../src/message-io.ts"],"sourcesContent":["import DuplexPair from 'native-duplexpair';\n\nimport { Duplex } from 'stream';\nimport * as tls from 'tls';\nimport { Socket } from 'net';\nimport { EventEmitter } from 'events';\n\nimport Debug from './debug';\n\nimport Message from './message';\nimport { TYPE } from './packet';\n\nimport IncomingMessageStream from './incoming-message-stream';\nimport OutgoingMessageStream from './outgoing-message-stream';\n\nclass MessageIO extends EventEmitter {\n declare socket: Socket;\n declare debug: Debug;\n\n declare tlsNegotiationComplete: boolean;\n\n declare private incomingMessageStream: IncomingMessageStream;\n declare outgoingMessageStream: OutgoingMessageStream;\n\n declare securePair?: {\n cleartext: tls.TLSSocket;\n encrypted: Duplex;\n };\n\n declare incomingMessageIterator: AsyncIterableIterator<Message>;\n\n constructor(socket: Socket, packetSize: number, debug: Debug) {\n super();\n\n this.socket = socket;\n this.debug = debug;\n\n this.tlsNegotiationComplete = false;\n\n this.incomingMessageStream = new IncomingMessageStream(this.debug);\n this.incomingMessageIterator = this.incomingMessageStream[Symbol.asyncIterator]();\n\n this.outgoingMessageStream = new OutgoingMessageStream(this.debug, { packetSize: packetSize });\n\n this.socket.pipe(this.incomingMessageStream);\n this.outgoingMessageStream.pipe(this.socket);\n }\n\n packetSize(...args: [number]) {\n if (args.length > 0) {\n const packetSize = args[0];\n this.debug.log('Packet size changed from ' + this.outgoingMessageStream.packetSize + ' to ' + packetSize);\n this.outgoingMessageStream.packetSize = packetSize;\n }\n\n if (this.securePair) {\n this.securePair.cleartext.setMaxSendFragment(this.outgoingMessageStream.packetSize);\n }\n\n return this.outgoingMessageStream.packetSize;\n }\n\n // Negotiate TLS encryption.\n startTls(credentialsDetails: tls.SecureContextOptions, hostname: string, trustServerCertificate: boolean) {\n if (!credentialsDetails.maxVersion || !['TLSv1.2', 'TLSv1.1', 'TLSv1'].includes(credentialsDetails.maxVersion)) {\n credentialsDetails.maxVersion = 'TLSv1.2';\n }\n\n const secureContext = tls.createSecureContext(credentialsDetails);\n\n return new Promise<void>((resolve, reject) => {\n const duplexpair = new DuplexPair();\n const securePair = this.securePair = {\n cleartext: tls.connect({\n socket: duplexpair.socket1 as Socket,\n servername: hostname,\n secureContext: secureContext,\n rejectUnauthorized: !trustServerCertificate\n }),\n encrypted: duplexpair.socket2\n };\n\n const onSecureConnect = () => {\n securePair.encrypted.removeListener('readable', onReadable);\n securePair.cleartext.removeListener('error', onError);\n securePair.cleartext.removeListener('secureConnect', onSecureConnect);\n\n // If we encounter any errors from this point on,\n // we just forward them to the actual network socket.\n securePair.cleartext.once('error', (err) => {\n this.socket.destroy(err);\n });\n\n const cipher = securePair.cleartext.getCipher();\n if (cipher) {\n this.debug.log('TLS negotiated (' + cipher.name + ', ' + cipher.version + ')');\n }\n\n this.emit('secure', securePair.cleartext);\n\n securePair.cleartext.setMaxSendFragment(this.outgoingMessageStream.packetSize);\n\n this.outgoingMessageStream.unpipe(this.socket);\n this.socket.unpipe(this.incomingMessageStream);\n\n this.socket.pipe(securePair.encrypted);\n securePair.encrypted.pipe(this.socket);\n\n securePair.cleartext.pipe(this.incomingMessageStream);\n this.outgoingMessageStream.pipe(securePair.cleartext);\n\n this.tlsNegotiationComplete = true;\n\n resolve();\n };\n\n const onError = (err?: Error) => {\n securePair.encrypted.removeListener('readable', onReadable);\n securePair.cleartext.removeListener('error', onError);\n securePair.cleartext.removeListener('secureConnect', onSecureConnect);\n\n securePair.cleartext.destroy();\n securePair.encrypted.destroy();\n\n reject(err);\n };\n\n const onReadable = () => {\n // When there is handshake data on the encrypted stream of the secure pair,\n // we wrap it into a `PRELOGIN` message and send it to the server.\n //\n // For each `PRELOGIN` message we sent we get back exactly one response message\n // that contains the server's handshake response data.\n const message = new Message({ type: TYPE.PRELOGIN, resetConnection: false });\n\n let chunk;\n while (chunk = securePair.encrypted.read()) {\n message.write(chunk);\n }\n this.outgoingMessageStream.write(message);\n message.end();\n\n this.readMessage().then(async (response) => {\n // Setup readable handler for the next round of handshaking.\n // If we encounter a `secureConnect` on the cleartext side\n // of the secure pair, the `readable` handler is cleared\n // and no further handshake handling will happen.\n securePair.encrypted.once('readable', onReadable);\n\n for await (const data of response) {\n // We feed the server's handshake response back into the\n // encrypted end of the secure pair.\n securePair.encrypted.write(data);\n }\n }).catch(onError);\n };\n\n securePair.cleartext.once('error', onError);\n securePair.cleartext.once('secureConnect', onSecureConnect);\n securePair.encrypted.once('readable', onReadable);\n });\n }\n\n // TODO listen for 'drain' event when socket.write returns false.\n // TODO implement incomplete request cancellation (2.2.1.6)\n sendMessage(packetType: number, data?: Buffer, resetConnection?: boolean) {\n const message = new Message({ type: packetType, resetConnection: resetConnection });\n message.end(data);\n this.outgoingMessageStream.write(message);\n return message;\n }\n\n /**\n * Read the next incoming message from the socket.\n */\n async readMessage(): Promise<Message> {\n const result = await this.incomingMessageIterator.next();\n\n if (result.done) {\n throw new Error('unexpected end of message stream');\n }\n\n return result.value;\n }\n}\n\nexport default MessageIO;\nmodule.exports = MessageIO;\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,GAAA,GAAAC,uBAAA,CAAAF,OAAA;AAEA,IAAAG,OAAA,GAAAH,OAAA;AAIA,IAAAI,QAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAEA,IAAAM,sBAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,sBAAA,GAAAR,sBAAA,CAAAC,OAAA;AAA8D,SAAAE,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAV,uBAAAS,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,KAAAU,OAAA,EAAAV,CAAA;AAE9D,MAAMmB,SAAS,SAASC,oBAAY,CAAC;EAgBnCC,WAAWA,CAACC,MAAc,EAAEC,UAAkB,EAAEC,KAAY,EAAE;IAC5D,KAAK,CAAC,CAAC;IAEP,IAAI,CAACF,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACE,KAAK,GAAGA,KAAK;IAElB,IAAI,CAACC,sBAAsB,GAAG,KAAK;IAEnC,IAAI,CAACC,qBAAqB,GAAG,IAAIC,8BAAqB,CAAC,IAAI,CAACH,KAAK,CAAC;IAClE,IAAI,CAACI,uBAAuB,GAAG,IAAI,CAACF,qBAAqB,CAACG,MAAM,CAACC,aAAa,CAAC,CAAC,CAAC;IAEjF,IAAI,CAACC,qBAAqB,GAAG,IAAIC,8BAAqB,CAAC,IAAI,CAACR,KAAK,EAAE;MAAED,UAAU,EAAEA;IAAW,CAAC,CAAC;IAE9F,IAAI,CAACD,MAAM,CAACW,IAAI,CAAC,IAAI,CAACP,qBAAqB,CAAC;IAC5C,IAAI,CAACK,qBAAqB,CAACE,IAAI,CAAC,IAAI,CAACX,MAAM,CAAC;EAC9C;EAEAC,UAAUA,CAAC,GAAGW,IAAc,EAAE;IAC5B,IAAIA,IAAI,CAACC,MAAM,GAAG,CAAC,EAAE;MACnB,MAAMZ,UAAU,GAAGW,IAAI,CAAC,CAAC,CAAC;MAC1B,IAAI,CAACV,KAAK,CAACY,GAAG,CAAC,2BAA2B,GAAG,IAAI,CAACL,qBAAqB,CAACR,UAAU,GAAG,MAAM,GAAGA,UAAU,CAAC;MACzG,IAAI,CAACQ,qBAAqB,CAACR,UAAU,GAAGA,UAAU;IACpD;IAEA,IAAI,IAAI,CAACc,UAAU,EAAE;MACnB,IAAI,CAACA,UAAU,CAACC,SAAS,CAACC,kBAAkB,CAAC,IAAI,CAACR,qBAAqB,CAACR,UAAU,CAAC;IACrF;IAEA,OAAO,IAAI,CAACQ,qBAAqB,CAACR,UAAU;EAC9C;;EAEA;EACAiB,QAAQA,CAACC,kBAA4C,EAAEC,QAAgB,EAAEC,sBAA+B,EAAE;IACxG,IAAI,CAACF,kBAAkB,CAACG,UAAU,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAACC,QAAQ,CAACJ,kBAAkB,CAACG,UAAU,CAAC,EAAE;MAC9GH,kBAAkB,CAACG,UAAU,GAAG,SAAS;IAC3C;IAEA,MAAME,aAAa,GAAGrD,GAAG,CAACsD,mBAAmB,CAACN,kBAAkB,CAAC;IAEjE,OAAO,IAAIO,OAAO,CAAO,CAACC,OAAO,EAAEC,MAAM,KAAK;MAC5C,MAAMC,UAAU,GAAG,IAAIC,yBAAU,CAAC,CAAC;MACnC,MAAMf,UAAU,GAAG,IAAI,CAACA,UAAU,GAAG;QACnCC,SAAS,EAAE7C,GAAG,CAAC4D,OAAO,CAAC;UACrB/B,MAAM,EAAE6B,UAAU,CAACG,OAAiB;UACpCC,UAAU,EAAEb,QAAQ;UACpBI,aAAa,EAAEA,aAAa;UAC5BU,kBAAkB,EAAE,CAACb;QACvB,CAAC,CAAC;QACFc,SAAS,EAAEN,UAAU,CAACO;MACxB,CAAC;MAED,MAAMC,eAAe,GAAGA,CAAA,KAAM;QAC5BtB,UAAU,CAACoB,SAAS,CAACG,cAAc,CAAC,UAAU,EAAEC,UAAU,CAAC;QAC3DxB,UAAU,CAACC,SAAS,CAACsB,cAAc,CAAC,OAAO,EAAEE,OAAO,CAAC;QACrDzB,UAAU,CAACC,SAAS,CAACsB,cAAc,CAAC,eAAe,EAAED,eAAe,CAAC;;QAErE;QACA;QACAtB,UAAU,CAACC,SAAS,CAACyB,IAAI,CAAC,OAAO,EAAGC,GAAG,IAAK;UAC1C,IAAI,CAAC1C,MAAM,CAAC2C,OAAO,CAACD,GAAG,CAAC;QAC1B,CAAC,CAAC;QAEF,MAAME,MAAM,GAAG7B,UAAU,CAACC,SAAS,CAAC6B,SAAS,CAAC,CAAC;QAC/C,IAAID,MAAM,EAAE;UACV,IAAI,CAAC1C,KAAK,CAACY,GAAG,CAAC,kBAAkB,GAAG8B,MAAM,CAACE,IAAI,GAAG,IAAI,GAAGF,MAAM,CAACG,OAAO,GAAG,GAAG,CAAC;QAChF;QAEA,IAAI,CAACC,IAAI,CAAC,QAAQ,EAAEjC,UAAU,CAACC,SAAS,CAAC;QAEzCD,UAAU,CAACC,SAAS,CAACC,kBAAkB,CAAC,IAAI,CAACR,qBAAqB,CAACR,UAAU,CAAC;QAE9E,IAAI,CAACQ,qBAAqB,CAACwC,MAAM,CAAC,IAAI,CAACjD,MAAM,CAAC;QAC9C,IAAI,CAACA,MAAM,CAACiD,MAAM,CAAC,IAAI,CAAC7C,qBAAqB,CAAC;QAE9C,IAAI,CAACJ,MAAM,CAACW,IAAI,CAACI,UAAU,CAACoB,SAAS,CAAC;QACtCpB,UAAU,CAACoB,SAAS,CAACxB,IAAI,CAAC,IAAI,CAACX,MAAM,CAAC;QAEtCe,UAAU,CAACC,SAAS,CAACL,IAAI,CAAC,IAAI,CAACP,qBAAqB,CAAC;QACrD,IAAI,CAACK,qBAAqB,CAACE,IAAI,CAACI,UAAU,CAACC,SAAS,CAAC;QAErD,IAAI,CAACb,sBAAsB,GAAG,IAAI;QAElCwB,OAAO,CAAC,CAAC;MACX,CAAC;MAED,MAAMa,OAAO,GAAIE,GAAW,IAAK;QAC/B3B,UAAU,CAACoB,SAAS,CAACG,cAAc,CAAC,UAAU,EAAEC,UAAU,CAAC;QAC3DxB,UAAU,CAACC,SAAS,CAACsB,cAAc,CAAC,OAAO,EAAEE,OAAO,CAAC;QACrDzB,UAAU,CAACC,SAAS,CAACsB,cAAc,CAAC,eAAe,EAAED,eAAe,CAAC;QAErEtB,UAAU,CAACC,SAAS,CAAC2B,OAAO,CAAC,CAAC;QAC9B5B,UAAU,CAACoB,SAAS,CAACQ,OAAO,CAAC,CAAC;QAE9Bf,MAAM,CAACc,GAAG,CAAC;MACb,CAAC;MAED,MAAMH,UAAU,GAAGA,CAAA,KAAM;QACvB;QACA;QACA;QACA;QACA;QACA,MAAMW,OAAO,GAAG,IAAIC,gBAAO,CAAC;UAAEC,IAAI,EAAEC,YAAI,CAACC,QAAQ;UAAEC,eAAe,EAAE;QAAM,CAAC,CAAC;QAE5E,IAAIC,KAAK;QACT,OAAOA,KAAK,GAAGzC,UAAU,CAACoB,SAAS,CAACsB,IAAI,CAAC,CAAC,EAAE;UAC1CP,OAAO,CAACQ,KAAK,CAACF,KAAK,CAAC;QACtB;QACA,IAAI,CAAC/C,qBAAqB,CAACiD,KAAK,CAACR,OAAO,CAAC;QACzCA,OAAO,CAACS,GAAG,CAAC,CAAC;QAEb,IAAI,CAACC,WAAW,CAAC,CAAC,CAACC,IAAI,CAAC,MAAOC,QAAQ,IAAK;UAC1C;UACA;UACA;UACA;UACA/C,UAAU,CAACoB,SAAS,CAACM,IAAI,CAAC,UAAU,EAAEF,UAAU,CAAC;UAEjD,WAAW,MAAMwB,IAAI,IAAID,QAAQ,EAAE;YACjC;YACA;YACA/C,UAAU,CAACoB,SAAS,CAACuB,KAAK,CAACK,IAAI,CAAC;UAClC;QACF,CAAC,CAAC,CAACC,KAAK,CAACxB,OAAO,CAAC;MACnB,CAAC;MAEDzB,UAAU,CAACC,SAAS,CAACyB,IAAI,CAAC,OAAO,EAAED,OAAO,CAAC;MAC3CzB,UAAU,CAACC,SAAS,CAACyB,IAAI,CAAC,eAAe,EAAEJ,eAAe,CAAC;MAC3DtB,UAAU,CAACoB,SAAS,CAACM,IAAI,CAAC,UAAU,EAAEF,UAAU,CAAC;IACnD,CAAC,CAAC;EACJ;;EAEA;EACA;EACA0B,WAAWA,CAACC,UAAkB,EAAEH,IAAa,EAAER,eAAyB,EAAE;IACxE,MAAML,OAAO,GAAG,IAAIC,gBAAO,CAAC;MAAEC,IAAI,EAAEc,UAAU;MAAEX,eAAe,EAAEA;IAAgB,CAAC,CAAC;IACnFL,OAAO,CAACS,GAAG,CAACI,IAAI,CAAC;IACjB,IAAI,CAACtD,qBAAqB,CAACiD,KAAK,CAACR,OAAO,CAAC;IACzC,OAAOA,OAAO;EAChB;;EAEA;AACF;AACA;EACE,MAAMU,WAAWA,CAAA,EAAqB;IACpC,MAAMO,MAAM,GAAG,MAAM,IAAI,CAAC7D,uBAAuB,CAAC8D,IAAI,CAAC,CAAC;IAExD,IAAID,MAAM,CAACE,IAAI,EAAE;MACf,MAAM,IAAIC,KAAK,CAAC,kCAAkC,CAAC;IACrD;IAEA,OAAOH,MAAM,CAACI,KAAK;EACrB;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAArF,OAAA,GAEcS,SAAS;AACxB6E,MAAM,CAACD,OAAO,GAAG5E,SAAS","ignoreList":[]}
package/lib/request.d.ts CHANGED
@@ -39,7 +39,7 @@ interface RequestOptions {
39
39
  /**
40
40
  * ```js
41
41
  * const { Request } = require('tedious');
42
- * const request = new Request("select 42, 'hello world'", (err, rowCount) {
42
+ * const request = new Request("select 42, 'hello world'", (err, rowCount) => {
43
43
  * // Request completion callback...
44
44
  * });
45
45
  * connection.execSql(request);
@@ -137,7 +137,7 @@ declare class Request extends EventEmitter {
137
137
  on(event: 'row', listener:
138
138
  /**
139
139
  * An array or object (depends on [[ConnectionOptions.useColumnNames]]), where the columns can be accessed by index/name.
140
- * Each column has two properties, `metadata` and `value`:
140
+ * Each column has two properties, `metadata` and `value`:
141
141
  *
142
142
  * * `metadata`
143
143
  *
@@ -225,7 +225,7 @@ declare class Request extends EventEmitter {
225
225
  * The parameter's output value.
226
226
  *
227
227
  * @param metadata
228
- * The same data that is exposed in the `columnMetaData` event.
228
+ * The same data that is exposed in the `columnMetadata` event.
229
229
  */
230
230
  (parameterName: string, value: unknown, metadata: Metadata) => void): this;
231
231
  /**
@@ -344,7 +344,7 @@ declare class Request extends EventEmitter {
344
344
  */
345
345
  validateParameters(collation: Collation | undefined): void;
346
346
  /**
347
- * Temporarily suspends the flow of data from the database. No more `row` events will be emitted until [[resume] is called.
347
+ * Temporarily suspends the flow of data from the database. No more `row` events will be emitted until [[resume]] is called.
348
348
  * If this request is already in a paused state, calling [[pause]] has no effect.
349
349
  */
350
350
  pause(): void;