@pipeline-builder/pipeline-data 4.3.12 → 4.3.14

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.
Files changed (33) hide show
  1. package/lib/api/managed-toolchain.d.ts +1 -5
  2. package/lib/api/managed-toolchain.js +18 -20
  3. package/lib/api/public-directory.d.ts +4 -15
  4. package/lib/api/public-directory.js +1 -31
  5. package/lib/api/reporting/stakeholder/compose.d.ts +3 -2
  6. package/lib/api/reporting/stakeholder/compose.js +1 -1
  7. package/lib/api/reporting/stakeholder/period.d.ts +5 -4
  8. package/lib/api/reporting/stakeholder/period.js +1 -1
  9. package/lib/api/reporting/stakeholder/sections.d.ts +4 -4
  10. package/lib/api/reporting/stakeholder/sections.js +1 -1
  11. package/lib/api/reporting/stakeholder/store.d.ts +3 -2
  12. package/lib/api/reporting/stakeholder/store.js +1 -1
  13. package/lib/api/reporting/toolchain-runs.d.ts +0 -6
  14. package/lib/api/reporting/toolchain-runs.js +4 -5
  15. package/lib/api/reporting/types.d.ts +3 -2
  16. package/lib/api/reporting/types.js +1 -1
  17. package/lib/api/support-cases.d.ts +50 -24
  18. package/lib/api/support-cases.js +96 -37
  19. package/lib/core/query-filters.d.ts +6 -6
  20. package/lib/core/query-filters.js +1 -1
  21. package/lib/database/drizzle-schema.d.ts +48 -41
  22. package/lib/database/schema/alert.js +4 -4
  23. package/lib/database/schema/compliance.d.ts +29 -40
  24. package/lib/database/schema/compliance.js +10 -14
  25. package/lib/database/schema/ecosystem.d.ts +17 -0
  26. package/lib/database/schema/ecosystem.js +6 -1
  27. package/lib/database/schema/message.js +2 -2
  28. package/lib/database/schema/reporting-stakeholder.d.ts +2 -1
  29. package/lib/database/schema/reporting-stakeholder.js +2 -27
  30. package/lib/index.d.ts +4 -4
  31. package/lib/index.js +5 -5
  32. package/lib/testing/exports.json +2 -4
  33. package/package.json +2 -2
@@ -41,7 +41,7 @@ export const message = pgTable('messages', {
41
41
  recipientOrgId: varchar('recipient_org_id', { length: 255 })
42
42
  .notNull(),
43
43
  // Optional per-user targeting WITHIN the recipient org. NULL (default) = the
44
- // whole recipient org sees it — the original, backward-compatible behavior.
44
+ // whole recipient org sees it.
45
45
  // When set, only this user (a member of `recipientOrgId`) sees it, enforced in
46
46
  // `buildMessageConditions` against the viewer's userId. Announcement broadcasts
47
47
  // (`recipientOrgId = '*'`) never set this — they are org-wide by definition.
@@ -130,4 +130,4 @@ export const message = pgTable('messages', {
130
130
  readByIdx: index('message_read_by_idx').using('gin', table.readBy),
131
131
  hiddenByIdx: index('message_hidden_by_idx').using('gin', table.hiddenBy),
132
132
  }));
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RhdGFiYXNlL3NjaGVtYS9tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLGFBQWEsRUFBMEMsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJckc7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsRUFBRTtJQUN6QyxjQUFjO0lBQ2QsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxhQUFhLEVBQUU7SUFFM0Msa0NBQWtDO0lBQ2xDLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO1NBQ3RDLE9BQU8sQ0FBQyxhQUFhLENBQUM7U0FDdEIsT0FBTyxFQUFFO0lBRVosZUFBZTtJQUNmLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQzFCLE9BQU8sQ0FBQyxhQUFhLENBQUM7U0FDdEIsT0FBTyxFQUFFO0lBQ1osU0FBUyxFQUFFLFNBQVMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDdkQsVUFBVSxFQUFFO1NBQ1osT0FBTyxFQUFFO0lBQ1osU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDMUIsT0FBTyxDQUFDLGFBQWEsQ0FBQztTQUN0QixPQUFPLEVBQUU7SUFDWixTQUFTLEVBQUUsU0FBUyxDQUFDLFlBQVksRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUN2RCxVQUFVLEVBQUU7U0FDWixPQUFPLEVBQUU7SUFFWixZQUFZO0lBQ1osUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUM7SUFFM0Isa0JBQWtCO0lBQ2xCLGNBQWMsRUFBRSxPQUFPLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7U0FDekQsT0FBTyxFQUFFO0lBRVosNkVBQTZFO0lBQzdFLDRFQUE0RTtJQUM1RSwrRUFBK0U7SUFDL0UsZ0ZBQWdGO0lBQ2hGLDZFQUE2RTtJQUM3RSxlQUFlLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBRTlELGtCQUFrQjtJQUNsQixXQUFXLEVBQUUsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztTQUNqRCxLQUFLLEVBQWU7U0FDcEIsT0FBTyxDQUFDLGNBQTZCLENBQUM7U0FDdEMsT0FBTyxFQUFFO0lBQ1oscUVBQXFFO0lBQ3JFLHNFQUFzRTtJQUN0RSxPQUFPLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUMzQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztTQUN6QyxPQUFPLEVBQUU7SUFDWixPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUNyQixPQUFPLEVBQUU7SUFDWiw2RUFBNkU7SUFDN0UsOEVBQThFO0lBQzlFLDZFQUE2RTtJQUM3RSxRQUFRLEVBQUUsU0FBUyxDQUFDLFdBQVcsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUV4RCxTQUFTO0lBQ1QsMkVBQTJFO0lBQzNFLHVFQUF1RTtJQUN2RSxnQ0FBZ0M7SUFDaEMsTUFBTSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUM7U0FDckIsS0FBSyxFQUEwQjtTQUMvQixPQUFPLENBQUMsRUFBRSxDQUFDO1NBQ1gsT0FBTyxFQUFFO0lBQ1o7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxRQUFRLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQztTQUN6QixLQUFLLEVBQTBCO1NBQy9CLE9BQU8sQ0FBQyxFQUFFLENBQUM7U0FDWCxPQUFPLEVBQUU7SUFDWixRQUFRLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztTQUMxQyxLQUFLLEVBQW1CO1NBQ3hCLE9BQU8sQ0FBQyxRQUEyQixDQUFDO1NBQ3BDLE9BQU8sRUFBRTtJQUVaLHdFQUF3RTtJQUN4RSw2RUFBNkU7SUFDN0UsOEVBQThFO0lBQzlFLHdFQUF3RTtJQUN4RSwwQ0FBMEM7SUFDMUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUM7U0FDN0IsT0FBTyxDQUFDLEtBQUssQ0FBQztTQUNkLE9BQU8sRUFBRTtJQUNaLFFBQVEsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDO1NBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUM7U0FDYixPQUFPLEVBQUU7SUFFWixrQ0FBa0M7SUFDbEMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDMUQsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsMEVBQTBFO0lBQzFFLDJFQUEyRTtJQUMzRSxVQUFVLEVBQUUsU0FBUyxDQUFDLGFBQWEsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQztDQUM3RCxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2IsNkVBQTZFO0lBQzdFLFFBQVEsRUFBRSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUEsd0JBQXdCLENBQUM7SUFDNUYsNkJBQTZCO0lBQzdCLFFBQVEsRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUNyRCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztJQUNqRixXQUFXLEVBQUUsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDOUQsY0FBYyxFQUFFLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBQ3ZFLFVBQVUsRUFBRSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUMxRCxZQUFZLEVBQUUsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7SUFDakUsU0FBUyxFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBRXpELG1FQUFtRTtJQUNuRSx5QkFBeUIsRUFBRSxLQUFLLENBQUMsc0NBQXNDLENBQUM7U0FDckUsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDO0lBRTVELDhFQUE4RTtJQUM5RSxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsNEJBQTRCLENBQUM7U0FDbEQsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDO0lBRWxFLGlEQUFpRDtJQUNqRCxZQUFZLEVBQUUsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUM3RSxrRkFBa0Y7SUFDbEYsU0FBUyxFQUFFLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUNsRSxXQUFXLEVBQUUsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDO0NBQ3pFLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IFNZU1RFTV9PUkdfSUQsIHR5cGUgTWVzc2FnZVByaW9yaXR5LCB0eXBlIE1lc3NhZ2VUeXBlIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHsgc3FsIH0gZnJvbSAnZHJpenpsZS1vcm0nO1xuaW1wb3J0IHsgYm9vbGVhbiwgdmFyY2hhciwgcGdUYWJsZSwgdGV4dCwgdGltZXN0YW1wLCB1dWlkLCBqc29uYiwgaW5kZXggfSBmcm9tICdkcml6emxlLW9ybS9wZy1jb3JlJztcblxuZXhwb3J0IHR5cGUgeyBNZXNzYWdlVHlwZSwgTWVzc2FnZVByaW9yaXR5IH07XG5cbi8qKlxuICogVGFibGUgZm9yIHN0b3JpbmcgaW50ZXJuYWwgbWVzc2FnZXMgYmV0d2VlbiBvcmdhbml6YXRpb25zIGFuZCB0aGUgc3lzdGVtIG9yZy5cbiAqXG4gKiBGZWF0dXJlcyAqIC0gQW5ub3VuY2VtZW50czogU3lzdGVtIG9yZyBicm9hZGNhc3RzIHRvIGFsbCBvcmdzIChyZWNpcGllbnRPcmdJZCA9ICcqJylcbiAqIC0gQ29udmVyc2F0aW9uczogVHdvLXdheSB0aHJlYWRlZCBtZXNzYWdpbmcgYmV0d2VlbiBhbiBvcmcgYW5kIHN5c3RlbSBvcmdcbiAqIC0gVGhyZWFkIHN1cHBvcnQgdmlhIHRocmVhZElkIChudWxsIGZvciByb290IG1lc3NhZ2VzLCByZWZlcmVuY2VzIHJvb3QgZm9yIHJlcGxpZXMpXG4gKiAtIFJlYWQgdHJhY2tpbmcgcGVyIG1lc3NhZ2VcbiAqIC0gUHJpb3JpdHkgbGV2ZWxzIChub3JtYWwsIGhpZ2gsIHVyZ2VudClcbiAqIC0gU29mdCBkZWxldGUgc3VwcG9ydFxuICpcbiAqIEB0YWJsZSBtZXNzYWdlc1xuICovXG5leHBvcnQgY29uc3QgbWVzc2FnZSA9IHBnVGFibGUoJ21lc3NhZ2VzJywge1xuICAvLyBQcmltYXJ5IGtleVxuICBpZDogdXVpZCgnaWQnKS5wcmltYXJ5S2V5KCkuZGVmYXVsdFJhbmRvbSgpLFxuXG4gIC8vIE9yZ2FuaXphdGlvbiBhbmQgYWNjZXNzIGNvbnRyb2xcbiAgb3JnSWQ6IHZhcmNoYXIoJ29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSlcbiAgICAuZGVmYXVsdChTWVNURU1fT1JHX0lEKVxuICAgIC5ub3ROdWxsKCksXG5cbiAgLy8gQXVkaXQgZmllbGRzXG4gIGNyZWF0ZWRCeTogdGV4dCgnY3JlYXRlZF9ieScpXG4gICAgLmRlZmF1bHQoU1lTVEVNX09SR19JRClcbiAgICAubm90TnVsbCgpLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pXG4gICAgLmRlZmF1bHROb3coKVxuICAgIC5ub3ROdWxsKCksXG4gIHVwZGF0ZWRCeTogdGV4dCgndXBkYXRlZF9ieScpXG4gICAgLmRlZmF1bHQoU1lTVEVNX09SR19JRClcbiAgICAubm90TnVsbCgpLFxuICB1cGRhdGVkQXQ6IHRpbWVzdGFtcCgndXBkYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pXG4gICAgLmRlZmF1bHROb3coKVxuICAgIC5ub3ROdWxsKCksXG5cbiAgLy8gVGhyZWFkaW5nXG4gIHRocmVhZElkOiB1dWlkKCd0aHJlYWRfaWQnKSxcblxuICAvLyBNZXNzYWdlIHJvdXRpbmdcbiAgcmVjaXBpZW50T3JnSWQ6IHZhcmNoYXIoJ3JlY2lwaWVudF9vcmdfaWQnLCB7IGxlbmd0aDogMjU1IH0pXG4gICAgLm5vdE51bGwoKSxcblxuICAvLyBPcHRpb25hbCBwZXItdXNlciB0YXJnZXRpbmcgV0lUSElOIHRoZSByZWNpcGllbnQgb3JnLiBOVUxMIChkZWZhdWx0KSA9IHRoZVxuICAvLyB3aG9sZSByZWNpcGllbnQgb3JnIHNlZXMgaXQg4oCUIHRoZSBvcmlnaW5hbCwgYmFja3dhcmQtY29tcGF0aWJsZSBiZWhhdmlvci5cbiAgLy8gV2hlbiBzZXQsIG9ubHkgdGhpcyB1c2VyIChhIG1lbWJlciBvZiBgcmVjaXBpZW50T3JnSWRgKSBzZWVzIGl0LCBlbmZvcmNlZCBpblxuICAvLyBgYnVpbGRNZXNzYWdlQ29uZGl0aW9uc2AgYWdhaW5zdCB0aGUgdmlld2VyJ3MgdXNlcklkLiBBbm5vdW5jZW1lbnQgYnJvYWRjYXN0c1xuICAvLyAoYHJlY2lwaWVudE9yZ0lkID0gJyonYCkgbmV2ZXIgc2V0IHRoaXMg4oCUIHRoZXkgYXJlIG9yZy13aWRlIGJ5IGRlZmluaXRpb24uXG4gIHJlY2lwaWVudFVzZXJJZDogdmFyY2hhcigncmVjaXBpZW50X3VzZXJfaWQnLCB7IGxlbmd0aDogMjU1IH0pLFxuXG4gIC8vIE1lc3NhZ2UgY29udGVudFxuICBtZXNzYWdlVHlwZTogdmFyY2hhcignbWVzc2FnZV90eXBlJywgeyBsZW5ndGg6IDIwIH0pXG4gICAgLiR0eXBlPE1lc3NhZ2VUeXBlPigpXG4gICAgLmRlZmF1bHQoJ2NvbnZlcnNhdGlvbicgYXMgTWVzc2FnZVR5cGUpXG4gICAgLm5vdE51bGwoKSxcbiAgLy8gTG9naWNhbCBjaGFubmVsL2luYm94IGJ1Y2tldCDigJQgJ3N1cHBvcnQnLCAnaGVscCcsIGV0Yy4gTnVsbGFibGUgc29cbiAgLy8gb3JnLXRvLW9yZyBjb252ZXJzYXRpb25zICh3aGljaCBhcmVuJ3QgY2hhbm5lbC1zY29wZWQpIGNhbiBvbWl0IGl0LlxuICBjaGFubmVsOiB2YXJjaGFyKCdjaGFubmVsJywgeyBsZW5ndGg6IDUwIH0pLFxuICBzdWJqZWN0OiB2YXJjaGFyKCdzdWJqZWN0JywgeyBsZW5ndGg6IDUwMCB9KVxuICAgIC5ub3ROdWxsKCksXG4gIGNvbnRlbnQ6IHRleHQoJ2NvbnRlbnQnKVxuICAgIC5ub3ROdWxsKCksXG4gIC8vIFNldCB3aGVuIHRoZSBhdXRob3IgZWRpdHMgdGhlIGNvbnRlbnQgYWZ0ZXIgc2VuZGluZyAoTlVMTCA9IG5ldmVyIGVkaXRlZCkuXG4gIC8vIERpc3RpbmN0IGZyb20gYHVwZGF0ZWRBdGAsIHdoaWNoIGFsc28gbW92ZXMgb24gcmVhZC1yZWNlaXB0L3N5c3RlbSB1cGRhdGVzO1xuICAvLyBgZWRpdGVkQXRgIG1hcmtzIGEgaHVtYW4gQ09OVEVOVCBlZGl0IHNvIHRoZSBVSSBjYW4gc2hvdyBhbiBcImVkaXRlZFwiIGhpbnQuXG4gIGVkaXRlZEF0OiB0aW1lc3RhbXAoJ2VkaXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuXG4gIC8vIFN0YXR1c1xuICAvLyBgcmVhZEJ5YCBpcyB0aGUgcGVyLXBhcnRpY2lwYW50IHJlYWQtcmVjZWlwdCBtYXA6IG9yZ0lkIOKGkiBJU08gdGltZXN0YW1wLlxuICAvLyBSZWNpcGllbnQgbWFya2luZyB0aGUgdGhyZWFkIGRvZXMgTk9UIGZsaXAgc2VuZGVyJ3Mgdmlldy4gRW1wdHkgYHt9YFxuICAvLyBtZWFucyBub2JvZHkgaGFzIHJlYWQgaXQgeWV0LlxuICByZWFkQnk6IGpzb25iKCdyZWFkX2J5JylcbiAgICAuJHR5cGU8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oKVxuICAgIC5kZWZhdWx0KHt9KVxuICAgIC5ub3ROdWxsKCksXG4gIC8qKlxuICAgKiBUaGUgcGVyLXBhcnRpY2lwYW50IElOQk9YIG1hcDogb3JnSWQg4oaSIElTTyB0aW1lc3RhbXAsIHN0YW1wZWQgd2hlbiBhbiBvcmdcbiAgICogcmVtb3ZlcyBhIG1lc3NhZ2UgZnJvbSBpdHMgb3duIHZpZXcuXG4gICAqXG4gICAqIERlbGliZXJhdGVseSBOT1QgYSBkZWxldGUuIGBkZWxldGVkQXRgIHRha2VzIHRoZSBtZXNzYWdlIGF3YXkgZnJvbVxuICAgKiBldmVyeW9uZSwgd2hpY2ggaXMgd2h5IGl0IGlzIHJlc3RyaWN0ZWQgdG8gdGhlIGF1dGhvciAob3IgYSBzeXNhZG1pbik7IHRoaXNcbiAgICogdGFrZXMgaXQgb3V0IG9mIE9ORSBvcmcncyBpbmJveCBhbmQgbGVhdmVzIHRoZSByb3csIHRoZSBvdGhlciBwYXJ0aWNpcGFudHMsXG4gICAqIHRoZSByZXRlbnRpb24gc3dlZXAgYW5kIHRoZSBhdWRpdCB0cmFpbCB1bnRvdWNoZWQuIE1pcnJvcnMgYHJlYWRCeWAgZXhhY3RseVxuICAgKiDigJQgc2FtZSBzaGFwZSwgc2FtZSBHSU4gaW5kZXgsIHNhbWUgYGNvYWxlc2NlYCByZXF1aXJlbWVudCBpbiBwcmVkaWNhdGVzIOKAlFxuICAgKiBiZWNhdXNlIGl0IGlzIHRoZSBzYW1lIGtpbmQgb2YgdGhpbmc6IHRoZSB2aWV3ZXIncyBvd24gc3RhdGUsIG5vdCB0aGVcbiAgICogbWVzc2FnZSdzLlxuICAgKi9cbiAgaGlkZGVuQnk6IGpzb25iKCdoaWRkZW5fYnknKVxuICAgIC4kdHlwZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PigpXG4gICAgLmRlZmF1bHQoe30pXG4gICAgLm5vdE51bGwoKSxcbiAgcHJpb3JpdHk6IHZhcmNoYXIoJ3ByaW9yaXR5JywgeyBsZW5ndGg6IDIwIH0pXG4gICAgLiR0eXBlPE1lc3NhZ2VQcmlvcml0eT4oKVxuICAgIC5kZWZhdWx0KCdub3JtYWwnIGFzIE1lc3NhZ2VQcmlvcml0eSlcbiAgICAubm90TnVsbCgpLFxuXG4gIC8vIE5PVEU6IG1lc3NhZ2VzIGNhcnJ5IE5PIHNoYXJpbmcgcnVuZy4gVGhlaXIgdmlzaWJpbGl0eSBpcyB0aGUgYmVzcG9rZVxuICAvLyBzZW5kZXIvcmVjaXBpZW50L2Jyb2FkY2FzdCBwcmVkaWNhdGUgaW4gYGJ1aWxkTWVzc2FnZUNvbmRpdGlvbnNgIChwbHVzIHRoZVxuICAvLyBwZXItdXNlciBgcmVjaXBpZW50X3VzZXJfaWRgIG5hcnJvd2luZykg4oCUIGEgbGFkZGVyIHdvdWxkIGJlIG1lYW5pbmdsZXNzIGFuZFxuICAvLyB0aGUgYGFjY2Vzc19tb2RpZmllcmAgY29sdW1uIHRoaXMgcmVwbGFjZWQgd2FzIHdyaXR0ZW4gYXMgYSBoYXJkY29kZWRcbiAgLy8gJ3ByaXZhdGUnIG9uIGV2ZXJ5IHBhdGggYW5kIG5ldmVyIHJlYWQuXG4gIGlzRGVmYXVsdDogYm9vbGVhbignaXNfZGVmYXVsdCcpXG4gICAgLmRlZmF1bHQoZmFsc2UpXG4gICAgLm5vdE51bGwoKSxcbiAgaXNBY3RpdmU6IGJvb2xlYW4oJ2lzX2FjdGl2ZScpXG4gICAgLmRlZmF1bHQodHJ1ZSlcbiAgICAubm90TnVsbCgpLFxuXG4gIC8vIERlbGV0aW9uIHRyYWNraW5nIChzb2Z0IGRlbGV0ZSlcbiAgZGVsZXRlZEF0OiB0aW1lc3RhbXAoJ2RlbGV0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgZGVsZXRlZEJ5OiB0ZXh0KCdkZWxldGVkX2J5JyksXG4gIC8vIFNvZnQtZGVsZXRlIHB1cmdlIGRlYWRsaW5lOiB0aGUgcmV0ZW50aW9uIHN3ZWVwIGhhcmQtZGVsZXRlcyB0b21ic3RvbmVkXG4gIC8vIHJvd3Mgb25jZSBgcHVyZ2VfYWZ0ZXJgIGhhcyBwYXNzZWQgKHNldCBvbiBkZWxldGUgYWxvbmdzaWRlIGRlbGV0ZWRfYXQpLlxuICBwdXJnZUFmdGVyOiB0aW1lc3RhbXAoJ3B1cmdlX2FmdGVyJywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG59LCAodGFibGUpID0+ICh7XG4gIC8vIFBhcnRpYWwgaW5kZXggb3ZlciBqdXN0IHRoZSB0b21ic3RvbmVzIOKAlCBkcml2ZXMgdGhlIHJldGVudGlvbiBwdXJnZSBzd2VlcC5cbiAgcHVyZ2VJZHg6IGluZGV4KCdtZXNzYWdlX3B1cmdlX2lkeCcpLm9uKHRhYmxlLnB1cmdlQWZ0ZXIpLndoZXJlKHNxbGBkZWxldGVkX2F0IElTIE5PVCBOVUxMYCksXG4gIC8vIEluZGV4ZXMgZm9yIGNvbW1vbiBxdWVyaWVzXG4gIG9yZ0lkSWR4OiBpbmRleCgnbWVzc2FnZV9vcmdfaWRfaWR4Jykub24odGFibGUub3JnSWQpLFxuICByZWNpcGllbnRPcmdJZElkeDogaW5kZXgoJ21lc3NhZ2VfcmVjaXBpZW50X29yZ19pZF9pZHgnKS5vbih0YWJsZS5yZWNpcGllbnRPcmdJZCksXG4gIHRocmVhZElkSWR4OiBpbmRleCgnbWVzc2FnZV90aHJlYWRfaWRfaWR4Jykub24odGFibGUudGhyZWFkSWQpLFxuICBtZXNzYWdlVHlwZUlkeDogaW5kZXgoJ21lc3NhZ2VfbWVzc2FnZV90eXBlX2lkeCcpLm9uKHRhYmxlLm1lc3NhZ2VUeXBlKSxcbiAgY2hhbm5lbElkeDogaW5kZXgoJ21lc3NhZ2VfY2hhbm5lbF9pZHgnKS5vbih0YWJsZS5jaGFubmVsKSxcbiAgY3JlYXRlZEF0SWR4OiBpbmRleCgnbWVzc2FnZV9jcmVhdGVkX2F0X2lkeCcpLm9uKHRhYmxlLmNyZWF0ZWRBdCksXG4gIGFjdGl2ZUlkeDogaW5kZXgoJ21lc3NhZ2VfYWN0aXZlX2lkeCcpLm9uKHRhYmxlLmlzQWN0aXZlKSxcblxuICAvLyBDb21wb3NpdGUgaW5kZXggZm9yIGluYm94IHF1ZXJpZXMgKHJlY2lwaWVudCArIGFjdGl2ZSArIGNyZWF0ZWQpXG4gIHJlY2lwaWVudEFjdGl2ZUNyZWF0ZWRJZHg6IGluZGV4KCdtZXNzYWdlX3JlY2lwaWVudF9hY3RpdmVfY3JlYXRlZF9pZHgnKVxuICAgIC5vbih0YWJsZS5yZWNpcGllbnRPcmdJZCwgdGFibGUuaXNBY3RpdmUsIHRhYmxlLmNyZWF0ZWRBdCksXG5cbiAgLy8gQ29tcG9zaXRlIGluZGV4IGZvciBwZXItdXNlciB0YXJnZXRlZCBpbmJveCBsb29rdXBzIChyZWNpcGllbnQgb3JnICsgdXNlcikuXG4gIHJlY2lwaWVudFVzZXJJZHg6IGluZGV4KCdtZXNzYWdlX3JlY2lwaWVudF91c2VyX2lkeCcpXG4gICAgLm9uKHRhYmxlLnJlY2lwaWVudE9yZ0lkLCB0YWJsZS5yZWNpcGllbnRVc2VySWQsIHRhYmxlLmlzQWN0aXZlKSxcblxuICAvLyBDb21wb3NpdGUgaW5kZXggZm9yIG9yZyBpbmJveCAob3JnSWQgKyBhY3RpdmUpXG4gIG9yZ0FjdGl2ZUlkeDogaW5kZXgoJ21lc3NhZ2Vfb3JnX2FjdGl2ZV9pZHgnKS5vbih0YWJsZS5vcmdJZCwgdGFibGUuaXNBY3RpdmUpLFxuICAvLyBHSU4gb3ZlciB0aGUgcGVyLXBhcnRpY2lwYW50IHJlYWQgcmVjZWlwdHMgKGByZWFkX2J5ID8gPG9yZ0lkPmAgdW5yZWFkIGNvdW50cykuXG4gIHJlYWRCeUlkeDogaW5kZXgoJ21lc3NhZ2VfcmVhZF9ieV9pZHgnKS51c2luZygnZ2luJywgdGFibGUucmVhZEJ5KSxcbiAgaGlkZGVuQnlJZHg6IGluZGV4KCdtZXNzYWdlX2hpZGRlbl9ieV9pZHgnKS51c2luZygnZ2luJywgdGFibGUuaGlkZGVuQnkpLFxufSkpO1xuXG4vKipcbiAqIFR5cGVTY3JpcHQgdHlwZXMgcmVwcmVzZW50aW5nIGRhdGFiYXNlIHJvd3NcbiAqL1xuZXhwb3J0IHR5cGUgTWVzc2FnZSA9IHR5cGVvZiBtZXNzYWdlLiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIE1lc3NhZ2VJbnNlcnQgPSB0eXBlb2YgbWVzc2FnZS4kaW5mZXJJbnNlcnQ7XG5cbi8qKlxuICogSGVscGVyIHR5cGVzIGZvciB3b3JraW5nIHdpdGggcGFydGlhbCB1cGRhdGVzXG4gKi9cbmV4cG9ydCB0eXBlIE1lc3NhZ2VVcGRhdGUgPSBQYXJ0aWFsPE9taXQ8TWVzc2FnZUluc2VydCwgJ2lkJyB8ICdjcmVhdGVkQXQnIHwgJ2NyZWF0ZWRCeSc+PjtcbiJdfQ==
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RhdGFiYXNlL3NjaGVtYS9tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLGFBQWEsRUFBMEMsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJckc7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsRUFBRTtJQUN6QyxjQUFjO0lBQ2QsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxhQUFhLEVBQUU7SUFFM0Msa0NBQWtDO0lBQ2xDLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO1NBQ3RDLE9BQU8sQ0FBQyxhQUFhLENBQUM7U0FDdEIsT0FBTyxFQUFFO0lBRVosZUFBZTtJQUNmLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQzFCLE9BQU8sQ0FBQyxhQUFhLENBQUM7U0FDdEIsT0FBTyxFQUFFO0lBQ1osU0FBUyxFQUFFLFNBQVMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDdkQsVUFBVSxFQUFFO1NBQ1osT0FBTyxFQUFFO0lBQ1osU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDMUIsT0FBTyxDQUFDLGFBQWEsQ0FBQztTQUN0QixPQUFPLEVBQUU7SUFDWixTQUFTLEVBQUUsU0FBUyxDQUFDLFlBQVksRUFBRSxFQUFF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Q0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUNsRSxXQUFXLEVBQUUsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDO0NBQ3pFLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IFNZU1RFTV9PUkdfSUQsIHR5cGUgTWVzc2FnZVByaW9yaXR5LCB0eXBlIE1lc3NhZ2VUeXBlIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHsgc3FsIH0gZnJvbSAnZHJpenpsZS1vcm0nO1xuaW1wb3J0IHsgYm9vbGVhbiwgdmFyY2hhciwgcGdUYWJsZSwgdGV4dCwgdGltZXN0YW1wLCB1dWlkLCBqc29uYiwgaW5kZXggfSBmcm9tICdkcml6emxlLW9ybS9wZy1jb3JlJztcblxuZXhwb3J0IHR5cGUgeyBNZXNzYWdlVHlwZSwgTWVzc2FnZVByaW9yaXR5IH07XG5cbi8qKlxuICogVGFibGUgZm9yIHN0b3JpbmcgaW50ZXJuYWwgbWVzc2FnZXMgYmV0d2VlbiBvcmdhbml6YXRpb25zIGFuZCB0aGUgc3lzdGVtIG9yZy5cbiAqXG4gKiBGZWF0dXJlcyAqIC0gQW5ub3VuY2VtZW50czogU3lzdGVtIG9yZyBicm9hZGNhc3RzIHRvIGFsbCBvcmdzIChyZWNpcGllbnRPcmdJZCA9ICcqJylcbiAqIC0gQ29udmVyc2F0aW9uczogVHdvLXdheSB0aHJlYWRlZCBtZXNzYWdpbmcgYmV0d2VlbiBhbiBvcmcgYW5kIHN5c3RlbSBvcmdcbiAqIC0gVGhyZWFkIHN1cHBvcnQgdmlhIHRocmVhZElkIChudWxsIGZvciByb290IG1lc3NhZ2VzLCByZWZlcmVuY2VzIHJvb3QgZm9yIHJlcGxpZXMpXG4gKiAtIFJlYWQgdHJhY2tpbmcgcGVyIG1lc3NhZ2VcbiAqIC0gUHJpb3JpdHkgbGV2ZWxzIChub3JtYWwsIGhpZ2gsIHVyZ2VudClcbiAqIC0gU29mdCBkZWxldGUgc3VwcG9ydFxuICpcbiAqIEB0YWJsZSBtZXNzYWdlc1xuICovXG5leHBvcnQgY29uc3QgbWVzc2FnZSA9IHBnVGFibGUoJ21lc3NhZ2VzJywge1xuICAvLyBQcmltYXJ5IGtleVxuICBpZDogdXVpZCgnaWQnKS5wcmltYXJ5S2V5KCkuZGVmYXVsdFJhbmRvbSgpLFxuXG4gIC8vIE9yZ2FuaXphdGlvbiBhbmQgYWNjZXNzIGNvbnRyb2xcbiAgb3JnSWQ6IHZhcmNoYXIoJ29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSlcbiAgICAuZGVmYXVsdChTWVNURU1fT1JHX0lEKVxuICAgIC5ub3ROdWxsKCksXG5cbiAgLy8gQXVkaXQgZmllbGRzXG4gIGNyZWF0ZWRCeTogdGV4dCgnY3JlYXRlZF9ieScpXG4gICAgLmRlZmF1bHQoU1lTVEVNX09SR19JRClcbiAgICAubm90TnVsbCgpLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pXG4gICAgLmRlZmF1bHROb3coKVxuICAgIC5ub3ROdWxsKCksXG4gIHVwZGF0ZWRCeTogdGV4dCgndXBkYXRlZF9ieScpXG4gICAgLmRlZmF1bHQoU1lTVEVNX09SR19JRClcbiAgICAubm90TnVsbCgpLFxuICB1cGRhdGVkQXQ6IHRpbWVzdGFtcCgndXBkYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pXG4gICAgLmRlZmF1bHROb3coKVxuICAgIC5ub3ROdWxsKCksXG5cbiAgLy8gVGhyZWFkaW5nXG4gIHRocmVhZElkOiB1dWlkKCd0aHJlYWRfaWQnKSxcblxuICAvLyBNZXNzYWdlIHJvdXRpbmdcbiAgcmVjaXBpZW50T3JnSWQ6IHZhcmNoYXIoJ3JlY2lwaWVudF9vcmdfaWQnLCB7IGxlbmd0aDogMjU1IH0pXG4gICAgLm5vdE51bGwoKSxcblxuICAvLyBPcHRpb25hbCBwZXItdXNlciB0YXJnZXRpbmcgV0lUSElOIHRoZSByZWNpcGllbnQgb3JnLiBOVUxMIChkZWZhdWx0KSA9IHRoZVxuICAvLyB3aG9sZSByZWNpcGllbnQgb3JnIHNlZXMgaXQuXG4gIC8vIFdoZW4gc2V0LCBvbmx5IHRoaXMgdXNlciAoYSBtZW1iZXIgb2YgYHJlY2lwaWVudE9yZ0lkYCkgc2VlcyBpdCwgZW5mb3JjZWQgaW5cbiAgLy8gYGJ1aWxkTWVzc2FnZUNvbmRpdGlvbnNgIGFnYWluc3QgdGhlIHZpZXdlcidzIHVzZXJJZC4gQW5ub3VuY2VtZW50IGJyb2FkY2FzdHNcbiAgLy8gKGByZWNpcGllbnRPcmdJZCA9ICcqJ2ApIG5ldmVyIHNldCB0aGlzIOKAlCB0aGV5IGFyZSBvcmctd2lkZSBieSBkZWZpbml0aW9uLlxuICByZWNpcGllbnRVc2VySWQ6IHZhcmNoYXIoJ3JlY2lwaWVudF91c2VyX2lkJywgeyBsZW5ndGg6IDI1NSB9KSxcblxuICAvLyBNZXNzYWdlIGNvbnRlbnRcbiAgbWVzc2FnZVR5cGU6IHZhcmNoYXIoJ21lc3NhZ2VfdHlwZScsIHsgbGVuZ3RoOiAyMCB9KVxuICAgIC4kdHlwZTxNZXNzYWdlVHlwZT4oKVxuICAgIC5kZWZhdWx0KCdjb252ZXJzYXRpb24nIGFzIE1lc3NhZ2VUeXBlKVxuICAgIC5ub3ROdWxsKCksXG4gIC8vIExvZ2ljYWwgY2hhbm5lbC9pbmJveCBidWNrZXQg4oCUICdzdXBwb3J0JywgJ2hlbHAnLCBldGMuIE51bGxhYmxlIHNvXG4gIC8vIG9yZy10by1vcmcgY29udmVyc2F0aW9ucyAod2hpY2ggYXJlbid0IGNoYW5uZWwtc2NvcGVkKSBjYW4gb21pdCBpdC5cbiAgY2hhbm5lbDogdmFyY2hhcignY2hhbm5lbCcsIHsgbGVuZ3RoOiA1MCB9KSxcbiAgc3ViamVjdDogdmFyY2hhcignc3ViamVjdCcsIHsgbGVuZ3RoOiA1MDAgfSlcbiAgICAubm90TnVsbCgpLFxuICBjb250ZW50OiB0ZXh0KCdjb250ZW50JylcbiAgICAubm90TnVsbCgpLFxuICAvLyBTZXQgd2hlbiB0aGUgYXV0aG9yIGVkaXRzIHRoZSBjb250ZW50IGFmdGVyIHNlbmRpbmcgKE5VTEwgPSBuZXZlciBlZGl0ZWQpLlxuICAvLyBEaXN0aW5jdCBmcm9tIGB1cGRhdGVkQXRgLCB3aGljaCBhbHNvIG1vdmVzIG9uIHJlYWQtcmVjZWlwdC9zeXN0ZW0gdXBkYXRlcztcbiAgLy8gYGVkaXRlZEF0YCBtYXJrcyBhIGh1bWFuIENPTlRFTlQgZWRpdCBzbyB0aGUgVUkgY2FuIHNob3cgYW4gXCJlZGl0ZWRcIiBoaW50LlxuICBlZGl0ZWRBdDogdGltZXN0YW1wKCdlZGl0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcblxuICAvLyBTdGF0dXNcbiAgLy8gYHJlYWRCeWAgaXMgdGhlIHBlci1wYXJ0aWNpcGFudCByZWFkLXJlY2VpcHQgbWFwOiBvcmdJZCDihpIgSVNPIHRpbWVzdGFtcC5cbiAgLy8gUmVjaXBpZW50IG1hcmtpbmcgdGhlIHRocmVhZCBkb2VzIE5PVCBmbGlwIHNlbmRlcidzIHZpZXcuIEVtcHR5IGB7fWBcbiAgLy8gbWVhbnMgbm9ib2R5IGhhcyByZWFkIGl0IHlldC5cbiAgcmVhZEJ5OiBqc29uYigncmVhZF9ieScpXG4gICAgLiR0eXBlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KClcbiAgICAuZGVmYXVsdCh7fSlcbiAgICAubm90TnVsbCgpLFxuICAvKipcbiAgICogVGhlIHBlci1wYXJ0aWNpcGFudCBJTkJPWCBtYXA6IG9yZ0lkIOKGkiBJU08gdGltZXN0YW1wLCBzdGFtcGVkIHdoZW4gYW4gb3JnXG4gICAqIHJlbW92ZXMgYSBtZXNzYWdlIGZyb20gaXRzIG93biB2aWV3LlxuICAgKlxuICAgKiBEZWxpYmVyYXRlbHkgTk9UIGEgZGVsZXRlLiBgZGVsZXRlZEF0YCB0YWtlcyB0aGUgbWVzc2FnZSBhd2F5IGZyb21cbiAgICogZXZlcnlvbmUsIHdoaWNoIGlzIHdoeSBpdCBpcyByZXN0cmljdGVkIHRvIHRoZSBhdXRob3IgKG9yIGEgc3lzYWRtaW4pOyB0aGlzXG4gICAqIHRha2VzIGl0IG91dCBvZiBPTkUgb3JnJ3MgaW5ib3ggYW5kIGxlYXZlcyB0aGUgcm93LCB0aGUgb3RoZXIgcGFydGljaXBhbnRzLFxuICAgKiB0aGUgcmV0ZW50aW9uIHN3ZWVwIGFuZCB0aGUgYXVkaXQgdHJhaWwgdW50b3VjaGVkLiBNaXJyb3JzIGByZWFkQnlgIGV4YWN0bHlcbiAgICog4oCUIHNhbWUgc2hhcGUsIHNhbWUgR0lOIGluZGV4LCBzYW1lIGBjb2FsZXNjZWAgcmVxdWlyZW1lbnQgaW4gcHJlZGljYXRlcyDigJRcbiAgICogYmVjYXVzZSBpdCBpcyB0aGUgc2FtZSBraW5kIG9mIHRoaW5nOiB0aGUgdmlld2VyJ3Mgb3duIHN0YXRlLCBub3QgdGhlXG4gICAqIG1lc3NhZ2Uncy5cbiAgICovXG4gIGhpZGRlbkJ5OiBqc29uYignaGlkZGVuX2J5JylcbiAgICAuJHR5cGU8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oKVxuICAgIC5kZWZhdWx0KHt9KVxuICAgIC5ub3ROdWxsKCksXG4gIHByaW9yaXR5OiB2YXJjaGFyKCdwcmlvcml0eScsIHsgbGVuZ3RoOiAyMCB9KVxuICAgIC4kdHlwZTxNZXNzYWdlUHJpb3JpdHk+KClcbiAgICAuZGVmYXVsdCgnbm9ybWFsJyBhcyBNZXNzYWdlUHJpb3JpdHkpXG4gICAgLm5vdE51bGwoKSxcblxuICAvLyBOT1RFOiBtZXNzYWdlcyBjYXJyeSBOTyBzaGFyaW5nIHJ1bmcuIFRoZWlyIHZpc2liaWxpdHkgaXMgdGhlIGJlc3Bva2VcbiAgLy8gc2VuZGVyL3JlY2lwaWVudC9icm9hZGNhc3QgcHJlZGljYXRlIGluIGBidWlsZE1lc3NhZ2VDb25kaXRpb25zYCAocGx1cyB0aGVcbiAgLy8gcGVyLXVzZXIgYHJlY2lwaWVudF91c2VyX2lkYCBuYXJyb3dpbmcpIOKAlCBhIGxhZGRlciB3b3VsZCBiZSBtZWFuaW5nbGVzcyBhbmRcbiAgLy8gdGhlIGBhY2Nlc3NfbW9kaWZpZXJgIGNvbHVtbiB0aGlzIHJlcGxhY2VkIHdhcyB3cml0dGVuIGFzIGEgaGFyZGNvZGVkXG4gIC8vICdwcml2YXRlJyBvbiBldmVyeSBwYXRoIGFuZCBuZXZlciByZWFkLlxuICBpc0RlZmF1bHQ6IGJvb2xlYW4oJ2lzX2RlZmF1bHQnKVxuICAgIC5kZWZhdWx0KGZhbHNlKVxuICAgIC5ub3ROdWxsKCksXG4gIGlzQWN0aXZlOiBib29sZWFuKCdpc19hY3RpdmUnKVxuICAgIC5kZWZhdWx0KHRydWUpXG4gICAgLm5vdE51bGwoKSxcblxuICAvLyBEZWxldGlvbiB0cmFja2luZyAoc29mdCBkZWxldGUpXG4gIGRlbGV0ZWRBdDogdGltZXN0YW1wKCdkZWxldGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIGRlbGV0ZWRCeTogdGV4dCgnZGVsZXRlZF9ieScpLFxuICAvLyBTb2Z0LWRlbGV0ZSBwdXJnZSBkZWFkbGluZTogdGhlIHJldGVudGlvbiBzd2VlcCBoYXJkLWRlbGV0ZXMgdG9tYnN0b25lZFxuICAvLyByb3dzIG9uY2UgYHB1cmdlX2FmdGVyYCBoYXMgcGFzc2VkIChzZXQgb24gZGVsZXRlIGFsb25nc2lkZSBkZWxldGVkX2F0KS5cbiAgcHVyZ2VBZnRlcjogdGltZXN0YW1wKCdwdXJnZV9hZnRlcicsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxufSwgKHRhYmxlKSA9PiAoe1xuICAvLyBQYXJ0aWFsIGluZGV4IG92ZXIganVzdCB0aGUgdG9tYnN0b25lcyDigJQgZHJpdmVzIHRoZSByZXRlbnRpb24gcHVyZ2Ugc3dlZXAuXG4gIHB1cmdlSWR4OiBpbmRleCgnbWVzc2FnZV9wdXJnZV9pZHgnKS5vbih0YWJsZS5wdXJnZUFmdGVyKS53aGVyZShzcWxgZGVsZXRlZF9hdCBJUyBOT1QgTlVMTGApLFxuICAvLyBJbmRleGVzIGZvciBjb21tb24gcXVlcmllc1xuICBvcmdJZElkeDogaW5kZXgoJ21lc3NhZ2Vfb3JnX2lkX2lkeCcpLm9uKHRhYmxlLm9yZ0lkKSxcbiAgcmVjaXBpZW50T3JnSWRJZHg6IGluZGV4KCdtZXNzYWdlX3JlY2lwaWVudF9vcmdfaWRfaWR4Jykub24odGFibGUucmVjaXBpZW50T3JnSWQpLFxuICB0aHJlYWRJZElkeDogaW5kZXgoJ21lc3NhZ2VfdGhyZWFkX2lkX2lkeCcpLm9uKHRhYmxlLnRocmVhZElkKSxcbiAgbWVzc2FnZVR5cGVJZHg6IGluZGV4KCdtZXNzYWdlX21lc3NhZ2VfdHlwZV9pZHgnKS5vbih0YWJsZS5tZXNzYWdlVHlwZSksXG4gIGNoYW5uZWxJZHg6IGluZGV4KCdtZXNzYWdlX2NoYW5uZWxfaWR4Jykub24odGFibGUuY2hhbm5lbCksXG4gIGNyZWF0ZWRBdElkeDogaW5kZXgoJ21lc3NhZ2VfY3JlYXRlZF9hdF9pZHgnKS5vbih0YWJsZS5jcmVhdGVkQXQpLFxuICBhY3RpdmVJZHg6IGluZGV4KCdtZXNzYWdlX2FjdGl2ZV9pZHgnKS5vbih0YWJsZS5pc0FjdGl2ZSksXG5cbiAgLy8gQ29tcG9zaXRlIGluZGV4IGZvciBpbmJveCBxdWVyaWVzIChyZWNpcGllbnQgKyBhY3RpdmUgKyBjcmVhdGVkKVxuICByZWNpcGllbnRBY3RpdmVDcmVhdGVkSWR4OiBpbmRleCgnbWVzc2FnZV9yZWNpcGllbnRfYWN0aXZlX2NyZWF0ZWRfaWR4JylcbiAgICAub24odGFibGUucmVjaXBpZW50T3JnSWQsIHRhYmxlLmlzQWN0aXZlLCB0YWJsZS5jcmVhdGVkQXQpLFxuXG4gIC8vIENvbXBvc2l0ZSBpbmRleCBmb3IgcGVyLXVzZXIgdGFyZ2V0ZWQgaW5ib3ggbG9va3VwcyAocmVjaXBpZW50IG9yZyArIHVzZXIpLlxuICByZWNpcGllbnRVc2VySWR4OiBpbmRleCgnbWVzc2FnZV9yZWNpcGllbnRfdXNlcl9pZHgnKVxuICAgIC5vbih0YWJsZS5yZWNpcGllbnRPcmdJZCwgdGFibGUucmVjaXBpZW50VXNlcklkLCB0YWJsZS5pc0FjdGl2ZSksXG5cbiAgLy8gQ29tcG9zaXRlIGluZGV4IGZvciBvcmcgaW5ib3ggKG9yZ0lkICsgYWN0aXZlKVxuICBvcmdBY3RpdmVJZHg6IGluZGV4KCdtZXNzYWdlX29yZ19hY3RpdmVfaWR4Jykub24odGFibGUub3JnSWQsIHRhYmxlLmlzQWN0aXZlKSxcbiAgLy8gR0lOIG92ZXIgdGhlIHBlci1wYXJ0aWNpcGFudCByZWFkIHJlY2VpcHRzIChgcmVhZF9ieSA/IDxvcmdJZD5gIHVucmVhZCBjb3VudHMpLlxuICByZWFkQnlJZHg6IGluZGV4KCdtZXNzYWdlX3JlYWRfYnlfaWR4JykudXNpbmcoJ2dpbicsIHRhYmxlLnJlYWRCeSksXG4gIGhpZGRlbkJ5SWR4OiBpbmRleCgnbWVzc2FnZV9oaWRkZW5fYnlfaWR4JykudXNpbmcoJ2dpbicsIHRhYmxlLmhpZGRlbkJ5KSxcbn0pKTtcblxuLyoqXG4gKiBUeXBlU2NyaXB0IHR5cGVzIHJlcHJlc2VudGluZyBkYXRhYmFzZSByb3dzXG4gKi9cbmV4cG9ydCB0eXBlIE1lc3NhZ2UgPSB0eXBlb2YgbWVzc2FnZS4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBNZXNzYWdlSW5zZXJ0ID0gdHlwZW9mIG1lc3NhZ2UuJGluZmVySW5zZXJ0O1xuXG4vKipcbiAqIEhlbHBlciB0eXBlcyBmb3Igd29ya2luZyB3aXRoIHBhcnRpYWwgdXBkYXRlc1xuICovXG5leHBvcnQgdHlwZSBNZXNzYWdlVXBkYXRlID0gUGFydGlhbDxPbWl0PE1lc3NhZ2VJbnNlcnQsICdpZCcgfCAnY3JlYXRlZEF0JyB8ICdjcmVhdGVkQnknPj47XG4iXX0=
@@ -195,7 +195,7 @@ export declare const reportDefinition: import("drizzle-orm/pg-core").PgTableWith
195
195
  tableName: "report_definitions";
196
196
  dataType: "string";
197
197
  columnType: "PgVarchar";
198
- data: string;
198
+ data: "monday" | "sunday";
199
199
  driverParam: string;
200
200
  notNull: true;
201
201
  hasDefault: true;
@@ -208,6 +208,7 @@ export declare const reportDefinition: import("drizzle-orm/pg-core").PgTableWith
208
208
  generated: undefined;
209
209
  }, {}, {
210
210
  length: 10;
211
+ $type: "monday" | "sunday";
211
212
  }>;
212
213
  scope: import("drizzle-orm/pg-core").PgColumn<{
213
214
  name: "scope";
@@ -1,30 +1,5 @@
1
1
  // Copyright 2026 Pipeline Builder Contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- /**
4
- * Stakeholder reports — scheduled, manager-facing summaries a lead developer
5
- * composes, reviews and publishes.
6
- *
7
- * Four tables, and the reason each exists:
8
- *
9
- * - `report_definitions` — the saved "what and when". Reporting was entirely
10
- * on-demand before this: the dashboard picked a from/to and nothing could be
11
- * saved, scheduled or kept.
12
- * - `report_runs` — the FROZEN snapshot of one period's output. This is the load
13
- * bearing table. The retention sweep purges raw `pipeline_events` by tier, so
14
- * without a snapshot last quarter's report cannot be regenerated once its
15
- * events are gone — and a manager who read a number on Monday must see the same
16
- * number on Friday.
17
- * - `report_share_links` — expiring, revocable read-only links, because the
18
- * managers a report is for usually have no platform account.
19
- * - `report_recipients` — per-org delivery addresses, with verification and
20
- * bounce state. Recipient emails are PII and the org owns the list, not the
21
- * definition, so one lead's list is reusable and one unsubscribe is honoured
22
- * everywhere.
23
- *
24
- * Every table is org-scoped with RLS + soft-delete, mirroring postgres-init.sql
25
- * (which is what actually deploys; `schema-reflection.test.ts` keeps the two in
26
- * lock-step, name for name).
27
- */
28
3
  import { sql } from 'drizzle-orm';
29
4
  import { boolean, index, integer, jsonb, pgTable, text, timestamp, uniqueIndex, varchar } from 'drizzle-orm/pg-core';
30
5
  /** How often a definition produces a report. */
@@ -68,7 +43,7 @@ export const reportDefinition = pgTable('report_definitions', {
68
43
  cadence: varchar('cadence', { length: 20 }).$type().notNull(),
69
44
  /** IANA name. Periods are cut in THIS zone, not the database session's. */
70
45
  timezone: varchar('timezone', { length: 64 }).default('UTC').notNull(),
71
- weekStart: varchar('week_start', { length: 10 }).default('monday').notNull(),
46
+ weekStart: varchar('week_start', { length: 10 }).$type().default('monday').notNull(),
72
47
  scope: jsonb('scope').$type().notNull(),
73
48
  /** Recipient ids from `report_recipients`, not raw addresses. */
74
49
  recipients: jsonb('recipients').$type().default([]).notNull(),
@@ -248,4 +223,4 @@ export const reportRecipient = pgTable('report_recipients', {
248
223
  unsubTokenUnique: uniqueIndex('report_recipient_unsub_token_unique').on(table.unsubscribeToken)
249
224
  .where(sql `unsubscribe_token IS NOT NULL`),
250
225
  }));
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0aW5nLXN0YWtlaG9sZGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0YWJhc2Uvc2NoZW1hL3JlcG9ydGluZy1zdGFrZWhvbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFFSCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJILGdEQUFnRDtBQUNoRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBVSxDQUFDO0FBRzNFLHlFQUF5RTtBQUN6RSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixDQUFVLENBQUM7QUFHbkc7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsVUFBVSxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxRQUFRLENBQVUsQ0FBQztBQUdwRzs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixDQUFVLENBQUM7QUFHbEcsb0NBQW9DO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQVUsQ0FBQztBQVV6RTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRTtJQUM1RCxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRTtJQUMvQyxLQUFLLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRTtJQUNuRDs7OztPQUlHO0lBQ0gsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDbkMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDaEQsUUFBUSxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQWtCLENBQUMsT0FBTyxFQUFFO0lBQy9FLHNFQUFzRTtJQUN0RSxRQUFRLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDbkUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQWlCLENBQUMsT0FBTyxFQUFFO0lBQzVFLDJFQUEyRTtJQUMzRSxRQUFRLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDdEUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFO0lBQzVFLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFlLENBQUMsT0FBTyxFQUFFO0lBQ3BELGlFQUFpRTtJQUNqRSxVQUFVLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssRUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDdkU7Ozs7T0FJRztJQUNILFFBQVEsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRTtJQUN2RCxRQUFRLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDdEQsWUFBWSxFQUFFLE9BQU8sQ0FBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQXFCO0lBQ2pGLFNBQVMsRUFBRSxTQUFTLENBQUMsYUFBYSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzNELFNBQVMsRUFBRSxTQUFTLENBQUMsYUFBYSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzNELFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxFQUFFO0lBQ3ZDLFNBQVMsRUFBRSxTQUFTLENBQUMsWUFBWSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxFQUFFO0lBQ2pGLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLFNBQVMsRUFBRSxTQUFTLENBQUMsWUFBWSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxFQUFFO0lBQ2pGLFNBQVMsRUFBRSxTQUFTLENBQUMsWUFBWSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzFELFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLFVBQVUsRUFBRSxTQUFTLENBQUMsYUFBYSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFB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S0FBSyxDQUFDO0lBQzdGLE1BQU0sRUFBRSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUEsb0JBQW9CLENBQUM7SUFDeEYsUUFBUSxFQUFFLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQSx3QkFBd0IsQ0FBQztJQUNyRyxtRkFBbUY7SUFDbkYsYUFBYTtJQUNiLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7U0FDNUYsS0FBSyxDQUFDLEdBQUcsQ0FBQSwrQkFBK0IsQ0FBQztDQUM3QyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFN0YWtlaG9sZGVyIHJlcG9ydHMg4oCUIHNjaGVkdWxlZCwgbWFuYWdlci1mYWNpbmcgc3VtbWFyaWVzIGEgbGVhZCBkZXZlbG9wZXJcbiAqIGNvbXBvc2VzLCByZXZpZXdzIGFuZCBwdWJsaXNoZXMuXG4gKlxuICogRm91ciB0YWJsZXMsIGFuZCB0aGUgcmVhc29uIGVhY2ggZXhpc3RzOlxuICpcbiAqICAtIGByZXBvcnRfZGVmaW5pdGlvbnNgIOKAlCB0aGUgc2F2ZWQgXCJ3aGF0IGFuZCB3aGVuXCIuIFJlcG9ydGluZyB3YXMgZW50aXJlbHlcbiAqICAgIG9uLWRlbWFuZCBiZWZvcmUgdGhpczogdGhlIGRhc2hib2FyZCBwaWNrZWQgYSBmcm9tL3RvIGFuZCBub3RoaW5nIGNvdWxkIGJlXG4gKiAgICBzYXZlZCwgc2NoZWR1bGVkIG9yIGtlcHQuXG4gKiAgLSBgcmVwb3J0X3J1bnNgIOKAlCB0aGUgRlJPWkVOIHNuYXBzaG90IG9mIG9uZSBwZXJpb2QncyBvdXRwdXQuIFRoaXMgaXMgdGhlIGxvYWRcbiAqICAgIGJlYXJpbmcgdGFibGUuIFRoZSByZXRlbnRpb24gc3dlZXAgcHVyZ2VzIHJhdyBgcGlwZWxpbmVfZXZlbnRzYCBieSB0aWVyLCBzb1xuICogICAgd2l0aG91dCBhIHNuYXBzaG90IGxhc3QgcXVhcnRlcidzIHJlcG9ydCBjYW5ub3QgYmUgcmVnZW5lcmF0ZWQgb25jZSBpdHNcbiAqICAgIGV2ZW50cyBhcmUgZ29uZSDigJQgYW5kIGEgbWFuYWdlciB3aG8gcmVhZCBhIG51bWJlciBvbiBNb25kYXkgbXVzdCBzZWUgdGhlIHNhbWVcbiAqICAgIG51bWJlciBvbiBGcmlkYXkuXG4gKiAgLSBgcmVwb3J0X3NoYXJlX2xpbmtzYCDigJQgZXhwaXJpbmcsIHJldm9jYWJsZSByZWFkLW9ubHkgbGlua3MsIGJlY2F1c2UgdGhlXG4gKiAgICBtYW5hZ2VycyBhIHJlcG9ydCBpcyBmb3IgdXN1YWxseSBoYXZlIG5vIHBsYXRmb3JtIGFjY291bnQuXG4gKiAgLSBgcmVwb3J0X3JlY2lwaWVudHNgIOKAlCBwZXItb3JnIGRlbGl2ZXJ5IGFkZHJlc3Nlcywgd2l0aCB2ZXJpZmljYXRpb24gYW5kXG4gKiAgICBib3VuY2Ugc3RhdGUuIFJlY2lwaWVudCBlbWFpbHMgYXJlIFBJSSBhbmQgdGhlIG9yZyBvd25zIHRoZSBsaXN0LCBub3QgdGhlXG4gKiAgICBkZWZpbml0aW9uLCBzbyBvbmUgbGVhZCdzIGxpc3QgaXMgcmV1c2FibGUgYW5kIG9uZSB1bnN1YnNjcmliZSBpcyBob25vdXJlZFxuICogICAgZXZlcnl3aGVyZS5cbiAqXG4gKiBFdmVyeSB0YWJsZSBpcyBvcmctc2NvcGVkIHdpdGggUkxTICsgc29mdC1kZWxldGUsIG1pcnJvcmluZyBwb3N0Z3Jlcy1pbml0LnNxbFxuICogKHdoaWNoIGlzIHdoYXQgYWN0dWFsbHkgZGVwbG95czsgYHNjaGVtYS1yZWZsZWN0aW9uLnRlc3QudHNgIGtlZXBzIHRoZSB0d28gaW5cbiAqIGxvY2stc3RlcCwgbmFtZSBmb3IgbmFtZSkuXG4gKi9cblxuaW1wb3J0IHsgc3FsIH0gZnJvbSAnZHJpenpsZS1vcm0nO1xuaW1wb3J0IHsgYm9vbGVhbiwgaW5kZXgsIGludGVnZXIsIGpzb25iLCBwZ1RhYmxlLCB0ZXh0LCB0aW1lc3RhbXAsIHVuaXF1ZUluZGV4LCB2YXJjaGFyIH0gZnJvbSAnZHJpenpsZS1vcm0vcGctY29yZSc7XG5cbi8qKiBIb3cgb2Z0ZW4gYSBkZWZpbml0aW9uIHByb2R1Y2VzIGEgcmVwb3J0LiAqL1xuZXhwb3J0IGNvbnN0IFJFUE9SVF9DQURFTkNFUyA9IFsnd2Vla2x5JywgJ21vbnRobHknLCAncXVhcnRlcmx5J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBSZXBvcnRDYWRlbmNlID0gKHR5cGVvZiBSRVBPUlRfQ0FERU5DRVMpW251bWJlcl07XG5cbi8qKiBUaGUgbWFuYWdlci1mYWNpbmcgdGVtcGxhdGVzLiBFYWNoIGlzIGEgZml4ZWQgbGlzdCBvZiBzZWN0aW9uIGlkcy4gKi9cbmV4cG9ydCBjb25zdCBSRVBPUlRfVEVNUExBVEVTID0gWyd3ZWVrbHlfZGVsaXZlcnknLCAnbW9udGhseV9oZWFsdGgnLCAncXVhcnRlcmx5X3JldmlldyddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUmVwb3J0VGVtcGxhdGUgPSAodHlwZW9mIFJFUE9SVF9URU1QTEFURVMpW251bWJlcl07XG5cbi8qKlxuICogQSBydW4ncyBsaWZlY3ljbGUuIGBkcmFmdGluZ2Ag4oaSIGByZWFkeV9mb3JfcmV2aWV3YCDihpIgYHB1Ymxpc2hlZGAsIHdpdGggYGZhaWxlZGBcbiAqIGFzIGEgdGVybWluYWwgc2lkZSBicmFuY2guIE5vdGhpbmcgcmVhY2hlcyBhIG1hbmFnZXIgYmVmb3JlIGBwdWJsaXNoZWRgLCB3aGljaFxuICogaXMgd2hhdCBtYWtlcyB0aGUgbGVhZCdzIGFwcHJvdmFsIHRoZSBnYXRlLlxuICovXG5leHBvcnQgY29uc3QgUkVQT1JUX1JVTl9TVEFUVVNFUyA9IFsnZHJhZnRpbmcnLCAncmVhZHlfZm9yX3JldmlldycsICdwdWJsaXNoZWQnLCAnZmFpbGVkJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBSZXBvcnRSdW5TdGF0dXMgPSAodHlwZW9mIFJFUE9SVF9SVU5fU1RBVFVTRVMpW251bWJlcl07XG5cbi8qKlxuICogV2h5IGEgZGVmaW5pdGlvbiBzdG9wcGVkIHJ1bm5pbmcuIFJlY29yZGVkIHJhdGhlciB0aGFuIGluZmVycmVkLCBiZWNhdXNlIHRoZVxuICogdGhyZWUgY2F1c2VzIG5lZWQgZGlmZmVyZW50IGZpeGVzIGFuZCB0aGUgbGVhZCBzZWVzIHRoaXMgc3RyaW5nOiB0aGUgYWRkLW9uXG4gKiBsYXBzZWQsIHRoZSBvd25lciB3YXMgZGVhY3RpdmF0ZWQsIG9yIHRoZSBvd25lciBsb3N0IHRoZSBwZXJtaXNzaW9uIHRoYXQgbGV0XG4gKiB0aGVtIGF1dGhvciBpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IFJFUE9SVF9QQVVTRV9SRUFTT05TID0gWydlbnRpdGxlbWVudCcsICdvd25lcl9pbmFjdGl2ZScsICdwZXJtaXNzaW9uX2xvc3QnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFJlcG9ydFBhdXNlUmVhc29uID0gKHR5cGVvZiBSRVBPUlRfUEFVU0VfUkVBU09OUylbbnVtYmVyXTtcblxuLyoqIFdoYXQgYSBkZWZpbml0aW9uIHJlcG9ydHMgb24uICovXG5leHBvcnQgY29uc3QgUkVQT1JUX1NDT1BFX0tJTkRTID0gWydvcmcnLCAncHJvamVjdHMnLCAncm9sbHVwJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBSZXBvcnRTY29wZUtpbmQgPSAodHlwZW9mIFJFUE9SVF9TQ09QRV9LSU5EUylbbnVtYmVyXTtcblxuLyoqIFRoZSBgc2NvcGVgIEpTT046IHdoaWNoIHBpcGVsaW5lcyBhIHJ1biBjb3ZlcnMuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydFNjb3BlIHtcbiAga2luZDogUmVwb3J0U2NvcGVLaW5kO1xuICAvKiogUHJvamVjdCBuYW1lcywgd2hlbiBga2luZCA9PT0gJ3Byb2plY3RzJ2AuIEVtcHR5IGZvciBvcmcvcm9sbHVwLiAqL1xuICBwcm9qZWN0cz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEEgc2F2ZWQgcmVwb3J0OiB3aGF0IHRvIGNvbXB1dGUsIGhvdyBvZnRlbiwgaW4gd2hvc2UgdGltZXpvbmUsIGFuZCB3aG8gcmVjZWl2ZXNcbiAqIGl0LlxuICpcbiAqIEB0YWJsZSByZXBvcnRfZGVmaW5pdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IHJlcG9ydERlZmluaXRpb24gPSBwZ1RhYmxlKCdyZXBvcnRfZGVmaW5pdGlvbnMnLCB7XG4gIGlkOiB2YXJjaGFyKCdpZCcsIHsgbGVuZ3RoOiAyNTUgfSkucHJpbWFyeUtleSgpLFxuICBvcmdJZDogdmFyY2hhcignb3JnX2lkJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIC8qKlxuICAgKiBUaGUgbGVhZCB3aG8gb3ducyB0aGlzIGRlZmluaXRpb24uIFJ1bnMgcmUtY2hlY2sgVEhJUyB1c2VyJ3MgcGVybWlzc2lvbnMsIG5vdFxuICAgKiB0aGUgY2FsbGVyJ3MsIGJlY2F1c2UgYSBzY2hlZHVsZWQgcnVuIGhhcyBubyBjYWxsZXIg4oCUIHNvIGEgbGVhZCB3aG8gbG9zZXNcbiAgICogYWNjZXNzIHN0b3BzIHByb2R1Y2luZyByZXBvcnRzIHJhdGhlciB0aGFuIGtlZXBpbmcgYSBzdGFuZGluZyBncmFudC5cbiAgICovXG4gIG93bmVySWQ6IHRleHQoJ293bmVyX2lkJykubm90TnVsbCgpLFxuICBuYW1lOiB2YXJjaGFyKCduYW1lJywgeyBsZW5ndGg6IDIwMCB9KS5ub3ROdWxsKCksXG4gIHRlbXBsYXRlOiB2YXJjaGFyKCd0ZW1wbGF0ZScsIHsgbGVuZ3RoOiA0MCB9KS4kdHlwZTxSZXBvcnRUZW1wbGF0ZT4oKS5ub3ROdWxsKCksXG4gIC8qKiBTZWN0aW9uIGlkcywgcmVzb2x2ZWQgdGhyb3VnaCB0aGUgc2VjdGlvbiByZWdpc3RyeSBhdCBydW4gdGltZS4gKi9cbiAgc2VjdGlvbnM6IGpzb25iKCdzZWN0aW9ucycpLiR0eXBlPHN0cmluZ1tdPigpLmRlZmF1bHQoW10pLm5vdE51bGwoKSxcbiAgY2FkZW5jZTogdmFyY2hhcignY2FkZW5jZScsIHsgbGVuZ3RoOiAyMCB9KS4kdHlwZTxSZXBvcnRDYWRlbmNlPigpLm5vdE51bGwoKSxcbiAgLyoqIElBTkEgbmFtZS4gUGVyaW9kcyBhcmUgY3V0IGluIFRISVMgem9uZSwgbm90IHRoZSBkYXRhYmFzZSBzZXNzaW9uJ3MuICovXG4gIHRpbWV6b25lOiB2YXJjaGFyKCd0aW1lem9uZScsIHsgbGVuZ3RoOiA2NCB9KS5kZWZhdWx0KCdVVEMnKS5ub3ROdWxsKCksXG4gIHdlZWtTdGFydDogdmFyY2hhcignd2Vla19zdGFydCcsIHsgbGVuZ3RoOiAxMCB9KS5kZWZhdWx0KCdtb25kYXknKS5ub3ROdWxsKCksXG4gIHNjb3BlOiBqc29uYignc2NvcGUnKS4kdHlwZTxSZXBvcnRTY29wZT4oKS5ub3ROdWxsKCksXG4gIC8qKiBSZWNpcGllbnQgaWRzIGZyb20gYHJlcG9ydF9yZWNpcGllbnRzYCwgbm90IHJhdyBhZGRyZXNzZXMuICovXG4gIHJlY2lwaWVudHM6IGpzb25iKCdyZWNpcGllbnRzJykuJHR5cGU8c3RyaW5nW10+KCkuZGVmYXVsdChbXSkubm90TnVsbCgpLFxuICAvKipcbiAgICogUHVibGlzaCB3aXRob3V0IHRoZSBsZWFkIHJldmlld2luZy4gT2ZmIGJ5IGRlZmF1bHQ6IHRoZSB3aG9sZSBwb2ludCBvZiB0aGVcbiAgICogcmV2aWV3IHN0ZXAgaXMgdGhhdCB0aGUgZGF0YSBjYW5ub3Qgc3VwcGx5IHRoZSBjb250ZXh0IGEgbWFuYWdlciBuZWVkc1xuICAgKiAoXCJ3ZSBwYXVzZWQgZGVwbG95cyBUdWVzZGF5IGZvciB0aGUgbWlncmF0aW9uXCIpLlxuICAgKi9cbiAgYXV0b1NlbmQ6IGJvb2xlYW4oJ2F1dG9fc2VuZCcpLmRlZmF1bHQoZmFsc2UpLm5vdE51bGwoKSxcbiAgaXNBY3RpdmU6IGJvb2xlYW4oJ2lzX2FjdGl2ZScpLmRlZmF1bHQodHJ1ZSkubm90TnVsbCgpLFxuICBwYXVzZWRSZWFzb246IHZhcmNoYXIoJ3BhdXNlZF9yZWFzb24nLCB7IGxlbmd0aDogMzAgfSkuJHR5cGU8UmVwb3J0UGF1c2VSZWFzb24+KCksXG4gIG5leHRSdW5BdDogdGltZXN0YW1wKCduZXh0X3J1bl9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBsYXN0UnVuQXQ6IHRpbWVzdGFtcCgnbGFzdF9ydW5fYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgY3JlYXRlZEJ5OiB0ZXh0KCdjcmVhdGVkX2J5Jykubm90TnVsbCgpLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG4gIHVwZGF0ZWRCeTogdGV4dCgndXBkYXRlZF9ieScpLFxuICB1cGRhdGVkQXQ6IHRpbWVzdGFtcCgndXBkYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG4gIGRlbGV0ZWRBdDogdGltZXN0YW1wKCdkZWxldGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIGRlbGV0ZWRCeTogdGV4dCgnZGVsZXRlZF9ieScpLFxuICBwdXJnZUFmdGVyOiB0aW1lc3RhbXAoJ3B1cmdlX2FmdGVyJywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG59LCAodGFibGUpID0+ICh7XG4gIG9yZ0lkeDogaW5kZXgoJ3JlcG9ydF9kZWZpbml0aW9uX29yZ19pZHgnKS5vbih0YWJsZS5vcmdJZCkud2hlcmUoc3FsYGRlbGV0ZWRfYXQgSVMgTlVMTGApLFxuICBvd25lcklkeDogaW5kZXgoJ3JlcG9ydF9kZWZpbml0aW9uX293bmVyX2lkeCcpLm9uKHRhYmxlLm93bmVySWQpLndoZXJlKHNxbGBkZWxldGVkX2F0IElTIE5VTExgKSxcbiAgLy8gRHJpdmVzIHRoZSBzY2hlZHVsZXIncyBjbGFpbSBzY2FuOiB0aGUgZHVlLCBsaXZlLCB1bnBhdXNlZCBkZWZpbml0aW9ucyBvbmx5LlxuICBkdWVJZHg6IGluZGV4KCdyZXBvcnRfZGVmaW5pdGlvbl9kdWVfaWR4Jykub24odGFibGUubmV4dFJ1bkF0KVxuICAgIC53aGVyZShzcWxgZGVsZXRlZF9hdCBJUyBOVUxMIEFORCBpc19hY3RpdmUgPSB0cnVlYCksXG4gIHB1cmdlSWR4OiBpbmRleCgncmVwb3J0X2RlZmluaXRpb25fcHVyZ2VfaWR4Jykub24odGFibGUucHVyZ2VBZnRlcikud2hlcmUoc3FsYGRlbGV0ZWRfYXQgSVMgTk9UIE5VTExgKSxcbn0pKTtcblxuLyoqXG4gKiBPbmUgcGVyaW9kJ3MgZnJvemVuIG91dHB1dC5cbiAqXG4gKiBAdGFibGUgcmVwb3J0X3J1bnNcbiAqL1xuZXhwb3J0IGNvbnN0IHJlcG9ydFJ1biA9IHBnVGFibGUoJ3JlcG9ydF9ydW5zJywge1xuICBpZDogdmFyY2hhcignaWQnLCB7IGxlbmd0aDogMjU1IH0pLnByaW1hcnlLZXkoKSxcbiAgb3JnSWQ6IHZhcmNoYXIoJ29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBkZWZpbml0aW9uSWQ6IHZhcmNoYXIoJ2RlZmluaXRpb25faWQnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgLyoqIEluY2x1c2l2ZSBwZXJpb2Qgc3RhcnQsIGV4Y2x1c2l2ZSBlbmQg4oCUIGJvdGggaW5zdGFudHMsIGluIFVUQy4gKi9cbiAgcGVyaW9kU3RhcnQ6IHRpbWVzdGFtcCgncGVyaW9kX3N0YXJ0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkubm90TnVsbCgpLFxuICBwZXJpb2RFbmQ6IHRpbWVzdGFtcCgncGVyaW9kX2VuZCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLm5vdE51bGwoKSxcbiAgLyoqIEh1bWFuIGxhYmVsIGluIHRoZSBkZWZpbml0aW9uJ3MgdGltZXpvbmU6IGAyMDI2LVczOGAsIGAyMDI2LTA4YCwgYDIwMjYtUTNgLiAqL1xuICBwZXJpb2RMYWJlbDogdmFyY2hhcigncGVyaW9kX2xhYmVsJywgeyBsZW5ndGg6IDIwIH0pLm5vdE51bGwoKSxcbiAgLyoqXG4gICAqIFJlZ2VuZXJhdGluZyBhIHBlcmlvZCBwcm9kdWNlcyB2ZXJzaW9uIE4rMSBhbmQgc3VwZXJzZWRlcyB0aGUgb2xkIHJvdyByYXRoZXJcbiAgICogdGhhbiBvdmVyd3JpdGluZyBpdC4gTGF0ZSBldmVudHMgKHRoZSBpbmdlc3QgcmVkcml2ZXMgaXRzIGRlYWQtbGV0dGVyIHF1ZXVlXG4gICAqIGhvdXJzIGxhdGVyKSBtZWFuIGEgY29ycmVjdGVkIHJlcG9ydCBpcyBub3JtYWwg4oCUIGFuZCBhIG1hbmFnZXIgd2hvIGFscmVhZHlcbiAgICogcmVhZCB2MSBtdXN0IHN0aWxsIGJlIGFibGUgdG8gc2VlIGV4YWN0bHkgd2hhdCB0aGV5IHJlYWQuXG4gICAqL1xuICB2ZXJzaW9uOiBpbnRlZ2VyKCd2ZXJzaW9uJykuZGVmYXVsdCgxKS5ub3ROdWxsKCksXG4gIHN0YXR1czogdmFyY2hhcignc3RhdHVzJywgeyBsZW5ndGg6IDIwIH0pLiR0eXBlPFJlcG9ydFJ1blN0YXR1cz4oKS5kZWZhdWx0KCdkcmFmdGluZycpLm5vdE51bGwoKSxcbiAgLyoqIFRoZSBjb21wdXRlZCBzZWN0aW9ucy4gU3Vydml2ZXMgdGhlIHJhdy1ldmVudCBwdXJnZSDigJQgdGhhdCBpcyB0aGUgcG9pbnQuICovXG4gIHNuYXBzaG90OiBqc29uYignc25hcHNob3QnKS4kdHlwZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oKSxcbiAgLyoqIEFJLWdlbmVyYXRlZCBleGVjdXRpdmUgc3VtbWFyeSwgZnJvbSB0aGUgc25hcHNob3QncyBudW1iZXJzIG9ubHkuICovXG4gIGFpRHJhZnQ6IHRleHQoJ2FpX2RyYWZ0JyksXG4gIC8qKiBUaGUgbGVhZCdzIG93biB3b3Jkcy4gVGhlIGNvbnRleHQgdGhlIGRhdGEgY2Fubm90IHN1cHBseS4gKi9cbiAgbGVhZE5vdGVzOiB0ZXh0KCdsZWFkX25vdGVzJyksXG4gIC8vIGBhc2tzYCB3YXMgREVMRVRFRCBoZXJlLCBhbmQgaXQgaXMgdGhlIHJlbW92YWwgbW9zdCB3b3J0aCBleHBsYWluaW5nLCBiZWNhdXNlIHRoZSBpZGVhXG4gIC8vIHdhcyBnb29kOiB3aGF0IHRoZSBsZWFkIG5lZWRzIGEgZGVjaXNpb24gb24sIGZyb20gd2hvbSwgYnkgd2hlbiDigJQga2VwdCBhcGFydCBmcm9tXG4gIC8vIGBsZWFkTm90ZXNgIGJlY2F1c2UgYSByZXF1ZXN0IGZvciBhIGRlY2lzaW9uIGJ1cmllZCBpbiBuYXJyYXRpdmUgcmVhZHMgYXMgY29tbWVudGFyeVxuICAvLyBhbmQgZ2V0cyBubyBhbnN3ZXIuIEl0IHdhcyBkZWNsYXJlZCBpbiBQaGFzZSAyIGFuZCB0aGVuIG5ldmVyIHdyaXR0ZW4gb3IgcmVhZCBieVxuICAvLyBhbnl0aGluZzogbm8gcm91dGUgYWNjZXB0ZWQgb25lLCBubyBjb21wb3NlciBlbWl0dGVkIG9uZSwgbm8gdmlldyByZW5kZXJlZCBvbmUsIGFuZFxuICAvLyB0aGUgc2hhcmVkIHJlcG9ydCBhIG1hbmFnZXIgYWN0dWFsbHkgcmVhZHMgbmV2ZXIgc2hvd2VkIHRoZW0uIEEgY29sdW1uIHRoYXQgb25seSBldmVyXG4gIC8vIGhlbGQgaXRzIG93biBkZWZhdWx0IGlzIG5vdCBhIGZlYXR1cmUgaW4gcHJvZ3Jlc3MsIGl0IGlzIGEgY2xhaW0gdGhlIHNjaGVtYSBtYWtlcyBhbmRcbiAgLy8gdGhlIHByb2R1Y3QgZG9lcyBub3QgaG9ub3VyLiBXaG9ldmVyIGJ1aWxkcyBhc2tzIHNob3VsZCBhZGQgdGhlIGNvbHVtbiBiYWNrIFdJVEggdGhlXG4gIC8vIHdyaXRlIHBhdGgsIHRoZSByZXZpZXcgVUkgYW5kIGEgcGxhY2UgaW4gdGhlIHNoYXJlZCB2aWV3LCBpbiBvbmUgY2hhbmdlLlxuICBmYWlsdXJlUmVhc29uOiB0ZXh0KCdmYWlsdXJlX3JlYXNvbicpLFxuICAvKipcbiAgICogV2hhdCBoYXBwZW5lZCB3aGVuIHRoaXMgcnVuIHdhcyBERUxJVkVSRUQ6IGNvdW50cyBwZXIgY2hhbm5lbCwgYW5kIHRoZSBub3RlcyBhIGxlYWRcbiAgICogbmVlZHMgdG8gcmVhZCAoXCJubyBvdXRib3VuZCBlbWFpbCBpcyBjb25maWd1cmVkLCBzbyAxMiByZWNpcGllbnRzIHdlcmUgbm90IG1haWxlZFwiKS5cbiAgICpcbiAgICogT24gdGhlIHJ1biByYXRoZXIgdGhhbiBpbiBhIGxvZywgYmVjYXVzZSB0aGUgcXVlc3Rpb24gaXQgYW5zd2VycyBpcyBhc2tlZCBkYXlzIGxhdGVyXG4gICAqIGFuZCBhYm91dCBvbmUgc3BlY2lmaWMgcmVwb3J0OiBcImRpZCB0aGUgYm9hcmQgYWN0dWFsbHkgZ2V0IGxhc3QgbW9udGgncz9cIiBBIGxvZyBsaW5lXG4gICAqIGNhbm5vdCBiZSBzaG93biBuZXh0IHRvIHRoZSByZXBvcnQsIGFuZCBgbGVhZE5vdGVzYCBjYW5ub3QgaG9sZCBpdCDigJQgdGhhdCBjb2x1bW4gaXNcbiAgICogZnJvemVuIGF0IHB1Ymxpc2gsIHdoaWNoIGlzIGV4YWN0bHkgd2hlbiBkZWxpdmVyeSBoYXBwZW5zLlxuICAgKi9cbiAgZGVsaXZlcnk6IGpzb25iKCdkZWxpdmVyeScpLiR0eXBlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PigpLFxuICBwdWJsaXNoZWRCeTogdGV4dCgncHVibGlzaGVkX2J5JyksXG4gIHB1Ymxpc2hlZEF0OiB0aW1lc3RhbXAoJ3B1Ymxpc2hlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBzdXBlcnNlZGVkQnk6IHZhcmNoYXIoJ3N1cGVyc2VkZWRfYnknLCB7IGxlbmd0aDogMjU1IH0pLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG4gIHVwZGF0ZWRBdDogdGltZXN0YW1wKCd1cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbiAgZGVsZXRlZEF0OiB0aW1lc3RhbXAoJ2RlbGV0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgZGVsZXRlZEJ5OiB0ZXh0KCdkZWxldGVkX2J5JyksXG4gIHB1cmdlQWZ0ZXI6IHRpbWVzdGFtcCgncHVyZ2VfYWZ0ZXInLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgLy8gVGhlIGlkZW1wb3RlbmN5IGtleS4gQSByZXRyeSwgYSBjYXRjaC11cCBwYXNzIGFuZCBhIG1hbnVhbCBiYWNrZmlsbCBjYW4gYWxsXG4gIC8vIGFzayBmb3IgdGhlIHNhbWUgcGVyaW9kOyB3aXRob3V0IHRoaXMgdGhleSB3b3VsZCBlYWNoIGluc2VydCBhIHJvdy5cbiAgcGVyaW9kVW5pcXVlOiB1bmlxdWVJbmRleCgncmVwb3J0X3J1bl9wZXJpb2RfdW5pcXVlJylcbiAgICAub24odGFibGUuZGVmaW5pdGlvbklkLCB0YWJsZS5wZXJpb2RTdGFydCwgdGFibGUudmVyc2lvbiksXG4gIGRlZmluaXRpb25JZHg6IGluZGV4KCdyZXBvcnRfcnVuX2RlZmluaXRpb25faWR4Jykub24odGFibGUuZGVmaW5pdGlvbklkLCB0YWJsZS5wZXJpb2RTdGFydClcbiAgICAud2hlcmUoc3FsYGRlbGV0ZWRfYXQgSVMgTlVMTGApLFxuICBvcmdJZHg6IGluZGV4KCdyZXBvcnRfcnVuX29yZ19pZHgnKS5vbih0YWJsZS5vcmdJZCkud2hlcmUoc3FsYGRlbGV0ZWRfYXQgSVMgTlVMTGApLFxuICBwdXJnZUlkeDogaW5kZXgoJ3JlcG9ydF9ydW5fcHVyZ2VfaWR4Jykub24odGFibGUucHVyZ2VBZnRlcikud2hlcmUoc3FsYGRlbGV0ZWRfYXQgSVMgTk9UIE5VTExgKSxcbn0pKTtcblxuLyoqXG4gKiBBIHJlYWQtb25seSwgZXhwaXJpbmcgbGluayB0byBvbmUgcHVibGlzaGVkIHJ1bi5cbiAqXG4gKiBAdGFibGUgcmVwb3J0X3NoYXJlX2xpbmtzXG4gKi9cbmV4cG9ydCBjb25zdCByZXBvcnRTaGFyZUxpbmsgPSBwZ1RhYmxlKCdyZXBvcnRfc2hhcmVfbGlua3MnLCB7XG4gIGlkOiB2YXJjaGFyKCdpZCcsIHsgbGVuZ3RoOiAyNTUgfSkucHJpbWFyeUtleSgpLFxuICBvcmdJZDogdmFyY2hhcignb3JnX2lkJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIHJ1bklkOiB2YXJjaGFyKCdydW5faWQnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgLyoqXG4gICAqIFNIQS0yNTYgb2YgdGhlIHRva2VuLCBuZXZlciB0aGUgdG9rZW4uIFRoZSByYXcgdmFsdWUgaXMgc2hvd24gb25jZSwgYXRcbiAgICogY3JlYXRpb24g4oCUIGEgc3RvcmVkIHRva2VuIGlzIGEgc3RvcmVkIGNyZWRlbnRpYWwgZm9yIG9yZyBkYXRhIHRoYXQgYW55b25lXG4gICAqIGhvbGRpbmcgdGhlIGxpbmsgY2FuIHJlYWQuXG4gICAqL1xuICB0b2tlbkhhc2g6IHZhcmNoYXIoJ3Rva2VuX2hhc2gnLCB7IGxlbmd0aDogNjQgfSkubm90TnVsbCgpLFxuICBleHBpcmVzQXQ6IHRpbWVzdGFtcCgnZXhwaXJlc19hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLm5vdE51bGwoKSxcbiAgcmV2b2tlZEF0OiB0aW1lc3RhbXAoJ3Jldm9rZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgcmV2b2tlZEJ5OiB0ZXh0KCdyZXZva2VkX2J5JyksXG4gIC8qKiBSZWRhY3QgcGlwZWxpbmUvcHJvamVjdCBuYW1lcyBpbiB0aGUgcHVibGljIHZpZXcg4oCUIGludGVybmFsIG5hbWVzIGxlYWsgaW50ZW50LiAqL1xuICByZWRhY3ROYW1lczogYm9vbGVhbigncmVkYWN0X25hbWVzJykuZGVmYXVsdChmYWxzZSkubm90TnVsbCgpLFxuICB2aWV3Q291bnQ6IGludGVnZXIoJ3ZpZXdfY291bnQnKS5kZWZhdWx0KDApLm5vdE51bGwoKSxcbiAgbGFzdFZpZXdlZEF0OiB0aW1lc3RhbXAoJ2xhc3Rfdmlld2VkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIGNyZWF0ZWRCeTogdGV4dCgnY3JlYXRlZF9ieScpLm5vdE51bGwoKSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxufSwgKHRhYmxlKSA9PiAoe1xuICAvLyBUaGUgcHVibGljIHJvdXRlJ3Mgb25seSBsb29rdXA6IGJ5IHRva2VuIGhhc2guIFVuaXF1ZSBzbyBhIGhhc2ggY29sbGlzaW9uXG4gIC8vIGNhbm5vdCByZXNvbHZlIHRvIHR3byBydW5zLlxuICB0b2tlblVuaXF1ZTogdW5pcXVlSW5kZXgoJ3JlcG9ydF9zaGFyZV9saW5rX3Rva2VuX3VuaXF1ZScpLm9uKHRhYmxlLnRva2VuSGFzaCksXG4gIHJ1bklkeDogaW5kZXgoJ3JlcG9ydF9zaGFyZV9saW5rX3J1bl9pZHgnKS5vbih0YWJsZS5ydW5JZCksXG4gIG9yZ0lkeDogaW5kZXgoJ3JlcG9ydF9zaGFyZV9saW5rX29yZ19pZHgnKS5vbih0YWJsZS5vcmdJZCksXG59KSk7XG5cbi8qKlxuICogQSB2ZXJpZmllZCBkZWxpdmVyeSBhZGRyZXNzIGZvciBvbmUgb3JnLlxuICpcbiAqIEB0YWJsZSByZXBvcnRfcmVjaXBpZW50c1xuICovXG5leHBvcnQgY29uc3QgcmVwb3J0UmVjaXBpZW50ID0gcGdUYWJsZSgncmVwb3J0X3JlY2lwaWVudHMnLCB7XG4gIGlkOiB2YXJjaGFyKCdpZCcsIHsgbGVuZ3RoOiAyNTUgfSkucHJpbWFyeUtleSgpLFxuICBvcmdJZDogdmFyY2hhcignb3JnX2lkJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIGVtYWlsOiB2YXJjaGFyKCdlbWFpbCcsIHsgbGVuZ3RoOiAzMjAgfSkubm90TnVsbCgpLFxuICBkaXNwbGF5TmFtZTogdmFyY2hhcignZGlzcGxheV9uYW1lJywgeyBsZW5ndGg6IDIwMCB9KSxcbiAgLyoqXG4gICAqIFNldCB3aGVuIHRoZSByZWNpcGllbnQgY29uZmlybXMgYnkgZW1haWwuIE5vdGhpbmcgaXMgZGVsaXZlcmVkIGJlZm9yZSB0aGlzOlxuICAgKiBvdGhlcndpc2UgYSBsZWFkIGNvdWxkIHNlbmQgb3JnIGRhdGEgdG8gYW55IGFkZHJlc3MgYnkgdHlwaW5nIGl0LlxuICAgKi9cbiAgdmVyaWZpZWRBdDogdGltZXN0YW1wKCd2ZXJpZmllZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICB2ZXJpZmljYXRpb25Ub2tlbkhhc2g6IHZhcmNoYXIoJ3ZlcmlmaWNhdGlvbl90b2tlbl9oYXNoJywgeyBsZW5ndGg6IDY0IH0pLFxuICAvKiogSG9ub3VyZWQgYWNyb3NzIGV2ZXJ5IGRlZmluaXRpb24g4oCUIGFuIHVuc3Vic2NyaWJlIGlzIHBlciBwZXJzb24sIG5vdCBwZXIgcmVwb3J0LiAqL1xuICB1bnN1YnNjcmliZWRBdDogdGltZXN0YW1wKCd1bnN1YnNjcmliZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgLyoqXG4gICAqIFRoZSByZWNpcGllbnQncyBzdGFibGUgdW5zdWJzY3JpYmUgbm9uY2UsIG1pbnRlZCBvbmNlIHdpdGggdGhlIHJvdy5cbiAgICpcbiAgICogU1RPUkVEIElOIFRIRSBDTEVBUiwgdW5saWtlIGV2ZXJ5IG90aGVyIHRva2VuIGluIHRoaXMgZmlsZSwgYW5kIHRoZSBkaWZmZXJlbmNlIGlzXG4gICAqIHdoYXQgaXQgYXV0aG9yaXplcy4gQSBzaGFyZS1saW5rIHRva2VuIGdyYW50cyBSRUFEIEFDQ0VTUyB0byBhbiBvcmcncyByZXBvcnQsIHNvIGl0XG4gICAqIGlzIG9ubHkgZXZlciBrZXB0IGFzIGEgaGFzaDsgdGhpcyBvbmUgYXV0aG9yaXplcyBleGFjdGx5IG9uZSBzZWxmLWxpbWl0aW5nIGFjdGlvbiDigJRcbiAgICogXCJzdG9wIGVtYWlsaW5nIHRoaXMgYWRkcmVzc1wiIOKAlCBzbyB0aGUgd29yc3QgYSBkYXRhYmFzZSByZWFkIGJ1eXMgYW4gYXR0YWNrZXIgaXMgdGhlXG4gICAqIGFiaWxpdHkgdG8gbWFrZSB0aGUgcHJvZHVjdCBzZW5kIGxlc3MgbWFpbC5cbiAgICpcbiAgICogSXQgaGFzIHRvIGJlIHJlYWRhYmxlIGJlY2F1c2UgZXZlcnkgcmVwb3J0IGVtYWlsIHJlYnVpbGRzIHRoZSBsaW5rLCBhbmQgYSBoYXNoXG4gICAqIGNhbm5vdCBiZSB0dXJuZWQgYmFjayBpbnRvIHRoZSBVUkwuIFRoZSBhbHRlcm5hdGl2ZSwgYSBzaWduZWQgVVJMLCB3b3VsZCBiZVxuICAgKiBpbnZhbGlkYXRlZCBieSB0aGUgZGVmYXVsdCBFUEhFTUVSQUwgc2VydmljZSBrZXkgb24gZXZlcnkgcmVzdGFydCwgc2lsZW50bHkgYnJlYWtpbmdcbiAgICogdGhlIHVuc3Vic2NyaWJlIGxpbmsgaW4gZXZlcnkgcmVwb3J0IGFscmVhZHkgc2l0dGluZyBpbiBhIG1hbmFnZXIncyBtYWlsYm94IOKAlCB3aGljaFxuICAgKiBpcyB0aGUgb25lIGZhaWx1cmUgaGVyZSB0aGF0IGhhcyBhIHJlZ3VsYXRvciBhdHRhY2hlZCB0byBpdC5cbiAgICovXG4gIHVuc3Vic2NyaWJlVG9rZW46IHZhcmNoYXIoJ3Vuc3Vic2NyaWJlX3Rva2VuJywgeyBsZW5ndGg6IDY0IH0pLFxuICBib3VuY2VDb3VudDogaW50ZWdlcignYm91bmNlX2NvdW50JykuZGVmYXVsdCgwKS5ub3ROdWxsKCksXG4gIGxhc3RCb3VuY2VBdDogdGltZXN0YW1wKCdsYXN0X2JvdW5jZV9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICAvKiogU2V0IHdoZW4gYW4gYWRtaW4gYXBwcm92ZWQgYW4gYWRkcmVzcyBvdXRzaWRlIHRoZSBhbGxvd2VkIGRvbWFpbnMuICovXG4gIGFwcHJvdmVkQnk6IHRleHQoJ2FwcHJvdmVkX2J5JyksXG4gIGNyZWF0ZWRCeTogdGV4dCgnY3JlYXRlZF9ieScpLm5vdE51bGwoKSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxuICBkZWxldGVkQXQ6IHRpbWVzdGFtcCgnZGVsZXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBkZWxldGVkQnk6IHRleHQoJ2RlbGV0ZWRfYnknKSxcbiAgcHVyZ2VBZnRlcjogdGltZXN0YW1wKCdwdXJnZV9hZnRlcicsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxufSwgKHRhYmxlKSA9PiAoe1xuICAvLyBPbmUgcm93IHBlciBhZGRyZXNzIHBlciBvcmcsIHNvIHJlLWFkZGluZyBhIHJlY2lwaWVudCByZXVzZXMgaXRzIHZlcmlmaWNhdGlvblxuICAvLyBhbmQgdW5zdWJzY3JpYmUgc3RhdGUgcmF0aGVyIHRoYW4gcmVzZXR0aW5nIHRoZW0uXG4gIG9yZ0VtYWlsVW5pcXVlOiB1bmlxdWVJbmRleCgncmVwb3J0X3JlY2lwaWVudF9vcmdfZW1haWxfdW5pcXVlJykub24odGFibGUub3JnSWQsIHRhYmxlLmVtYWlsKSxcbiAgb3JnSWR4OiBpbmRleCgncmVwb3J0X3JlY2lwaWVudF9vcmdfaWR4Jykub24odGFibGUub3JnSWQpLndoZXJlKHNxbGBkZWxldGVkX2F0IElTIE5VTExgKSxcbiAgcHVyZ2VJZHg6IGluZGV4KCdyZXBvcnRfcmVjaXBpZW50X3B1cmdlX2lkeCcpLm9uKHRhYmxlLnB1cmdlQWZ0ZXIpLndoZXJlKHNxbGBkZWxldGVkX2F0IElTIE5PVCBOVUxMYCksXG4gIC8vIFRoZSB1bnN1YnNjcmliZSBsaW5rJ3Mgb25seSBsb29rdXAuIFVuaXF1ZSBzbyBvbmUgdG9rZW4gY2FuIG5ldmVyIHJlc29sdmUgdG8gdHdvXG4gIC8vIGFkZHJlc3Nlcy5cbiAgdW5zdWJUb2tlblVuaXF1ZTogdW5pcXVlSW5kZXgoJ3JlcG9ydF9yZWNpcGllbnRfdW5zdWJfdG9rZW5fdW5pcXVlJykub24odGFibGUudW5zdWJzY3JpYmVUb2tlbilcbiAgICAud2hlcmUoc3FsYHVuc3Vic2NyaWJlX3Rva2VuIElTIE5PVCBOVUxMYCksXG59KSk7XG5cbmV4cG9ydCB0eXBlIFJlcG9ydERlZmluaXRpb24gPSB0eXBlb2YgcmVwb3J0RGVmaW5pdGlvbi4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBSZXBvcnREZWZpbml0aW9uSW5zZXJ0ID0gdHlwZW9mIHJlcG9ydERlZmluaXRpb24uJGluZmVySW5zZXJ0O1xuZXhwb3J0IHR5cGUgUmVwb3J0UnVuID0gdHlwZW9mIHJlcG9ydFJ1bi4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBSZXBvcnRSdW5JbnNlcnQgPSB0eXBlb2YgcmVwb3J0UnVuLiRpbmZlckluc2VydDtcbmV4cG9ydCB0eXBlIFJlcG9ydFNoYXJlTGluayA9IHR5cGVvZiByZXBvcnRTaGFyZUxpbmsuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgUmVwb3J0U2hhcmVMaW5rSW5zZXJ0ID0gdHlwZW9mIHJlcG9ydFNoYXJlTGluay4kaW5mZXJJbnNlcnQ7XG5leHBvcnQgdHlwZSBSZXBvcnRSZWNpcGllbnQgPSB0eXBlb2YgcmVwb3J0UmVjaXBpZW50LiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFJlcG9ydFJlY2lwaWVudEluc2VydCA9IHR5cGVvZiByZXBvcnRSZWNpcGllbnQuJGluZmVySW5zZXJ0O1xuIl19
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0aW5nLXN0YWtlaG9sZGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0YWJhc2Uvc2NoZW1hL3JlcG9ydGluZy1zdGFrZWhvbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBNkJ0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJILGdEQUFnRDtBQUNoRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBVSxDQUFDO0FBRzNFLHlFQUF5RTtBQUN6RSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixDQUFVLENBQUM7QUFHbkc7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsVUFBVSxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxRQUFRLENBQVUsQ0FBQztBQUdwRzs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixDQUFVLENBQUM7QUFHbEcsb0NBQW9DO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQVUsQ0FBQztBQVV6RTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRTtJQUM1RCxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRTtJQUMvQyxLQUFLLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRTtJQUNuRDs7OztPQUlHO0lBQ0gsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDbkMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDaEQsUUFBUSxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQWtCLENBQUMsT0FBTyxFQUFFO0lBQy9FLHNFQUFzRTtJQUN0RSxRQUFRLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDbkUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQWlCLENBQUMsT0FBTyxFQUFFO0lBQzVFLDJFQUEyRTtJQUMzRSxRQUFRLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDdEUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFO0lBQy9GLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFlLENBQUMsT0FBTyxFQUFFO0lBQ3BELGlFQUFpRTtJQUNqRSxVQUFVLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssRUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDdkU7Ozs7T0FJRztJQUNILFFBQVEsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRTtJQUN2RCxRQUFRLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDdEQsWUFBWSxFQUFFLE9BQU8sQ0FBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQXFCO0lBQ2pGLFNBQVMsRUFBRSxTQUFTLENBQUMsYUFBYSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzNELFNBQVMsRUFBRSxTQUFTLENBQUMsYUFBYSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzNELFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxFQUFFO0lBQ3ZDLFNBQVMsRUFBRSxTQUFTLENBQUMsWUFBWSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxFQUFFO0lBQ2pGLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLFNBQVMsRUFBRSxTQUFTLENBQUMsWUFBWSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxFQUFFO0lBQ2pGLFNBQVMsRUFBRSxTQUFTLENBQUMsWUFBWSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzFELFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLFVBQVUsRUFBRSxTQUFTLENBQUMsYUFBYSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO0NBQzdELEVBQUUs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QU0sRUFBRSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUEsb0JBQW9CLENBQUM7SUFDeEYsUUFBUSxFQUFFLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQSx3QkFBd0IsQ0FBQztJQUNyRyxtRkFBbUY7SUFDbkYsYUFBYTtJQUNiLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7U0FDNUYsS0FBSyxDQUFDLEdBQUcsQ0FBQSwrQkFBK0IsQ0FBQztDQUM3QyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFN0YWtlaG9sZGVyIHJlcG9ydHMg4oCUIHNjaGVkdWxlZCwgbWFuYWdlci1mYWNpbmcgc3VtbWFyaWVzIGEgbGVhZCBkZXZlbG9wZXJcbiAqIGNvbXBvc2VzLCByZXZpZXdzIGFuZCBwdWJsaXNoZXMuXG4gKlxuICogRm91ciB0YWJsZXMsIGFuZCB0aGUgcmVhc29uIGVhY2ggZXhpc3RzOlxuICpcbiAqICAtIGByZXBvcnRfZGVmaW5pdGlvbnNgIOKAlCB0aGUgc2F2ZWQgXCJ3aGF0IGFuZCB3aGVuXCIuIFJlcG9ydGluZyB3YXMgZW50aXJlbHlcbiAqICAgIG9uLWRlbWFuZCBiZWZvcmUgdGhpczogdGhlIGRhc2hib2FyZCBwaWNrZWQgYSBmcm9tL3RvIGFuZCBub3RoaW5nIGNvdWxkIGJlXG4gKiAgICBzYXZlZCwgc2NoZWR1bGVkIG9yIGtlcHQuXG4gKiAgLSBgcmVwb3J0X3J1bnNgIOKAlCB0aGUgRlJPWkVOIHNuYXBzaG90IG9mIG9uZSBwZXJpb2QncyBvdXRwdXQuIFRoaXMgaXMgdGhlIGxvYWRcbiAqICAgIGJlYXJpbmcgdGFibGUuIFRoZSByZXRlbnRpb24gc3dlZXAgcHVyZ2VzIHJhdyBgcGlwZWxpbmVfZXZlbnRzYCBieSB0aWVyLCBzb1xuICogICAgd2l0aG91dCBhIHNuYXBzaG90IGxhc3QgcXVhcnRlcidzIHJlcG9ydCBjYW5ub3QgYmUgcmVnZW5lcmF0ZWQgb25jZSBpdHNcbiAqICAgIGV2ZW50cyBhcmUgZ29uZSDigJQgYW5kIGEgbWFuYWdlciB3aG8gcmVhZCBhIG51bWJlciBvbiBNb25kYXkgbXVzdCBzZWUgdGhlIHNhbWVcbiAqICAgIG51bWJlciBvbiBGcmlkYXkuXG4gKiAgLSBgcmVwb3J0X3NoYXJlX2xpbmtzYCDigJQgZXhwaXJpbmcsIHJldm9jYWJsZSByZWFkLW9ubHkgbGlua3MsIGJlY2F1c2UgdGhlXG4gKiAgICBtYW5hZ2VycyBhIHJlcG9ydCBpcyBmb3IgdXN1YWxseSBoYXZlIG5vIHBsYXRmb3JtIGFjY291bnQuXG4gKiAgLSBgcmVwb3J0X3JlY2lwaWVudHNgIOKAlCBwZXItb3JnIGRlbGl2ZXJ5IGFkZHJlc3Nlcywgd2l0aCB2ZXJpZmljYXRpb24gYW5kXG4gKiAgICBib3VuY2Ugc3RhdGUuIFJlY2lwaWVudCBlbWFpbHMgYXJlIFBJSSBhbmQgdGhlIG9yZyBvd25zIHRoZSBsaXN0LCBub3QgdGhlXG4gKiAgICBkZWZpbml0aW9uLCBzbyBvbmUgbGVhZCdzIGxpc3QgaXMgcmV1c2FibGUgYW5kIG9uZSB1bnN1YnNjcmliZSBpcyBob25vdXJlZFxuICogICAgZXZlcnl3aGVyZS5cbiAqXG4gKiBFdmVyeSB0YWJsZSBpcyBvcmctc2NvcGVkIHdpdGggUkxTICsgc29mdC1kZWxldGUsIG1pcnJvcmluZyBwb3N0Z3Jlcy1pbml0LnNxbFxuICogKHdoaWNoIGlzIHdoYXQgYWN0dWFsbHkgZGVwbG95czsgYHNjaGVtYS1yZWZsZWN0aW9uLnRlc3QudHNgIGtlZXBzIHRoZSB0d28gaW5cbiAqIGxvY2stc3RlcCwgbmFtZSBmb3IgbmFtZSkuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBXZWVrU3RhcnQgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgeyBzcWwgfSBmcm9tICdkcml6emxlLW9ybSc7XG5pbXBvcnQgeyBib29sZWFuLCBpbmRleCwgaW50ZWdlciwganNvbmIsIHBnVGFibGUsIHRleHQsIHRpbWVzdGFtcCwgdW5pcXVlSW5kZXgsIHZhcmNoYXIgfSBmcm9tICdkcml6emxlLW9ybS9wZy1jb3JlJztcblxuLyoqIEhvdyBvZnRlbiBhIGRlZmluaXRpb24gcHJvZHVjZXMgYSByZXBvcnQuICovXG5leHBvcnQgY29uc3QgUkVQT1JUX0NBREVOQ0VTID0gWyd3ZWVrbHknLCAnbW9udGhseScsICdxdWFydGVybHknXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFJlcG9ydENhZGVuY2UgPSAodHlwZW9mIFJFUE9SVF9DQURFTkNFUylbbnVtYmVyXTtcblxuLyoqIFRoZSBtYW5hZ2VyLWZhY2luZyB0ZW1wbGF0ZXMuIEVhY2ggaXMgYSBmaXhlZCBsaXN0IG9mIHNlY3Rpb24gaWRzLiAqL1xuZXhwb3J0IGNvbnN0IFJFUE9SVF9URU1QTEFURVMgPSBbJ3dlZWtseV9kZWxpdmVyeScsICdtb250aGx5X2hlYWx0aCcsICdxdWFydGVybHlfcmV2aWV3J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBSZXBvcnRUZW1wbGF0ZSA9ICh0eXBlb2YgUkVQT1JUX1RFTVBMQVRFUylbbnVtYmVyXTtcblxuLyoqXG4gKiBBIHJ1bidzIGxpZmVjeWNsZS4gYGRyYWZ0aW5nYCDihpIgYHJlYWR5X2Zvcl9yZXZpZXdgIOKGkiBgcHVibGlzaGVkYCwgd2l0aCBgZmFpbGVkYFxuICogYXMgYSB0ZXJtaW5hbCBzaWRlIGJyYW5jaC4gTm90aGluZyByZWFjaGVzIGEgbWFuYWdlciBiZWZvcmUgYHB1Ymxpc2hlZGAsIHdoaWNoXG4gKiBpcyB3aGF0IG1ha2VzIHRoZSBsZWFkJ3MgYXBwcm92YWwgdGhlIGdhdGUuXG4gKi9cbmV4cG9ydCBjb25zdCBSRVBPUlRfUlVOX1NUQVRVU0VTID0gWydkcmFmdGluZycsICdyZWFkeV9mb3JfcmV2aWV3JywgJ3B1Ymxpc2hlZCcsICdmYWlsZWQnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFJlcG9ydFJ1blN0YXR1cyA9ICh0eXBlb2YgUkVQT1JUX1JVTl9TVEFUVVNFUylbbnVtYmVyXTtcblxuLyoqXG4gKiBXaHkgYSBkZWZpbml0aW9uIHN0b3BwZWQgcnVubmluZy4gUmVjb3JkZWQgcmF0aGVyIHRoYW4gaW5mZXJyZWQsIGJlY2F1c2UgdGhlXG4gKiB0aHJlZSBjYXVzZXMgbmVlZCBkaWZmZXJlbnQgZml4ZXMgYW5kIHRoZSBsZWFkIHNlZXMgdGhpcyBzdHJpbmc6IHRoZSBhZGQtb25cbiAqIGxhcHNlZCwgdGhlIG93bmVyIHdhcyBkZWFjdGl2YXRlZCwgb3IgdGhlIG93bmVyIGxvc3QgdGhlIHBlcm1pc3Npb24gdGhhdCBsZXRcbiAqIHRoZW0gYXV0aG9yIGl0LlxuICovXG5leHBvcnQgY29uc3QgUkVQT1JUX1BBVVNFX1JFQVNPTlMgPSBbJ2VudGl0bGVtZW50JywgJ293bmVyX2luYWN0aXZlJywgJ3Blcm1pc3Npb25fbG9zdCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUmVwb3J0UGF1c2VSZWFzb24gPSAodHlwZW9mIFJFUE9SVF9QQVVTRV9SRUFTT05TKVtudW1iZXJdO1xuXG4vKiogV2hhdCBhIGRlZmluaXRpb24gcmVwb3J0cyBvbi4gKi9cbmV4cG9ydCBjb25zdCBSRVBPUlRfU0NPUEVfS0lORFMgPSBbJ29yZycsICdwcm9qZWN0cycsICdyb2xsdXAnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFJlcG9ydFNjb3BlS2luZCA9ICh0eXBlb2YgUkVQT1JUX1NDT1BFX0tJTkRTKVtudW1iZXJdO1xuXG4vKiogVGhlIGBzY29wZWAgSlNPTjogd2hpY2ggcGlwZWxpbmVzIGEgcnVuIGNvdmVycy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0U2NvcGUge1xuICBraW5kOiBSZXBvcnRTY29wZUtpbmQ7XG4gIC8qKiBQcm9qZWN0IG5hbWVzLCB3aGVuIGBraW5kID09PSAncHJvamVjdHMnYC4gRW1wdHkgZm9yIG9yZy9yb2xsdXAuICovXG4gIHByb2plY3RzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogQSBzYXZlZCByZXBvcnQ6IHdoYXQgdG8gY29tcHV0ZSwgaG93IG9mdGVuLCBpbiB3aG9zZSB0aW1lem9uZSwgYW5kIHdobyByZWNlaXZlc1xuICogaXQuXG4gKlxuICogQHRhYmxlIHJlcG9ydF9kZWZpbml0aW9uc1xuICovXG5leHBvcnQgY29uc3QgcmVwb3J0RGVmaW5pdGlvbiA9IHBnVGFibGUoJ3JlcG9ydF9kZWZpbml0aW9ucycsIHtcbiAgaWQ6IHZhcmNoYXIoJ2lkJywgeyBsZW5ndGg6IDI1NSB9KS5wcmltYXJ5S2V5KCksXG4gIG9yZ0lkOiB2YXJjaGFyKCdvcmdfaWQnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgLyoqXG4gICAqIFRoZSBsZWFkIHdobyBvd25zIHRoaXMgZGVmaW5pdGlvbi4gUnVucyByZS1jaGVjayBUSElTIHVzZXIncyBwZXJtaXNzaW9ucywgbm90XG4gICAqIHRoZSBjYWxsZXIncywgYmVjYXVzZSBhIHNjaGVkdWxlZCBydW4gaGFzIG5vIGNhbGxlciDigJQgc28gYSBsZWFkIHdobyBsb3Nlc1xuICAgKiBhY2Nlc3Mgc3RvcHMgcHJvZHVjaW5nIHJlcG9ydHMgcmF0aGVyIHRoYW4ga2VlcGluZyBhIHN0YW5kaW5nIGdyYW50LlxuICAgKi9cbiAgb3duZXJJZDogdGV4dCgnb3duZXJfaWQnKS5ub3ROdWxsKCksXG4gIG5hbWU6IHZhcmNoYXIoJ25hbWUnLCB7IGxlbmd0aDogMjAwIH0pLm5vdE51bGwoKSxcbiAgdGVtcGxhdGU6IHZhcmNoYXIoJ3RlbXBsYXRlJywgeyBsZW5ndGg6IDQwIH0pLiR0eXBlPFJlcG9ydFRlbXBsYXRlPigpLm5vdE51bGwoKSxcbiAgLyoqIFNlY3Rpb24gaWRzLCByZXNvbHZlZCB0aHJvdWdoIHRoZSBzZWN0aW9uIHJlZ2lzdHJ5IGF0IHJ1biB0aW1lLiAqL1xuICBzZWN0aW9uczoganNvbmIoJ3NlY3Rpb25zJykuJHR5cGU8c3RyaW5nW10+KCkuZGVmYXVsdChbXSkubm90TnVsbCgpLFxuICBjYWRlbmNlOiB2YXJjaGFyKCdjYWRlbmNlJywgeyBsZW5ndGg6IDIwIH0pLiR0eXBlPFJlcG9ydENhZGVuY2U+KCkubm90TnVsbCgpLFxuICAvKiogSUFOQSBuYW1lLiBQZXJpb2RzIGFyZSBjdXQgaW4gVEhJUyB6b25lLCBub3QgdGhlIGRhdGFiYXNlIHNlc3Npb24ncy4gKi9cbiAgdGltZXpvbmU6IHZhcmNoYXIoJ3RpbWV6b25lJywgeyBsZW5ndGg6IDY0IH0pLmRlZmF1bHQoJ1VUQycpLm5vdE51bGwoKSxcbiAgd2Vla1N0YXJ0OiB2YXJjaGFyKCd3ZWVrX3N0YXJ0JywgeyBsZW5ndGg6IDEwIH0pLiR0eXBlPFdlZWtTdGFydD4oKS5kZWZhdWx0KCdtb25kYXknKS5ub3ROdWxsKCksXG4gIHNjb3BlOiBqc29uYignc2NvcGUnKS4kdHlwZTxSZXBvcnRTY29wZT4oKS5ub3ROdWxsKCksXG4gIC8qKiBSZWNpcGllbnQgaWRzIGZyb20gYHJlcG9ydF9yZWNpcGllbnRzYCwgbm90IHJhdyBhZGRyZXNzZXMuICovXG4gIHJlY2lwaWVudHM6IGpzb25iKCdyZWNpcGllbnRzJykuJHR5cGU8c3RyaW5nW10+KCkuZGVmYXVsdChbXSkubm90TnVsbCgpLFxuICAvKipcbiAgICogUHVibGlzaCB3aXRob3V0IHRoZSBsZWFkIHJldmlld2luZy4gT2ZmIGJ5IGRlZmF1bHQ6IHRoZSB3aG9sZSBwb2ludCBvZiB0aGVcbiAgICogcmV2aWV3IHN0ZXAgaXMgdGhhdCB0aGUgZGF0YSBjYW5ub3Qgc3VwcGx5IHRoZSBjb250ZXh0IGEgbWFuYWdlciBuZWVkc1xuICAgKiAoXCJ3ZSBwYXVzZWQgZGVwbG95cyBUdWVzZGF5IGZvciB0aGUgbWlncmF0aW9uXCIpLlxuICAgKi9cbiAgYXV0b1NlbmQ6IGJvb2xlYW4oJ2F1dG9fc2VuZCcpLmRlZmF1bHQoZmFsc2UpLm5vdE51bGwoKSxcbiAgaXNBY3RpdmU6IGJvb2xlYW4oJ2lzX2FjdGl2ZScpLmRlZmF1bHQodHJ1ZSkubm90TnVsbCgpLFxuICBwYXVzZWRSZWFzb246IHZhcmNoYXIoJ3BhdXNlZF9yZWFzb24nLCB7IGxlbmd0aDogMzAgfSkuJHR5cGU8UmVwb3J0UGF1c2VSZWFzb24+KCksXG4gIG5leHRSdW5BdDogdGltZXN0YW1wKCduZXh0X3J1bl9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBsYXN0UnVuQXQ6IHRpbWVzdGFtcCgnbGFzdF9ydW5fYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgY3JlYXRlZEJ5OiB0ZXh0KCdjcmVhdGVkX2J5Jykubm90TnVsbCgpLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG4gIHVwZGF0ZWRCeTogdGV4dCgndXBkYXRlZF9ieScpLFxuICB1cGRhdGVkQXQ6IHRpbWVzdGFtcCgndXBkYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG4gIGRlbGV0ZWRBdDogdGltZXN0YW1wKCdkZWxldGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIGRlbGV0ZWRCeTogdGV4dCgnZGVsZXRlZF9ieScpLFxuICBwdXJnZUFmdGVyOiB0aW1lc3RhbXAoJ3B1cmdlX2FmdGVyJywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG59LCAodGFibGUpID0+ICh7XG4gIG9yZ0lkeDogaW5kZXgoJ3JlcG9ydF9kZWZpbml0aW9uX29yZ19pZHgnKS5vbih0YWJsZS5vcmdJZCkud2hlcmUoc3FsYGRlbGV0ZWRfYXQgSVMgTlVMTGApLFxuICBvd25lcklkeDogaW5kZXgoJ3JlcG9ydF9kZWZpbml0aW9uX293bmVyX2lkeCcpLm9uKHRhYmxlLm93bmVySWQpLndoZXJlKHNxbGBkZWxldGVkX2F0IElTIE5VTExgKSxcbiAgLy8gRHJpdmVzIHRoZSBzY2hlZHVsZXIncyBjbGFpbSBzY2FuOiB0aGUgZHVlLCBsaXZlLCB1bnBhdXNlZCBkZWZpbml0aW9ucyBvbmx5LlxuICBkdWVJZHg6IGluZGV4KCdyZXBvcnRfZGVmaW5pdGlvbl9kdWVfaWR4Jykub24odGFibGUubmV4dFJ1bkF0KVxuICAgIC53aGVyZShzcWxgZGVsZXRlZF9hdCBJUyBOVUxMIEFORCBpc19hY3RpdmUgPSB0cnVlYCksXG4gIHB1cmdlSWR4OiBpbmRleCgncmVwb3J0X2RlZmluaXRpb25fcHVyZ2VfaWR4Jykub24odGFibGUucHVyZ2VBZnRlcikud2hlcmUoc3FsYGRlbGV0ZWRfYXQgSVMgTk9UIE5VTExgKSxcbn0pKTtcblxuLyoqXG4gKiBPbmUgcGVyaW9kJ3MgZnJvemVuIG91dHB1dC5cbiAqXG4gKiBAdGFibGUgcmVwb3J0X3J1bnNcbiAqL1xuZXhwb3J0IGNvbnN0IHJlcG9ydFJ1biA9IHBnVGFibGUoJ3JlcG9ydF9ydW5zJywge1xuICBpZDogdmFyY2hhcignaWQnLCB7IGxlbmd0aDogMjU1IH0pLnByaW1hcnlLZXkoKSxcbiAgb3JnSWQ6IHZhcmNoYXIoJ29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBkZWZpbml0aW9uSWQ6IHZhcmNoYXIoJ2RlZmluaXRpb25faWQnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgLyoqIEluY2x1c2l2ZSBwZXJpb2Qgc3RhcnQsIGV4Y2x1c2l2ZSBlbmQg4oCUIGJvdGggaW5zdGFudHMsIGluIFVUQy4gKi9cbiAgcGVyaW9kU3RhcnQ6IHRpbWVzdGFtcCgncGVyaW9kX3N0YXJ0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkubm90TnVsbCgpLFxuICBwZXJpb2RFbmQ6IHRpbWVzdGFtcCgncGVyaW9kX2VuZCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLm5vdE51bGwoKSxcbiAgLyoqIEh1bWFuIGxhYmVsIGluIHRoZSBkZWZpbml0aW9uJ3MgdGltZXpvbmU6IGAyMDI2LVczOGAsIGAyMDI2LTA4YCwgYDIwMjYtUTNgLiAqL1xuICBwZXJpb2RMYWJlbDogdmFyY2hhcigncGVyaW9kX2xhYmVsJywgeyBsZW5ndGg6IDIwIH0pLm5vdE51bGwoKSxcbiAgLyoqXG4gICAqIFJlZ2VuZXJhdGluZyBhIHBlcmlvZCBwcm9kdWNlcyB2ZXJzaW9uIE4rMSBhbmQgc3VwZXJzZWRlcyB0aGUgb2xkIHJvdyByYXRoZXJcbiAgICogdGhhbiBvdmVyd3JpdGluZyBpdC4gTGF0ZSBldmVudHMgKHRoZSBpbmdlc3QgcmVkcml2ZXMgaXRzIGRlYWQtbGV0dGVyIHF1ZXVlXG4gICAqIGhvdXJzIGxhdGVyKSBtZWFuIGEgY29ycmVjdGVkIHJlcG9ydCBpcyBub3JtYWwg4oCUIGFuZCBhIG1hbmFnZXIgd2hvIGFscmVhZHlcbiAgICogcmVhZCB2MSBtdXN0IHN0aWxsIGJlIGFibGUgdG8gc2VlIGV4YWN0bHkgd2hhdCB0aGV5IHJlYWQuXG4gICAqL1xuICB2ZXJzaW9uOiBpbnRlZ2VyKCd2ZXJzaW9uJykuZGVmYXVsdCgxKS5ub3ROdWxsKCksXG4gIHN0YXR1czogdmFyY2hhcignc3RhdHVzJywgeyBsZW5ndGg6IDIwIH0pLiR0eXBlPFJlcG9ydFJ1blN0YXR1cz4oKS5kZWZhdWx0KCdkcmFmdGluZycpLm5vdE51bGwoKSxcbiAgLyoqIFRoZSBjb21wdXRlZCBzZWN0aW9ucy4gU3Vydml2ZXMgdGhlIHJhdy1ldmVudCBwdXJnZSDigJQgdGhhdCBpcyB0aGUgcG9pbnQuICovXG4gIHNuYXBzaG90OiBqc29uYignc25hcHNob3QnKS4kdHlwZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oKSxcbiAgLyoqIEFJLWdlbmVyYXRlZCBleGVjdXRpdmUgc3VtbWFyeSwgZnJvbSB0aGUgc25hcHNob3QncyBudW1iZXJzIG9ubHkuICovXG4gIGFpRHJhZnQ6IHRleHQoJ2FpX2RyYWZ0JyksXG4gIC8qKiBUaGUgbGVhZCdzIG93biB3b3Jkcy4gVGhlIGNvbnRleHQgdGhlIGRhdGEgY2Fubm90IHN1cHBseS4gKi9cbiAgbGVhZE5vdGVzOiB0ZXh0KCdsZWFkX25vdGVzJyksXG4gIC8vIGBhc2tzYCB3YXMgREVMRVRFRCBoZXJlLCBhbmQgaXQgaXMgdGhlIHJlbW92YWwgbW9zdCB3b3J0aCBleHBsYWluaW5nLCBiZWNhdXNlIHRoZSBpZGVhXG4gIC8vIHdhcyBnb29kOiB3aGF0IHRoZSBsZWFkIG5lZWRzIGEgZGVjaXNpb24gb24sIGZyb20gd2hvbSwgYnkgd2hlbiDigJQga2VwdCBhcGFydCBmcm9tXG4gIC8vIGBsZWFkTm90ZXNgIGJlY2F1c2UgYSByZXF1ZXN0IGZvciBhIGRlY2lzaW9uIGJ1cmllZCBpbiBuYXJyYXRpdmUgcmVhZHMgYXMgY29tbWVudGFyeVxuICAvLyBhbmQgZ2V0cyBubyBhbnN3ZXIuIEl0IHdhcyBkZWNsYXJlZCBpbiBQaGFzZSAyIGFuZCB0aGVuIG5ldmVyIHdyaXR0ZW4gb3IgcmVhZCBieVxuICAvLyBhbnl0aGluZzogbm8gcm91dGUgYWNjZXB0ZWQgb25lLCBubyBjb21wb3NlciBlbWl0dGVkIG9uZSwgbm8gdmlldyByZW5kZXJlZCBvbmUsIGFuZFxuICAvLyB0aGUgc2hhcmVkIHJlcG9ydCBhIG1hbmFnZXIgYWN0dWFsbHkgcmVhZHMgbmV2ZXIgc2hvd2VkIHRoZW0uIEEgY29sdW1uIHRoYXQgb25seSBldmVyXG4gIC8vIGhlbGQgaXRzIG93biBkZWZhdWx0IGlzIG5vdCBhIGZlYXR1cmUgaW4gcHJvZ3Jlc3MsIGl0IGlzIGEgY2xhaW0gdGhlIHNjaGVtYSBtYWtlcyBhbmRcbiAgLy8gdGhlIHByb2R1Y3QgZG9lcyBub3QgaG9ub3VyLiBXaG9ldmVyIGJ1aWxkcyBhc2tzIHNob3VsZCBhZGQgdGhlIGNvbHVtbiBiYWNrIFdJVEggdGhlXG4gIC8vIHdyaXRlIHBhdGgsIHRoZSByZXZpZXcgVUkgYW5kIGEgcGxhY2UgaW4gdGhlIHNoYXJlZCB2aWV3LCBpbiBvbmUgY2hhbmdlLlxuICBmYWlsdXJlUmVhc29uOiB0ZXh0KCdmYWlsdXJlX3JlYXNvbicpLFxuICAvKipcbiAgICogV2hhdCBoYXBwZW5lZCB3aGVuIHRoaXMgcnVuIHdhcyBERUxJVkVSRUQ6IGNvdW50cyBwZXIgY2hhbm5lbCwgYW5kIHRoZSBub3RlcyBhIGxlYWRcbiAgICogbmVlZHMgdG8gcmVhZCAoXCJubyBvdXRib3VuZCBlbWFpbCBpcyBjb25maWd1cmVkLCBzbyAxMiByZWNpcGllbnRzIHdlcmUgbm90IG1haWxlZFwiKS5cbiAgICpcbiAgICogT24gdGhlIHJ1biByYXRoZXIgdGhhbiBpbiBhIGxvZywgYmVjYXVzZSB0aGUgcXVlc3Rpb24gaXQgYW5zd2VycyBpcyBhc2tlZCBkYXlzIGxhdGVyXG4gICAqIGFuZCBhYm91dCBvbmUgc3BlY2lmaWMgcmVwb3J0OiBcImRpZCB0aGUgYm9hcmQgYWN0dWFsbHkgZ2V0IGxhc3QgbW9udGgncz9cIiBBIGxvZyBsaW5lXG4gICAqIGNhbm5vdCBiZSBzaG93biBuZXh0IHRvIHRoZSByZXBvcnQsIGFuZCBgbGVhZE5vdGVzYCBjYW5ub3QgaG9sZCBpdCDigJQgdGhhdCBjb2x1bW4gaXNcbiAgICogZnJvemVuIGF0IHB1Ymxpc2gsIHdoaWNoIGlzIGV4YWN0bHkgd2hlbiBkZWxpdmVyeSBoYXBwZW5zLlxuICAgKi9cbiAgZGVsaXZlcnk6IGpzb25iKCdkZWxpdmVyeScpLiR0eXBlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PigpLFxuICBwdWJsaXNoZWRCeTogdGV4dCgncHVibGlzaGVkX2J5JyksXG4gIHB1Ymxpc2hlZEF0OiB0aW1lc3RhbXAoJ3B1Ymxpc2hlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBzdXBlcnNlZGVkQnk6IHZhcmNoYXIoJ3N1cGVyc2VkZWRfYnknLCB7IGxlbmd0aDogMjU1IH0pLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG4gIHVwZGF0ZWRBdDogdGltZXN0YW1wKCd1cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbiAgZGVsZXRlZEF0OiB0aW1lc3RhbXAoJ2RlbGV0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgZGVsZXRlZEJ5OiB0ZXh0KCdkZWxldGVkX2J5JyksXG4gIHB1cmdlQWZ0ZXI6IHRpbWVzdGFtcCgncHVyZ2VfYWZ0ZXInLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgLy8gVGhlIGlkZW1wb3RlbmN5IGtleS4gQSByZXRyeSwgYSBjYXRjaC11cCBwYXNzIGFuZCBhIG1hbnVhbCBiYWNrZmlsbCBjYW4gYWxsXG4gIC8vIGFzayBmb3IgdGhlIHNhbWUgcGVyaW9kOyB3aXRob3V0IHRoaXMgdGhleSB3b3VsZCBlYWNoIGluc2VydCBhIHJvdy5cbiAgcGVyaW9kVW5pcXVlOiB1bmlxdWVJbmRleCgncmVwb3J0X3J1bl9wZXJpb2RfdW5pcXVlJylcbiAgICAub24odGFibGUuZGVmaW5pdGlvbklkLCB0YWJsZS5wZXJpb2RTdGFydCwgdGFibGUudmVyc2lvbiksXG4gIGRlZmluaXRpb25JZHg6IGluZGV4KCdyZXBvcnRfcnVuX2RlZmluaXRpb25faWR4Jykub24odGFibGUuZGVmaW5pdGlvbklkLCB0YWJsZS5wZXJpb2RTdGFydClcbiAgICAud2hlcmUoc3FsYGRlbGV0ZWRfYXQgSVMgTlVMTGApLFxuICBvcmdJZHg6IGluZGV4KCdyZXBvcnRfcnVuX29yZ19pZHgnKS5vbih0YWJsZS5vcmdJZCkud2hlcmUoc3FsYGRlbGV0ZWRfYXQgSVMgTlVMTGApLFxuICBwdXJnZUlkeDogaW5kZXgoJ3JlcG9ydF9ydW5fcHVyZ2VfaWR4Jykub24odGFibGUucHVyZ2VBZnRlcikud2hlcmUoc3FsYGRlbGV0ZWRfYXQgSVMgTk9UIE5VTExgKSxcbn0pKTtcblxuLyoqXG4gKiBBIHJlYWQtb25seSwgZXhwaXJpbmcgbGluayB0byBvbmUgcHVibGlzaGVkIHJ1bi5cbiAqXG4gKiBAdGFibGUgcmVwb3J0X3NoYXJlX2xpbmtzXG4gKi9cbmV4cG9ydCBjb25zdCByZXBvcnRTaGFyZUxpbmsgPSBwZ1RhYmxlKCdyZXBvcnRfc2hhcmVfbGlua3MnLCB7XG4gIGlkOiB2YXJjaGFyKCdpZCcsIHsgbGVuZ3RoOiAyNTUgfSkucHJpbWFyeUtleSgpLFxuICBvcmdJZDogdmFyY2hhcignb3JnX2lkJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIHJ1bklkOiB2YXJjaGFyKCdydW5faWQnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgLyoqXG4gICAqIFNIQS0yNTYgb2YgdGhlIHRva2VuLCBuZXZlciB0aGUgdG9rZW4uIFRoZSByYXcgdmFsdWUgaXMgc2hvd24gb25jZSwgYXRcbiAgICogY3JlYXRpb24g4oCUIGEgc3RvcmVkIHRva2VuIGlzIGEgc3RvcmVkIGNyZWRlbnRpYWwgZm9yIG9yZyBkYXRhIHRoYXQgYW55b25lXG4gICAqIGhvbGRpbmcgdGhlIGxpbmsgY2FuIHJlYWQuXG4gICAqL1xuICB0b2tlbkhhc2g6IHZhcmNoYXIoJ3Rva2VuX2hhc2gnLCB7IGxlbmd0aDogNjQgfSkubm90TnVsbCgpLFxuICBleHBpcmVzQXQ6IHRpbWVzdGFtcCgnZXhwaXJlc19hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLm5vdE51bGwoKSxcbiAgcmV2b2tlZEF0OiB0aW1lc3RhbXAoJ3Jldm9rZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgcmV2b2tlZEJ5OiB0ZXh0KCdyZXZva2VkX2J5JyksXG4gIC8qKiBSZWRhY3QgcGlwZWxpbmUvcHJvamVjdCBuYW1lcyBpbiB0aGUgcHVibGljIHZpZXcg4oCUIGludGVybmFsIG5hbWVzIGxlYWsgaW50ZW50LiAqL1xuICByZWRhY3ROYW1lczogYm9vbGVhbigncmVkYWN0X25hbWVzJykuZGVmYXVsdChmYWxzZSkubm90TnVsbCgpLFxuICB2aWV3Q291bnQ6IGludGVnZXIoJ3ZpZXdfY291bnQnKS5kZWZhdWx0KDApLm5vdE51bGwoKSxcbiAgbGFzdFZpZXdlZEF0OiB0aW1lc3RhbXAoJ2xhc3Rfdmlld2VkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIGNyZWF0ZWRCeTogdGV4dCgnY3JlYXRlZF9ieScpLm5vdE51bGwoKSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxufSwgKHRhYmxlKSA9PiAoe1xuICAvLyBUaGUgcHVibGljIHJvdXRlJ3Mgb25seSBsb29rdXA6IGJ5IHRva2VuIGhhc2guIFVuaXF1ZSBzbyBhIGhhc2ggY29sbGlzaW9uXG4gIC8vIGNhbm5vdCByZXNvbHZlIHRvIHR3byBydW5zLlxuICB0b2tlblVuaXF1ZTogdW5pcXVlSW5kZXgoJ3JlcG9ydF9zaGFyZV9saW5rX3Rva2VuX3VuaXF1ZScpLm9uKHRhYmxlLnRva2VuSGFzaCksXG4gIHJ1bklkeDogaW5kZXgoJ3JlcG9ydF9zaGFyZV9saW5rX3J1bl9pZHgnKS5vbih0YWJsZS5ydW5JZCksXG4gIG9yZ0lkeDogaW5kZXgoJ3JlcG9ydF9zaGFyZV9saW5rX29yZ19pZHgnKS5vbih0YWJsZS5vcmdJZCksXG59KSk7XG5cbi8qKlxuICogQSB2ZXJpZmllZCBkZWxpdmVyeSBhZGRyZXNzIGZvciBvbmUgb3JnLlxuICpcbiAqIEB0YWJsZSByZXBvcnRfcmVjaXBpZW50c1xuICovXG5leHBvcnQgY29uc3QgcmVwb3J0UmVjaXBpZW50ID0gcGdUYWJsZSgncmVwb3J0X3JlY2lwaWVudHMnLCB7XG4gIGlkOiB2YXJjaGFyKCdpZCcsIHsgbGVuZ3RoOiAyNTUgfSkucHJpbWFyeUtleSgpLFxuICBvcmdJZDogdmFyY2hhcignb3JnX2lkJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIGVtYWlsOiB2YXJjaGFyKCdlbWFpbCcsIHsgbGVuZ3RoOiAzMjAgfSkubm90TnVsbCgpLFxuICBkaXNwbGF5TmFtZTogdmFyY2hhcignZGlzcGxheV9uYW1lJywgeyBsZW5ndGg6IDIwMCB9KSxcbiAgLyoqXG4gICAqIFNldCB3aGVuIHRoZSByZWNpcGllbnQgY29uZmlybXMgYnkgZW1haWwuIE5vdGhpbmcgaXMgZGVsaXZlcmVkIGJlZm9yZSB0aGlzOlxuICAgKiBvdGhlcndpc2UgYSBsZWFkIGNvdWxkIHNlbmQgb3JnIGRhdGEgdG8gYW55IGFkZHJlc3MgYnkgdHlwaW5nIGl0LlxuICAgKi9cbiAgdmVyaWZpZWRBdDogdGltZXN0YW1wKCd2ZXJpZmllZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICB2ZXJpZmljYXRpb25Ub2tlbkhhc2g6IHZhcmNoYXIoJ3ZlcmlmaWNhdGlvbl90b2tlbl9oYXNoJywgeyBsZW5ndGg6IDY0IH0pLFxuICAvKiogSG9ub3VyZWQgYWNyb3NzIGV2ZXJ5IGRlZmluaXRpb24g4oCUIGFuIHVuc3Vic2NyaWJlIGlzIHBlciBwZXJzb24sIG5vdCBwZXIgcmVwb3J0LiAqL1xuICB1bnN1YnNjcmliZWRBdDogdGltZXN0YW1wKCd1bnN1YnNjcmliZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgLyoqXG4gICAqIFRoZSByZWNpcGllbnQncyBzdGFibGUgdW5zdWJzY3JpYmUgbm9uY2UsIG1pbnRlZCBvbmNlIHdpdGggdGhlIHJvdy5cbiAgICpcbiAgICogU1RPUkVEIElOIFRIRSBDTEVBUiwgdW5saWtlIGV2ZXJ5IG90aGVyIHRva2VuIGluIHRoaXMgZmlsZSwgYW5kIHRoZSBkaWZmZXJlbmNlIGlzXG4gICAqIHdoYXQgaXQgYXV0aG9yaXplcy4gQSBzaGFyZS1saW5rIHRva2VuIGdyYW50cyBSRUFEIEFDQ0VTUyB0byBhbiBvcmcncyByZXBvcnQsIHNvIGl0XG4gICAqIGlzIG9ubHkgZXZlciBrZXB0IGFzIGEgaGFzaDsgdGhpcyBvbmUgYXV0aG9yaXplcyBleGFjdGx5IG9uZSBzZWxmLWxpbWl0aW5nIGFjdGlvbiDigJRcbiAgICogXCJzdG9wIGVtYWlsaW5nIHRoaXMgYWRkcmVzc1wiIOKAlCBzbyB0aGUgd29yc3QgYSBkYXRhYmFzZSByZWFkIGJ1eXMgYW4gYXR0YWNrZXIgaXMgdGhlXG4gICAqIGFiaWxpdHkgdG8gbWFrZSB0aGUgcHJvZHVjdCBzZW5kIGxlc3MgbWFpbC5cbiAgICpcbiAgICogSXQgaGFzIHRvIGJlIHJlYWRhYmxlIGJlY2F1c2UgZXZlcnkgcmVwb3J0IGVtYWlsIHJlYnVpbGRzIHRoZSBsaW5rLCBhbmQgYSBoYXNoXG4gICAqIGNhbm5vdCBiZSB0dXJuZWQgYmFjayBpbnRvIHRoZSBVUkwuIFRoZSBhbHRlcm5hdGl2ZSwgYSBzaWduZWQgVVJMLCB3b3VsZCBiZVxuICAgKiBpbnZhbGlkYXRlZCBieSB0aGUgZGVmYXVsdCBFUEhFTUVSQUwgc2VydmljZSBrZXkgb24gZXZlcnkgcmVzdGFydCwgc2lsZW50bHkgYnJlYWtpbmdcbiAgICogdGhlIHVuc3Vic2NyaWJlIGxpbmsgaW4gZXZlcnkgcmVwb3J0IGFscmVhZHkgc2l0dGluZyBpbiBhIG1hbmFnZXIncyBtYWlsYm94IOKAlCB3aGljaFxuICAgKiBpcyB0aGUgb25lIGZhaWx1cmUgaGVyZSB0aGF0IGhhcyBhIHJlZ3VsYXRvciBhdHRhY2hlZCB0byBpdC5cbiAgICovXG4gIHVuc3Vic2NyaWJlVG9rZW46IHZhcmNoYXIoJ3Vuc3Vic2NyaWJlX3Rva2VuJywgeyBsZW5ndGg6IDY0IH0pLFxuICBib3VuY2VDb3VudDogaW50ZWdlcignYm91bmNlX2NvdW50JykuZGVmYXVsdCgwKS5ub3ROdWxsKCksXG4gIGxhc3RCb3VuY2VBdDogdGltZXN0YW1wKCdsYXN0X2JvdW5jZV9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICAvKiogU2V0IHdoZW4gYW4gYWRtaW4gYXBwcm92ZWQgYW4gYWRkcmVzcyBvdXRzaWRlIHRoZSBhbGxvd2VkIGRvbWFpbnMuICovXG4gIGFwcHJvdmVkQnk6IHRleHQoJ2FwcHJvdmVkX2J5JyksXG4gIGNyZWF0ZWRCeTogdGV4dCgnY3JlYXRlZF9ieScpLm5vdE51bGwoKSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxuICBkZWxldGVkQXQ6IHRpbWVzdGFtcCgnZGVsZXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBkZWxldGVkQnk6IHRleHQoJ2RlbGV0ZWRfYnknKSxcbiAgcHVyZ2VBZnRlcjogdGltZXN0YW1wKCdwdXJnZV9hZnRlcicsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxufSwgKHRhYmxlKSA9PiAoe1xuICAvLyBPbmUgcm93IHBlciBhZGRyZXNzIHBlciBvcmcsIHNvIHJlLWFkZGluZyBhIHJlY2lwaWVudCByZXVzZXMgaXRzIHZlcmlmaWNhdGlvblxuICAvLyBhbmQgdW5zdWJzY3JpYmUgc3RhdGUgcmF0aGVyIHRoYW4gcmVzZXR0aW5nIHRoZW0uXG4gIG9yZ0VtYWlsVW5pcXVlOiB1bmlxdWVJbmRleCgncmVwb3J0X3JlY2lwaWVudF9vcmdfZW1haWxfdW5pcXVlJykub24odGFibGUub3JnSWQsIHRhYmxlLmVtYWlsKSxcbiAgb3JnSWR4OiBpbmRleCgncmVwb3J0X3JlY2lwaWVudF9vcmdfaWR4Jykub24odGFibGUub3JnSWQpLndoZXJlKHNxbGBkZWxldGVkX2F0IElTIE5VTExgKSxcbiAgcHVyZ2VJZHg6IGluZGV4KCdyZXBvcnRfcmVjaXBpZW50X3B1cmdlX2lkeCcpLm9uKHRhYmxlLnB1cmdlQWZ0ZXIpLndoZXJlKHNxbGBkZWxldGVkX2F0IElTIE5PVCBOVUxMYCksXG4gIC8vIFRoZSB1bnN1YnNjcmliZSBsaW5rJ3Mgb25seSBsb29rdXAuIFVuaXF1ZSBzbyBvbmUgdG9rZW4gY2FuIG5ldmVyIHJlc29sdmUgdG8gdHdvXG4gIC8vIGFkZHJlc3Nlcy5cbiAgdW5zdWJUb2tlblVuaXF1ZTogdW5pcXVlSW5kZXgoJ3JlcG9ydF9yZWNpcGllbnRfdW5zdWJfdG9rZW5fdW5pcXVlJykub24odGFibGUudW5zdWJzY3JpYmVUb2tlbilcbiAgICAud2hlcmUoc3FsYHVuc3Vic2NyaWJlX3Rva2VuIElTIE5PVCBOVUxMYCksXG59KSk7XG5cbmV4cG9ydCB0eXBlIFJlcG9ydERlZmluaXRpb24gPSB0eXBlb2YgcmVwb3J0RGVmaW5pdGlvbi4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBSZXBvcnREZWZpbml0aW9uSW5zZXJ0ID0gdHlwZW9mIHJlcG9ydERlZmluaXRpb24uJGluZmVySW5zZXJ0O1xuZXhwb3J0IHR5cGUgUmVwb3J0UnVuID0gdHlwZW9mIHJlcG9ydFJ1bi4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBSZXBvcnRSdW5JbnNlcnQgPSB0eXBlb2YgcmVwb3J0UnVuLiRpbmZlckluc2VydDtcbmV4cG9ydCB0eXBlIFJlcG9ydFNoYXJlTGluayA9IHR5cGVvZiByZXBvcnRTaGFyZUxpbmsuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgUmVwb3J0U2hhcmVMaW5rSW5zZXJ0ID0gdHlwZW9mIHJlcG9ydFNoYXJlTGluay4kaW5mZXJJbnNlcnQ7XG5leHBvcnQgdHlwZSBSZXBvcnRSZWNpcGllbnQgPSB0eXBlb2YgcmVwb3J0UmVjaXBpZW50LiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFJlcG9ydFJlY2lwaWVudEluc2VydCA9IHR5cGVvZiByZXBvcnRSZWNpcGllbnQuJGluZmVySW5zZXJ0O1xuIl19
package/lib/index.d.ts CHANGED
@@ -28,14 +28,14 @@ export { type BaseAccessFilter, AccessControlQueryBuilder, } from './api/access-
28
28
  export * from './api/viewer-context.js';
29
29
  export * from './api/crud-service.js';
30
30
  export { parseSemver, compareSemverParts, compareSemver, isVersionRange, satisfiesVersionSpec, semverOrderBy, } from './api/semver-range.js';
31
- export { normalizeQuery, searchPublicListings, listPublicCategories, getPublicListing, getPublicListedVersion, listPublicReviews, listPublicListingsForSitemap, type DirectoryTrustTier, type DirectorySort, DIRECTORY_SORTS, DIRECTORY_TIERS, type DirectorySearchParams, type ReviewSort, REVIEW_SORTS, type PublicListingRow, } from './api/public-directory.js';
31
+ export { normalizeQuery, searchPublicListings, listPublicCategories, getPublicListing, getPublicListedVersion, listPublicReviews, listPublicListingsForSitemap, type DirectorySort, DIRECTORY_SORTS, type DirectorySearchParams, type ReviewSort, REVIEW_SORTS, type PublicListingRow, } from './api/public-directory.js';
32
32
  export { listEnabledAlertDestinations, type NotificationDestination, } from './api/alert-destinations.js';
33
33
  export { anonymizeReviewsByAuthor } from './api/ecosystem-privacy.js';
34
- export { openSupportCase, findCaseByThread, listQueue, listOrgCases, stampFirstResponse, setCaseStatus, setCaseSeverity, assignCase, assignCases, closeCases, transferCaseToContact, openCasesForContact, SUPPORT_CASE_STATUSES, QUEUE_STATUSES, type SupportCaseStatus, type OpenCaseInput, countActiveSupportContacts, listActiveSupportContacts, isSupportContact, designateSupportContact, revokeSupportContact, countPremiumSupportContacts, isPremiumSupportContact, setSupportContactPremium, countCasesInWindow, rateCase, addCaseNote, listCaseNotes, deleteCaseNote, type SupportCaseNote, listCannedResponses, createCannedResponse, updateCannedResponse, deleteCannedResponse, type CannedResponse, listCasesDueForPage, } from './api/support-cases.js';
34
+ export { openSupportCase, findCaseByThread, listQueue, listOrgCases, stampFirstResponse, setCaseStatus, setCaseSeverity, assignCase, assignCases, closeCases, transferCaseToContact, openCasesForContact, QUEUE_STATUSES, SUPPORT_CASE_PAGE_DEFAULT, SUPPORT_CASE_PAGE_MAX, type SupportCasePage, type SupportCasePageOptions, type OpenCaseInput, countActiveSupportContacts, listActiveSupportContacts, isSupportContact, designateSupportContact, revokeSupportContact, countPremiumSupportContacts, isPremiumSupportContact, setSupportContactPremium, countCasesInWindow, rateCase, addCaseNote, listCaseNotes, deleteCaseNote, type SupportCaseNote, listCannedResponses, createCannedResponse, updateCannedResponse, deleteCannedResponse, type CannedResponse, listCasesDueForPage, } from './api/support-cases.js';
35
35
  export { policyOf, effectiveConsumptionPolicy, applyPolicyUpdate, type ConsumptionPolicy, DEFAULT_CONSUMPTION_POLICY, } from './api/plugin-consumption-policy.js';
36
36
  export { advisoryRangeCovers, advisoryRangeProblem, advisoriesCovering, blockingAdvisories, } from './api/plugin-advisories.js';
37
37
  export { listingBlock, implicitInstallRange, installAdmits, scopeOrgIds, installModeFor, drizzleListingSource, resolveListingReference, listedVersionWarnings, listedPluginRecord, loadOrgInstallContext, orgListingStates, resolvableListings, type ResolutionRefusal, type ResolutionScope, type ListingDataSource, type ListingResolved, type OrgListingState, vulnUpgradeAvailableWarning, type VulnUpgradeAvailableWarning, } from './api/plugin-resolution.js';
38
- export { resolveManagedToolchain, resolveManagedToolchainWith, resolveManagedToolchainHalf, isEligibleRelease, readOrgToolchainOverview, readOrgToolchainOverviewWith, listEligibleReleases, listEligibleReleasesWith, isEligibleReleaseWith, ManagedToolchainError, managedToolchainRefusal, isToolchainReleaseVersion, toolchainOrgChain, loadReleaseHalves, releaseExists, releaseLifecycleProblems, toolchainCandidateProblems, bootstrapToolchainOf, clearToolchainParentCacheForTests, setManagedToolchainDepsForTests, type ManagedToolchainResolution, type ManagedToolchainWarning, type ManagedToolchainCaller, type ManagedToolchainDeps, type ToolchainResolvedVia, type ToolchainDb, type ReleaseHalves, type ReleaseLifecycleProblem, type OrgToolchainOverview, type EligibleToolchainRelease, } from './api/managed-toolchain.js';
38
+ export { resolveManagedToolchain, resolveManagedToolchainWith, resolveManagedToolchainHalf, isEligibleRelease, readOrgToolchainOverview, readOrgToolchainOverviewWith, listEligibleReleases, listEligibleReleasesWith, isEligibleReleaseWith, ManagedToolchainError, managedToolchainRefusal, isToolchainReleaseVersion, toolchainOrgChain, loadReleaseHalves, releaseExists, releaseLifecycleProblems, toolchainCandidateProblems, bootstrapToolchainOf, setManagedToolchainDepsForTests, type ManagedToolchainResolution, type ManagedToolchainWarning, type ManagedToolchainCaller, type ManagedToolchainDeps, type ToolchainDb, type ReleaseHalves, type ReleaseLifecycleProblem, type OrgToolchainOverview, type EligibleToolchainRelease, } from './api/managed-toolchain.js';
39
39
  export { findVersionReferences, distinctPipelines, versionReferencedPredicate, orgImageDigestsInUse, type VersionReferenceTarget, type VersionReference, } from './api/version-references.js';
40
40
  export { declaredResolution, recordStepLookup, pipelineStepLookups, declaredPipelinesForPlugin, stageAndStep, stepLabelOf, type DeclaredStepInput, type DeclaredStepPlugin, type DeclaredStepResolution, type StepLookupRecord, type DeclaredPipelineRef, } from './api/pipeline-step-resolution.js';
41
41
  export { runSoftDeletePurge, createSoftDeletePurgeScheduler, type PurgeableEntity, } from './api/soft-delete-sweep.js';
@@ -46,7 +46,7 @@ export { classifyFailure, isTeamActionable, FAILURE_CATEGORY_LABELS, } from './a
46
46
  export { getPipelineBreakdown, getFailureAnalysis, getStagePerformance, getResourceConsumption, getPromotionView, getOutdatedPlugins, getPluginVulnerabilities, getAdoption, type AnalyticsScope, type PipelineBreakdownRow, type FailureCategoryRow, type StagePerformanceRow, type ResourceRow, type PromotionRow, type OutdatedPluginRow, type VulnerabilityRow, type AdoptionSummary, } from './api/reporting/analytics-queries.js';
47
47
  export { evaluateNeedsAttention, thresholdsFrom, DEFAULT_THRESHOLDS, type NeedsAttentionThresholds, type AttentionFinding, type AttentionItem, type AttentionInput, type AttentionRuleId, } from './api/reporting/needs-attention.js';
48
48
  export { replacePipelineResolution, refreshLatestForPlugin, upsertExposures, closeFixedExposures, closePipelineExposures, closeVersionExposures, reconcilePipelineExposures, syncVersionExposures, pipelinesOnVersion, exposureFromScan, liveExposurePredicate, openExposures, triageExposure, lapsedAcceptances, pipelineExposures, exposureById, activeAcceptances, acceptanceKey, reopenLapsedAcceptances, versionGap, type PipelineExposure, type TriageDecision, type PipelineAcceptances, type LapsedAcceptance, type ResolvedStep, type ExposureInput, type ExposureStep, type ExposureCounts, type LiveVersion, type PipelineOnVersion, type PluginVersionRef, type ScanState, type VersionGap, } from './api/reporting/plugin-exposure.js';
49
- export { BUILD_IMAGE_PLUGIN, canaryPerOrgCap, DEFAULT_CANARY_GATE, deployedToolchainOf, evaluateCanaryGate, readAffectedPipelines, readCanaryGate, readPlatformDefaultRelease, SELF_MUTATION_ACTION, SELF_MUTATION_STAGE, SYNTH_STEP_KEY, toolchainActionOf, toolchainOutcomeOf, type AffectedOrg, type AffectedPipelines, type CanaryGateInput, type CanaryGateParams, type CanaryGateResult, type CanaryGateShortfall, type DeployedToolchain, type OrgRuns, type ToolchainAction, type ToolchainManifestRow, type ToolchainOutcome, } from './api/reporting/toolchain-runs.js';
49
+ export { canaryPerOrgCap, DEFAULT_CANARY_GATE, deployedToolchainOf, evaluateCanaryGate, readAffectedPipelines, readCanaryGate, readPlatformDefaultRelease, SELF_MUTATION_ACTION, SELF_MUTATION_STAGE, SYNTH_STEP_KEY, toolchainActionOf, toolchainOutcomeOf, type AffectedOrg, type AffectedPipelines, type CanaryGateInput, type CanaryGateParams, type CanaryGateResult, type CanaryGateShortfall, type DeployedToolchain, type OrgRuns, type ToolchainAction, type ToolchainManifestRow, type ToolchainOutcome, } from './api/reporting/toolchain-runs.js';
50
50
  export { resolvePeriod, resolvePeriodByLabel, rejectUnreportablePeriod, nextPeriodBoundary, completePeriodsSince, registerSection, getSection, allSections, sectionIds, REPORT_TEMPLATE_SPECS, getTemplate, composeSnapshot, LOW_SAMPLE_THRESHOLD, REPORT_FEATURE_SUBSTITUTES, renderReportHtml, reportFileName, trendSentence, type ReportHtmlInput, type ResolvedPeriod, type PeriodRejection, type SectionSpec, type SectionContext, type SectionDataSource, type TemplateSpec, type ReportSnapshot, type ComposedSection, type DataQualityNote, type ComposeOptions, type TrendDirection, StakeholderReportStore, stakeholderReportStore, hashToken, mintToken, DEFAULT_SHARE_LINK_TTL_DAYS, MAX_SHARE_LINK_TTL_DAYS, MAX_BOUNCES, VERIFICATION_TTL_MS, type CreateDefinitionInput, type UpdateDefinitionInput, type MintedShareLink, type ResolvedShareLink, } from './api/reporting/stakeholder/index.js';
51
51
  export { type PluginRuntimeFilter, type PluginRuntimeStats, ReportingService, reportingService, } from './api/reporting-service.js';
52
52
  export { type PluginFilter, type PipelineFilter, type PipelineTemplateFilter, type MessageFilter, type CompliancePolicyFilter, type ComplianceRuleFilter, type ComplianceExemptionFilter, type ComplianceAuditFilter, type ComplianceScanFilter, } from './core/query-filters.js';
package/lib/index.js CHANGED
@@ -32,10 +32,10 @@ export { AccessControlQueryBuilder, } from './api/access-control-builder.js';
32
32
  export * from './api/viewer-context.js';
33
33
  export * from './api/crud-service.js';
34
34
  export { parseSemver, compareSemverParts, compareSemver, isVersionRange, satisfiesVersionSpec, semverOrderBy, } from './api/semver-range.js';
35
- export { normalizeQuery, searchPublicListings, listPublicCategories, getPublicListing, getPublicListedVersion, listPublicReviews, listPublicListingsForSitemap, DIRECTORY_SORTS, DIRECTORY_TIERS, REVIEW_SORTS, } from './api/public-directory.js';
35
+ export { normalizeQuery, searchPublicListings, listPublicCategories, getPublicListing, getPublicListedVersion, listPublicReviews, listPublicListingsForSitemap, DIRECTORY_SORTS, REVIEW_SORTS, } from './api/public-directory.js';
36
36
  export { listEnabledAlertDestinations, } from './api/alert-destinations.js';
37
37
  export { anonymizeReviewsByAuthor } from './api/ecosystem-privacy.js';
38
- export { openSupportCase, findCaseByThread, listQueue, listOrgCases, stampFirstResponse, setCaseStatus, setCaseSeverity, assignCase, assignCases, closeCases, transferCaseToContact, openCasesForContact, SUPPORT_CASE_STATUSES, QUEUE_STATUSES, countActiveSupportContacts, listActiveSupportContacts, isSupportContact, designateSupportContact, revokeSupportContact,
38
+ export { openSupportCase, findCaseByThread, listQueue, listOrgCases, stampFirstResponse, setCaseStatus, setCaseSeverity, assignCase, assignCases, closeCases, transferCaseToContact, openCasesForContact, QUEUE_STATUSES, SUPPORT_CASE_PAGE_DEFAULT, SUPPORT_CASE_PAGE_MAX, countActiveSupportContacts, listActiveSupportContacts, isSupportContact, designateSupportContact, revokeSupportContact,
39
39
  // The premium UPGRADE subset. Separate from the baseline contact functions
40
40
  // because the two answer to separate caps: an account holds N contacts and
41
41
  // upgrades M of them.
@@ -43,7 +43,7 @@ countPremiumSupportContacts, isPremiumSupportContact, setSupportContactPremium,
43
43
  export { policyOf, effectiveConsumptionPolicy, applyPolicyUpdate, DEFAULT_CONSUMPTION_POLICY, } from './api/plugin-consumption-policy.js';
44
44
  export { advisoryRangeCovers, advisoryRangeProblem, advisoriesCovering, blockingAdvisories, } from './api/plugin-advisories.js';
45
45
  export { listingBlock, implicitInstallRange, installAdmits, scopeOrgIds, installModeFor, drizzleListingSource, resolveListingReference, listedVersionWarnings, listedPluginRecord, loadOrgInstallContext, orgListingStates, resolvableListings, vulnUpgradeAvailableWarning, } from './api/plugin-resolution.js';
46
- export { resolveManagedToolchain, resolveManagedToolchainWith, resolveManagedToolchainHalf, isEligibleRelease, readOrgToolchainOverview, readOrgToolchainOverviewWith, listEligibleReleases, listEligibleReleasesWith, isEligibleReleaseWith, ManagedToolchainError, managedToolchainRefusal, isToolchainReleaseVersion, toolchainOrgChain, loadReleaseHalves, releaseExists, releaseLifecycleProblems, toolchainCandidateProblems, bootstrapToolchainOf, clearToolchainParentCacheForTests, setManagedToolchainDepsForTests, } from './api/managed-toolchain.js';
46
+ export { resolveManagedToolchain, resolveManagedToolchainWith, resolveManagedToolchainHalf, isEligibleRelease, readOrgToolchainOverview, readOrgToolchainOverviewWith, listEligibleReleases, listEligibleReleasesWith, isEligibleReleaseWith, ManagedToolchainError, managedToolchainRefusal, isToolchainReleaseVersion, toolchainOrgChain, loadReleaseHalves, releaseExists, releaseLifecycleProblems, toolchainCandidateProblems, bootstrapToolchainOf, setManagedToolchainDepsForTests, } from './api/managed-toolchain.js';
47
47
  export { findVersionReferences, distinctPipelines, versionReferencedPredicate, orgImageDigestsInUse, } from './api/version-references.js';
48
48
  export { declaredResolution, recordStepLookup, pipelineStepLookups, declaredPipelinesForPlugin, stageAndStep, stepLabelOf, } from './api/pipeline-step-resolution.js';
49
49
  // `isSoftDeletePurgeEnabled` is the module's own env gate — `runSoftDeletePurge`
@@ -61,11 +61,11 @@ export { evaluateNeedsAttention, thresholdsFrom, DEFAULT_THRESHOLDS, } from './a
61
61
  export { replacePipelineResolution, refreshLatestForPlugin, upsertExposures, closeFixedExposures, closePipelineExposures, closeVersionExposures, reconcilePipelineExposures, syncVersionExposures, pipelinesOnVersion, exposureFromScan, liveExposurePredicate, openExposures, triageExposure, lapsedAcceptances, pipelineExposures, exposureById, activeAcceptances, acceptanceKey, reopenLapsedAcceptances, versionGap, } from './api/reporting/plugin-exposure.js';
62
62
  // Toolchain run data (docs/plans/bootstrap-image-versioning.md §6, §7, §9): the
63
63
  // release stamp on synth / self-mutation rows, the canary gate and the Affected view.
64
- export { BUILD_IMAGE_PLUGIN, canaryPerOrgCap, DEFAULT_CANARY_GATE, deployedToolchainOf, evaluateCanaryGate, readAffectedPipelines, readCanaryGate, readPlatformDefaultRelease, SELF_MUTATION_ACTION, SELF_MUTATION_STAGE, SYNTH_STEP_KEY, toolchainActionOf, toolchainOutcomeOf, } from './api/reporting/toolchain-runs.js';
64
+ export { canaryPerOrgCap, DEFAULT_CANARY_GATE, deployedToolchainOf, evaluateCanaryGate, readAffectedPipelines, readCanaryGate, readPlatformDefaultRelease, SELF_MUTATION_ACTION, SELF_MUTATION_STAGE, SYNTH_STEP_KEY, toolchainActionOf, toolchainOutcomeOf, } from './api/reporting/toolchain-runs.js';
65
65
  // The stakeholder-report engine: period resolution, section registry, templates
66
66
  // and the composer that freezes a period into a snapshot.
67
67
  export { resolvePeriod, resolvePeriodByLabel, rejectUnreportablePeriod, nextPeriodBoundary, completePeriodsSince, registerSection, getSection, allSections, sectionIds, REPORT_TEMPLATE_SPECS, getTemplate, composeSnapshot, LOW_SAMPLE_THRESHOLD, REPORT_FEATURE_SUBSTITUTES, renderReportHtml, reportFileName, trendSentence, StakeholderReportStore, stakeholderReportStore, hashToken, mintToken, DEFAULT_SHARE_LINK_TTL_DAYS, MAX_SHARE_LINK_TTL_DAYS, MAX_BOUNCES, VERIFICATION_TTL_MS, } from './api/reporting/stakeholder/index.js';
68
68
  export { ReportingService, reportingService, } from './api/reporting-service.js';
69
69
  // Filters
70
70
  export {} from './core/query-filters.js';
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUVILFdBQVc7QUFDWCxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLDhCQUE4QjtBQUM5QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLE9BQU8sRUFFTCx5QkFBeUIsR0FDMUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsT0FBTyxFQUNMLFdBQVcsRUFDWCxrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsYUFBYSxHQUNkLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUNMLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLDRCQUE0QixFQUc1QixlQUFlLEVBQ2YsZUFBZSxFQUdmLFlBQVksR0FFYixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDTCw0QkFBNEIsR0FFN0IsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsZUFBZSxFQUNmLFVBQVUsRUFDVixXQUFXLEVBQ1gsVUFBVSxFQUNWLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLGNBQWMsRUFHZCwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsb0JBQW9CO0FBQ3BCLDJFQUEyRTtBQUMzRSwyRUFBMkU7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Q2IsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsdUJBQXVCLEVBQ3ZCLFVBQVUsR0FjWCxNQUFNLG9DQUFvQyxDQUFDO0FBRTVDLGdGQUFnRjtBQUNoRixzRkFBc0Y7QUFDdEYsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCwwQkFBMEIsRUFDMUIsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGtCQUFrQixHQVluQixNQUFNLG1DQUFtQyxDQUFDO0FBRTNDLGdGQUFnRjtBQUNoRiwwREFBMEQ7QUFDMUQsT0FBTyxFQUNMLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsd0JBQXdCLEVBQ3hCLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLFVBQVUsRUFDVixXQUFXLEVBQ1gsVUFBVSxFQUNWLHFCQUFxQixFQUNyQixXQUFXLEVBQ1gsZUFBZSxFQUNmLG9CQUFvQixFQUNwQiwwQkFBMEIsRUFDMUIsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxhQUFhLEVBYWIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixTQUFTLEVBQ1QsU0FBUyxFQUNULDJCQUEyQixFQUMzQix1QkFBdUIsRUFDdkIsV0FBVyxFQUNYLG1CQUFtQixHQUtwQixNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sRUFHTCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEdBQ2pCLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsVUFBVTtBQUNWLE9BQU8sRUFVTixNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogQG1vZHVsZSBAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1kYXRhXG4gKlxuICogRGF0YWJhc2UgbGF5ZXI6IERyaXp6bGUgT1JNIHNjaGVtYXMsIGNvbm5lY3Rpb24gbWFuYWdlbWVudCwgYW5kIHF1ZXJ5IGluZnJhc3RydWN0dXJlLlxuICpcbiAqICoqRGF0YWJhc2UqKlxuICogLSBkYiDigJQgc2hhcmVkIERyaXp6bGUgZGF0YWJhc2UgaW5zdGFuY2VcbiAqIC0gZ2V0Q29ubmVjdGlvbiwgY2xvc2VDb25uZWN0aW9uIOKAlCBQb3N0Z3JlU1FMIGNvbm5lY3Rpb24gbGlmZWN5Y2xlIHdpdGggcmV0cnkgbG9naWNcbiAqIC0gc2NoZW1hIOKAlCBEcml6emxlIHRhYmxlIGRlZmluaXRpb25zIChwbHVnaW5zLCBwaXBlbGluZXMsIG1lc3NhZ2VzLCBjb21wbGlhbmNlLCBldGMuKVxuICpcbiAqICoqU2VydmljZXMqKlxuICogLSBDcnVkU2VydmljZSDigJQgZ2VuZXJpYyBiYXNlIGNsYXNzIGZvciBtdWx0aS10ZW5hbnQgQ1JVRCB3aXRoIGFjY2VzcyBjb250cm9sIGFuZCBwYWdpbmF0aW9uXG4gKiAtIFJlcG9ydGluZ1NlcnZpY2Ug4oCUIGFnZ3JlZ2F0ZSBxdWVyeSBhbmQgcmVwb3J0aW5nIGJhc2UgY2xhc3NcbiAqXG4gKiAqKlF1ZXJ5IEJ1aWxkZXJzKipcbiAqIC0gYnVpbGRQbHVnaW5Db25kaXRpb25zLCBidWlsZFBpcGVsaW5lQ29uZGl0aW9ucywgYnVpbGRNZXNzYWdlQ29uZGl0aW9ucyDigJQgZmlsdGVyLXRvLVNRTCBjb25kaXRpb24gYnVpbGRlcnNcbiAqIC0gYnVpbGRDb21wbGlhbmNlUG9saWN5Q29uZGl0aW9ucywgYnVpbGRDb21wbGlhbmNlUnVsZUNvbmRpdGlvbnMsIGV0Yy4g4oCUIGNvbXBsaWFuY2UgcXVlcnkgYnVpbGRlcnNcbiAqIC0gQWNjZXNzQ29udHJvbEJ1aWxkZXIg4oCUIHJvdy1sZXZlbCBhY2Nlc3MgY29udHJvbCBjb25kaXRpb24gYnVpbGRlclxuICpcbiAqICoqRmlsdGVycyoqXG4gKiAtIFBsdWdpbkZpbHRlciwgUGlwZWxpbmVGaWx0ZXIsIE1lc3NhZ2VGaWx0ZXIg4oCUIHR5cGVkIGZpbHRlciBpbnRlcmZhY2VzXG4gKiAtIENvbXBsaWFuY2VQb2xpY3lGaWx0ZXIsIENvbXBsaWFuY2VSdWxlRmlsdGVyLCBldGMuIOKAlCBjb21wbGlhbmNlIGZpbHRlciBpbnRlcmZhY2VzXG4gKiAtIGRyaXp6bGVSb3dzLCBkcml6emxlQ291bnQg4oCUIERyaXp6bGUgcmVzdWx0IHR5cGUgaGVscGVyc1xuICovXG5cbi8vIERhdGFiYXNlXG5leHBvcnQgKiBmcm9tICcuL2RhdGFiYXNlL2luZGV4LmpzJztcblxuLy8gUXVlcnkgYnVpbGRlcnMgYW5kIHNlcnZpY2VzXG5leHBvcnQgKiBmcm9tICcuL2FwaS9xdWVyeS1idWlsZGVycy5qcyc7XG5leHBvcnQge1xuICB0eXBlIEJhc2VBY2Nlc3NGaWx0ZXIsXG4gIEFjY2Vzc0NvbnRyb2xRdWVyeUJ1aWxkZXIsXG59IGZyb20gJy4vYXBpL2FjY2Vzcy1jb250cm9sLWJ1aWxkZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvdmlld2VyLWNvbnRleHQuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvY3J1ZC1zZXJ2aWNlLmpzJztcbmV4cG9ydCB7XG4gIHBhcnNlU2VtdmVyLFxuICBjb21wYXJlU2VtdmVyUGFydHMsXG4gIGNvbXBhcmVTZW12ZXIsXG4gIGlzVmVyc2lvblJhbmdlLFxuICBzYXRpc2ZpZXNWZXJzaW9uU3BlYyxcbiAgc2VtdmVyT3JkZXJCeSxcbn0gZnJvbSAnLi9hcGkvc2VtdmVyLXJhbmdlLmpzJztcbmV4cG9ydCB7XG4gIG5vcm1hbGl6ZVF1ZXJ5LFxuICBzZWFyY2hQdWJsaWNMaXN0aW5ncyxcbiAgbGlzdFB1YmxpY0NhdGVnb3JpZXMsXG4gIGdldFB1YmxpY0xpc3RpbmcsXG4gIGdldFB1YmxpY0xpc3RlZFZlcnNpb24sXG4gIGxpc3RQdWJsaWNSZXZpZXdzLFxuICBsaXN0UHVibGljTGlzdGluZ3NGb3JTaXRlbWFwLFxuICB0eXBlIERpcmVjdG9yeVRydXN0VGllcixcbiAgdHlwZSBEaXJlY3RvcnlTb3J0LFxuICBESVJFQ1RPUllfU09SVFMsXG4gIERJUkVDVE9SWV9USUVSUyxcbiAgdHlwZSBEaXJlY3RvcnlTZWFyY2hQYXJhbXMsXG4gIHR5cGUgUmV2aWV3U29ydCxcbiAgUkVWSUVXX1NPUlRTLFxuICB0eXBlIFB1YmxpY0xpc3RpbmdSb3csXG59IGZyb20gJy4vYXBpL3B1YmxpYy1kaXJlY3RvcnkuanMnO1xuZXhwb3J0IHtcbiAgbGlzdEVuYWJsZWRBbGVydERlc3RpbmF0aW9ucyxcbiAgdHlwZSBOb3RpZmljYXRpb25EZXN0aW5hdGlvbixcbn0gZnJvbSAnLi9hcGkvYWxlcnQtZGVzdGluYXRpb25zLmpzJztcbmV4cG9ydCB7IGFub255bWl6ZVJldmlld3NCeUF1dGhvciB9IGZyb20gJy4vYXBpL2Vjb3N5c3RlbS1wcml2YWN5LmpzJztcbmV4cG9ydCB7XG4gIG9wZW5TdXBwb3J0Q2FzZSxcbiAgZmluZENhc2VCeVRocmVhZCxcbiAgbGlzdFF1ZXVlLFxuICBsaXN0T3JnQ2FzZXMsXG4gIHN0YW1wRmlyc3RSZXNwb25zZSxcbiAgc2V0Q2FzZVN0YXR1cyxcbiAgc2V0Q2FzZVNldmVyaXR5LFxuICBhc3NpZ25DYXNlLFxuICBhc3NpZ25DYXNlcyxcbiAgY2xvc2VDYXNlcyxcbiAgdHJhbnNmZXJDYXNlVG9Db250YWN0LFxuICBvcGVuQ2FzZXNGb3JDb250YWN0LFxuICBTVVBQT1JUX0NBU0VfU1RBVFVTRVMsXG4gIFFVRVVFX1NUQVRVU0VTLFxuICB0eXBlIFN1cHBvcnRDYXNlU3RhdHVzLFxuICB0eXBlIE9wZW5DYXNlSW5wdXQsXG4gIGNvdW50QWN0aXZlU3VwcG9ydENvbnRhY3RzLFxuICBsaXN0QWN0aXZlU3VwcG9ydENvbnRhY3RzLFxuICBpc1N1cHBvcnRDb250YWN0LFxuICBkZXNpZ25hdGVTdXBwb3J0Q29udGFjdCxcbiAgcmV2b2tlU3VwcG9ydENvbnRhY3QsXG4gIC8vIFRoZSBwcmVtaXVtIFVQR1JBREUgc3Vic2V0LiBTZXBhcmF0ZSBmcm9tIHRoZSBiYXNlbGluZSBjb250YWN0IGZ1bmN0aW9uc1xuICAvLyBiZWNhdXNlIHRoZSB0d28gYW5zd2VyIHRvIHNlcGFyYXRlIGNhcHM6IGFuIGFjY291bnQgaG9sZHMgTiBjb250YWN0cyBhbmRcbiAgLy8gdXBncmFkZXMgTSBvZiB0aGVtLlxuICBjb3VudFByZW1pdW1TdXBwb3J0Q29udGFjdHMsXG4gIGlzUHJlbWl1bVN1cHBvcnRDb250YWN0LFxuICBzZXRTdXBwb3J0Q29udGFjdFByZW1pdW0sXG4gIGNvdW50Q2FzZXNJbldpbmRvdyxcbiAgcmF0ZUNhc2UsXG4gIGFkZENhc2VOb3RlLFxuICBsaXN0Q2FzZU5vdGVzLFxuICBkZWxldGVDYXNlTm90ZSxcbiAgdHlwZSBTdXBwb3J0Q2FzZU5vdGUsXG4gIGxpc3RDYW5uZWRSZXNwb25zZXMsXG4gIGNyZWF0ZUNhbm5lZFJlc3BvbnNlLFxuICB1cGRhdGVDYW5uZWRSZXNwb25zZSxcbiAgZGVsZXRlQ2FubmVkUmVzcG9uc2UsXG4gIHR5cGUgQ2FubmVkUmVzcG9uc2UsXG4gIGxpc3RDYXNlc0R1ZUZvclBhZ2UsXG59IGZyb20gJy4vYXBpL3N1cHBvcnQtY2FzZXMuanMnO1xuZXhwb3J0IHtcbiAgcG9saWN5T2YsXG4gIGVmZmVjdGl2ZUNvbnN1bXB0aW9uUG9saWN5LFxuICBhcHBseVBvbGljeVVwZGF0ZSxcbiAgdHlwZSBDb25zdW1wdGlvblBvbGljeSxcbiAgREVGQVVMVF9DT05TVU1QVElPTl9QT0xJQ1ksXG59IGZyb20gJy4vYXBpL3BsdWdpbi1jb25zdW1wdGlvbi1wb2xpY3kuanMnO1xuZXhwb3J0IHtcbiAgYWR2aXNvcnlSYW5nZUNvdmVycyxcbiAgYWR2aXNvcnlSYW5nZVByb2JsZW0sXG4gIGFkdmlzb3JpZXNDb3ZlcmluZyxcbiAgYmxvY2tpbmdBZHZpc29yaWVzLFxufSBmcm9tICcuL2FwaS9wbHVnaW4tYWR2aXNvcmllcy5qcyc7XG5leHBvcnQge1xuICBsaXN0aW5nQmxvY2ssXG4gIGltcGxpY2l0SW5zdGFsbFJhbmdlLFxuICBpbnN0YWxsQWRtaXRzLFxuICBzY29wZU9yZ0lkcyxcbiAgaW5zdGFsbE1vZGVGb3IsXG4gIGRyaXp6bGVMaXN0aW5nU291cmNlLFxuICByZXNvbHZlTGlzdGluZ1JlZmVyZW5jZSxcbiAgbGlzdGVkVmVyc2lvbldhcm5pbmdzLFxuICBsaXN0ZWRQbHVnaW5SZWNvcmQsXG4gIGxvYWRPcmdJbnN0YWxsQ29udGV4dCxcbiAgb3JnTGlzdGluZ1N0YXRlcyxcbiAgcmVzb2x2YWJsZUxpc3RpbmdzLFxuICB0eXBlIFJlc29sdXRpb25SZWZ1c2FsLFxuICB0eXBlIFJlc29sdXRpb25TY29wZSxcbiAgdHlwZSBMaXN0aW5nRGF0YVNvdXJjZSxcbiAgdHlwZSBMaXN0aW5nUmVzb2x2ZWQsXG4gIHR5cGUgT3JnTGlzdGluZ1N0YXRlLFxuICB2dWxuVXBncmFkZUF2YWlsYWJsZVdhcm5pbmcsXG4gIHR5cGUgVnVsblVwZ3JhZGVBdmFpbGFibGVXYXJuaW5nLFxufSBmcm9tICcuL2FwaS9wbHVnaW4tcmVzb2x1dGlvbi5qcyc7XG5leHBvcnQge1xuICByZXNvbHZlTWFuYWdlZFRvb2xjaGFpbixcbiAgcmVzb2x2ZU1hbmFnZWRUb29sY2hhaW5XaXRoLFxuICByZXNvbHZlTWFuYWdlZFRvb2xjaGFpbkhhbGYsXG4gIGlzRWxpZ2libGVSZWxlYXNlLFxuICByZWFkT3JnVG9vbGNoYWluT3ZlcnZpZXcsXG4gIHJlYWRPcmdUb29sY2hhaW5PdmVydmlld1dpdGgsXG4gIGxpc3RFbGlnaWJsZVJlbGVhc2VzLFxuICBsaXN0RWxpZ2libGVSZWxlYXNlc1dpdGgsXG4gIGlzRWxpZ2libGVSZWxlYXNlV2l0aCxcbiAgTWFuYWdlZFRvb2xjaGFpbkVycm9yLFxuICBtYW5hZ2VkVG9vbGNoYWluUmVmdXNhbCxcbiAgaXNUb29sY2hhaW5SZWxlYXNlVmVyc2lvbixcbiAgdG9vbGNoYWluT3JnQ2hhaW4sXG4gIGxvYWRSZWxlYXNlSGFsdmVzLFxuICByZWxlYXNlRXhpc3RzLFxuICByZWxlYXNlTGlmZWN5Y2xlUHJvYmxlbXMsXG4gIHRvb2xjaGFpbkNhbmRpZGF0ZVByb2JsZW1zLFxuICBib290c3RyYXBUb29sY2hhaW5PZixcbiAgY2xlYXJUb29sY2hhaW5QYXJlbnRDYWNoZUZvclRlc3RzLFxuICBzZXRNYW5hZ2VkVG9vbGNoYWluRGVwc0ZvclRlc3RzLFxuICB0eXBlIE1hbmFnZWRUb29sY2hhaW5SZXNvbHV0aW9uLFxuICB0eXBlIE1hbmFnZWRUb29sY2hhaW5XYXJuaW5nLFxuICB0eXBlIE1hbmFnZWRUb29sY2hhaW5DYWxsZXIsXG4gIHR5cGUgTWFuYWdlZFRvb2xjaGFpbkRlcHMsXG4gIHR5cGUgVG9vbGNoYWluUmVzb2x2ZWRWaWEsXG4gIHR5cGUgVG9vbGNoYWluRGIsXG4gIHR5cGUgUmVsZWFzZUhhbHZlcyxcbiAgdHlwZSBSZWxlYXNlTGlmZWN5Y2xlUHJvYmxlbSxcbiAgdHlwZSBPcmdUb29sY2hhaW5PdmVydmlldyxcbiAgdHlwZSBFbGlnaWJsZVRvb2xjaGFpblJlbGVhc2UsXG59IGZyb20gJy4vYXBpL21hbmFnZWQtdG9vbGNoYWluLmpzJztcbmV4cG9ydCB7XG4gIGZpbmRWZXJzaW9uUmVmZXJlbmNlcyxcbiAgZGlzdGluY3RQaXBlbGluZXMsXG4gIHZlcnNpb25SZWZlcmVuY2VkUHJlZGljYXRlLFxuICBvcmdJbWFnZURpZ2VzdHNJblVzZSxcbiAgdHlwZSBWZXJzaW9uUmVmZXJlbmNlVGFyZ2V0LFxuICB0eXBlIFZlcnNpb25SZWZlcmVuY2UsXG59IGZyb20gJy4vYXBpL3ZlcnNpb24tcmVmZXJlbmNlcy5qcyc7XG5leHBvcnQge1xuICBkZWNsYXJlZFJlc29sdXRpb24sXG4gIHJlY29yZFN0ZXBMb29rdXAsXG4gIHBpcGVsaW5lU3RlcExvb2t1cHMsXG4gIGRlY2xhcmVkUGlwZWxpbmVzRm9yUGx1Z2luLFxuICBzdGFnZUFuZFN0ZXAsXG4gIHN0ZXBMYWJlbE9mLFxuICB0eXBlIERlY2xhcmVkU3RlcElucHV0LFxuICB0eXBlIERlY2xhcmVkU3RlcFBsdWdpbixcbiAgdHlwZSBEZWNsYXJlZFN0ZXBSZXNvbHV0aW9uLFxuICB0eXBlIFN0ZXBMb29rdXBSZWNvcmQsXG4gIHR5cGUgRGVjbGFyZWRQaXBlbGluZVJlZixcbn0gZnJvbSAnLi9hcGkvcGlwZWxpbmUtc3RlcC1yZXNvbHV0aW9uLmpzJztcbi8vIGBpc1NvZnREZWxldGVQdXJnZUVuYWJsZWRgIGlzIHRoZSBtb2R1bGUncyBvd24gZW52IGdhdGUg4oCUIGBydW5Tb2Z0RGVsZXRlUHVyZ2VgXG4vLyBhbmQgdGhlIHNjaGVkdWxlciBhbHJlYWR5IGFwcGx5IGl0LCBzbyBjYWxsZXJzIG5ldmVyIGFzayBzZXBhcmF0ZWx5LlxuZXhwb3J0IHtcbiAgcnVuU29mdERlbGV0ZVB1cmdlLFxuICBjcmVhdGVTb2Z0RGVsZXRlUHVyZ2VTY2hlZHVsZXIsXG4gIHR5cGUgUHVyZ2VhYmxlRW50aXR5LFxufSBmcm9tICcuL2FwaS9zb2Z0LWRlbGV0ZS1zd2VlcC5qcyc7XG5leHBvcnQge1xuICB0eXBlIEJ1aWxkSGVhbHRoLFxuICB0eXBlIERvcmFMZXZlbCxcbiAgdHlwZSBEb3JhTWV0cmljcyxcbiAgdHlwZSBEb3JhT3B0aW9ucyxcbiAgdHlwZSBEb3JhVHJlbmRQb2ludCxcbiAgdHlwZSBEZXBsb3ltZW50T3V0Y29tZVdyaXRlLFxuICB0eXBlIEluY2lkZW50TGlzdEl0ZW0sXG4gIHR5cGUgSW5jaWRlbnRTdGF0ZSxcbiAgdHlwZSBJbmNpZGVudFdyaXRlLFxuICB0eXBlIFJlcG9ydGluZ1NldHRpbmdzLFxuICB0eXBlIEluY2lkZW50VGVzdFJlc3VsdCxcbiAgdHlwZSBJbmdlc3RDYWxsZXIsXG4gIHR5cGUgSW5nZXN0TWV0cmljLFxuICB0eXBlIExhc3REZXBsb3llZENvbW1pdCxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nLXNlcnZpY2UuanMnO1xuXG4vLyBUaGUgcmVwb3J0aW5nIEFOQUxZVElDUyBsYXllcjogdGhlIHBlci1kZXBsb3kgcm9sbHVwIHdyaXR0ZW4gYXQgaW5nZXN0LCB0aGVcbi8vIGRhaWx5IHJvbGx1cCBldmVyeSBzZWN0aW9uIHJlYWRzLCBhbmQgdGhlIGZhaWx1cmUgY2xhc3NpZmllciB0aGF0IGxhYmVscyB3aGF0XG4vLyBicm9rZSAoc2VlIHRoZSBtb2R1bGVzJyBvd24gaGVhZGVycyBmb3Igd2h5IGVhY2ggaXMgd3JpdHRlbiByYXRoZXIgdGhhbiBkZXJpdmVkKS5cbmV4cG9ydCB7XG4gIHVwc2VydERlcGxveW1lbnRzLFxuICBhcHBseURlcGxveU91dGNvbWUsXG4gIGNvcnJlbGF0ZUluY2lkZW50LFxuICBpc0RlcGxveUV2ZW50LFxuICBsZWFkVGltZUdhcE9mLFxuICB0eXBlIERlcGxveUNhbmRpZGF0ZSxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nL2RlcGxveS1yb2xsdXAuanMnO1xuZXhwb3J0IHtcbiAgcmVidWlsZERheSxcbiAgcnVuUm9sbHVwUGFzcyxcbiAgcm9sbHVwU2V0dGxlSG91cnMsXG4gIHJvbGx1cEJhdGNoRGF5cyxcbiAgdXRjRGF5U3RhcnQsXG59IGZyb20gJy4vYXBpL3JlcG9ydGluZy9kYWlseS1yb2xsdXAuanMnO1xuZXhwb3J0IHtcbiAgY2xhc3NpZnlGYWlsdXJlLFxuICBpc1RlYW1BY3Rpb25hYmxlLFxuICBGQUlMVVJFX0NBVEVHT1JZX0xBQkVMUyxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nL2ZhaWx1cmUtY2xhc3NpZmllci5qcyc7XG5leHBvcnQge1xuICBnZXRQaXBlbGluZUJyZWFrZG93bixcbiAgZ2V0RmFpbHVyZUFuYWx5c2lzLFxuICBnZXRTdGFnZVBlcmZvcm1hbmNlLFxuICBnZXRSZXNvdXJjZUNvbnN1bXB0aW9uLFxuICBnZXRQcm9tb3Rpb25WaWV3LFxuICBnZXRPdXRkYXRlZFBsdWdpbnMsXG4gIGdldFBsdWdpblZ1bG5lcmFiaWxpdGllcyxcbiAgZ2V0QWRvcHRpb24sXG4gIHR5cGUgQW5hbHl0aWNzU2NvcGUsXG4gIHR5cGUgUGlwZWxpbmVCcmVha2Rvd25Sb3csXG4gIHR5cGUgRmFpbHVyZUNhdGVnb3J5Um93LFxuICB0eXBlIFN0YWdlUGVyZm9ybWFuY2VSb3csXG4gIHR5cGUgUmVzb3VyY2VSb3csXG4gIHR5cGUgUHJvbW90aW9uUm93LFxuICB0eXBlIE91dGRhdGVkUGx1Z2luUm93LFxuICB0eXBlIFZ1bG5lcmFiaWxpdHlSb3csXG4gIHR5cGUgQWRvcHRpb25TdW1tYXJ5LFxufSBmcm9tICcuL2FwaS9yZXBvcnRpbmcvYW5hbHl0aWNzLXF1ZXJpZXMuanMnO1xuZXhwb3J0IHtcbiAgZXZhbHVhdGVOZWVkc0F0dGVudGlvbixcbiAgdGhyZXNob2xkc0Zyb20sXG4gIERFRkFVTFRfVEhSRVNIT0xEUyxcbiAgdHlwZSBOZWVkc0F0dGVudGlvblRocmVzaG9sZHMsXG4gIHR5cGUgQXR0ZW50aW9uRmluZGluZyxcbiAgdHlwZSBBdHRlbnRpb25JdGVtLFxuICB0eXBlIEF0dGVudGlvbklucHV0LFxuICB0eXBlIEF0dGVudGlvblJ1bGVJZCxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nL25lZWRzLWF0dGVudGlvbi5qcyc7XG5leHBvcnQge1xuICByZXBsYWNlUGlwZWxpbmVSZXNvbHV0aW9uLFxuICByZWZyZXNoTGF0ZXN0Rm9yUGx1Z2luLFxuICB1cHNlcnRFeHBvc3VyZXMsXG4gIGNsb3NlRml4ZWRFeHBvc3VyZXMsXG4gIGNsb3NlUGlwZWxpbmVFeHBvc3VyZXMsXG4gIGNsb3NlVmVyc2lvbkV4cG9zdXJlcyxcbiAgcmVjb25jaWxlUGlwZWxpbmVFeHBvc3VyZXMsXG4gIHN5bmNWZXJzaW9uRXhwb3N1cmVzLFxuICBwaXBlbGluZXNPblZlcnNpb24sXG4gIGV4cG9zdXJlRnJvbVNjYW4sXG4gIGxpdmVFeHBvc3VyZVByZWRpY2F0ZSxcbiAgb3BlbkV4cG9zdXJlcyxcbiAgdHJpYWdlRXhwb3N1cmUsXG4gIGxhcHNlZEFjY2VwdGFuY2VzLFxuICBwaXBlbGluZUV4cG9zdXJlcyxcbiAgZXhwb3N1cmVCeUlkLFxuICBhY3RpdmVBY2NlcHRhbmNlcyxcbiAgYWNjZXB0YW5jZUtleSxcbiAgcmVvcGVuTGFwc2VkQWNjZXB0YW5jZXMsXG4gIHZlcnNpb25HYXAsXG4gIHR5cGUgUGlwZWxpbmVFeHBvc3VyZSxcbiAgdHlwZSBUcmlhZ2VEZWNpc2lvbixcbiAgdHlwZSBQaXBlbGluZUFjY2VwdGFuY2VzLFxuICB0eXBlIExhcHNlZEFjY2VwdGFuY2UsXG4gIHR5cGUgUmVzb2x2ZWRTdGVwLFxuICB0eXBlIEV4cG9zdXJlSW5wdXQsXG4gIHR5cGUgRXhwb3N1cmVTdGVwLFxuICB0eXBlIEV4cG9zdXJlQ291bnRzLFxuICB0eXBlIExpdmVWZXJzaW9uLFxuICB0eXBlIFBpcGVsaW5lT25WZXJzaW9uLFxuICB0eXBlIFBsdWdpblZlcnNpb25SZWYsXG4gIHR5cGUgU2NhblN0YXRlLFxuICB0eXBlIFZlcnNpb25HYXAsXG59IGZyb20gJy4vYXBpL3JlcG9ydGluZy9wbHVnaW4tZXhwb3N1cmUuanMnO1xuXG4vLyBUb29sY2hhaW4gcnVuIGRhdGEgKGRvY3MvcGxhbnMvYm9vdHN0cmFwLWltYWdlLXZlcnNpb25pbmcubWQgwqc2LCDCpzcsIMKnOSk6IHRoZVxuLy8gcmVsZWFzZSBzdGFtcCBvbiBzeW50aCAvIHNlbGYtbXV0YXRpb24gcm93cywgdGhlIGNhbmFyeSBnYXRlIGFuZCB0aGUgQWZmZWN0ZWQgdmlldy5cbmV4cG9ydCB7XG4gIEJVSUxEX0lNQUdFX1BMVUdJTixcbiAgY2FuYXJ5UGVyT3JnQ2FwLFxuICBERUZBVUxUX0NBTkFSWV9HQVRFLFxuICBkZXBsb3llZFRvb2xjaGFpbk9mLFxuICBldmFsdWF0ZUNhbmFyeUdhdGUsXG4gIHJlYWRBZmZlY3RlZFBpcGVsaW5lcyxcbiAgcmVhZENhbmFyeUdhdGUsXG4gIHJlYWRQbGF0Zm9ybURlZmF1bHRSZWxlYXNlLFxuICBTRUxGX01VVEFUSU9OX0FDVElPTixcbiAgU0VMRl9NVVRBVElPTl9TVEFHRSxcbiAgU1lOVEhfU1RFUF9LRVksXG4gIHRvb2xjaGFpbkFjdGlvbk9mLFxuICB0b29sY2hhaW5PdXRjb21lT2YsXG4gIHR5cGUgQWZmZWN0ZWRPcmcsXG4gIHR5cGUgQWZmZWN0ZWRQaXBlbGluZXMsXG4gIHR5cGUgQ2FuYXJ5R2F0ZUlucHV0LFxuICB0eXBlIENhbmFyeUdhdGVQYXJhbXMsXG4gIHR5cGUgQ2FuYXJ5R2F0ZVJlc3VsdCxcbiAgdHlwZSBDYW5hcnlHYXRlU2hvcnRmYWxsLFxuICB0eXBlIERlcGxveWVkVG9vbGNoYWluLFxuICB0eXBlIE9yZ1J1bnMsXG4gIHR5cGUgVG9vbGNoYWluQWN0aW9uLFxuICB0eXBlIFRvb2xjaGFpbk1hbmlmZXN0Um93LFxuICB0eXBlIFRvb2xjaGFpbk91dGNvbWUsXG59IGZyb20gJy4vYXBpL3JlcG9ydGluZy90b29sY2hhaW4tcnVucy5qcyc7XG5cbi8vIFRoZSBzdGFrZWhvbGRlci1yZXBvcnQgZW5naW5lOiBwZXJpb2QgcmVzb2x1dGlvbiwgc2VjdGlvbiByZWdpc3RyeSwgdGVtcGxhdGVzXG4vLyBhbmQgdGhlIGNvbXBvc2VyIHRoYXQgZnJlZXplcyBhIHBlcmlvZCBpbnRvIGEgc25hcHNob3QuXG5leHBvcnQge1xuICByZXNvbHZlUGVyaW9kLFxuICByZXNvbHZlUGVyaW9kQnlMYWJlbCxcbiAgcmVqZWN0VW5yZXBvcnRhYmxlUGVyaW9kLFxuICBuZXh0UGVyaW9kQm91bmRhcnksXG4gIGNvbXBsZXRlUGVyaW9kc1NpbmNlLFxuICByZWdpc3RlclNlY3Rpb24sXG4gIGdldFNlY3Rpb24sXG4gIGFsbFNlY3Rpb25zLFxuICBzZWN0aW9uSWRzLFxuICBSRVBPUlRfVEVNUExBVEVfU1BFQ1MsXG4gIGdldFRlbXBsYXRlLFxuICBjb21wb3NlU25hcHNob3QsXG4gIExPV19TQU1QTEVfVEhSRVNIT0xELFxuICBSRVBPUlRfRkVBVFVSRV9TVUJTVElUVVRFUyxcbiAgcmVuZGVyUmVwb3J0SHRtbCxcbiAgcmVwb3J0RmlsZU5hbWUsXG4gIHRyZW5kU2VudGVuY2UsXG4gIHR5cGUgUmVwb3J0SHRtbElucHV0LFxuICB0eXBlIFJlc29sdmVkUGVyaW9kLFxuICB0eXBlIFBlcmlvZFJlamVjdGlvbixcbiAgdHlwZSBTZWN0aW9uU3BlYyxcbiAgdHlwZSBTZWN0aW9uQ29udGV4dCxcbiAgdHlwZSBTZWN0aW9uRGF0YVNvdXJjZSxcbiAgdHlwZSBUZW1wbGF0ZVNwZWMsXG4gIHR5cGUgUmVwb3J0U25hcHNob3QsXG4gIHR5cGUgQ29tcG9zZWRTZWN0aW9uLFxuICB0eXBlIERhdGFRdWFsaXR5Tm90ZSxcbiAgdHlwZSBDb21wb3NlT3B0aW9ucyxcbiAgdHlwZSBUcmVuZERpcmVjdGlvbixcbiAgU3Rha2Vob2xkZXJSZXBvcnRTdG9yZSxcbiAgc3Rha2Vob2xkZXJSZXBvcnRTdG9yZSxcbiAgaGFzaFRva2VuLFxuICBtaW50VG9rZW4sXG4gIERFRkFVTFRfU0hBUkVfTElOS19UVExfREFZUyxcbiAgTUFYX1NIQVJFX0xJTktfVFRMX0RBWVMsXG4gIE1BWF9CT1VOQ0VTLFxuICBWRVJJRklDQVRJT05fVFRMX01TLFxuICB0eXBlIENyZWF0ZURlZmluaXRpb25JbnB1dCxcbiAgdHlwZSBVcGRhdGVEZWZpbml0aW9uSW5wdXQsXG4gIHR5cGUgTWludGVkU2hhcmVMaW5rLFxuICB0eXBlIFJlc29sdmVkU2hhcmVMaW5rLFxufSBmcm9tICcuL2FwaS9yZXBvcnRpbmcvc3Rha2Vob2xkZXIvaW5kZXguanMnO1xuZXhwb3J0IHtcbiAgdHlwZSBQbHVnaW5SdW50aW1lRmlsdGVyLFxuICB0eXBlIFBsdWdpblJ1bnRpbWVTdGF0cyxcbiAgUmVwb3J0aW5nU2VydmljZSxcbiAgcmVwb3J0aW5nU2VydmljZSxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nLXNlcnZpY2UuanMnO1xuXG4vLyBGaWx0ZXJzXG5leHBvcnQge1xuICB0eXBlIFBsdWdpbkZpbHRlcixcbiAgdHlwZSBQaXBlbGluZUZpbHRlcixcbiAgdHlwZSBQaXBlbGluZVRlbXBsYXRlRmlsdGVyLFxuICB0eXBlIE1lc3NhZ2VGaWx0ZXIsXG4gIHR5cGUgQ29tcGxpYW5jZVBvbGljeUZpbHRlcixcbiAgdHlwZSBDb21wbGlhbmNlUnVsZUZpbHRlcixcbiAgdHlwZSBDb21wbGlhbmNlRXhlbXB0aW9uRmlsdGVyLFxuICB0eXBlIENvbXBsaWFuY2VBdWRpdEZpbHRlcixcbiAgdHlwZSBDb21wbGlhbmNlU2NhbkZpbHRlcixcbn0gZnJvbSAnLi9jb3JlL3F1ZXJ5LWZpbHRlcnMuanMnO1xuIl19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUVILFdBQVc7QUFDWCxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLDhCQUE4QjtBQUM5QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLE9BQU8sRUFFTCx5QkFBeUIsR0FDMUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsT0FBTyxFQUNMLFdBQVcsRUFDWCxrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsYUFBYSxHQUNkLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUNMLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLDRCQUE0QixFQUU1QixlQUFlLEVBR2YsWUFBWSxHQUViLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUNMLDRCQUE0QixHQUU3QixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixlQUFlLEVBQ2YsVUFBVSxFQUNWLFdBQVcsRUFDWCxVQUFVLEVBQ1YscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QseUJBQXlCLEVBQ3pCLHFCQUFxQixFQUlyQiwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsb0JBQW9CO0FBQ3BCLDJFQUEyRTtBQUMzRSwyRUFB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Q2QsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYix1QkFBdUIsRUFDdkIsVUFBVSxHQWNYLE1BQU0sb0NBQW9DLENBQUM7QUFFNUMsZ0ZBQWdGO0FBQ2hGLHNGQUFzRjtBQUN0RixPQUFPLEVBQ0wsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsMEJBQTBCLEVBQzFCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixrQkFBa0IsR0FZbkIsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzQyxnRkFBZ0Y7QUFDaEYsMERBQTBEO0FBQzFELE9BQU8sRUFDTCxhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUN4QixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixVQUFVLEVBQ1YsV0FBVyxFQUNYLFVBQVUsRUFDVixxQkFBcUIsRUFDckIsV0FBVyxFQUNYLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzFCLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsYUFBYSxFQWFiLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsU0FBUyxFQUNULFNBQVMsRUFDVCwyQkFBMkIsRUFDM0IsdUJBQXVCLEVBQ3ZCLFdBQVcsRUFDWCxtQkFBbUIsR0FLcEIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5QyxPQUFPLEVBR0wsZ0JBQWdCLEVBQ2hCLGdCQUFnQixHQUNqQixNQUFNLDRCQUE0QixDQUFDO0FBRXBDLFVBQVU7QUFDVixPQUFPLEVBVU4sTUFBTSx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIEBtb2R1bGUgQHBpcGVsaW5lLWJ1aWxkZXIvcGlwZWxpbmUtZGF0YVxuICpcbiAqIERhdGFiYXNlIGxheWVyOiBEcml6emxlIE9STSBzY2hlbWFzLCBjb25uZWN0aW9uIG1hbmFnZW1lbnQsIGFuZCBxdWVyeSBpbmZyYXN0cnVjdHVyZS5cbiAqXG4gKiAqKkRhdGFiYXNlKipcbiAqIC0gZGIg4oCUIHNoYXJlZCBEcml6emxlIGRhdGFiYXNlIGluc3RhbmNlXG4gKiAtIGdldENvbm5lY3Rpb24sIGNsb3NlQ29ubmVjdGlvbiDigJQgUG9zdGdyZVNRTCBjb25uZWN0aW9uIGxpZmVjeWNsZSB3aXRoIHJldHJ5IGxvZ2ljXG4gKiAtIHNjaGVtYSDigJQgRHJpenpsZSB0YWJsZSBkZWZpbml0aW9ucyAocGx1Z2lucywgcGlwZWxpbmVzLCBtZXNzYWdlcywgY29tcGxpYW5jZSwgZXRjLilcbiAqXG4gKiAqKlNlcnZpY2VzKipcbiAqIC0gQ3J1ZFNlcnZpY2Ug4oCUIGdlbmVyaWMgYmFzZSBjbGFzcyBmb3IgbXVsdGktdGVuYW50IENSVUQgd2l0aCBhY2Nlc3MgY29udHJvbCBhbmQgcGFnaW5hdGlvblxuICogLSBSZXBvcnRpbmdTZXJ2aWNlIOKAlCBhZ2dyZWdhdGUgcXVlcnkgYW5kIHJlcG9ydGluZyBiYXNlIGNsYXNzXG4gKlxuICogKipRdWVyeSBCdWlsZGVycyoqXG4gKiAtIGJ1aWxkUGx1Z2luQ29uZGl0aW9ucywgYnVpbGRQaXBlbGluZUNvbmRpdGlvbnMsIGJ1aWxkTWVzc2FnZUNvbmRpdGlvbnMg4oCUIGZpbHRlci10by1TUUwgY29uZGl0aW9uIGJ1aWxkZXJzXG4gKiAtIGJ1aWxkQ29tcGxpYW5jZVBvbGljeUNvbmRpdGlvbnMsIGJ1aWxkQ29tcGxpYW5jZVJ1bGVDb25kaXRpb25zLCBldGMuIOKAlCBjb21wbGlhbmNlIHF1ZXJ5IGJ1aWxkZXJzXG4gKiAtIEFjY2Vzc0NvbnRyb2xCdWlsZGVyIOKAlCByb3ctbGV2ZWwgYWNjZXNzIGNvbnRyb2wgY29uZGl0aW9uIGJ1aWxkZXJcbiAqXG4gKiAqKkZpbHRlcnMqKlxuICogLSBQbHVnaW5GaWx0ZXIsIFBpcGVsaW5lRmlsdGVyLCBNZXNzYWdlRmlsdGVyIOKAlCB0eXBlZCBmaWx0ZXIgaW50ZXJmYWNlc1xuICogLSBDb21wbGlhbmNlUG9saWN5RmlsdGVyLCBDb21wbGlhbmNlUnVsZUZpbHRlciwgZXRjLiDigJQgY29tcGxpYW5jZSBmaWx0ZXIgaW50ZXJmYWNlc1xuICogLSBkcml6emxlUm93cywgZHJpenpsZUNvdW50IOKAlCBEcml6emxlIHJlc3VsdCB0eXBlIGhlbHBlcnNcbiAqL1xuXG4vLyBEYXRhYmFzZVxuZXhwb3J0ICogZnJvbSAnLi9kYXRhYmFzZS9pbmRleC5qcyc7XG5cbi8vIFF1ZXJ5IGJ1aWxkZXJzIGFuZCBzZXJ2aWNlc1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvcXVlcnktYnVpbGRlcnMuanMnO1xuZXhwb3J0IHtcbiAgdHlwZSBCYXNlQWNjZXNzRmlsdGVyLFxuICBBY2Nlc3NDb250cm9sUXVlcnlCdWlsZGVyLFxufSBmcm9tICcuL2FwaS9hY2Nlc3MtY29udHJvbC1idWlsZGVyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL3ZpZXdlci1jb250ZXh0LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2NydWQtc2VydmljZS5qcyc7XG5leHBvcnQge1xuICBwYXJzZVNlbXZlcixcbiAgY29tcGFyZVNlbXZlclBhcnRzLFxuICBjb21wYXJlU2VtdmVyLFxuICBpc1ZlcnNpb25SYW5nZSxcbiAgc2F0aXNmaWVzVmVyc2lvblNwZWMsXG4gIHNlbXZlck9yZGVyQnksXG59IGZyb20gJy4vYXBpL3NlbXZlci1yYW5nZS5qcyc7XG5leHBvcnQge1xuICBub3JtYWxpemVRdWVyeSxcbiAgc2VhcmNoUHVibGljTGlzdGluZ3MsXG4gIGxpc3RQdWJsaWNDYXRlZ29yaWVzLFxuICBnZXRQdWJsaWNMaXN0aW5nLFxuICBnZXRQdWJsaWNMaXN0ZWRWZXJzaW9uLFxuICBsaXN0UHVibGljUmV2aWV3cyxcbiAgbGlzdFB1YmxpY0xpc3RpbmdzRm9yU2l0ZW1hcCxcbiAgdHlwZSBEaXJlY3RvcnlTb3J0LFxuICBESVJFQ1RPUllfU09SVFMsXG4gIHR5cGUgRGlyZWN0b3J5U2VhcmNoUGFyYW1zLFxuICB0eXBlIFJldmlld1NvcnQsXG4gIFJFVklFV19TT1JUUyxcbiAgdHlwZSBQdWJsaWNMaXN0aW5nUm93LFxufSBmcm9tICcuL2FwaS9wdWJsaWMtZGlyZWN0b3J5LmpzJztcbmV4cG9ydCB7XG4gIGxpc3RFbmFibGVkQWxlcnREZXN0aW5hdGlvbnMsXG4gIHR5cGUgTm90aWZpY2F0aW9uRGVzdGluYXRpb24sXG59IGZyb20gJy4vYXBpL2FsZXJ0LWRlc3RpbmF0aW9ucy5qcyc7XG5leHBvcnQgeyBhbm9ueW1pemVSZXZpZXdzQnlBdXRob3IgfSBmcm9tICcuL2FwaS9lY29zeXN0ZW0tcHJpdmFjeS5qcyc7XG5leHBvcnQge1xuICBvcGVuU3VwcG9ydENhc2UsXG4gIGZpbmRDYXNlQnlUaHJlYWQsXG4gIGxpc3RRdWV1ZSxcbiAgbGlzdE9yZ0Nhc2VzLFxuICBzdGFtcEZpcnN0UmVzcG9uc2UsXG4gIHNldENhc2VTdGF0dXMsXG4gIHNldENhc2VTZXZlcml0eSxcbiAgYXNzaWduQ2FzZSxcbiAgYXNzaWduQ2FzZXMsXG4gIGNsb3NlQ2FzZXMsXG4gIHRyYW5zZmVyQ2FzZVRvQ29udGFjdCxcbiAgb3BlbkNhc2VzRm9yQ29udGFjdCxcbiAgUVVFVUVfU1RBVFVTRVMsXG4gIFNVUFBPUlRfQ0FTRV9QQUdFX0RFRkFVTFQsXG4gIFNVUFBPUlRfQ0FTRV9QQUdFX01BWCxcbiAgdHlwZSBTdXBwb3J0Q2FzZVBhZ2UsXG4gIHR5cGUgU3VwcG9ydENhc2VQYWdlT3B0aW9ucyxcbiAgdHlwZSBPcGVuQ2FzZUlucHV0LFxuICBjb3VudEFjdGl2ZVN1cHBvcnRDb250YWN0cyxcbiAgbGlzdEFjdGl2ZVN1cHBvcnRDb250YWN0cyxcbiAgaXNTdXBwb3J0Q29udGFjdCxcbiAgZGVzaWduYXRlU3VwcG9ydENvbnRhY3QsXG4gIHJldm9rZVN1cHBvcnRDb250YWN0LFxuICAvLyBUaGUgcHJlbWl1bSBVUEdSQURFIHN1YnNldC4gU2VwYXJhdGUgZnJvbSB0aGUgYmFzZWxpbmUgY29udGFjdCBmdW5jdGlvbnNcbiAgLy8gYmVjYXVzZSB0aGUgdHdvIGFuc3dlciB0byBzZXBhcmF0ZSBjYXBzOiBhbiBhY2NvdW50IGhvbGRzIE4gY29udGFjdHMgYW5kXG4gIC8vIHVwZ3JhZGVzIE0gb2YgdGhlbS5cbiAgY291bnRQcmVtaXVtU3VwcG9ydENvbnRhY3RzLFxuICBpc1ByZW1pdW1TdXBwb3J0Q29udGFjdCxcbiAgc2V0U3VwcG9ydENvbnRhY3RQcmVtaXVtLFxuICBjb3VudENhc2VzSW5XaW5kb3csXG4gIHJhdGVDYXNlLFxuICBhZGRDYXNlTm90ZSxcbiAgbGlzdENhc2VOb3RlcyxcbiAgZGVsZXRlQ2FzZU5vdGUsXG4gIHR5cGUgU3VwcG9ydENhc2VOb3RlLFxuICBsaXN0Q2FubmVkUmVzcG9uc2VzLFxuICBjcmVhdGVDYW5uZWRSZXNwb25zZSxcbiAgdXBkYXRlQ2FubmVkUmVzcG9uc2UsXG4gIGRlbGV0ZUNhbm5lZFJlc3BvbnNlLFxuICB0eXBlIENhbm5lZFJlc3BvbnNlLFxuICBsaXN0Q2FzZXNEdWVGb3JQYWdlLFxufSBmcm9tICcuL2FwaS9zdXBwb3J0LWNhc2VzLmpzJztcbmV4cG9ydCB7XG4gIHBvbGljeU9mLFxuICBlZmZlY3RpdmVDb25zdW1wdGlvblBvbGljeSxcbiAgYXBwbHlQb2xpY3lVcGRhdGUsXG4gIHR5cGUgQ29uc3VtcHRpb25Qb2xpY3ksXG4gIERFRkFVTFRfQ09OU1VNUFRJT05fUE9MSUNZLFxufSBmcm9tICcuL2FwaS9wbHVnaW4tY29uc3VtcHRpb24tcG9saWN5LmpzJztcbmV4cG9ydCB7XG4gIGFkdmlzb3J5UmFuZ2VDb3ZlcnMsXG4gIGFkdmlzb3J5UmFuZ2VQcm9ibGVtLFxuICBhZHZpc29yaWVzQ292ZXJpbmcsXG4gIGJsb2NraW5nQWR2aXNvcmllcyxcbn0gZnJvbSAnLi9hcGkvcGx1Z2luLWFkdmlzb3JpZXMuanMnO1xuZXhwb3J0IHtcbiAgbGlzdGluZ0Jsb2NrLFxuICBpbXBsaWNpdEluc3RhbGxSYW5nZSxcbiAgaW5zdGFsbEFkbWl0cyxcbiAgc2NvcGVPcmdJZHMsXG4gIGluc3RhbGxNb2RlRm9yLFxuICBkcml6emxlTGlzdGluZ1NvdXJjZSxcbiAgcmVzb2x2ZUxpc3RpbmdSZWZlcmVuY2UsXG4gIGxpc3RlZFZlcnNpb25XYXJuaW5ncyxcbiAgbGlzdGVkUGx1Z2luUmVjb3JkLFxuICBsb2FkT3JnSW5zdGFsbENvbnRleHQsXG4gIG9yZ0xpc3RpbmdTdGF0ZXMsXG4gIHJlc29sdmFibGVMaXN0aW5ncyxcbiAgdHlwZSBSZXNvbHV0aW9uUmVmdXNhbCxcbiAgdHlwZSBSZXNvbHV0aW9uU2NvcGUsXG4gIHR5cGUgTGlzdGluZ0RhdGFTb3VyY2UsXG4gIHR5cGUgTGlzdGluZ1Jlc29sdmVkLFxuICB0eXBlIE9yZ0xpc3RpbmdTdGF0ZSxcbiAgdnVsblVwZ3JhZGVBdmFpbGFibGVXYXJuaW5nLFxuICB0eXBlIFZ1bG5VcGdyYWRlQXZhaWxhYmxlV2FybmluZyxcbn0gZnJvbSAnLi9hcGkvcGx1Z2luLXJlc29sdXRpb24uanMnO1xuZXhwb3J0IHtcbiAgcmVzb2x2ZU1hbmFnZWRUb29sY2hhaW4sXG4gIHJlc29sdmVNYW5hZ2VkVG9vbGNoYWluV2l0aCxcbiAgcmVzb2x2ZU1hbmFnZWRUb29sY2hhaW5IYWxmLFxuICBpc0VsaWdpYmxlUmVsZWFzZSxcbiAgcmVhZE9yZ1Rvb2xjaGFpbk92ZXJ2aWV3LFxuICByZWFkT3JnVG9vbGNoYWluT3ZlcnZpZXdXaXRoLFxuICBsaXN0RWxpZ2libGVSZWxlYXNlcyxcbiAgbGlzdEVsaWdpYmxlUmVsZWFzZXNXaXRoLFxuICBpc0VsaWdpYmxlUmVsZWFzZVdpdGgsXG4gIE1hbmFnZWRUb29sY2hhaW5FcnJvcixcbiAgbWFuYWdlZFRvb2xjaGFpblJlZnVzYWwsXG4gIGlzVG9vbGNoYWluUmVsZWFzZVZlcnNpb24sXG4gIHRvb2xjaGFpbk9yZ0NoYWluLFxuICBsb2FkUmVsZWFzZUhhbHZlcyxcbiAgcmVsZWFzZUV4aXN0cyxcbiAgcmVsZWFzZUxpZmVjeWNsZVByb2JsZW1zLFxuICB0b29sY2hhaW5DYW5kaWRhdGVQcm9ibGVtcyxcbiAgYm9vdHN0cmFwVG9vbGNoYWluT2YsXG4gIHNldE1hbmFnZWRUb29sY2hhaW5EZXBzRm9yVGVzdHMsXG4gIHR5cGUgTWFuYWdlZFRvb2xjaGFpblJlc29sdXRpb24sXG4gIHR5cGUgTWFuYWdlZFRvb2xjaGFpbldhcm5pbmcsXG4gIHR5cGUgTWFuYWdlZFRvb2xjaGFpbkNhbGxlcixcbiAgdHlwZSBNYW5hZ2VkVG9vbGNoYWluRGVwcyxcbiAgdHlwZSBUb29sY2hhaW5EYixcbiAgdHlwZSBSZWxlYXNlSGFsdmVzLFxuICB0eXBlIFJlbGVhc2VMaWZlY3ljbGVQcm9ibGVtLFxuICB0eXBlIE9yZ1Rvb2xjaGFpbk92ZXJ2aWV3LFxuICB0eXBlIEVsaWdpYmxlVG9vbGNoYWluUmVsZWFzZSxcbn0gZnJvbSAnLi9hcGkvbWFuYWdlZC10b29sY2hhaW4uanMnO1xuZXhwb3J0IHtcbiAgZmluZFZlcnNpb25SZWZlcmVuY2VzLFxuICBkaXN0aW5jdFBpcGVsaW5lcyxcbiAgdmVyc2lvblJlZmVyZW5jZWRQcmVkaWNhdGUsXG4gIG9yZ0ltYWdlRGlnZXN0c0luVXNlLFxuICB0eXBlIFZlcnNpb25SZWZlcmVuY2VUYXJnZXQsXG4gIHR5cGUgVmVyc2lvblJlZmVyZW5jZSxcbn0gZnJvbSAnLi9hcGkvdmVyc2lvbi1yZWZlcmVuY2VzLmpzJztcbmV4cG9ydCB7XG4gIGRlY2xhcmVkUmVzb2x1dGlvbixcbiAgcmVjb3JkU3RlcExvb2t1cCxcbiAgcGlwZWxpbmVTdGVwTG9va3VwcyxcbiAgZGVjbGFyZWRQaXBlbGluZXNGb3JQbHVnaW4sXG4gIHN0YWdlQW5kU3RlcCxcbiAgc3RlcExhYmVsT2YsXG4gIHR5cGUgRGVjbGFyZWRTdGVwSW5wdXQsXG4gIHR5cGUgRGVjbGFyZWRTdGVwUGx1Z2luLFxuICB0eXBlIERlY2xhcmVkU3RlcFJlc29sdXRpb24sXG4gIHR5cGUgU3RlcExvb2t1cFJlY29yZCxcbiAgdHlwZSBEZWNsYXJlZFBpcGVsaW5lUmVmLFxufSBmcm9tICcuL2FwaS9waXBlbGluZS1zdGVwLXJlc29sdXRpb24uanMnO1xuLy8gYGlzU29mdERlbGV0ZVB1cmdlRW5hYmxlZGAgaXMgdGhlIG1vZHVsZSdzIG93biBlbnYgZ2F0ZSDigJQgYHJ1blNvZnREZWxldGVQdXJnZWBcbi8vIGFuZCB0aGUgc2NoZWR1bGVyIGFscmVhZHkgYXBwbHkgaXQsIHNvIGNhbGxlcnMgbmV2ZXIgYXNrIHNlcGFyYXRlbHkuXG5leHBvcnQge1xuICBydW5Tb2Z0RGVsZXRlUHVyZ2UsXG4gIGNyZWF0ZVNvZnREZWxldGVQdXJnZVNjaGVkdWxlcixcbiAgdHlwZSBQdXJnZWFibGVFbnRpdHksXG59IGZyb20gJy4vYXBpL3NvZnQtZGVsZXRlLXN3ZWVwLmpzJztcbmV4cG9ydCB7XG4gIHR5cGUgQnVpbGRIZWFsdGgsXG4gIHR5cGUgRG9yYUxldmVsLFxuICB0eXBlIERvcmFNZXRyaWNzLFxuICB0eXBlIERvcmFPcHRpb25zLFxuICB0eXBlIERvcmFUcmVuZFBvaW50LFxuICB0eXBlIERlcGxveW1lbnRPdXRjb21lV3JpdGUsXG4gIHR5cGUgSW5jaWRlbnRMaXN0SXRlbSxcbiAgdHlwZSBJbmNpZGVudFN0YXRlLFxuICB0eXBlIEluY2lkZW50V3JpdGUsXG4gIHR5cGUgUmVwb3J0aW5nU2V0dGluZ3MsXG4gIHR5cGUgSW5jaWRlbnRUZXN0UmVzdWx0LFxuICB0eXBlIEluZ2VzdENhbGxlcixcbiAgdHlwZSBJbmdlc3RNZXRyaWMsXG4gIHR5cGUgTGFzdERlcGxveWVkQ29tbWl0LFxufSBmcm9tICcuL2FwaS9yZXBvcnRpbmctc2VydmljZS5qcyc7XG5cbi8vIFRoZSByZXBvcnRpbmcgQU5BTFlUSUNTIGxheWVyOiB0aGUgcGVyLWRlcGxveSByb2xsdXAgd3JpdHRlbiBhdCBpbmdlc3QsIHRoZVxuLy8gZGFpbHkgcm9sbHVwIGV2ZXJ5IHNlY3Rpb24gcmVhZHMsIGFuZCB0aGUgZmFpbHVyZSBjbGFzc2lmaWVyIHRoYXQgbGFiZWxzIHdoYXRcbi8vIGJyb2tlIChzZWUgdGhlIG1vZHVsZXMnIG93biBoZWFkZXJzIGZvciB3aHkgZWFjaCBpcyB3cml0dGVuIHJhdGhlciB0aGFuIGRlcml2ZWQpLlxuZXhwb3J0IHtcbiAgdXBzZXJ0RGVwbG95bWVudHMsXG4gIGFwcGx5RGVwbG95T3V0Y29tZSxcbiAgY29ycmVsYXRlSW5jaWRlbnQsXG4gIGlzRGVwbG95RXZlbnQsXG4gIGxlYWRUaW1lR2FwT2YsXG4gIHR5cGUgRGVwbG95Q2FuZGlkYXRlLFxufSBmcm9tICcuL2FwaS9yZXBvcnRpbmcvZGVwbG95LXJvbGx1cC5qcyc7XG5leHBvcnQge1xuICByZWJ1aWxkRGF5LFxuICBydW5Sb2xsdXBQYXNzLFxuICByb2xsdXBTZXR0bGVIb3VycyxcbiAgcm9sbHVwQmF0Y2hEYXlzLFxuICB1dGNEYXlTdGFydCxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nL2RhaWx5LXJvbGx1cC5qcyc7XG5leHBvcnQge1xuICBjbGFzc2lmeUZhaWx1cmUsXG4gIGlzVGVhbUFjdGlvbmFibGUsXG4gIEZBSUxVUkVfQ0FURUdPUllfTEFCRUxTLFxufSBmcm9tICcuL2FwaS9yZXBvcnRpbmcvZmFpbHVyZS1jbGFzc2lmaWVyLmpzJztcbmV4cG9ydCB7XG4gIGdldFBpcGVsaW5lQnJlYWtkb3duLFxuICBnZXRGYWlsdXJlQW5hbHlzaXMsXG4gIGdldFN0YWdlUGVyZm9ybWFuY2UsXG4gIGdldFJlc291cmNlQ29uc3VtcHRpb24sXG4gIGdldFByb21vdGlvblZpZXcsXG4gIGdldE91dGRhdGVkUGx1Z2lucyxcbiAgZ2V0UGx1Z2luVnVsbmVyYWJpbGl0aWVzLFxuICBnZXRBZG9wdGlvbixcbiAgdHlwZSBBbmFseXRpY3NTY29wZSxcbiAgdHlwZSBQaXBlbGluZUJyZWFrZG93blJvdyxcbiAgdHlwZSBGYWlsdXJlQ2F0ZWdvcnlSb3csXG4gIHR5cGUgU3RhZ2VQZXJmb3JtYW5jZVJvdyxcbiAgdHlwZSBSZXNvdXJjZVJvdyxcbiAgdHlwZSBQcm9tb3Rpb25Sb3csXG4gIHR5cGUgT3V0ZGF0ZWRQbHVnaW5Sb3csXG4gIHR5cGUgVnVsbmVyYWJpbGl0eVJvdyxcbiAgdHlwZSBBZG9wdGlvblN1bW1hcnksXG59IGZyb20gJy4vYXBpL3JlcG9ydGluZy9hbmFseXRpY3MtcXVlcmllcy5qcyc7XG5leHBvcnQge1xuICBldmFsdWF0ZU5lZWRzQXR0ZW50aW9uLFxuICB0aHJlc2hvbGRzRnJvbSxcbiAgREVGQVVMVF9USFJFU0hPTERTLFxuICB0eXBlIE5lZWRzQXR0ZW50aW9uVGhyZXNob2xkcyxcbiAgdHlwZSBBdHRlbnRpb25GaW5kaW5nLFxuICB0eXBlIEF0dGVudGlvbkl0ZW0sXG4gIHR5cGUgQXR0ZW50aW9uSW5wdXQsXG4gIHR5cGUgQXR0ZW50aW9uUnVsZUlkLFxufSBmcm9tICcuL2FwaS9yZXBvcnRpbmcvbmVlZHMtYXR0ZW50aW9uLmpzJztcbmV4cG9ydCB7XG4gIHJlcGxhY2VQaXBlbGluZVJlc29sdXRpb24sXG4gIHJlZnJlc2hMYXRlc3RGb3JQbHVnaW4sXG4gIHVwc2VydEV4cG9zdXJlcyxcbiAgY2xvc2VGaXhlZEV4cG9zdXJlcyxcbiAgY2xvc2VQaXBlbGluZUV4cG9zdXJlcyxcbiAgY2xvc2VWZXJzaW9uRXhwb3N1cmVzLFxuICByZWNvbmNpbGVQaXBlbGluZUV4cG9zdXJlcyxcbiAgc3luY1ZlcnNpb25FeHBvc3VyZXMsXG4gIHBpcGVsaW5lc09uVmVyc2lvbixcbiAgZXhwb3N1cmVGcm9tU2NhbixcbiAgbGl2ZUV4cG9zdXJlUHJlZGljYXRlLFxuICBvcGVuRXhwb3N1cmVzLFxuICB0cmlhZ2VFeHBvc3VyZSxcbiAgbGFwc2VkQWNjZXB0YW5jZXMsXG4gIHBpcGVsaW5lRXhwb3N1cmVzLFxuICBleHBvc3VyZUJ5SWQsXG4gIGFjdGl2ZUFjY2VwdGFuY2VzLFxuICBhY2NlcHRhbmNlS2V5LFxuICByZW9wZW5MYXBzZWRBY2NlcHRhbmNlcyxcbiAgdmVyc2lvbkdhcCxcbiAgdHlwZSBQaXBlbGluZUV4cG9zdXJlLFxuICB0eXBlIFRyaWFnZURlY2lzaW9uLFxuICB0eXBlIFBpcGVsaW5lQWNjZXB0YW5jZXMsXG4gIHR5cGUgTGFwc2VkQWNjZXB0YW5jZSxcbiAgdHlwZSBSZXNvbHZlZFN0ZXAsXG4gIHR5cGUgRXhwb3N1cmVJbnB1dCxcbiAgdHlwZSBFeHBvc3VyZVN0ZXAsXG4gIHR5cGUgRXhwb3N1cmVDb3VudHMsXG4gIHR5cGUgTGl2ZVZlcnNpb24sXG4gIHR5cGUgUGlwZWxpbmVPblZlcnNpb24sXG4gIHR5cGUgUGx1Z2luVmVyc2lvblJlZixcbiAgdHlwZSBTY2FuU3RhdGUsXG4gIHR5cGUgVmVyc2lvbkdhcCxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nL3BsdWdpbi1leHBvc3VyZS5qcyc7XG5cbi8vIFRvb2xjaGFpbiBydW4gZGF0YSAoZG9jcy9wbGFucy9ib290c3RyYXAtaW1hZ2UtdmVyc2lvbmluZy5tZCDCpzYsIMKnNywgwqc5KTogdGhlXG4vLyByZWxlYXNlIHN0YW1wIG9uIHN5bnRoIC8gc2VsZi1tdXRhdGlvbiByb3dzLCB0aGUgY2FuYXJ5IGdhdGUgYW5kIHRoZSBBZmZlY3RlZCB2aWV3LlxuZXhwb3J0IHtcbiAgY2FuYXJ5UGVyT3JnQ2FwLFxuICBERUZBVUxUX0NBTkFSWV9HQVRFLFxuICBkZXBsb3llZFRvb2xjaGFpbk9mLFxuICBldmFsdWF0ZUNhbmFyeUdhdGUsXG4gIHJlYWRBZmZlY3RlZFBpcGVsaW5lcyxcbiAgcmVhZENhbmFyeUdhdGUsXG4gIHJlYWRQbGF0Zm9ybURlZmF1bHRSZWxlYXNlLFxuICBTRUxGX01VVEFUSU9OX0FDVElPTixcbiAgU0VMRl9NVVRBVElPTl9TVEFHRSxcbiAgU1lOVEhfU1RFUF9LRVksXG4gIHRvb2xjaGFpbkFjdGlvbk9mLFxuICB0b29sY2hhaW5PdXRjb21lT2YsXG4gIHR5cGUgQWZmZWN0ZWRPcmcsXG4gIHR5cGUgQWZmZWN0ZWRQaXBlbGluZXMsXG4gIHR5cGUgQ2FuYXJ5R2F0ZUlucHV0LFxuICB0eXBlIENhbmFyeUdhdGVQYXJhbXMsXG4gIHR5cGUgQ2FuYXJ5R2F0ZVJlc3VsdCxcbiAgdHlwZSBDYW5hcnlHYXRlU2hvcnRmYWxsLFxuICB0eXBlIERlcGxveWVkVG9vbGNoYWluLFxuICB0eXBlIE9yZ1J1bnMsXG4gIHR5cGUgVG9vbGNoYWluQWN0aW9uLFxuICB0eXBlIFRvb2xjaGFpbk1hbmlmZXN0Um93LFxuICB0eXBlIFRvb2xjaGFpbk91dGNvbWUsXG59IGZyb20gJy4vYXBpL3JlcG9ydGluZy90b29sY2hhaW4tcnVucy5qcyc7XG5cbi8vIFRoZSBzdGFrZWhvbGRlci1yZXBvcnQgZW5naW5lOiBwZXJpb2QgcmVzb2x1dGlvbiwgc2VjdGlvbiByZWdpc3RyeSwgdGVtcGxhdGVzXG4vLyBhbmQgdGhlIGNvbXBvc2VyIHRoYXQgZnJlZXplcyBhIHBlcmlvZCBpbnRvIGEgc25hcHNob3QuXG5leHBvcnQge1xuICByZXNvbHZlUGVyaW9kLFxuICByZXNvbHZlUGVyaW9kQnlMYWJlbCxcbiAgcmVqZWN0VW5yZXBvcnRhYmxlUGVyaW9kLFxuICBuZXh0UGVyaW9kQm91bmRhcnksXG4gIGNvbXBsZXRlUGVyaW9kc1NpbmNlLFxuICByZWdpc3RlclNlY3Rpb24sXG4gIGdldFNlY3Rpb24sXG4gIGFsbFNlY3Rpb25zLFxuICBzZWN0aW9uSWRzLFxuICBSRVBPUlRfVEVNUExBVEVfU1BFQ1MsXG4gIGdldFRlbXBsYXRlLFxuICBjb21wb3NlU25hcHNob3QsXG4gIExPV19TQU1QTEVfVEhSRVNIT0xELFxuICBSRVBPUlRfRkVBVFVSRV9TVUJTVElUVVRFUyxcbiAgcmVuZGVyUmVwb3J0SHRtbCxcbiAgcmVwb3J0RmlsZU5hbWUsXG4gIHRyZW5kU2VudGVuY2UsXG4gIHR5cGUgUmVwb3J0SHRtbElucHV0LFxuICB0eXBlIFJlc29sdmVkUGVyaW9kLFxuICB0eXBlIFBlcmlvZFJlamVjdGlvbixcbiAgdHlwZSBTZWN0aW9uU3BlYyxcbiAgdHlwZSBTZWN0aW9uQ29udGV4dCxcbiAgdHlwZSBTZWN0aW9uRGF0YVNvdXJjZSxcbiAgdHlwZSBUZW1wbGF0ZVNwZWMsXG4gIHR5cGUgUmVwb3J0U25hcHNob3QsXG4gIHR5cGUgQ29tcG9zZWRTZWN0aW9uLFxuICB0eXBlIERhdGFRdWFsaXR5Tm90ZSxcbiAgdHlwZSBDb21wb3NlT3B0aW9ucyxcbiAgdHlwZSBUcmVuZERpcmVjdGlvbixcbiAgU3Rha2Vob2xkZXJSZXBvcnRTdG9yZSxcbiAgc3Rha2Vob2xkZXJSZXBvcnRTdG9yZSxcbiAgaGFzaFRva2VuLFxuICBtaW50VG9rZW4sXG4gIERFRkFVTFRfU0hBUkVfTElOS19UVExfREFZUyxcbiAgTUFYX1NIQVJFX0xJTktfVFRMX0RBWVMsXG4gIE1BWF9CT1VOQ0VTLFxuICBWRVJJRklDQVRJT05fVFRMX01TLFxuICB0eXBlIENyZWF0ZURlZmluaXRpb25JbnB1dCxcbiAgdHlwZSBVcGRhdGVEZWZpbml0aW9uSW5wdXQsXG4gIHR5cGUgTWludGVkU2hhcmVMaW5rLFxuICB0eXBlIFJlc29sdmVkU2hhcmVMaW5rLFxufSBmcm9tICcuL2FwaS9yZXBvcnRpbmcvc3Rha2Vob2xkZXIvaW5kZXguanMnO1xuZXhwb3J0IHtcbiAgdHlwZSBQbHVnaW5SdW50aW1lRmlsdGVyLFxuICB0eXBlIFBsdWdpblJ1bnRpbWVTdGF0cyxcbiAgUmVwb3J0aW5nU2VydmljZSxcbiAgcmVwb3J0aW5nU2VydmljZSxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nLXNlcnZpY2UuanMnO1xuXG4vLyBGaWx0ZXJzXG5leHBvcnQge1xuICB0eXBlIFBsdWdpbkZpbHRlcixcbiAgdHlwZSBQaXBlbGluZUZpbHRlcixcbiAgdHlwZSBQaXBlbGluZVRlbXBsYXRlRmlsdGVyLFxuICB0eXBlIE1lc3NhZ2VGaWx0ZXIsXG4gIHR5cGUgQ29tcGxpYW5jZVBvbGljeUZpbHRlcixcbiAgdHlwZSBDb21wbGlhbmNlUnVsZUZpbHRlcixcbiAgdHlwZSBDb21wbGlhbmNlRXhlbXB0aW9uRmlsdGVyLFxuICB0eXBlIENvbXBsaWFuY2VBdWRpdEZpbHRlcixcbiAgdHlwZSBDb21wbGlhbmNlU2NhbkZpbHRlcixcbn0gZnJvbSAnLi9jb3JlL3F1ZXJ5LWZpbHRlcnMuanMnO1xuIl19
@@ -18,7 +18,6 @@
18
18
  "assignCases": "function",
19
19
  "blockingAdvisories": "function",
20
20
  "bootstrapToolchainOf": "function",
21
- "BUILD_IMAGE_PLUGIN": "value",
22
21
  "buildComplianceAuditConditions": "function",
23
22
  "buildComplianceExemptionConditions": "function",
24
23
  "buildCompliancePolicyConditions": "function",
@@ -32,7 +31,6 @@
32
31
  "canaryPerOrgCap": "function",
33
32
  "chooseReadTarget": "function",
34
33
  "classifyFailure": "function",
35
- "clearToolchainParentCacheForTests": "function",
36
34
  "closeCases": "function",
37
35
  "closeConnection": "function",
38
36
  "closeFixedExposures": "function",
@@ -80,7 +78,6 @@
80
78
  "deploymentOutcome": "value",
81
79
  "designateSupportContact": "function",
82
80
  "DIRECTORY_SORTS": "value",
83
- "DIRECTORY_TIERS": "value",
84
81
  "distinctPipelines": "function",
85
82
  "doraSettings": "value",
86
83
  "drizzleCount": "function",
@@ -282,7 +279,8 @@
282
279
  "StakeholderReportStore": "class",
283
280
  "stampFirstResponse": "function",
284
281
  "stepLabelOf": "function",
285
- "SUPPORT_CASE_STATUSES": "value",
282
+ "SUPPORT_CASE_PAGE_DEFAULT": "value",
283
+ "SUPPORT_CASE_PAGE_MAX": "value",
286
284
  "syncVersionExposures": "function",
287
285
  "SYNTH_STEP_KEY": "value",
288
286
  "tenantContext": "value",
package/package.json CHANGED
@@ -24,7 +24,7 @@
24
24
  "typescript": "npm:@typescript/typescript6@^6.0.2"
25
25
  },
26
26
  "dependencies": {
27
- "@pipeline-builder/api-core": "5.2.11",
27
+ "@pipeline-builder/api-core": "5.2.13",
28
28
  "drizzle-orm": "0.45.4",
29
29
  "pg": "8.23.1"
30
30
  },
@@ -86,7 +86,7 @@
86
86
  "registry": "https://registry.npmjs.org/",
87
87
  "provenance": true
88
88
  },
89
- "version": "4.3.12",
89
+ "version": "4.3.14",
90
90
  "bugs": {
91
91
  "url": "https://github.com/mwashburn160/pipeline-builder/issues"
92
92
  },