@flywheel-io/vision 2.3.3 → 2.4.1

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 (39) hide show
  1. package/assets/fonts/Flywheel-Vision-Icons.svg +28 -0
  2. package/assets/fonts/Flywheel-Vision-Icons.ttf +0 -0
  3. package/assets/fonts/Flywheel-Vision-Icons.woff +0 -0
  4. package/assets/svg/archive-documents-box-big.svg +4 -0
  5. package/assets/svg/contract-vertical.svg +6 -0
  6. package/assets/svg/conversion-exchange.svg +4 -0
  7. package/assets/svg/cursor-click.svg +4 -0
  8. package/assets/svg/document-file-deleted-cross-remove-center-cancel.svg +4 -0
  9. package/assets/svg/documents-file-checkmark.svg +4 -0
  10. package/assets/svg/file-blank-search.svg +4 -0
  11. package/assets/svg/git-add-branch.svg +4 -0
  12. package/assets/svg/git-branch.svg +4 -0
  13. package/assets/svg/git-merge-draft.svg +6 -0
  14. package/assets/svg/git-merge.svg +4 -0
  15. package/assets/svg/git-pull-request-2.svg +4 -0
  16. package/assets/svg/grid-layout-9-square.svg +4 -0
  17. package/assets/svg/stretch-vertical.svg +4 -0
  18. package/components/dialog/dialog-confirm.component.d.ts +14 -4
  19. package/components/dialog/dialog-simple.component.d.ts +14 -4
  20. package/components/dialog/dialog.component.d.ts +13 -5
  21. package/components/dialog/dialog.service.d.ts +1 -0
  22. package/components/icon/icon.types.d.ts +1 -1
  23. package/components/popover/popover.component.d.ts +10 -2
  24. package/components/select-menu/multi-select-menu/multi-select-menu.component.d.ts +1 -1
  25. package/components/tooltip/tooltip.component.d.ts +5 -0
  26. package/esm2022/components/dialog/dialog-confirm.component.mjs +52 -9
  27. package/esm2022/components/dialog/dialog-simple.component.mjs +52 -9
  28. package/esm2022/components/dialog/dialog.component.mjs +47 -10
  29. package/esm2022/components/dialog/dialog.service.mjs +35 -2
  30. package/esm2022/components/icon/icon.types.mjs +15 -1
  31. package/esm2022/components/popover/popover.component.mjs +51 -4
  32. package/esm2022/components/select-menu/multi-select-menu/multi-select-menu.component.mjs +2 -1
  33. package/esm2022/components/select-menu/select-menu.component.mjs +3 -3
  34. package/esm2022/components/tooltip/tooltip.component.mjs +5 -2
  35. package/fesm2022/flywheel-io-vision.mjs +251 -30
  36. package/fesm2022/flywheel-io-vision.mjs.map +1 -1
  37. package/package.json +1 -1
  38. package/scss/icons/_icon-glyphs.scss +42 -0
  39. package/styles.css +56 -0
@@ -10,6 +10,7 @@ export const allIcons = [
10
10
  'ai',
11
11
  'apple',
12
12
  'apply-copy-duplicate',
13
+ 'archive-documents-box-big',
13
14
  'arrange-filter-sort',
14
15
  'arrow-annotate',
15
16
  'arrow-back-collapse',
@@ -74,11 +75,14 @@ export const allIcons = [
74
75
  'color-ven-design-profile-central',
75
76
  'column-edit',
76
77
  'computer-chip',
78
+ 'contract-vertical',
77
79
  'contrast-photo-edit',
80
+ 'conversion-exchange',
78
81
  'copy-item',
79
82
  'creative-commons',
80
83
  'crosshair',
81
84
  'crown-style-circle',
85
+ 'cursor-click',
82
86
  'cursor-select',
83
87
  'curve-object-secet-cursor',
84
88
  'data-tree',
@@ -87,6 +91,7 @@ export const allIcons = [
87
91
  'document-file-add-plus-bottom-left',
88
92
  'document-file-blank',
89
93
  'document-file-checkmark-bottom-left',
94
+ 'document-file-deleted-cross-remove-center-cancel',
90
95
  'document-file-download',
91
96
  'document-file-list-protocol',
92
97
  'document-file-tar',
@@ -94,6 +99,7 @@ export const allIcons = [
94
99
  'document-file-zip',
95
100
  'document-status-done-checkmark',
96
101
  'document-visible',
102
+ 'documents-file-checkmark',
97
103
  'documents-file',
98
104
  'documents-files',
99
105
  'done-check-tracked',
@@ -113,6 +119,7 @@ export const allIcons = [
113
119
  'expand-pathfinder-dot-square-segmentation',
114
120
  'facebook',
115
121
  'file-blank-image-load-mask',
122
+ 'file-blank-search',
116
123
  'file-download',
117
124
  'file-text',
118
125
  'files-library-content',
@@ -140,10 +147,16 @@ export const allIcons = [
140
147
  'free-rights',
141
148
  'freehand-vector-poly',
142
149
  'full-screen-zoom',
150
+ 'git-add-branch',
151
+ 'git-branch',
152
+ 'git-merge-draft',
153
+ 'git-merge',
154
+ 'git-pull-request-2',
143
155
  'github-color-login',
144
156
  'gitlab',
145
157
  'graduate-hat',
146
158
  'grid-dot-square',
159
+ 'grid-layout-9-square',
147
160
  'grid-layout',
148
161
  'hammer-legal-square',
149
162
  'hammer-screwdriver',
@@ -280,6 +293,7 @@ export const allIcons = [
280
293
  'stars-light-sparkle',
281
294
  'stomach',
282
295
  'stop-minus',
296
+ 'stretch-vertical',
283
297
  'substract-group',
284
298
  'switch',
285
299
  'target-space-object-select',
@@ -327,4 +341,4 @@ export const allIcons = [
327
341
  'youtube',
328
342
  'zendesk-logo',
329
343
  ];
330
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2ljb24vaWNvbi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQVU7SUFDN0IseUJBQXlCO0lBQ3pCLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLGVBQWU7SUFDZiwrQkFBK0I7SUFDL0IsWUFBWTtJQUNaLFVBQVU7SUFDVixJQUFJO0lBQ0osT0FBTztJQUNQLHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIsZ0JBQWdCO0lBQ2hCLHFCQUFxQjtJQUNyQixZQUFZO0lBQ1osWUFBWTtJQUNaLHdCQUF3QjtJQUN4QixlQUFlO0lBQ2YsWUFBWTtJQUNaLHNCQUFzQjtJQUN0QixjQUFjO0lBQ2QsWUFBWTtJQUNaLHdCQUF3QjtJQUN4Qix1QkFBdUI7SUFDdkIsVUFBVTtJQUNWLE9BQU87SUFDUCxnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsNEJBQTRCO0lBQzVCLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsVUFBVTtJQUNWLE9BQU87SUFDUCx1QkFBdUI7SUFDdkIsOEJBQThCO0lBQzlCLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QscUJBQXFCO0lBQ3JCLDRCQUE0QjtJQUM1QixtQkFBbUI7SUFDbkIsc0JBQXNCO0lBQ3RCLGdCQUFnQjtJQUNoQixhQUFhO0lBQ2IsY0FBYztJQUNkLG9CQUFvQjtJQUNwQixzQkFBc0I7SUFDdEIsd0JBQXdCO0lBQ3hCLGtDQUFrQztJQUNsQyxXQUFXO0lBQ1gsY0FBYztJQUNkLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsc0JBQXNCO0lBQ3RCLFlBQVk7SUFDWixpQkFBaUI7SUFDakIsUUFBUTtJQUNSLHFCQUFxQjtJQUNyQixpQkFBaUI7SUFDakIsZUFBZTtJQUNmLGNBQWM7SUFDZCxlQUFl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QUFXO0lBQ1gseUJBQXlCO0lBQ3pCLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCxTQUFTO0lBQ1QsMEJBQTBCO0lBQzFCLHNDQUFzQztJQUN0QyxRQUFRO0lBQ1IsY0FBYztJQUNkLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YsWUFBWTtJQUNaLFVBQVU7SUFDVixXQUFXO0lBQ1gseUJBQXlCO0lBQ3pCLDhCQUE4QjtJQUM5QixtQkFBbUI7SUFDbkIsTUFBTTtJQUNOLHVCQUF1QjtJQUN2QixvQkFBb0I7SUFDcEIsYUFBYTtJQUNiLGdCQUFnQjtJQUNoQixTQUFTO0lBQ1QsaUNBQWlDO0lBQ2pDLCtCQUErQjtJQUMvQixvQkFBb0I7SUFDcEIscUJBQXFCO0lBQ3JCLHdCQUF3QjtJQUN4QixTQUFTO0lBQ1QsZ0JBQWdCO0lBQ2hCLFNBQVM7SUFDVCxjQUFjO0NBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEljb25UeXBlID0gdHlwZW9mIGFsbEljb25zW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBhbGxJY29ucyA9IDxjb25zdD5bXG4gICczZC1zcGhlcmUtcm90YXRlLWFycm93cycsXG4gICdhZGQtY2lyY2xlJyxcbiAgJ2FkZC1uZXctY3JlYXRlJyxcbiAgJ2FkZC1yb3ctYWJvdmUnLFxuICAnYWRkLXJvdy1iZWxvdycsXG4gICdhZGQtc2VydmVyLWRhdGFiYXNlcy1lbmRwb2ludCcsXG4gICdhZGQtc2VydmVyJyxcbiAgJ2FkZC11c2VyJyxcbiAgJ2FpJyxcbiAgJ2FwcGxlJyxcbiAgJ2FwcGx5LWNvcHktZHVwbGljYXRlJyxcbiAgJ2FycmFuZ2UtZmlsdGVyLXNvcnQnLFxuICAnYXJyb3ctYW5ub3RhdGUnLFxuICAnYXJyb3ctYmFjay1jb2xsYXBzZScsXG4gICdhcnJvdy1iYWNrJyxcbiAgJ2Fycm93LWRvd24nLFxuICAnYXJyb3ctZm9yd2FyZC1jb2xsYXBzZScsXG4gICdhcnJvdy1mb3J3YXJkJyxcbiAgJ2Fycm93LXJlZG8nLFxuICAnYXJyb3ctcm90YXRlLXJlc3RvcmUnLFxuICAnYXJyb3ctcm90YXRlJyxcbiAgJ2Fycm93LXVuZG8nLFxuICAnYXJyb3ctdXAtaGlnaC1wcmlvcml0eScsXG4gICdhcnJvdy11cC1sb3ctcHJpb3JpdHknLFxuICAnYXJyb3ctdXAnLFxuICAnYXJyb3cnLFxuICAnYmFyY29kZS1zZXJpYWwnLFxuICAnYmFyY29kZS1zdGFjay1zY2FuJyxcbiAgJ2JlbGwtbm90aWZpY2F0aW9uJyxcbiAgJ2Jlemllci1jdXJ2ZScsXG4gICdibG9ja3MtY29kZS10ZXN0LWNoZWNrbWFyaycsXG4gICdib29rLWxhYi1mbGFzaycsXG4gICdib29rbWFyay1wbHVzLWFkZCcsXG4gICdib29rbWFyaycsXG4gICdicmFpbicsXG4gICdicmlnaHRuZXNzLXBob3RvLWVkaXQnLFxuICAnYnJvd3Nlci1pbnRlcm5ldC13ZWItd2luZG93cycsXG4gICdicnVzaC1lZGl0LWNyZWF0ZScsXG4gICdidWNrZXQtcGFpbnQnLFxuICAnYnV0dG9uLWZvcm0tZWxlbWVudCcsXG4gICdjYWxlbmRhci1hcnJvdy1sZWZ0LWNlbnRlcicsXG4gICdjYWxlbmRhci1zY2hlZHVsZScsXG4gICdjYW1lcmEtcGhvdG8tY2FwdHVyZScsXG4gICdjYXNoLWJhbmtub3RlcycsXG4gICdjZXJ0aWZpY2F0ZScsXG4gICdjaGFydC1zcXVhcmUnLFxuICAnY2hhcnQtdHJlbmQtc3F1YXJlJyxcbiAgJ2NoYXQtbWVzc2FnZXMtYnViYmxlJyxcbiAgJ2NoZWNrLW1hcmstY2VydGlmaWNhdGUnLFxuICAnY2hlY2tsaXN0LXRhc2tzLWNoZWNobWFyay1zcXVhcmUnLFxuICAnY2hlY2tsaXN0JyxcbiAgJ2NoZXZyb24tYmFjaycsXG4gICdjaGV2cm9uLWRvd24nLFxuICAnY2hldnJvbi1mb3J3YXJkJyxcbiAgJ2NoZXZyb24taW5wdXQtbnVtYmVyJyxcbiAgJ2NoZXZyb24tdXAnLFxuICAnY2lyY2xlLWVsbGlwc2VzJyxcbiAgJ2NpcmNsZScsXG4gICdjbGFwLWFwcGxhdXNlLWhhbmRzJyxcbiAgJ2NsaXAtYXR0YWNobWVudCcsXG4gICdjbG9jay1oaXN0b3J5JyxcbiAgJ2Nsb2NrLWhvdXItNCcsXG4gICdjbG9jay1sb2FkaW5nJyxcbiAgJ2Nsb3NlLWNpcmNsZWQnLFxuICAnY2xvc2UnLFxuICAnY2xvc2VkLWZyZWVoYW5kLXZlY3Rvci1wb2x5JyxcbiAgJ2Nsb3VkLW5ldHdvcmstYWRkJyxcbiAgJ2Nsb3VkLXN0b3JhZ2UtY2hlY2ttYXJrJyxcbiAgJ2Nsb3VkLXVwbG9hZCcsXG4gICdjb2RlLWJsb2NrLWVtYmVkJyxcbiAgJ2NvZGUtdGV4dCcsXG4gICdjb2xvci1kZXNpZ24tcHJvZmlsZScsXG4gICdjb2xvci12ZW4tZGVzaWduLXByb2ZpbGUtY2VudHJhbCcsXG4gICdjb2x1bW4tZWRpdCcsXG4gICdjb21wdXRlci1jaGlwJyxcbiAgJ2NvbnRyYXN0LXBob3RvLWVkaXQnLFxuICAnY29weS1pdGVtJyxcbiAgJ2NyZWF0aXZlLWNvbW1vbnMnLFxuICAnY3Jvc3NoYWlyJyxcbiAgJ2Nyb3duLXN0eWxlLWNpcmNsZScsXG4gICdjdXJzb3Itc2VsZWN0JyxcbiAgJ2N1cnZlLW9iamVjdC1zZWNldC1jdXJzb3InLFxuICAnZGF0YS10cmVlJyxcbiAgJ2RlbGl2ZXJ5LXNoaXBtZW50LXBhY2thZ2VzJyxcbiAgJ2RuYS1ob3NwaXRhbC1tZWRpY2FsJyxcbiAgJ2RvY3VtZW50LWZpbGUtYWRkLXBsdXMtYm90dG9tLWxlZnQnLFxuICAnZG9jdW1lbnQtZmlsZS1ibGFuaycsXG4gICdkb2N1bWVudC1maWxlLWNoZWNrbWFyay1ib3R0b20tbGVmdCcsXG4gICdkb2N1bWVudC1maWxlLWRvd25sb2FkJyxcbiAgJ2RvY3VtZW50LWZpbGUtbGlzdC1wcm90b2NvbCcsXG4gICdkb2N1bWVudC1maWxlLXRhcicsXG4gICdkb2N1bWVudC1maWxlLXVwbG9hZC1ib3R0b20tY2VudGVyJyxcbiAgJ2RvY3VtZW50LWZpbGUtemlwJyxcbiAgJ2RvY3VtZW50LXN0YXR1cy1kb25lLWNoZWNrbWFyaycsXG4gICdkb2N1bWVudC12aXNpYmxlJyxcbiAgJ2RvY3VtZW50cy1maWxlJyxcbiAgJ2RvY3VtZW50cy1maWxlcycsXG4gICdkb25lLWNoZWNrLXRyYWNrZWQnLFxuICAnZG9uZS1jaGVjaycsXG4gICdkb3dubG9hZC1zdGF0dXMnLFxuICAnZG93bmxvYWQnLFxuICAnZHJhZy1kcm9wLWluZGljYXRvcicsXG4gICdkcmF3LXJlY3RhbmdsZScsXG4gICdlYXJ0aC1nbG9iZS1mYWlsJyxcbiAgJ2VkaXQtYm94ZWQnLFxuICAnZWRpdC1lcmFzZScsXG4gICdlZGl0JyxcbiAgJ2VtYWlsLW1haWwtY2hlY2ttYXJrLWdyb3VwJyxcbiAgJ2VtYWlsJyxcbiAgJ2VtYmVkLWNpcmNsZScsXG4gICdleGNoYW5nZScsXG4gICdleHBhbmQtcGF0aGZpbmRlci1kb3Qtc3F1YXJlLXNlZ21lbnRhdGlvbicsXG4gICdmYWNlYm9vaycsXG4gICdmaWxlLWJsYW5rLWltYWdlLWxvYWQtbWFzaycsXG4gICdmaWxlLWRvd25sb2FkJyxcbiAgJ2ZpbGUtdGV4dCcsXG4gICdmaWxlcy1saWJyYXJ5LWNvbnRlbnQnLFxuICAnZmlsZXMtbGlicmFyeScsXG4gICdmaWxlcycsXG4gICdmaWx0ZXItc29ydC1hZGQnLFxuICAnZmlsdGVyLXNvcnQtY2hlY2stbWFyaycsXG4gICdmaWx0ZXItc29ydC1kZWxldGUnLFxuICAnZmlsdGVyJyxcbiAgJ2ZsYWcnLFxuICAnZmxpcC1ob3Jpem9udGFsJyxcbiAgJ2ZsaXAtdmVydGljYWwnLFxuICAnZmxvcHB5LXNhdmUnLFxuICAnZmx5d2hlZWwtbWFyay1sb2dvJyxcbiAgJ2ZseXdoZWVsLXZpZXdlci1tYXJrLWxvZ28nLFxuICAnZm9sZGVyLWFkZCcsXG4gICdmb2xkZXItYmxhbmsnLFxuICAnZm9sZGVyLWNoZWNrZWQnLFxuICAnZm9sZGVyLWNvcHktZXhwYW5kLWFycm93LWRvd24nLFxuICAnZm9sZGVyLWNvcHktZXhwYW5kLWFycm93LXVwJyxcbiAgJ2ZvbGRlci1ncm91cCcsXG4gICdmb2xkZXItb3BlbicsXG4gICdmb2xkZXItc2hhcmUnLFxuICAnZm9ybS1tZXRhZGF0YS1lbGVtZW50JyxcbiAgJ2ZyZWUtcmlnaHRzJyxcbiAgJ2ZyZWVoYW5kLXZlY3Rvci1wb2x5JyxcbiAgJ2Z1bGwtc2NyZWVuLXpvb20nLFxuICAnZ2l0aHViLWNvbG9yLWxvZ2luJyxcbiAgJ2dpdGxhYicsXG4gICdncmFkdWF0ZS1oYXQnLFxuICAnZ3JpZC1kb3Qtc3F1YXJlJyxcbiAgJ2dyaWQtbGF5b3V0JyxcbiAgJ2hhbW1lci1sZWdhbC1zcXVhcmUnLFxuICAnaGFtbWVyLXNjcmV3ZHJpdmVyJyxcbiAgJ2hhbmQtbW9uZXktY3VycmVuY3knLFxuICAnaGVhZGVyLWZvcm0tZWxlbWVudCcsXG4gICdob21lLW1vZGVybi1kb29yJyxcbiAgJ2hvbWUtbW9kZXJuLW9wdGlvbi1saW5lcycsXG4gICdodW1hbi1hcnRpZmljaWFsLWludGVsbGlnZW5jZScsXG4gICdpY29uLXBsYWNlaG9sZGVyJyxcbiAgJ2ltYWdlLXBob3RvLWNvcHktbGVmdC1kb3duJyxcbiAgJ2ltYWdlLXBpY3R1cmUtc3F1YXJlJyxcbiAgJ2luZm9ybWF0aW9uLWNpcmNsZScsXG4gICdpbnZvaWNlLWNoZWNrbWFyay1wYWlkJyxcbiAgJ2ludm9pY2UnLFxuICAnaXRhbGljJyxcbiAgJ2l0ZW1zLWdyb3VwLWVsZW1lbnRzJyxcbiAgJ2tleScsXG4gICdrZXlib2FyZCcsXG4gICdrZXljaGFpbicsXG4gICdsYWJlbC10YWcnLFxuICAnbGFwdG9wLWhlYWx0aC1tZWRpY2FsLWNyb3NzJyxcbiAgJ2xheWVycycsXG4gICdsYXlvdXQtZ3JpZCcsXG4gICdsYXlvdXQnLFxuICAnbGluZScsXG4gICdsaW5rLXVubGluaycsXG4gICdsaW5rJyxcbiAgJ2xpbmtlZGluJyxcbiAgJ2xpbnV4JyxcbiAgJ2xpc3QtcGFyYWdyYXBoLW51bWJlcicsXG4gICdsaXN0LXBhcmFncmFwaCcsXG4gICdsaXN0LXRlc3QtbGFiLWZsYXNrJyxcbiAgJ2xpdmV3aXJlLXRvb2wnLFxuICAnbG9hZGluZy1zdGF0dXMtY2hlY2ttYXJrJyxcbiAgJ2xvY2stdW5sb2NrJyxcbiAgJ2xvY2snLFxuICAnbG9nb3V0JyxcbiAgJ2x1bmcnLFxuICAnbHVuZ3MnLFxuICAnbWFya2Rvd24nLFxuICAnbWVhc3VyZS1hbmdsZScsXG4gICdtZWFzdXJlLXJ1bGVyLWNhbGlicmF0aW9uJyxcbiAgJ21lZGlhLWxpYnJhcnktaW1wb3J0cy1kb3dsb2FkJyxcbiAgJ21lbnUtYnVyZ2VyLWhhbmRsZScsXG4gICdtZW51LWhvcml6b250YWwnLFxuICAnbWVudS1saXN0LWZvcm0tc3F1YXJlJyxcbiAgJ21lbnUtdmVydGljYWwnLFxuICAnbWVzc2FnZS1jaGF0LWluZm8nLFxuICAnbWVzc2FnZS1jaGF0LXF1ZXN0aW9uLXN1cHBvcnQnLFxuICAnbWVzc2FnZS1jaGVja21hcmstc2VudCcsXG4gICdtZXNzYWdlLXF1ZXN0aW9uLWNoZWNrbWFyaycsXG4gICdtaWNyb3Bob25lLW1pYy1yZWMtY2lyY2xlJyxcbiAgJ21pY3JvcGhvbmUtbWljLXJlYycsXG4gICdtaWNyb3Bob25lLW1pYy1yZWNvcmRpbmctY2lyY2xlJyxcbiAgJ21pbnVzJyxcbiAgJ21vZGFsaXRpZXMnLFxuICAnbW9sZWN1bGUnLFxuICAnbW9uZXktY29pbicsXG4gICdtb25leS1kb2xsYXInLFxuICAnbW9uZXknLFxuICAnbW9uaXRvci1jb21wdXRlcicsXG4gICdtb3VzZS1iaWcnLFxuICAnbW92ZScsXG4gICdtdXNpYy1wbGF5LXJlc3VtZScsXG4gICdtdXNpYy1zdG9wJyxcbiAgJ211dGUnLFxuICAnbmV0d29yay1zdG9yYWdlLWFsZXJ0JyxcbiAgJ25vdGVib29rLWFkZC1wbHVzJyxcbiAgJ25vdGVib29rLW9wZW4nLFxuICAnbm90ZWJvb2stcGVuLWVkaXQnLFxuICAnbm90ZWJvb2snLFxuICAnbm90ZXMtcGVuJyxcbiAgJ29iamVjdC1zZWFyY2gtem9vbS1wbHVzJyxcbiAgJ29wZW4nLFxuICAncGFpbnQtcm9sbGVyJyxcbiAgJ3BhdXNlJyxcbiAgJ3Blbi1lZGl0LWNpcmNsZScsXG4gICdwZW5jaWwtZWRpdC1jcmVhdGUnLFxuICAncGhvdG8tZWRpdC1icmlnaHRuZXNzLWludmVydCcsXG4gICdwaWUtY2hhcnQnLFxuICAncGllLWdyYXBoLWNoYXJ0LXNhbXBsZScsXG4gICdwbHVzLWFkZC1yZWN0YW5nbGUnLFxuICAncG9seWdvbicsXG4gICdwcml2YXRlLW1vZGUtcHJvdGVjdGlvbi1jaXJjbGUnLFxuICAncHJvdGVjdGlvbi10YXJnZXQnLFxuICAncHJvdGVjdGl2ZS1tYXNrJyxcbiAgJ3F1ZXN0aW9uLWNpcmNsZScsXG4gICdxdW90ZScsXG4gICdyYWRpb2xvZ3ktc2Nhbi1jaXJjbGUnLFxuICAncmFkaW9sb2d5LXNjYW4nLFxuICAncmVhZGVyLXN0dWRpZXMnLFxuICAncm90YXRlLWFycm93LW1hbnVhbCcsXG4gICdyb3RhdGUtaXRlbS1sZWZ0JyxcbiAgJ3JvdGF0ZS1pdGVtLXJpZ2h0JyxcbiAgJ3JvdGF0ZS1yZWZyZXNoJyxcbiAgJ3JvdGF0ZScsXG4gICdydWxlci1iaWRpcmVjdGlvbmFsJyxcbiAgJ3J1bGVyJyxcbiAgJ3NjYW5uZXInLFxuICAnc2VhcmNoLWxvb3AnLFxuICAnc2VhcmNoLXVzZXItcHJvZmlsZS1wZXJzb24nLFxuICAnc2VhcmNoLXpvb20tbWludXMnLFxuICAnc2VhcmNoLXpvb20tcGx1cycsXG4gICdzZWFyY2gnLFxuICAnc2VjdGlvbi1mb3JtLWVsZW1lbnQnLFxuICAnc2VuZC1tZXNzYWdlLXNoYXJlJyxcbiAgJ3NlcnZlci1jaGVja21hcmsnLFxuICAnc2VydmVyLWRhdGFiYXNlLWVuZHBvaW50JyxcbiAgJ3NlcnZlci1kYXRhYmFzZXMtY2hlY2ttYXJrLXVzZXInLFxuICAnc2VydmVyLWRhdGFiYXNlcy1jb25uZWN0JyxcbiAgJ3NlcnZlci1kYXRhYmFzZXMtZG93bmxvYWQnLFxuICAnc2VydmVyLWRhdGFiYXNlcy1rZXktcHJvdGVjdGlvbicsXG4gICdzZXJ2ZXItZGF0YWJhc2VzLW1pbmltYWwtZG93bmxvYWQnLFxuICAnc2VydmVyLWRhdGFiYXNlcy1zeW5jLWltcG9ydCcsXG4gICdzZXJ2ZXItZGF0YWJhc2VzLXN5bmMnLFxuICAnc2VydmVyLXVwbG9hZCcsXG4gICdzZXJ2ZXInLFxuICAnc2VydmVycy1kYXRhYmFzZScsXG4gICdzZXR0aW5nLWdlYXInLFxuICAnc2V0dGluZ3MtYWRqdXN0JyxcbiAgJ3NldHRpbmdzLWdlYXItc3F1YXJlJyxcbiAgJ3NldHRpbmdzLWdlYXInLFxuICAnc2V0dGluZ3Mtc2VsZWN0JyxcbiAgJ3NoYXBlcy1vYmplY3RzJyxcbiAgJ3NoYXJlJyxcbiAgJ3NoaWVsZC1wcm90ZWN0JyxcbiAgJ3Nob3ctdmlzaWJsZScsXG4gICdzbWlsZXktZW1vamktZmFjZScsXG4gICdzcGVlZC1kYXNoYm9hcmQnLFxuICAnc3F1YXJlLWZpbGwtb3V0bGluZScsXG4gICdzcXVhcmUtZmlsbCcsXG4gICdzcXVhcmUtb3V0bGluZScsXG4gICdzdGFyJyxcbiAgJ3N0YXJzLWxpZ2h0LXNwYXJrbGUnLFxuICAnc3RvbWFjaCcsXG4gICdzdG9wLW1pbnVzJyxcbiAgJ3N1YnN0cmFjdC1ncm91cCcsXG4gICdzd2l0Y2gnLFxuICAndGFyZ2V0LXNwYWNlLW9iamVjdC1zZWxlY3QnLFxuICAndGFyZ2V0JyxcbiAgJ3Rhc2tsaXN0LXRvLWRvLWNoZWNrbWFyaycsXG4gICd0ZWNobm9sb2d5LWN1YmUtM2QnLFxuICAndGVzdC1sYWItZmxhc2snLFxuICAndGV4dC1ib2xkJyxcbiAgJ3RleHQtY3Jvc3MnLFxuICAndGV4dC1oMScsXG4gICd0ZXh0LWgyJyxcbiAgJ3RleHQtaW5wdXQtZm9ybScsXG4gICd0ZXh0LWxvbmcnLFxuICAndGV4dC1zaG9ydC1mb3JtLWVsZW1lbnQnLFxuICAndGV4dC11bmRlcmxpbmUnLFxuICAndGh1bWJzLXVwLWxpa2UnLFxuICAndGltZXItY2xvY2stc3R5bGUnLFxuICAndHJhc2gtZGVsZXRlJyxcbiAgJ3R3aXR0ZXInLFxuICAndW5kb25lLXVuY2hlY2stdW50cmFja2VkJyxcbiAgJ3VubGltaXRlZC1yZXBlYXQtc3Vic2NyaXB0aW9uLWNpcmNsZScsXG4gICd1cGxvYWQnLFxuICAndXNlci1jaGVja2VkJyxcbiAgJ3VzZXItZGVsZXRlLWNyb3NzJyxcbiAgJ3VzZXItZG9jdW1lbnQnLFxuICAndXNlci1ncm91cCcsXG4gICd1c2VyLWtleScsXG4gICd1c2VyLWxvY2snLFxuICAndXNlci1wcm9maWxlLWNhcmRzLXBvb2wnLFxuICAndXNlci1wcm9maWxlLWdyb3VwLWRpc2NvdmVyeScsXG4gICd1c2VyLXNldHRpbmctZ2VhcicsXG4gICd1c2VyJyxcbiAgJ3ZpZGVvLXBsYXllci1jb250cm9scycsXG4gICd2aXNpYmxlLWV5ZS1oaWRkZW4nLFxuICAndm9sdW1lLWZ1bGwnLFxuICAnd2FybmluZy1jaXJjbGUnLFxuICAnd2FybmluZycsXG4gICd3aW5kb3ctZmluZGVyLXJlc2l6ZS1hcnJvdy1kb3duJyxcbiAgJ3dpbmRvdy1maW5kZXItcmVzaXplLWFycm93LXVwJyxcbiAgJ3dpbmRvdy1yZXNpemUtbGVmdCcsXG4gICd3aW5kb3ctcmVzaXplLXJpZ2h0JyxcbiAgJ3dpbmRvdy16b29tLXBsdXMtbG91cGUnLFxuICAnd2luZG93cycsXG4gICd3b3Jrc3BhY2UtbW9kZScsXG4gICd5b3V0dWJlJyxcbiAgJ3plbmRlc2stbG9nbycsXG5dO1xuIl19
344
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2ljb24vaWNvbi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQVU7SUFDN0IseUJBQXlCO0lBQ3pCLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLGVBQWU7SUFDZiwrQkFBK0I7SUFDL0IsWUFBWTtJQUNaLFVBQVU7SUFDVixJQUFJO0lBQ0osT0FBTztJQUNQLHNCQUFzQjtJQUN0QiwyQkFBMkI7SUFDM0IscUJBQXFCO0lBQ3JCLGdCQUFnQjtJQUNoQixxQkFBcUI7SUFDckIsWUFBWTtJQUNaLFlBQVk7SUFDWix3QkFBd0I7SUFDeEIsZUFBZTtJQUNmLFlBQVk7SUFDWixzQkFBc0I7SUFDdEIsY0FBYztJQUNkLFlBQVk7SUFDWix3QkFBd0I7SUFDeEIsdUJBQXVCO0lBQ3ZCLFVBQVU7SUFDVixPQUFPO0lBQ1AsZ0JBQWdCO0lBQ2hCLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsY0FBYztJQUNkLDRCQUE0QjtJQUM1QixnQkFBZ0I7SUFDaEIsbUJBQW1CO0lBQ25CLFVBQVU7SUFDVixPQUFPO0lBQ1AsdUJBQXVCO0lBQ3ZCLDhCQUE4QjtJQUM5QixtQkFBbUI7SUFDbkIsY0FBYztJQUNkLHFCQUFxQjtJQUNyQiw0QkFBNEI7SUFDNUIsbUJBQW1CO0lBQ25CLHNCQUFzQjtJQUN0QixnQkFBZ0I7SUFDaEIsYUFBYTtJQUNiLGNBQWM7SUFDZCxvQkFBb0I7SUFDcEIsc0JBQXNCO0lBQ3RCLHdCQUF3QjtJQUN4QixrQ0FBa0M7SUFDbEMsV0FBVztJQUNYLGNBQWM7SUFDZCxjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLHNCQUFzQjtJQUN0QixZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLFFBQVE7SUFDUixxQkFBcUI7SUFDckIsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixjQUFjO0lBQ2QsZUFBZTtJQUNmLGVBQWU7SUFDZixPQUFPO0lBQ1AsNkJBQTZCO0lBQzdCLG1CQUFtQjtJQUNuQix5QkFBeUI7SUFDekIsY0FBYztJQUNkLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsc0JBQXNCO0lBQ3RCLGtDQUFrQztJQUNsQyxhQUFhO0lBQ2IsZUFBZTtJQUNmLG1CQUFtQjtJQUNuQixxQkFBcUI7SUFDckIscUJBQXFCO0lBQ3JCLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsV0FBVztJQUNYLG9CQUFvQjtJQUNwQixjQUFjO0lBQ2QsZUFBZTtJQUNmLDJCQUEyQjtJQUMzQixXQUFXO0lBQ1gsNEJBQTRCO0lBQzVCLHNCQUFzQjtJQUN0QixvQ0FBb0M7SUFDcEMscUJBQXFCO0lBQ3JCLHFDQUFxQztJQUNyQyxrREFBa0Q7SUFDbEQsd0JBQXdCO0lBQ3hCLDZCQUE2QjtJQUM3QixtQkFBbUI7SUFDbkIsb0NBQW9DO0lBQ3BDLG1CQUFtQjtJQUNuQixnQ0FBZ0M7SUFDaEMsa0JBQWtCO0lBQ2xCLDBCQUEwQjtJQUMxQixnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLG9CQUFvQjtJQUNwQixZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLFVBQVU7SUFDVixxQkFBcUI7SUFDckIsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osWUFBWTtJQUNaLE1BQU07SUFDTiw0QkFBNEI7SUFDNUIsT0FBTztJQUNQLGNBQWM7SUFDZCxVQUFVO0lBQ1YsMkNBQTJDO0lBQzNDLFVBQVU7SUFDViw0QkFBNEI7SUFDNUIsbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixXQUFXO0lBQ1gsdUJBQXVCO0lBQ3ZCLGVBQWU7SUFDZixPQUFPO0lBQ1AsaUJBQWlCO0lBQ2pCLHdCQUF3QjtJQUN4QixvQkFBb0I7SUFDcEIsUUFBUTtJQUNSLE1BQU07SUFDTixpQkFBaUI7SUFDakIsZUFBZTtJQUNmLGFBQWE7SUFDYixvQkFBb0I7SUFDcEIsMkJBQTJCO0lBQzNCLFlBQVk7SUFDWixjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLCtCQUErQjtJQUMvQiw2QkFBNkI7SUFDN0IsY0FBYztJQUNkLGFBQWE7SUFDYixjQUFjO0lBQ2QsdUJBQXVCO0lBQ3ZCLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQixZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLFdBQVc7SUFDWCxvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLFFBQVE7SUFDUixjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLHNCQUFzQjtJQUN0QixhQUFhO0lBQ2IscUJBQXFCO0lBQ3JCLG9CQUFvQjtJQUNwQixxQkFBcUI7SUFDckIscUJBQXFCO0lBQ3JCLGtCQUFrQjtJQUNsQiwwQkFBMEI7SUFDMUIsK0JBQStCO0lBQy9CLGtCQUFrQjtJQUNsQiw0QkFBNEI7SUFDNUIsc0JBQXNCO0lBQ3RCLG9CQUFvQjtJQUNwQix3QkFBd0I7SUFDeEIsU0FBUztJQUNULFFBQVE7SUFDUixzQkFBc0I7SUFDdEIsS0FBSztJQUNMLFVBQVU7SUFDVixVQUFVO0lBQ1YsV0FBVztJQUNYLDZCQUE2QjtJQUM3QixRQUFRO0lBQ1IsYUFBYTtJQUNiLFFBQVE7SUFDUixNQUFNO0lBQ04sYUFBYTtJQUNiLE1BQU07SUFDTixVQUFVO0lBQ1YsT0FBTztJQUNQLHVCQUF1QjtJQUN2QixnQkFBZ0I7SUFDaEIscUJBQXFCO0lBQ3JCLGVBQWU7SUFDZiwwQkFBMEI7SUFDMUIsYUFBYTtJQUNiLE1BQU07SUFDTixRQUFRO0lBQ1IsTUFBTTtJQUNOLE9BQU87SUFDUCxVQUFVO0lBQ1YsZUFBZTtJQUNmLDJCQUEyQjtJQUMzQiwrQkFBK0I7SUFDL0Isb0JBQW9CO0lBQ3BCLGlCQUFpQjtJQUNqQix1QkFBdUI7SUFDdkIsZUFBZTtJQUNmLG1CQUFtQjtJQUNuQiwrQkFBK0I7SUFDL0Isd0JBQXdCO0lBQ3hCLDRCQUE0QjtJQUM1QiwyQkFBMkI7SUFDM0Isb0JBQW9CO0lBQ3BCLGlDQUFpQztJQUNqQyxPQUFPO0lBQ1AsWUFBWTtJQUNaLFVBQVU7SUFDVixZQUFZO0lBQ1osY0FBYztJQUNkLE9BQU87SUFDUCxrQkFBa0I7SUFDbEIsV0FBVztJQUNYLE1BQU07SUFDTixtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLE1BQU07SUFDTix1QkFBdUI7SUFDdkIsbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixtQkFBbUI7SUFDbkIsVUFBVTtJQUNWLFdBQVc7SUFDWCx5QkFBeUI7SUFDekIsTUFBTTtJQUNOLGNBQWM7SUFDZCxPQUFPO0lBQ1AsaUJBQWlCO0lBQ2pCLG9CQUFvQjtJQUNwQiw4QkFBOEI7SUFDOUIsV0FBVztJQUNYLHdCQUF3QjtJQUN4QixvQkFBb0I7SUFDcEIsU0FBUztJQUNULGdDQUFnQztJQUNoQyxtQkFBbUI7SUFDbkIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixPQUFPO0lBQ1AsdUJBQXVCO0lBQ3ZCLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIscUJBQXFCO0lBQ3JCLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsZ0JBQWdCO0lBQ2hCLFFBQVE7SUFDUixxQkFBcUI7SUFDckIsT0FBTztJQUNQLFNBQVM7SUFDVCxhQUFhO0lBQ2IsNEJBQTRCO0lBQzVCLG1CQUFtQjtJQUNuQixrQkFBa0I7SUFDbEIsUUFBUTtJQUNSLHNCQUFzQjtJQUN0QixvQkFBb0I7SUFDcEIsa0JBQWtCO0lBQ2xCLDBCQUEwQjtJQUMxQixpQ0FBaUM7SUFDakMsMEJBQTBCO0lBQzFCLDJCQUEyQjtJQUMzQixpQ0FBaUM7SUFDakMsbUNBQW1DO0lBQ25DLDhCQUE4QjtJQUM5Qix1QkFBdUI7SUFDdkIsZUFBZTtJQUNmLFFBQVE7SUFDUixrQkFBa0I7SUFDbEIsY0FBYztJQUNkLGlCQUFpQjtJQUNqQixzQkFBc0I7SUFDdEIsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsT0FBTztJQUNQLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2QsbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQixxQkFBcUI7SUFDckIsYUFBYTtJQUNiLGdCQUFnQjtJQUNoQixNQUFNO0lBQ04scUJBQXFCO0lBQ3JCLFNBQVM7SUFDVCxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLGlCQUFpQjtJQUNqQixRQUFRO0lBQ1IsNEJBQTRCO0lBQzVCLFFBQVE7SUFDUiwwQkFBMEI7SUFDMUIsb0JBQW9CO0lBQ3BCLGdCQUFnQjtJQUNoQixXQUFXO0lBQ1gsWUFBWTtJQUNaLFNBQVM7SUFDVCxTQUFTO0lBQ1QsaUJBQWlCO0lBQ2pCLFdBQVc7SUFDWCx5QkFBeUI7SUFDekIsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsY0FBYztJQUNkLFNBQVM7SUFDVCwwQkFBMEI7SUFDMUIsc0NBQXNDO0lBQ3RDLFFBQVE7SUFDUixjQUFjO0lBQ2QsbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixZQUFZO0lBQ1osVUFBVTtJQUNWLFdBQVc7SUFDWCx5QkFBeUI7SUFDekIsOEJBQThCO0lBQzlCLG1CQUFtQjtJQUNuQixNQUFNO0lBQ04sdUJBQXVCO0lBQ3ZCLG9CQUFvQjtJQUNwQixhQUFhO0lBQ2IsZ0JBQWdCO0lBQ2hCLFNBQVM7SUFDVCxpQ0FBaUM7SUFDakMsK0JBQStCO0lBQy9CLG9CQUFvQjtJQUNwQixxQkFBcUI7SUFDckIsd0JBQXdCO0lBQ3hCLFNBQVM7SUFDVCxnQkFBZ0I7SUFDaEIsU0FBUztJQUNULGNBQWM7Q0FDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgSWNvblR5cGUgPSB0eXBlb2YgYWxsSWNvbnNbbnVtYmVyXTtcblxuZXhwb3J0IGNvbnN0IGFsbEljb25zID0gPGNvbnN0PltcbiAgJzNkLXNwaGVyZS1yb3RhdGUtYXJyb3dzJyxcbiAgJ2FkZC1jaXJjbGUnLFxuICAnYWRkLW5ldy1jcmVhdGUnLFxuICAnYWRkLXJvdy1hYm92ZScsXG4gICdhZGQtcm93LWJlbG93JyxcbiAgJ2FkZC1zZXJ2ZXItZGF0YWJhc2VzLWVuZHBvaW50JyxcbiAgJ2FkZC1zZXJ2ZXInLFxuICAnYWRkLXVzZXInLFxuICAnYWknLFxuICAnYXBwbGUnLFxuICAnYXBwbHktY29weS1kdXBsaWNhdGUnLFxuICAnYXJjaGl2ZS1kb2N1bWVudHMtYm94LWJpZycsXG4gICdhcnJhbmdlLWZpbHRlci1zb3J0JyxcbiAgJ2Fycm93LWFubm90YXRlJyxcbiAgJ2Fycm93LWJhY2stY29sbGFwc2UnLFxuICAnYXJyb3ctYmFjaycsXG4gICdhcnJvdy1kb3duJyxcbiAgJ2Fycm93LWZvcndhcmQtY29sbGFwc2UnLFxuICAnYXJyb3ctZm9yd2FyZCcsXG4gICdhcnJvdy1yZWRvJyxcbiAgJ2Fycm93LXJvdGF0ZS1yZXN0b3JlJyxcbiAgJ2Fycm93LXJvdGF0ZScsXG4gICdhcnJvdy11bmRvJyxcbiAgJ2Fycm93LXVwLWhpZ2gtcHJpb3JpdHknLFxuICAnYXJyb3ctdXAtbG93LXByaW9yaXR5JyxcbiAgJ2Fycm93LXVwJyxcbiAgJ2Fycm93JyxcbiAgJ2JhcmNvZGUtc2VyaWFsJyxcbiAgJ2JhcmNvZGUtc3RhY2stc2NhbicsXG4gICdiZWxsLW5vdGlmaWNhdGlvbicsXG4gICdiZXppZXItY3VydmUnLFxuICAnYmxvY2tzLWNvZGUtdGVzdC1jaGVja21hcmsnLFxuICAnYm9vay1sYWItZmxhc2snLFxuICAnYm9va21hcmstcGx1cy1hZGQnLFxuICAnYm9va21hcmsnLFxuICAnYnJhaW4nLFxuICAnYnJpZ2h0bmVzcy1waG90by1lZGl0JyxcbiAgJ2Jyb3dzZXItaW50ZXJuZXQtd2ViLXdpbmRvd3MnLFxuICAnYnJ1c2gtZWRpdC1jcmVhdGUnLFxuICAnYnVja2V0LXBhaW50JyxcbiAgJ2J1dHRvbi1mb3JtLWVsZW1lbnQnLFxuICAnY2FsZW5kYXItYXJyb3ctbGVmdC1jZW50ZXInLFxuICAnY2FsZW5kYXItc2NoZWR1bGUnLFxuICAnY2FtZXJhLXBob3RvLWNhcHR1cmUnLFxuICAnY2FzaC1iYW5rbm90ZXMnLFxuICAnY2VydGlmaWNhdGUnLFxuICAnY2hhcnQtc3F1YXJlJyxcbiAgJ2NoYXJ0LXRyZW5kLXNxdWFyZScsXG4gICdjaGF0LW1lc3NhZ2VzLWJ1YmJsZScsXG4gICdjaGVjay1tYXJrLWNlcnRpZmljYXRlJyxcbiAgJ2NoZWNrbGlzdC10YXNrcy1jaGVjaG1hcmstc3F1YXJlJyxcbiAgJ2NoZWNrbGlzdCcsXG4gICdjaGV2cm9uLWJhY2snLFxuICAnY2hldnJvbi1kb3duJyxcbiAgJ2NoZXZyb24tZm9yd2FyZCcsXG4gICdjaGV2cm9uLWlucHV0LW51bWJlcicsXG4gICdjaGV2cm9uLXVwJyxcbiAgJ2NpcmNsZS1lbGxpcHNlcycsXG4gICdjaXJjbGUnLFxuICAnY2xhcC1hcHBsYXVzZS1oYW5kcycsXG4gICdjbGlwLWF0dGFjaG1lbnQnLFxuICAnY2xvY2staGlzdG9yeScsXG4gICdjbG9jay1ob3VyLTQnLFxuICAnY2xvY2stbG9hZGluZycsXG4gICdjbG9zZS1jaXJjbGVkJyxcbiAgJ2Nsb3NlJyxcbiAgJ2Nsb3NlZC1mcmVlaGFuZC12ZWN0b3ItcG9seScsXG4gICdjbG91ZC1uZXR3b3JrLWFkZCcsXG4gICdjbG91ZC1zdG9yYWdlLWNoZWNrbWFyaycsXG4gICdjbG91ZC11cGxvYWQnLFxuICAnY29kZS1ibG9jay1lbWJlZCcsXG4gICdjb2RlLXRleHQnLFxuICAnY29sb3ItZGVzaWduLXByb2ZpbGUnLFxuICAnY29sb3ItdmVuLWRlc2lnbi1wcm9maWxlLWNlbnRyYWwnLFxuICAnY29sdW1uLWVkaXQnLFxuICAnY29tcHV0ZXItY2hpcCcsXG4gICdjb250cmFjdC12ZXJ0aWNhbCcsXG4gICdjb250cmFzdC1waG90by1lZGl0JyxcbiAgJ2NvbnZlcnNpb24tZXhjaGFuZ2UnLFxuICAnY29weS1pdGVtJyxcbiAgJ2NyZWF0aXZlLWNvbW1vbnMnLFxuICAnY3Jvc3NoYWlyJyxcbiAgJ2Nyb3duLXN0eWxlLWNpcmNsZScsXG4gICdjdXJzb3ItY2xpY2snLFxuICAnY3Vyc29yLXNlbGVjdCcsXG4gICdjdXJ2ZS1vYmplY3Qtc2VjZXQtY3Vyc29yJyxcbiAgJ2RhdGEtdHJlZScsXG4gICdkZWxpdmVyeS1zaGlwbWVudC1wYWNrYWdlcycsXG4gICdkbmEtaG9zcGl0YWwtbWVkaWNhbCcsXG4gICdkb2N1bWVudC1maWxlLWFkZC1wbHVzLWJvdHRvbS1sZWZ0JyxcbiAgJ2RvY3VtZW50LWZpbGUtYmxhbmsnLFxuICAnZG9jdW1lbnQtZmlsZS1jaGVja21hcmstYm90dG9tLWxlZnQnLFxuICAnZG9jdW1lbnQtZmlsZS1kZWxldGVkLWNyb3NzLXJlbW92ZS1jZW50ZXItY2FuY2VsJyxcbiAgJ2RvY3VtZW50LWZpbGUtZG93bmxvYWQnLFxuICAnZG9jdW1lbnQtZmlsZS1saXN0LXByb3RvY29sJyxcbiAgJ2RvY3VtZW50LWZpbGUtdGFyJyxcbiAgJ2RvY3VtZW50LWZpbGUtdXBsb2FkLWJvdHRvbS1jZW50ZXInLFxuICAnZG9jdW1lbnQtZmlsZS16aXAnLFxuICAnZG9jdW1lbnQtc3RhdHVzLWRvbmUtY2hlY2ttYXJrJyxcbiAgJ2RvY3VtZW50LXZpc2libGUnLFxuICAnZG9jdW1lbnRzLWZpbGUtY2hlY2ttYXJrJyxcbiAgJ2RvY3VtZW50cy1maWxlJyxcbiAgJ2RvY3VtZW50cy1maWxlcycsXG4gICdkb25lLWNoZWNrLXRyYWNrZWQnLFxuICAnZG9uZS1jaGVjaycsXG4gICdkb3dubG9hZC1zdGF0dXMnLFxuICAnZG93bmxvYWQnLFxuICAnZHJhZy1kcm9wLWluZGljYXRvcicsXG4gICdkcmF3LXJlY3RhbmdsZScsXG4gICdlYXJ0aC1nbG9iZS1mYWlsJyxcbiAgJ2VkaXQtYm94ZWQnLFxuICAnZWRpdC1lcmFzZScsXG4gICdlZGl0JyxcbiAgJ2VtYWlsLW1haWwtY2hlY2ttYXJrLWdyb3VwJyxcbiAgJ2VtYWlsJyxcbiAgJ2VtYmVkLWNpcmNsZScsXG4gICdleGNoYW5nZScsXG4gICdleHBhbmQtcGF0aGZpbmRlci1kb3Qtc3F1YXJlLXNlZ21lbnRhdGlvbicsXG4gICdmYWNlYm9vaycsXG4gICdmaWxlLWJsYW5rLWltYWdlLWxvYWQtbWFzaycsXG4gICdmaWxlLWJsYW5rLXNlYXJjaCcsXG4gICdmaWxlLWRvd25sb2FkJyxcbiAgJ2ZpbGUtdGV4dCcsXG4gICdmaWxlcy1saWJyYXJ5LWNvbnRlbnQnLFxuICAnZmlsZXMtbGlicmFyeScsXG4gICdmaWxlcycsXG4gICdmaWx0ZXItc29ydC1hZGQnLFxuICAnZmlsdGVyLXNvcnQtY2hlY2stbWFyaycsXG4gICdmaWx0ZXItc29ydC1kZWxldGUnLFxuICAnZmlsdGVyJyxcbiAgJ2ZsYWcnLFxuICAnZmxpcC1ob3Jpem9udGFsJyxcbiAgJ2ZsaXAtdmVydGljYWwnLFxuICAnZmxvcHB5LXNhdmUnLFxuICAnZmx5d2hlZWwtbWFyay1sb2dvJyxcbiAgJ2ZseXdoZWVsLXZpZXdlci1tYXJrLWxvZ28nLFxuICAnZm9sZGVyLWFkZCcsXG4gICdmb2xkZXItYmxhbmsnLFxuICAnZm9sZGVyLWNoZWNrZWQnLFxuICAnZm9sZGVyLWNvcHktZXhwYW5kLWFycm93LWRvd24nLFxuICAnZm9sZGVyLWNvcHktZXhwYW5kLWFycm93LXVwJyxcbiAgJ2ZvbGRlci1ncm91cCcsXG4gICdmb2xkZXItb3BlbicsXG4gICdmb2xkZXItc2hhcmUnLFxuICAnZm9ybS1tZXRhZGF0YS1lbGVtZW50JyxcbiAgJ2ZyZWUtcmlnaHRzJyxcbiAgJ2ZyZWVoYW5kLXZlY3Rvci1wb2x5JyxcbiAgJ2Z1bGwtc2NyZWVuLXpvb20nLFxuICAnZ2l0LWFkZC1icmFuY2gnLFxuICAnZ2l0LWJyYW5jaCcsXG4gICdnaXQtbWVyZ2UtZHJhZnQnLFxuICAnZ2l0LW1lcmdlJyxcbiAgJ2dpdC1wdWxsLXJlcXVlc3QtMicsXG4gICdnaXRodWItY29sb3ItbG9naW4nLFxuICAnZ2l0bGFiJyxcbiAgJ2dyYWR1YXRlLWhhdCcsXG4gICdncmlkLWRvdC1zcXVhcmUnLFxuICAnZ3JpZC1sYXlvdXQtOS1zcXVhcmUnLFxuICAnZ3JpZC1sYXlvdXQnLFxuICAnaGFtbWVyLWxlZ2FsLXNxdWFyZScsXG4gICdoYW1tZXItc2NyZXdkcml2ZXInLFxuICAnaGFuZC1tb25leS1jdXJyZW5jeScsXG4gICdoZWFkZXItZm9ybS1lbGVtZW50JyxcbiAgJ2hvbWUtbW9kZXJuLWRvb3InLFxuICAnaG9tZS1tb2Rlcm4tb3B0aW9uLWxpbmVzJyxcbiAgJ2h1bWFuLWFydGlmaWNpYWwtaW50ZWxsaWdlbmNlJyxcbiAgJ2ljb24tcGxhY2Vob2xkZXInLFxuICAnaW1hZ2UtcGhvdG8tY29weS1sZWZ0LWRvd24nLFxuICAnaW1hZ2UtcGljdHVyZS1zcXVhcmUnLFxuICAnaW5mb3JtYXRpb24tY2lyY2xlJyxcbiAgJ2ludm9pY2UtY2hlY2ttYXJrLXBhaWQnLFxuICAnaW52b2ljZScsXG4gICdpdGFsaWMnLFxuICAnaXRlbXMtZ3JvdXAtZWxlbWVudHMnLFxuICAna2V5JyxcbiAgJ2tleWJvYXJkJyxcbiAgJ2tleWNoYWluJyxcbiAgJ2xhYmVsLXRhZycsXG4gICdsYXB0b3AtaGVhbHRoLW1lZGljYWwtY3Jvc3MnLFxuICAnbGF5ZXJzJyxcbiAgJ2xheW91dC1ncmlkJyxcbiAgJ2xheW91dCcsXG4gICdsaW5lJyxcbiAgJ2xpbmstdW5saW5rJyxcbiAgJ2xpbmsnLFxuICAnbGlua2VkaW4nLFxuICAnbGludXgnLFxuICAnbGlzdC1wYXJhZ3JhcGgtbnVtYmVyJyxcbiAgJ2xpc3QtcGFyYWdyYXBoJyxcbiAgJ2xpc3QtdGVzdC1sYWItZmxhc2snLFxuICAnbGl2ZXdpcmUtdG9vbCcsXG4gICdsb2FkaW5nLXN0YXR1cy1jaGVja21hcmsnLFxuICAnbG9jay11bmxvY2snLFxuICAnbG9jaycsXG4gICdsb2dvdXQnLFxuICAnbHVuZycsXG4gICdsdW5ncycsXG4gICdtYXJrZG93bicsXG4gICdtZWFzdXJlLWFuZ2xlJyxcbiAgJ21lYXN1cmUtcnVsZXItY2FsaWJyYXRpb24nLFxuICAnbWVkaWEtbGlicmFyeS1pbXBvcnRzLWRvd2xvYWQnLFxuICAnbWVudS1idXJnZXItaGFuZGxlJyxcbiAgJ21lbnUtaG9yaXpvbnRhbCcsXG4gICdtZW51LWxpc3QtZm9ybS1zcXVhcmUnLFxuICAnbWVudS12ZXJ0aWNhbCcsXG4gICdtZXNzYWdlLWNoYXQtaW5mbycsXG4gICdtZXNzYWdlLWNoYXQtcXVlc3Rpb24tc3VwcG9ydCcsXG4gICdtZXNzYWdlLWNoZWNrbWFyay1zZW50JyxcbiAgJ21lc3NhZ2UtcXVlc3Rpb24tY2hlY2ttYXJrJyxcbiAgJ21pY3JvcGhvbmUtbWljLXJlYy1jaXJjbGUnLFxuICAnbWljcm9waG9uZS1taWMtcmVjJyxcbiAgJ21pY3JvcGhvbmUtbWljLXJlY29yZGluZy1jaXJjbGUnLFxuICAnbWludXMnLFxuICAnbW9kYWxpdGllcycsXG4gICdtb2xlY3VsZScsXG4gICdtb25leS1jb2luJyxcbiAgJ21vbmV5LWRvbGxhcicsXG4gICdtb25leScsXG4gICdtb25pdG9yLWNvbXB1dGVyJyxcbiAgJ21vdXNlLWJpZycsXG4gICdtb3ZlJyxcbiAgJ211c2ljLXBsYXktcmVzdW1lJyxcbiAgJ211c2ljLXN0b3AnLFxuICAnbXV0ZScsXG4gICduZXR3b3JrLXN0b3JhZ2UtYWxlcnQnLFxuICAnbm90ZWJvb2stYWRkLXBsdXMnLFxuICAnbm90ZWJvb2stb3BlbicsXG4gICdub3RlYm9vay1wZW4tZWRpdCcsXG4gICdub3RlYm9vaycsXG4gICdub3Rlcy1wZW4nLFxuICAnb2JqZWN0LXNlYXJjaC16b29tLXBsdXMnLFxuICAnb3BlbicsXG4gICdwYWludC1yb2xsZXInLFxuICAncGF1c2UnLFxuICAncGVuLWVkaXQtY2lyY2xlJyxcbiAgJ3BlbmNpbC1lZGl0LWNyZWF0ZScsXG4gICdwaG90by1lZGl0LWJyaWdodG5lc3MtaW52ZXJ0JyxcbiAgJ3BpZS1jaGFydCcsXG4gICdwaWUtZ3JhcGgtY2hhcnQtc2FtcGxlJyxcbiAgJ3BsdXMtYWRkLXJlY3RhbmdsZScsXG4gICdwb2x5Z29uJyxcbiAgJ3ByaXZhdGUtbW9kZS1wcm90ZWN0aW9uLWNpcmNsZScsXG4gICdwcm90ZWN0aW9uLXRhcmdldCcsXG4gICdwcm90ZWN0aXZlLW1hc2snLFxuICAncXVlc3Rpb24tY2lyY2xlJyxcbiAgJ3F1b3RlJyxcbiAgJ3JhZGlvbG9neS1zY2FuLWNpcmNsZScsXG4gICdyYWRpb2xvZ3ktc2NhbicsXG4gICdyZWFkZXItc3R1ZGllcycsXG4gICdyb3RhdGUtYXJyb3ctbWFudWFsJyxcbiAgJ3JvdGF0ZS1pdGVtLWxlZnQnLFxuICAncm90YXRlLWl0ZW0tcmlnaHQnLFxuICAncm90YXRlLXJlZnJlc2gnLFxuICAncm90YXRlJyxcbiAgJ3J1bGVyLWJpZGlyZWN0aW9uYWwnLFxuICAncnVsZXInLFxuICAnc2Nhbm5lcicsXG4gICdzZWFyY2gtbG9vcCcsXG4gICdzZWFyY2gtdXNlci1wcm9maWxlLXBlcnNvbicsXG4gICdzZWFyY2gtem9vbS1taW51cycsXG4gICdzZWFyY2gtem9vbS1wbHVzJyxcbiAgJ3NlYXJjaCcsXG4gICdzZWN0aW9uLWZvcm0tZWxlbWVudCcsXG4gICdzZW5kLW1lc3NhZ2Utc2hhcmUnLFxuICAnc2VydmVyLWNoZWNrbWFyaycsXG4gICdzZXJ2ZXItZGF0YWJhc2UtZW5kcG9pbnQnLFxuICAnc2VydmVyLWRhdGFiYXNlcy1jaGVja21hcmstdXNlcicsXG4gICdzZXJ2ZXItZGF0YWJhc2VzLWNvbm5lY3QnLFxuICAnc2VydmVyLWRhdGFiYXNlcy1kb3dubG9hZCcsXG4gICdzZXJ2ZXItZGF0YWJhc2VzLWtleS1wcm90ZWN0aW9uJyxcbiAgJ3NlcnZlci1kYXRhYmFzZXMtbWluaW1hbC1kb3dubG9hZCcsXG4gICdzZXJ2ZXItZGF0YWJhc2VzLXN5bmMtaW1wb3J0JyxcbiAgJ3NlcnZlci1kYXRhYmFzZXMtc3luYycsXG4gICdzZXJ2ZXItdXBsb2FkJyxcbiAgJ3NlcnZlcicsXG4gICdzZXJ2ZXJzLWRhdGFiYXNlJyxcbiAgJ3NldHRpbmctZ2VhcicsXG4gICdzZXR0aW5ncy1hZGp1c3QnLFxuICAnc2V0dGluZ3MtZ2Vhci1zcXVhcmUnLFxuICAnc2V0dGluZ3MtZ2VhcicsXG4gICdzZXR0aW5ncy1zZWxlY3QnLFxuICAnc2hhcGVzLW9iamVjdHMnLFxuICAnc2hhcmUnLFxuICAnc2hpZWxkLXByb3RlY3QnLFxuICAnc2hvdy12aXNpYmxlJyxcbiAgJ3NtaWxleS1lbW9qaS1mYWNlJyxcbiAgJ3NwZWVkLWRhc2hib2FyZCcsXG4gICdzcXVhcmUtZmlsbC1vdXRsaW5lJyxcbiAgJ3NxdWFyZS1maWxsJyxcbiAgJ3NxdWFyZS1vdXRsaW5lJyxcbiAgJ3N0YXInLFxuICAnc3RhcnMtbGlnaHQtc3BhcmtsZScsXG4gICdzdG9tYWNoJyxcbiAgJ3N0b3AtbWludXMnLFxuICAnc3RyZXRjaC12ZXJ0aWNhbCcsXG4gICdzdWJzdHJhY3QtZ3JvdXAnLFxuICAnc3dpdGNoJyxcbiAgJ3RhcmdldC1zcGFjZS1vYmplY3Qtc2VsZWN0JyxcbiAgJ3RhcmdldCcsXG4gICd0YXNrbGlzdC10by1kby1jaGVja21hcmsnLFxuICAndGVjaG5vbG9neS1jdWJlLTNkJyxcbiAgJ3Rlc3QtbGFiLWZsYXNrJyxcbiAgJ3RleHQtYm9sZCcsXG4gICd0ZXh0LWNyb3NzJyxcbiAgJ3RleHQtaDEnLFxuICAndGV4dC1oMicsXG4gICd0ZXh0LWlucHV0LWZvcm0nLFxuICAndGV4dC1sb25nJyxcbiAgJ3RleHQtc2hvcnQtZm9ybS1lbGVtZW50JyxcbiAgJ3RleHQtdW5kZXJsaW5lJyxcbiAgJ3RodW1icy11cC1saWtlJyxcbiAgJ3RpbWVyLWNsb2NrLXN0eWxlJyxcbiAgJ3RyYXNoLWRlbGV0ZScsXG4gICd0d2l0dGVyJyxcbiAgJ3VuZG9uZS11bmNoZWNrLXVudHJhY2tlZCcsXG4gICd1bmxpbWl0ZWQtcmVwZWF0LXN1YnNjcmlwdGlvbi1jaXJjbGUnLFxuICAndXBsb2FkJyxcbiAgJ3VzZXItY2hlY2tlZCcsXG4gICd1c2VyLWRlbGV0ZS1jcm9zcycsXG4gICd1c2VyLWRvY3VtZW50JyxcbiAgJ3VzZXItZ3JvdXAnLFxuICAndXNlci1rZXknLFxuICAndXNlci1sb2NrJyxcbiAgJ3VzZXItcHJvZmlsZS1jYXJkcy1wb29sJyxcbiAgJ3VzZXItcHJvZmlsZS1ncm91cC1kaXNjb3ZlcnknLFxuICAndXNlci1zZXR0aW5nLWdlYXInLFxuICAndXNlcicsXG4gICd2aWRlby1wbGF5ZXItY29udHJvbHMnLFxuICAndmlzaWJsZS1leWUtaGlkZGVuJyxcbiAgJ3ZvbHVtZS1mdWxsJyxcbiAgJ3dhcm5pbmctY2lyY2xlJyxcbiAgJ3dhcm5pbmcnLFxuICAnd2luZG93LWZpbmRlci1yZXNpemUtYXJyb3ctZG93bicsXG4gICd3aW5kb3ctZmluZGVyLXJlc2l6ZS1hcnJvdy11cCcsXG4gICd3aW5kb3ctcmVzaXplLWxlZnQnLFxuICAnd2luZG93LXJlc2l6ZS1yaWdodCcsXG4gICd3aW5kb3ctem9vbS1wbHVzLWxvdXBlJyxcbiAgJ3dpbmRvd3MnLFxuICAnd29ya3NwYWNlLW1vZGUnLFxuICAneW91dHViZScsXG4gICd6ZW5kZXNrLWxvZ28nLFxuXTtcbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable @rx-angular/prefer-no-layout-sensitive-apis */
2
2
  import { animate, style, transition, trigger } from '@angular/animations';
3
- import { Component, computed, effect, Input, input, model } from '@angular/core';
3
+ import { Component, computed, effect, Input, input, model, signal } from '@angular/core';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/cdk/overlay";
6
6
  import * as i2 from "./popover-panel/popover-panel.component";
@@ -24,6 +24,23 @@ export class FwPopoverComponent {
24
24
  return delayMap[this.delay()];
25
25
  });
26
26
  this.showCaret = input(true);
27
+ this.activePositionPair = signal(null);
28
+ // for mapping from the connectionPairs to a named position
29
+ this.panelPosition = computed(() => {
30
+ const currentPosition = this.activePositionPair()?.connectionPair;
31
+ if (!currentPosition) {
32
+ return this.position;
33
+ }
34
+ const positionNames = Object.keys(this.positionMap);
35
+ const activePositionName = positionNames.find(positionName => {
36
+ const pos = this.positionMap[positionName];
37
+ return pos.originX === currentPosition.originX &&
38
+ pos.originY === currentPosition.originY &&
39
+ pos.overlayX === currentPosition.overlayX &&
40
+ pos.overlayY === currentPosition.overlayY;
41
+ });
42
+ return (activePositionName || this.position);
43
+ });
27
44
  this.positionMap = {
28
45
  'above': { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom' },
29
46
  'above-left': { originX: 'center', originY: 'top', overlayX: 'end', overlayY: 'bottom', offsetX: 40 },
@@ -38,6 +55,36 @@ export class FwPopoverComponent {
38
55
  'right-above': { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'bottom', offsetY: 37 },
39
56
  'right-below': { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'top', offsetY: -40 },
40
57
  };
58
+ /**
59
+ * Gets a list of fallback positions for the selected one
60
+ * Preserves the primary axis i.e. which side of the origin the panel is on
61
+ */
62
+ this.getFallbackPositions = () => {
63
+ const positionSplitRegex = /(?<primary>[a-z]\w+)-*(?<secondary>[a-z]\w+)*/;
64
+ const { primary, secondary } = positionSplitRegex.exec(this.position).groups;
65
+ // '' represents a primary axis with no secondary i.e. 'above'
66
+ // fallbacks if no secondary position
67
+ const primaryAxisToFallbacks = {
68
+ 'left': ['', 'below', 'above'],
69
+ 'right': ['', 'below', 'above'],
70
+ 'above': ['', 'left', 'right'],
71
+ 'below': ['', 'left', 'right'],
72
+ };
73
+ // preference order for fallbacks
74
+ const secondaryPositionFallbacks = {
75
+ 'left': ['left', '', 'right'],
76
+ 'right': ['right', '', 'left'],
77
+ 'above': ['above', '', 'below'],
78
+ 'below': ['below', '', 'above'],
79
+ };
80
+ const secondaryOptions = secondaryPositionFallbacks[secondary] || primaryAxisToFallbacks[primary];
81
+ const positionArray = secondaryOptions.map(secondaryOption => {
82
+ const addDash = secondaryOption ? '-' : '';
83
+ const parsedOptionName = primary + addDash + secondaryOption;
84
+ return this.positionMap[parsedOptionName];
85
+ });
86
+ return positionArray;
87
+ };
41
88
  this.registerEventListeners = effect(() => {
42
89
  const trigger = this.trigger();
43
90
  if (!this.trigger) {
@@ -82,7 +129,7 @@ export class FwPopoverComponent {
82
129
  }
83
130
  }
84
131
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
85
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: FwPopoverComponent, selector: "fw-popover", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: false, isRequired: false, transformFunction: null }, trigger: { classPropertyName: "trigger", publicName: "trigger", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, action: { classPropertyName: "action", publicName: "action", isSignal: false, isRequired: false, transformFunction: null }, flyoutPanel: { classPropertyName: "flyoutPanel", publicName: "flyoutPanel", isSignal: false, isRequired: false, transformFunction: null }, delay: { classPropertyName: "delay", publicName: "delay", isSignal: true, isRequired: false, transformFunction: null }, showCaret: { classPropertyName: "showCaret", publicName: "showCaret", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange" }, ngImport: i0, template: "<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger()\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayHasBackdrop]=\"action==='click'\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayPositions]=\"[positionMap[position]]\"\n (backdropClick)=\"backdropClick()\"\n (detach)=\"backdropClick()\">\n <fw-popover-panel\n @fadeInFadeOut\n [position]=\"position\"\n (mouseLeave)=\"handlePanelLeave()\"\n [showCaret]=\"showCaret()\">\n <ng-content></ng-content>\n </fw-popover-panel>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: i2.FwPopoverPanelComponent, selector: "fw-popover-panel", inputs: ["position", "showCaret"], outputs: ["mouseLeave"] }], animations: [
132
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: FwPopoverComponent, selector: "fw-popover", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: false, isRequired: false, transformFunction: null }, trigger: { classPropertyName: "trigger", publicName: "trigger", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, action: { classPropertyName: "action", publicName: "action", isSignal: false, isRequired: false, transformFunction: null }, flyoutPanel: { classPropertyName: "flyoutPanel", publicName: "flyoutPanel", isSignal: false, isRequired: false, transformFunction: null }, delay: { classPropertyName: "delay", publicName: "delay", isSignal: true, isRequired: false, transformFunction: null }, showCaret: { classPropertyName: "showCaret", publicName: "showCaret", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange" }, ngImport: i0, template: "<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger()\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositionStrategy]=\"\"\n [cdkConnectedOverlayHasBackdrop]=\"action==='click'\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayPositions]=\"getFallbackPositions()\"\n [cdkConnectedOverlayViewportMargin]=\"10\"\n (positionChange)=\"activePositionPair.set($event)\"\n (backdropClick)=\"backdropClick()\"\n (detach)=\"backdropClick()\">\n <fw-popover-panel\n @fadeInFadeOut\n [position]=\"panelPosition()\"\n (mouseLeave)=\"handlePanelLeave()\"\n [showCaret]=\"showCaret()\">\n <ng-content></ng-content>\n </fw-popover-panel>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: i2.FwPopoverPanelComponent, selector: "fw-popover-panel", inputs: ["position", "showCaret"], outputs: ["mouseLeave"] }], animations: [
86
133
  trigger('fadeInFadeOut', [
87
134
  transition(':enter', [
88
135
  style({ opacity: 0 }),
@@ -106,7 +153,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
106
153
  animate('200ms', style({ opacity: 0 })),
107
154
  ]),
108
155
  ]),
109
- ], template: "<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger()\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayHasBackdrop]=\"action==='click'\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayPositions]=\"[positionMap[position]]\"\n (backdropClick)=\"backdropClick()\"\n (detach)=\"backdropClick()\">\n <fw-popover-panel\n @fadeInFadeOut\n [position]=\"position\"\n (mouseLeave)=\"handlePanelLeave()\"\n [showCaret]=\"showCaret()\">\n <ng-content></ng-content>\n </fw-popover-panel>\n</ng-template>\n" }]
156
+ ], template: "<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger()\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositionStrategy]=\"\"\n [cdkConnectedOverlayHasBackdrop]=\"action==='click'\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayPositions]=\"getFallbackPositions()\"\n [cdkConnectedOverlayViewportMargin]=\"10\"\n (positionChange)=\"activePositionPair.set($event)\"\n (backdropClick)=\"backdropClick()\"\n (detach)=\"backdropClick()\">\n <fw-popover-panel\n @fadeInFadeOut\n [position]=\"panelPosition()\"\n (mouseLeave)=\"handlePanelLeave()\"\n [showCaret]=\"showCaret()\">\n <ng-content></ng-content>\n </fw-popover-panel>\n</ng-template>\n" }]
110
157
  }], propDecorators: { position: [{
111
158
  type: Input
112
159
  }], action: [{
@@ -114,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
114
161
  }], flyoutPanel: [{
115
162
  type: Input
116
163
  }] } });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdFQUFnRTtBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUWpGLE1BQU0sUUFBUSxHQUFhO0lBQ3pCLE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLEdBQUc7SUFDWixNQUFNLEVBQUUsR0FBRztDQUNaLENBQUE7QUFFRDs7O0dBR0c7QUFpQkgsTUFBTSxPQUFPLGtCQUFrQjtJQWhCL0I7UUFpQlcsYUFBUSxHQUcyQixPQUFPLENBQUM7UUFDcEQsWUFBTyxHQUFHLEtBQUssRUFBOEQsQ0FBQztRQUM5RSxXQUFNLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLFdBQU0sR0FBMkIsWUFBWSxDQUFDO1FBRXZELFVBQUssR0FBRyxLQUFLLENBQWMsT0FBTyxDQUFDLENBQUM7UUFDcEMsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdEIsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUE7UUFDRixjQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhCLGdCQUFXLEdBQXlDO1lBQ2xELE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUU7WUFDdEYsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO1lBQ3JHLGFBQWEsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pHLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDdEYsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO1lBQ3JHLGFBQWEsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pHLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUU7WUFDcEYsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO1lBQ3ZHLFlBQVksRUFBRSxF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LEtBQUs7Z0JBTUcsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAcngtYW5ndWxhci9wcmVmZXItbm8tbGF5b3V0LXNlbnNpdGl2ZS1hcGlzICovXG5pbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ2RrT3ZlcmxheU9yaWdpbiwgQ29ubmVjdGVkUG9zaXRpb24sIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneU9yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgSW5wdXQsIGlucHV0LCBtb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW91c2VFdmVudCB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgRndQb3BvdmVyUGFuZWxDb21wb25lbnQgfSBmcm9tICcuL3BvcG92ZXItcGFuZWwvcG9wb3Zlci1wYW5lbC5jb21wb25lbnQnO1xuXG50eXBlIERlbGF5TGVuZ3RoID0gJ25vbmUnIHwgJ3Nob3J0JyB8ICdsb25nJztcbnR5cGUgRGVsYXlNYXAgPSB7IFtLIGluIERlbGF5TGVuZ3RoXTogbnVtYmVyIH07XG5cbmNvbnN0IGRlbGF5TWFwOiBEZWxheU1hcCA9IHtcbiAgJ25vbmUnOiAwLFxuICAnc2hvcnQnOiA0MDAsXG4gICdsb25nJzogNzAwLFxufVxuXG4vKipcbiAqIGNvbXBvbmVudCBmb3IgbW91bnRpbmcgY29udGVudCBpbiBhIGZsb2F0aW5nIGNvbnRhaW5lclxuICogQHNlZSBbVmlzaW9uIERvY3NdKGh0dHBzOi8vY2RuLmZseXdoZWVsLmlvL2RvY3MvdmlzaW9uL2xhdGVzdC8/cGF0aD0vZG9jcy9jb21wb25lbnRzLXBvcG92ZXItLWRvY3MpXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z3LXBvcG92ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogW10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdmYWRlSW5GYWRlT3V0JywgW1xuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDAgfSksXG4gICAgICAgIGFuaW1hdGUoJzE1MG1zJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKSxcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICBhbmltYXRlKCcyMDBtcycsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSksXG4gICAgICBdKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRndQb3BvdmVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcG9zaXRpb246ICdhYm92ZScgfCAnYWJvdmUtbGVmdCcgfCAnYWJvdmUtcmlnaHQnIHxcbiAgICAnYmVsb3cnIHwgJ2JlbG93LWxlZnQnIHwgJ2JlbG93LXJpZ2h0JyB8XG4gICAgJ2xlZnQnIHwgJ2xlZnQtYWJvdmUnIHwgJ2xlZnQtYmVsb3cnIHxcbiAgICAncmlnaHQnIHwgJ3JpZ2h0LWFib3ZlJyB8ICdyaWdodC1iZWxvdycgPSAnYWJvdmUnO1xuICB0cmlnZ2VyID0gaW5wdXQ8Q2RrT3ZlcmxheU9yaWdpbiB8IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneU9yaWdpbj4oKTtcbiAgaXNPcGVuID0gbW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBASW5wdXQoKSBhY3Rpb246ICdtb3VzZWVudGVyJyB8ICdjbGljaycgPSAnbW91c2VlbnRlcic7XG4gIEBJbnB1dCgpIGZseW91dFBhbmVsOiBGd1BvcG92ZXJQYW5lbENvbXBvbmVudDtcbiAgZGVsYXkgPSBpbnB1dDxEZWxheUxlbmd0aD4oJ3Nob3J0Jyk7XG4gIGRlbGF5TXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIGRlbGF5TWFwW3RoaXMuZGVsYXkoKV07XG4gIH0pXG4gIHNob3dDYXJldCA9IGlucHV0KHRydWUpO1xuXG4gIHBvc2l0aW9uTWFwOiB7IFtrZXk6IHN0cmluZ106IENvbm5lY3RlZFBvc2l0aW9uIH0gPSB7XG4gICAgJ2Fib3ZlJzogeyBvcmlnaW5YOiAnY2VudGVyJywgb3JpZ2luWTogJ3RvcCcsIG92ZXJsYXlYOiAnY2VudGVyJywgb3ZlcmxheVk6ICdib3R0b20nIH0sXG4gICAgJ2Fib3ZlLWxlZnQnOiB7IG9yaWdpblg6ICdjZW50ZXInLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ2JvdHRvbScsIG9mZnNldFg6IDQwIH0sXG4gICAgJ2Fib3ZlLXJpZ2h0JzogeyBvcmlnaW5YOiAnY2VudGVyJywgb3JpZ2luWTogJ3RvcCcsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ2JvdHRvbScsIG9mZnNldFg6IC00MCB9LFxuICAgICdiZWxvdyc6IHsgb3JpZ2luWDogJ2NlbnRlcicsIG9yaWdpblk6ICdib3R0b20nLCBvdmVybGF5WDogJ2NlbnRlcicsIG92ZXJsYXlZOiAndG9wJyB9LFxuICAgICdiZWxvdy1sZWZ0JzogeyBvcmlnaW5YOiAnY2VudGVyJywgb3JpZ2luWTogJ2JvdHRvbScsIG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICd0b3AnLCBvZmZzZXRYOiA0MCB9LFxuICAgICdiZWxvdy1yaWdodCc6IHsgb3JpZ2luWDogJ2NlbnRlcicsIG9yaWdpblk6ICdib3R0b20nLCBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICd0b3AnLCBvZmZzZXRYOiAtNDAgfSxcbiAgICAnbGVmdCc6IHsgb3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ2NlbnRlcicsIG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICdjZW50ZXInIH0sXG4gICAgJ2xlZnQtYWJvdmUnOiB7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICdjZW50ZXInLCBvdmVybGF5WDogJ2VuZCcsIG92ZXJsYXlZOiAnYm90dG9tJywgb2Zmc2V0WTogMzcgfSxcbiAgICAnbGVmdC1iZWxvdyc6IHsgb3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ2NlbnRlcicsIG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICd0b3AnLCBvZmZzZXRZOiAtNDAgfSxcbiAgICAncmlnaHQnOiB7IG9yaWdpblg6ICdlbmQnLCBvcmlnaW5ZOiAnY2VudGVyJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAnY2VudGVyJyB9LFxuICAgICdyaWdodC1hYm92ZSc6IHsgb3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICdjZW50ZXInLCBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICdib3R0b20nLCBvZmZzZXRZOiAzNyB9LFxuICAgICdyaWdodC1iZWxvdyc6IHsgb3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICdjZW50ZXInLCBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICd0b3AnLCBvZmZzZXRZOiAtNDAgfSxcbiAgfTtcblxuICByZWdpc3RlckV2ZW50TGlzdGVuZXJzID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB0cmlnZ2VyID0gdGhpcy50cmlnZ2VyKCkgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAoIXRoaXMudHJpZ2dlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFjdGlvbiA9PT0gJ21vdXNlZW50ZXInICYmICF0cmlnZ2VyLm9ubW91c2VlbnRlcikge1xuICAgICAgdHJpZ2dlci5vbmNsaWNrID0gdW5kZWZpbmVkO1xuICAgICAgdHJpZ2dlci5zdHlsZS5jdXJzb3IgPSAncG9pbnRlcic7XG5cbiAgICAgIGxldCB0aW1lcklkO1xuXG4gICAgICB0cmlnZ2VyLm9ubW91c2VlbnRlciA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGltZXJJZCA9IHRoaXMub3Blbk9uRGVsYXkoKTtcbiAgICAgIH07XG5cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgTW91c2VFdmVudFxuICAgICAgdHJpZ2dlci5vbm1vdXNlbGVhdmUgPSAoZTogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuXG4gICAgICAgIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSAoZS5yZWxhdGVkVGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgaWYgKCFyZWxhdGVkVGFyZ2V0Py5jbGFzc0xpc3QuY29udGFpbnMoJ2Z3LXBvcG92ZXItcGFuZWwnKSAmJiAhcmVsYXRlZFRhcmdldD8uY2xhc3NMaXN0LmNvbnRhaW5zKCdmdy1wb3BvdmVyLWNhcmV0JykgJiYgIXJlbGF0ZWRUYXJnZXQ/LmNsYXNzTGlzdC5jb250YWlucygnY2RrLW92ZXJsYXktcGFuZScpKSB7XG4gICAgICAgICAgdGhpcy5pc09wZW4uc2V0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hY3Rpb24gPT09ICdjbGljaycgJiYgIXRyaWdnZXIub25jbGljaykge1xuICAgICAgdHJpZ2dlci5vbm1vdXNlZW50ZXIgPSB1bmRlZmluZWQ7XG4gICAgICB0cmlnZ2VyLm9ubW91c2VsZWF2ZSA9IHVuZGVmaW5lZDtcblxuICAgICAgdHJpZ2dlci5vbmNsaWNrID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmlzT3Blbi51cGRhdGUoKHZhbCkgPT4gIXZhbCk7XG4gICAgICB9O1xuICAgIH1cbiAgfSlcblxuICBvcGVuT25EZWxheSgpOiBudW1iZXIge1xuICAgIHJldHVybiB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmlzT3Blbi5zZXQodHJ1ZSk7XG4gICAgfSwgdGhpcy5kZWxheU1zKCkpXG4gIH1cblxuXG4gIGJhY2tkcm9wQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5pc09wZW4uc2V0KGZhbHNlKTtcbiAgfVxuXG4gIGhhbmRsZVBhbmVsTGVhdmUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWN0aW9uID09PSAnbW91c2VlbnRlcicpIHtcbiAgICAgIHRoaXMuaXNPcGVuLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxuZy10ZW1wbGF0ZVxuICBjZGtDb25uZWN0ZWRPdmVybGF5XG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cInRyaWdnZXIoKVwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJpc09wZW4oKVwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3BdPVwiYWN0aW9uPT09J2NsaWNrJ1wiXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlCYWNrZHJvcENsYXNzPVwiY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109XCJbcG9zaXRpb25NYXBbcG9zaXRpb25dXVwiXG4gIChiYWNrZHJvcENsaWNrKT1cImJhY2tkcm9wQ2xpY2soKVwiXG4gIChkZXRhY2gpPVwiYmFja2Ryb3BDbGljaygpXCI+XG4gIDxmdy1wb3BvdmVyLXBhbmVsXG4gICAgQGZhZGVJbkZhZGVPdXRcbiAgICBbcG9zaXRpb25dPVwicG9zaXRpb25cIlxuICAgIChtb3VzZUxlYXZlKT1cImhhbmRsZVBhbmVsTGVhdmUoKVwiXG4gICAgW3Nob3dDYXJldF09XCJzaG93Q2FyZXQoKVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9mdy1wb3BvdmVyLXBhbmVsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdFQUFnRTtBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF6RixNQUFNLFFBQVEsR0FBYTtJQUN6QixNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxHQUFHO0lBQ1osTUFBTSxFQUFFLEdBQUc7Q0FDWixDQUFBO0FBT0Q7OztHQUdHO0FBaUJILE1BQU0sT0FBTyxrQkFBa0I7SUFoQi9CO1FBaUJXLGFBQVEsR0FBbUIsT0FBTyxDQUFDO1FBQzVDLFlBQU8sR0FBRyxLQUFLLEVBQThELENBQUM7UUFDOUUsV0FBTSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUN0QixXQUFNLEdBQTJCLFlBQVksQ0FBQztRQUV2RCxVQUFLLEdBQUcsS0FBSyxDQUFjLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3RCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFBO1FBQ0YsY0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4Qix1QkFBa0IsR0FBRyxNQUFNLENBQWlDLElBQUksQ0FBQyxDQUFDO1FBQ2xFLDJEQUEyRDtRQUMzRCxrQkFBYSxHQUFHLFFBQVEsQ0FBaUIsR0FBRyxFQUFFO1lBQzVDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLGNBQWMsQ0FBQztZQUVsRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3JCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUN2QixDQUFDO1lBRUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFcEQsTUFBTSxrQkFBa0IsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO2dCQUMzRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLEdBQUcsQ0FBQyxPQUFPLEtBQUssZUFBZSxDQUFDLE9BQU87b0JBQzlDLEdBQUcsQ0FBQyxPQUFPLEtBQUssZUFBZSxDQUFDLE9BQU87b0JBQ3ZDLEdBQUcsQ0FBQyxRQUFRLEtBQUssZUFBZSxDQUFDLFFBQVE7b0JBQ3pDLEdBQUcsQ0FBQyxRQUFRLEtBQUssZUFBZSxDQUFDLFFBQVEsQ0FBQztZQUM1QyxDQUFDLENBQUMsQ0FBQTtZQUVGLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFtQixDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFBO1FBRUYsZ0JBQVcsR0FBeUM7WUFDbEQsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRTtZQUN0RixZQUFZLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7WUFDckcsYUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekcsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUN0RixZQUFZLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7WUFDckcsYUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekcsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRTtZQUNwRixZQUFZLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7WUFDdkcsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckcsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRTtZ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Iiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHJ4LWFuZ3VsYXIvcHJlZmVyLW5vLWxheW91dC1zZW5zaXRpdmUtYXBpcyAqL1xuaW1wb3J0IHsgYW5pbWF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENka092ZXJsYXlPcmlnaW4sIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSwgQ29ubmVjdGVkUG9zaXRpb24sIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneU9yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgSW5wdXQsIGlucHV0LCBtb2RlbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb3VzZUV2ZW50IH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBGd1BvcG92ZXJQYW5lbENvbXBvbmVudCB9IGZyb20gJy4vcG9wb3Zlci1wYW5lbC9wb3BvdmVyLXBhbmVsLmNvbXBvbmVudCc7XG5cbnR5cGUgRGVsYXlMZW5ndGggPSAnbm9uZScgfCAnc2hvcnQnIHwgJ2xvbmcnO1xudHlwZSBEZWxheU1hcCA9IHsgW0sgaW4gRGVsYXlMZW5ndGhdOiBudW1iZXIgfTtcblxuY29uc3QgZGVsYXlNYXA6IERlbGF5TWFwID0ge1xuICAnbm9uZSc6IDAsXG4gICdzaG9ydCc6IDQwMCxcbiAgJ2xvbmcnOiA3MDAsXG59XG5cbnR5cGUgUG9zaXRpb25PcHRpb24gPSAnYWJvdmUnIHwgJ2Fib3ZlLWxlZnQnIHwgJ2Fib3ZlLXJpZ2h0JyB8XG4gICAgJ2JlbG93JyB8ICdiZWxvdy1sZWZ0JyB8ICdiZWxvdy1yaWdodCcgfFxuICAgICdsZWZ0JyB8ICdsZWZ0LWFib3ZlJyB8ICdsZWZ0LWJlbG93JyB8XG4gICAgJ3JpZ2h0JyB8ICdyaWdodC1hYm92ZScgfCAncmlnaHQtYmVsb3cnO1xuXG4vKipcbiAqIGNvbXBvbmVudCBmb3IgbW91bnRpbmcgY29udGVudCBpbiBhIGZsb2F0aW5nIGNvbnRhaW5lclxuICogQHNlZSBbVmlzaW9uIERvY3NdKGh0dHBzOi8vY2RuLmZseXdoZWVsLmlvL2RvY3MvdmlzaW9uL2xhdGVzdC8/cGF0aD0vZG9jcy9jb21wb25lbnRzLXBvcG92ZXItLWRvY3MpXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z3LXBvcG92ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogW10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdmYWRlSW5GYWRlT3V0JywgW1xuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDAgfSksXG4gICAgICAgIGFuaW1hdGUoJzE1MG1zJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKSxcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICBhbmltYXRlKCcyMDBtcycsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSksXG4gICAgICBdKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRndQb3BvdmVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcG9zaXRpb246IFBvc2l0aW9uT3B0aW9uID0gJ2Fib3ZlJztcbiAgdHJpZ2dlciA9IGlucHV0PENka092ZXJsYXlPcmlnaW4gfCBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3lPcmlnaW4+KCk7XG4gIGlzT3BlbiA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcbiAgQElucHV0KCkgYWN0aW9uOiAnbW91c2VlbnRlcicgfCAnY2xpY2snID0gJ21vdXNlZW50ZXInO1xuICBASW5wdXQoKSBmbHlvdXRQYW5lbDogRndQb3BvdmVyUGFuZWxDb21wb25lbnQ7XG4gIGRlbGF5ID0gaW5wdXQ8RGVsYXlMZW5ndGg+KCdzaG9ydCcpO1xuICBkZWxheU1zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBkZWxheU1hcFt0aGlzLmRlbGF5KCldO1xuICB9KVxuICBzaG93Q2FyZXQgPSBpbnB1dCh0cnVlKTtcbiAgYWN0aXZlUG9zaXRpb25QYWlyID0gc2lnbmFsPENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZT4obnVsbCk7XG4gIC8vIGZvciBtYXBwaW5nIGZyb20gdGhlIGNvbm5lY3Rpb25QYWlycyB0byBhIG5hbWVkIHBvc2l0aW9uXG4gIHBhbmVsUG9zaXRpb24gPSBjb21wdXRlZDxQb3NpdGlvbk9wdGlvbj4oKCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRQb3NpdGlvbiA9IHRoaXMuYWN0aXZlUG9zaXRpb25QYWlyKCk/LmNvbm5lY3Rpb25QYWlyO1xuXG4gICAgaWYgKCFjdXJyZW50UG9zaXRpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLnBvc2l0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHBvc2l0aW9uTmFtZXMgPSBPYmplY3Qua2V5cyh0aGlzLnBvc2l0aW9uTWFwKTtcblxuICAgIGNvbnN0IGFjdGl2ZVBvc2l0aW9uTmFtZSA9IHBvc2l0aW9uTmFtZXMuZmluZChwb3NpdGlvbk5hbWUgPT4ge1xuICAgICAgY29uc3QgcG9zID0gdGhpcy5wb3NpdGlvbk1hcFtwb3NpdGlvbk5hbWVdO1xuICAgICAgcmV0dXJuIHBvcy5vcmlnaW5YID09PSBjdXJyZW50UG9zaXRpb24ub3JpZ2luWCAmJlxuICAgICAgcG9zLm9yaWdpblkgPT09IGN1cnJlbnRQb3NpdGlvbi5vcmlnaW5ZICYmXG4gICAgICBwb3Mub3ZlcmxheVggPT09IGN1cnJlbnRQb3NpdGlvbi5vdmVybGF5WCAmJlxuICAgICAgcG9zLm92ZXJsYXlZID09PSBjdXJyZW50UG9zaXRpb24ub3ZlcmxheVk7XG4gICAgfSlcblxuICAgIHJldHVybiAoYWN0aXZlUG9zaXRpb25OYW1lIHx8IHRoaXMucG9zaXRpb24pIGFzIFBvc2l0aW9uT3B0aW9uO1xuICB9KVxuXG4gIHBvc2l0aW9uTWFwOiB7IFtrZXk6IHN0cmluZ106IENvbm5lY3RlZFBvc2l0aW9uIH0gPSB7XG4gICAgJ2Fib3ZlJzogeyBvcmlnaW5YOiAnY2VudGVyJywgb3JpZ2luWTogJ3RvcCcsIG92ZXJsYXlYOiAnY2VudGVyJywgb3ZlcmxheVk6ICdib3R0b20nIH0sXG4gICAgJ2Fib3ZlLWxlZnQnOiB7IG9yaWdpblg6ICdjZW50ZXInLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ2JvdHRvbScsIG9mZnNldFg6IDQwIH0sXG4gICAgJ2Fib3ZlLXJpZ2h0JzogeyBvcmlnaW5YOiAnY2VudGVyJywgb3JpZ2luWTogJ3RvcCcsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ2JvdHRvbScsIG9mZnNldFg6IC00MCB9LFxuICAgICdiZWxvdyc6IHsgb3JpZ2luWDogJ2NlbnRlcicsIG9yaWdpblk6ICdib3R0b20nLCBvdmVybGF5WDogJ2NlbnRlcicsIG92ZXJsYXlZOiAndG9wJyB9LFxuICAgICdiZWxvdy1sZWZ0JzogeyBvcmlnaW5YOiAnY2VudGVyJywgb3JpZ2luWTogJ2JvdHRvbScsIG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICd0b3AnLCBvZmZzZXRYOiA0MCB9LFxuICAgICdiZWxvdy1yaWdodCc6IHsgb3JpZ2luWDogJ2NlbnRlcicsIG9yaWdpblk6ICdib3R0b20nLCBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICd0b3AnLCBvZmZzZXRYOiAtNDAgfSxcbiAgICAnbGVmdCc6IHsgb3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ2NlbnRlcicsIG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICdjZW50ZXInIH0sXG4gICAgJ2xlZnQtYWJvdmUnOiB7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICdjZW50ZXInLCBvdmVybGF5WDogJ2VuZCcsIG92ZXJsYXlZOiAnYm90dG9tJywgb2Zmc2V0WTogMzcgfSxcbiAgICAnbGVmdC1iZWxvdyc6IHsgb3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ2NlbnRlcicsIG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICd0b3AnLCBvZmZzZXRZOiAtNDAgfSxcbiAgICAncmlnaHQnOiB7IG9yaWdpblg6ICdlbmQnLCBvcmlnaW5ZOiAnY2VudGVyJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAnY2VudGVyJyB9LFxuICAgICdyaWdodC1hYm92ZSc6IHsgb3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICdjZW50ZXInLCBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICdib3R0b20nLCBvZmZzZXRZOiAzNyB9LFxuICAgICdyaWdodC1iZWxvdyc6IHsgb3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICdjZW50ZXInLCBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICd0b3AnLCBvZmZzZXRZOiAtNDAgfSxcbiAgfTtcblxuICAvKipcbiAgICogR2V0cyBhIGxpc3Qgb2YgZmFsbGJhY2sgcG9zaXRpb25zIGZvciB0aGUgc2VsZWN0ZWQgb25lXG4gICAqIFByZXNlcnZlcyB0aGUgcHJpbWFyeSBheGlzIGkuZS4gd2hpY2ggc2lkZSBvZiB0aGUgb3JpZ2luIHRoZSBwYW5lbCBpcyBvblxuICAgKi9cbiAgZ2V0RmFsbGJhY2tQb3NpdGlvbnMgPSAoKTogQ29ubmVjdGVkUG9zaXRpb25bXSA9PiB7XG4gICAgY29uc3QgcG9zaXRpb25TcGxpdFJlZ2V4ID0gLyg/PHByaW1hcnk+W2Etel1cXHcrKS0qKD88c2Vjb25kYXJ5PlthLXpdXFx3KykqLztcbiAgICBjb25zdCB7IHByaW1hcnksIHNlY29uZGFyeSB9ID0gcG9zaXRpb25TcGxpdFJlZ2V4LmV4ZWModGhpcy5wb3NpdGlvbikuZ3JvdXBzO1xuXG4gICAgLy8gJycgcmVwcmVzZW50cyBhIHByaW1hcnkgYXhpcyB3aXRoIG5vIHNlY29uZGFyeSBpLmUuICdhYm92ZSdcbiAgICAvLyBmYWxsYmFja3MgaWYgbm8gc2Vjb25kYXJ5IHBvc2l0aW9uXG4gICAgY29uc3QgcHJpbWFyeUF4aXNUb0ZhbGxiYWNrcyA9IHtcbiAgICAgICdsZWZ0JzogWycnLCAnYmVsb3cnLCAnYWJvdmUnXSxcbiAgICAgICdyaWdodCc6IFsnJywgJ2JlbG93JywgJ2Fib3ZlJ10sXG4gICAgICAnYWJvdmUnOiBbJycsICdsZWZ0JywgJ3JpZ2h0J10sXG4gICAgICAnYmVsb3cnOiBbJycsICdsZWZ0JywgJ3JpZ2h0J10sXG4gICAgfVxuXG4gICAgLy8gcHJlZmVyZW5jZSBvcmRlciBmb3IgZmFsbGJhY2tzXG4gICAgY29uc3Qgc2Vjb25kYXJ5UG9zaXRpb25GYWxsYmFja3MgPSB7XG4gICAgICAnbGVmdCc6IFsnbGVmdCcsICcnLCAncmlnaHQnXSxcbiAgICAgICdyaWdodCc6IFsncmlnaHQnLCAnJywgJ2xlZnQnXSxcbiAgICAgICdhYm92ZSc6IFsnYWJvdmUnLCAnJywgJ2JlbG93J10sXG4gICAgICAnYmVsb3cnOiBbJ2JlbG93JywgJycsICdhYm92ZSddLFxuICAgIH1cblxuICAgIGNvbnN0IHNlY29uZGFyeU9wdGlvbnMgPSBzZWNvbmRhcnlQb3NpdGlvbkZhbGxiYWNrc1tzZWNvbmRhcnldIHx8IHByaW1hcnlBeGlzVG9GYWxsYmFja3NbcHJpbWFyeV07XG5cbiAgICBjb25zdCBwb3NpdGlvbkFycmF5ID0gc2Vjb25kYXJ5T3B0aW9ucy5tYXAoc2Vjb25kYXJ5T3B0aW9uID0+IHtcbiAgICAgIGNvbnN0IGFkZERhc2ggPSBzZWNvbmRhcnlPcHRpb24gPyAnLScgOiAnJztcbiAgICAgIGNvbnN0IHBhcnNlZE9wdGlvbk5hbWUgPSBwcmltYXJ5ICsgYWRkRGFzaCArIHNlY29uZGFyeU9wdGlvbjtcbiAgICAgIHJldHVybiB0aGlzLnBvc2l0aW9uTWFwW3BhcnNlZE9wdGlvbk5hbWVdO1xuICAgIH0pXG5cbiAgICByZXR1cm4gcG9zaXRpb25BcnJheTtcbiAgfVxuXG4gIHJlZ2lzdGVyRXZlbnRMaXN0ZW5lcnMgPSBlZmZlY3QoKCkgPT4ge1xuXG4gICAgY29uc3QgdHJpZ2dlciA9IHRoaXMudHJpZ2dlcigpIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaWYgKCF0aGlzLnRyaWdnZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hY3Rpb24gPT09ICdtb3VzZWVudGVyJyAmJiAhdHJpZ2dlci5vbm1vdXNlZW50ZXIpIHtcbiAgICAgIHRyaWdnZXIub25jbGljayA9IHVuZGVmaW5lZDtcbiAgICAgIHRyaWdnZXIuc3R5bGUuY3Vyc29yID0gJ3BvaW50ZXInO1xuXG4gICAgICBsZXQgdGltZXJJZDtcblxuICAgICAgdHJpZ2dlci5vbm1vdXNlZW50ZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRpbWVySWQgPSB0aGlzLm9wZW5PbkRlbGF5KCk7XG4gICAgICB9O1xuXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIE1vdXNlRXZlbnRcbiAgICAgIHRyaWdnZXIub25tb3VzZWxlYXZlID0gKGU6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lcklkKTtcblxuICAgICAgICBjb25zdCByZWxhdGVkVGFyZ2V0ID0gKGUucmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG4gICAgICAgIGlmICghcmVsYXRlZFRhcmdldD8uY2xhc3NMaXN0LmNvbnRhaW5zKCdmdy1wb3BvdmVyLXBhbmVsJykgJiYgIXJlbGF0ZWRUYXJnZXQ/LmNsYXNzTGlzdC5jb250YWlucygnZnctcG9wb3Zlci1jYXJldCcpICYmICFyZWxhdGVkVGFyZ2V0Py5jbGFzc0xpc3QuY29udGFpbnMoJ2Nkay1vdmVybGF5LXBhbmUnKSkge1xuICAgICAgICAgIHRoaXMuaXNPcGVuLnNldChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYWN0aW9uID09PSAnY2xpY2snICYmICF0cmlnZ2VyLm9uY2xpY2spIHtcbiAgICAgIHRyaWdnZXIub25tb3VzZWVudGVyID0gdW5kZWZpbmVkO1xuICAgICAgdHJpZ2dlci5vbm1vdXNlbGVhdmUgPSB1bmRlZmluZWQ7XG5cbiAgICAgIHRyaWdnZXIub25jbGljayA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5pc09wZW4udXBkYXRlKCh2YWwpID0+ICF2YWwpO1xuICAgICAgfTtcbiAgICB9XG4gIH0pXG5cbiAgb3Blbk9uRGVsYXkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pc09wZW4uc2V0KHRydWUpO1xuICAgIH0sIHRoaXMuZGVsYXlNcygpKVxuICB9XG5cblxuICBiYWNrZHJvcENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuaXNPcGVuLnNldChmYWxzZSk7XG4gIH1cblxuICBoYW5kbGVQYW5lbExlYXZlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFjdGlvbiA9PT0gJ21vdXNlZW50ZXInKSB7XG4gICAgICB0aGlzLmlzT3Blbi5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8bmctdGVtcGxhdGVcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJ0cmlnZ2VyKClcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwiaXNPcGVuKClcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uU3RyYXRlZ3ldPVwiXCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcF09XCJhY3Rpb249PT0nY2xpY2snXCJcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3M9XCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25zXT1cImdldEZhbGxiYWNrUG9zaXRpb25zKClcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVZpZXdwb3J0TWFyZ2luXT1cIjEwXCJcbiAgKHBvc2l0aW9uQ2hhbmdlKT1cImFjdGl2ZVBvc2l0aW9uUGFpci5zZXQoJGV2ZW50KVwiXG4gIChiYWNrZHJvcENsaWNrKT1cImJhY2tkcm9wQ2xpY2soKVwiXG4gIChkZXRhY2gpPVwiYmFja2Ryb3BDbGljaygpXCI+XG4gIDxmdy1wb3BvdmVyLXBhbmVsXG4gICAgQGZhZGVJbkZhZGVPdXRcbiAgICBbcG9zaXRpb25dPVwicGFuZWxQb3NpdGlvbigpXCJcbiAgICAobW91c2VMZWF2ZSk9XCJoYW5kbGVQYW5lbExlYXZlKClcIlxuICAgIFtzaG93Q2FyZXRdPVwic2hvd0NhcmV0KClcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZnctcG9wb3Zlci1wYW5lbD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -59,6 +59,7 @@ export class FwMultiSelectMenuComponent {
59
59
  this.width = '200px';
60
60
  this.minHeight = '';
61
61
  this.maxHeight = '200px';
62
+ this.maxOptionsHeight = '400px';
62
63
  this.size = 'medium';
63
64
  this.menuFilter = viewChild(FwMenuContainerComponent);
64
65
  // need this for the template
@@ -360,4 +361,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
360
361
  type: HostListener,
361
362
  args: ['keydown', ['$event']]
362
363
  }] } });
363
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc2VsZWN0LW1lbnUvbXVsdGktc2VsZWN0LW1lbnUvbXVsdGktc2VsZWN0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc2VsZWN0LW1lbnUvbXVsdGktc2VsZWN0LW1lbnUvbXVsdGktc2VsZWN0LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0RBQXdEO0FBQ3hELE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUdMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsTUFBTSxFQUVOLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBQ0wsS0FBSyxFQUVMLE1BQU0sRUFFTixNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEdBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7Ozs7QUFFL0U7OztHQUdHO0FBYUgsTUFBTSxPQUFPLDBCQUEwQjtJQUNMLFlBQVk7UUFDMUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsT0FB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c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBUUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUdxQixPQUFPO3NCQUFqQyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0csSUFBSTtzQkFBL0IsU0FBUzt1QkFBQyxlQUFlO2dCQUVTLGlCQUFpQjtzQkFBbkQsWUFBWTt1QkFBQyxtQkFBbUI7Z0JBQzRCLGVBQWU7c0JBQTNFLGVBQWU7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQWVqRCxNQUFNO3NCQUFmLE1BQU07Z0JBR0gsS0FBSztzQkFEUixLQUFLO2dCQWdCbUIsUUFBUTtzQkFBaEMsV0FBVzt1QkFBQyxVQUFVO2dCQUNjLGFBQWE7c0JBQWpELFdBQVc7dUJBQUMsc0JBQXNCO2dCQXNPbkMsYUFBYTtzQkFEWixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDZGtNZW51VHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9tZW51JztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBpbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgc2lnbmFsLFxuICBWaWV3Q2hpbGQsXG4gIHZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBXcml0YWJsZVNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRndNZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbWVudS9tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGd01lbnVDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tZW51L21lbnUtY29udGFpbmVyL21lbnUtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGd01lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbWVudS9tZW51LWl0ZW0vbWVudS1pdGVtLmNvbXBvbmVudCc7XG5cbi8qKlxuICogRndNdWx0aVNlbGVjdCBhIGNvbXBvbmVudCBmb3Igc2VsZWN0aW5nIG11bHRpcGxlIG9wdGlvbnNcbiAqIEBzZWUgW1N0b3J5Ym9vayBEb2NzXShodHRwczovL2Nkbi5mbHl3aGVlbC5pby9kb2NzL3Zpc2lvbi9tYXN0ZXIvP3BhdGg9L2RvY3MvZm9ybS1jb250cm9scy1tdWx0aS1zZWxlY3QtLWRvY3MpXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z3LW11bHRpLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1zZWxlY3QtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL211bHRpLXNlbGVjdC1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRndNdWx0aVNlbGVjdE1lbnVDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRndNdWx0aVNlbGVjdE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snKSBvdXRzaWRlQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2lzT3Blbikge1xuICAgICAgdGhpcy50cmlnZ2VyLmNsb3NlKCk7XG4gICAgICB0aGlzLl9pc09wZW4gPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHRoaXMudHJpZ2dlciAmJiB0aGlzLnRyaWdnZXIuaXNPcGVuKCkpIHtcbiAgICAgIHRoaXMuX2lzT3BlbiA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLy8gb3B0aW9uc1xuICBASW5wdXQoKSBvcHRpb25zOiBvYmplY3RbXSA9IFtdO1xuICBASW5wdXQoKSB2YWx1ZVByb3BlcnR5Pzogc3RyaW5nID0gJ3ZhbHVlJztcbiAgQElucHV0KCkgdGl0bGVQcm9wZXJ0eT86IHN0cmluZyA9ICd0aXRsZSc7XG4gIEBJbnB1dCgpIGljb25Qcm9wZXJ0eT86IHN0cmluZyA9ICdpY29uJztcblxuXG4gIC8vIGJlaGF2aW91clxuICBASW5wdXQoKSBlbXB0eVRleHQ6IHN0cmluZyA9ICdObyBtYXRjaGVzIGZvdW5kLi4uJztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdTZWxlY3Qgc29tZXRoaW5nLi4uJztcbiAgQElucHV0KCkgZGlzYWJsZWQ/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHVzZUNoZWNrYm94PzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjbG9zZU9uU2VsZWN0PzogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIG1heFNlbGVjdGVkU2hvd246IG51bWJlciA9IDEwMDtcblxuICBzaG93Q2xlYXIgPSBpbnB1dChmYWxzZSk7XG4gIHNob3dGaWx0ZXIgPSBpbnB1dCh0cnVlLCB7IHRyYW5zZm9ybTogKHZhbDogQm9vbGVhbklucHV0KSA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsKSB9KTtcbiAgc2hvd1NlbGVjdGlvbkluZm8gPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06ICh2YWw6IEJvb2xlYW5JbnB1dCkgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbCkgfSk7XG4gIGZpbHRlckl0ZW1zT25TZWxlY3QgPSBpbnB1dCh0cnVlLCB7IHRyYW5zZm9ybTogKHZhbDogQm9vbGVhbklucHV0KSA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsKSB9KTtcblxuICAvLyBzaXppbmdcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyA9ICcyMDBweCc7XG4gIEBJbnB1dCgpIG1pbkhlaWdodDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIG1heEhlaWdodDogc3RyaW5nID0gJzIwMHB4JztcbiAgQElucHV0KCkgb3B0aW9uc1dpZHRoPzogc3RyaW5nO1xuICBASW5wdXQoKSBtaW5PcHRpb25zSGVpZ2h0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBtYXhPcHRpb25zSGVpZ2h0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBzaXplPzogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyA9ICdtZWRpdW0nO1xuXG4gIC8vIHZpZXcgY2hpbGRyZW5cbiAgQFZpZXdDaGlsZChDZGtNZW51VHJpZ2dlcikgdHJpZ2dlcjogQ2RrTWVudVRyaWdnZXI7XG4gIEBWaWV3Q2hpbGQoRndNZW51Q29tcG9uZW50KSBtZW51OiBGd01lbnVDb21wb25lbnQ7XG4gIG1lbnVGaWx0ZXIgPSB2aWV3Q2hpbGQoRndNZW51Q29udGFpbmVyQ29tcG9uZW50KTtcbiAgQFZpZXdDaGlsZHJlbihGd01lbnVJdGVtQ29tcG9uZW50KSByZW5kZXJlZE1lbnVJdGVtczogUXVlcnlMaXN0PEZ3TWVudUl0ZW1Db21wb25lbnQ+O1xuICBAQ29udGVudENoaWxkcmVuKEZ3TWVudUl0ZW1Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgY3VzdG9tTWVudUl0ZW1zOiBRdWVyeUxpc3Q8RndNZW51SXRlbUNvbXBvbmVudD47XG5cbiAgLy8gbmVlZCB0aGlzIGZvciB0aGUgdGVtcGxhdGVcbiAgY3JlYXRlQXJyYXkgPSAoZDogSXRlcmFibGU8dW5rbm93bj4pOiB1bmtub3duW10gPT4gQXJyYXkuZnJvbShkKTtcblxuICAvLyBpbnRlcm5hbCBzdGF0ZVxuICBzZWxlY3RlZFZhbHVlczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG4gIHNlbGVjdGVkT3B0aW9uczogb2JqZWN0W10gPSBbXTtcbiAgZGlzcGxheWVkT3B0aW9uczogV3JpdGFibGVTaWduYWw8RndNZW51SXRlbUNvbXBvbmVudFtdPiA9IHNpZ25hbChbXSk7XG4gIGZvY3VzZWRJbmRleCA9IHNpZ25hbCgwKTtcbiAgdG91Y2hlZCA9IGZhbHNlO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIHByaXZhdGUgX2lzT3BlbiA9IGZhbHNlO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQElucHV0KClcbiAgZ2V0IHZhbHVlKCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBzZXQgdmFsdWUobmV3VmFsdWU6IGFueVtdKSB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZShuZXdWYWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF92YWx1ZTogYW55W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICkge31cblxuICBASG9zdEJpbmRpbmcoJ3RhYkluZGV4JykgdGFiSW5kZXggPSAwO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLnBvaW50ZXItZXZlbnRzJykgcG9pbnRlckV2ZW50cyA9ICdhdXRvJztcblxuICBvbkNoYW5nZTogKHZhbHVlOiBhbnlbXSkgPT4gdm9pZDtcbiAgb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge307XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnlbXSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueVtdKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2YgdGhpcy5zdWJzY3JpcHRpb25zKSB7XG4gICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWdpc3RlckN1c3RvbU1lbnVJdGVtcygpXG5cbiAgICB0aGlzLmN1c3RvbU1lbnVJdGVtcy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlZ2lzdGVyQ3VzdG9tTWVudUl0ZW1zKCk7XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJDdXN0b21NZW51SXRlbXMoKTogdm9pZCB7XG4gICAgLy8gZmlyc3QgZmlsdGVyIGFueSBtZW51SXRlbXMgd2UndmUgYWxyZWFkeSByZWdpc3RlcmVkIGFzIG9wdGlvbnNcbiAgICBjb25zdCBuZXdNZW51SXRlbXMgPSB0aGlzLmN1c3RvbU1lbnVJdGVtcz8uZmlsdGVyKFxuICAgICAgbWVudUl0ZW0gPT4gIXRoaXMub3B0aW9ucy5maW5kKG9wdGlvbiA9PiBtZW51SXRlbS52YWx1ZSA9PT0gKG9wdGlvbiBhcyBhbnkpLnZhbHVlKSxcbiAgICApXG5cbiAgICBuZXdNZW51SXRlbXMuZm9yRWFjaCgobmV3TWVudUl0ZW0pID0+IHtcblxuICAgICAgLy8gc3luYyByZW5kZXIgc2V0dGluZ3NcbiAgICAgIHRoaXMuY3VzdG9tTWVudUl0ZW1zPy5mb3JFYWNoKG1lbnVJdGVtID0+IHtcbiAgICAgICAgbWVudUl0ZW0uc2hvd0NoZWNrYm94ID0gdGhpcy51c2VDaGVja2JveDtcbiAgICAgICAgbWVudUl0ZW0ubXVsdGlTZWxlY3QgPSB0cnVlO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIGFkZCBpdCB0byB0aGUgb3B0aW9uc1xuICAgICAgLy8gYSBsb3Qgb2Ygb3VyIHZhbHVlIGhhbmRsaW5nIGxvZ2ljIHJlbGllcyBvblxuICAgICAgY29uc3QgbmV3T3B0aW9uID0ge1xuICAgICAgICB2YWx1ZTogbmV3TWVudUl0ZW0udmFsdWUsXG4gICAgICAgIHRpdGxlOiBuZXdNZW51SXRlbS50aXRsZSxcbiAgICAgICAgaWNvbjogbmV3TWVudUl0ZW0uaWNvbixcbiAgICAgIH1cbiAgICAgIHRoaXMub3B0aW9ucy5wdXNoKG5ld09wdGlvbik7XG5cbiAgICAgIG5ld01lbnVJdGVtLm1vdXNlRW50ZXJIYW5kbGVyLnNldCgoZXZlbnQsIGl0ZW0pID0+IHtcbiAgICAgICAgdGhpcy5zZXRGb2N1c2VkSW5kZXgoaXRlbSk7XG4gICAgICB9KVxuXG4gICAgICAvLyBhZGQgY2xpY2sgbGlzdGVuZXJcbiAgICAgIGNvbnN0IHN1YiA9IG5ld01lbnVJdGVtLmNsaWNrLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgIHRoaXMuYWRkVmFsdWUodmFsdWUpO1xuXG4gICAgICAgIGlmICh0aGlzLmNsb3NlT25TZWxlY3QpIHtcbiAgICAgICAgICB0aGlzLnRyaWdnZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWIpO1xuICAgIH0pXG4gIH1cblxuICBoYW5kbGVUb3VjaGVkKCk6IHZvaWQge1xuICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gIH1cblxuICBoYW5kbGVDaGlwQ2xvc2UoY2hpcDogb2JqZWN0KTogdm9pZCB7XG4gICAgY29uc3QgbmV3VmFsdWVzID0gdGhpcy52YWx1ZS5maWx0ZXIodmFsID0+IHZhbCAhPT0gY2hpcFt0aGlzLnZhbHVlUHJvcGVydHldKTtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKG5ld1ZhbHVlcyk7XG4gICAgdGhpcy50cmlnZ2VyLmNsb3NlKCk7XG4gIH1cblxuICAvLyBoYW5kbGVzIHRoZSB2YWx1ZSBlbWlzc2lvbiBmcm9tIHRoZSBtZW51XG4gIC8vIFRPRE86IG1ha2UgbWVudSBhIGR1bWIgY29tcG9uZW50LCBpdCBzaG91bGRuJ3QgYmUgaGFuZGxpbmcgdmFsdWVzIGlkZWFsbHlcbiAgaGFuZGxlTWVudUNoYW5nZShlOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGUpKSB7XG4gICAgICBpZiAoZS50b1N0cmluZygpICE9PSB0aGlzLnNlbGVjdGVkVmFsdWVzLnRvU3RyaW5nKCkpIHtcbiAgICAgICAgaWYgKHRoaXMuY2xvc2VPblNlbGVjdCkge1xuICAgICAgICAgIHRoaXMudHJpZ2dlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKGUpO1xuICAgIH1cbiAgfVxuXG5cbiAgLy8gYWRkcyBhIHNpbmdsZSB2YWx1ZVxuICBhZGRWYWx1ZShpbmNvbWluZzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgYWxyZWFkeVNlbGVjdGVkID0gdGhpcy52YWx1ZS5pbmNsdWRlcyhpbmNvbWluZyk7XG5cbiAgICBpZiAoYWxyZWFkeVNlbGVjdGVkKSB7XG4gICAgICBjb25zdCBzcGxpY2VkT3V0ID0gdGhpcy52YWx1ZS50b1NwbGljZWQodGhpcy52YWx1ZS5pbmRleE9mKGluY29taW5nKSwgMSk7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKHNwbGljZWRPdXQpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUoWy4uLnRoaXMudmFsdWUsIGluY29taW5nXSk7XG4gICAgfVxuICB9XG5cbiAgLy8gaGFuZGxlcyBhbGwgdGhlIGRpc3BsYXkgc2lkZSBlZmZlY3RzIG9mIGEgdmFsdWUgY2hhbmdlXG4gIHVwZGF0ZVZhbHVlKGluY29taW5nVmFsdWVzOiBhbnlbXSk6IHZvaWQge1xuXG4gICAgaWYgKCFpbmNvbWluZ1ZhbHVlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMuY2xlYXIoKTtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IFtdO1xuXG4gICAgaW5jb21pbmdWYWx1ZXMuZm9yRWFjaChpbmNvbWluZyA9PiB7XG5cbiAgICAgIGlmICh0eXBlb2YgaW5jb21pbmcgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMuYWRkKGluY29taW5nW3RoaXMudmFsdWVQcm9wZXJ0eV0pO1xuICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucy5wdXNoKGluY29taW5nKTtcblxuICAgICAgfSBlbHNlIHtcblxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLmFkZChpbmNvbWluZyk7XG5cbiAgICAgICAgY29uc3QgaW5jb21pbmdNYXBwZWRUb09wdGlvbiA9IHRoaXMub3B0aW9ucy5maW5kKG9wdCA9PiBvcHRbdGhpcy52YWx1ZVByb3BlcnR5XSA9PT0gaW5jb21pbmcpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucy5wdXNoKGluY29taW5nTWFwcGVkVG9PcHRpb24pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5fdmFsdWUgPSBBcnJheS5mcm9tKHRoaXMuc2VsZWN0ZWRWYWx1ZXMpO1xuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLl92YWx1ZSk7XG4gICAgdGhpcy5wb3N0U2VsZWN0U2lkZUVmZmVjdHMoKTtcbiAgfVxuXG4gIC8vIGN1c3RvbSBmaWx0ZXIgZm9yIGhhbmRsaW5nIGZpbHRlck9uU2VsZWN0XG4gIGN1c3RvbUZpbHRlciA9IChmaWx0ZXI6IHN0cmluZywgbWVudUl0ZW1zOiBGd01lbnVJdGVtQ29tcG9uZW50W10pOiBGd01lbnVJdGVtQ29tcG9uZW50W10gPT4ge1xuICAgIHJldHVybiBtZW51SXRlbXMuZmlsdGVyKG1lbnVJdGVtID0+IHtcbiAgICAgIGNvbnN0IGZpbHRlck1hdGNoZXMgPSBtZW51SXRlbS50aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlci50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSB0aGlzLnZhbHVlLmluY2x1ZGVzKG1lbnVJdGVtLnZhbHVlKTtcbiAgICAgIGNvbnN0IGZpbHRlckJlY2F1c2VTZWxlY3RlZCA9IGlzU2VsZWN0ZWQgJiYgdGhpcy5maWx0ZXJJdGVtc09uU2VsZWN0KCk7XG5cbiAgICAgIHJldHVybiBmaWx0ZXJNYXRjaGVzICYmICFmaWx0ZXJCZWNhdXNlU2VsZWN0ZWQ7XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgbW92ZUZvY3VzZWQoZGlyZWN0aW9uOiAndXAnIHwgJ2Rvd24nKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZGlzcGxheWVkT3B0aW9ucygpO1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mb2N1c2VkSW5kZXgoKTtcblxuICAgIGNvbnN0IGNsYW1wSW5kZXggPSAobjogbnVtYmVyKTogbnVtYmVyID0+IHtcbiAgICAgIGlmIChuIDwgMCkge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAobiA+PSBvcHRpb25zLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG47XG4gICAgfVxuXG4gICAgY29uc3QgaW5kZXhDaGFuZ2UgPSBkaXJlY3Rpb24gPT09ICd1cCcgPyAtMSA6IDE7XG5cbiAgICBjb25zdCBuZXdJbmRleCA9IGNsYW1wSW5kZXgoaW5kZXggKyBpbmRleENoYW5nZSk7XG4gICAgdGhpcy5mb2N1c2VkSW5kZXguc2V0KG5ld0luZGV4KTtcblxuICAgIGNvbnN0IG5ld2x5Rm9jdXNlZCA9IHRoaXMuZGlzcGxheWVkT3B0aW9ucygpW3RoaXMuZm9jdXNlZEluZGV4KCldO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEByeC1hbmd1bGFyL3ByZWZlci1uby1sYXlvdXQtc2Vuc2l0aXZlLWFwaXNcbiAgICBuZXdseUZvY3VzZWQuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgfVxuXG4gIHNldEZvY3VzZWRJbmRleChpdGVtOiB1bmtub3duKTogdm9pZCB7XG4gICAgY29uc3QgZm91bmRJbmRleCA9IHRoaXMuZGlzcGxheWVkT3B0aW9ucygpLmZpbmRJbmRleChpID0+IGkudmFsdWUgPT09IGl0ZW1bdGhpcy52YWx1ZVByb3BlcnR5XSk7XG4gICAgdGhpcy5mb2N1c2VkSW5kZXguc2V0KGZvdW5kSW5kZXgpO1xuICB9XG5cbiAgZGlzcGxheUZvY3VzSW5kaWNhdG9yID0gZWZmZWN0KCgpID0+IHtcbiAgICB0aGlzLmRpc3BsYXllZE9wdGlvbnMoKS5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgaXRlbS5mb2N1c2VkID0gaW5kZXggPT09IHRoaXMuZm9jdXNlZEluZGV4KCk7XG4gICAgfSlcbiAgfSlcblxuICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24sIEByeC1hbmd1bGFyL3ByZWZlci1uby1sYXlvdXQtc2Vuc2l0aXZlLWFwaXMgKi9cbiAgcHJpdmF0ZSBrZXlib2FyZEFjdGlvbk1hcCA9IHtcbiAgICAnQXJyb3dEb3duJzogKCkgPT4ge1xuICAgICAgdGhpcy5tb3ZlRm9jdXNlZCgnZG93bicpO1xuICAgIH0sXG4gICAgJ0Fycm93VXAnOiAoKSA9PiB7XG4gICAgICB0aGlzLm1vdmVGb2N1c2VkKCd1cCcpO1xuICAgIH0sXG4gICAgJ1RhYic6ICgpID0+IHtcbiAgICAgIHRoaXMudHJpZ2dlci5jbG9zZSgpO1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9LFxuICAgICdFc2NhcGUnOiAoKSA9PiB7XG4gICAgICB0aGlzLnRyaWdnZXIuY2xvc2UoKTtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfSxcbiAgICAnRW50ZXInOiAoKSA9PiB7XG4gICAgICBjb25zdCBzZWxlY3RlZE1lbnVJdGVtID0gdGhpcy5kaXNwbGF5ZWRPcHRpb25zKClbdGhpcy5mb2N1c2VkSW5kZXgoKV07XG5cbiAgICAgIGlmICghc2VsZWN0ZWRNZW51SXRlbSkgeyByZXR1cm4gfVxuXG4gICAgICB0aGlzLmFkZFZhbHVlKHNlbGVjdGVkTWVudUl0ZW0udmFsdWUpO1xuICAgICAgdGhpcy5wb3N0U2VsZWN0U2lkZUVmZmVjdHMoKTtcbiAgICB9LFxuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZWRUcmlnZ2VyS2V5Ym9hcmRBY3Rpb25zTWFwID0ge1xuICAgICdFbnRlcic6ICgpID0+IHtcbiAgICAgIHRoaXMudHJpZ2dlci5vcGVuKCk7XG4gICAgfSxcbiAgICAnQmFja3NwYWNlJzogKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLnZhbHVlLnRvU3BsaWNlZCgtMSkpO1xuICAgIH0sXG4gIH1cbiAgLyogZXNsaW50LWVuYWJsZSAqL1xuXG4gIC8vIG5lZWRzIHRvIGJlIGFuIGFycm93IGZ1bmN0aW9uIHRvIGxvY2sgdGhlIHNjb3BlXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBoYW5kbGVLZXlEb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PntcblxuICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLnRyaWdnZXIuaXNPcGVuKCkgPyB0aGlzLmtleWJvYXJkQWN0aW9uTWFwW2V2ZW50LmtleV0gOiB0aGlzLmNsb3NlZFRyaWdnZXJLZXlib2FyZEFjdGlvbnNNYXBbZXZlbnQua2V5XTtcblxuICAgIGlmIChoYW5kbGVyKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaGFuZGxlcigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcG9zdFNlbGVjdFNpZGVFZmZlY3RzKCk6IHZvaWQge1xuICAgIHRoaXMubWVudUZpbHRlcigpPy5vbkZpbHRlckNoYW5nZSgnJyk7XG5cbiAgICB0aGlzLmN1c3RvbU1lbnVJdGVtcz8uZm9yRWFjaChtZW51SXRlbSA9PiB7XG4gICAgICBtZW51SXRlbS5zZWxlY3RlZCA9IHRoaXMudmFsdWUuaW5jbHVkZXMobWVudUl0ZW0udmFsdWUpO1xuICAgIH0pXG5cbiAgICBpZiAodGhpcy5jbG9zZU9uU2VsZWN0KSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy50cmlnZ2VyLmNsb3NlKCk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAcngtYW5ndWxhci9wcmVmZXItbm8tbGF5b3V0LXNlbnNpdGl2ZS1hcGlzXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgW25nU3R5bGVdPVwie3dpZHRoOiB3aWR0aH1cIiAjd3JhcHBlcj5cblxuICA8ZGl2XG4gICAgZndNZW51UmVnaXN0ZXJcbiAgICBjbGFzcz1cImNoaXAtZ3JpZFwiXG4gICAgW25nQ2xhc3NdPVwiW3NpemVdXCJcbiAgICBbbmdTdHlsZV09XCJ7IG1pbkhlaWdodDogbWluSGVpZ2h0LCBtYXhIZWlnaHQ6IG1heEhlaWdodCB9XCJcbiAgICBbY2RrTWVudVRyaWdnZXJGb3JdPVwic2VsZWN0TWVudVwiPlxuICAgIDxzcGFuICpuZ0lmPVwidmFsdWUubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJwbGFjZWhvbGRlclwiPnt7cGxhY2Vob2xkZXJ9fTwvc3Bhbj5cblxuICAgIDwhLS0gQ0hJUFMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImlubmVyLWNoaXAtZ3JpZFwiICpuZ0lmPVwidmFsdWUgJiYgdmFsdWUubGVuZ3RoPjBcIj5cbiAgICAgIDxmdy1jaGlwXG4gICAgICAgICpuZ0Zvcj1cImxldCBjaGlwIG9mIHNlbGVjdGVkT3B0aW9ucyB8IHNsaWNlOjA6bWF4U2VsZWN0ZWRTaG93blwiXG4gICAgICAgIFt0aXRsZV09XCJjaGlwW3RpdGxlUHJvcGVydHldXCJcbiAgICAgICAgW3ZhbHVlXT1cImNoaXBbdmFsdWVQcm9wZXJ0eV1cIlxuICAgICAgICBbaWNvbl09XCJjaGlwW2ljb25Qcm9wZXJ0eV1cIlxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICBbc2hvd0Nsb3NlXT1cInRydWVcIlxuICAgICAgICAoY2xvc2UpPVwiaGFuZGxlQ2hpcENsb3NlKGNoaXApXCJcbiAgICAgICAgW3NlbGVjdGFibGVdPVwiZmFsc2VcIj5cbiAgICAgIDwvZnctY2hpcD5cbiAgICAgIDxzcGFuICpuZ0lmPVwibWF4U2VsZWN0ZWRTaG93biA9PT0gMCAmJiB2YWx1ZS5sZW5ndGggPiAwXCIgY2xhc3M9XCJzZWxlY3RlZC10ZXh0XCI+XG4gICAgICAgIHt7IHZhbHVlLmxlbmd0aCB9fSBzZWxlY3RlZFxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJ2YWx1ZS5sZW5ndGggPiBtYXhTZWxlY3RlZFNob3duICYmIG1heFNlbGVjdGVkU2hvd24gPiAwXCIgY2xhc3M9XCJtYXgtZXhjZWVkZWRcIj5cbiAgICAgICAgK3t7IHZhbHVlLmxlbmd0aCAtIG1heFNlbGVjdGVkU2hvd24gfX0gbW9yZVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPGZ3LWljb24gKm5nSWY9XCJzaG93Q2xlYXIoKSAmJiB2YWx1ZS5sZW5ndGggPiAwXCIgKGNsaWNrKT1cInVwZGF0ZVZhbHVlKFtdKVwiPmNsb3NlPC9mdy1pY29uPlxuICAgIDxmdy1pY29uPmNoZXZyb24tZG93bjwvZnctaWNvbj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBNRU5VIC0tPlxuICA8bmctdGVtcGxhdGUgI3NlbGVjdE1lbnU+XG4gICAgPGZ3LW1lbnUtZmlsdGVyXG4gICAgICBba2V5SGFuZGxlcl09XCJoYW5kbGVLZXlEb3duXCJcbiAgICAgIFtzaG93RmlsdGVyXT1cInNob3dGaWx0ZXIoKVwiXG4gICAgICBbZm9jdXNGaWx0ZXJPbk1vdW50XT1cInNob3dGaWx0ZXIoKVwiXG4gICAgICBbd2lkdGhdPVwib3B0aW9uc1dpZHRoIHx8ICh3cmFwcGVyLm9mZnNldFdpZHRoIC0gMikgKyAncHgnXCJcbiAgICAgIFthZGRpdGlvbmFsTWVudUl0ZW1zXT1cInRoaXMuY3VzdG9tTWVudUl0ZW1zXCJcbiAgICAgIFtlbXB0eVRleHRdPVwiZW1wdHlUZXh0XCJcbiAgICAgIFttYXhIZWlnaHRdPVwibWF4T3B0aW9uc0hlaWdodFwiXG4gICAgICBbbWluSGVpZ2h0XT1cIm1pbk9wdGlvbnNIZWlnaHRcIlxuICAgICAgW2ZpbHRlckZuXT1cImN1c3RvbUZpbHRlclwiXG4gICAgICAoZmlsdGVyZWRNZW51SXRlbUNoYW5nZSk9XCJkaXNwbGF5ZWRPcHRpb25zLnNldCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItY29udGVudFwiICpuZ0lmPVwic2hvd1NlbGVjdGlvbkluZm8oKVwiPlxuICAgICAgICA8cD57e3ZhbHVlLmxlbmd0aH19IHNlbGVjdGlvbnM8L3A+XG4gICAgICAgIDxmdy1idXR0b24gdmFyaWFudD1cImdob3N0XCIgKGNsaWNrKT1cInVwZGF0ZVZhbHVlKFtdKVwiPkNsZWFyPC9mdy1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxmdy1tZW51XG4gICAgICAgIFttdWx0aVNlbGVjdF09XCJ0cnVlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW3ZhbHVlXT1cImNyZWF0ZUFycmF5KHNlbGVjdGVkVmFsdWVzKVwiXG4gICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlTWVudUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21NZW51SXRlbXMubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAgPGZ3LW1lbnUtaXRlbVxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9uczsgaW5kZXggYXMgJGluZGV4XCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJpdGVtW3RpdGxlUHJvcGVydHldXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtW3ZhbHVlUHJvcGVydHldXCJcbiAgICAgICAgICAgIFtpY29uXT1cIml0ZW1baWNvblByb3BlcnR5XVwiXG4gICAgICAgICAgICBbbXVsdGlTZWxlY3RdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbc2VsZWN0ZWRdPVwidmFsdWUuaW5jbHVkZXMoaXRlbVt2YWx1ZVByb3BlcnR5XSlcIlxuICAgICAgICAgICAgW3Nob3dDaGVja2JveF09XCJ1c2VDaGVja2JveFwiXG4gICAgICAgICAgICAobW91c2VlbnRlcik9XCJzZXRGb2N1c2VkSW5kZXgoaXRlbSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L2Z3LW1lbnUtaXRlbT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwiY3VzdG9tLW1lbnUtaXRlbXNcIiBzZWxlY3Q9XCJbZnctbWVudS1pdGVtLCBmdy1tZW51LXNlcGFyYXRvciwgZnctbWVudS1pdGVtLWdyb3VwLCBmdy1tZW51LWhlYWRlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Z3LW1lbnU+XG4gICAgPC9mdy1tZW51LWZpbHRlcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
364
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc2VsZWN0LW1lbnUvbXVsdGktc2VsZWN0LW1lbnUvbXVsdGktc2VsZWN0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc2VsZWN0LW1lbnUvbXVsdGktc2VsZWN0LW1lbnUvbXVsdGktc2VsZWN0LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0RBQXdEO0FBQ3hELE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUdMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsTUFBTSxFQUVOLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBQ0wsS0FBSyxFQUVMLE1BQU0sRUFFTixNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEdBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7Ozs7QUFFL0U7OztHQUdHO0FBYUgsTUFBTSxPQUFPLDBCQUEwQjtJQUNMLFlBQVk7UUFDMUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsT0FB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LE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQVFHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFHcUIsT0FBTztzQkFBakMsU0FBUzt1QkFBQyxjQUFjO2dCQUNHLElBQUk7c0JBQS9CLFNBQVM7dUJBQUMsZUFBZTtnQkFFUyxpQkFBaUI7c0JBQW5ELFlBQVk7dUJBQUMsbUJBQW1CO2dCQUM0QixlQUFlO3NCQUEzRSxlQUFlO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFlakQsTUFBTTtzQkFBZixNQUFNO2dCQUdILEtBQUs7c0JBRFIsS0FBSztnQkFnQm1CLFFBQVE7c0JBQWhDLFdBQVc7dUJBQUMsVUFBVTtnQkFDYyxhQUFhO3NCQUFqRCxXQUFXO3VCQUFDLHNCQUFzQjtnQkFzT25DLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ2RrTWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbWVudSc7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgaW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIHNpZ25hbCxcbiAgVmlld0NoaWxkLFxuICB2aWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbiAgV3JpdGFibGVTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZ3TWVudUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21lbnUvbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRndNZW51Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbWVudS9tZW51LWNvbnRhaW5lci9tZW51LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRndNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21lbnUvbWVudS1pdGVtL21lbnUtaXRlbS5jb21wb25lbnQnO1xuXG4vKipcbiAqIEZ3TXVsdGlTZWxlY3QgYSBjb21wb25lbnQgZm9yIHNlbGVjdGluZyBtdWx0aXBsZSBvcHRpb25zXG4gKiBAc2VlIFtTdG9yeWJvb2sgRG9jc10oaHR0cHM6Ly9jZG4uZmx5d2hlZWwuaW8vZG9jcy92aXNpb24vbWFzdGVyLz9wYXRoPS9kb2NzL2Zvcm0tY29udHJvbHMtbXVsdGktc2VsZWN0LS1kb2NzKVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmdy1tdWx0aS1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbXVsdGktc2VsZWN0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tdWx0aS1zZWxlY3QtbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZ3TXVsdGlTZWxlY3RNZW51Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZ3TXVsdGlTZWxlY3RNZW51Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJykgb3V0c2lkZUNsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pc09wZW4pIHtcbiAgICAgIHRoaXMudHJpZ2dlci5jbG9zZSgpO1xuICAgICAgdGhpcy5faXNPcGVuID0gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aGlzLnRyaWdnZXIgJiYgdGhpcy50cmlnZ2VyLmlzT3BlbigpKSB7XG4gICAgICB0aGlzLl9pc09wZW4gPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIG9wdGlvbnNcbiAgQElucHV0KCkgb3B0aW9uczogb2JqZWN0W10gPSBbXTtcbiAgQElucHV0KCkgdmFsdWVQcm9wZXJ0eT86IHN0cmluZyA9ICd2YWx1ZSc7XG4gIEBJbnB1dCgpIHRpdGxlUHJvcGVydHk/OiBzdHJpbmcgPSAndGl0bGUnO1xuICBASW5wdXQoKSBpY29uUHJvcGVydHk/OiBzdHJpbmcgPSAnaWNvbic7XG5cblxuICAvLyBiZWhhdmlvdXJcbiAgQElucHV0KCkgZW1wdHlUZXh0OiBzdHJpbmcgPSAnTm8gbWF0Y2hlcyBmb3VuZC4uLic7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnU2VsZWN0IHNvbWV0aGluZy4uLic7XG4gIEBJbnB1dCgpIGRpc2FibGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB1c2VDaGVja2JveD86IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY2xvc2VPblNlbGVjdD86IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBtYXhTZWxlY3RlZFNob3duOiBudW1iZXIgPSAxMDA7XG5cbiAgc2hvd0NsZWFyID0gaW5wdXQoZmFsc2UpO1xuICBzaG93RmlsdGVyID0gaW5wdXQodHJ1ZSwgeyB0cmFuc2Zvcm06ICh2YWw6IEJvb2xlYW5JbnB1dCkgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbCkgfSk7XG4gIHNob3dTZWxlY3Rpb25JbmZvID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiAodmFsOiBCb29sZWFuSW5wdXQpID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWwpIH0pO1xuICBmaWx0ZXJJdGVtc09uU2VsZWN0ID0gaW5wdXQodHJ1ZSwgeyB0cmFuc2Zvcm06ICh2YWw6IEJvb2xlYW5JbnB1dCkgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbCkgfSk7XG5cbiAgLy8gc2l6aW5nXG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmcgPSAnMjAwcHgnO1xuICBASW5wdXQoKSBtaW5IZWlnaHQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBtYXhIZWlnaHQ6IHN0cmluZyA9ICcyMDBweCc7XG4gIEBJbnB1dCgpIG9wdGlvbnNXaWR0aD86IHN0cmluZztcbiAgQElucHV0KCkgbWluT3B0aW9uc0hlaWdodD86IHN0cmluZztcbiAgQElucHV0KCkgbWF4T3B0aW9uc0hlaWdodDogc3RyaW5nID0gJzQwMHB4JztcbiAgQElucHV0KCkgc2l6ZT86ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgPSAnbWVkaXVtJztcblxuICAvLyB2aWV3IGNoaWxkcmVuXG4gIEBWaWV3Q2hpbGQoQ2RrTWVudVRyaWdnZXIpIHRyaWdnZXI6IENka01lbnVUcmlnZ2VyO1xuICBAVmlld0NoaWxkKEZ3TWVudUNvbXBvbmVudCkgbWVudTogRndNZW51Q29tcG9uZW50O1xuICBtZW51RmlsdGVyID0gdmlld0NoaWxkKEZ3TWVudUNvbnRhaW5lckNvbXBvbmVudCk7XG4gIEBWaWV3Q2hpbGRyZW4oRndNZW51SXRlbUNvbXBvbmVudCkgcmVuZGVyZWRNZW51SXRlbXM6IFF1ZXJ5TGlzdDxGd01lbnVJdGVtQ29tcG9uZW50PjtcbiAgQENvbnRlbnRDaGlsZHJlbihGd01lbnVJdGVtQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIGN1c3RvbU1lbnVJdGVtczogUXVlcnlMaXN0PEZ3TWVudUl0ZW1Db21wb25lbnQ+O1xuXG4gIC8vIG5lZWQgdGhpcyBmb3IgdGhlIHRlbXBsYXRlXG4gIGNyZWF0ZUFycmF5ID0gKGQ6IEl0ZXJhYmxlPHVua25vd24+KTogdW5rbm93bltdID0+IEFycmF5LmZyb20oZCk7XG5cbiAgLy8gaW50ZXJuYWwgc3RhdGVcbiAgc2VsZWN0ZWRWYWx1ZXM6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpO1xuICBzZWxlY3RlZE9wdGlvbnM6IG9iamVjdFtdID0gW107XG4gIGRpc3BsYXllZE9wdGlvbnM6IFdyaXRhYmxlU2lnbmFsPEZ3TWVudUl0ZW1Db21wb25lbnRbXT4gPSBzaWduYWwoW10pO1xuICBmb2N1c2VkSW5kZXggPSBzaWduYWwoMCk7XG4gIHRvdWNoZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBwcml2YXRlIF9pc09wZW4gPSBmYWxzZTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgQE91dHB1dCgpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBJbnB1dCgpXG4gIGdldCB2YWx1ZSgpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgc2V0IHZhbHVlKG5ld1ZhbHVlOiBhbnlbXSkge1xuICAgIHRoaXMudXBkYXRlVmFsdWUobmV3VmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IGFueVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICApIHt9XG5cbiAgQEhvc3RCaW5kaW5nKCd0YWJJbmRleCcpIHRhYkluZGV4ID0gMDtcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5wb2ludGVyLWV2ZW50cycpIHBvaW50ZXJFdmVudHMgPSAnYXV0byc7XG5cbiAgb25DaGFuZ2U6ICh2YWx1ZTogYW55W10pID0+IHZvaWQ7XG4gIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHt9O1xuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55W10pID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnlbXSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHRoaXMuc3Vic2NyaXB0aW9ucykge1xuICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJDdXN0b21NZW51SXRlbXMoKVxuXG4gICAgdGhpcy5jdXN0b21NZW51SXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZWdpc3RlckN1c3RvbU1lbnVJdGVtcygpO1xuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyQ3VzdG9tTWVudUl0ZW1zKCk6IHZvaWQge1xuICAgIC8vIGZpcnN0IGZpbHRlciBhbnkgbWVudUl0ZW1zIHdlJ3ZlIGFscmVhZHkgcmVnaXN0ZXJlZCBhcyBvcHRpb25zXG4gICAgY29uc3QgbmV3TWVudUl0ZW1zID0gdGhpcy5jdXN0b21NZW51SXRlbXM/LmZpbHRlcihcbiAgICAgIG1lbnVJdGVtID0+ICF0aGlzLm9wdGlvbnMuZmluZChvcHRpb24gPT4gbWVudUl0ZW0udmFsdWUgPT09IChvcHRpb24gYXMgYW55KS52YWx1ZSksXG4gICAgKVxuXG4gICAgbmV3TWVudUl0ZW1zLmZvckVhY2goKG5ld01lbnVJdGVtKSA9PiB7XG5cbiAgICAgIC8vIHN5bmMgcmVuZGVyIHNldHRpbmdzXG4gICAgICB0aGlzLmN1c3RvbU1lbnVJdGVtcz8uZm9yRWFjaChtZW51SXRlbSA9PiB7XG4gICAgICAgIG1lbnVJdGVtLnNob3dDaGVja2JveCA9IHRoaXMudXNlQ2hlY2tib3g7XG4gICAgICAgIG1lbnVJdGVtLm11bHRpU2VsZWN0ID0gdHJ1ZTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBhZGQgaXQgdG8gdGhlIG9wdGlvbnNcbiAgICAgIC8vIGEgbG90IG9mIG91ciB2YWx1ZSBoYW5kbGluZyBsb2dpYyByZWxpZXMgb25cbiAgICAgIGNvbnN0IG5ld09wdGlvbiA9IHtcbiAgICAgICAgdmFsdWU6IG5ld01lbnVJdGVtLnZhbHVlLFxuICAgICAgICB0aXRsZTogbmV3TWVudUl0ZW0udGl0bGUsXG4gICAgICAgIGljb246IG5ld01lbnVJdGVtLmljb24sXG4gICAgICB9XG4gICAgICB0aGlzLm9wdGlvbnMucHVzaChuZXdPcHRpb24pO1xuXG4gICAgICBuZXdNZW51SXRlbS5tb3VzZUVudGVySGFuZGxlci5zZXQoKGV2ZW50LCBpdGVtKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXNlZEluZGV4KGl0ZW0pO1xuICAgICAgfSlcblxuICAgICAgLy8gYWRkIGNsaWNrIGxpc3RlbmVyXG4gICAgICBjb25zdCBzdWIgPSBuZXdNZW51SXRlbS5jbGljay5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICB0aGlzLmFkZFZhbHVlKHZhbHVlKTtcblxuICAgICAgICBpZiAodGhpcy5jbG9zZU9uU2VsZWN0KSB7XG4gICAgICAgICAgdGhpcy50cmlnZ2VyLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3ViKTtcbiAgICB9KVxuICB9XG5cbiAgaGFuZGxlVG91Y2hlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICB9XG5cbiAgaGFuZGxlQ2hpcENsb3NlKGNoaXA6IG9iamVjdCk6IHZvaWQge1xuICAgIGNvbnN0IG5ld1ZhbHVlcyA9IHRoaXMudmFsdWUuZmlsdGVyKHZhbCA9PiB2YWwgIT09IGNoaXBbdGhpcy52YWx1ZVByb3BlcnR5XSk7XG4gICAgdGhpcy51cGRhdGVWYWx1ZShuZXdWYWx1ZXMpO1xuICAgIHRoaXMudHJpZ2dlci5jbG9zZSgpO1xuICB9XG5cbiAgLy8gaGFuZGxlcyB0aGUgdmFsdWUgZW1pc3Npb24gZnJvbSB0aGUgbWVudVxuICAvLyBUT0RPOiBtYWtlIG1lbnUgYSBkdW1iIGNvbXBvbmVudCwgaXQgc2hvdWxkbid0IGJlIGhhbmRsaW5nIHZhbHVlcyBpZGVhbGx5XG4gIGhhbmRsZU1lbnVDaGFuZ2UoZTogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShlKSkge1xuICAgICAgaWYgKGUudG9TdHJpbmcoKSAhPT0gdGhpcy5zZWxlY3RlZFZhbHVlcy50b1N0cmluZygpKSB7XG4gICAgICAgIGlmICh0aGlzLmNsb3NlT25TZWxlY3QpIHtcbiAgICAgICAgICB0aGlzLnRyaWdnZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy51cGRhdGVWYWx1ZShlKTtcbiAgICB9XG4gIH1cblxuXG4gIC8vIGFkZHMgYSBzaW5nbGUgdmFsdWVcbiAgYWRkVmFsdWUoaW5jb21pbmc6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGFscmVhZHlTZWxlY3RlZCA9IHRoaXMudmFsdWUuaW5jbHVkZXMoaW5jb21pbmcpO1xuXG4gICAgaWYgKGFscmVhZHlTZWxlY3RlZCkge1xuICAgICAgY29uc3Qgc3BsaWNlZE91dCA9IHRoaXMudmFsdWUudG9TcGxpY2VkKHRoaXMudmFsdWUuaW5kZXhPZihpbmNvbWluZyksIDEpO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZShzcGxpY2VkT3V0KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKFsuLi50aGlzLnZhbHVlLCBpbmNvbWluZ10pO1xuICAgIH1cbiAgfVxuXG4gIC8vIGhhbmRsZXMgYWxsIHRoZSBkaXNwbGF5IHNpZGUgZWZmZWN0cyBvZiBhIHZhbHVlIGNoYW5nZVxuICB1cGRhdGVWYWx1ZShpbmNvbWluZ1ZhbHVlczogYW55W10pOiB2b2lkIHtcblxuICAgIGlmICghaW5jb21pbmdWYWx1ZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLmNsZWFyKCk7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBbXTtcblxuICAgIGluY29taW5nVmFsdWVzLmZvckVhY2goaW5jb21pbmcgPT4ge1xuXG4gICAgICBpZiAodHlwZW9mIGluY29taW5nID09PSAnb2JqZWN0Jykge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLmFkZChpbmNvbWluZ1t0aGlzLnZhbHVlUHJvcGVydHldKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMucHVzaChpbmNvbWluZyk7XG5cbiAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5hZGQoaW5jb21pbmcpO1xuXG4gICAgICAgIGNvbnN0IGluY29taW5nTWFwcGVkVG9PcHRpb24gPSB0aGlzLm9wdGlvbnMuZmluZChvcHQgPT4gb3B0W3RoaXMudmFsdWVQcm9wZXJ0eV0gPT09IGluY29taW5nKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMucHVzaChpbmNvbWluZ01hcHBlZFRvT3B0aW9uKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX3ZhbHVlID0gQXJyYXkuZnJvbSh0aGlzLnNlbGVjdGVkVmFsdWVzKTtcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkge1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5fdmFsdWUpO1xuICAgIHRoaXMucG9zdFNlbGVjdFNpZGVFZmZlY3RzKCk7XG4gIH1cblxuICAvLyBjdXN0b20gZmlsdGVyIGZvciBoYW5kbGluZyBmaWx0ZXJPblNlbGVjdFxuICBjdXN0b21GaWx0ZXIgPSAoZmlsdGVyOiBzdHJpbmcsIG1lbnVJdGVtczogRndNZW51SXRlbUNvbXBvbmVudFtdKTogRndNZW51SXRlbUNvbXBvbmVudFtdID0+IHtcbiAgICByZXR1cm4gbWVudUl0ZW1zLmZpbHRlcihtZW51SXRlbSA9PiB7XG4gICAgICBjb25zdCBmaWx0ZXJNYXRjaGVzID0gbWVudUl0ZW0udGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXIudG9Mb3dlckNhc2UoKSk7XG4gICAgICBjb25zdCBpc1NlbGVjdGVkID0gdGhpcy52YWx1ZS5pbmNsdWRlcyhtZW51SXRlbS52YWx1ZSk7XG4gICAgICBjb25zdCBmaWx0ZXJCZWNhdXNlU2VsZWN0ZWQgPSBpc1NlbGVjdGVkICYmIHRoaXMuZmlsdGVySXRlbXNPblNlbGVjdCgpO1xuXG4gICAgICByZXR1cm4gZmlsdGVyTWF0Y2hlcyAmJiAhZmlsdGVyQmVjYXVzZVNlbGVjdGVkO1xuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIG1vdmVGb2N1c2VkKGRpcmVjdGlvbjogJ3VwJyB8ICdkb3duJyk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmRpc3BsYXllZE9wdGlvbnMoKTtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZm9jdXNlZEluZGV4KCk7XG5cbiAgICBjb25zdCBjbGFtcEluZGV4ID0gKG46IG51bWJlcik6IG51bWJlciA9PiB7XG4gICAgICBpZiAobiA8IDApIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMubGVuZ3RoIC0gMTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKG4gPj0gb3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuO1xuICAgIH1cblxuICAgIGNvbnN0IGluZGV4Q2hhbmdlID0gZGlyZWN0aW9uID09PSAndXAnID8gLTEgOiAxO1xuXG4gICAgY29uc3QgbmV3SW5kZXggPSBjbGFtcEluZGV4KGluZGV4ICsgaW5kZXhDaGFuZ2UpO1xuICAgIHRoaXMuZm9jdXNlZEluZGV4LnNldChuZXdJbmRleCk7XG5cbiAgICBjb25zdCBuZXdseUZvY3VzZWQgPSB0aGlzLmRpc3BsYXllZE9wdGlvbnMoKVt0aGlzLmZvY3VzZWRJbmRleCgpXTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAcngtYW5ndWxhci9wcmVmZXItbm8tbGF5b3V0LXNlbnNpdGl2ZS1hcGlzXG4gICAgbmV3bHlGb2N1c2VkLnNjcm9sbEludG9WaWV3KCk7XG4gIH1cblxuICBzZXRGb2N1c2VkSW5kZXgoaXRlbTogdW5rbm93bik6IHZvaWQge1xuICAgIGNvbnN0IGZvdW5kSW5kZXggPSB0aGlzLmRpc3BsYXllZE9wdGlvbnMoKS5maW5kSW5kZXgoaSA9PiBpLnZhbHVlID09PSBpdGVtW3RoaXMudmFsdWVQcm9wZXJ0eV0pO1xuICAgIHRoaXMuZm9jdXNlZEluZGV4LnNldChmb3VuZEluZGV4KTtcbiAgfVxuXG4gIGRpc3BsYXlGb2N1c0luZGljYXRvciA9IGVmZmVjdCgoKSA9PiB7XG4gICAgdGhpcy5kaXNwbGF5ZWRPcHRpb25zKCkuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIGl0ZW0uZm9jdXNlZCA9IGluZGV4ID09PSB0aGlzLmZvY3VzZWRJbmRleCgpO1xuICAgIH0pXG4gIH0pXG5cbiAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uLCBAcngtYW5ndWxhci9wcmVmZXItbm8tbGF5b3V0LXNlbnNpdGl2ZS1hcGlzICovXG4gIHByaXZhdGUga2V5Ym9hcmRBY3Rpb25NYXAgPSB7XG4gICAgJ0Fycm93RG93bic6ICgpID0+IHtcbiAgICAgIHRoaXMubW92ZUZvY3VzZWQoJ2Rvd24nKTtcbiAgICB9LFxuICAgICdBcnJvd1VwJzogKCkgPT4ge1xuICAgICAgdGhpcy5tb3ZlRm9jdXNlZCgndXAnKTtcbiAgICB9LFxuICAgICdUYWInOiAoKSA9PiB7XG4gICAgICB0aGlzLnRyaWdnZXIuY2xvc2UoKTtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfSxcbiAgICAnRXNjYXBlJzogKCkgPT4ge1xuICAgICAgdGhpcy50cmlnZ2VyLmNsb3NlKCk7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH0sXG4gICAgJ0VudGVyJzogKCkgPT4ge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRNZW51SXRlbSA9IHRoaXMuZGlzcGxheWVkT3B0aW9ucygpW3RoaXMuZm9jdXNlZEluZGV4KCldO1xuXG4gICAgICBpZiAoIXNlbGVjdGVkTWVudUl0ZW0pIHsgcmV0dXJuIH1cblxuICAgICAgdGhpcy5hZGRWYWx1ZShzZWxlY3RlZE1lbnVJdGVtLnZhbHVlKTtcbiAgICAgIHRoaXMucG9zdFNlbGVjdFNpZGVFZmZlY3RzKCk7XG4gICAgfSxcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VkVHJpZ2dlcktleWJvYXJkQWN0aW9uc01hcCA9IHtcbiAgICAnRW50ZXInOiAoKSA9PiB7XG4gICAgICB0aGlzLnRyaWdnZXIub3BlbigpO1xuICAgIH0sXG4gICAgJ0JhY2tzcGFjZSc6ICgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy52YWx1ZS50b1NwbGljZWQoLTEpKTtcbiAgICB9LFxuICB9XG4gIC8qIGVzbGludC1lbmFibGUgKi9cblxuICAvLyBuZWVkcyB0byBiZSBhbiBhcnJvdyBmdW5jdGlvbiB0byBsb2NrIHRoZSBzY29wZVxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlS2V5RG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQgPT57XG5cbiAgICBjb25zdCBoYW5kbGVyID0gdGhpcy50cmlnZ2VyLmlzT3BlbigpID8gdGhpcy5rZXlib2FyZEFjdGlvbk1hcFtldmVudC5rZXldIDogdGhpcy5jbG9zZWRUcmlnZ2VyS2V5Ym9hcmRBY3Rpb25zTWFwW2V2ZW50LmtleV07XG5cbiAgICBpZiAoaGFuZGxlcikge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGhhbmRsZXIoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBvc3RTZWxlY3RTaWRlRWZmZWN0cygpOiB2b2lkIHtcbiAgICB0aGlzLm1lbnVGaWx0ZXIoKT8ub25GaWx0ZXJDaGFuZ2UoJycpO1xuXG4gICAgdGhpcy5jdXN0b21NZW51SXRlbXM/LmZvckVhY2gobWVudUl0ZW0gPT4ge1xuICAgICAgbWVudUl0ZW0uc2VsZWN0ZWQgPSB0aGlzLnZhbHVlLmluY2x1ZGVzKG1lbnVJdGVtLnZhbHVlKTtcbiAgICB9KVxuXG4gICAgaWYgKHRoaXMuY2xvc2VPblNlbGVjdCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMudHJpZ2dlci5jbG9zZSgpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHJ4LWFuZ3VsYXIvcHJlZmVyLW5vLWxheW91dC1zZW5zaXRpdmUtYXBpc1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IFtuZ1N0eWxlXT1cInt3aWR0aDogd2lkdGh9XCIgI3dyYXBwZXI+XG5cbiAgPGRpdlxuICAgIGZ3TWVudVJlZ2lzdGVyXG4gICAgY2xhc3M9XCJjaGlwLWdyaWRcIlxuICAgIFtuZ0NsYXNzXT1cIltzaXplXVwiXG4gICAgW25nU3R5bGVdPVwieyBtaW5IZWlnaHQ6IG1pbkhlaWdodCwgbWF4SGVpZ2h0OiBtYXhIZWlnaHQgfVwiXG4gICAgW2Nka01lbnVUcmlnZ2VyRm9yXT1cInNlbGVjdE1lbnVcIj5cbiAgICA8c3BhbiAqbmdJZj1cInZhbHVlLmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwicGxhY2Vob2xkZXJcIj57e3BsYWNlaG9sZGVyfX08L3NwYW4+XG5cbiAgICA8IS0tIENISVBTIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJpbm5lci1jaGlwLWdyaWRcIiAqbmdJZj1cInZhbHVlICYmIHZhbHVlLmxlbmd0aD4wXCI+XG4gICAgICA8ZnctY2hpcFxuICAgICAgICAqbmdGb3I9XCJsZXQgY2hpcCBvZiBzZWxlY3RlZE9wdGlvbnMgfCBzbGljZTowOm1heFNlbGVjdGVkU2hvd25cIlxuICAgICAgICBbdGl0bGVdPVwiY2hpcFt0aXRsZVByb3BlcnR5XVwiXG4gICAgICAgIFt2YWx1ZV09XCJjaGlwW3ZhbHVlUHJvcGVydHldXCJcbiAgICAgICAgW2ljb25dPVwiY2hpcFtpY29uUHJvcGVydHldXCJcbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgW3Nob3dDbG9zZV09XCJ0cnVlXCJcbiAgICAgICAgKGNsb3NlKT1cImhhbmRsZUNoaXBDbG9zZShjaGlwKVwiXG4gICAgICAgIFtzZWxlY3RhYmxlXT1cImZhbHNlXCI+XG4gICAgICA8L2Z3LWNoaXA+XG4gICAgICA8c3BhbiAqbmdJZj1cIm1heFNlbGVjdGVkU2hvd24gPT09IDAgJiYgdmFsdWUubGVuZ3RoID4gMFwiIGNsYXNzPVwic2VsZWN0ZWQtdGV4dFwiPlxuICAgICAgICB7eyB2YWx1ZS5sZW5ndGggfX0gc2VsZWN0ZWRcbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwidmFsdWUubGVuZ3RoID4gbWF4U2VsZWN0ZWRTaG93biAmJiBtYXhTZWxlY3RlZFNob3duID4gMFwiIGNsYXNzPVwibWF4LWV4Y2VlZGVkXCI+XG4gICAgICAgICt7eyB2YWx1ZS5sZW5ndGggLSBtYXhTZWxlY3RlZFNob3duIH19IG1vcmVcbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxmdy1pY29uICpuZ0lmPVwic2hvd0NsZWFyKCkgJiYgdmFsdWUubGVuZ3RoID4gMFwiIChjbGljayk9XCJ1cGRhdGVWYWx1ZShbXSlcIj5jbG9zZTwvZnctaWNvbj5cbiAgICA8ZnctaWNvbj5jaGV2cm9uLWRvd248L2Z3LWljb24+XG4gIDwvZGl2PlxuXG4gIDwhLS0gTUVOVSAtLT5cbiAgPG5nLXRlbXBsYXRlICNzZWxlY3RNZW51PlxuICAgIDxmdy1tZW51LWZpbHRlclxuICAgICAgW2tleUhhbmRsZXJdPVwiaGFuZGxlS2V5RG93blwiXG4gICAgICBbc2hvd0ZpbHRlcl09XCJzaG93RmlsdGVyKClcIlxuICAgICAgW2ZvY3VzRmlsdGVyT25Nb3VudF09XCJzaG93RmlsdGVyKClcIlxuICAgICAgW3dpZHRoXT1cIm9wdGlvbnNXaWR0aCB8fCAod3JhcHBlci5vZmZzZXRXaWR0aCAtIDIpICsgJ3B4J1wiXG4gICAgICBbYWRkaXRpb25hbE1lbnVJdGVtc109XCJ0aGlzLmN1c3RvbU1lbnVJdGVtc1wiXG4gICAgICBbZW1wdHlUZXh0XT1cImVtcHR5VGV4dFwiXG4gICAgICBbbWF4SGVpZ2h0XT1cIm1heE9wdGlvbnNIZWlnaHRcIlxuICAgICAgW21pbkhlaWdodF09XCJtaW5PcHRpb25zSGVpZ2h0XCJcbiAgICAgIFtmaWx0ZXJGbl09XCJjdXN0b21GaWx0ZXJcIlxuICAgICAgKGZpbHRlcmVkTWVudUl0ZW1DaGFuZ2UpPVwiZGlzcGxheWVkT3B0aW9ucy5zZXQoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNvbnRlbnRcIiAqbmdJZj1cInNob3dTZWxlY3Rpb25JbmZvKClcIj5cbiAgICAgICAgPHA+e3t2YWx1ZS5sZW5ndGh9fSBzZWxlY3Rpb25zPC9wPlxuICAgICAgICA8ZnctYnV0dG9uIHZhcmlhbnQ9XCJnaG9zdFwiIChjbGljayk9XCJ1cGRhdGVWYWx1ZShbXSlcIj5DbGVhcjwvZnctYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZnctbWVudVxuICAgICAgICBbbXVsdGlTZWxlY3RdPVwidHJ1ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFt2YWx1ZV09XCJjcmVhdGVBcnJheShzZWxlY3RlZFZhbHVlcylcIlxuICAgICAgICAoY2hhbmdlKT1cImhhbmRsZU1lbnVDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tTWVudUl0ZW1zLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgIDxmdy1tZW51LWl0ZW1cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG9wdGlvbnM7IGluZGV4IGFzICRpbmRleFwiXG4gICAgICAgICAgICBbdGl0bGVdPVwiaXRlbVt0aXRsZVByb3BlcnR5XVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwiaXRlbVt2YWx1ZVByb3BlcnR5XVwiXG4gICAgICAgICAgICBbaWNvbl09XCJpdGVtW2ljb25Qcm9wZXJ0eV1cIlxuICAgICAgICAgICAgW211bHRpU2VsZWN0XT1cInRydWVcIlxuICAgICAgICAgICAgW3NlbGVjdGVkXT1cInZhbHVlLmluY2x1ZGVzKGl0ZW1bdmFsdWVQcm9wZXJ0eV0pXCJcbiAgICAgICAgICAgIFtzaG93Q2hlY2tib3hdPVwidXNlQ2hlY2tib3hcIlxuICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwic2V0Rm9jdXNlZEluZGV4KGl0ZW0pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9mdy1tZW51LWl0ZW0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGVudCBuZ1Byb2plY3RBcz1cImN1c3RvbS1tZW51LWl0ZW1zXCIgc2VsZWN0PVwiW2Z3LW1lbnUtaXRlbSwgZnctbWVudS1zZXBhcmF0b3IsIGZ3LW1lbnUtaXRlbS1ncm91cCwgZnctbWVudS1oZWFkZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9mdy1tZW51PlxuICAgIDwvZnctbWVudS1maWx0ZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==