@hmcts/ccd-case-ui-toolkit 7.0.0-rc2 → 7.0.0-rc4

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 (80) hide show
  1. package/esm2020/lib/app.config.mjs +1 -1
  2. package/esm2020/lib/shared/components/activity/activity.module.mjs +1 -4
  3. package/esm2020/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +2 -3
  4. package/esm2020/lib/shared/components/case-viewer/case-viewer.module.mjs +3 -6
  5. package/esm2020/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component.mjs +22 -8
  6. package/esm2020/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.mjs +41 -27
  7. package/esm2020/lib/shared/components/palette/case-file-view/test-data/categories-and-documents-test-data.mjs +233 -0
  8. package/esm2020/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +2 -2
  9. package/esm2020/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +1 -1
  10. package/esm2020/lib/shared/components/palette/complex/read-complex-field-collection-table.component.mjs +2 -2
  11. package/esm2020/lib/shared/components/palette/complex/read-complex-field.component.mjs +2 -2
  12. package/esm2020/lib/shared/components/palette/datetime-picker/datetime-picker.component.mjs +2 -2
  13. package/esm2020/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.mjs +2 -2
  14. package/esm2020/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +2 -2
  15. package/esm2020/lib/shared/components/palette/utils/date.pipe.mjs +2 -2
  16. package/esm2020/lib/shared/directives/conditional-show/services/condition-parser.service.mjs +1 -1
  17. package/esm2020/lib/shared/domain/case-file-view/case-file-view-document.model.mjs +1 -1
  18. package/esm2020/lib/shared/domain/case-file-view/case-file-view-sort-columns.enum.mjs +6 -0
  19. package/esm2020/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.mjs +40 -13
  20. package/esm2020/lib/shared/domain/case-file-view/index.mjs +3 -2
  21. package/esm2020/lib/shared/domain/index.mjs +10 -11
  22. package/esm2020/lib/shared/domain/search/sorting/sort-parameters.mjs +1 -1
  23. package/esm2020/lib/shared/domain/sort-order.enum.mjs +7 -0
  24. package/esm2020/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.mjs +2 -2
  25. package/esm2020/lib/shared/services/activity/activity.polling.service.mjs +7 -10
  26. package/esm2020/lib/shared/services/activity/index.mjs +1 -2
  27. package/esm2020/lib/shared/services/case-file-view/case-file-view.service.mjs +1 -1
  28. package/esm2020/lib/shared/services/fields/fields.purger.mjs +2 -2
  29. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs +156 -174
  30. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  31. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs +144 -161
  32. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  33. package/lib/app.config.d.ts +2 -0
  34. package/lib/app.config.d.ts.map +1 -1
  35. package/lib/shared/components/activity/activity.module.d.ts.map +1 -1
  36. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts.map +1 -1
  37. package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -1
  38. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component.d.ts +8 -5
  39. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component.d.ts.map +1 -1
  40. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.d.ts +5 -3
  41. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.d.ts.map +1 -1
  42. package/lib/shared/components/palette/case-file-view/test-data/categories-and-documents-test-data.d.ts +3 -0
  43. package/lib/shared/components/palette/case-file-view/test-data/categories-and-documents-test-data.d.ts.map +1 -0
  44. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
  45. package/lib/shared/components/palette/complex/read-complex-field-collection-table.component.d.ts.map +1 -1
  46. package/lib/shared/domain/case-file-view/case-file-view-document.model.d.ts +1 -1
  47. package/lib/shared/domain/case-file-view/case-file-view-document.model.d.ts.map +1 -1
  48. package/lib/shared/domain/case-file-view/case-file-view-sort-columns.enum.d.ts +5 -0
  49. package/lib/shared/domain/case-file-view/case-file-view-sort-columns.enum.d.ts.map +1 -0
  50. package/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.d.ts +4 -2
  51. package/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.d.ts.map +1 -1
  52. package/lib/shared/domain/case-file-view/index.d.ts +2 -1
  53. package/lib/shared/domain/case-file-view/index.d.ts.map +1 -1
  54. package/lib/shared/domain/index.d.ts +9 -10
  55. package/lib/shared/domain/index.d.ts.map +1 -1
  56. package/lib/shared/domain/search/sorting/sort-parameters.d.ts +1 -1
  57. package/lib/shared/domain/search/sorting/sort-parameters.d.ts.map +1 -1
  58. package/lib/shared/{components/palette/complex/sort-order.d.ts → domain/sort-order.enum.d.ts} +1 -1
  59. package/lib/shared/domain/sort-order.enum.d.ts.map +1 -0
  60. package/lib/shared/services/activity/activity.polling.service.d.ts +1 -3
  61. package/lib/shared/services/activity/activity.polling.service.d.ts.map +1 -1
  62. package/lib/shared/services/activity/index.d.ts +0 -1
  63. package/lib/shared/services/activity/index.d.ts.map +1 -1
  64. package/lib/shared/services/case-file-view/case-file-view.service.d.ts.map +1 -1
  65. package/lib/shared/services/fields/fields.purger.d.ts +1 -1
  66. package/package.json +1 -1
  67. package/esm2020/lib/shared/components/palette/complex/sort-order.mjs +0 -7
  68. package/esm2020/lib/shared/domain/polling/index.mjs +0 -2
  69. package/esm2020/lib/shared/domain/polling/polling.model.mjs +0 -2
  70. package/esm2020/lib/shared/domain/search/sorting/sort-order.mjs +0 -7
  71. package/esm2020/lib/shared/services/activity/polling.service.mjs +0 -61
  72. package/lib/shared/components/palette/complex/sort-order.d.ts.map +0 -1
  73. package/lib/shared/domain/polling/index.d.ts +0 -2
  74. package/lib/shared/domain/polling/index.d.ts.map +0 -1
  75. package/lib/shared/domain/polling/polling.model.d.ts +0 -10
  76. package/lib/shared/domain/polling/polling.model.d.ts.map +0 -1
  77. package/lib/shared/domain/search/sorting/sort-order.d.ts +0 -6
  78. package/lib/shared/domain/search/sorting/sort-order.d.ts.map +0 -1
  79. package/lib/shared/services/activity/polling.service.d.ts +0 -12
  80. package/lib/shared/services/activity/polling.service.d.ts.map +0 -1
@@ -1,25 +1,24 @@
1
1
  export * from './activity';
2
2
  export * from './addresses';
3
3
  export * from './alert';
4
+ export * from './case-details.model';
4
5
  export * from './case-edit';
6
+ export * from './case-event-data.model';
5
7
  export * from './case-view';
6
8
  export * from './definition';
7
9
  export * from './document';
10
+ export * from './draft.model';
11
+ export * from './error-message.model';
8
12
  export * from './http';
9
13
  export * from './order';
10
14
  export * from './organisation';
15
+ export * from './pagination-metadata.model';
16
+ export * from './predicate.model';
11
17
  export * from './profile';
12
18
  export * from './search';
13
- export * from './predicate.model';
14
- export * from './draft.model';
15
- export * from './case-details.model';
16
- export * from './case-event-data.model';
17
- export * from './workbasket';
18
- export * from './pagination-metadata.model';
19
- export * from './search/sorting/sort-order';
20
- export * from './search/sorting/sort-parameters';
21
19
  export * from './search/sorting/search-result-view-item-comparator';
20
+ export * from './search/sorting/sort-parameters';
21
+ export * from './sort-order.enum';
22
22
  export * from './work-allocation';
23
- export * from './error-message.model';
24
- export * from './polling';
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2RvbWFpbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpdml0eSc7XG5leHBvcnQgKiBmcm9tICcuL2FkZHJlc3Nlcyc7XG5leHBvcnQgKiBmcm9tICcuL2FsZXJ0JztcbmV4cG9ydCAqIGZyb20gJy4vY2FzZS1lZGl0JztcbmV4cG9ydCAqIGZyb20gJy4vY2FzZS12aWV3JztcbmV4cG9ydCAqIGZyb20gJy4vZGVmaW5pdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2RvY3VtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaHR0cCc7XG5leHBvcnQgKiBmcm9tICcuL29yZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vb3JnYW5pc2F0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvZmlsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaCc7XG5leHBvcnQgKiBmcm9tICcuL3ByZWRpY2F0ZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2RyYWZ0Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vY2FzZS1kZXRhaWxzLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vY2FzZS1ldmVudC1kYXRhLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vd29ya2Jhc2tldCc7XG5leHBvcnQgKiBmcm9tICcuL3BhZ2luYXRpb24tbWV0YWRhdGEubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gvc29ydGluZy9zb3J0LW9yZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoL3NvcnRpbmcvc29ydC1wYXJhbWV0ZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoL3NvcnRpbmcvc2VhcmNoLXJlc3VsdC12aWV3LWl0ZW0tY29tcGFyYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3dvcmstYWxsb2NhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2Vycm9yLW1lc3NhZ2UubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9wb2xsaW5nJztcblxuIl19
23
+ export * from './workbasket';
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2RvbWFpbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpdml0eSc7XG5leHBvcnQgKiBmcm9tICcuL2FkZHJlc3Nlcyc7XG5leHBvcnQgKiBmcm9tICcuL2FsZXJ0JztcbmV4cG9ydCAqIGZyb20gJy4vY2FzZS1kZXRhaWxzLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vY2FzZS1lZGl0JztcbmV4cG9ydCAqIGZyb20gJy4vY2FzZS1ldmVudC1kYXRhLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vY2FzZS12aWV3JztcbmV4cG9ydCAqIGZyb20gJy4vZGVmaW5pdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2RvY3VtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZHJhZnQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvci1tZXNzYWdlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vaHR0cCc7XG5leHBvcnQgKiBmcm9tICcuL29yZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vb3JnYW5pc2F0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vcGFnaW5hdGlvbi1tZXRhZGF0YS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3ByZWRpY2F0ZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2ZpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gvc29ydGluZy9zZWFyY2gtcmVzdWx0LXZpZXctaXRlbS1jb21wYXJhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoL3NvcnRpbmcvc29ydC1wYXJhbWV0ZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vc29ydC1vcmRlci5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vd29yay1hbGxvY2F0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vd29ya2Jhc2tldCc7XG4iXX0=
@@ -4,4 +4,4 @@ export class SortParameters {
4
4
  this.sortOrder = sortOrder;
5
5
  }
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1wYXJhbWV0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9kb21haW4vc2VhcmNoL3NvcnRpbmcvc29ydC1wYXJhbWV0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxjQUFjO0lBS3pCLFlBQVksVUFBMEMsRUFBRSxTQUFvQjtRQUMxRSxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3IgfSBmcm9tICcuL3NlYXJjaC1yZXN1bHQtdmlldy1pdGVtLWNvbXBhcmF0b3InO1xuaW1wb3J0IHsgU29ydE9yZGVyIH0gZnJvbSAnLi9zb3J0LW9yZGVyJztcblxuZXhwb3J0IGNsYXNzIFNvcnRQYXJhbWV0ZXJzIHtcblxuICBwdWJsaWMgY29tcGFyYXRvcjogU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yO1xuICBwdWJsaWMgc29ydE9yZGVyOiBTb3J0T3JkZXI7XG5cbiAgY29uc3RydWN0b3IoY29tcGFyYXRvcjogU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yLCBzb3J0T3JkZXI6IFNvcnRPcmRlcikge1xuICAgIHRoaXMuY29tcGFyYXRvciA9IGNvbXBhcmF0b3I7XG4gICAgdGhpcy5zb3J0T3JkZXIgPSBzb3J0T3JkZXI7XG4gIH1cblxufVxuIl19
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1wYXJhbWV0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9kb21haW4vc2VhcmNoL3NvcnRpbmcvc29ydC1wYXJhbWV0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxjQUFjO0lBS3pCLFlBQVksVUFBMEMsRUFBRSxTQUFvQjtRQUMxRSxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTb3J0T3JkZXIgfSBmcm9tICcuLi8uLi9zb3J0LW9yZGVyLmVudW0nO1xuaW1wb3J0IHsgU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yIH0gZnJvbSAnLi9zZWFyY2gtcmVzdWx0LXZpZXctaXRlbS1jb21wYXJhdG9yJztcblxuZXhwb3J0IGNsYXNzIFNvcnRQYXJhbWV0ZXJzIHtcblxuICBwdWJsaWMgY29tcGFyYXRvcjogU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yO1xuICBwdWJsaWMgc29ydE9yZGVyOiBTb3J0T3JkZXI7XG5cbiAgY29uc3RydWN0b3IoY29tcGFyYXRvcjogU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yLCBzb3J0T3JkZXI6IFNvcnRPcmRlcikge1xuICAgIHRoaXMuY29tcGFyYXRvciA9IGNvbXBhcmF0b3I7XG4gICAgdGhpcy5zb3J0T3JkZXIgPSBzb3J0T3JkZXI7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,7 @@
1
+ export var SortOrder;
2
+ (function (SortOrder) {
3
+ SortOrder[SortOrder["ASCENDING"] = 0] = "ASCENDING";
4
+ SortOrder[SortOrder["DESCENDING"] = 1] = "DESCENDING";
5
+ SortOrder[SortOrder["UNSORTED"] = 2] = "UNSORTED";
6
+ })(SortOrder || (SortOrder = {}));
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1vcmRlci5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9kb21haW4vc29ydC1vcmRlci5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDbkIsbURBQVMsQ0FBQTtJQUNULHFEQUFVLENBQUE7SUFDVixpREFBUSxDQUFBO0FBQ1YsQ0FBQyxFQUpXLFNBQVMsS0FBVCxTQUFTLFFBSXBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gU29ydE9yZGVyIHtcbiAgQVNDRU5ESU5HLFxuICBERVNDRU5ESU5HLFxuICBVTlNPUlRFRFxufVxuIl19
@@ -1,6 +1,6 @@
1
1
  import { Pipe } from '@angular/core';
2
2
  import { isUndefined } from 'util';
3
- import { SortOrder } from '../../../components/palette/complex/sort-order';
3
+ import { SortOrder } from '../../../domain';
4
4
  import * as i0 from "@angular/core";
5
5
  export class SortSearchResultPipe {
6
6
  transform(searchResults, sortParameters) {
@@ -21,4 +21,4 @@ SortSearchResultPipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "ccdSortSe
21
21
  name: 'ccdSortSearchResult'
22
22
  }]
23
23
  }], null, null); })();
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1zZWFyY2gtcmVzdWx0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3BpcGVzL3NlYXJjaC1yZXN1bHQvc29ydGluZy9zb3J0LXNlYXJjaC1yZXN1bHQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7QUFPM0UsTUFBTSxPQUFPLG9CQUFvQjtJQUV4QixTQUFTLENBQUMsYUFBcUMsRUFBRSxjQUE4QjtRQUVwRixJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDN0QsT0FBTyxhQUFhLENBQUM7U0FDdEI7UUFDRCxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQ3ZCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ1AsT0FBTyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2tCQUNsQyxDQUFDLGNBQWMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7d0ZBYlUsb0JBQW9CO2dHQUFwQixvQkFBb0I7dUZBQXBCLG9CQUFvQjtjQUhoQyxJQUFJO2VBQUM7Z0JBQ0osSUFBSSxFQUFFLHFCQUFxQjthQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzVW5kZWZpbmVkIH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgeyBTb3J0T3JkZXIgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3BhbGV0dGUvY29tcGxleC9zb3J0LW9yZGVyJztcbmltcG9ydCB7IFNlYXJjaFJlc3VsdFZpZXdJdGVtIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL3NlYXJjaC9zZWFyY2gtcmVzdWx0LXZpZXctaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBTb3J0UGFyYW1ldGVycyB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9zZWFyY2gvc29ydGluZy9zb3J0LXBhcmFtZXRlcnMnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdjY2RTb3J0U2VhcmNoUmVzdWx0J1xufSlcbmV4cG9ydCBjbGFzcyBTb3J0U2VhcmNoUmVzdWx0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHB1YmxpYyB0cmFuc2Zvcm0oc2VhcmNoUmVzdWx0czogU2VhcmNoUmVzdWx0Vmlld0l0ZW1bXSwgc29ydFBhcmFtZXRlcnM6IFNvcnRQYXJhbWV0ZXJzKSB7XG5cbiAgICBpZiAoaXNVbmRlZmluZWQoc2VhcmNoUmVzdWx0cykgfHwgaXNVbmRlZmluZWQoc29ydFBhcmFtZXRlcnMpKSB7XG4gICAgICByZXR1cm4gc2VhcmNoUmVzdWx0cztcbiAgICB9XG4gICAgcmV0dXJuIHNlYXJjaFJlc3VsdHMuc29ydChcbiAgICAgIChhLCBiKSA9PiB7XG4gICAgICAgIHJldHVybiBzb3J0UGFyYW1ldGVycy5jb21wYXJhdG9yLmNvbXBhcmUoYSwgYilcbiAgICAgICAgICAgICAgICAgICogKHNvcnRQYXJhbWV0ZXJzLnNvcnRPcmRlciA9PT0gU29ydE9yZGVyLkRFU0NFTkRJTkcgPyAxIDogLTEpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxufVxuIl19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1zZWFyY2gtcmVzdWx0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3BpcGVzL3NlYXJjaC1yZXN1bHQvc29ydGluZy9zb3J0LXNlYXJjaC1yZXN1bHQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFPNUMsTUFBTSxPQUFPLG9CQUFvQjtJQUV4QixTQUFTLENBQUMsYUFBcUMsRUFBRSxjQUE4QjtRQUVwRixJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDN0QsT0FBTyxhQUFhLENBQUM7U0FDdEI7UUFDRCxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQ3ZCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ1AsT0FBTyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2tCQUNsQyxDQUFDLGNBQWMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7d0ZBYlUsb0JBQW9CO2dHQUFwQixvQkFBb0I7dUZBQXBCLG9CQUFvQjtjQUhoQyxJQUFJO2VBQUM7Z0JBQ0osSUFBSSxFQUFFLHFCQUFxQjthQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzVW5kZWZpbmVkIH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgeyBTb3J0T3JkZXIgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgU2VhcmNoUmVzdWx0Vmlld0l0ZW0gfSBmcm9tICcuLi8uLi8uLi9kb21haW4vc2VhcmNoL3NlYXJjaC1yZXN1bHQtdmlldy1pdGVtLm1vZGVsJztcbmltcG9ydCB7IFNvcnRQYXJhbWV0ZXJzIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL3NlYXJjaC9zb3J0aW5nL3NvcnQtcGFyYW1ldGVycyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2NjZFNvcnRTZWFyY2hSZXN1bHQnXG59KVxuZXhwb3J0IGNsYXNzIFNvcnRTZWFyY2hSZXN1bHRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgcHVibGljIHRyYW5zZm9ybShzZWFyY2hSZXN1bHRzOiBTZWFyY2hSZXN1bHRWaWV3SXRlbVtdLCBzb3J0UGFyYW1ldGVyczogU29ydFBhcmFtZXRlcnMpIHtcblxuICAgIGlmIChpc1VuZGVmaW5lZChzZWFyY2hSZXN1bHRzKSB8fCBpc1VuZGVmaW5lZChzb3J0UGFyYW1ldGVycykpIHtcbiAgICAgIHJldHVybiBzZWFyY2hSZXN1bHRzO1xuICAgIH1cbiAgICByZXR1cm4gc2VhcmNoUmVzdWx0cy5zb3J0KFxuICAgICAgKGEsIGIpID0+IHtcbiAgICAgICAgcmV0dXJuIHNvcnRQYXJhbWV0ZXJzLmNvbXBhcmF0b3IuY29tcGFyZShhLCBiKVxuICAgICAgICAgICAgICAgICAgKiAoc29ydFBhcmFtZXRlcnMuc29ydE9yZGVyID09PSBTb3J0T3JkZXIuREVTQ0VORElORyA/IDEgOiAtMSk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG59XG4iXX0=
@@ -2,18 +2,16 @@ import { Injectable, NgZone } from '@angular/core';
2
2
  import { EMPTY, Subject } from 'rxjs';
3
3
  import { AbstractAppConfig } from '../../../app.config';
4
4
  import { ActivityService } from './activity.service';
5
- import { PollingService } from './polling.service';
5
+ import { polling } from 'rx-polling-hmcts';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "./activity.service";
8
8
  import * as i2 from "../../../app.config";
9
- import * as i3 from "./polling.service";
10
9
  // @dynamic
11
10
  export class ActivityPollingService {
12
- constructor(activityService, ngZone, config, pollingService) {
11
+ constructor(activityService, ngZone, config) {
13
12
  this.activityService = activityService;
14
13
  this.ngZone = ngZone;
15
14
  this.config = config;
16
- this.pollingService = pollingService;
17
15
  this.pendingRequests = new Map();
18
16
  this.pollConfig = {
19
17
  interval: config.getActivityNexPollRequestMs(),
@@ -71,13 +69,12 @@ export class ActivityPollingService {
71
69
  if (!this.isEnabled) {
72
70
  return EMPTY;
73
71
  }
74
- return this.pollingService.polling(this.activityService.getActivities(...caseIds), this.pollConfig);
72
+ return polling(this.activityService.getActivities(...caseIds), this.pollConfig);
75
73
  }
76
74
  postViewActivity(caseId) {
77
75
  return this.postActivity(caseId, ActivityService.ACTIVITY_VIEW);
78
76
  }
79
77
  postEditActivity(caseId) {
80
- console.log('this.postActivity(caseId, ActivityService.ACTIVITY_EDIT);', this.postActivity(caseId, ActivityService.ACTIVITY_EDIT));
81
78
  return this.postActivity(caseId, ActivityService.ACTIVITY_EDIT);
82
79
  }
83
80
  performBatchRequest(requests) {
@@ -106,12 +103,12 @@ export class ActivityPollingService {
106
103
  ...this.pollConfig,
107
104
  interval: 5000 // inline with CCD Backend
108
105
  };
109
- return this.pollingService.polling(this.activityService.postActivity(caseId, activityType), pollingConfig);
106
+ return polling(this.activityService.postActivity(caseId, activityType), pollingConfig);
110
107
  }
111
108
  }
112
- ActivityPollingService.ɵfac = function ActivityPollingService_Factory(t) { return new (t || ActivityPollingService)(i0.ɵɵinject(i1.ActivityService), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i2.AbstractAppConfig), i0.ɵɵinject(i3.PollingService)); };
109
+ ActivityPollingService.ɵfac = function ActivityPollingService_Factory(t) { return new (t || ActivityPollingService)(i0.ɵɵinject(i1.ActivityService), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i2.AbstractAppConfig)); };
113
110
  ActivityPollingService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ActivityPollingService, factory: ActivityPollingService.ɵfac });
114
111
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActivityPollingService, [{
115
112
  type: Injectable
116
- }], function () { return [{ type: i1.ActivityService }, { type: i0.NgZone }, { type: i2.AbstractAppConfig }, { type: i3.PollingService }]; }, null); })();
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkucG9sbGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9hY3Rpdml0eS9hY3Rpdml0eS5wb2xsaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLEtBQUssRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBR25ELFdBQVc7QUFFWCxNQUFNLE9BQU8sc0JBQXNCO0lBUWpDLFlBQTZCLGVBQWdDLEVBQW1CLE1BQWMsRUFBbUIsTUFBeUIsRUFBVSxjQUE4QjtRQUFySixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBbUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFtQixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVBqSyxvQkFBZSxHQUFHLElBQUksR0FBRyxFQUE2QixDQUFDO1FBUXRFLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDaEIsUUFBUSxFQUFFLE1BQU0sQ0FBQywyQkFBMkIsRUFBRTtZQUM5QyxRQUFRLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixFQUFFO1lBQ25DLGlCQUFpQixFQUFFLElBQUk7U0FDeEIsQ0FBQztRQUNGLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUMsaUNBQWlDLEVBQUUsQ0FBQztRQUN6RSxJQUFJLENBQUMsbUJBQW1CLEdBQUcs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QUM7U0FDZDtRQUVELE1BQU0sYUFBYSxHQUFHO1lBQ3BCLEdBQUcsSUFBSSxDQUFDLFVBQVU7WUFDbEIsUUFBUSxFQUFFLElBQUksQ0FBQywwQkFBMEI7U0FDMUMsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzdHLENBQUM7OzRGQXhIVSxzQkFBc0I7NEVBQXRCLHNCQUFzQixXQUF0QixzQkFBc0I7dUZBQXRCLHNCQUFzQjtjQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFTVBUWSwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgQWN0aXZpdHkgfSBmcm9tICcuLi8uLi9kb21haW4vYWN0aXZpdHkvYWN0aXZpdHkubW9kZWwnO1xuaW1wb3J0IHsgQWN0aXZpdHlTZXJ2aWNlIH0gZnJvbSAnLi9hY3Rpdml0eS5zZXJ2aWNlJztcbmltcG9ydCB7IFBvbGxpbmdTZXJ2aWNlIH0gZnJvbSAnLi9wb2xsaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgSU9wdGlvbnNBcHAgfSBmcm9tICcuLi8uLi9kb21haW4vcG9sbGluZyc7XG5cbi8vIEBkeW5hbWljXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlQb2xsaW5nU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGVuZGluZ1JlcXVlc3RzID0gbmV3IE1hcDxzdHJpbmcsIFN1YmplY3Q8QWN0aXZpdHk+PigpO1xuICBwcml2YXRlIGN1cnJlbnRUaW1lb3V0SGFuZGxlOiBhbnk7XG4gIHByaXZhdGUgcG9sbEFjdGl2aXRpZXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSByZWFkb25seSBwb2xsQ29uZmlnOiBJT3B0aW9uc0FwcDtcbiAgcHJpdmF0ZSByZWFkb25seSBiYXRjaENvbGxlY3Rpb25EZWxheU1zOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWF4UmVxdWVzdHNQZXJCYXRjaDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYWN0aXZpdHlTZXJ2aWNlOiBBY3Rpdml0eVNlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBBYnN0cmFjdEFwcENvbmZpZywgcHJpdmF0ZSBwb2xsaW5nU2VydmljZTogUG9sbGluZ1NlcnZpY2UpIHtcbiAgICB0aGlzLnBvbGxDb25maWcgPSB7XG4gICAgICBpbnRlcnZhbDogY29uZmlnLmdldEFjdGl2aXR5TmV4UG9sbFJlcXVlc3RNcygpLFxuICAgICAgYXR0ZW1wdHM6IGNvbmZpZy5nZXRBY3Rpdml0eVJldHJ5KCksXG4gICAgICBiYWNrZ3JvdW5kUG9sbGluZzogdHJ1ZVxuICAgIH07XG4gICAgdGhpcy5iYXRjaENvbGxlY3Rpb25EZWxheU1zID0gY29uZmlnLmdldEFjdGl2aXR5QmF0Y2hDb2xsZWN0aW9uRGVsYXlNcygpO1xuICAgIHRoaXMubWF4UmVxdWVzdHNQZXJCYXRjaCA9IGNvbmZpZy5nZXRBY3Rpdml0eU1heFJlcXVlc3RQZXJCYXRjaCgpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlTZXJ2aWNlLmlzRW5hYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBzdWJzY3JpYmVUb0FjdGl2aXR5KGNhc2VJZDogc3RyaW5nLCBkb25lOiAoYWN0aXZpdHk6IEFjdGl2aXR5KSA9PiB2b2lkKTogU3ViamVjdDxBY3Rpdml0eT4ge1xuICAgIGlmICghdGhpcy5pc0VuYWJsZWQpIHtcbiAgICAgIHJldHVybiBuZXcgU3ViamVjdDxBY3Rpdml0eT4oKTtcbiAgICB9XG5cbiAgICBsZXQgc3ViamVjdCA9IHRoaXMucGVuZGluZ1JlcXVlc3RzLmdldChjYXNlSWQpO1xuICAgIGlmIChzdWJqZWN0KSB7XG4gICAgICBzdWJqZWN0LnN1YnNjcmliZShkb25lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3ViamVjdCA9IG5ldyBTdWJqZWN0PEFjdGl2aXR5PigpO1xuICAgICAgc3ViamVjdC5zdWJzY3JpYmUoZG9uZSk7XG4gICAgICB0aGlzLnBlbmRpbmdSZXF1ZXN0cy5zZXQoY2FzZUlkLCBzdWJqZWN0KTtcbiAgICB9XG4gICAgaWYgKHRoaXMucGVuZGluZ1JlcXVlc3RzLnNpemUgPT09IDEpIHtcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50VGltZW91dEhhbmRsZSA9IHNldFRpbWVvdXQoXG4gICAgICAgICAgKCkgPT4gdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCd0aW1lb3V0OiBmbHVzaGluZyByZXF1ZXN0cycpXG4gICAgICAgICAgICB0aGlzLmZsdXNoUmVxdWVzdHMoKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0aGlzLmJhdGNoQ29sbGVjdGlvbkRlbGF5TXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGVuZGluZ1JlcXVlc3RzLnNpemUgPj0gdGhpcy5tYXhSZXF1ZXN0c1BlckJhdGNoKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZygnbWF4IHBlbmRpbmcgaGl0OiBmbHVzaGluZyByZXF1ZXN0cycpO1xuICAgICAgdGhpcy5mbHVzaFJlcXVlc3RzKCk7XG4gICAgfVxuICAgIHJldHVybiBzdWJqZWN0O1xuICB9XG5cbiAgcHVibGljIHN0b3BQb2xsaW5nKCkge1xuICAgIGlmICh0aGlzLnBvbGxBY3Rpdml0aWVzU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnBvbGxBY3Rpdml0aWVzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZsdXNoUmVxdWVzdHMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY3VycmVudFRpbWVvdXRIYW5kbGUpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmN1cnJlbnRUaW1lb3V0SGFuZGxlKTtcbiAgICAgIHRoaXMuY3VycmVudFRpbWVvdXRIYW5kbGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdHMgPSBuZXcgTWFwKHRoaXMucGVuZGluZ1JlcXVlc3RzKTtcbiAgICB0aGlzLnBlbmRpbmdSZXF1ZXN0cy5jbGVhcigpO1xuICAgIHRoaXMucGVyZm9ybUJhdGNoUmVxdWVzdChyZXF1ZXN0cyk7XG4gIH1cblxuICBwdWJsaWMgcG9sbEFjdGl2aXRpZXMoLi4uY2FzZUlkczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPEFjdGl2aXR5W10+IHtcbiAgICBpZiAoIXRoaXMuaXNFbmFibGVkKSB7XG4gICAgICByZXR1cm4gRU1QVFk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucG9sbGluZ1NlcnZpY2UucG9sbGluZyh0aGlzLmFjdGl2aXR5U2VydmljZS5nZXRBY3Rpdml0aWVzKC4uLmNhc2VJZHMpLCB0aGlzLnBvbGxDb25maWcpO1xuICB9XG5cbiAgcHVibGljIHBvc3RWaWV3QWN0aXZpdHkoY2FzZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFjdGl2aXR5W10+IHtcbiAgICByZXR1cm4gdGhpcy5wb3N0QWN0aXZpdHkoY2FzZUlkLCBBY3Rpdml0eVNlcnZpY2UuQUNUSVZJVFlfVklFVyk7XG4gIH1cblxuICBwdWJsaWMgcG9zdEVkaXRBY3Rpdml0eShjYXNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QWN0aXZpdHlbXT4ge1xuICAgIGNvbnNvbGUubG9nKCd0aGlzLnBvc3RBY3Rpdml0eShjYXNlSWQsIEFjdGl2aXR5U2VydmljZS5BQ1RJVklUWV9FRElUKTsnLCB0aGlzLnBvc3RBY3Rpdml0eShjYXNlSWQsIEFjdGl2aXR5U2VydmljZS5BQ1RJVklUWV9FRElUKSlcbiAgICByZXR1cm4gdGhpcy5wb3N0QWN0aXZpdHkoY2FzZUlkLCBBY3Rpdml0eVNlcnZpY2UuQUNUSVZJVFlfRURJVCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGVyZm9ybUJhdGNoUmVxdWVzdChyZXF1ZXN0czogTWFwPHN0cmluZywgU3ViamVjdDxBY3Rpdml0eT4+KTogdm9pZCB7XG4gICAgY29uc3QgY2FzZUlkcyA9IEFycmF5LmZyb20ocmVxdWVzdHMua2V5cygpKS5qb2luKCk7XG4gICAgLy8gY29uc29sZS5sb2coJ2lzc3VpbmcgYmF0Y2ggcmVxdWVzdCBmb3IgY2FzZXM6ICcgKyBjYXNlSWRzKTtcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhciggKCkgPT4ge1xuICAgICAgLy8gcnVuIHBvbGxpbmcgb3V0c2lkZSBhbmd1bGFyIHpvbmUgc28gaXQgZG9lcyBub3QgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgICB0aGlzLnBvbGxBY3Rpdml0aWVzU3Vic2NyaXB0aW9uID0gdGhpcy5wb2xsQWN0aXZpdGllcyhjYXNlSWRzKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIC8vIHByb2Nlc3MgYWN0aXZpdHkgaW5zaWRlIHpvbmUgc28gaXQgdHJpZ2dlcnMgY2hhbmdlIGRldGVjdGlvbiBmb3IgYWN0aXZpdHkuY29tcG9uZW50LnRzXG4gICAgICAgIChhY3Rpdml0aWVzOiBBY3Rpdml0eVtdKSA9PiB0aGlzLm5nWm9uZS5ydW4oICgpID0+IHtcbiAgICAgICAgICAgIGFjdGl2aXRpZXMuZm9yRWFjaCgoYWN0aXZpdHkpID0+IHtcbiAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ3B1c2hpbmcgYWN0aXZpdHk6ICcgKyBhY3Rpdml0eS5jYXNlSWQpO1xuICAgICAgICAgICAgICByZXF1ZXN0cy5nZXQoYWN0aXZpdHkuY2FzZUlkKS5uZXh0KGFjdGl2aXR5KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYGVycm9yOiAke2Vycn1gKTtcbiAgICAgICAgICAgIEFycmF5LmZyb20ocmVxdWVzdHMudmFsdWVzKCkpLmZvckVhY2goKHN1YmplY3QpID0+IHN1YmplY3QuZXJyb3IoZXJyKSk7XG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwb3N0QWN0aXZpdHkoY2FzZUlkOiBzdHJpbmcsIGFjdGl2aXR5VHlwZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxBY3Rpdml0eVtdPiB7XG4gICAgaWYgKCF0aGlzLmlzRW5hYmxlZCkge1xuICAgICAgcmV0dXJuIEVNUFRZO1xuICAgIH1cblxuICAgIGNvbnN0IHBvbGxpbmdDb25maWcgPSB7XG4gICAgICAuLi50aGlzLnBvbGxDb25maWcsXG4gICAgICBpbnRlcnZhbDogNTAwMCAvLyBpbmxpbmUgd2l0aCBDQ0QgQmFja2VuZFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5wb2xsaW5nU2VydmljZS5wb2xsaW5nKHRoaXMuYWN0aXZpdHlTZXJ2aWNlLnBvc3RBY3Rpdml0eShjYXNlSWQsIGFjdGl2aXR5VHlwZSksIHBvbGxpbmdDb25maWcpO1xuICB9XG59XG4iXX0=
113
+ }], function () { return [{ type: i1.ActivityService }, { type: i0.NgZone }, { type: i2.AbstractAppConfig }]; }, null); })();
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkucG9sbGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9hY3Rpdml0eS9hY3Rpdml0eS5wb2xsaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLEtBQUssRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFZLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFFckQsV0FBVztBQUVYLE1BQU0sT0FBTyxzQkFBc0I7SUFRakMsWUFBNkIsZUFBZ0MsRUFBbUIsTUFBYyxFQUFtQixNQUF5QjtRQUE3RyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBbUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFtQixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQVB6SCxvQkFBZSxHQUFHLElBQUksR0FBRyxFQUE2QixDQUFDO1FBUXRFLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDaEIsUUFBUSxFQUFFLE1BQU0sQ0FBQywyQkFBMkIsRUFBRTtZQUM5QyxRQUFRLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixFQUFFO1lBQ25DLGlCQUFpQixFQUFFLElBQUk7U0FDeEIsQ0FBQztRQUNGLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUMsaUNBQWlDLEVBQUUsQ0FBQztRQUN6RSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLDZCQUE2QixFQUFFLENBQUM7SUFDcEUsQ0FBQztJ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LFlBQVksQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7OzRGQXZIVSxzQkFBc0I7NEVBQXRCLHNCQUFzQixXQUF0QixzQkFBc0I7dUZBQXRCLHNCQUFzQjtjQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFTVBUWSwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgQWN0aXZpdHkgfSBmcm9tICcuLi8uLi9kb21haW4vYWN0aXZpdHkvYWN0aXZpdHkubW9kZWwnO1xuaW1wb3J0IHsgQWN0aXZpdHlTZXJ2aWNlIH0gZnJvbSAnLi9hY3Rpdml0eS5zZXJ2aWNlJztcbmltcG9ydCB7IHBvbGxpbmcsIElPcHRpb25zIH0gZnJvbSAncngtcG9sbGluZy1obWN0cyc7XG5cbi8vIEBkeW5hbWljXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlQb2xsaW5nU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGVuZGluZ1JlcXVlc3RzID0gbmV3IE1hcDxzdHJpbmcsIFN1YmplY3Q8QWN0aXZpdHk+PigpO1xuICBwcml2YXRlIGN1cnJlbnRUaW1lb3V0SGFuZGxlOiBhbnk7XG4gIHByaXZhdGUgcG9sbEFjdGl2aXRpZXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSByZWFkb25seSBwb2xsQ29uZmlnOiBJT3B0aW9ucztcbiAgcHJpdmF0ZSByZWFkb25seSBiYXRjaENvbGxlY3Rpb25EZWxheU1zOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWF4UmVxdWVzdHNQZXJCYXRjaDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYWN0aXZpdHlTZXJ2aWNlOiBBY3Rpdml0eVNlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBBYnN0cmFjdEFwcENvbmZpZykge1xuICAgIHRoaXMucG9sbENvbmZpZyA9IHtcbiAgICAgIGludGVydmFsOiBjb25maWcuZ2V0QWN0aXZpdHlOZXhQb2xsUmVxdWVzdE1zKCksXG4gICAgICBhdHRlbXB0czogY29uZmlnLmdldEFjdGl2aXR5UmV0cnkoKSxcbiAgICAgIGJhY2tncm91bmRQb2xsaW5nOiB0cnVlXG4gICAgfTtcbiAgICB0aGlzLmJhdGNoQ29sbGVjdGlvbkRlbGF5TXMgPSBjb25maWcuZ2V0QWN0aXZpdHlCYXRjaENvbGxlY3Rpb25EZWxheU1zKCk7XG4gICAgdGhpcy5tYXhSZXF1ZXN0c1BlckJhdGNoID0gY29uZmlnLmdldEFjdGl2aXR5TWF4UmVxdWVzdFBlckJhdGNoKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eVNlcnZpY2UuaXNFbmFibGVkO1xuICB9XG5cbiAgcHVibGljIHN1YnNjcmliZVRvQWN0aXZpdHkoY2FzZUlkOiBzdHJpbmcsIGRvbmU6IChhY3Rpdml0eTogQWN0aXZpdHkpID0+IHZvaWQpOiBTdWJqZWN0PEFjdGl2aXR5PiB7XG4gICAgaWYgKCF0aGlzLmlzRW5hYmxlZCkge1xuICAgICAgcmV0dXJuIG5ldyBTdWJqZWN0PEFjdGl2aXR5PigpO1xuICAgIH1cblxuICAgIGxldCBzdWJqZWN0ID0gdGhpcy5wZW5kaW5nUmVxdWVzdHMuZ2V0KGNhc2VJZCk7XG4gICAgaWYgKHN1YmplY3QpIHtcbiAgICAgIHN1YmplY3Quc3Vic2NyaWJlKGRvbmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8QWN0aXZpdHk+KCk7XG4gICAgICBzdWJqZWN0LnN1YnNjcmliZShkb25lKTtcbiAgICAgIHRoaXMucGVuZGluZ1JlcXVlc3RzLnNldChjYXNlSWQsIHN1YmplY3QpO1xuICAgIH1cbiAgICBpZiAodGhpcy5wZW5kaW5nUmVxdWVzdHMuc2l6ZSA9PT0gMSkge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRUaW1lb3V0SGFuZGxlID0gc2V0VGltZW91dChcbiAgICAgICAgICAoKSA9PiB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ3RpbWVvdXQ6IGZsdXNoaW5nIHJlcXVlc3RzJylcbiAgICAgICAgICAgIHRoaXMuZmx1c2hSZXF1ZXN0cygpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRoaXMuYmF0Y2hDb2xsZWN0aW9uRGVsYXlNcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wZW5kaW5nUmVxdWVzdHMuc2l6ZSA+PSB0aGlzLm1heFJlcXVlc3RzUGVyQmF0Y2gpIHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdtYXggcGVuZGluZyBoaXQ6IGZsdXNoaW5nIHJlcXVlc3RzJyk7XG4gICAgICB0aGlzLmZsdXNoUmVxdWVzdHMoKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1YmplY3Q7XG4gIH1cblxuICBwdWJsaWMgc3RvcFBvbGxpbmcoKSB7XG4gICAgaWYgKHRoaXMucG9sbEFjdGl2aXRpZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucG9sbEFjdGl2aXRpZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmx1c2hSZXF1ZXN0cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jdXJyZW50VGltZW91dEhhbmRsZSkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY3VycmVudFRpbWVvdXRIYW5kbGUpO1xuICAgICAgdGhpcy5jdXJyZW50VGltZW91dEhhbmRsZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0cyA9IG5ldyBNYXAodGhpcy5wZW5kaW5nUmVxdWVzdHMpO1xuICAgIHRoaXMucGVuZGluZ1JlcXVlc3RzLmNsZWFyKCk7XG4gICAgdGhpcy5wZXJmb3JtQmF0Y2hSZXF1ZXN0KHJlcXVlc3RzKTtcbiAgfVxuXG4gIHB1YmxpYyBwb2xsQWN0aXZpdGllcyguLi5jYXNlSWRzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8QWN0aXZpdHlbXT4ge1xuICAgIGlmICghdGhpcy5pc0VuYWJsZWQpIHtcbiAgICAgIHJldHVybiBFTVBUWTtcbiAgICB9XG5cbiAgICByZXR1cm4gcG9sbGluZyh0aGlzLmFjdGl2aXR5U2VydmljZS5nZXRBY3Rpdml0aWVzKC4uLmNhc2VJZHMpLCB0aGlzLnBvbGxDb25maWcpO1xuICB9XG5cbiAgcHVibGljIHBvc3RWaWV3QWN0aXZpdHkoY2FzZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFjdGl2aXR5W10+IHtcbiAgICByZXR1cm4gdGhpcy5wb3N0QWN0aXZpdHkoY2FzZUlkLCBBY3Rpdml0eVNlcnZpY2UuQUNUSVZJVFlfVklFVyk7XG4gIH1cblxuICBwdWJsaWMgcG9zdEVkaXRBY3Rpdml0eShjYXNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QWN0aXZpdHlbXT4ge1xuICAgIHJldHVybiB0aGlzLnBvc3RBY3Rpdml0eShjYXNlSWQsIEFjdGl2aXR5U2VydmljZS5BQ1RJVklUWV9FRElUKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwZXJmb3JtQmF0Y2hSZXF1ZXN0KHJlcXVlc3RzOiBNYXA8c3RyaW5nLCBTdWJqZWN0PEFjdGl2aXR5Pj4pOiB2b2lkIHtcbiAgICBjb25zdCBjYXNlSWRzID0gQXJyYXkuZnJvbShyZXF1ZXN0cy5rZXlzKCkpLmpvaW4oKTtcbiAgICAvLyBjb25zb2xlLmxvZygnaXNzdWluZyBiYXRjaCByZXF1ZXN0IGZvciBjYXNlczogJyArIGNhc2VJZHMpO1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCAoKSA9PiB7XG4gICAgICAvLyBydW4gcG9sbGluZyBvdXRzaWRlIGFuZ3VsYXIgem9uZSBzbyBpdCBkb2VzIG5vdCB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cbiAgICAgIHRoaXMucG9sbEFjdGl2aXRpZXNTdWJzY3JpcHRpb24gPSB0aGlzLnBvbGxBY3Rpdml0aWVzKGNhc2VJZHMpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgLy8gcHJvY2VzcyBhY3Rpdml0eSBpbnNpZGUgem9uZSBzbyBpdCB0cmlnZ2VycyBjaGFuZ2UgZGV0ZWN0aW9uIGZvciBhY3Rpdml0eS5jb21wb25lbnQudHNcbiAgICAgICAgKGFjdGl2aXRpZXM6IEFjdGl2aXR5W10pID0+IHRoaXMubmdab25lLnJ1biggKCkgPT4ge1xuICAgICAgICAgICAgYWN0aXZpdGllcy5mb3JFYWNoKChhY3Rpdml0eSkgPT4ge1xuICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygncHVzaGluZyBhY3Rpdml0eTogJyArIGFjdGl2aXR5LmNhc2VJZCk7XG4gICAgICAgICAgICAgIHJlcXVlc3RzLmdldChhY3Rpdml0eS5jYXNlSWQpLm5leHQoYWN0aXZpdHkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgZXJyb3I6ICR7ZXJyfWApO1xuICAgICAgICAgICAgQXJyYXkuZnJvbShyZXF1ZXN0cy52YWx1ZXMoKSkuZm9yRWFjaCgoc3ViamVjdCkgPT4gc3ViamVjdC5lcnJvcihlcnIpKTtcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHBvc3RBY3Rpdml0eShjYXNlSWQ6IHN0cmluZywgYWN0aXZpdHlUeXBlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFjdGl2aXR5W10+IHtcbiAgICBpZiAoIXRoaXMuaXNFbmFibGVkKSB7XG4gICAgICByZXR1cm4gRU1QVFk7XG4gICAgfVxuXG4gICAgY29uc3QgcG9sbGluZ0NvbmZpZyA9IHtcbiAgICAgIC4uLnRoaXMucG9sbENvbmZpZyxcbiAgICAgIGludGVydmFsOiA1MDAwIC8vIGlubGluZSB3aXRoIENDRCBCYWNrZW5kXG4gICAgfTtcblxuICAgIHJldHVybiBwb2xsaW5nKHRoaXMuYWN0aXZpdHlTZXJ2aWNlLnBvc3RBY3Rpdml0eShjYXNlSWQsIGFjdGl2aXR5VHlwZSksIHBvbGxpbmdDb25maWcpO1xuICB9XG59XG4iXX0=
@@ -1,4 +1,3 @@
1
1
  export * from './activity.service';
2
2
  export * from './activity.polling.service';
3
- export * from './polling.service';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2FjdGl2aXR5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpdml0eS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aXZpdHkucG9sbGluZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcG9sbGluZy5zZXJ2aWNlJztcbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2FjdGl2aXR5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWN0aXZpdHkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGl2aXR5LnBvbGxpbmcuc2VydmljZSc7XG4iXX0=
@@ -43,4 +43,4 @@ CaseFileViewService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: Case
43
43
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFileViewService, [{
44
44
  type: Injectable
45
45
  }], function () { return [{ type: i1.HttpService }, { type: i2.AbstractAppConfig }]; }, null); })();
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1maWxlLXZpZXcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvY2FzZS1maWxlLXZpZXcvY2FzZS1maWxlLXZpZXcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7OztBQUd0QyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQ21CLElBQWlCLEVBQ2pCLFNBQTRCO1FBRDVCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBbUI7SUFDM0MsQ0FBQztJQUVMOzs7OztPQUtHO0lBQ0kseUJBQXlCLENBQUMsT0FBZTtRQUM5QyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFFeEQsSUFBSSxHQUFHLEVBQUU7WUFDUCxHQUFHLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUVyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO1NBQzlDO1FBRUQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVNLHNCQUFzQixDQUFDLE9BQWUsRUFDZixXQUFtQixFQUNuQixhQUFxQixFQUNyQixVQUFrQjtRQUM5QyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFOUMsSUFBSSxHQUFHLEVBQUU7WUFDUCxHQUFHLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksR0FBRztnQkFDWCxZQUFZLEVBQUUsV0FBVztnQkFDekIsY0FBYyxFQUFFLGFBQWE7Z0JBQzdCLFdBQVcsRUFBRSxVQUFVO2FBQ3hCLENBQUM7WUFFRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztTQUNwRDtRQUVELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7O3NGQTFDVSxtQkFBbUI7eUVBQW5CLG1CQUFtQixXQUFuQixtQkFBbUI7dUZBQW5CLG1CQUFtQjtjQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFic3RyYWN0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vYXBwLmNvbmZpZyc7XG5pbXBvcnQgeyBDYXRlZ29yaWVzQW5kRG9jdW1lbnRzIH0gZnJvbSAnLi4vLi4vZG9tYWluL2Nhc2UtZmlsZS12aWV3JztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYXNlRmlsZVZpZXdTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWdcbiAgKSB7IH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBjYXRlZ29yaWVzIGFuZCBkb2N1bWVudHMgZm9yIGEgY2FzZS5cbiAgICpcbiAgICogQHBhcmFtIGNhc2VSZWYgMTYtZGlnaXQgQ2FzZSBSZWZlcmVuY2UgbnVtYmVyIG9mIHRoZSBjYXNlXG4gICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCBvZiB0aGUgYENhdGVnb3JpZXNBbmREb2N1bWVudHNgIGZvciB0aGUgY2FzZVxuICAgKi9cbiAgcHVibGljIGdldENhdGVnb3JpZXNBbmREb2N1bWVudHMoY2FzZVJlZjogc3RyaW5nKTogT2JzZXJ2YWJsZTxDYXRlZ29yaWVzQW5kRG9jdW1lbnRzPiB7XG4gICAgbGV0IHVybCA9IHRoaXMuYXBwQ29uZmlnLmdldENhdGVnb3JpZXNBbmREb2N1bWVudHNVcmwoKTtcblxuICAgIGlmICh1cmwpIHtcbiAgICAgIHVybCArPSBgLyR7Y2FzZVJlZn1gO1xuXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHtvYnNlcnZlOiAnYm9keSd9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2YobnVsbCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRG9jdW1lbnRDYXRlZ29yeShjYXNlUmVmOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VWZXJzaW9uOiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVBhdGg6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDYXRlZ29yaWVzQW5kRG9jdW1lbnRzPiB7XG4gICAgbGV0IHVybCA9IHRoaXMuYXBwQ29uZmlnLmdldERvY3VtZW50RGF0YVVybCgpO1xuXG4gICAgaWYgKHVybCkge1xuICAgICAgdXJsICs9IGAvJHtjYXNlUmVmfWA7XG4gICAgICBjb25zdCBib2R5ID0ge1xuICAgICAgICBjYXNlX3ZlcnNpb246IGNhc2VWZXJzaW9uLFxuICAgICAgICBhdHRyaWJ1dGVfcGF0aDogYXR0cmlidXRlUGF0aCxcbiAgICAgICAgY2F0ZWdvcnlfaWQ6IGNhdGVnb3J5SWRcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHVybCwgYm9keSwge29ic2VydmU6ICdib2R5J30pO1xuICAgIH1cblxuICAgIHJldHVybiBvZihudWxsKTtcbiAgfVxufVxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1maWxlLXZpZXcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvY2FzZS1maWxlLXZpZXcvY2FzZS1maWxlLXZpZXcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7OztBQUd0QyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQ21CLElBQWlCLEVBQ2pCLFNBQTRCO1FBRDVCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBbUI7SUFDM0MsQ0FBQztJQUVMOzs7OztPQUtHO0lBQ0kseUJBQXlCLENBQUMsT0FBZTtRQUM5QyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFFeEQsSUFBSSxHQUFHLEVBQUU7WUFDUCxHQUFHLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUVyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO1NBQzlDO1FBRUQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVNLHNCQUFzQixDQUFDLE9BQWUsRUFDZixXQUFtQixFQUNuQixhQUFxQixFQUNyQixVQUFrQjtRQUM5QyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFOUMsSUFBSSxHQUFHLEVBQUU7WUFDUCxHQUFHLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksR0FBRztnQkFDWCxZQUFZLEVBQUUsV0FBVztnQkFDekIsY0FBYyxFQUFFLGFBQWE7Z0JBQzdCLFdBQVcsRUFBRSxVQUFVO2FBQ3hCLENBQUM7WUFFRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztTQUNwRDtRQUVELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7O3NGQTFDVSxtQkFBbUI7eUVBQW5CLG1CQUFtQixXQUFuQixtQkFBbUI7dUZBQW5CLG1CQUFtQjtjQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFic3RyYWN0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vYXBwLmNvbmZpZyc7XG5pbXBvcnQgeyBjYXRlZ29yaWVzQW5kRG9jdW1lbnRzVGVzdERhdGEgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1maWxlLXZpZXcvdGVzdC1kYXRhL2NhdGVnb3JpZXMtYW5kLWRvY3VtZW50cy10ZXN0LWRhdGEnO1xuaW1wb3J0IHsgQ2F0ZWdvcmllc0FuZERvY3VtZW50cyB9IGZyb20gJy4uLy4uL2RvbWFpbi9jYXNlLWZpbGUtdmlldyc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4uL2h0dHAnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2FzZUZpbGVWaWV3U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBDb25maWc6IEFic3RyYWN0QXBwQ29uZmlnXG4gICkgeyB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgY2F0ZWdvcmllcyBhbmQgZG9jdW1lbnRzIGZvciBhIGNhc2UuXG4gICAqXG4gICAqIEBwYXJhbSBjYXNlUmVmIDE2LWRpZ2l0IENhc2UgUmVmZXJlbmNlIG51bWJlciBvZiB0aGUgY2FzZVxuICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgb2YgdGhlIGBDYXRlZ29yaWVzQW5kRG9jdW1lbnRzYCBmb3IgdGhlIGNhc2VcbiAgICovXG4gIHB1YmxpYyBnZXRDYXRlZ29yaWVzQW5kRG9jdW1lbnRzKGNhc2VSZWY6IHN0cmluZyk6IE9ic2VydmFibGU8Q2F0ZWdvcmllc0FuZERvY3VtZW50cz4ge1xuICAgIGxldCB1cmwgPSB0aGlzLmFwcENvbmZpZy5nZXRDYXRlZ29yaWVzQW5kRG9jdW1lbnRzVXJsKCk7XG5cbiAgICBpZiAodXJsKSB7XG4gICAgICB1cmwgKz0gYC8ke2Nhc2VSZWZ9YDtcblxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsLCB7b2JzZXJ2ZTogJ2JvZHknfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9mKG51bGwpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZURvY3VtZW50Q2F0ZWdvcnkoY2FzZVJlZjogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlVmVyc2lvbjogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVQYXRoOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q2F0ZWdvcmllc0FuZERvY3VtZW50cz4ge1xuICAgIGxldCB1cmwgPSB0aGlzLmFwcENvbmZpZy5nZXREb2N1bWVudERhdGFVcmwoKTtcblxuICAgIGlmICh1cmwpIHtcbiAgICAgIHVybCArPSBgLyR7Y2FzZVJlZn1gO1xuICAgICAgY29uc3QgYm9keSA9IHtcbiAgICAgICAgY2FzZV92ZXJzaW9uOiBjYXNlVmVyc2lvbixcbiAgICAgICAgYXR0cmlidXRlX3BhdGg6IGF0dHJpYnV0ZVBhdGgsXG4gICAgICAgIGNhdGVnb3J5X2lkOiBjYXRlZ29yeUlkXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh1cmwsIGJvZHksIHtvYnNlcnZlOiAnYm9keSd9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2YobnVsbCk7XG4gIH1cbn1cbiJdfQ==
@@ -163,7 +163,7 @@ export class FieldsPurger {
163
163
  * types, this recursive method is called until simple or "base" field types are reached. For `Document` field
164
164
  * types, its _sub-field_ `FormControl` values are set to null.
165
165
  *
166
- * @param FormGroup The `FormGroup` instance containing the `FormControl` for the specified field
166
+ * @param formGroup The `FormGroup` instance containing the `FormControl` for the specified field
167
167
  * @param field The `CaseField` whose value is to be deleted in the backend
168
168
  * @param parentField Reference to the parent `CaseField`. Used for checking specifically where a Complex field and
169
169
  * its sub-fields have `retain_hidden_value` set to `true`, but the field's parent has it set to `false` or undefined
@@ -290,4 +290,4 @@ FieldsPurger.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FieldsPurge
290
290
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FieldsPurger, [{
291
291
  type: Injectable
292
292
  }], function () { return [{ type: i1.FieldsUtils }]; }, null); })();
293
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLnB1cmdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvZmllbGRzL2ZpZWxkcy5wdXJnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0zQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFJaEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFN0MsV0FBVztBQUVYLE1BQU0sT0FBTyxZQUFZO0lBRXZCLFlBQTZCLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUksQ0FBQztJQUVuRCxpQkFBaUIsQ0FBQyxJQUFlLEVBQUUsTUFBYyxFQUFFLFlBQThCLEVBQUUsYUFBcUI7UUFDN0csSUFBSSxDQUFDLHFDQUFxQyxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFTyxvQ0FBb0MsQ0FBQyxJQUFlLEVBQUUsTUFBYyxFQUFFLFlBQThCO1FBQzFHLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEYsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDeEIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxFQUFFLGlCQUFpQixDQUFDLEVBQUU7Z0JBQ3BELE1BQU0sU0FBUyxHQUFHLElBQUksYUFBYSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDdkQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFO29CQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztpQkFDMUI7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHFDQUFxQyxDQUFDLGFBQXFCLEVBQ2pFLElBQWUsRUFDZixNQUFjLEVBQ2QsWUFBOEI7UUFDOUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sV0FBVyxHQUFlLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUgsV0FBVyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMzQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzFFLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsRUFBRTtnQkFDckQsTUFBTSxTQUFTLEdBQUcsSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUM5RCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFO29CQUM5RSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztpQkFDbEM7YUFDRjtZQUNELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sNEJBQTRCLENBQUMsS0FBZ0IsRUFBRSxJQUFTO1FBQzlELGlIQUFpSDtRQUNqSCx3REFBd0Q7UUFDeEQsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxvQkFBb0IsRUFBRTtZQUM3RSxnQkFBZ0I7WUFDaEIseURBQXlEO1lBQ3pELE1BQU0sSUFBSSxHQUFjLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFjLENBQUM7WUFDdEQsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsTUFBTSxVQUFVLEdBQWMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFjLENBQUM7Z0JBQ25FLElBQUksVUFBVSxFQUFFO29CQUNkLE1BQU0sbUJBQW1CLEdBQWdCLFVBQVUsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQWdCLENBQUM7b0JBQ3BHLElBQUksbUJBQW1CLEVBQUU7d0JBQ3ZCLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxDQUFDO3FCQUM5QjtpQkFDRjthQUNGO1lBQ0QsaUJBQWlCO1NBQ2xCO0lBQ0gsQ0FBQztJQUVPLFFBQVEsQ0FBQyxTQUF3QixFQUFFLFVBQWU7UUFDeEQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVPLGdDQUFnQyxDQUFDLFdBQXVCLEVBQUUsZUFBZ0M7UUFDaEcsT0FBTyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxVQUFzQixFQUFFLFVBQWU7UUFDbEUsT0FBTyxVQUFVLENBQUMsY0FBYyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVPLHFCQUFxQixDQUFDLFNBQW9CLEVBQUUsVUFBZTtRQUNqRSxPQUFPLFNBQVMsQ0FBQyxjQUFjLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVPLG1CQUFtQixDQUFDLGFBQXFCO1FBQy9DLDZFQUE2RTtRQUM3RSwyRUFBMkU7UUFDM0UsT0FBTyxhQUFhLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTyxVQUFVLENBQUMsSUFBZSxFQUFFLEtBQWdCO1FBQ2xEOzs7Ozs7OztXQVFHO1FBQ0gsSUFBSSxLQUFLLENBQUMsbUJBQW1CLEVBQUU7WUFDN0IsTUFBTSxTQUFTLEdBQWtCLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ3ZELDBHQUEwRztZQUMxRyw4R0FBOEc7WUFDOUcscUZBQXFGO1lBQ3JGLElBQUksU0FBUyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUN6RSxLQUFLLE1BQU0sZUFBZSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFO29CQUM3RCxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLGVBQWUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7d0JBQ3pHLENBQUMsZUFBZSxDQUFDLG1CQUFtQixFQUFFO3dCQUN0Qyx5R0FBeUc7d0JBQ3pHLDZDQUE2Qzt3QkFDN0MsTUFBTSxlQUFlLEdBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQWUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBYyxDQUFDO3dCQUN4RixJQUFJLGVBQWUsRUFBRTs0QkFDbkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQzt5QkFDekQ7cUJBQ0Y7aUJBQ0Y7YUFDRjtpQkFBTSxJQUFJLFNBQVMsS0FBSyxZQUFZLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEtBQUssU0FBUztnQkFDaEcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDbEUsMkdBQTJHO2dCQUMzRyxvR0FBb0c7Z0JBQ3BHLDBHQUEwRztnQkFFMUcsNEVBQTRFO2dCQUM1RSxNQUFNLGFBQWEsR0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBZSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFjLENBQUM7Z0JBRXRGLElBQUksYUFBYSxFQUFFO29CQUNqQix3Q0FBd0M7b0JBQ3hDLE1BQU0sa0JBQWtCLEdBQUcsYUFBYSxDQUFDLEtBQWMsQ0FBQztvQkFFeEQsb0dBQW9HO29CQUNwRywwRUFBMEU7b0JBQzFFLElBQUksa0JBQWtCLEVBQUU7d0JBQ3RCLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTs0QkFDbkcsMkRBQTJEOzRCQUMzRCxJQUFJLFlBQXVCLENBQUM7NEJBQzVCLEtBQUssTUFBTSxTQUFTLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUU7Z0NBQzdFLElBQUksU0FBUyxDQUFDLEVBQUUsS0FBSyxVQUFVLEVBQUU7b0NBQy9CLFlBQVksR0FBRyxTQUFTLENBQUM7b0NBQ3pCLE1BQU07aUNBQ1A7NkJBQ0Y7NEJBRUQsc0dBQXNHOzRCQUN0RyxpRkFBaUY7NEJBQ2pGLElBQUksWUFBWTtnQ0FDZCxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7b0NBQ2hHLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLEVBQUU7Z0NBQ3RDLE1BQU0sZUFBZSxHQUFjLGFBQWEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBYyxDQUFDO2dDQUNyRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDOzZCQUN0RDt3QkFDSCxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNMO2lCQUNGO2FBQ0Y7U0FDRjthQUFNO1lBQ0wseUJBQXlCO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzdEO0lBQ0gsQ0FBQztJQUVPLFNBQVMsQ0FBQyxJQUFlLEVBQUUsVUFBc0I7UUFDdkQsVUFBVSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMxQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLE9BQU8sQ0FBQyxJQUFTO1FBQ3ZCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU8sUUFBUSxDQUFDLElBQVM7UUFDeEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVEsQ0FBQztJQUN6QyxDQUFDO0lBRUQsZ0VBQWdFO0lBQ3hELFVBQVUsQ0FBQyxTQUFvQjtRQUNyQyxPQUFPLFNBQVMsQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLEtBQUssVUFBVSxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksZ0JBQWdCLENBQUMsU0FBb0IsRUFBRSxLQUFnQixFQUFFLFdBQXVCO1FBQ3JGLE1BQU0sU0FBUyxHQUFrQixLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztRQUN2RCxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU3QyxJQUFJLFlBQVksRUFBRTtZQUNoQixRQUFRLFNBQVMsRUFBRTtnQkFDakIsS0FBSyxTQUFTO29CQUNaOzs7Ozs7Ozs7O3VCQVVHO29CQUNILElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDOUMsS0FBSyxNQUFNLGVBQWUsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRTs0QkFDN0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxlQUFlLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2dDQUN6RyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLFNBQVM7b0NBQzVDLENBQUMsS0FBSyxDQUFDLG1CQUFtQjt3Q0FDeEIsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLG1CQUFtQixJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDO3dDQUMzRixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtnQ0FDZCxtR0FBbUc7Z0NBQ25HLGlCQUFpQjtnQ0FDakIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQXlCLEVBQUUsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDOzZCQUMxRTt5QkFDRjtxQkFDRjtvQkFDRCxNQUFNO2dCQUNSLEtBQUssWUFBWTtvQkFDZixzR0FBc0c7b0JBQ3RHLHdHQUF3RztvQkFDeEcsMkNBQTJDO29CQUMzQyxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUM7b0JBQ25FLElBQUksbUJBQW1CLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDM0Ysd0NBQXdDO3dCQUN4QyxNQUFNLGtCQUFrQixHQUFHLFlBQVksQ0FBQyxLQUFjLENBQUM7d0JBRXZELG9HQUFvRzt3QkFDcEcsMEVBQTBFO3dCQUMxRSxJQUFJLGtCQUFrQixFQUFFOzRCQUN0QixrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0NBQ25HLDJEQUEyRDtnQ0FDM0QsSUFBSSxZQUF1QixDQUFDO2dDQUM1QixLQUFLLE1BQU0sU0FBUyxJQUFJLG1CQUFtQixDQUFDLGNBQWMsRUFBRTtvQ0FDMUQsSUFBSSxTQUFTLENBQUMsRUFBRSxLQUFLLFVBQVUsRUFBRTt3Q0FDL0IsWUFBWSxHQUFHLFNBQVMsQ0FBQzt3Q0FDekIsTUFBTTtxQ0FDUDtpQ0FDRjtnQ0FFRCwwRUFBMEU7Z0NBQzFFLE1BQU0sZUFBZSxHQUFlLFlBQTBCLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQWMsQ0FBQztnQ0FDbkcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUMsQ0FBQzs0QkFDdkQsQ0FBQyxDQUFDLENBQUMsQ0FBQzt5QkFDTDt3QkFDRCxNQUFNO3FCQUNQO3lCQUFNLElBQUksbUJBQW1CLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRTt3QkFDbEQseUNBQXlDO3dCQUN6QyxNQUFNLG1CQUFtQixHQUFHLFlBQVksQ0FBQyxLQUFjLENBQUM7d0JBRXhELGtHQUFrRzt3QkFDbEcsc0dBQXNHO3dCQUN0Ryw0QkFBNEI7d0JBQzVCLElBQUksbUJBQW1CLEVBQUU7NEJBQ3ZCLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtnQ0FDcEcsMkZBQTJGO2dDQUMxRixZQUEwQixDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFDbEYsQ0FBQyxDQUFDLENBQUMsQ0FBQzt5QkFDTDt3QkFDRCxNQUFNO3FCQUNQO2dCQUNILHdHQUF3RztnQkFDeEcsb0NBQW9DO2dCQUNwQyx3REFBd0Q7Z0JBQ3hELEtBQUssaUJBQWlCO29CQUNwQix5RUFBeUU7b0JBQ3pFLDJHQUEyRztvQkFDM0csbUdBQW1HO29CQUNuRyxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUU7d0JBQ3RCLHVFQUF1RTt3QkFDdkUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7cUJBQ3RFO29CQUNELE1BQU07Z0JBQ1IsS0FBSyxVQUFVO29CQUNiLDRHQUE0RztvQkFDNUcsNkdBQTZHO29CQUM3RyxNQUFNLGtCQUFrQixHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7b0JBQzlDLEtBQUssTUFBTSxHQUFHLElBQUksa0JBQWtCLEVBQUU7d0JBQ3BDLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTs0QkFDekIsc0dBQXNHOzRCQUN0RyxrR0FBa0c7NEJBQ2xHLHVGQUF1Rjs0QkFDdkYsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQ3RDO3FCQUNGO29CQUNELE1BQU07Z0JBQ1IsNERBQTREO2dCQUM1RDtvQkFDRSxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQy9CO1NBQ0Y7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxvQkFBb0IsQ0FBQyxLQUFZO1FBQ3RDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN6QixPQUFPLE9BQU8sT0FBTyxLQUFLLFFBQVE7Z0JBQ2hDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN0RSxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzt3RUE5U1UsWUFBWTtrRUFBWixZQUFZLFdBQVosWUFBWTt1RkFBWixZQUFZO2NBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFdpemFyZFBhZ2VGaWVsZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvY2FzZS1lZGl0b3IvZG9tYWluL3dpemFyZC1wYWdlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IFdpemFyZFBhZ2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL2RvbWFpbi93aXphcmQtcGFnZS5tb2RlbCc7XG5pbXBvcnQgeyBXaXphcmQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL2RvbWFpbi93aXphcmQubW9kZWwnO1xuaW1wb3J0IHsgU2hvd0NvbmRpdGlvbiB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29uZGl0aW9uYWwtc2hvdy9kb21haW4vY29uZGl0aW9uYWwtc2hvdy5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlRXZlbnRUcmlnZ2VyIH0gZnJvbSAnLi4vLi4vZG9tYWluL2Nhc2Utdmlldy9jYXNlLWV2ZW50LXRyaWdnZXIubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vZmllbGQtdHlwZS1lbnVtLm1vZGVsJztcbmltcG9ydCB7IEZpZWxkc1V0aWxzIH0gZnJvbSAnLi9maWVsZHMudXRpbHMnO1xuXG4vLyBAZHluYW1pY1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZpZWxkc1B1cmdlciB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmaWVsZHNVdGlsczogRmllbGRzVXRpbHMpIHsgfVxuXG4gIHB1YmxpYyBjbGVhckhpZGRlbkZpZWxkcyhmb3JtOiBGb3JtR3JvdXAsIHdpemFyZDogV2l6YXJkLCBldmVudFRyaWdnZXI6IENhc2VFdmVudFRyaWdnZXIsIGN1cnJlbnRQYWdlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJIaWRkZW5GaWVsZEZvckZpZWxkU2hvd0NvbmRpdGlvbihjdXJyZW50UGFnZUlkLCBmb3JtLCB3aXphcmQsIGV2ZW50VHJpZ2dlcik7XG4gICAgdGhpcy5jbGVhckhpZGRlbkZpZWxkRm9yUGFnZVNob3dDb25kaXRpb24oZm9ybSwgd2l6YXJkLCBldmVudFRyaWdnZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckhpZGRlbkZpZWxkRm9yUGFnZVNob3dDb25kaXRpb24oZm9ybTogRm9ybUdyb3VwLCB3aXphcmQ6IFdpemFyZCwgZXZlbnRUcmlnZ2VyOiBDYXNlRXZlbnRUcmlnZ2VyKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudEV2ZW50U3RhdGUgPSB0aGlzLmZpZWxkc1V0aWxzLmdldEN1cnJlbnRFdmVudFN0YXRlKGV2ZW50VHJpZ2dlciwgZm9ybSk7XG4gICAgd2l6YXJkLnBhZ2VzLmZvckVhY2god3AgPT4ge1xuICAgICAgaWYgKHRoaXMuaGFzU2hvd0NvbmRpdGlvblBhZ2Uod3AsIGN1cnJlbnRFdmVudFN0YXRlKSkge1xuICAgICAgICBjb25zdCBjb25kaXRpb24gPSBuZXcgU2hvd0NvbmRpdGlvbih3cC5zaG93X2NvbmRpdGlvbik7XG4gICAgICAgIGlmICh0aGlzLmlzSGlkZGVuKGNvbmRpdGlvbiwgY3VycmVudEV2ZW50U3RhdGUpKSB7XG4gICAgICAgICAgdGhpcy5yZXNldFBhZ2UoZm9ybSwgd3ApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFySGlkZGVuRmllbGRGb3JGaWVsZFNob3dDb25kaXRpb24oY3VycmVudFBhZ2VJZDogc3RyaW5nLFxuICAgIGZvcm06IEZvcm1Hcm91cCxcbiAgICB3aXphcmQ6IFdpemFyZCxcbiAgICBldmVudFRyaWdnZXI6IENhc2VFdmVudFRyaWdnZXIpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtRmllbGRzID0gZm9ybS5nZXRSYXdWYWx1ZSgpO1xuICAgIGNvbnN0IGN1cnJlbnRQYWdlOiBXaXphcmRQYWdlID0gd2l6YXJkLmdldFBhZ2UoY3VycmVudFBhZ2VJZCwgdGhpcy5maWVsZHNVdGlscy5idWlsZENhblNob3dQcmVkaWNhdGUoZXZlbnRUcmlnZ2VyLCBmb3JtKSk7XG4gICAgY3VycmVudFBhZ2Uud2l6YXJkX3BhZ2VfZmllbGRzLmZvckVhY2god3BmID0+IHtcbiAgICAgIGNvbnN0IGNhc2VGaWVsZCA9IHRoaXMuZmluZENhc2VGaWVsZEJ5V2l6YXJkUGFnZUZpZWxkSWQoY3VycmVudFBhZ2UsIHdwZik7XG4gICAgICBpZiAodGhpcy5oYXNTaG93Q29uZGl0aW9uRmllbGQoY2FzZUZpZWxkLCBmb3JtRmllbGRzKSkge1xuICAgICAgICBjb25zdCBjb25kaXRpb24gPSBuZXcgU2hvd0NvbmRpdGlvbihjYXNlRmllbGQuc2hvd19jb25kaXRpb24pO1xuICAgICAgICBpZiAodGhpcy5pc0hpZGRlbihjb25kaXRpb24sIGZvcm1GaWVsZHMuZGF0YSkgJiYgISh0aGlzLmlzUmVhZG9ubHkoY2FzZUZpZWxkKSkpIHtcbiAgICAgICAgICB0aGlzLnJlc2V0RmllbGQoZm9ybSwgY2FzZUZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5yZXRhaW5IaWRkZW5WYWx1ZUJ5RmllbGRUeXBlKGNhc2VGaWVsZCwgZm9ybSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJldGFpbkhpZGRlblZhbHVlQnlGaWVsZFR5cGUoZmllbGQ6IENhc2VGaWVsZCwgZm9ybTogYW55KTogdm9pZCB7XG4gICAgLy8gc28gZmFyIG9ubHkgYXBwbGllcyB0byB0aGUgbmV3IGZpZWxkIHR5cGUgT3JnYW5pc2F0aW9uUG9saWN5IHdoaWNoIG5lZWRzIHRvIHJldGFpbiB0aGUgZGVmYXVsdCBjYXNlIHJvbGUgdmFsdWVcbiAgICAvLyBmb3Igb3RoZXIgY2FzZSBmaWVsZHMgdGhlcmUgc2hvdWxkIGJlIG5vIHNpZGUgZWZmZWN0c1xuICAgIGlmIChmaWVsZCAmJiBmaWVsZC5maWVsZF90eXBlICYmIGZpZWxkLmZpZWxkX3R5cGUuaWQgPT09ICdPcmdhbmlzYXRpb25Qb2xpY3knKSB7XG4gICAgICAvLyA8YnViYmxlX3dyYXA+XG4gICAgICAvLyBEb2luZyBzb21lIG51bGwgY2hlY2tpbmcgdG8gc3RvcCBpdCBmcm9tIGZhbGxpbmcgb3Zlci5cbiAgICAgIGNvbnN0IGRhdGE6IEZvcm1Hcm91cCA9IGZvcm0uZ2V0KCdkYXRhJykgYXMgRm9ybUdyb3VwO1xuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgY29uc3QgZmllbGRHcm91cDogRm9ybUdyb3VwID0gZGF0YS5jb250cm9sc1tmaWVsZC5pZF0gYXMgRm9ybUdyb3VwO1xuICAgICAgICBpZiAoZmllbGRHcm91cCkge1xuICAgICAgICAgIGNvbnN0IGNhc2VSb2xlRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sID0gZmllbGRHcm91cC5nZXQoJ09yZ1BvbGljeUNhc2VBc3NpZ25lZFJvbGUnKSBhcyBGb3JtQ29udHJvbDtcbiAgICAgICAgICBpZiAoY2FzZVJvbGVGb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgY2FzZVJvbGVGb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIDwvYnViYmxlX3dyYXA+XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc0hpZGRlbihjb25kaXRpb246IFNob3dDb25kaXRpb24sIGZvcm1GaWVsZHM6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhY29uZGl0aW9uLm1hdGNoKGZvcm1GaWVsZHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kQ2FzZUZpZWxkQnlXaXphcmRQYWdlRmllbGRJZChjdXJyZW50UGFnZTogV2l6YXJkUGFnZSwgd2l6YXJkUGFnZUZpZWxkOiBXaXphcmRQYWdlRmllbGQpOiBDYXNlRmllbGQge1xuICAgIHJldHVybiBjdXJyZW50UGFnZS5jYXNlX2ZpZWxkcy5maW5kKGNmID0+IGNmLmlkID09PSB3aXphcmRQYWdlRmllbGQuY2FzZV9maWVsZF9pZCk7XG4gIH1cblxuICBwcml2YXRlIGhhc1Nob3dDb25kaXRpb25QYWdlKHdpemFyZFBhZ2U6IFdpemFyZFBhZ2UsIGZvcm1GaWVsZHM6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB3aXphcmRQYWdlLnNob3dfY29uZGl0aW9uICYmIGZvcm1GaWVsZHNbdGhpcy5nZXRTaG93Q29uZGl0aW9uS2V5KHdpemFyZFBhZ2Uuc2hvd19jb25kaXRpb24pXTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzU2hvd0NvbmRpdGlvbkZpZWxkKGNhc2VGaWVsZDogQ2FzZUZpZWxkLCBmb3JtRmllbGRzOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gY2FzZUZpZWxkLnNob3dfY29uZGl0aW9uICYmIGZvcm1GaWVsZHMuZGF0YVt0aGlzLmdldFNob3dDb25kaXRpb25LZXkoY2FzZUZpZWxkLnNob3dfY29uZGl0aW9uKV07XG4gIH1cblxuICBwcml2YXRlIGdldFNob3dDb25kaXRpb25LZXkoc2hvd0NvbmRpdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBOZWVkIHRvIGFsbG93IGZvciBuZWdhdGVkIGNvbmRpdGlvbnMsIGkuZS4gIT0sIGFzIHdlbGwgYXMgcmVndWxhciBvbmVzICg9KVxuICAgIC8vIEFsc28gbmVlZCB0byBhbGxvdyBmb3IgY29uZGl0aW9ucyBzcGVjaWZpZWQgdXNpbmcgdGhlIFwiQ09OVEFJTlNcIiBrZXl3b3JkXG4gICAgcmV0dXJuIHNob3dDb25kaXRpb24uc3BsaXQoLyE9fD18Q09OVEFJTlMvKVswXTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRGaWVsZChmb3JtOiBGb3JtR3JvdXAsIGZpZWxkOiBDYXNlRmllbGQpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBJZiB0aGUgaGlkZGVuIGZpZWxkJ3MgdmFsdWUgaXMgdG8gYmUgcmV0YWluZWQsIGRvIG5vdGhpbmcgKGV4Y2VwdCBpZiBpdCBpcyBhIENvbXBsZXggdHlwZSBvciBjb2xsZWN0aW9uIG9mXG4gICAgICogQ29tcGxleCB0eXBlcykuIFRoaXMgaXMgYSBjaGFuZ2UgdG8gdGhlIHByZXZpb3VzIGJlaGF2aW91ciAod2hpY2ggdXNlZCB0byBjbGVhciB0aGUgZmllbGQgdmFsdWUgYnV0IHJlbW92ZSBpdFxuICAgICAqIGZyb20gc3VibWlzc2lvbiBhcyBhbiB1cGRhdGUgdG8gdGhlIGJhY2stZW5kKS4gVGhlIG5ldyBiZWhhdmlvdXIgaXMgdG8gbGVhdmUgdGhlIGZpZWxkIGFzIGlzLCBzbyBpZiB0aGUgZmllbGRcbiAgICAgKiBpcyBoaWRkZW4gYnV0IHRoZW4gdW4taGlkZGVuIGJlZm9yZSBmb3JtIHN1Ym1pc3Npb24sIGFueSBwcmV2aW91c2x5IGVudGVyZWQgdmFsdWUgaXMgcmV0YWluZWQuXG4gICAgICpcbiAgICAgKiBGb3IgQ29tcGxleCBmaWVsZCB0eXBlcywgYW4gYWRkaXRpb25hbCBjaGVjayBvZiBzdWItZmllbGRzIGlzIHJlcXVpcmVkLiBUaGUgc2FtZSBhcHBsaWVzIHRvIGEgY29sbGVjdGlvbiBvZlxuICAgICAqIENvbXBsZXggdHlwZXMuXG4gICAgICovXG4gICAgaWYgKGZpZWxkLnJldGFpbl9oaWRkZW5fdmFsdWUpIHtcbiAgICAgIGNvbnN0IGZpZWxkVHlwZTogRmllbGRUeXBlRW51bSA9IGZpZWxkLmZpZWxkX3R5cGUudHlwZTtcbiAgICAgIC8vIElmIHRoZSBmaWVsZCBpcyBhIENvbXBsZXggdHlwZSwgbG9vcCBvdmVyIGl0cyBzdWItZmllbGRzIGFuZCBjYWxsIGRlbGV0ZUZpZWxkVmFsdWUoKSBmb3IgYW55IHN1Yi1maWVsZHNcbiAgICAgIC8vIHdoZXJlIHJldGFpbl9oaWRkZW5fdmFsdWUgaXMgZmFsc2UsIE9SIGZvciBhbnkgQ29tcGxleCBzdWItZmllbGRzICpyZWdhcmRsZXNzIG9mIHRoZWlyIHJldGFpbl9oaWRkZW5fdmFsdWUqXG4gICAgICAvLyAoaW4gb3JkZXIgdG8gaW5zcGVjdCB0aGUgc3ViLWZpZWxkcyBvZiBhIENvbXBsZXggdHlwZSB3aXRoaW4gYW5vdGhlciBDb21wbGV4IHR5cGUpXG4gICAgICBpZiAoZmllbGRUeXBlID09PSAnQ29tcGxleCcgJiYgZmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3QgY29tcGxleFN1YkZpZWxkIG9mIGZpZWxkLmZpZWxkX3R5cGUuY29tcGxleF9maWVsZHMpIHtcbiAgICAgICAgICBpZiAoKGNvbXBsZXhTdWJGaWVsZC5maWVsZF90eXBlLnR5cGUgPT09ICdDb21wbGV4JyAmJiBjb21wbGV4U3ViRmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcy5sZW5ndGggPiAwKSB8fFxuICAgICAgICAgICAgIWNvbXBsZXhTdWJGaWVsZC5yZXRhaW5faGlkZGVuX3ZhbHVlKSB7XG4gICAgICAgICAgICAvLyBDaGVjayBmb3IgdGhlIGV4aXN0ZW5jZSBvZiB0aGUgcGFyZW50IEZvcm1Hcm91cCBjb3JyZXNwb25kaW5nIHRvIHRoZSBDb21wbGV4IGZpZWxkOyBpZiBpdCBleGlzdHMsIGNhbGxcbiAgICAgICAgICAgIC8vIGRlbGV0ZUZpZWxkVmFsdWUoKSB0byBkZWxldGUgdGhlIHN1Yi1maWVsZFxuICAgICAgICAgICAgY29uc3QgcGFyZW50Rm9ybUdyb3VwID0gKGZvcm0uZ2V0KCdkYXRhJykgYXMgRm9ybUdyb3VwKS5jb250cm9sc1tmaWVsZC5pZF0gYXMgRm9ybUdyb3VwO1xuICAgICAgICAgICAgaWYgKHBhcmVudEZvcm1Hcm91cCkge1xuICAgICAgICAgICAgICB0aGlzLmRlbGV0ZUZpZWxkVmFsdWUocGFyZW50Rm9ybUdyb3VwLCBjb21wbGV4U3ViRmllbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChmaWVsZFR5cGUgPT09ICdDb2xsZWN0aW9uJyAmJiBmaWVsZC5maWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZS50eXBlID09PSAnQ29tcGxleCcgJiZcbiAgICAgICAgZmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUuY29tcGxleF9maWVsZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAvLyBJZiB0aGUgZmllbGQgaXMgYSBjb2xsZWN0aW9uIG9mIENvbXBsZXggdHlwZXMsIGxvb3AgdGhyb3VnaCBlYWNoIG9uZSBhbmQgY2FsbCBkZWxldGVGaWVsZFZhbHVlKCkgZm9yIGFueVxuICAgICAgICAvLyBzdWItZmllbGRzIHdoZXJlIHJldGFpbl9oaWRkZW5fdmFsdWUgaXMgZmFsc2UsIE9SIGZvciBhbnkgQ29tcGxleCBzdWItZmllbGRzICpyZWdhcmRsZXNzIG9mIHRoZWlyXG4gICAgICAgIC8vIHJldGFpbl9oaWRkZW5fdmFsdWUqIChpbiBvcmRlciB0byBpbnNwZWN0IHRoZSBzdWItZmllbGRzIG9mIGEgQ29tcGxleCB0eXBlIHdpdGhpbiBhbm90aGVyIENvbXBsZXggdHlwZSlcblxuICAgICAgICAvLyBHZXQgdGhlIGFycmF5IG9mIGZpZWxkIGNvbnRyb2xzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIENvbXBsZXggZmllbGQgdmFsdWVzXG4gICAgICAgIGNvbnN0IGZpZWxkQ29udHJvbHMgPSAoZm9ybS5nZXQoJ2RhdGEnKSBhcyBGb3JtR3JvdXApLmNvbnRyb2xzW2ZpZWxkLmlkXSBhcyBGb3JtQXJyYXk7XG5cbiAgICAgICAgaWYgKGZpZWxkQ29udHJvbHMpIHtcbiAgICAgICAgICAvLyBHZXQgdGhlIGFycmF5IG9mIENvbXBsZXggZmllbGQgdmFsdWVzXG4gICAgICAgICAgY29uc3QgY29tcGxleEZpZWxkVmFsdWVzID0gZmllbGRDb250cm9scy52YWx1ZSBhcyBhbnlbXTtcblxuICAgICAgICAgIC8vIEZvciBlYWNoIENvbXBsZXggZmllbGQgdmFsdWUsIGdldCB0aGUgSUQgb2YgZWFjaCBzdWItZmllbGQgd2l0aGluIGl0IGFuZCB1c2UgYXMgYSBrZXkgdG8gZmluZCB0aGVcbiAgICAgICAgICAvLyBjb3JyZXNwb25kaW5nIHN1Yi1DYXNlRmllbGQgKHdoaWNoIGNvbnRhaW5zIHRoZSBmaWVsZCB0eXBlIGluZm9ybWF0aW9uKVxuICAgICAgICAgIGlmIChjb21wbGV4RmllbGRWYWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbXBsZXhGaWVsZFZhbHVlcy5mb3JFYWNoKChmaWVsZFZhbHVlLCBpbmRleCkgPT4gT2JqZWN0LmtleXMoZmllbGRWYWx1ZS52YWx1ZSkuZm9yRWFjaChzdWJGaWVsZElkID0+IHtcbiAgICAgICAgICAgICAgLy8gRmluZCB0aGUgc3ViLUNhc2VGaWVsZCBjb3JyZXNwb25kaW5nIHRvIHRoZSBzdWItZmllbGQgSURcbiAgICAgICAgICAgICAgbGV0IHN1YkNhc2VGaWVsZDogQ2FzZUZpZWxkO1xuICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNhc2VGaWVsZCBvZiBmaWVsZC5maWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcykge1xuICAgICAgICAgICAgICAgIGlmIChjYXNlRmllbGQuaWQgPT09IHN1YkZpZWxkSWQpIHtcbiAgICAgICAgICAgICAgICAgIHN1YkNhc2VGaWVsZCA9IGNhc2VGaWVsZDtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIC8vIFJlY3Vyc2l2ZWx5IGRlbGV0ZSB0aGUgc3ViLWZpZWxkIHZhbHVlIGlmIHJldGFpbl9oaWRkZW5fdmFsdWUgaXMgZmFsc2UsIE9SIGlmIHRoZSBzdWItZmllbGQgdHlwZSBpc1xuICAgICAgICAgICAgICAvLyBDb21wbGV4IGFuZCByZWdhcmRsZXNzIG9mIHJldGFpbl9oaWRkZW5fdmFsdWUsIHBhc3NpbmcgaW4gdGhlIHBhcmVudCBGb3JtR3JvdXBcbiAgICAgICAgICAgICAgaWYgKHN1YkNhc2VGaWVsZCAmJlxuICAgICAgICAgICAgICAgICgoc3ViQ2FzZUZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0NvbXBsZXgnICYmIHN1YkNhc2VGaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLmxlbmd0aCA+IDApIHx8XG4gICAgICAgICAgICAgICAgICAhc3ViQ2FzZUZpZWxkLnJldGFpbl9oaWRkZW5fdmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBmaWVsZENvbnRyb2xzLmF0KGluZGV4KS5nZXQoJ3ZhbHVlJykgYXMgRm9ybUdyb3VwO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlRmllbGRWYWx1ZShwYXJlbnRGb3JtR3JvdXAsIHN1YkNhc2VGaWVsZCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRGVsZXRlIHRoZSBmaWVsZCB2YWx1ZVxuICAgICAgdGhpcy5kZWxldGVGaWVsZFZhbHVlKGZvcm0uZ2V0KCdkYXRhJykgYXMgRm9ybUdyb3VwLCBmaWVsZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNldFBhZ2UoZm9ybTogRm9ybUdyb3VwLCB3aXphcmRQYWdlOiBXaXphcmRQYWdlKTogdm9pZCB7XG4gICAgd2l6YXJkUGFnZS53aXphcmRfcGFnZV9maWVsZHMuZm9yRWFjaCh3cGYgPT4ge1xuICAgICAgY29uc3QgY2FzZUZpZWxkID0gdGhpcy5maW5kQ2FzZUZpZWxkQnlXaXphcmRQYWdlRmllbGRJZCh3aXphcmRQYWdlLCB3cGYpO1xuICAgICAgdGhpcy5yZXNldEZpZWxkKGZvcm0sIGNhc2VGaWVsZCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFR5cGUoZWxlbTogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGVsZW0pLnNsaWNlKDgsIC0xKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNPYmplY3QoZWxlbTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VHlwZShlbGVtKSA9PT0gJ09iamVjdCc7XG4gIH1cblxuICAvLyBUT0RPOiBjYWxsIGlzUmVhZE9ubHkgb24gQ2FzZUZpZWxkcyBvbmNlIHdlIG1ha2UgaXQgYXZhaWxhYmxlXG4gIHByaXZhdGUgaXNSZWFkb25seShjYXNlRmllbGQ6IENhc2VGaWVsZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjYXNlRmllbGQuZGlzcGxheV9jb250ZXh0LnRvVXBwZXJDYXNlKCkgPT09ICdSRUFET05MWSc7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlcyBhIGZpZWxkIHZhbHVlIGJ5IHNldHRpbmcgdGhlIHZhbHVlIG9mIHRoZSBjb3JyZXNwb25kaW5nIHtAbGluayBGb3JtQ29udHJvbH0gdG8gbnVsbCAob3IgYW4gZW1wdHkgYXJyYXlcbiAgICogaWYgdGhlIGZpZWxkIHR5cGUgaXMgYENvbGxlY3Rpb25gKSwgZXhjZXB0IHdoZW4gdGhlIGZpZWxkIHR5cGUgaXMgYENvbXBsZXhgIG9yIGBEb2N1bWVudGAuIEZvciBgQ29tcGxleGAgZmllbGRcbiAgICogdHlwZXMsIHRoaXMgcmVjdXJzaXZlIG1ldGhvZCBpcyBjYWxsZWQgdW50aWwgc2ltcGxlIG9yIFwiYmFzZVwiIGZpZWxkIHR5cGVzIGFyZSByZWFjaGVkLiBGb3IgYERvY3VtZW50YCBmaWVsZFxuICAgKiB0eXBlcywgaXRzIF9zdWItZmllbGRfIGBGb3JtQ29udHJvbGAgdmFsdWVzIGFyZSBzZXQgdG8gbnVsbC5cbiAgICpcbiAgICogQHBhcmFtIEZvcm1Hcm91cCBUaGUgYEZvcm1Hcm91cGAgaW5zdGFuY2UgY29udGFpbmluZyB0aGUgYEZvcm1Db250cm9sYCBmb3IgdGhlIHNwZWNpZmllZCBmaWVsZFxuICAgKiBAcGFyYW0gZmllbGQgVGhlIGBDYXNlRmllbGRgIHdob3NlIHZhbHVlIGlzIHRvIGJlIGRlbGV0ZWQgaW4gdGhlIGJhY2tlbmRcbiAgICogQHBhcmFtIHBhcmVudEZpZWxkIFJlZmVyZW5jZSB0byB0aGUgcGFyZW50IGBDYXNlRmllbGRgLiBVc2VkIGZvciBjaGVja2luZyBzcGVjaWZpY2FsbHkgd2hlcmUgYSBDb21wbGV4IGZpZWxkIGFuZFxuICAgKiBpdHMgc3ViLWZpZWxkcyBoYXZlIGByZXRhaW5faGlkZGVuX3ZhbHVlYCBzZXQgdG8gYHRydWVgLCBidXQgdGhlIGZpZWxkJ3MgcGFyZW50IGhhcyBpdCBzZXQgdG8gYGZhbHNlYCBvciB1bmRlZmluZWRcbiAgICovXG4gIHB1YmxpYyBkZWxldGVGaWVsZFZhbHVlKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBmaWVsZDogQ2FzZUZpZWxkLCBwYXJlbnRGaWVsZD86IENhc2VGaWVsZCk6IHZvaWQge1xuICAgIGNvbnN0IGZpZWxkVHlwZTogRmllbGRUeXBlRW51bSA9IGZpZWxkLmZpZWxkX3R5cGUudHlwZTtcbiAgICBjb25zdCBmaWVsZENvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkLmlkKTtcblxuICAgIGlmIChmaWVsZENvbnRyb2wpIHtcbiAgICAgIHN3aXRjaCAoZmllbGRUeXBlKSB7XG4gICAgICAgIGNhc2UgJ0NvbXBsZXgnOlxuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIElmIHRoZSBmaWVsZCBpcyBhIENvbXBsZXggdHlwZSwgbG9vcCBvdmVyIGl0cyBzdWItZmllbGRzIGFuZCBjYWxsIGRlbGV0ZUZpZWxkVmFsdWUoKSBmb3I6XG4gICAgICAgICAgICpcbiAgICAgICAgICAgKiAqIEFueSBzdWItZmllbGRzIHdoZXJlIHJldGFpbl9oaWRkZW5fdmFsdWUgaXMgZmFsc2UvdW5kZWZpbmVkLCBpZiB0aGUgcGFyZW50IGZpZWxkIGhhc1xuICAgICAgICAgICAqIHJldGFpbl9oaWRkZW5fdmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAqICogQUxMIHN1Yi1maWVsZHMgaWYgdGhlIHBhcmVudCBmaWVsZCBoYXMgcmV0YWluX2hpZGRlbl92YWx1ZSA9IHRydWUgQlVUIGl0cyBfb3duXyBwYXJlbnQgaGFzXG4gICAgICAgICAgICogcmV0YWluX2hpZGRlbl92YWx1ZSA9IGZhbHNlL3VuZGVmaW5lZCAodGh1cyBvdmVycmlkaW5nIGFueXRoaW5nIGVsc2UpO1xuICAgICAgICAgICAqICogQUxMIHN1Yi1maWVsZHMgaWYgdGhlIHBhcmVudCBmaWVsZCBoYXMgcmV0YWluX2hpZGRlbl92YWx1ZSA9IGZhbHNlL3VuZGVmaW5lZDtcbiAgICAgICAgICAgKiAqIEFueSBDb21wbGV4IHN1Yi1maWVsZHMgKnJlZ2FyZGxlc3Mgb2YgdGhlaXIgcmV0YWluX2hpZGRlbl92YWx1ZSogKGluIG9yZGVyIHRvIGluc3BlY3QgdGhlIHN1Yi1maWVsZHNcbiAgICAgICAgICAgKiBvZiBhIENvbXBsZXggdHlwZSB3aXRoaW4gYW5vdGhlciBDb21wbGV4IHR5cGUpXG4gICAgICAgICAgICovXG4gICAgICAgICAgaWYgKGZpZWxkLmZpZWxkX3R5cGUuY29tcGxleF9maWVsZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBjb21wbGV4U3ViRmllbGQgb2YgZmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcykge1xuICAgICAgICAgICAgICBpZiAoKGNvbXBsZXhTdWJGaWVsZC5maWVsZF90eXBlLnR5cGUgPT09ICdDb21wbGV4JyAmJiBjb21wbGV4U3ViRmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcy5sZW5ndGggPiAwKSB8fFxuICAgICAgICAgICAgICAgIChjb21wbGV4U3ViRmllbGQuZmllbGRfdHlwZS50eXBlICE9PSAnQ29tcGxleCcgJiZcbiAgICAgICAgICAgICAgICAgIChmaWVsZC5yZXRhaW5faGlkZGVuX3ZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8gIWNvbXBsZXhTdWJGaWVsZC5yZXRhaW5faGlkZGVuX3ZhbHVlIHx8IChwYXJlbnRGaWVsZCAmJiAhcGFyZW50RmllbGQucmV0YWluX2hpZGRlbl92YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgOiB0cnVlKSkpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGUgZmllbGRDb250cm9sIGlzIGNhc3QgdG8gYSBGb3JtR3JvdXAgYmVjYXVzZSBhIENvbXBsZXggZmllbGQgdHlwZSB1c2VzIHRoaXMgYXMgaXRzIHVuZGVybHlpbmdcbiAgICAgICAgICAgICAgICAvLyBpbXBsZW1lbnRhdGlvblxuICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlRmllbGRWYWx1ZShmaWVsZENvbnRyb2wgYXMgRm9ybUdyb3VwLCBjb21wbGV4U3ViRmllbGQsIGZpZWxkKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnQ29sbGVjdGlvbic6XG4gICAgICAgICAgLy8gSWYgaXQgaXMgYSBjb2xsZWN0aW9uIG9mIENvbXBsZXggdHlwZXMsIGxvb3AgdGhyb3VnaCBlYWNoIG9uZTsgZWxzZSBmYWxsIHRocm91Z2ggdG8gYmUgaGFuZGxlZCBhcyBhXG4gICAgICAgICAgLy8gY29sbGVjdGlvbiBvZiBzaW1wbGUgdHlwZXMgKGluIHRoZSBzYW1lIHdheSBhcyBNdWx0aVNlbGVjdExpc3QpLCB1bmxlc3MgaXQncyBhIGNvbGxlY3Rpb24gb2YgRG9jdW1lbnRcbiAgICAgICAgICAvLyB0eXBlcywgd2hpY2ggcmVxdWlyZXMgZGlmZmVyZW50IGhhbmRsaW5nXG4gICAgICAgICAgY29uc3QgY29sbGVjdGlvbkZpZWxkVHlwZSA9IGZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlO1xuICAgICAgICAgIGlmIChjb2xsZWN0aW9uRmllbGRUeXBlLnR5cGUgPT09ICdDb21wbGV4JyAmJiBjb2xsZWN0aW9uRmllbGRUeXBlLmNvbXBsZXhfZmllbGRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIC8vIEdldCB0aGUgYXJyYXkgb2YgQ29tcGxleCBmaWVsZCB2YWx1ZXNcbiAgICAgICAgICAgIGNvbnN0IGNvbXBsZXhGaWVsZFZhbHVlcyA9IGZpZWxkQ29udHJvbC52YWx1ZSBhcyBhbnlbXTtcblxuICAgICAgICAgICAgLy8gRm9yIGVhY2ggQ29tcGxleCBmaWVsZCB2YWx1ZSwgZ2V0IHRoZSBJRCBvZiBlYWNoIHN1Yi1maWVsZCB3aXRoaW4gaXQgYW5kIHVzZSBhcyBhIGtleSB0byBmaW5kIHRoZVxuICAgICAgICAgICAgLy8gY29ycmVzcG9uZGluZyBzdWItQ2FzZUZpZWxkICh3aGljaCBjb250YWlucyB0aGUgZmllbGQgdHlwZSBpbmZvcm1hdGlvbilcbiAgICAgICAgICAgIGlmIChjb21wbGV4RmllbGRWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgY29tcGxleEZpZWxkVmFsdWVzLmZvckVhY2goKGZpZWxkVmFsdWUsIGluZGV4KSA9PiBPYmplY3Qua2V5cyhmaWVsZFZhbHVlLnZhbHVlKS5mb3JFYWNoKHN1YkZpZWxkSWQgPT4ge1xuICAgICAgICAgICAgICAgIC8vIEZpbmQgdGhlIHN1Yi1DYXNlRmllbGQgY29ycmVzcG9uZGluZyB0byB0aGUgc3ViLWZpZWxkIElEXG4gICAgICAgICAgICAgICAgbGV0IHN1YkNhc2VGaWVsZDogQ2FzZUZpZWxkO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY2FzZUZpZWxkIG9mIGNvbGxlY3Rpb25GaWVsZFR5cGUuY29tcGxleF9maWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChjYXNlRmllbGQuaWQgPT09IHN1YkZpZWxkSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgc3ViQ2FzZUZpZWxkID0gY2FzZUZpZWxkO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBSZWN1cnNpdmVseSBkZWxldGUgdGhlIHN1Yi1maWVsZCB2YWx1ZSwgcGFzc2luZyBpbiB0aGUgcGFyZW50IEZvcm1Hcm91cFxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwID0gKGZpZWxkQ29udHJvbCBhcyBGb3JtQXJyYXkpLmF0KGluZGV4KS5nZXQoJ3ZhbHVlJykgYXMgRm9ybUdyb3VwO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlRmllbGRWYWx1ZShwYXJlbnRGb3JtR3JvdXAsIHN1YkNhc2VGaWVsZCk7XG4gICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH0gZWxzZSBpZiAoY29sbGVjdGlvbkZpZWxkVHlwZS50eXBlID09PSAnRG9jdW1lbnQnKSB7XG4gICAgICAgICAgICAvLyBHZXQgdGhlIGFycmF5IG9mIERvY3VtZW50IGZpZWxkIHZhbHVlc1xuICAgICAgICAgICAgY29uc3QgZG9jdW1lbnRGaWVsZFZhbHVlcyA9IGZpZWxkQ29udHJvbC52YWx1ZSBhcyBhbnlbXTtcblxuICAgICAgICAgICAgLy8gRm9yIGVhY2ggRG9jdW1lbnQgZmllbGQgdmFsdWUsIHNldCBhbGwgaXRzIHByb3BlcnR5IHZhbHVlcyB0byBudWxsICh0aGlzIGlzIG5vdCBhY2NlcHRlZCBieSB0aGVcbiAgICAgICAgICAgIC8vIGJhY2stZW5kIGJ1dCB3aWxsIGJlIGhhbmRsZWQgYnkgc2FuaXRpc2VPYmplY3QoKSBpbiBGb3JtVmFsdWVTZXJ2aWNlIGJlZm9yZSBzZW5kaW5nIC0gc2VlIGJlbG93IGZvclxuICAgICAgICAgICAgLy8gdGhlIHNpbmdsZSBEb2N1bWVudCBjYXNlKVxuICAgICAgICAgICAgaWYgKGRvY3VtZW50RmllbGRWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgZG9jdW1lbnRGaWVsZFZhbHVlcy5mb3JFYWNoKChmaWVsZFZhbHVlLCBpbmRleCkgPT4gT2JqZWN0LmtleXMoZmllbGRWYWx1ZS52YWx1ZSkuZm9yRWFjaChzdWJGaWVsZElkID0+IHtcbiAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoZSBGb3JtQ29udHJvbCBmb3IgdGhlIHN1Yi1maWVsZCBhbmQgc2V0IGl0cyB2YWx1ZSB0byBudWxsXG4gICAgICAgICAgICAgICAgKGZpZWxkQ29udHJvbCBhcyBGb3JtQXJyYXkpLmF0KGluZGV4KS5nZXQoYHZhbHVlLiR7c3ViRmllbGRJZH1gKS5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAvLyBPbWl0dGVkIFwiYnJlYWtcIiBpcyBpbnRlbnRpb25hbCBiZWNhdXNlIGEgY29sbGVjdGlvbiBzaG91bGQgYmUgaGFuZGxlZCBhcyBwZXIgTXVsdGlTZWxlY3RMaXN0IGlmIGl0IGlzXG4gICAgICAgIC8vIG5vdCBhIGNvbGxlY3Rpb24gb2YgQ29tcGxleCB0eXBlc1xuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLXN3aXRjaC1jYXNlLWZhbGwtdGhyb3VnaFxuICAgICAgICBjYXNlICdNdWx0aVNlbGVjdExpc3QnOlxuICAgICAgICAgIC8vIEZpZWxkIGNvbnRyb2wgc2hvdWxkIGJlIGEgRm9ybUFycmF5LCBzbyBtYXAgZWFjaCBvZiBpdHMgdmFsdWVzIHRvIG51bGxcbiAgICAgICAgICAvLyBOT1RFOiBUaGUgRm9ybUFycmF5IGNhbm5vdCBqdXN0IGJlIHNldCB0byBhbiBlbXB0eSBhcnJheSBiZWNhdXNlIEFuZ3VsYXIgY2hlY2tzIHRoYXQgYWxsIGV4aXN0aW5nIHZhbHVlc1xuICAgICAgICAgIC8vIG9mIGEgRm9ybUFycmF5IGFyZSBwcmVzZW50OyBzZXR0aW5nIHRoZSBjb250cm9sJ3MgdmFsdWUgdG8gYW4gZW1wdHkgYXJyYXkgY2F1c2VzIGEgcnVudGltZSBlcnJvclxuICAgICAgICAgIGlmIChmaWVsZENvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgIC8vIE5lZWQgdG8gYWxsb3cgZm9yIGZpZWxkIHZhbHVlcyB0aGF0IGFyZSBvYmplY3RzLCBub3QganVzdCBwcmltaXRpdmVzXG4gICAgICAgICAgICBmaWVsZENvbnRyb2wuc2V0VmFsdWUodGhpcy5tYXBBcnJheVZhbHVlc1RvTnVsbChmaWVsZENvbnRyb2wudmFsdWUpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0RvY3VtZW50JzpcbiAgICAgICAgICAvLyBOT1RFOiBUaGUgZmllbGQgY29udHJvbCAoYSBGb3JtR3JvdXAgaW4gdGhpcyBjYXNlKSBjYW5ub3QganVzdCBiZSBzZXQgdG8gbnVsbCBiZWNhdXNlIEFuZ3VsYXIgY2hlY2tzIHRoYXRcbiAgICAgICAgICAvLyBhbGwgZXhpc3RpbmcgdmFsdWVzIG9mIGEgRm9ybUdyb3VwIGFyZSBwcmVzZW50OyBzZXR0aW5nIHRoZSBjb250cm9sJ3MgdmFsdWUgdG8gbnVsbCBjYXVzZXMgYSBydW50aW1lIGVycm9yXG4gICAgICAgICAgY29uc3QgZG9jdW1lbnRGaWVsZFZhbHVlID0gZmllbGRDb250cm9sLnZhbHVlO1xuICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGRvY3VtZW50RmllbGRWYWx1ZSkge1xuICAgICAgICAgICAgaWYgKGZpZWxkQ29udHJvbC5nZXQoa2V5KSkge1xuICAgICAgICAgICAgICAvLyBUaGUgYmFjay1lbmQgZG9lc24ndCBhY2NlcHQgbnVsbCBhcyBhIHZhbGlkIHZhbHVlIGZvciBhbnkgb2YgdGhlIERvY3VtZW50IGZpZWxkIHR5cGUgcHJvcGVydGllcyBidXRcbiAgICAgICAgICAgICAgLy8gdGhpcyBpcyBoYW5kbGVkIGJ5IHNhbml0aXNlT2JqZWN0KCkgaW4gRm9ybVZhbHVlU2VydmljZSwgcmV0dXJuaW5nIGEgbnVsbCBvYmplY3QgZm9yIHRoZSBlbnRpcmVcbiAgICAgICAgICAgICAgLy8gRG9jdW1lbnQgZmllbGQsIGlmIGFueSBvZiBpdHMgcHJvcGVydGllcyBpcyBudWxsIC0gd2hpY2ggaXMgYWNjZXB0ZWQgYnkgdGhlIGJhY2stZW5kXG4gICAgICAgICAgICAgIGZpZWxkQ29udHJvbC5nZXQoa2V5KS5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIC8vIE5vdGU6IHRoZSBkZWZhdWx0IGNhc2UgYXBwbGllcyB0byBEeW5hbWljTGlzdCBmaWVsZHMsIHRvb1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGZpZWxkQ29udHJvbC5zZXRWYWx1ZShudWxsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWFwcyBhbGwgdmFsdWVzIG9mIGFuIGFycmF5IHRvIGBudWxsYCwgcmV0YWluaW5nIGtleXMgZm9yIGFueSB2YWx1ZXMgdGhhdCBhcmUgb2JqZWN0cy4gRm9yIGV4YW1wbGUsXG4gICAqIGBbeyBpZDogJzAnLCB2YWx1ZTogJ1Rlc3QnIH0sICdUZXN0J11gIHdvdWxkIGJlY29tZSBgW3sgaWQ6IG51bGwsIHZhbHVlOiBudWxsIH0sIG51bGxdYC5cbiAgICogQHBhcmFtIGFycmF5IFRoZSBhcnJheSBvZiB2YWx1ZXMgdG8gbWFwXG4gICAqIEByZXR1cm5zIEEgbmV3IGFycmF5IHdpdGggdGhlIG1hcHBlZCB2YWx1ZXNcbiAgICovXG4gIHB1YmxpYyBtYXBBcnJheVZhbHVlc1RvTnVsbChhcnJheTogYW55W10pOiBhbnlbXSB7XG4gICAgcmV0dXJuIGFycmF5Lm1hcChlbGVtZW50ID0+IHtcbiAgICAgIHJldHVybiB0eXBlb2YgZWxlbWVudCA9PT0gJ29iamVjdCdcbiAgICAgICAgPyBPYmplY3QuYXNzaWduKHt9LCAuLi5PYmplY3Qua2V5cyhlbGVtZW50KS5tYXAoayA9PiAoeyBba106IG51bGwgfSkpKVxuICAgICAgICA6IG51bGw7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
293
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLnB1cmdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvZmllbGRzL2ZpZWxkcy5wdXJnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0zQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFJaEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFN0MsV0FBVztBQUVYLE1BQU0sT0FBTyxZQUFZO0lBRXZCLFlBQTZCLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUksQ0FBQztJQUVuRCxpQkFBaUIsQ0FBQyxJQUFlLEVBQUUsTUFBYyxFQUFFLFlBQThCLEVBQUUsYUFBcUI7UUFDN0csSUFBSSxDQUFDLHFDQUFxQyxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFTyxvQ0FBb0MsQ0FBQyxJQUFlLEVBQUUsTUFBYyxFQUFFLFlBQThCO1FBQzFHLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEYsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDeEIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxFQUFFLGlCQUFpQixDQUFDLEVBQUU7Z0JBQ3BELE1BQU0sU0FBUyxHQUFHLElBQUksYUFBYSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FB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QUksQ0FBQyxDQUFDO2FBQy9CO1NBQ0Y7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxvQkFBb0IsQ0FBQyxLQUFZO1FBQ3RDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN6QixPQUFPLE9BQU8sT0FBTyxLQUFLLFFBQVE7Z0JBQ2hDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN0RSxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzt3RUE5U1UsWUFBWTtrRUFBWixZQUFZLFdBQVosWUFBWTt1RkFBWixZQUFZO2NBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFdpemFyZFBhZ2VGaWVsZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvY2FzZS1lZGl0b3IvZG9tYWluL3dpemFyZC1wYWdlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IFdpemFyZFBhZ2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL2RvbWFpbi93aXphcmQtcGFnZS5tb2RlbCc7XG5pbXBvcnQgeyBXaXphcmQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL2RvbWFpbi93aXphcmQubW9kZWwnO1xuaW1wb3J0IHsgU2hvd0NvbmRpdGlvbiB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29uZGl0aW9uYWwtc2hvdy9kb21haW4vY29uZGl0aW9uYWwtc2hvdy5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlRXZlbnRUcmlnZ2VyIH0gZnJvbSAnLi4vLi4vZG9tYWluL2Nhc2Utdmlldy9jYXNlLWV2ZW50LXRyaWdnZXIubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vZmllbGQtdHlwZS1lbnVtLm1vZGVsJztcbmltcG9ydCB7IEZpZWxkc1V0aWxzIH0gZnJvbSAnLi9maWVsZHMudXRpbHMnO1xuXG4vLyBAZHluYW1pY1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZpZWxkc1B1cmdlciB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmaWVsZHNVdGlsczogRmllbGRzVXRpbHMpIHsgfVxuXG4gIHB1YmxpYyBjbGVhckhpZGRlbkZpZWxkcyhmb3JtOiBGb3JtR3JvdXAsIHdpemFyZDogV2l6YXJkLCBldmVudFRyaWdnZXI6IENhc2VFdmVudFRyaWdnZXIsIGN1cnJlbnRQYWdlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJIaWRkZW5GaWVsZEZvckZpZWxkU2hvd0NvbmRpdGlvbihjdXJyZW50UGFnZUlkLCBmb3JtLCB3aXphcmQsIGV2ZW50VHJpZ2dlcik7XG4gICAgdGhpcy5jbGVhckhpZGRlbkZpZWxkRm9yUGFnZVNob3dDb25kaXRpb24oZm9ybSwgd2l6YXJkLCBldmVudFRyaWdnZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckhpZGRlbkZpZWxkRm9yUGFnZVNob3dDb25kaXRpb24oZm9ybTogRm9ybUdyb3VwLCB3aXphcmQ6IFdpemFyZCwgZXZlbnRUcmlnZ2VyOiBDYXNlRXZlbnRUcmlnZ2VyKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudEV2ZW50U3RhdGUgPSB0aGlzLmZpZWxkc1V0aWxzLmdldEN1cnJlbnRFdmVudFN0YXRlKGV2ZW50VHJpZ2dlciwgZm9ybSk7XG4gICAgd2l6YXJkLnBhZ2VzLmZvckVhY2god3AgPT4ge1xuICAgICAgaWYgKHRoaXMuaGFzU2hvd0NvbmRpdGlvblBhZ2Uod3AsIGN1cnJlbnRFdmVudFN0YXRlKSkge1xuICAgICAgICBjb25zdCBjb25kaXRpb24gPSBuZXcgU2hvd0NvbmRpdGlvbih3cC5zaG93X2NvbmRpdGlvbik7XG4gICAgICAgIGlmICh0aGlzLmlzSGlkZGVuKGNvbmRpdGlvbiwgY3VycmVudEV2ZW50U3RhdGUpKSB7XG4gICAgICAgICAgdGhpcy5yZXNldFBhZ2UoZm9ybSwgd3ApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFySGlkZGVuRmllbGRGb3JGaWVsZFNob3dDb25kaXRpb24oY3VycmVudFBhZ2VJZDogc3RyaW5nLFxuICAgIGZvcm06IEZvcm1Hcm91cCxcbiAgICB3aXphcmQ6IFdpemFyZCxcbiAgICBldmVudFRyaWdnZXI6IENhc2VFdmVudFRyaWdnZXIpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtRmllbGRzID0gZm9ybS5nZXRSYXdWYWx1ZSgpO1xuICAgIGNvbnN0IGN1cnJlbnRQYWdlOiBXaXphcmRQYWdlID0gd2l6YXJkLmdldFBhZ2UoY3VycmVudFBhZ2VJZCwgdGhpcy5maWVsZHNVdGlscy5idWlsZENhblNob3dQcmVkaWNhdGUoZXZlbnRUcmlnZ2VyLCBmb3JtKSk7XG4gICAgY3VycmVudFBhZ2Uud2l6YXJkX3BhZ2VfZmllbGRzLmZvckVhY2god3BmID0+IHtcbiAgICAgIGNvbnN0IGNhc2VGaWVsZCA9IHRoaXMuZmluZENhc2VGaWVsZEJ5V2l6YXJkUGFnZUZpZWxkSWQoY3VycmVudFBhZ2UsIHdwZik7XG4gICAgICBpZiAodGhpcy5oYXNTaG93Q29uZGl0aW9uRmllbGQoY2FzZUZpZWxkLCBmb3JtRmllbGRzKSkge1xuICAgICAgICBjb25zdCBjb25kaXRpb24gPSBuZXcgU2hvd0NvbmRpdGlvbihjYXNlRmllbGQuc2hvd19jb25kaXRpb24pO1xuICAgICAgICBpZiAodGhpcy5pc0hpZGRlbihjb25kaXRpb24sIGZvcm1GaWVsZHMuZGF0YSkgJiYgISh0aGlzLmlzUmVhZG9ubHkoY2FzZUZpZWxkKSkpIHtcbiAgICAgICAgICB0aGlzLnJlc2V0RmllbGQoZm9ybSwgY2FzZUZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5yZXRhaW5IaWRkZW5WYWx1ZUJ5RmllbGRUeXBlKGNhc2VGaWVsZCwgZm9ybSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJldGFpbkhpZGRlblZhbHVlQnlGaWVsZFR5cGUoZmllbGQ6IENhc2VGaWVsZCwgZm9ybTogYW55KTogdm9pZCB7XG4gICAgLy8gc28gZmFyIG9ubHkgYXBwbGllcyB0byB0aGUgbmV3IGZpZWxkIHR5cGUgT3JnYW5pc2F0aW9uUG9saWN5IHdoaWNoIG5lZWRzIHRvIHJldGFpbiB0aGUgZGVmYXVsdCBjYXNlIHJvbGUgdmFsdWVcbiAgICAvLyBmb3Igb3RoZXIgY2FzZSBmaWVsZHMgdGhlcmUgc2hvdWxkIGJlIG5vIHNpZGUgZWZmZWN0c1xuICAgIGlmIChmaWVsZCAmJiBmaWVsZC5maWVsZF90eXBlICYmIGZpZWxkLmZpZWxkX3R5cGUuaWQgPT09ICdPcmdhbmlzYXRpb25Qb2xpY3knKSB7XG4gICAgICAvLyA8YnViYmxlX3dyYXA+XG4gICAgICAvLyBEb2luZyBzb21lIG51bGwgY2hlY2tpbmcgdG8gc3RvcCBpdCBmcm9tIGZhbGxpbmcgb3Zlci5cbiAgICAgIGNvbnN0IGRhdGE6IEZvcm1Hcm91cCA9IGZvcm0uZ2V0KCdkYXRhJykgYXMgRm9ybUdyb3VwO1xuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgY29uc3QgZmllbGRHcm91cDogRm9ybUdyb3VwID0gZGF0YS5jb250cm9sc1tmaWVsZC5pZF0gYXMgRm9ybUdyb3VwO1xuICAgICAgICBpZiAoZmllbGRHcm91cCkge1xuICAgICAgICAgIGNvbnN0IGNhc2VSb2xlRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sID0gZmllbGRHcm91cC5nZXQoJ09yZ1BvbGljeUNhc2VBc3NpZ25lZFJvbGUnKSBhcyBGb3JtQ29udHJvbDtcbiAgICAgICAgICBpZiAoY2FzZVJvbGVGb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgY2FzZVJvbGVGb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIDwvYnViYmxlX3dyYXA+XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc0hpZGRlbihjb25kaXRpb246IFNob3dDb25kaXRpb24sIGZvcm1GaWVsZHM6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhY29uZGl0aW9uLm1hdGNoKGZvcm1GaWVsZHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kQ2FzZUZpZWxkQnlXaXphcmRQYWdlRmllbGRJZChjdXJyZW50UGFnZTogV2l6YXJkUGFnZSwgd2l6YXJkUGFnZUZpZWxkOiBXaXphcmRQYWdlRmllbGQpOiBDYXNlRmllbGQge1xuICAgIHJldHVybiBjdXJyZW50UGFnZS5jYXNlX2ZpZWxkcy5maW5kKGNmID0+IGNmLmlkID09PSB3aXphcmRQYWdlRmllbGQuY2FzZV9maWVsZF9pZCk7XG4gIH1cblxuICBwcml2YXRlIGhhc1Nob3dDb25kaXRpb25QYWdlKHdpemFyZFBhZ2U6IFdpemFyZFBhZ2UsIGZvcm1GaWVsZHM6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB3aXphcmRQYWdlLnNob3dfY29uZGl0aW9uICYmIGZvcm1GaWVsZHNbdGhpcy5nZXRTaG93Q29uZGl0aW9uS2V5KHdpemFyZFBhZ2Uuc2hvd19jb25kaXRpb24pXTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzU2hvd0NvbmRpdGlvbkZpZWxkKGNhc2VGaWVsZDogQ2FzZUZpZWxkLCBmb3JtRmllbGRzOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gY2FzZUZpZWxkLnNob3dfY29uZGl0aW9uICYmIGZvcm1GaWVsZHMuZGF0YVt0aGlzLmdldFNob3dDb25kaXRpb25LZXkoY2FzZUZpZWxkLnNob3dfY29uZGl0aW9uKV07XG4gIH1cblxuICBwcml2YXRlIGdldFNob3dDb25kaXRpb25LZXkoc2hvd0NvbmRpdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBOZWVkIHRvIGFsbG93IGZvciBuZWdhdGVkIGNvbmRpdGlvbnMsIGkuZS4gIT0sIGFzIHdlbGwgYXMgcmVndWxhciBvbmVzICg9KVxuICAgIC8vIEFsc28gbmVlZCB0byBhbGxvdyBmb3IgY29uZGl0aW9ucyBzcGVjaWZpZWQgdXNpbmcgdGhlIFwiQ09OVEFJTlNcIiBrZXl3b3JkXG4gICAgcmV0dXJuIHNob3dDb25kaXRpb24uc3BsaXQoLyE9fD18Q09OVEFJTlMvKVswXTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRGaWVsZChmb3JtOiBGb3JtR3JvdXAsIGZpZWxkOiBDYXNlRmllbGQpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBJZiB0aGUgaGlkZGVuIGZpZWxkJ3MgdmFsdWUgaXMgdG8gYmUgcmV0YWluZWQsIGRvIG5vdGhpbmcgKGV4Y2VwdCBpZiBpdCBpcyBhIENvbXBsZXggdHlwZSBvciBjb2xsZWN0aW9uIG9mXG4gICAgICogQ29tcGxleCB0eXBlcykuIFRoaXMgaXMgYSBjaGFuZ2UgdG8gdGhlIHByZXZpb3VzIGJlaGF2aW91ciAod2hpY2ggdXNlZCB0byBjbGVhciB0aGUgZmllbGQgdmFsdWUgYnV0IHJlbW92ZSBpdFxuICAgICAqIGZyb20gc3VibWlzc2lvbiBhcyBhbiB1cGRhdGUgdG8gdGhlIGJhY2stZW5kKS4gVGhlIG5ldyBiZWhhdmlvdXIgaXMgdG8gbGVhdmUgdGhlIGZpZWxkIGFzIGlzLCBzbyBpZiB0aGUgZmllbGRcbiAgICAgKiBpcyBoaWRkZW4gYnV0IHRoZW4gdW4taGlkZGVuIGJlZm9yZSBmb3JtIHN1Ym1pc3Npb24sIGFueSBwcmV2aW91c2x5IGVudGVyZWQgdmFsdWUgaXMgcmV0YWluZWQuXG4gICAgICpcbiAgICAgKiBGb3IgQ29tcGxleCBmaWVsZCB0eXBlcywgYW4gYWRkaXRpb25hbCBjaGVjayBvZiBzdWItZmllbGRzIGlzIHJlcXVpcmVkLiBUaGUgc2FtZSBhcHBsaWVzIHRvIGEgY29sbGVjdGlvbiBvZlxuICAgICAqIENvbXBsZXggdHlwZXMuXG4gICAgICovXG4gICAgaWYgKGZpZWxkLnJldGFpbl9oaWRkZW5fdmFsdWUpIHtcbiAgICAgIGNvbnN0IGZpZWxkVHlwZTogRmllbGRUeXBlRW51bSA9IGZpZWxkLmZpZWxkX3R5cGUudHlwZTtcbiAgICAgIC8vIElmIHRoZSBmaWVsZCBpcyBhIENvbXBsZXggdHlwZSwgbG9vcCBvdmVyIGl0cyBzdWItZmllbGRzIGFuZCBjYWxsIGRlbGV0ZUZpZWxkVmFsdWUoKSBmb3IgYW55IHN1Yi1maWVsZHNcbiAgICAgIC8vIHdoZXJlIHJldGFpbl9oaWRkZW5fdmFsdWUgaXMgZmFsc2UsIE9SIGZvciBhbnkgQ29tcGxleCBzdWItZmllbGRzICpyZWdhcmRsZXNzIG9mIHRoZWlyIHJldGFpbl9oaWRkZW5fdmFsdWUqXG4gICAgICAvLyAoaW4gb3JkZXIgdG8gaW5zcGVjdCB0aGUgc3ViLWZpZWxkcyBvZiBhIENvbXBsZXggdHlwZSB3aXRoaW4gYW5vdGhlciBDb21wbGV4IHR5cGUpXG4gICAgICBpZiAoZmllbGRUeXBlID09PSAnQ29tcGxleCcgJiYgZmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3QgY29tcGxleFN1YkZpZWxkIG9mIGZpZWxkLmZpZWxkX3R5cGUuY29tcGxleF9maWVsZHMpIHtcbiAgICAgICAgICBpZiAoKGNvbXBsZXhTdWJGaWVsZC5maWVsZF90eXBlLnR5cGUgPT09ICdDb21wbGV4JyAmJiBjb21wbGV4U3ViRmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcy5sZW5ndGggPiAwKSB8fFxuICAgICAgICAgICAgIWNvbXBsZXhTdWJGaWVsZC5yZXRhaW5faGlkZGVuX3ZhbHVlKSB7XG4gICAgICAgICAgICAvLyBDaGVjayBmb3IgdGhlIGV4aXN0ZW5jZSBvZiB0aGUgcGFyZW50IEZvcm1Hcm91cCBjb3JyZXNwb25kaW5nIHRvIHRoZSBDb21wbGV4IGZpZWxkOyBpZiBpdCBleGlzdHMsIGNhbGxcbiAgICAgICAgICAgIC8vIGRlbGV0ZUZpZWxkVmFsdWUoKSB0byBkZWxldGUgdGhlIHN1Yi1maWVsZFxuICAgICAgICAgICAgY29uc3QgcGFyZW50Rm9ybUdyb3VwID0gKGZvcm0uZ2V0KCdkYXRhJykgYXMgRm9ybUdyb3VwKS5jb250cm9sc1tmaWVsZC5pZF0gYXMgRm9ybUdyb3VwO1xuICAgICAgICAgICAgaWYgKHBhcmVudEZvcm1Hcm91cCkge1xuICAgICAgICAgICAgICB0aGlzLmRlbGV0ZUZpZWxkVmFsdWUocGFyZW50Rm9ybUdyb3VwLCBjb21wbGV4U3ViRmllbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChmaWVsZFR5cGUgPT09ICdDb2xsZWN0aW9uJyAmJiBmaWVsZC5maWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZS50eXBlID09PSAnQ29tcGxleCcgJiZcbiAgICAgICAgZmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUuY29tcGxleF9maWVsZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAvLyBJZiB0aGUgZmllbGQgaXMgYSBjb2xsZWN0aW9uIG9mIENvbXBsZXggdHlwZXMsIGxvb3AgdGhyb3VnaCBlYWNoIG9uZSBhbmQgY2FsbCBkZWxldGVGaWVsZFZhbHVlKCkgZm9yIGFueVxuICAgICAgICAvLyBzdWItZmllbGRzIHdoZXJlIHJldGFpbl9oaWRkZW5fdmFsdWUgaXMgZmFsc2UsIE9SIGZvciBhbnkgQ29tcGxleCBzdWItZmllbGRzICpyZWdhcmRsZXNzIG9mIHRoZWlyXG4gICAgICAgIC8vIHJldGFpbl9oaWRkZW5fdmFsdWUqIChpbiBvcmRlciB0byBpbnNwZWN0IHRoZSBzdWItZmllbGRzIG9mIGEgQ29tcGxleCB0eXBlIHdpdGhpbiBhbm90aGVyIENvbXBsZXggdHlwZSlcblxuICAgICAgICAvLyBHZXQgdGhlIGFycmF5IG9mIGZpZWxkIGNvbnRyb2xzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIENvbXBsZXggZmllbGQgdmFsdWVzXG4gICAgICAgIGNvbnN0IGZpZWxkQ29udHJvbHMgPSAoZm9ybS5nZXQoJ2RhdGEnKSBhcyBGb3JtR3JvdXApLmNvbnRyb2xzW2ZpZWxkLmlkXSBhcyBGb3JtQXJyYXk7XG5cbiAgICAgICAgaWYgKGZpZWxkQ29udHJvbHMpIHtcbiAgICAgICAgICAvLyBHZXQgdGhlIGFycmF5IG9mIENvbXBsZXggZmllbGQgdmFsdWVzXG4gICAgICAgICAgY29uc3QgY29tcGxleEZpZWxkVmFsdWVzID0gZmllbGRDb250cm9scy52YWx1ZSBhcyBhbnlbXTtcblxuICAgICAgICAgIC8vIEZvciBlYWNoIENvbXBsZXggZmllbGQgdmFsdWUsIGdldCB0aGUgSUQgb2YgZWFjaCBzdWItZmllbGQgd2l0aGluIGl0IGFuZCB1c2UgYXMgYSBrZXkgdG8gZmluZCB0aGVcbiAgICAgICAgICAvLyBjb3JyZXNwb25kaW5nIHN1Yi1DYXNlRmllbGQgKHdoaWNoIGNvbnRhaW5zIHRoZSBmaWVsZCB0eXBlIGluZm9ybWF0aW9uKVxuICAgICAgICAgIGlmIChjb21wbGV4RmllbGRWYWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbXBsZXhGaWVsZFZhbHVlcy5mb3JFYWNoKChmaWVsZFZhbHVlLCBpbmRleCkgPT4gT2JqZWN0LmtleXMoZmllbGRWYWx1ZS52YWx1ZSkuZm9yRWFjaChzdWJGaWVsZElkID0+IHtcbiAgICAgICAgICAgICAgLy8gRmluZCB0aGUgc3ViLUNhc2VGaWVsZCBjb3JyZXNwb25kaW5nIHRvIHRoZSBzdWItZmllbGQgSURcbiAgICAgICAgICAgICAgbGV0IHN1YkNhc2VGaWVsZDogQ2FzZUZpZWxkO1xuICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNhc2VGaWVsZCBvZiBmaWVsZC5maWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcykge1xuICAgICAgICAgICAgICAgIGlmIChjYXNlRmllbGQuaWQgPT09IHN1YkZpZWxkSWQpIHtcbiAgICAgICAgICAgICAgICAgIHN1YkNhc2VGaWVsZCA9IGNhc2VGaWVsZDtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIC8vIFJlY3Vyc2l2ZWx5IGRlbGV0ZSB0aGUgc3ViLWZpZWxkIHZhbHVlIGlmIHJldGFpbl9oaWRkZW5fdmFsdWUgaXMgZmFsc2UsIE9SIGlmIHRoZSBzdWItZmllbGQgdHlwZSBpc1xuICAgICAgICAgICAgICAvLyBDb21wbGV4IGFuZCByZWdhcmRsZXNzIG9mIHJldGFpbl9oaWRkZW5fdmFsdWUsIHBhc3NpbmcgaW4gdGhlIHBhcmVudCBGb3JtR3JvdXBcbiAgICAgICAgICAgICAgaWYgKHN1YkNhc2VGaWVsZCAmJlxuICAgICAgICAgICAgICAgICgoc3ViQ2FzZUZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0NvbXBsZXgnICYmIHN1YkNhc2VGaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLmxlbmd0aCA+IDApIHx8XG4gICAgICAgICAgICAgICAgICAhc3ViQ2FzZUZpZWxkLnJldGFpbl9oaWRkZW5fdmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBmaWVsZENvbnRyb2xzLmF0KGluZGV4KS5nZXQoJ3ZhbHVlJykgYXMgRm9ybUdyb3VwO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlRmllbGRWYWx1ZShwYXJlbnRGb3JtR3JvdXAsIHN1YkNhc2VGaWVsZCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRGVsZXRlIHRoZSBmaWVsZCB2YWx1ZVxuICAgICAgdGhpcy5kZWxldGVGaWVsZFZhbHVlKGZvcm0uZ2V0KCdkYXRhJykgYXMgRm9ybUdyb3VwLCBmaWVsZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNldFBhZ2UoZm9ybTogRm9ybUdyb3VwLCB3aXphcmRQYWdlOiBXaXphcmRQYWdlKTogdm9pZCB7XG4gICAgd2l6YXJkUGFnZS53aXphcmRfcGFnZV9maWVsZHMuZm9yRWFjaCh3cGYgPT4ge1xuICAgICAgY29uc3QgY2FzZUZpZWxkID0gdGhpcy5maW5kQ2FzZUZpZWxkQnlXaXphcmRQYWdlRmllbGRJZCh3aXphcmRQYWdlLCB3cGYpO1xuICAgICAgdGhpcy5yZXNldEZpZWxkKGZvcm0sIGNhc2VGaWVsZCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFR5cGUoZWxlbTogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGVsZW0pLnNsaWNlKDgsIC0xKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNPYmplY3QoZWxlbTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VHlwZShlbGVtKSA9PT0gJ09iamVjdCc7XG4gIH1cblxuICAvLyBUT0RPOiBjYWxsIGlzUmVhZE9ubHkgb24gQ2FzZUZpZWxkcyBvbmNlIHdlIG1ha2UgaXQgYXZhaWxhYmxlXG4gIHByaXZhdGUgaXNSZWFkb25seShjYXNlRmllbGQ6IENhc2VGaWVsZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjYXNlRmllbGQuZGlzcGxheV9jb250ZXh0LnRvVXBwZXJDYXNlKCkgPT09ICdSRUFET05MWSc7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlcyBhIGZpZWxkIHZhbHVlIGJ5IHNldHRpbmcgdGhlIHZhbHVlIG9mIHRoZSBjb3JyZXNwb25kaW5nIHtAbGluayBGb3JtQ29udHJvbH0gdG8gbnVsbCAob3IgYW4gZW1wdHkgYXJyYXlcbiAgICogaWYgdGhlIGZpZWxkIHR5cGUgaXMgYENvbGxlY3Rpb25gKSwgZXhjZXB0IHdoZW4gdGhlIGZpZWxkIHR5cGUgaXMgYENvbXBsZXhgIG9yIGBEb2N1bWVudGAuIEZvciBgQ29tcGxleGAgZmllbGRcbiAgICogdHlwZXMsIHRoaXMgcmVjdXJzaXZlIG1ldGhvZCBpcyBjYWxsZWQgdW50aWwgc2ltcGxlIG9yIFwiYmFzZVwiIGZpZWxkIHR5cGVzIGFyZSByZWFjaGVkLiBGb3IgYERvY3VtZW50YCBmaWVsZFxuICAgKiB0eXBlcywgaXRzIF9zdWItZmllbGRfIGBGb3JtQ29udHJvbGAgdmFsdWVzIGFyZSBzZXQgdG8gbnVsbC5cbiAgICpcbiAgICogQHBhcmFtIGZvcm1Hcm91cCBUaGUgYEZvcm1Hcm91cGAgaW5zdGFuY2UgY29udGFpbmluZyB0aGUgYEZvcm1Db250cm9sYCBmb3IgdGhlIHNwZWNpZmllZCBmaWVsZFxuICAgKiBAcGFyYW0gZmllbGQgVGhlIGBDYXNlRmllbGRgIHdob3NlIHZhbHVlIGlzIHRvIGJlIGRlbGV0ZWQgaW4gdGhlIGJhY2tlbmRcbiAgICogQHBhcmFtIHBhcmVudEZpZWxkIFJlZmVyZW5jZSB0byB0aGUgcGFyZW50IGBDYXNlRmllbGRgLiBVc2VkIGZvciBjaGVja2luZyBzcGVjaWZpY2FsbHkgd2hlcmUgYSBDb21wbGV4IGZpZWxkIGFuZFxuICAgKiBpdHMgc3ViLWZpZWxkcyBoYXZlIGByZXRhaW5faGlkZGVuX3ZhbHVlYCBzZXQgdG8gYHRydWVgLCBidXQgdGhlIGZpZWxkJ3MgcGFyZW50IGhhcyBpdCBzZXQgdG8gYGZhbHNlYCBvciB1bmRlZmluZWRcbiAgICovXG4gIHB1YmxpYyBkZWxldGVGaWVsZFZhbHVlKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBmaWVsZDogQ2FzZUZpZWxkLCBwYXJlbnRGaWVsZD86IENhc2VGaWVsZCk6IHZvaWQge1xuICAgIGNvbnN0IGZpZWxkVHlwZTogRmllbGRUeXBlRW51bSA9IGZpZWxkLmZpZWxkX3R5cGUudHlwZTtcbiAgICBjb25zdCBmaWVsZENvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkLmlkKTtcblxuICAgIGlmIChmaWVsZENvbnRyb2wpIHtcbiAgICAgIHN3aXRjaCAoZmllbGRUeXBlKSB7XG4gICAgICAgIGNhc2UgJ0NvbXBsZXgnOlxuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIElmIHRoZSBmaWVsZCBpcyBhIENvbXBsZXggdHlwZSwgbG9vcCBvdmVyIGl0cyBzdWItZmllbGRzIGFuZCBjYWxsIGRlbGV0ZUZpZWxkVmFsdWUoKSBmb3I6XG4gICAgICAgICAgICpcbiAgICAgICAgICAgKiAqIEFueSBzdWItZmllbGRzIHdoZXJlIHJldGFpbl9oaWRkZW5fdmFsdWUgaXMgZmFsc2UvdW5kZWZpbmVkLCBpZiB0aGUgcGFyZW50IGZpZWxkIGhhc1xuICAgICAgICAgICAqIHJldGFpbl9oaWRkZW5fdmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAqICogQUxMIHN1Yi1maWVsZHMgaWYgdGhlIHBhcmVudCBmaWVsZCBoYXMgcmV0YWluX2hpZGRlbl92YWx1ZSA9IHRydWUgQlVUIGl0cyBfb3duXyBwYXJlbnQgaGFzXG4gICAgICAgICAgICogcmV0YWluX2hpZGRlbl92YWx1ZSA9IGZhbHNlL3VuZGVmaW5lZCAodGh1cyBvdmVycmlkaW5nIGFueXRoaW5nIGVsc2UpO1xuICAgICAgICAgICAqICogQUxMIHN1Yi1maWVsZHMgaWYgdGhlIHBhcmVudCBmaWVsZCBoYXMgcmV0YWluX2hpZGRlbl92YWx1ZSA9IGZhbHNlL3VuZGVmaW5lZDtcbiAgICAgICAgICAgKiAqIEFueSBDb21wbGV4IHN1Yi1maWVsZHMgKnJlZ2FyZGxlc3Mgb2YgdGhlaXIgcmV0YWluX2hpZGRlbl92YWx1ZSogKGluIG9yZGVyIHRvIGluc3BlY3QgdGhlIHN1Yi1maWVsZHNcbiAgICAgICAgICAgKiBvZiBhIENvbXBsZXggdHlwZSB3aXRoaW4gYW5vdGhlciBDb21wbGV4IHR5cGUpXG4gICAgICAgICAgICovXG4gICAgICAgICAgaWYgKGZpZWxkLmZpZWxkX3R5cGUuY29tcGxleF9maWVsZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBjb21wbGV4U3ViRmllbGQgb2YgZmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcykge1xuICAgICAgICAgICAgICBpZiAoKGNvbXBsZXhTdWJGaWVsZC5maWVsZF90eXBlLnR5cGUgPT09ICdDb21wbGV4JyAmJiBjb21wbGV4U3ViRmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcy5sZW5ndGggPiAwKSB8fFxuICAgICAgICAgICAgICAgIChjb21wbGV4U3ViRmllbGQuZmllbGRfdHlwZS50eXBlICE9PSAnQ29tcGxleCcgJiZcbiAgICAgICAgICAgICAgICAgIChmaWVsZC5yZXRhaW5faGlkZGVuX3ZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8gIWNvbXBsZXhTdWJGaWVsZC5yZXRhaW5faGlkZGVuX3ZhbHVlIHx8IChwYXJlbnRGaWVsZCAmJiAhcGFyZW50RmllbGQucmV0YWluX2hpZGRlbl92YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgOiB0cnVlKSkpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGUgZmllbGRDb250cm9sIGlzIGNhc3QgdG8gYSBGb3JtR3JvdXAgYmVjYXVzZSBhIENvbXBsZXggZmllbGQgdHlwZSB1c2VzIHRoaXMgYXMgaXRzIHVuZGVybHlpbmdcbiAgICAgICAgICAgICAgICAvLyBpbXBsZW1lbnRhdGlvblxuICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlRmllbGRWYWx1ZShmaWVsZENvbnRyb2wgYXMgRm9ybUdyb3VwLCBjb21wbGV4U3ViRmllbGQsIGZpZWxkKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnQ29sbGVjdGlvbic6XG4gICAgICAgICAgLy8gSWYgaXQgaXMgYSBjb2xsZWN0aW9uIG9mIENvbXBsZXggdHlwZXMsIGxvb3AgdGhyb3VnaCBlYWNoIG9uZTsgZWxzZSBmYWxsIHRocm91Z2ggdG8gYmUgaGFuZGxlZCBhcyBhXG4gICAgICAgICAgLy8gY29sbGVjdGlvbiBvZiBzaW1wbGUgdHlwZXMgKGluIHRoZSBzYW1lIHdheSBhcyBNdWx0aVNlbGVjdExpc3QpLCB1bmxlc3MgaXQncyBhIGNvbGxlY3Rpb24gb2YgRG9jdW1lbnRcbiAgICAgICAgICAvLyB0eXBlcywgd2hpY2ggcmVxdWlyZXMgZGlmZmVyZW50IGhhbmRsaW5nXG4gICAgICAgICAgY29uc3QgY29sbGVjdGlvbkZpZWxkVHlwZSA9IGZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlO1xuICAgICAgICAgIGlmIChjb2xsZWN0aW9uRmllbGRUeXBlLnR5cGUgPT09ICdDb21wbGV4JyAmJiBjb2xsZWN0aW9uRmllbGRUeXBlLmNvbXBsZXhfZmllbGRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIC8vIEdldCB0aGUgYXJyYXkgb2YgQ29tcGxleCBmaWVsZCB2YWx1ZXNcbiAgICAgICAgICAgIGNvbnN0IGNvbXBsZXhGaWVsZFZhbHVlcyA9IGZpZWxkQ29udHJvbC52YWx1ZSBhcyBhbnlbXTtcblxuICAgICAgICAgICAgLy8gRm9yIGVhY2ggQ29tcGxleCBmaWVsZCB2YWx1ZSwgZ2V0IHRoZSBJRCBvZiBlYWNoIHN1Yi1maWVsZCB3aXRoaW4gaXQgYW5kIHVzZSBhcyBhIGtleSB0byBmaW5kIHRoZVxuICAgICAgICAgICAgLy8gY29ycmVzcG9uZGluZyBzdWItQ2FzZUZpZWxkICh3aGljaCBjb250YWlucyB0aGUgZmllbGQgdHlwZSBpbmZvcm1hdGlvbilcbiAgICAgICAgICAgIGlmIChjb21wbGV4RmllbGRWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgY29tcGxleEZpZWxkVmFsdWVzLmZvckVhY2goKGZpZWxkVmFsdWUsIGluZGV4KSA9PiBPYmplY3Qua2V5cyhmaWVsZFZhbHVlLnZhbHVlKS5mb3JFYWNoKHN1YkZpZWxkSWQgPT4ge1xuICAgICAgICAgICAgICAgIC8vIEZpbmQgdGhlIHN1Yi1DYXNlRmllbGQgY29ycmVzcG9uZGluZyB0byB0aGUgc3ViLWZpZWxkIElEXG4gICAgICAgICAgICAgICAgbGV0IHN1YkNhc2VGaWVsZDogQ2FzZUZpZWxkO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY2FzZUZpZWxkIG9mIGNvbGxlY3Rpb25GaWVsZFR5cGUuY29tcGxleF9maWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChjYXNlRmllbGQuaWQgPT09IHN1YkZpZWxkSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgc3ViQ2FzZUZpZWxkID0gY2FzZUZpZWxkO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBSZWN1cnNpdmVseSBkZWxldGUgdGhlIHN1Yi1maWVsZCB2YWx1ZSwgcGFzc2luZyBpbiB0aGUgcGFyZW50IEZvcm1Hcm91cFxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwID0gKGZpZWxkQ29udHJvbCBhcyBGb3JtQXJyYXkpLmF0KGluZGV4KS5nZXQoJ3ZhbHVlJykgYXMgRm9ybUdyb3VwO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlRmllbGRWYWx1ZShwYXJlbnRGb3JtR3JvdXAsIHN1YkNhc2VGaWVsZCk7XG4gICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH0gZWxzZSBpZiAoY29sbGVjdGlvbkZpZWxkVHlwZS50eXBlID09PSAnRG9jdW1lbnQnKSB7XG4gICAgICAgICAgICAvLyBHZXQgdGhlIGFycmF5IG9mIERvY3VtZW50IGZpZWxkIHZhbHVlc1xuICAgICAgICAgICAgY29uc3QgZG9jdW1lbnRGaWVsZFZhbHVlcyA9IGZpZWxkQ29udHJvbC52YWx1ZSBhcyBhbnlbXTtcblxuICAgICAgICAgICAgLy8gRm9yIGVhY2ggRG9jdW1lbnQgZmllbGQgdmFsdWUsIHNldCBhbGwgaXRzIHByb3BlcnR5IHZhbHVlcyB0byBudWxsICh0aGlzIGlzIG5vdCBhY2NlcHRlZCBieSB0aGVcbiAgICAgICAgICAgIC8vIGJhY2stZW5kIGJ1dCB3aWxsIGJlIGhhbmRsZWQgYnkgc2FuaXRpc2VPYmplY3QoKSBpbiBGb3JtVmFsdWVTZXJ2aWNlIGJlZm9yZSBzZW5kaW5nIC0gc2VlIGJlbG93IGZvclxuICAgICAgICAgICAgLy8gdGhlIHNpbmdsZSBEb2N1bWVudCBjYXNlKVxuICAgICAgICAgICAgaWYgKGRvY3VtZW50RmllbGRWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgZG9jdW1lbnRGaWVsZFZhbHVlcy5mb3JFYWNoKChmaWVsZFZhbHVlLCBpbmRleCkgPT4gT2JqZWN0LmtleXMoZmllbGRWYWx1ZS52YWx1ZSkuZm9yRWFjaChzdWJGaWVsZElkID0+IHtcbiAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoZSBGb3JtQ29udHJvbCBmb3IgdGhlIHN1Yi1maWVsZCBhbmQgc2V0IGl0cyB2YWx1ZSB0byBudWxsXG4gICAgICAgICAgICAgICAgKGZpZWxkQ29udHJvbCBhcyBGb3JtQXJyYXkpLmF0KGluZGV4KS5nZXQoYHZhbHVlLiR7c3ViRmllbGRJZH1gKS5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAvLyBPbWl0dGVkIFwiYnJlYWtcIiBpcyBpbnRlbnRpb25hbCBiZWNhdXNlIGEgY29sbGVjdGlvbiBzaG91bGQgYmUgaGFuZGxlZCBhcyBwZXIgTXVsdGlTZWxlY3RMaXN0IGlmIGl0IGlzXG4gICAgICAgIC8vIG5vdCBhIGNvbGxlY3Rpb24gb2YgQ29tcGxleCB0eXBlc1xuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLXN3aXRjaC1jYXNlLWZhbGwtdGhyb3VnaFxuICAgICAgICBjYXNlICdNdWx0aVNlbGVjdExpc3QnOlxuICAgICAgICAgIC8vIEZpZWxkIGNvbnRyb2wgc2hvdWxkIGJlIGEgRm9ybUFycmF5LCBzbyBtYXAgZWFjaCBvZiBpdHMgdmFsdWVzIHRvIG51bGxcbiAgICAgICAgICAvLyBOT1RFOiBUaGUgRm9ybUFycmF5IGNhbm5vdCBqdXN0IGJlIHNldCB0byBhbiBlbXB0eSBhcnJheSBiZWNhdXNlIEFuZ3VsYXIgY2hlY2tzIHRoYXQgYWxsIGV4aXN0aW5nIHZhbHVlc1xuICAgICAgICAgIC8vIG9mIGEgRm9ybUFycmF5IGFyZSBwcmVzZW50OyBzZXR0aW5nIHRoZSBjb250cm9sJ3MgdmFsdWUgdG8gYW4gZW1wdHkgYXJyYXkgY2F1c2VzIGEgcnVudGltZSBlcnJvclxuICAgICAgICAgIGlmIChmaWVsZENvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgIC8vIE5lZWQgdG8gYWxsb3cgZm9yIGZpZWxkIHZhbHVlcyB0aGF0IGFyZSBvYmplY3RzLCBub3QganVzdCBwcmltaXRpdmVzXG4gICAgICAgICAgICBmaWVsZENvbnRyb2wuc2V0VmFsdWUodGhpcy5tYXBBcnJheVZhbHVlc1RvTnVsbChmaWVsZENvbnRyb2wudmFsdWUpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0RvY3VtZW50JzpcbiAgICAgICAgICAvLyBOT1RFOiBUaGUgZmllbGQgY29udHJvbCAoYSBGb3JtR3JvdXAgaW4gdGhpcyBjYXNlKSBjYW5ub3QganVzdCBiZSBzZXQgdG8gbnVsbCBiZWNhdXNlIEFuZ3VsYXIgY2hlY2tzIHRoYXRcbiAgICAgICAgICAvLyBhbGwgZXhpc3RpbmcgdmFsdWVzIG9mIGEgRm9ybUdyb3VwIGFyZSBwcmVzZW50OyBzZXR0aW5nIHRoZSBjb250cm9sJ3MgdmFsdWUgdG8gbnVsbCBjYXVzZXMgYSBydW50aW1lIGVycm9yXG4gICAgICAgICAgY29uc3QgZG9jdW1lbnRGaWVsZFZhbHVlID0gZmllbGRDb250cm9sLnZhbHVlO1xuICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGRvY3VtZW50RmllbGRWYWx1ZSkge1xuICAgICAgICAgICAgaWYgKGZpZWxkQ29udHJvbC5nZXQoa2V5KSkge1xuICAgICAgICAgICAgICAvLyBUaGUgYmFjay1lbmQgZG9lc24ndCBhY2NlcHQgbnVsbCBhcyBhIHZhbGlkIHZhbHVlIGZvciBhbnkgb2YgdGhlIERvY3VtZW50IGZpZWxkIHR5cGUgcHJvcGVydGllcyBidXRcbiAgICAgICAgICAgICAgLy8gdGhpcyBpcyBoYW5kbGVkIGJ5IHNhbml0aXNlT2JqZWN0KCkgaW4gRm9ybVZhbHVlU2VydmljZSwgcmV0dXJuaW5nIGEgbnVsbCBvYmplY3QgZm9yIHRoZSBlbnRpcmVcbiAgICAgICAgICAgICAgLy8gRG9jdW1lbnQgZmllbGQsIGlmIGFueSBvZiBpdHMgcHJvcGVydGllcyBpcyBudWxsIC0gd2hpY2ggaXMgYWNjZXB0ZWQgYnkgdGhlIGJhY2stZW5kXG4gICAgICAgICAgICAgIGZpZWxkQ29udHJvbC5nZXQoa2V5KS5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIC8vIE5vdGU6IHRoZSBkZWZhdWx0IGNhc2UgYXBwbGllcyB0byBEeW5hbWljTGlzdCBmaWVsZHMsIHRvb1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGZpZWxkQ29udHJvbC5zZXRWYWx1ZShudWxsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWFwcyBhbGwgdmFsdWVzIG9mIGFuIGFycmF5IHRvIGBudWxsYCwgcmV0YWluaW5nIGtleXMgZm9yIGFueSB2YWx1ZXMgdGhhdCBhcmUgb2JqZWN0cy4gRm9yIGV4YW1wbGUsXG4gICAqIGBbeyBpZDogJzAnLCB2YWx1ZTogJ1Rlc3QnIH0sICdUZXN0J11gIHdvdWxkIGJlY29tZSBgW3sgaWQ6IG51bGwsIHZhbHVlOiBudWxsIH0sIG51bGxdYC5cbiAgICogQHBhcmFtIGFycmF5IFRoZSBhcnJheSBvZiB2YWx1ZXMgdG8gbWFwXG4gICAqIEByZXR1cm5zIEEgbmV3IGFycmF5IHdpdGggdGhlIG1hcHBlZCB2YWx1ZXNcbiAgICovXG4gIHB1YmxpYyBtYXBBcnJheVZhbHVlc1RvTnVsbChhcnJheTogYW55W10pOiBhbnlbXSB7XG4gICAgcmV0dXJuIGFycmF5Lm1hcChlbGVtZW50ID0+IHtcbiAgICAgIHJldHVybiB0eXBlb2YgZWxlbWVudCA9PT0gJ29iamVjdCdcbiAgICAgICAgPyBPYmplY3QuYXNzaWduKHt9LCAuLi5PYmplY3Qua2V5cyhlbGVtZW50KS5tYXAoayA9PiAoeyBba106IG51bGwgfSkpKVxuICAgICAgICA6IG51bGw7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==